Full Code of user-none/Sigil for AI

master 1ca993e4876c cached
2541 files
59.2 MB
15.6M tokens
1 requests
Copy disabled (too large) Download .txt
Showing preview only (63,481K chars total). Download the full file to get everything.
Repository: user-none/Sigil
Branch: master
Commit: 1ca993e4876c
Files: 2541
Total size: 59.2 MB

Directory structure:
gitextract_h3u3_stj/

├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   └── feature_request.yml
│   └── workflows/
│       ├── AppRun
│       ├── appimg_cleanup.py
│       ├── appimg_python3_gather.py
│       ├── arch-repo.yml
│       ├── build_appimage.yml
│       ├── build_appimage2.yml
│       ├── build_sigil_appimage.sh
│       ├── build_sigilpython.sh
│       ├── build_sigilwebengine.sh
│       ├── checkqt5.yml
│       ├── create_tag.yml
│       ├── linux-build.yml
│       ├── mac-build.yml
│       ├── mac_arm64-build.yml
│       ├── make_blog_post.yml
│       ├── make_post.py
│       ├── requirements.txt
│       ├── reset-lin-caches.txt
│       ├── reset-mac-caches.txt
│       ├── reset-mac_arm64-caches.txt
│       ├── reset-win-caches.txt
│       ├── win-build.yml
│       └── winget.yml
├── .gitignore
├── 3rdparty/
│   ├── CMakeLists.txt
│   ├── about.md
│   ├── cmake/
│   │   ├── ext_libxml2.cmake
│   │   ├── hunspell.cmake
│   │   ├── minizip.cmake
│   │   ├── pcre2.cmake
│   │   └── zlib.cmake
│   ├── extra/
│   │   ├── hunspell/
│   │   │   └── config.h
│   │   └── libxml2/
│   │       └── libxml2_bug_fix.patch
│   ├── hunspell/
│   │   ├── ABOUT-NLS
│   │   ├── AUTHORS
│   │   ├── COPYING
│   │   ├── COPYING.LESSER
│   │   ├── COPYING.MPL
│   │   ├── ChangeLog
│   │   ├── ChangeLog.O
│   │   ├── INSTALL
│   │   ├── Makefile.am
│   │   ├── Makefile.in
│   │   ├── NEWS
│   │   ├── README
│   │   ├── THANKS
│   │   ├── aclocal.m4
│   │   ├── compile
│   │   ├── config.guess
│   │   ├── config.h.in
│   │   ├── config.rpath
│   │   ├── config.sub
│   │   ├── configure
│   │   ├── configure.ac
│   │   ├── depcomp
│   │   ├── hunspell.pc.in
│   │   ├── install-sh
│   │   ├── license.hunspell
│   │   ├── license.myspell
│   │   ├── ltmain.sh
│   │   ├── m4/
│   │   │   ├── ax_cxx_compile_stdcxx.m4
│   │   │   ├── ax_cxx_compile_stdcxx_11.m4
│   │   │   ├── gettext.m4
│   │   │   ├── iconv.m4
│   │   │   ├── lib-ld.m4
│   │   │   ├── lib-link.m4
│   │   │   ├── lib-prefix.m4
│   │   │   ├── libtool.m4
│   │   │   ├── ltoptions.m4
│   │   │   ├── ltsugar.m4
│   │   │   ├── ltversion.m4
│   │   │   ├── lt~obsolete.m4
│   │   │   ├── nls.m4
│   │   │   ├── po.m4
│   │   │   ├── progtest.m4
│   │   │   └── visibility.m4
│   │   ├── man/
│   │   │   ├── Makefile.am
│   │   │   ├── Makefile.in
│   │   │   ├── hu/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── Makefile.in
│   │   │   │   ├── hunspell.1
│   │   │   │   └── hunspell.5
│   │   │   ├── hunspell.1
│   │   │   ├── hunspell.3
│   │   │   ├── hunspell.5
│   │   │   ├── hunzip.1
│   │   │   └── hzip.1
│   │   ├── missing
│   │   ├── po/
│   │   │   ├── ChangeLog
│   │   │   ├── LINGUAS
│   │   │   ├── Makefile.in.in
│   │   │   ├── Makevars
│   │   │   ├── POTFILES.in
│   │   │   ├── Rules-quot
│   │   │   ├── an.gmo
│   │   │   ├── an.po
│   │   │   ├── ar.gmo
│   │   │   ├── ar.po
│   │   │   ├── boldquot.sed
│   │   │   ├── ca.gmo
│   │   │   ├── ca.po
│   │   │   ├── ckb.gmo
│   │   │   ├── ckb.po
│   │   │   ├── cs.gmo
│   │   │   ├── cs.po
│   │   │   ├── da.gmo
│   │   │   ├── da.po
│   │   │   ├── de.gmo
│   │   │   ├── de.po
│   │   │   ├── de_CH.gmo
│   │   │   ├── de_CH.po
│   │   │   ├── el.gmo
│   │   │   ├── el.po
│   │   │   ├── en@boldquot.header
│   │   │   ├── en@quot.header
│   │   │   ├── eo.gmo
│   │   │   ├── eo.po
│   │   │   ├── es.gmo
│   │   │   ├── es.po
│   │   │   ├── es_EU.gmo
│   │   │   ├── es_EU.po
│   │   │   ├── fa.gmo
│   │   │   ├── fa.po
│   │   │   ├── fr.gmo
│   │   │   ├── fr.po
│   │   │   ├── fy.gmo
│   │   │   ├── fy.po
│   │   │   ├── gl.gmo
│   │   │   ├── gl.po
│   │   │   ├── hr.gmo
│   │   │   ├── hr.po
│   │   │   ├── hu.gmo
│   │   │   ├── hu.po
│   │   │   ├── hunspell.pot
│   │   │   ├── hy.gmo
│   │   │   ├── hy.po
│   │   │   ├── ie.gmo
│   │   │   ├── ie.po
│   │   │   ├── insert-header.sin
│   │   │   ├── is.gmo
│   │   │   ├── is.po
│   │   │   ├── it.gmo
│   │   │   ├── it.po
│   │   │   ├── ka.gmo
│   │   │   ├── ka.po
│   │   │   ├── kab.gmo
│   │   │   ├── kab.po
│   │   │   ├── ky.gmo
│   │   │   ├── ky.po
│   │   │   ├── lt.gmo
│   │   │   ├── lt.po
│   │   │   ├── mk.gmo
│   │   │   ├── mk.po
│   │   │   ├── nb_NO.gmo
│   │   │   ├── nb_NO.po
│   │   │   ├── nl.gmo
│   │   │   ├── nl.po
│   │   │   ├── nl_BE.gmo
│   │   │   ├── nl_BE.po
│   │   │   ├── oc.gmo
│   │   │   ├── oc.po
│   │   │   ├── pa.gmo
│   │   │   ├── pa.po
│   │   │   ├── pl.gmo
│   │   │   ├── pl.po
│   │   │   ├── pt.gmo
│   │   │   ├── pt.po
│   │   │   ├── pt_BR.gmo
│   │   │   ├── pt_BR.po
│   │   │   ├── pt_PT.gmo
│   │   │   ├── pt_PT.po
│   │   │   ├── quot.sed
│   │   │   ├── remove-potcdate.sin
│   │   │   ├── ru.gmo
│   │   │   ├── ru.po
│   │   │   ├── si.gmo
│   │   │   ├── si.po
│   │   │   ├── sl.gmo
│   │   │   ├── sl.po
│   │   │   ├── stamp-po
│   │   │   ├── sv.gmo
│   │   │   ├── sv.po
│   │   │   ├── ta.gmo
│   │   │   ├── ta.po
│   │   │   ├── tg.gmo
│   │   │   ├── tg.po
│   │   │   ├── tr.gmo
│   │   │   ├── tr.po
│   │   │   ├── tt.gmo
│   │   │   ├── tt.po
│   │   │   ├── uk.gmo
│   │   │   ├── uk.po
│   │   │   ├── uz.gmo
│   │   │   ├── uz.po
│   │   │   ├── zh_Hans.gmo
│   │   │   ├── zh_Hans.po
│   │   │   ├── zh_Hant.gmo
│   │   │   └── zh_Hant.po
│   │   ├── src/
│   │   │   ├── Makefile.am
│   │   │   ├── Makefile.in
│   │   │   ├── hunspell/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── Makefile.in
│   │   │   │   ├── affentry.cxx
│   │   │   │   ├── affentry.hxx
│   │   │   │   ├── affixmgr.cxx
│   │   │   │   ├── affixmgr.hxx
│   │   │   │   ├── atypes.hxx
│   │   │   │   ├── baseaffix.hxx
│   │   │   │   ├── csutil.cxx
│   │   │   │   ├── csutil.hxx
│   │   │   │   ├── filemgr.cxx
│   │   │   │   ├── filemgr.hxx
│   │   │   │   ├── hashmgr.cxx
│   │   │   │   ├── hashmgr.hxx
│   │   │   │   ├── htypes.hxx
│   │   │   │   ├── hunspell.cxx
│   │   │   │   ├── hunspell.h
│   │   │   │   ├── hunspell.hxx
│   │   │   │   ├── hunvisapi.h
│   │   │   │   ├── hunvisapi.h.in
│   │   │   │   ├── hunzip.cxx
│   │   │   │   ├── hunzip.hxx
│   │   │   │   ├── langnum.hxx
│   │   │   │   ├── phonet.cxx
│   │   │   │   ├── phonet.hxx
│   │   │   │   ├── replist.cxx
│   │   │   │   ├── replist.hxx
│   │   │   │   ├── suggestmgr.cxx
│   │   │   │   ├── suggestmgr.hxx
│   │   │   │   ├── utf_info.hxx
│   │   │   │   └── w_char.hxx
│   │   │   ├── parsers/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── Makefile.in
│   │   │   │   ├── firstparser.cxx
│   │   │   │   ├── firstparser.hxx
│   │   │   │   ├── htmlparser.cxx
│   │   │   │   ├── htmlparser.hxx
│   │   │   │   ├── latexparser.cxx
│   │   │   │   ├── latexparser.hxx
│   │   │   │   ├── manparser.cxx
│   │   │   │   ├── manparser.hxx
│   │   │   │   ├── odfparser.cxx
│   │   │   │   ├── odfparser.hxx
│   │   │   │   ├── testparser.cxx
│   │   │   │   ├── textparser.cxx
│   │   │   │   ├── textparser.hxx
│   │   │   │   ├── xmlparser.cxx
│   │   │   │   └── xmlparser.hxx
│   │   │   └── tools/
│   │   │       ├── Makefile.am
│   │   │       ├── Makefile.in
│   │   │       ├── affixcompress
│   │   │       ├── analyze.cxx
│   │   │       ├── chmorph.cxx
│   │   │       ├── example.cxx
│   │   │       ├── hunspell.cxx
│   │   │       ├── hunzip.cxx
│   │   │       ├── hzip.cxx
│   │   │       ├── ispellaff2myspell
│   │   │       ├── makealias
│   │   │       ├── munch.cxx
│   │   │       ├── munch.h
│   │   │       ├── unmunch.cxx
│   │   │       ├── unmunch.h
│   │   │       ├── wordforms
│   │   │       └── wordlist2hunspell
│   │   ├── tap-driver.sh
│   │   ├── test-driver
│   │   └── tests/
│   │       ├── 1463589.aff
│   │       ├── 1463589.dic
│   │       ├── 1463589.sug
│   │       ├── 1463589.wrong
│   │       ├── 1463589_utf.aff
│   │       ├── 1463589_utf.dic
│   │       ├── 1463589_utf.sug
│   │       ├── 1463589_utf.wrong
│   │       ├── 1592880.aff
│   │       ├── 1592880.dic
│   │       ├── 1592880.good
│   │       ├── 1695964.aff
│   │       ├── 1695964.dic
│   │       ├── 1695964.sug
│   │       ├── 1695964.wrong
│   │       ├── 1706659.aff
│   │       ├── 1706659.dic
│   │       ├── 1706659.wrong
│   │       ├── 1748408-1.aff
│   │       ├── 1748408-1.dic
│   │       ├── 1748408-1.good
│   │       ├── 1748408-2.aff
│   │       ├── 1748408-2.dic
│   │       ├── 1748408-2.good
│   │       ├── 1748408-3.aff
│   │       ├── 1748408-3.dic
│   │       ├── 1748408-3.good
│   │       ├── 1748408-4.aff
│   │       ├── 1748408-4.dic
│   │       ├── 1748408-4.good
│   │       ├── 1975530.aff
│   │       ├── 1975530.dic
│   │       ├── 1975530.good
│   │       ├── 1975530.wrong
│   │       ├── 2970240.aff
│   │       ├── 2970240.dic
│   │       ├── 2970240.good
│   │       ├── 2970240.wrong
│   │       ├── 2970242.aff
│   │       ├── 2970242.dic
│   │       ├── 2970242.good
│   │       ├── 2970242.wrong
│   │       ├── 2999225.aff
│   │       ├── 2999225.dic
│   │       ├── 2999225.good
│   │       ├── IJ.aff
│   │       ├── IJ.dic
│   │       ├── IJ.good
│   │       ├── IJ.sug
│   │       ├── IJ.wrong
│   │       ├── Makefile.am
│   │       ├── Makefile.in
│   │       ├── affixes.aff
│   │       ├── affixes.dic
│   │       ├── affixes.good
│   │       ├── alias.aff
│   │       ├── alias.dic
│   │       ├── alias.good
│   │       ├── alias2.aff
│   │       ├── alias2.dic
│   │       ├── alias2.good
│   │       ├── alias2.morph
│   │       ├── alias3.aff
│   │       ├── alias3.dic
│   │       ├── alias3.good
│   │       ├── alias3.morph
│   │       ├── allcaps.aff
│   │       ├── allcaps.dic
│   │       ├── allcaps.good
│   │       ├── allcaps.sug
│   │       ├── allcaps.wrong
│   │       ├── allcaps2.aff
│   │       ├── allcaps2.dic
│   │       ├── allcaps2.good
│   │       ├── allcaps2.sug
│   │       ├── allcaps2.wrong
│   │       ├── allcaps3.aff
│   │       ├── allcaps3.dic
│   │       ├── allcaps3.good
│   │       ├── allcaps3.wrong
│   │       ├── allcaps_utf.aff
│   │       ├── allcaps_utf.dic
│   │       ├── allcaps_utf.good
│   │       ├── allcaps_utf.sug
│   │       ├── allcaps_utf.wrong
│   │       ├── arabic.aff
│   │       ├── arabic.dic
│   │       ├── arabic.wrong
│   │       ├── base.aff
│   │       ├── base.dic
│   │       ├── base.good
│   │       ├── base.sug
│   │       ├── base.wrong
│   │       ├── base_utf.aff
│   │       ├── base_utf.dic
│   │       ├── base_utf.good
│   │       ├── base_utf.sug
│   │       ├── base_utf.wrong
│   │       ├── break.aff
│   │       ├── break.dic
│   │       ├── break.good
│   │       ├── break.wrong
│   │       ├── breakdefault.aff
│   │       ├── breakdefault.dic
│   │       ├── breakdefault.good
│   │       ├── breakdefault.sug
│   │       ├── breakdefault.wrong
│   │       ├── breakoff.aff
│   │       ├── breakoff.dic
│   │       ├── breakoff.good
│   │       ├── breakoff.wrong
│   │       ├── checkcompoundcase.aff
│   │       ├── checkcompoundcase.dic
│   │       ├── checkcompoundcase.good
│   │       ├── checkcompoundcase.wrong
│   │       ├── checkcompoundcase2.aff
│   │       ├── checkcompoundcase2.dic
│   │       ├── checkcompoundcase2.good
│   │       ├── checkcompoundcase2.wrong
│   │       ├── checkcompoundcaseutf.aff
│   │       ├── checkcompoundcaseutf.dic
│   │       ├── checkcompoundcaseutf.good
│   │       ├── checkcompoundcaseutf.wrong
│   │       ├── checkcompounddup.aff
│   │       ├── checkcompounddup.dic
│   │       ├── checkcompounddup.good
│   │       ├── checkcompounddup.wrong
│   │       ├── checkcompoundpattern.aff
│   │       ├── checkcompoundpattern.dic
│   │       ├── checkcompoundpattern.good
│   │       ├── checkcompoundpattern.wrong
│   │       ├── checkcompoundpattern2.aff
│   │       ├── checkcompoundpattern2.dic
│   │       ├── checkcompoundpattern2.good
│   │       ├── checkcompoundpattern2.wrong
│   │       ├── checkcompoundpattern3.aff
│   │       ├── checkcompoundpattern3.dic
│   │       ├── checkcompoundpattern3.good
│   │       ├── checkcompoundpattern3.wrong
│   │       ├── checkcompoundpattern4.aff
│   │       ├── checkcompoundpattern4.dic
│   │       ├── checkcompoundpattern4.good
│   │       ├── checkcompoundpattern4.wrong
│   │       ├── checkcompoundrep.aff
│   │       ├── checkcompoundrep.dic
│   │       ├── checkcompoundrep.good
│   │       ├── checkcompoundrep.wrong
│   │       ├── checkcompoundrep2.aff
│   │       ├── checkcompoundrep2.dic
│   │       ├── checkcompoundrep2.good
│   │       ├── checkcompoundtriple.aff
│   │       ├── checkcompoundtriple.dic
│   │       ├── checkcompoundtriple.good
│   │       ├── checkcompoundtriple.wrong
│   │       ├── checksharps.aff
│   │       ├── checksharps.dic
│   │       ├── checksharps.good
│   │       ├── checksharps.sug
│   │       ├── checksharps.wrong
│   │       ├── checksharpsutf.aff
│   │       ├── checksharpsutf.dic
│   │       ├── checksharpsutf.good
│   │       ├── checksharpsutf.sug
│   │       ├── checksharpsutf.wrong
│   │       ├── circumfix.aff
│   │       ├── circumfix.dic
│   │       ├── circumfix.good
│   │       ├── circumfix.morph
│   │       ├── circumfix.wrong
│   │       ├── colons_in_words.aff
│   │       ├── colons_in_words.dic
│   │       ├── complexprefixes.aff
│   │       ├── complexprefixes.dic
│   │       ├── complexprefixes.good
│   │       ├── complexprefixes.wrong
│   │       ├── complexprefixes2.aff
│   │       ├── complexprefixes2.dic
│   │       ├── complexprefixes2.good
│   │       ├── complexprefixesutf.aff
│   │       ├── complexprefixesutf.dic
│   │       ├── complexprefixesutf.good
│   │       ├── complexprefixesutf.wrong
│   │       ├── compoundaffix.aff
│   │       ├── compoundaffix.dic
│   │       ├── compoundaffix.good
│   │       ├── compoundaffix.wrong
│   │       ├── compoundaffix2.aff
│   │       ├── compoundaffix2.dic
│   │       ├── compoundaffix2.good
│   │       ├── compoundaffix3.aff
│   │       ├── compoundaffix3.dic
│   │       ├── compoundaffix3.good
│   │       ├── compoundaffix3.wrong
│   │       ├── compoundflag.aff
│   │       ├── compoundflag.dic
│   │       ├── compoundflag.good
│   │       ├── compoundflag.wrong
│   │       ├── compoundforbid.aff
│   │       ├── compoundforbid.dic
│   │       ├── compoundforbid.good
│   │       ├── compoundforbid.wrong
│   │       ├── compoundrule.aff
│   │       ├── compoundrule.dic
│   │       ├── compoundrule.good
│   │       ├── compoundrule.wrong
│   │       ├── compoundrule2.aff
│   │       ├── compoundrule2.dic
│   │       ├── compoundrule2.good
│   │       ├── compoundrule2.wrong
│   │       ├── compoundrule3.aff
│   │       ├── compoundrule3.dic
│   │       ├── compoundrule3.good
│   │       ├── compoundrule3.wrong
│   │       ├── compoundrule4.aff
│   │       ├── compoundrule4.dic
│   │       ├── compoundrule4.good
│   │       ├── compoundrule4.wrong
│   │       ├── compoundrule5.aff
│   │       ├── compoundrule5.dic
│   │       ├── compoundrule5.good
│   │       ├── compoundrule5.morph
│   │       ├── compoundrule5.wrong
│   │       ├── compoundrule6.aff
│   │       ├── compoundrule6.dic
│   │       ├── compoundrule6.good
│   │       ├── compoundrule6.wrong
│   │       ├── compoundrule7.aff
│   │       ├── compoundrule7.dic
│   │       ├── compoundrule7.good
│   │       ├── compoundrule7.wrong
│   │       ├── compoundrule8.aff
│   │       ├── compoundrule8.dic
│   │       ├── compoundrule8.good
│   │       ├── compoundrule8.wrong
│   │       ├── condition.aff
│   │       ├── condition.dic
│   │       ├── condition.good
│   │       ├── condition.wrong
│   │       ├── condition_utf.aff
│   │       ├── condition_utf.dic
│   │       ├── condition_utf.good
│   │       ├── condition_utf.wrong
│   │       ├── conditionalprefix.aff
│   │       ├── conditionalprefix.dic
│   │       ├── conditionalprefix.good
│   │       ├── conditionalprefix.morph
│   │       ├── conditionalprefix.wrong
│   │       ├── digits_in_words.aff
│   │       ├── digits_in_words.dic
│   │       ├── digits_in_words.wrong
│   │       ├── dotless_i.aff
│   │       ├── dotless_i.dic
│   │       ├── dotless_i.good
│   │       ├── dotless_i.wrong
│   │       ├── encoding.aff
│   │       ├── encoding.dic
│   │       ├── encoding.good
│   │       ├── flag.aff
│   │       ├── flag.dic
│   │       ├── flag.good
│   │       ├── flaglong.aff
│   │       ├── flaglong.dic
│   │       ├── flaglong.good
│   │       ├── flagnum.aff
│   │       ├── flagnum.dic
│   │       ├── flagnum.good
│   │       ├── flagutf8.aff
│   │       ├── flagutf8.dic
│   │       ├── flagutf8.good
│   │       ├── fogemorpheme.aff
│   │       ├── fogemorpheme.dic
│   │       ├── fogemorpheme.good
│   │       ├── fogemorpheme.wrong
│   │       ├── forbiddenword.aff
│   │       ├── forbiddenword.dic
│   │       ├── forbiddenword.good
│   │       ├── forbiddenword.wrong
│   │       ├── forceucase.aff
│   │       ├── forceucase.dic
│   │       ├── forceucase.good
│   │       ├── forceucase.sug
│   │       ├── forceucase.wrong
│   │       ├── fullstrip.aff
│   │       ├── fullstrip.dic
│   │       ├── fullstrip.good
│   │       ├── germancompounding.aff
│   │       ├── germancompounding.dic
│   │       ├── germancompounding.good
│   │       ├── germancompounding.wrong
│   │       ├── germancompoundingold.aff
│   │       ├── germancompoundingold.dic
│   │       ├── germancompoundingold.good
│   │       ├── germancompoundingold.wrong
│   │       ├── hu.aff
│   │       ├── hu.dic
│   │       ├── hu.good
│   │       ├── i35725.aff
│   │       ├── i35725.dic
│   │       ├── i35725.good
│   │       ├── i35725.sug
│   │       ├── i35725.wrong
│   │       ├── i53643.aff
│   │       ├── i53643.dic
│   │       ├── i53643.good
│   │       ├── i53643.wrong
│   │       ├── i54633.aff
│   │       ├── i54633.dic
│   │       ├── i54633.good
│   │       ├── i54633.sug
│   │       ├── i54633.wrong
│   │       ├── i54980.aff
│   │       ├── i54980.dic
│   │       ├── i54980.good
│   │       ├── i58202.aff
│   │       ├── i58202.dic
│   │       ├── i58202.good
│   │       ├── i58202.sug
│   │       ├── i58202.wrong
│   │       ├── i68568.aff
│   │       ├── i68568.dic
│   │       ├── i68568.wrong
│   │       ├── i68568utf.aff
│   │       ├── i68568utf.dic
│   │       ├── i68568utf.wrong
│   │       ├── iconv.aff
│   │       ├── iconv.dic
│   │       ├── iconv.good
│   │       ├── iconv2.aff
│   │       ├── iconv2.dic
│   │       ├── iconv2.good
│   │       ├── ignore.aff
│   │       ├── ignore.dic
│   │       ├── ignore.good
│   │       ├── ignoresug.aff
│   │       ├── ignoresug.dic
│   │       ├── ignoresug.good
│   │       ├── ignoresug.morph
│   │       ├── ignoreutf.aff
│   │       ├── ignoreutf.dic
│   │       ├── ignoreutf.good
│   │       ├── keepcase.aff
│   │       ├── keepcase.dic
│   │       ├── keepcase.good
│   │       ├── keepcase.sug
│   │       ├── keepcase.wrong
│   │       ├── korean.aff
│   │       ├── korean.dic
│   │       ├── korean.good
│   │       ├── korean.wrong
│   │       ├── limit-multiple-compounding.aff
│   │       ├── limit-multiple-compounding.dic
│   │       ├── limit-multiple-compounding.good
│   │       ├── limit-multiple-compounding.wrong
│   │       ├── map.aff
│   │       ├── map.dic
│   │       ├── map.sug
│   │       ├── map.wrong
│   │       ├── maputf.aff
│   │       ├── maputf.dic
│   │       ├── maputf.sug
│   │       ├── maputf.wrong
│   │       ├── morph.aff
│   │       ├── morph.dic
│   │       ├── morph.good
│   │       ├── morph.morph
│   │       ├── needaffix.aff
│   │       ├── needaffix.dic
│   │       ├── needaffix.good
│   │       ├── needaffix.wrong
│   │       ├── needaffix2.aff
│   │       ├── needaffix2.dic
│   │       ├── needaffix2.good
│   │       ├── needaffix2.morph
│   │       ├── needaffix3.aff
│   │       ├── needaffix3.dic
│   │       ├── needaffix3.good
│   │       ├── needaffix3.wrong
│   │       ├── needaffix4.aff
│   │       ├── needaffix4.dic
│   │       ├── needaffix4.good
│   │       ├── needaffix5.aff
│   │       ├── needaffix5.dic
│   │       ├── needaffix5.good
│   │       ├── needaffix5.wrong
│   │       ├── nepali.aff
│   │       ├── nepali.dic
│   │       ├── nepali.good
│   │       ├── ngram_utf_fix.aff
│   │       ├── ngram_utf_fix.dic
│   │       ├── ngram_utf_fix.good
│   │       ├── ngram_utf_fix.sug
│   │       ├── ngram_utf_fix.wrong
│   │       ├── nosuggest.aff
│   │       ├── nosuggest.dic
│   │       ├── nosuggest.good
│   │       ├── nosuggest.sug
│   │       ├── nosuggest.wrong
│   │       ├── oconv.aff
│   │       ├── oconv.dic
│   │       ├── oconv.good
│   │       ├── oconv.sug
│   │       ├── oconv.wrong
│   │       ├── oconv2.aff
│   │       ├── oconv2.dic
│   │       ├── oconv2.good
│   │       ├── oconv2.morph
│   │       ├── oconv2.root
│   │       ├── oconv2.test
│   │       ├── onlyincompound.aff
│   │       ├── onlyincompound.dic
│   │       ├── onlyincompound.good
│   │       ├── onlyincompound.sug
│   │       ├── onlyincompound.wrong
│   │       ├── onlyincompound2.aff
│   │       ├── onlyincompound2.dic
│   │       ├── onlyincompound2.good
│   │       ├── onlyincompound2.wrong
│   │       ├── opentaal_cpdpat.aff
│   │       ├── opentaal_cpdpat.dic
│   │       ├── opentaal_cpdpat.good
│   │       ├── opentaal_cpdpat.wrong
│   │       ├── opentaal_cpdpat2.aff
│   │       ├── opentaal_cpdpat2.dic
│   │       ├── opentaal_cpdpat2.good
│   │       ├── opentaal_cpdpat2.wrong
│   │       ├── opentaal_forbiddenword1.aff
│   │       ├── opentaal_forbiddenword1.dic
│   │       ├── opentaal_forbiddenword1.good
│   │       ├── opentaal_forbiddenword1.sug
│   │       ├── opentaal_forbiddenword1.wrong
│   │       ├── opentaal_forbiddenword2.aff
│   │       ├── opentaal_forbiddenword2.dic
│   │       ├── opentaal_forbiddenword2.good
│   │       ├── opentaal_forbiddenword2.sug
│   │       ├── opentaal_forbiddenword2.wrong
│   │       ├── opentaal_keepcase.aff
│   │       ├── opentaal_keepcase.dic
│   │       ├── opentaal_keepcase.good
│   │       ├── opentaal_keepcase.sug
│   │       ├── opentaal_keepcase.wrong
│   │       ├── ph.aff
│   │       ├── ph.dic
│   │       ├── ph.sug
│   │       ├── ph.wrong
│   │       ├── ph2.aff
│   │       ├── ph2.dic
│   │       ├── ph2.sug
│   │       ├── ph2.wrong
│   │       ├── phone.aff
│   │       ├── phone.dic
│   │       ├── phone.sug
│   │       ├── phone.wrong
│   │       ├── rep.aff
│   │       ├── rep.dic
│   │       ├── rep.sug
│   │       ├── rep.wrong
│   │       ├── reputf.aff
│   │       ├── reputf.dic
│   │       ├── reputf.sug
│   │       ├── reputf.wrong
│   │       ├── right_to_left_mark.aff
│   │       ├── right_to_left_mark.dic
│   │       ├── right_to_left_mark.good
│   │       ├── simplifiedtriple.aff
│   │       ├── simplifiedtriple.dic
│   │       ├── simplifiedtriple.good
│   │       ├── simplifiedtriple.wrong
│   │       ├── slash.aff
│   │       ├── slash.dic
│   │       ├── slash.good
│   │       ├── sug.aff
│   │       ├── sug.dic
│   │       ├── sug.sug
│   │       ├── sug.wrong
│   │       ├── sug2.aff
│   │       ├── sug2.dic
│   │       ├── sug2.sug
│   │       ├── sug2.wrong
│   │       ├── suggestiontest/
│   │       │   ├── List_of_common_misspellings.txt
│   │       │   ├── Makefile.am
│   │       │   ├── Makefile.in
│   │       │   ├── README
│   │       │   ├── prepare
│   │       │   └── test
│   │       ├── sugutf.aff
│   │       ├── sugutf.dic
│   │       ├── sugutf.sug
│   │       ├── sugutf.wrong
│   │       ├── test.sh
│   │       ├── timelimit.aff
│   │       ├── timelimit.dic
│   │       ├── timelimit.good
│   │       ├── timelimit.wrong
│   │       ├── utf8.aff
│   │       ├── utf8.dic
│   │       ├── utf8.good
│   │       ├── utf8_bom.aff
│   │       ├── utf8_bom.dic
│   │       ├── utf8_bom.good
│   │       ├── utf8_bom2.aff
│   │       ├── utf8_bom2.dic
│   │       ├── utf8_bom2.good
│   │       ├── utf8_nonbmp.aff
│   │       ├── utf8_nonbmp.dic
│   │       ├── utf8_nonbmp.good
│   │       ├── utf8_nonbmp.sug
│   │       ├── utf8_nonbmp.test
│   │       ├── utf8_nonbmp.wrong
│   │       ├── utfcompound.aff
│   │       ├── utfcompound.dic
│   │       ├── utfcompound.good
│   │       ├── utfcompound.wrong
│   │       ├── warn.aff
│   │       ├── warn.dic
│   │       ├── warn.good
│   │       ├── wordpair.aff
│   │       ├── wordpair.dic
│   │       ├── wordpair.wrong
│   │       ├── zeroaffix.aff
│   │       ├── zeroaffix.dic
│   │       ├── zeroaffix.good
│   │       └── zeroaffix.morph
│   ├── minizip/
│   │   ├── MiniZip64_Changes.txt
│   │   ├── MiniZip64_info.txt
│   │   ├── crypt.h
│   │   ├── ioapi.c
│   │   ├── ioapi.h
│   │   ├── iowin32.c
│   │   ├── iowin32.h
│   │   ├── mztools.c
│   │   ├── mztools.h
│   │   ├── unzip.c
│   │   ├── unzip.h
│   │   ├── zip.c
│   │   └── zip.h
│   ├── pcre2/
│   │   ├── AUTHORS.md
│   │   ├── BUILD.bazel
│   │   ├── CMakeLists.txt
│   │   ├── COPYING
│   │   ├── ChangeLog
│   │   ├── HACKING
│   │   ├── INSTALL
│   │   ├── LICENCE.md
│   │   ├── MODULE.bazel
│   │   ├── Makefile.am
│   │   ├── Makefile.in
│   │   ├── NEWS
│   │   ├── NON-AUTOTOOLS-BUILD
│   │   ├── README
│   │   ├── RunGrepTest
│   │   ├── RunGrepTest.bat
│   │   ├── RunTest
│   │   ├── RunTest.bat
│   │   ├── SECURITY.md
│   │   ├── WORKSPACE.bazel
│   │   ├── aclocal.m4
│   │   ├── ar-lib
│   │   ├── build.zig
│   │   ├── cmake/
│   │   │   ├── COPYING-CMAKE-SCRIPTS
│   │   │   ├── FindEditline.cmake
│   │   │   ├── FindReadline.cmake
│   │   │   ├── pcre2-config-version.cmake.in
│   │   │   └── pcre2-config.cmake.in
│   │   ├── compile
│   │   ├── config-cmake.h.in
│   │   ├── config.guess
│   │   ├── config.sub
│   │   ├── configure
│   │   ├── configure.ac
│   │   ├── depcomp
│   │   ├── deps/
│   │   │   └── sljit/
│   │   │       └── sljit_src/
│   │   │           ├── allocator_src/
│   │   │           │   ├── sljitExecAllocatorApple.c
│   │   │           │   ├── sljitExecAllocatorCore.c
│   │   │           │   ├── sljitExecAllocatorFreeBSD.c
│   │   │           │   ├── sljitExecAllocatorPosix.c
│   │   │           │   ├── sljitExecAllocatorWindows.c
│   │   │           │   ├── sljitProtExecAllocatorNetBSD.c
│   │   │           │   ├── sljitProtExecAllocatorPosix.c
│   │   │           │   ├── sljitWXExecAllocatorPosix.c
│   │   │           │   └── sljitWXExecAllocatorWindows.c
│   │   │           ├── sljitConfig.h
│   │   │           ├── sljitConfigCPU.h
│   │   │           ├── sljitConfigInternal.h
│   │   │           ├── sljitLir.c
│   │   │           ├── sljitLir.h
│   │   │           ├── sljitNativeARM_32.c
│   │   │           ├── sljitNativeARM_64.c
│   │   │           ├── sljitNativeARM_T2_32.c
│   │   │           ├── sljitNativeLOONGARCH_64.c
│   │   │           ├── sljitNativeMIPS_32.c
│   │   │           ├── sljitNativeMIPS_64.c
│   │   │           ├── sljitNativeMIPS_common.c
│   │   │           ├── sljitNativePPC_32.c
│   │   │           ├── sljitNativePPC_64.c
│   │   │           ├── sljitNativePPC_common.c
│   │   │           ├── sljitNativeRISCV_32.c
│   │   │           ├── sljitNativeRISCV_64.c
│   │   │           ├── sljitNativeRISCV_common.c
│   │   │           ├── sljitNativeS390X.c
│   │   │           ├── sljitNativeX86_32.c
│   │   │           ├── sljitNativeX86_64.c
│   │   │           ├── sljitNativeX86_common.c
│   │   │           ├── sljitSerialize.c
│   │   │           └── sljitUtils.c
│   │   ├── doc/
│   │   │   ├── html/
│   │   │   │   ├── NON-AUTOTOOLS-BUILD.txt
│   │   │   │   ├── README.txt
│   │   │   │   ├── index.html
│   │   │   │   ├── pcre2-config.html
│   │   │   │   ├── pcre2.html
│   │   │   │   ├── pcre2_callout_enumerate.html
│   │   │   │   ├── pcre2_code_copy.html
│   │   │   │   ├── pcre2_code_copy_with_tables.html
│   │   │   │   ├── pcre2_code_free.html
│   │   │   │   ├── pcre2_compile.html
│   │   │   │   ├── pcre2_compile_context_copy.html
│   │   │   │   ├── pcre2_compile_context_create.html
│   │   │   │   ├── pcre2_compile_context_free.html
│   │   │   │   ├── pcre2_config.html
│   │   │   │   ├── pcre2_convert_context_copy.html
│   │   │   │   ├── pcre2_convert_context_create.html
│   │   │   │   ├── pcre2_convert_context_free.html
│   │   │   │   ├── pcre2_converted_pattern_free.html
│   │   │   │   ├── pcre2_dfa_match.html
│   │   │   │   ├── pcre2_general_context_copy.html
│   │   │   │   ├── pcre2_general_context_create.html
│   │   │   │   ├── pcre2_general_context_free.html
│   │   │   │   ├── pcre2_get_error_message.html
│   │   │   │   ├── pcre2_get_mark.html
│   │   │   │   ├── pcre2_get_match_data_heapframes_size.html
│   │   │   │   ├── pcre2_get_match_data_size.html
│   │   │   │   ├── pcre2_get_ovector_count.html
│   │   │   │   ├── pcre2_get_ovector_pointer.html
│   │   │   │   ├── pcre2_get_startchar.html
│   │   │   │   ├── pcre2_jit_compile.html
│   │   │   │   ├── pcre2_jit_free_unused_memory.html
│   │   │   │   ├── pcre2_jit_match.html
│   │   │   │   ├── pcre2_jit_stack_assign.html
│   │   │   │   ├── pcre2_jit_stack_create.html
│   │   │   │   ├── pcre2_jit_stack_free.html
│   │   │   │   ├── pcre2_maketables.html
│   │   │   │   ├── pcre2_maketables_free.html
│   │   │   │   ├── pcre2_match.html
│   │   │   │   ├── pcre2_match_context_copy.html
│   │   │   │   ├── pcre2_match_context_create.html
│   │   │   │   ├── pcre2_match_context_free.html
│   │   │   │   ├── pcre2_match_data_create.html
│   │   │   │   ├── pcre2_match_data_create_from_pattern.html
│   │   │   │   ├── pcre2_match_data_free.html
│   │   │   │   ├── pcre2_pattern_convert.html
│   │   │   │   ├── pcre2_pattern_info.html
│   │   │   │   ├── pcre2_serialize_decode.html
│   │   │   │   ├── pcre2_serialize_encode.html
│   │   │   │   ├── pcre2_serialize_free.html
│   │   │   │   ├── pcre2_serialize_get_number_of_codes.html
│   │   │   │   ├── pcre2_set_bsr.html
│   │   │   │   ├── pcre2_set_callout.html
│   │   │   │   ├── pcre2_set_character_tables.html
│   │   │   │   ├── pcre2_set_compile_extra_options.html
│   │   │   │   ├── pcre2_set_compile_recursion_guard.html
│   │   │   │   ├── pcre2_set_depth_limit.html
│   │   │   │   ├── pcre2_set_glob_escape.html
│   │   │   │   ├── pcre2_set_glob_separator.html
│   │   │   │   ├── pcre2_set_heap_limit.html
│   │   │   │   ├── pcre2_set_match_limit.html
│   │   │   │   ├── pcre2_set_max_pattern_compiled_length.html
│   │   │   │   ├── pcre2_set_max_pattern_length.html
│   │   │   │   ├── pcre2_set_max_varlookbehind.html
│   │   │   │   ├── pcre2_set_newline.html
│   │   │   │   ├── pcre2_set_offset_limit.html
│   │   │   │   ├── pcre2_set_optimize.html
│   │   │   │   ├── pcre2_set_parens_nest_limit.html
│   │   │   │   ├── pcre2_set_recursion_limit.html
│   │   │   │   ├── pcre2_set_recursion_memory_management.html
│   │   │   │   ├── pcre2_set_substitute_callout.html
│   │   │   │   ├── pcre2_set_substitute_case_callout.html
│   │   │   │   ├── pcre2_substitute.html
│   │   │   │   ├── pcre2_substring_copy_byname.html
│   │   │   │   ├── pcre2_substring_copy_bynumber.html
│   │   │   │   ├── pcre2_substring_free.html
│   │   │   │   ├── pcre2_substring_get_byname.html
│   │   │   │   ├── pcre2_substring_get_bynumber.html
│   │   │   │   ├── pcre2_substring_length_byname.html
│   │   │   │   ├── pcre2_substring_length_bynumber.html
│   │   │   │   ├── pcre2_substring_list_free.html
│   │   │   │   ├── pcre2_substring_list_get.html
│   │   │   │   ├── pcre2_substring_nametable_scan.html
│   │   │   │   ├── pcre2_substring_number_from_name.html
│   │   │   │   ├── pcre2api.html
│   │   │   │   ├── pcre2build.html
│   │   │   │   ├── pcre2callout.html
│   │   │   │   ├── pcre2compat.html
│   │   │   │   ├── pcre2convert.html
│   │   │   │   ├── pcre2demo.html
│   │   │   │   ├── pcre2grep.html
│   │   │   │   ├── pcre2jit.html
│   │   │   │   ├── pcre2limits.html
│   │   │   │   ├── pcre2matching.html
│   │   │   │   ├── pcre2partial.html
│   │   │   │   ├── pcre2pattern.html
│   │   │   │   ├── pcre2perform.html
│   │   │   │   ├── pcre2posix.html
│   │   │   │   ├── pcre2sample.html
│   │   │   │   ├── pcre2serialize.html
│   │   │   │   ├── pcre2syntax.html
│   │   │   │   ├── pcre2test.html
│   │   │   │   └── pcre2unicode.html
│   │   │   ├── pcre2-config.1
│   │   │   ├── pcre2-config.txt
│   │   │   ├── pcre2.3
│   │   │   ├── pcre2.txt
│   │   │   ├── pcre2_callout_enumerate.3
│   │   │   ├── pcre2_code_copy.3
│   │   │   ├── pcre2_code_copy_with_tables.3
│   │   │   ├── pcre2_code_free.3
│   │   │   ├── pcre2_compile.3
│   │   │   ├── pcre2_compile_context_copy.3
│   │   │   ├── pcre2_compile_context_create.3
│   │   │   ├── pcre2_compile_context_free.3
│   │   │   ├── pcre2_config.3
│   │   │   ├── pcre2_convert_context_copy.3
│   │   │   ├── pcre2_convert_context_create.3
│   │   │   ├── pcre2_convert_context_free.3
│   │   │   ├── pcre2_converted_pattern_free.3
│   │   │   ├── pcre2_dfa_match.3
│   │   │   ├── pcre2_general_context_copy.3
│   │   │   ├── pcre2_general_context_create.3
│   │   │   ├── pcre2_general_context_free.3
│   │   │   ├── pcre2_get_error_message.3
│   │   │   ├── pcre2_get_mark.3
│   │   │   ├── pcre2_get_match_data_heapframes_size.3
│   │   │   ├── pcre2_get_match_data_size.3
│   │   │   ├── pcre2_get_ovector_count.3
│   │   │   ├── pcre2_get_ovector_pointer.3
│   │   │   ├── pcre2_get_startchar.3
│   │   │   ├── pcre2_jit_compile.3
│   │   │   ├── pcre2_jit_free_unused_memory.3
│   │   │   ├── pcre2_jit_match.3
│   │   │   ├── pcre2_jit_stack_assign.3
│   │   │   ├── pcre2_jit_stack_create.3
│   │   │   ├── pcre2_jit_stack_free.3
│   │   │   ├── pcre2_maketables.3
│   │   │   ├── pcre2_maketables_free.3
│   │   │   ├── pcre2_match.3
│   │   │   ├── pcre2_match_context_copy.3
│   │   │   ├── pcre2_match_context_create.3
│   │   │   ├── pcre2_match_context_free.3
│   │   │   ├── pcre2_match_data_create.3
│   │   │   ├── pcre2_match_data_create_from_pattern.3
│   │   │   ├── pcre2_match_data_free.3
│   │   │   ├── pcre2_pattern_convert.3
│   │   │   ├── pcre2_pattern_info.3
│   │   │   ├── pcre2_serialize_decode.3
│   │   │   ├── pcre2_serialize_encode.3
│   │   │   ├── pcre2_serialize_free.3
│   │   │   ├── pcre2_serialize_get_number_of_codes.3
│   │   │   ├── pcre2_set_bsr.3
│   │   │   ├── pcre2_set_callout.3
│   │   │   ├── pcre2_set_character_tables.3
│   │   │   ├── pcre2_set_compile_extra_options.3
│   │   │   ├── pcre2_set_compile_recursion_guard.3
│   │   │   ├── pcre2_set_depth_limit.3
│   │   │   ├── pcre2_set_glob_escape.3
│   │   │   ├── pcre2_set_glob_separator.3
│   │   │   ├── pcre2_set_heap_limit.3
│   │   │   ├── pcre2_set_match_limit.3
│   │   │   ├── pcre2_set_max_pattern_compiled_length.3
│   │   │   ├── pcre2_set_max_pattern_length.3
│   │   │   ├── pcre2_set_max_varlookbehind.3
│   │   │   ├── pcre2_set_newline.3
│   │   │   ├── pcre2_set_offset_limit.3
│   │   │   ├── pcre2_set_optimize.3
│   │   │   ├── pcre2_set_parens_nest_limit.3
│   │   │   ├── pcre2_set_recursion_limit.3
│   │   │   ├── pcre2_set_recursion_memory_management.3
│   │   │   ├── pcre2_set_substitute_callout.3
│   │   │   ├── pcre2_set_substitute_case_callout.3
│   │   │   ├── pcre2_substitute.3
│   │   │   ├── pcre2_substring_copy_byname.3
│   │   │   ├── pcre2_substring_copy_bynumber.3
│   │   │   ├── pcre2_substring_free.3
│   │   │   ├── pcre2_substring_get_byname.3
│   │   │   ├── pcre2_substring_get_bynumber.3
│   │   │   ├── pcre2_substring_length_byname.3
│   │   │   ├── pcre2_substring_length_bynumber.3
│   │   │   ├── pcre2_substring_list_free.3
│   │   │   ├── pcre2_substring_list_get.3
│   │   │   ├── pcre2_substring_nametable_scan.3
│   │   │   ├── pcre2_substring_number_from_name.3
│   │   │   ├── pcre2api.3
│   │   │   ├── pcre2build.3
│   │   │   ├── pcre2callout.3
│   │   │   ├── pcre2compat.3
│   │   │   ├── pcre2convert.3
│   │   │   ├── pcre2demo.3
│   │   │   ├── pcre2grep.1
│   │   │   ├── pcre2grep.txt
│   │   │   ├── pcre2jit.3
│   │   │   ├── pcre2limits.3
│   │   │   ├── pcre2matching.3
│   │   │   ├── pcre2partial.3
│   │   │   ├── pcre2pattern.3
│   │   │   ├── pcre2perform.3
│   │   │   ├── pcre2posix.3
│   │   │   ├── pcre2sample.3
│   │   │   ├── pcre2serialize.3
│   │   │   ├── pcre2syntax.3
│   │   │   ├── pcre2test.1
│   │   │   ├── pcre2test.txt
│   │   │   └── pcre2unicode.3
│   │   ├── install-sh
│   │   ├── libpcre2-16.pc.in
│   │   ├── libpcre2-32.pc.in
│   │   ├── libpcre2-8.pc.in
│   │   ├── libpcre2-posix.pc.in
│   │   ├── ltmain.sh
│   │   ├── m4/
│   │   │   ├── ax_pthread.m4
│   │   │   ├── libtool.m4
│   │   │   ├── ltoptions.m4
│   │   │   ├── ltsugar.m4
│   │   │   ├── ltversion.m4
│   │   │   ├── lt~obsolete.m4
│   │   │   └── pcre2_visibility.m4
│   │   ├── missing
│   │   ├── pcre2-config.in
│   │   ├── perltest.sh
│   │   ├── src/
│   │   │   ├── config.h.generic
│   │   │   ├── config.h.in
│   │   │   ├── pcre2.h.generic
│   │   │   ├── pcre2.h.in
│   │   │   ├── pcre2_auto_possess.c
│   │   │   ├── pcre2_chartables.c
│   │   │   ├── pcre2_chartables.c.dist
│   │   │   ├── pcre2_chkdint.c
│   │   │   ├── pcre2_compile.c
│   │   │   ├── pcre2_compile.h
│   │   │   ├── pcre2_compile_class.c
│   │   │   ├── pcre2_config.c
│   │   │   ├── pcre2_context.c
│   │   │   ├── pcre2_convert.c
│   │   │   ├── pcre2_dfa_match.c
│   │   │   ├── pcre2_dftables.c
│   │   │   ├── pcre2_error.c
│   │   │   ├── pcre2_extuni.c
│   │   │   ├── pcre2_find_bracket.c
│   │   │   ├── pcre2_fuzzsupport.c
│   │   │   ├── pcre2_internal.h
│   │   │   ├── pcre2_intmodedep.h
│   │   │   ├── pcre2_jit_char_inc.h
│   │   │   ├── pcre2_jit_compile.c
│   │   │   ├── pcre2_jit_match.c
│   │   │   ├── pcre2_jit_misc.c
│   │   │   ├── pcre2_jit_neon_inc.h
│   │   │   ├── pcre2_jit_simd_inc.h
│   │   │   ├── pcre2_jit_test.c
│   │   │   ├── pcre2_maketables.c
│   │   │   ├── pcre2_match.c
│   │   │   ├── pcre2_match_data.c
│   │   │   ├── pcre2_newline.c
│   │   │   ├── pcre2_ord2utf.c
│   │   │   ├── pcre2_pattern_info.c
│   │   │   ├── pcre2_printint.c
│   │   │   ├── pcre2_script_run.c
│   │   │   ├── pcre2_serialize.c
│   │   │   ├── pcre2_string_utils.c
│   │   │   ├── pcre2_study.c
│   │   │   ├── pcre2_substitute.c
│   │   │   ├── pcre2_substring.c
│   │   │   ├── pcre2_tables.c
│   │   │   ├── pcre2_ucd.c
│   │   │   ├── pcre2_ucp.h
│   │   │   ├── pcre2_ucptables.c
│   │   │   ├── pcre2_util.h
│   │   │   ├── pcre2_valid_utf.c
│   │   │   ├── pcre2_xclass.c
│   │   │   ├── pcre2demo.c
│   │   │   ├── pcre2grep.c
│   │   │   ├── pcre2posix.c
│   │   │   ├── pcre2posix.h
│   │   │   ├── pcre2posix_test.c
│   │   │   └── pcre2test.c
│   │   ├── test-driver
│   │   ├── testdata/
│   │   │   ├── grepbinary
│   │   │   ├── grepfilelist
│   │   │   ├── grepinput
│   │   │   ├── grepinput3
│   │   │   ├── grepinput8
│   │   │   ├── grepinputBad8
│   │   │   ├── grepinputBad8_Trail
│   │   │   ├── grepinputC.bz2
│   │   │   ├── grepinputM
│   │   │   ├── grepinputUN
│   │   │   ├── grepinputv
│   │   │   ├── grepinputx
│   │   │   ├── greplist
│   │   │   ├── grepnot.bz2
│   │   │   ├── grepoutput
│   │   │   ├── grepoutput8
│   │   │   ├── grepoutputC
│   │   │   ├── grepoutputCN
│   │   │   ├── grepoutputCNU
│   │   │   ├── grepoutputCU
│   │   │   ├── grepoutputCbz2
│   │   │   ├── grepoutputCgz
│   │   │   ├── grepoutputN
│   │   │   ├── grepoutputUN
│   │   │   ├── greppatN4
│   │   │   ├── testbtables
│   │   │   ├── testinput1
│   │   │   ├── testinput10
│   │   │   ├── testinput11
│   │   │   ├── testinput12
│   │   │   ├── testinput13
│   │   │   ├── testinput14
│   │   │   ├── testinput15
│   │   │   ├── testinput16
│   │   │   ├── testinput17
│   │   │   ├── testinput18
│   │   │   ├── testinput19
│   │   │   ├── testinput2
│   │   │   ├── testinput20
│   │   │   ├── testinput21
│   │   │   ├── testinput22
│   │   │   ├── testinput23
│   │   │   ├── testinput24
│   │   │   ├── testinput25
│   │   │   ├── testinput26
│   │   │   ├── testinput27
│   │   │   ├── testinput3
│   │   │   ├── testinput4
│   │   │   ├── testinput5
│   │   │   ├── testinput6
│   │   │   ├── testinput7
│   │   │   ├── testinput8
│   │   │   ├── testinput9
│   │   │   ├── testinputEBC
│   │   │   ├── testinputheap
│   │   │   ├── testoutput1
│   │   │   ├── testoutput10
│   │   │   ├── testoutput11-16
│   │   │   ├── testoutput11-32
│   │   │   ├── testoutput12-16
│   │   │   ├── testoutput12-32
│   │   │   ├── testoutput13
│   │   │   ├── testoutput14-16
│   │   │   ├── testoutput14-32
│   │   │   ├── testoutput14-8
│   │   │   ├── testoutput15
│   │   │   ├── testoutput16
│   │   │   ├── testoutput17
│   │   │   ├── testoutput18
│   │   │   ├── testoutput19
│   │   │   ├── testoutput2
│   │   │   ├── testoutput20
│   │   │   ├── testoutput21
│   │   │   ├── testoutput22-16
│   │   │   ├── testoutput22-32
│   │   │   ├── testoutput22-8
│   │   │   ├── testoutput23
│   │   │   ├── testoutput24
│   │   │   ├── testoutput25
│   │   │   ├── testoutput26
│   │   │   ├── testoutput27
│   │   │   ├── testoutput3
│   │   │   ├── testoutput3A
│   │   │   ├── testoutput3B
│   │   │   ├── testoutput4
│   │   │   ├── testoutput5
│   │   │   ├── testoutput6
│   │   │   ├── testoutput7
│   │   │   ├── testoutput8-16-2
│   │   │   ├── testoutput8-16-3
│   │   │   ├── testoutput8-16-4
│   │   │   ├── testoutput8-32-2
│   │   │   ├── testoutput8-32-3
│   │   │   ├── testoutput8-32-4
│   │   │   ├── testoutput8-8-2
│   │   │   ├── testoutput8-8-3
│   │   │   ├── testoutput8-8-4
│   │   │   ├── testoutput9
│   │   │   ├── testoutputEBC
│   │   │   ├── testoutputheap-16
│   │   │   ├── testoutputheap-32
│   │   │   ├── testoutputheap-8
│   │   │   ├── valgrind-jit.supp
│   │   │   ├── wintestinput3
│   │   │   └── wintestoutput3
│   │   └── vms/
│   │       ├── configure.com
│   │       ├── openvms_readme.txt
│   │       ├── pcre2.h_patch
│   │       └── stdint.h
│   └── zlib/
│       ├── CMakeLists.txt
│       ├── ChangeLog
│       ├── FAQ
│       ├── INDEX
│       ├── LICENSE
│       ├── Makefile
│       ├── Makefile.in
│       ├── README
│       ├── adler32.c
│       ├── amiga/
│       │   ├── Makefile.pup
│       │   └── Makefile.sas
│       ├── compress.c
│       ├── configure
│       ├── contrib/
│       │   ├── README.contrib
│       │   ├── ada/
│       │   │   ├── buffer_demo.adb
│       │   │   ├── mtest.adb
│       │   │   ├── read.adb
│       │   │   ├── readme.txt
│       │   │   ├── test.adb
│       │   │   ├── zlib-streams.adb
│       │   │   ├── zlib-streams.ads
│       │   │   ├── zlib-thin.adb
│       │   │   ├── zlib-thin.ads
│       │   │   ├── zlib.adb
│       │   │   ├── zlib.ads
│       │   │   └── zlib.gpr
│       │   ├── blast/
│       │   │   ├── Makefile
│       │   │   ├── README
│       │   │   ├── blast.c
│       │   │   ├── blast.h
│       │   │   ├── test.pk
│       │   │   └── test.txt
│       │   ├── delphi/
│       │   │   ├── ZLib.pas
│       │   │   ├── ZLibConst.pas
│       │   │   ├── readme.txt
│       │   │   └── zlibd32.mak
│       │   ├── dotzlib/
│       │   │   ├── DotZLib/
│       │   │   │   ├── AssemblyInfo.cs
│       │   │   │   ├── ChecksumImpl.cs
│       │   │   │   ├── CircularBuffer.cs
│       │   │   │   ├── CodecBase.cs
│       │   │   │   ├── Deflater.cs
│       │   │   │   ├── DotZLib.cs
│       │   │   │   ├── DotZLib.csproj
│       │   │   │   ├── GZipStream.cs
│       │   │   │   ├── Inflater.cs
│       │   │   │   └── UnitTests.cs
│       │   │   ├── DotZLib.chm
│       │   │   ├── LICENSE_1_0.txt
│       │   │   └── readme.txt
│       │   ├── gcc_gvmat64/
│       │   │   └── gvmat64.S
│       │   ├── infback9/
│       │   │   ├── README
│       │   │   ├── infback9.c
│       │   │   ├── infback9.h
│       │   │   ├── inffix9.h
│       │   │   ├── inflate9.h
│       │   │   ├── inftree9.c
│       │   │   └── inftree9.h
│       │   ├── iostream/
│       │   │   ├── test.cpp
│       │   │   ├── zfstream.cpp
│       │   │   └── zfstream.h
│       │   ├── iostream2/
│       │   │   ├── zstream.h
│       │   │   └── zstream_test.cpp
│       │   ├── iostream3/
│       │   │   ├── README
│       │   │   ├── TODO
│       │   │   ├── test.cc
│       │   │   ├── zfstream.cc
│       │   │   └── zfstream.h
│       │   ├── minizip/
│       │   │   ├── Makefile
│       │   │   ├── Makefile.am
│       │   │   ├── MiniZip64_Changes.txt
│       │   │   ├── MiniZip64_info.txt
│       │   │   ├── configure.ac
│       │   │   ├── crypt.h
│       │   │   ├── ioapi.c
│       │   │   ├── ioapi.h
│       │   │   ├── iowin32.c
│       │   │   ├── iowin32.h
│       │   │   ├── make_vms.com
│       │   │   ├── miniunz.c
│       │   │   ├── miniunzip.1
│       │   │   ├── minizip.1
│       │   │   ├── minizip.c
│       │   │   ├── minizip.pc.in
│       │   │   ├── mztools.c
│       │   │   ├── mztools.h
│       │   │   ├── unzip.c
│       │   │   ├── unzip.h
│       │   │   ├── zip.c
│       │   │   └── zip.h
│       │   ├── nuget/
│       │   │   └── nuget.csproj
│       │   ├── pascal/
│       │   │   ├── example.pas
│       │   │   ├── readme.txt
│       │   │   ├── zlibd32.mak
│       │   │   └── zlibpas.pas
│       │   ├── puff/
│       │   │   ├── Makefile
│       │   │   ├── README
│       │   │   ├── puff.c
│       │   │   ├── puff.h
│       │   │   ├── pufftest.c
│       │   │   └── zeros.raw
│       │   ├── testzlib/
│       │   │   ├── testzlib.c
│       │   │   └── testzlib.txt
│       │   ├── untgz/
│       │   │   ├── Makefile
│       │   │   ├── Makefile.msc
│       │   │   └── untgz.c
│       │   └── vstudio/
│       │       ├── readme.txt
│       │       ├── vc10/
│       │       │   ├── miniunz.vcxproj
│       │       │   ├── miniunz.vcxproj.filters
│       │       │   ├── minizip.vcxproj
│       │       │   ├── minizip.vcxproj.filters
│       │       │   ├── testzlib.vcxproj
│       │       │   ├── testzlib.vcxproj.filters
│       │       │   ├── testzlibdll.vcxproj
│       │       │   ├── testzlibdll.vcxproj.filters
│       │       │   ├── zlib.rc
│       │       │   ├── zlibstat.vcxproj
│       │       │   ├── zlibstat.vcxproj.filters
│       │       │   ├── zlibvc.vcxproj
│       │       │   └── zlibvc.vcxproj.filters
│       │       ├── vc11/
│       │       │   ├── miniunz.vcxproj
│       │       │   ├── minizip.vcxproj
│       │       │   ├── testzlib.vcxproj
│       │       │   ├── testzlibdll.vcxproj
│       │       │   ├── zlib.rc
│       │       │   ├── zlibstat.vcxproj
│       │       │   └── zlibvc.vcxproj
│       │       ├── vc12/
│       │       │   ├── miniunz.vcxproj
│       │       │   ├── minizip.vcxproj
│       │       │   ├── testzlib.vcxproj
│       │       │   ├── testzlibdll.vcxproj
│       │       │   ├── zlib.rc
│       │       │   ├── zlibstat.vcxproj
│       │       │   └── zlibvc.vcxproj
│       │       ├── vc14/
│       │       │   ├── miniunz.vcxproj
│       │       │   ├── minizip.vcxproj
│       │       │   ├── testzlib.vcxproj
│       │       │   ├── testzlibdll.vcxproj
│       │       │   ├── zlib.rc
│       │       │   ├── zlibstat.vcxproj
│       │       │   └── zlibvc.vcxproj
│       │       ├── vc17/
│       │       │   ├── miniunz.vcxproj
│       │       │   ├── minizip.vcxproj
│       │       │   ├── testzlib.vcxproj
│       │       │   ├── testzlibdll.vcxproj
│       │       │   ├── zlib.rc
│       │       │   ├── zlibstat.vcxproj
│       │       │   └── zlibvc.vcxproj
│       │       └── vc9/
│       │           └── zlib.rc
│       ├── crc32.c
│       ├── crc32.h
│       ├── deflate.c
│       ├── deflate.h
│       ├── doc/
│       │   ├── algorithm.txt
│       │   ├── rfc1950.txt
│       │   ├── rfc1951.txt
│       │   ├── rfc1952.txt
│       │   └── txtvsbin.txt
│       ├── examples/
│       │   ├── README.examples
│       │   ├── enough.c
│       │   ├── fitblk.c
│       │   ├── gun.c
│       │   ├── gzappend.c
│       │   ├── gzjoin.c
│       │   ├── gzlog.c
│       │   ├── gzlog.h
│       │   ├── gznorm.c
│       │   ├── zlib_how.html
│       │   ├── zpipe.c
│       │   ├── zran.c
│       │   └── zran.h
│       ├── gzclose.c
│       ├── gzguts.h
│       ├── gzlib.c
│       ├── gzread.c
│       ├── gzwrite.c
│       ├── infback.c
│       ├── inffast.c
│       ├── inffast.h
│       ├── inffixed.h
│       ├── inflate.c
│       ├── inflate.h
│       ├── inftrees.c
│       ├── inftrees.h
│       ├── make_vms.com
│       ├── msdos/
│       │   ├── Makefile.bor
│       │   ├── Makefile.dj2
│       │   ├── Makefile.emx
│       │   ├── Makefile.msc
│       │   └── Makefile.tc
│       ├── nintendods/
│       │   ├── Makefile
│       │   └── README
│       ├── old/
│       │   ├── Makefile.emx
│       │   ├── Makefile.riscos
│       │   ├── README
│       │   ├── descrip.mms
│       │   ├── os2/
│       │   │   └── Makefile.os2
│       │   └── visual-basic.txt
│       ├── os400/
│       │   ├── README400
│       │   ├── bndsrc
│       │   ├── make.sh
│       │   └── zlib.inc
│       ├── qnx/
│       │   └── package.qpg
│       ├── test/
│       │   ├── example.c
│       │   ├── infcover.c
│       │   └── minigzip.c
│       ├── treebuild.xml
│       ├── trees.c
│       ├── trees.h
│       ├── uncompr.c
│       ├── watcom/
│       │   ├── watcom_f.mak
│       │   └── watcom_l.mak
│       ├── win32/
│       │   ├── DLL_FAQ.txt
│       │   ├── Makefile.bor
│       │   ├── Makefile.gcc
│       │   ├── Makefile.msc
│       │   ├── README-WIN32.txt
│       │   ├── VisualC.txt
│       │   └── zlib1.rc
│       ├── zconf.h
│       ├── zconf.h.cmakein
│       ├── zconf.h.in
│       ├── zlib.3
│       ├── zlib.h
│       ├── zlib.pc.cmakein
│       ├── zlib.pc.in
│       ├── zutil.c
│       └── zutil.h
├── CMakeLists.txt
├── COPYING.txt
├── ChangeLog.txt
├── README.md
├── ci_scripts/
│   ├── PKGBUILD
│   ├── gddeploy.py
│   ├── newgddeploy.py
│   ├── rpath_adjust.sh
│   └── winget/
│       ├── Sigil-Ebook.Sigil.installer.yaml
│       ├── Sigil-Ebook.Sigil.locale.en-US.yaml
│       ├── Sigil-Ebook.Sigil.yaml
│       └── build.ps1
├── cmake_extras/
│   ├── FindMiniZip.cmake
│   ├── FindPackageHandleStandardArgs.cmake
│   ├── FindPackageMessage.cmake
│   └── FindPython3MacFramework.cmake
├── docker-compose.yml
├── docs/
│   ├── Building_A_Relocatable_Python_3.14_Framework_on_MacOSX.txt
│   ├── Building_PySide6_for_Qt6_on_MacOSX.txt
│   ├── Building_Qt6_From_Source_on_MacOSX.txt
│   ├── Building_Qt_for_Sigil_on_Windows.html
│   ├── Building_Qt_for_Sigil_on_Windows.md
│   ├── Building_Sigil_AppImage.md
│   ├── Building_Sigil_On_MacOSX_With_Qt6.txt
│   ├── Building_Sigil_on_Windows.html
│   ├── Building_Sigil_on_Windows.md
│   ├── Building_Sigil_on_Windows_with_Qt6.md
│   ├── Building_on_Linux.md
│   ├── Building_on_Linux_older.md
│   ├── CodeStyle.md
│   ├── Linux_Virtual_Plugin_Environment.md
│   ├── Qt_Patches/
│   │   ├── prev/
│   │   │   ├── CVE-2023-43114-6.5-qtbase.patch
│   │   │   ├── qt515.9-fix_cve-2023-24607-qtbase.patch
│   │   │   ├── qt515.9_fix_h6_insertParagrahph.patch
│   │   │   ├── qt515.9_fix_missing_macos_menubar.patch
│   │   │   ├── qt515.9_official_fix_qtabbar_segfault.patch
│   │   │   ├── qt650_avoid_qtabbar_segfault.patch
│   │   │   ├── qt650_fix_h6_insertParagraph.patch
│   │   │   ├── qt650_fix_missing_macos_menubar.patch
│   │   │   ├── qt650_post_install_macos_ignore_bad_cups_cmake_find_failure.patch
│   │   │   ├── qt652_CVE-2023-38197-qtbase-6.5.diff
│   │   │   ├── qt652_fix_h6_insertParagraph.patch
│   │   │   ├── qt652_fix_missing_macos_menubar.patch
│   │   │   ├── qt652_not_needed_CVE-2023-32573-qtsvg-6.5.diff
│   │   │   ├── qt652_not_needed_CVE-2023-32762-qtbase-6.5.diff
│   │   │   ├── qt652_not_needed_CVE-2023-32763-qtbase-6.5.diff
│   │   │   ├── qt652_not_needed_CVE-2023-33285-qtbase-6.5.diff
│   │   │   ├── qt652_not_needed_CVE-2023-34410-qtbase-6.5.diff
│   │   │   ├── qt652_not_needed_CVE-2023-37369-qtbase-6.5.diff
│   │   │   ├── qt652_not_needed_qt651_addl_cve_fixes_qtbase.patch
│   │   │   ├── qt652_post_install_macos_ignore_bad_cups_cmake_find_failure.patch
│   │   │   ├── qt652_win-only_fix-identical-edid-qtbase-6.5.patch
│   │   │   ├── qt653_fix_transient_children-qtbase.patch
│   │   │   ├── qt662_fix_qtreeview_perf_issue_0b474e1.diff
│   │   │   ├── qt672_post_install_macos_ignore_bad_cups_cmake_find_failure.patch
│   │   │   ├── qt692_9dd5105_fix.patch
│   │   │   ├── qt692_ddcd304_reverse_me.patch
│   │   │   ├── qt693_fix_mesa_issues.patch
│   │   │   └── qt693_memory_leak_fix_886ff03.patch
│   │   ├── qt6102_fix_qwindows_dialogs.patch
│   │   ├── qt672_fix_h6_insertParagraph.patch
│   │   ├── qt672_fix_missing_macos_menubar.patch
│   │   ├── qt672_freetype_add_brotli_for_woff2.patch
│   │   └── qt682_post_install_macos_ignore_bad_cups_cmake_find_failure.patch
│   ├── ReleaseChecklist.md
│   ├── Sigil_Plugin_Framework_rev15.epub
│   ├── Translating.md
│   ├── plugin-reqs.txt
│   └── sigil_build.txt
├── installer/
│   ├── Sigil.iss
│   └── win_installer_note.txt
├── internal/
│   ├── about.md
│   ├── exec_wrapper/
│   │   ├── CMakeLists.txt
│   │   └── exec.c
│   └── gumbo/
│       ├── CHANGES.md
│       ├── CMakeLists.txt
│       ├── CONTRIBUTING.md
│       ├── COPYING
│       ├── DEBUGGING.md
│       ├── README.md
│       ├── Thanks
│       ├── attribute.c
│       ├── attribute.h
│       ├── char_ref.c
│       ├── char_ref.h
│       ├── char_ref.rl
│       ├── error.c
│       ├── error.h
│       ├── foreign_attrs.c
│       ├── gumbo.h
│       ├── gumbo_edit.c
│       ├── gumbo_edit.h
│       ├── include/
│       │   └── strings.h
│       ├── insertion_mode.h
│       ├── parser.c
│       ├── parser.h
│       ├── replacement.h
│       ├── string_buffer.c
│       ├── string_buffer.h
│       ├── string_piece.c
│       ├── string_piece.h
│       ├── svg_attrs.c
│       ├── svg_tags.c
│       ├── tag.c
│       ├── tag.in
│       ├── tag_enum.h
│       ├── tag_perf.h
│       ├── tag_sizes.h
│       ├── tag_strings.h
│       ├── token_type.h
│       ├── tokenizer.c
│       ├── tokenizer.h
│       ├── tokenizer_states.h
│       ├── utf8.c
│       ├── utf8.h
│       ├── util.c
│       ├── util.h
│       ├── vector.c
│       └── vector.h
├── src/
│   ├── BookManipulation/
│   │   ├── Book.cpp
│   │   ├── Book.h
│   │   ├── BookReports.cpp
│   │   ├── BookReports.h
│   │   ├── CleanSource.cpp
│   │   ├── CleanSource.h
│   │   ├── FolderKeeper.cpp
│   │   ├── FolderKeeper.h
│   │   ├── HTMLMetadata.cpp
│   │   ├── HTMLMetadata.h
│   │   ├── Headings.cpp
│   │   ├── Headings.h
│   │   ├── Index.cpp
│   │   ├── Index.h
│   │   ├── XhtmlDoc.cpp
│   │   └── XhtmlDoc.h
│   ├── CMakeLists.txt
│   ├── Dialogs/
│   │   ├── About.cpp
│   │   ├── About.h
│   │   ├── AddAutomatePlugin.cpp
│   │   ├── AddAutomatePlugin.h
│   │   ├── AddAutomateTool.cpp
│   │   ├── AddAutomateTool.h
│   │   ├── AddClips.cpp
│   │   ├── AddClips.h
│   │   ├── AddMetadata.cpp
│   │   ├── AddMetadata.h
│   │   ├── AddRoles.cpp
│   │   ├── AddRoles.h
│   │   ├── AddSemantics.cpp
│   │   ├── AddSemantics.h
│   │   ├── AutomateEditor.cpp
│   │   ├── AutomateEditor.h
│   │   ├── CPCompare.cpp
│   │   ├── CPCompare.h
│   │   ├── ChgViewer.cpp
│   │   ├── ChgViewer.h
│   │   ├── ClipEditor.cpp
│   │   ├── ClipEditor.h
│   │   ├── ClipboardHistorySelector.cpp
│   │   ├── ClipboardHistorySelector.h
│   │   ├── Controls.cpp
│   │   ├── Controls.h
│   │   ├── CountsReport.cpp
│   │   ├── CountsReport.h
│   │   ├── DeleteFiles.cpp
│   │   ├── DeleteFiles.h
│   │   ├── DeleteStyles.cpp
│   │   ├── DeleteStyles.h
│   │   ├── DryRunReplace.cpp
│   │   ├── DryRunReplace.h
│   │   ├── EditRO.cpp
│   │   ├── EditRO.h
│   │   ├── EditTOC.cpp
│   │   ├── EditTOC.h
│   │   ├── EmptyLayout.cpp
│   │   ├── EmptyLayout.h
│   │   ├── HeadingSelector.cpp
│   │   ├── HeadingSelector.h
│   │   ├── ImageResizeDialog.cpp
│   │   ├── ImageResizeDialog.h
│   │   ├── IndexEditor.cpp
│   │   ├── IndexEditor.h
│   │   ├── Inspector.cpp
│   │   ├── Inspector.h
│   │   ├── LinkJavascripts.cpp
│   │   ├── LinkJavascripts.h
│   │   ├── LinkStylesheets.cpp
│   │   ├── LinkStylesheets.h
│   │   ├── ListSelector.h
│   │   ├── MDViewer.cpp
│   │   ├── MDViewer.h
│   │   ├── ManageAutomation.cpp
│   │   ├── ManageAutomation.h
│   │   ├── ManageRepos.cpp
│   │   ├── ManageRepos.h
│   │   ├── MetaEditor.cpp
│   │   ├── MetaEditor.h
│   │   ├── MetaEditorItemDelegate.cpp
│   │   ├── MetaEditorItemDelegate.h
│   │   ├── OpenWithName.cpp
│   │   ├── OpenWithName.h
│   │   ├── PluginRunner.cpp
│   │   ├── PluginRunner.h
│   │   ├── PreferenceWidgets/
│   │   │   ├── AppearanceWidget.cpp
│   │   │   ├── AppearanceWidget.h
│   │   │   ├── GeneralSettingsWidget.cpp
│   │   │   ├── GeneralSettingsWidget.h
│   │   │   ├── KeyboardShortcutsWidget.cpp
│   │   │   ├── KeyboardShortcutsWidget.h
│   │   │   ├── LanguageWidget.cpp
│   │   │   ├── LanguageWidget.h
│   │   │   ├── PluginWidget.cpp
│   │   │   ├── PluginWidget.h
│   │   │   ├── PreferencesWidget.h
│   │   │   ├── PreserveEntitiesWidget.cpp
│   │   │   ├── PreserveEntitiesWidget.h
│   │   │   ├── SpellCheckWidget.cpp
│   │   │   └── SpellCheckWidget.h
│   │   ├── Preferences.cpp
│   │   ├── Preferences.h
│   │   ├── PreviewFileDialog.cpp
│   │   ├── PreviewFileDialog.h
│   │   ├── PythonFunctionEditor.cpp
│   │   ├── PythonFunctionEditor.h
│   │   ├── RERenamer.cpp
│   │   ├── RERenamer.h
│   │   ├── RETable.cpp
│   │   ├── RETable.h
│   │   ├── RenameTemplate.cpp
│   │   ├── RenameTemplate.h
│   │   ├── ReplacementChooser.cpp
│   │   ├── ReplacementChooser.h
│   │   ├── RepoLog.cpp
│   │   ├── RepoLog.h
│   │   ├── Reports.cpp
│   │   ├── Reports.h
│   │   ├── ReportsWidgets/
│   │   │   ├── AllFilesWidget.cpp
│   │   │   ├── AllFilesWidget.h
│   │   │   ├── CSSFilesWidget.cpp
│   │   │   ├── CSSFilesWidget.h
│   │   │   ├── CharactersInHTMLFilesWidget.cpp
│   │   │   ├── CharactersInHTMLFilesWidget.h
│   │   │   ├── ClassesInHTMLFilesWidget.cpp
│   │   │   ├── ClassesInHTMLFilesWidget.h
│   │   │   ├── HTMLFilesWidget.cpp
│   │   │   ├── HTMLFilesWidget.h
│   │   │   ├── ImageFilesWidget.cpp
│   │   │   ├── ImageFilesWidget.h
│   │   │   ├── LinksWidget.cpp
│   │   │   ├── LinksWidget.h
│   │   │   ├── ReportsWidget.h
│   │   │   ├── StylesInCSSFilesWidget.cpp
│   │   │   └── StylesInCSSFilesWidget.h
│   │   ├── SearchEditor.cpp
│   │   ├── SearchEditor.h
│   │   ├── SearchEditorItemDelegate.cpp
│   │   ├── SearchEditorItemDelegate.h
│   │   ├── SelectCharacter.cpp
│   │   ├── SelectCharacter.h
│   │   ├── SelectCheckpoint.cpp
│   │   ├── SelectCheckpoint.h
│   │   ├── SelectFiles.cpp
│   │   ├── SelectFiles.h
│   │   ├── SelectFolder.cpp
│   │   ├── SelectFolder.h
│   │   ├── SelectHyperlink.cpp
│   │   ├── SelectHyperlink.h
│   │   ├── SelectId.cpp
│   │   ├── SelectId.h
│   │   ├── SelectIndexTitle.cpp
│   │   ├── SelectIndexTitle.h
│   │   ├── SemanticTargetID.cpp
│   │   ├── SemanticTargetID.h
│   │   ├── SourceViewer.cpp
│   │   ├── SourceViewer.h
│   │   ├── SpellcheckEditor.cpp
│   │   ├── SpellcheckEditor.h
│   │   ├── StyledTextDelegate.cpp
│   │   ├── StyledTextDelegate.h
│   │   ├── TreeItem.cpp
│   │   ├── TreeItem.h
│   │   ├── TreeModel.cpp
│   │   ├── TreeModel.h
│   │   ├── ViewAV.cpp
│   │   ├── ViewAV.h
│   │   ├── ViewFont.cpp
│   │   ├── ViewFont.h
│   │   ├── ViewImage.cpp
│   │   └── ViewImage.h
│   ├── EmbedPython/
│   │   ├── DiffRec.h
│   │   ├── EmbeddedPython.cpp
│   │   ├── EmbeddedPython.h
│   │   ├── PyObjectPtr.cpp
│   │   ├── PyObjectPtr.h
│   │   ├── PythonRoutines.cpp
│   │   └── PythonRoutines.h
│   ├── Exporters/
│   │   ├── EncryptionXmlWriter.cpp
│   │   ├── EncryptionXmlWriter.h
│   │   ├── ExportEPUB.cpp
│   │   ├── ExportEPUB.h
│   │   ├── Exporter.h
│   │   ├── ExporterFactory.cpp
│   │   ├── ExporterFactory.h
│   │   ├── NCXWriter.cpp
│   │   ├── NCXWriter.h
│   │   ├── XMLWriter.cpp
│   │   └── XMLWriter.h
│   ├── Form_Files/
│   │   ├── About.ui
│   │   ├── AddAutomatePlugin.ui
│   │   ├── AddAutomateTool.ui
│   │   ├── AddClips.ui
│   │   ├── AddMetadata.ui
│   │   ├── AddRoles.ui
│   │   ├── AddSemantics.ui
│   │   ├── AdjustImage.ui
│   │   ├── AutomateEditor.ui
│   │   ├── ClipEditor.ui
│   │   ├── ClipboardHistorySelector.ui
│   │   ├── Controls.ui
│   │   ├── CountsReport.ui
│   │   ├── DeleteFiles.ui
│   │   ├── DeleteStyles.ui
│   │   ├── DryRunReplace.ui
│   │   ├── EditRO.ui
│   │   ├── EditTOC.ui
│   │   ├── EmptyLayout.ui
│   │   ├── FindReplace.ui
│   │   ├── HeadingSelector.ui
│   │   ├── IndexEditor.ui
│   │   ├── LinkJavascripts.ui
│   │   ├── LinkStylesheets.ui
│   │   ├── MDViewer.ui
│   │   ├── ManageAutomation.ui
│   │   ├── ManageRepos.ui
│   │   ├── MetaEditor.ui
│   │   ├── OpenWithName.ui
│   │   ├── PAppearanceWidget.ui
│   │   ├── PGeneralSettingsWidget.ui
│   │   ├── PKeyboardShortcutsWidget.ui
│   │   ├── PLanguageWidget.ui
│   │   ├── PPluginWidget.ui
│   │   ├── PPreserveEntitiesWidget.ui
│   │   ├── PSpellCheckWidget.ui
│   │   ├── PluginRunner.ui
│   │   ├── Preferences.ui
│   │   ├── RERenamer.ui
│   │   ├── RETable.ui
│   │   ├── RenameTemplate.ui
│   │   ├── ReplacementChooser.ui
│   │   ├── Reports.ui
│   │   ├── ReportsAllFilesWidget.ui
│   │   ├── ReportsCSSFilesWidget.ui
│   │   ├── ReportsCharactersInHTMLFilesWidget.ui
│   │   ├── ReportsClassesInHTMLFilesWidget.ui
│   │   ├── ReportsHTMLFilesWidget.ui
│   │   ├── ReportsImageFilesWidget.ui
│   │   ├── ReportsLinksWidget.ui
│   │   ├── ReportsStylesInCSSFilesWidget.ui
│   │   ├── SearchEditor.ui
│   │   ├── SelectCharacter.ui
│   │   ├── SelectCheckpoint.ui
│   │   ├── SelectFiles.ui
│   │   ├── SelectFolder.ui
│   │   ├── SelectHyperlink.ui
│   │   ├── SelectId.ui
│   │   ├── SelectIndexTitle.ui
│   │   ├── SemanticTargetID.ui
│   │   ├── SpellcheckEditor.ui
│   │   └── main.ui
│   ├── Importers/
│   │   ├── ImportEPUB.cpp
│   │   ├── ImportEPUB.h
│   │   ├── ImportHTML.cpp
│   │   ├── ImportHTML.h
│   │   ├── ImportTXT.cpp
│   │   ├── ImportTXT.h
│   │   ├── Importer.cpp
│   │   ├── Importer.h
│   │   ├── ImporterFactory.cpp
│   │   └── ImporterFactory.h
│   ├── MainUI/
│   │   ├── BookBrowser.cpp
│   │   ├── BookBrowser.h
│   │   ├── ClipsWindow.cpp
│   │   ├── ClipsWindow.h
│   │   ├── FindReplace.cpp
│   │   ├── FindReplace.h
│   │   ├── MainApplication.cpp
│   │   ├── MainApplication.h
│   │   ├── MainWindow.cpp
│   │   ├── MainWindow.h
│   │   ├── OPFModel.cpp
│   │   ├── OPFModel.h
│   │   ├── OPFModelItem.cpp
│   │   ├── OPFModelItem.h
│   │   ├── PreviewWindow.cpp
│   │   ├── PreviewWindow.h
│   │   ├── TOCModel.cpp
│   │   ├── TOCModel.h
│   │   ├── TableOfContents.cpp
│   │   ├── TableOfContents.h
│   │   ├── ValidationResultsView.cpp
│   │   └── ValidationResultsView.h
│   ├── Misc/
│   │   ├── AppEventFilter.cpp
│   │   ├── AppEventFilter.h
│   │   ├── AriaClips.cpp
│   │   ├── AriaClips.h
│   │   ├── AriaRoles.cpp
│   │   ├── AriaRoles.h
│   │   ├── AsciiFy.cpp
│   │   ├── AsciiFy.h
│   │   ├── CSSHighlighter.cpp
│   │   ├── CSSHighlighter.h
│   │   ├── CodepointNames.cpp
│   │   ├── CodepointNames.h
│   │   ├── DescriptiveInfo.h
│   │   ├── FilenameDelegate.cpp
│   │   ├── FilenameDelegate.h
│   │   ├── FindReplaceQLineEdit.cpp
│   │   ├── FindReplaceQLineEdit.h
│   │   ├── FontObfuscation.cpp
│   │   ├── FontObfuscation.h
│   │   ├── GuideItems.cpp
│   │   ├── GuideItems.h
│   │   ├── HTMLEncodingResolver.cpp
│   │   ├── HTMLEncodingResolver.h
│   │   ├── HTMLSpellCheck.cpp
│   │   ├── HTMLSpellCheck.h
│   │   ├── HTMLSpellCheckML.cpp
│   │   ├── HTMLSpellCheckML.h
│   │   ├── KeyboardShortcut.cpp
│   │   ├── KeyboardShortcut.h
│   │   ├── KeyboardShortcutManager.cpp
│   │   ├── KeyboardShortcutManager.h
│   │   ├── KeyboardShortcut_p.h
│   │   ├── Landmarks.cpp
│   │   ├── Landmarks.h
│   │   ├── Language.cpp
│   │   ├── Language.h
│   │   ├── LocaleAwareItem.h
│   │   ├── MarcRelators.cpp
│   │   ├── MarcRelators.h
│   │   ├── MediaTypes.cpp
│   │   ├── MediaTypes.h
│   │   ├── Ncx20051Dtd.cpp
│   │   ├── NumericItem.h
│   │   ├── OpenExternally.cpp
│   │   ├── OpenExternally.h
│   │   ├── PasteTarget.h
│   │   ├── PasteTargetComboBox.cpp
│   │   ├── PasteTargetComboBox.h
│   │   ├── Plugin.cpp
│   │   ├── Plugin.h
│   │   ├── PluginDB.cpp
│   │   ├── PluginDB.h
│   │   ├── PrettyPrintProps.cpp
│   │   ├── PrettyPrintProps.h
│   │   ├── PythonHighlighter.cpp
│   │   ├── PythonHighlighter.h
│   │   ├── SearchOperations.cpp
│   │   ├── SearchOperations.h
│   │   ├── SearchUtils.cpp
│   │   ├── SearchUtils.h
│   │   ├── SettingsStore.cpp
│   │   ├── SettingsStore.h
│   │   ├── SigilDarkStyle.cpp
│   │   ├── SigilDarkStyle.h
│   │   ├── SleepFunctions.h
│   │   ├── SpellCheck.cpp
│   │   ├── SpellCheck.h
│   │   ├── TOCHTMLWriter.cpp
│   │   ├── TOCHTMLWriter.h
│   │   ├── TempFolder.cpp
│   │   ├── TempFolder.h
│   │   ├── UILanguage.cpp
│   │   ├── UILanguage.h
│   │   ├── URLInterceptor.cpp
│   │   ├── URLInterceptor.h
│   │   ├── URLSchemeHandler.cpp
│   │   ├── URLSchemeHandler.h
│   │   ├── UpdateChecker.cpp
│   │   ├── UpdateChecker.h
│   │   ├── Utility.cpp
│   │   ├── Utility.h
│   │   ├── ValidationResult.cpp
│   │   ├── ValidationResult.h
│   │   ├── WebProfileMgr.cpp
│   │   ├── WebProfileMgr.h
│   │   ├── WrapIndicator.h
│   │   ├── XHTMLHighlighter.cpp
│   │   ├── XHTMLHighlighter.h
│   │   ├── XHTMLHighlighter2.cpp
│   │   ├── XHTMLHighlighter2.h
│   │   ├── XMLEntities.cpp
│   │   ├── XMLEntities.h
│   │   ├── XhtmlEntitiesDtd.cpp
│   │   ├── macos_menu_and_window_fixes.mm
│   │   ├── webviewprinter.cpp
│   │   └── webviewprinter.h
│   ├── MiscEditors/
│   │   ├── ClipEditorModel.cpp
│   │   ├── ClipEditorModel.h
│   │   ├── ClipEditorTreeView.cpp
│   │   ├── ClipEditorTreeView.h
│   │   ├── IndexEditorModel.cpp
│   │   ├── IndexEditorModel.h
│   │   ├── IndexEditorTreeView.cpp
│   │   ├── IndexEditorTreeView.h
│   │   ├── IndexEntries.cpp
│   │   ├── IndexEntries.h
│   │   ├── IndexHTMLWriter.cpp
│   │   ├── IndexHTMLWriter.h
│   │   ├── MetaEditorTreeView.cpp
│   │   ├── MetaEditorTreeView.h
│   │   ├── SearchEditorModel.cpp
│   │   ├── SearchEditorModel.h
│   │   ├── SearchEditorTreeView.cpp
│   │   └── SearchEditorTreeView.h
│   ├── PCRE2/
│   │   ├── PCRECache.cpp
│   │   ├── PCRECache.h
│   │   ├── PCREErrors.cpp
│   │   ├── PCREErrors.h
│   │   ├── PCREReplaceTextBuilder.cpp
│   │   ├── PCREReplaceTextBuilder.h
│   │   ├── SPCRE.cpp
│   │   └── SPCRE.h
│   ├── Parsers/
│   │   ├── CSSDeNest.cpp
│   │   ├── CSSDeNest.h
│   │   ├── CSSInfo.cpp
│   │   ├── CSSInfo.h
│   │   ├── CSSToolbox.cpp
│   │   ├── CSSToolbox.h
│   │   ├── GumboInterface.cpp
│   │   ├── GumboInterface.h
│   │   ├── HTMLStyleInfo.cpp
│   │   ├── HTMLStyleInfo.h
│   │   ├── OPFParser.cpp
│   │   ├── OPFParser.h
│   │   ├── QuickParser.cpp
│   │   ├── QuickParser.h
│   │   ├── TagAtts.cpp
│   │   ├── TagAtts.h
│   │   ├── TagLister.cpp
│   │   ├── TagLister.h
│   │   ├── qCSSParser.cpp
│   │   ├── qCSSParser.h
│   │   ├── qCSSProperties.cpp
│   │   ├── qCSSProperties.h
│   │   ├── qCSSUtils.cpp
│   │   └── qCSSUtils.h
│   ├── Query/
│   │   ├── CDocument.cpp
│   │   ├── CDocument.h
│   │   ├── CNode.cpp
│   │   ├── CNode.h
│   │   ├── CObject.cpp
│   │   ├── CObject.h
│   │   ├── CParser.cpp
│   │   ├── CParser.h
│   │   ├── CQueryUtil.cpp
│   │   ├── CQueryUtil.h
│   │   ├── CSelection.cpp
│   │   ├── CSelection.h
│   │   ├── CSelector.cpp
│   │   ├── CSelector.h
│   │   └── LICENSE
│   ├── ResourceObjects/
│   │   ├── AudioResource.cpp
│   │   ├── AudioResource.h
│   │   ├── CSSResource.cpp
│   │   ├── CSSResource.h
│   │   ├── FontResource.cpp
│   │   ├── FontResource.h
│   │   ├── HTMLResource.cpp
│   │   ├── HTMLResource.h
│   │   ├── ImageResource.cpp
│   │   ├── ImageResource.h
│   │   ├── MiscTextResource.cpp
│   │   ├── MiscTextResource.h
│   │   ├── NCXResource.cpp
│   │   ├── NCXResource.h
│   │   ├── NavProcessor.cpp
│   │   ├── NavProcessor.h
│   │   ├── OPFResource.cpp
│   │   ├── OPFResource.h
│   │   ├── PdfResource.cpp
│   │   ├── PdfResource.h
│   │   ├── Resource.cpp
│   │   ├── Resource.h
│   │   ├── SVGResource.cpp
│   │   ├── SVGResource.h
│   │   ├── TextResource.cpp
│   │   ├── TextResource.h
│   │   ├── VideoResource.cpp
│   │   ├── VideoResource.h
│   │   ├── XMLResource.cpp
│   │   └── XMLResource.h
│   ├── Resource_Files/
│   │   ├── About/
│   │   │   └── About.qrc
│   │   ├── bash/
│   │   │   └── sigil-sh_install
│   │   ├── dark/
│   │   │   ├── dark.qrc
│   │   │   ├── lin_dark_scrollbar.css
│   │   │   ├── mac_dark_scrollbar.css
│   │   │   ├── win-dark-style.qss
│   │   │   └── win_dark_scrollbar.css
│   │   ├── dictionaries/
│   │   │   ├── About.txt
│   │   │   ├── COPYING_GPLv2.txt
│   │   │   ├── COPYING_GPLv3.txt
│   │   │   ├── COPYING_LGPL_v2.0.txt
│   │   │   ├── COPYING_LGPL_v2.1.txt
│   │   │   ├── License_es.md
│   │   │   ├── README.txt
│   │   │   ├── README_de_DE_frami.txt
│   │   │   ├── README_en_GB.txt
│   │   │   ├── README_en_US.txt
│   │   │   ├── README_es_ANY.txt
│   │   │   ├── README_extension_owner.txt
│   │   │   ├── README_fr.txt
│   │   │   ├── README_hyph_de.txt
│   │   │   ├── README_hyph_en_GB.txt
│   │   │   ├── README_hyph_en_US.txt
│   │   │   ├── README_hyph_es.txt
│   │   │   ├── README_hyph_fr.txt
│   │   │   ├── de_DE.aff
│   │   │   ├── de_DE.dic
│   │   │   ├── en_GB.aff
│   │   │   ├── en_GB.dic
│   │   │   ├── en_US.aff
│   │   │   ├── en_US.dic
│   │   │   ├── es.aff
│   │   │   ├── es.dic
│   │   │   ├── fr.aff
│   │   │   ├── fr.dic
│   │   │   ├── hyph_de_DE.dic
│   │   │   ├── hyph_en_GB.dic
│   │   │   ├── hyph_en_US.dic
│   │   │   ├── hyph_es.dic
│   │   │   ├── hyph_fr.dic
│   │   │   └── license.txt
│   │   ├── dtd/
│   │   │   └── xhtml-entities.dtd
│   │   ├── examples/
│   │   │   ├── clip_entries.ini
│   │   │   └── search_entries.ini
│   │   ├── fluent/
│   │   │   └── fluent.qrc
│   │   ├── freedesktop/
│   │   │   ├── sigil-appimage.desktop
│   │   │   └── sigil.desktop
│   │   ├── icon/
│   │   │   ├── app_icons_alt/
│   │   │   │   ├── Sigil.icns
│   │   │   │   └── app_icons.qrc
│   │   │   ├── app_icons_orig/
│   │   │   │   ├── Sigil.icns
│   │   │   │   └── app_icons.qrc
│   │   │   ├── epub.icns
│   │   │   └── icon.qrc
│   │   ├── javascript/
│   │   │   ├── book_view_current_location.js
│   │   │   ├── format_block.js
│   │   │   ├── get_ancestor.js
│   │   │   ├── get_ancestor_attribute.js
│   │   │   ├── get_block.js
│   │   │   ├── get_parent_tags.js
│   │   │   ├── get_range.js
│   │   │   ├── get_segment_html.js
│   │   │   ├── get_tag_html.js
│   │   │   ├── javascript.qrc
│   │   │   ├── jquery.scrollTo-2.1.2-min.js
│   │   │   ├── new_selection.js
│   │   │   └── set_ancestor_attribute.js
│   │   ├── mac/
│   │   │   └── MacOSXBundleInfo.plist
│   │   ├── main/
│   │   │   └── main.qrc
│   │   ├── material/
│   │   │   └── material.qrc
│   │   ├── plugin_launchers/
│   │   │   └── python/
│   │   │       ├── bookcontainer.py
│   │   │       ├── compatibility_utils.py
│   │   │       ├── epub_utils.py
│   │   │       ├── hrefutils.py
│   │   │       ├── imghdr.py
│   │   │       ├── inputcontainer.py
│   │   │       ├── launcher.py
│   │   │       ├── navprocessor.py
│   │   │       ├── opf_parser.py
│   │   │       ├── outputcontainer.py
│   │   │       ├── pluginhunspell.py
│   │   │       ├── pluginhunspellml.py
│   │   │       ├── preferences.py
│   │   │       ├── quickparser.py
│   │   │       ├── sigil_bs4/
│   │   │       │   ├── AUTHORS.txt
│   │   │       │   ├── COPYING.txt
│   │   │       │   ├── __init__.py
│   │   │       │   ├── builder/
│   │   │       │   │   ├── __init__.py
│   │   │       │   │   ├── _html5lib.py
│   │   │       │   │   ├── _htmlparser.py
│   │   │       │   │   └── _lxml.py
│   │   │       │   ├── dammit.py
│   │   │       │   ├── diagnose.py
│   │   │       │   ├── element.py
│   │   │       │   └── sigil_custom_changes_to_bs4-4.4.0.patch.txt
│   │   │       ├── sigil_gumbo_bs4_adapter.py
│   │   │       ├── sigil_gumboc.py
│   │   │       ├── sigil_gumboc_tags.py
│   │   │       ├── unipath.py
│   │   │       ├── validationcontainer.py
│   │   │       ├── validationresult.py
│   │   │       └── wrapper.py
│   │   ├── polyfills/
│   │   │   ├── MathJax_License.txt
│   │   │   └── MathJax_README.md
│   │   ├── python3lib/
│   │   │   ├── cssreformatter.py
│   │   │   ├── diffstat.py
│   │   │   ├── fix_opf_ids.py
│   │   │   ├── fr_utils.py
│   │   │   ├── functionrep.py
│   │   │   ├── functionsearch.py
│   │   │   ├── gencheck.py
│   │   │   ├── getcodepointname.py
│   │   │   ├── metadata_utils.py
│   │   │   ├── metaproc2.py
│   │   │   ├── metaproc3.py
│   │   │   ├── ncxdata.py
│   │   │   ├── ncxgenerator.py
│   │   │   ├── opf2data.py
│   │   │   ├── opf3data.py
│   │   │   ├── opf_id_parser.py
│   │   │   ├── opf_newparser.py
│   │   │   ├── repomanager.py
│   │   │   ├── sanitycheck.py
│   │   │   ├── sdifflibparser.py
│   │   │   ├── titlecase.py
│   │   │   ├── unidecode/
│   │   │   │   ├── LICENSE
│   │   │   │   ├── README.rst
│   │   │   │   ├── __init__.py
│   │   │   │   ├── __main__.py
│   │   │   │   ├── py.typed
│   │   │   │   ├── util.py
│   │   │   │   ├── x000.py
│   │   │   │   ├── x001.py
│   │   │   │   ├── x002.py
│   │   │   │   ├── x003.py
│   │   │   │   ├── x004.py
│   │   │   │   ├── x005.py
│   │   │   │   ├── x006.py
│   │   │   │   ├── x007.py
│   │   │   │   ├── x009.py
│   │   │   │   ├── x00a.py
│   │   │   │   ├── x00b.py
│   │   │   │   ├── x00c.py
│   │   │   │   ├── x00d.py
│   │   │   │   ├── x00e.py
│   │   │   │   ├── x00f.py
│   │   │   │   ├── x010.py
│   │   │   │   ├── x011.py
│   │   │   │   ├── x012.py
│   │   │   │   ├── x013.py
│   │   │   │   ├── x014.py
│   │   │   │   ├── x015.py
│   │   │   │   ├── x016.py
│   │   │   │   ├── x017.py
│   │   │   │   ├── x018.py
│   │   │   │   ├── x01d.py
│   │   │   │   ├── x01e.py
│   │   │   │   ├── x01f.py
│   │   │   │   ├── x020.py
│   │   │   │   ├── x021.py
│   │   │   │   ├── x022.py
│   │   │   │   ├── x023.py
│   │   │   │   ├── x024.py
│   │   │   │   ├── x025.py
│   │   │   │   ├── x026.py
│   │   │   │   ├── x027.py
│   │   │   │   ├── x028.py
│   │   │   │   ├── x029.py
│   │   │   │   ├── x02a.py
│   │   │   │   ├── x02c.py
│   │   │   │   ├── x02e.py
│   │   │   │   ├── x02f.py
│   │   │   │   ├── x030.py
│   │   │   │   ├── x031.py
│   │   │   │   ├── x032.py
│   │   │   │   ├── x033.py
│   │   │   │   ├── x04d.py
│   │   │   │   ├── x04e.py
│   │   │   │   ├── x04f.py
│   │   │   │   ├── x050.py
│   │   │   │   ├── x051.py
│   │   │   │   ├── x052.py
│   │   │   │   ├── x053.py
│   │   │   │   ├── x054.py
│   │   │   │   ├── x055.py
│   │   │   │   ├── x056.py
│   │   │   │   ├── x057.py
│   │   │   │   ├── x058.py
│   │   │   │   ├── x059.py
│   │   │   │   ├── x05a.py
│   │   │   │   ├── x05b.py
│   │   │   │   ├── x05c.py
│   │   │   │   ├── x05d.py
│   │   │   │   ├── x05e.py
│   │   │   │   ├── x05f.py
│   │   │   │   ├── x060.py
│   │   │   │   ├── x061.py
│   │   │   │   ├── x062.py
│   │   │   │   ├── x063.py
│   │   │   │   ├── x064.py
│   │   │   │   ├── x065.py
│   │   │   │   ├── x066.py
│   │   │   │   ├── x067.py
│   │   │   │   ├── x068.py
│   │   │   │   ├── x069.py
│   │   │   │   ├── x06a.py
│   │   │   │   ├── x06b.py
│   │   │   │   ├── x06c.py
│   │   │   │   ├── x06d.py
│   │   │   │   ├── x06e.py
│   │   │   │   ├── x06f.py
│   │   │   │   ├── x070.py
│   │   │   │   ├── x071.py
│   │   │   │   ├── x072.py
│   │   │   │   ├── x073.py
│   │   │   │   ├── x074.py
│   │   │   │   ├── x075.py
│   │   │   │   ├── x076.py
│   │   │   │   ├── x077.py
│   │   │   │   ├── x078.py
│   │   │   │   ├── x079.py
│   │   │   │   ├── x07a.py
│   │   │   │   ├── x07b.py
│   │   │   │   ├── x07c.py
│   │   │   │   ├── x07d.py
│   │   │   │   ├── x07e.py
│   │   │   │   ├── x07f.py
│   │   │   │   ├── x080.py
│   │   │   │   ├── x081.py
│   │   │   │   ├── x082.py
│   │   │   │   ├── x083.py
│   │   │   │   ├── x084.py
│   │   │   │   ├── x085.py
│   │   │   │   ├── x086.py
│   │   │   │   ├── x087.py
│   │   │   │   ├── x088.py
│   │   │   │   ├── x089.py
│   │   │   │   ├── x08a.py
│   │   │   │   ├── x08b.py
│   │   │   │   ├── x08c.py
│   │   │   │   ├── x08d.py
│   │   │   │   ├── x08e.py
│   │   │   │   ├── x08f.py
│   │   │   │   ├── x090.py
│   │   │   │   ├── x091.py
│   │   │   │   ├── x092.py
│   │   │   │   ├── x093.py
│   │   │   │   ├── x094.py
│   │   │   │   ├── x095.py
│   │   │   │   ├── x096.py
│   │   │   │   ├── x097.py
│   │   │   │   ├── x098.py
│   │   │   │   ├── x099.py
│   │   │   │   ├── x09a.py
│   │   │   │   ├── x09b.py
│   │   │   │   ├── x09c.py
│   │   │   │   ├── x09d.py
│   │   │   │   ├── x09e.py
│   │   │   │   ├── x09f.py
│   │   │   │   ├── x0a0.py
│   │   │   │   ├── x0a1.py
│   │   │   │   ├── x0a2.py
│   │   │   │   ├── x0a3.py
│   │   │   │   ├── x0a4.py
│   │   │   │   ├── x0ac.py
│   │   │   │   ├── x0ad.py
│   │   │   │   ├── x0ae.py
│   │   │   │   ├── x0af.py
│   │   │   │   ├── x0b0.py
│   │   │   │   ├── x0b1.py
│   │   │   │   ├── x0b2.py
│   │   │   │   ├── x0b3.py
│   │   │   │   ├── x0b4.py
│   │   │   │   ├── x0b5.py
│   │   │   │   ├── x0b6.py
│   │   │   │   ├── x0b7.py
│   │   │   │   ├── x0b8.py
│   │   │   │   ├── x0b9.py
│   │   │   │   ├── x0ba.py
│   │   │   │   ├── x0bb.py
│   │   │   │   ├── x0bc.py
│   │   │   │   ├── x0bd.py
│   │   │   │   ├── x0be.py
│   │   │   │   ├── x0bf.py
│   │   │   │   ├── x0c0.py
│   │   │   │   ├── x0c1.py
│   │   │   │   ├── x0c2.py
│   │   │   │   ├── x0c3.py
│   │   │   │   ├── x0c4.py
│   │   │   │   ├── x0c5.py
│   │   │   │   ├── x0c6.py
│   │   │   │   ├── x0c7.py
│   │   │   │   ├── x0c8.py
│   │   │   │   ├── x0c9.py
│   │   │   │   ├── x0ca.py
│   │   │   │   ├── x0cb.py
│   │   │   │   ├── x0cc.py
│   │   │   │   ├── x0cd.py
│   │   │   │   ├── x0ce.py
│   │   │   │   ├── x0cf.py
│   │   │   │   ├── x0d0.py
│   │   │   │   ├── x0d1.py
│   │   │   │   ├── x0d2.py
│   │   │   │   ├── x0d3.py
│   │   │   │   ├── x0d4.py
│   │   │   │   ├── x0d5.py
│   │   │   │   ├── x0d6.py
│   │   │   │   ├── x0d7.py
│   │   │   │   ├── x0f9.py
│   │   │   │   ├── x0fa.py
│   │   │   │   ├── x0fb.py
│   │   │   │   ├── x0fc.py
│   │   │   │   ├── x0fd.py
│   │   │   │   ├── x0fe.py
│   │   │   │   ├── x0ff.py
│   │   │   │   ├── x1d4.py
│   │   │   │   ├── x1d5.py
│   │   │   │   ├── x1d6.py
│   │   │   │   ├── x1d7.py
│   │   │   │   ├── x1f1.py
│   │   │   │   └── x1f6.py
│   │   │   ├── updatechecker.py
│   │   │   ├── xmlprocessor.py
│   │   │   └── xmlsanitycheck.py
│   │   ├── python_pkg/
│   │   │   ├── osx_add_python_framework.py
│   │   │   ├── osx_add_python_framework6.py
│   │   │   ├── python_paths.py
│   │   │   ├── python_paths6.py
│   │   │   ├── windows_python_gather.py
│   │   │   ├── windows_python_gather6.py
│   │   │   └── winreqs.txt
│   │   ├── ts/
│   │   │   ├── base.ts
│   │   │   ├── sigil_ar.ts
│   │   │   ├── sigil_ca.ts
│   │   │   ├── sigil_cs.ts
│   │   │   ├── sigil_de.ts
│   │   │   ├── sigil_en.ts
│   │   │   ├── sigil_es.ts
│   │   │   ├── sigil_fi.ts
│   │   │   ├── sigil_fr.ts
│   │   │   ├── sigil_it.ts
│   │   │   ├── sigil_ja.ts
│   │   │   ├── sigil_ko.ts
│   │   │   ├── sigil_nl.ts
│   │   │   ├── sigil_pl.ts
│   │   │   ├── sigil_pt_BR.ts
│   │   │   ├── sigil_ru.ts
│   │   │   ├── sigil_sr.ts
│   │   │   ├── sigil_tr.ts
│   │   │   ├── sigil_uk.ts
│   │   │   ├── sigil_zh_CN.ts
│   │   │   └── sigil_zh_TW.ts
│   │   └── windows/
│   │       ├── Sigil.exe.appmanifest
│   │       ├── icon.rc.in
│   │       ├── postinstall.bat
│   │       └── version.rc.in
│   ├── SourceUpdates/
│   │   ├── AnchorUpdates.cpp
│   │   ├── AnchorUpdates.h
│   │   ├── FragmentUpdates.cpp
│   │   ├── FragmentUpdates.h
│   │   ├── JavascriptUpdates.cpp
│   │   ├── JavascriptUpdates.h
│   │   ├── LinkUpdates.cpp
│   │   ├── LinkUpdates.h
│   │   ├── PerformCSSUpdates.cpp
│   │   ├── PerformCSSUpdates.h
│   │   ├── PerformHTMLUpdates.cpp
│   │   ├── PerformHTMLUpdates.h
│   │   ├── PerformNCXUpdates.cpp
│   │   ├── PerformNCXUpdates.h
│   │   ├── PerformOPFUpdates.cpp
│   │   ├── PerformOPFUpdates.h
│   │   ├── PerformXMLUpdates.cpp
│   │   ├── PerformXMLUpdates.h
│   │   ├── UniversalUpdates.cpp
│   │   ├── UniversalUpdates.h
│   │   ├── WordUpdates.cpp
│   │   └── WordUpdates.h
│   ├── Tabs/
│   │   ├── AVTab.cpp
│   │   ├── AVTab.h
│   │   ├── CSSTab.cpp
│   │   ├── CSSTab.h
│   │   ├── ContentTab.cpp
│   │   ├── ContentTab.h
│   │   ├── FlowTab.cpp
│   │   ├── FlowTab.h
│   │   ├── FontTab.cpp
│   │   ├── FontTab.h
│   │   ├── ImageTab.cpp
│   │   ├── ImageTab.h
│   │   ├── MiscTextTab.cpp
│   │   ├── MiscTextTab.h
│   │   ├── NCXTab.cpp
│   │   ├── NCXTab.h
│   │   ├── OPFTab.cpp
│   │   ├── OPFTab.h
│   │   ├── PdfTab.cpp
│   │   ├── PdfTab.h
│   │   ├── SVGTab.cpp
│   │   ├── SVGTab.h
│   │   ├── TabBar.cpp
│   │   ├── TabBar.h
│   │   ├── TabManager.cpp
│   │   ├── TabManager.h
│   │   ├── TextTab.cpp
│   │   ├── TextTab.h
│   │   ├── WellFormedCheckComponent.cpp
│   │   ├── WellFormedCheckComponent.h
│   │   ├── WellFormedContent.h
│   │   ├── XMLTab.cpp
│   │   └── XMLTab.h
│   ├── ViewEditors/
│   │   ├── CodeViewEditor.cpp
│   │   ├── CodeViewEditor.h
│   │   ├── ElementIndex.h
│   │   ├── LineNumberArea.cpp
│   │   ├── LineNumberArea.h
│   │   ├── Overlay.h
│   │   ├── Searchable.cpp
│   │   ├── Searchable.h
│   │   ├── SimplePage.cpp
│   │   ├── SimplePage.h
│   │   ├── ViewEditor.h
│   │   ├── ViewPreview.cpp
│   │   ├── ViewPreview.h
│   │   ├── Viewer.h
│   │   ├── WebEngPage.cpp
│   │   ├── WebEngPage.h
│   │   └── Zoomable.h
│   ├── Widgets/
│   │   ├── AVView.cpp
│   │   ├── AVView.h
│   │   ├── AdjustImage.cpp
│   │   ├── AdjustImage.h
│   │   ├── AlertBox.cpp
│   │   ├── AlertBox.h
│   │   ├── CaretStyle.cpp
│   │   ├── CaretStyle.h
│   │   ├── FileDropZone.h
│   │   ├── FontView.cpp
│   │   ├── FontView.h
│   │   ├── ImageView.cpp
│   │   ├── ImageView.h
│   │   ├── Navigator.h
│   │   ├── Navigator2.h
│   │   ├── PdfView.cpp
│   │   ├── PdfView.h
│   │   ├── SELineNumberArea.cpp
│   │   ├── SELineNumberArea.h
│   │   ├── SourceEditor.cpp
│   │   ├── SourceEditor.h
│   │   ├── TVLineNumberArea.cpp
│   │   ├── TVLineNumberArea.h
│   │   ├── TextDocument.cpp
│   │   ├── TextDocument.h
│   │   ├── TextView.cpp
│   │   └── TextView.h
│   ├── main.cpp
│   ├── qt6sigil.cmake
│   ├── sigil_constants.cpp
│   ├── sigil_constants.h
│   └── sigil_exception.h
├── version.xml
├── windownloadqt.cmake
└── winvirtpy.cmake

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitattributes
================================================
.git export-ignore
.gitattributes export-ignore
.gitignore export-ignore
version.xml export-ignore


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: Bug Report
description: File a bug report
title: "[Bug]: "
labels: ["bug"]
body:
  - type: markdown
    attributes:
      value: |
        Please fill in the forms to help improve Sigil.
  - type: textarea
    id: report
    attributes:
      label: Bug Description
      description: Describe the bug/issue and the steps needed to recreate it.
      placeholder: Bug Report 
    validations:
      required: true
  - type: dropdown
    id: platform
    attributes:
      label: Platform (OS)
      description: What operating system are you running?
      options:
        - Windows (Default)
        - Linux 
        - macOS
        - other
    validations:
      required: true
  - type: input
    id: osversion
    attributes:
      label: OS Version / Specifics
      description: What specific operating system version or distribution are you using?
    validations:
      required: true
  - type: input
    id: version
    attributes:
      label: What version of Sigil are you using?
      placeholder: current
    validations:
      required: true
  - type: textarea
    id: addlinfo
    attributes:
      label: Any backtraces or crash reports 
      description: Please copy and paste any relevant backtraces or crash reports output. This will be automatically formatted into code, so no need for backticks.
      render: shell
  - type: markdown
    attributes:
      value: |
        Please attach a minimal test case if possible or screen shots of the issue if need as zip files to this issue.


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: Sigil Community Support
    url: https://www.mobileread.com/forums/forumdisplay.php?f=203
    about: |
      New Feature Requests are Not Accepted on Github.
      If you would like to request a new feature, please click the
      'Open' button to visit the Sigil Forum on www.mobileread.com.
      There you will find a community of dedicated users and epub developers
      who can help evaluate any new feature requests and provide feedback.
      Any new issues requesting new features placed on our GitHub site will be immediately closed.
  - name: Official Sigil Website
    url: https://www.sigil-ebook.com/sigil
    about: |
      Lots of instructions, tips and info to help you on your way with Sigil.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
name: Feature Request
description: New feature requests are not accepted here
body:
  - type: markdown
    attributes:
      value: |
        **New Feature Requests are Not Accepted on Github**
        If you would like to request a new feature, please visit the Sigil
        Forum on www.mobileread.com.

        https://www.mobileread.com/forums/forumdisplay.php?f=203

        There you will find a community of dedicated users and epub developers
        who can help evaluate any new feature requests and provide feedback.

        Any new issues requesting new features placed on our GitHub site will be immediately closed.


================================================
FILE: .github/workflows/AppRun
================================================
#! /usr/bin/env bash

# make sure errors in sourced scripts will cause this script to stop
set -e

this_dir="$(readlink -f "$(dirname "$0")")"

SIGIL_EXTRA_ROOT="$this_dir/usr/share/sigil"
export SIGIL_EXTRA_ROOT
echo "${SIGIL_EXTRA_ROOT}"

LD_LIBRARY_PATH="$this_dir/usr/lib:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH
echo $LD_LIBRARY_PATH

# Incorporate old qt-hook script contents here since the auto-hook generation stopped upstream
case "${XDG_CURRENT_DESKTOP}" in
    *GNOME*|*gnome*|*XFCE*)
        export QT_QPA_PLATFORMTHEME=gtk3
        ;;
esac

export SIGIL_APPIMAGE_LIB_DIR="$this_dir/usr/lib"
export SIGIL_EXEC_WRAPPER="$this_dir/usr/optional/exec_wrapper.so"

# Call the sigil binary directly since AppRun.wrapped is no longer auto-generated
LD_PRELOAD="$this_dir"/usr/optional/exec_wrapper.so exec "$this_dir"/usr/bin/sigil "$@"


================================================
FILE: .github/workflows/appimg_cleanup.py
================================================
#!/usr/bin/env python3
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai

import os, sys, glob

exclude_libs = [
    "libatk-1.0.so.0",
    "libatk-bridge-2.0.so.0",
    "libatspi.so.0",
    "libblkid.so.1",
    "libbsd.so.0",
    "libcairo-gobject.so.2",
    "libcairo.so.2",
    "libcapnp-0.5.3.so",
    "libcapnp-0.6.1.so",
    "libdatrie.so.1",
    "libdbus-1.so.3",
    "libepoxy.so.0",
    "libffi.so.6",
    "libgcrypt.so.20",
    "libgdk-3.so.0",
    #"libgdk_pixbuf-2.0.so.0",
    "libgdk-x11-2.0.so.0",
    "libgio-2.0.so.0",
    "libglib-2.0.so.0",
    "libgmodule-2.0.so.0",
    "libgobject-2.0.so.0",
    "libgraphite2.so.3",
    "libgtk-3.so.0",
    "libgtk-x11-2.0.so.0",
    "libkj-0.5.3.so",
    "libkj-0.6.1.so",
    "liblz4.so.1",
    "liblzma.so.5",
    "libmirclient.so.9",
    "libmircommon.so.7",
    "libmircore.so.1",
    "libmirprotobuf.so.3",
    "libmount.so.1",
    "libpango-1.0.so.0",
    "libpangocairo-1.0.so.0",
    "libpangoft2-1.0.so.0",
    "libpcre2-8.so.0",
    "libpcre.so.3",
    "libpixman-1.so.0",
    "libprotobuf-lite.so.9",
    "libreadline.so.8",
    "libselinux.so.1",
    "libsystemd.so.0",
    "libthai.so.0",
    "libwayland-client.so.0",
    "libwayland-cursor.so.0",
    "libwayland-egl.so.1",
    "libwayland-server.so.0",
    "libX11-xcb.so.1",
    "libXau.so.6",
    #"libxcb-cursor.so.0",
    #"libxcb-glx.so.0",
    #"libxcb-icccm.so.4",
    #"libxcb-image.so.0",
    #"libxcb-keysyms.so.1",
    #"libxcb-randr.so.0",
    #"libxcb-render.so.0",
    #"libxcb-render-util.so.0",
    #"libxcb-shape.so.0",
    #"libxcb-shm.so.0",
    #"libxcb-sync.so.1",
    #"libxcb-util.so.1",
    #"libxcb-xfixes.so.0",
    #"libxcb-xkb.so.1",
    "libXcomposite.so.1",
    "libXcursor.so.1",
    "libXdamage.so.1",
    "libXdmcp.so.6",
    "libXext.so.6",
    "libXfixes.so.3",
    "libXinerama.so.1",
    "libXi.so.6",
    #"libxkbcommon.so.0",
    #"libxkbcommon-x11.so.0",
    "libXrandr.so.2",
    "libXrender.so.1",
]

def remove_libs(pth):
    for f in exclude_libs:
        libpth = os.path.join(pth, f)
        if os.path.isfile(libpth):
            os.remove(libpth)
        else:
            # If it fails, inform the user.
            print(f"{f} not found")

    dupe_pyside = glob.glob('{}/libpyside6*'.format(pth))
    if len(dupe_pyside):
        print('pyside libs {}'.format(dupe_pyside))
        for f in dupe_pyside:
            if os.path.isfile(f):
                os.remove(f)

    dupe_shiboken = glob.glob('{}/libshiboken6*'.format(pth))
    if len(dupe_shiboken):
        print('shiboken libs {}'.format(dupe_shiboken))
        for f in dupe_shiboken:
            if os.path.isfile(f):
                os.remove(f)

def clean_pillow_libs(srcd, destd):
    print('src {}'.format(srcd))
    print('dest {}'.format(destd))
    pillow_libs = next(os.walk(srcd), (None, None, []))[2]  # [] if no file
    #pillow_libs = glob.glob('{}/*'.format(srcd))
    print('pillow.libs {}'.format(pillow_libs))
    for entry in pillow_libs:
        f = os.path.join(destd, entry)
        print('File to remove {}'.format(f))
        if os.path.isfile(f):
            os.remove(f)

if __name__ == '__main__':
    appimagelib_path = sys.argv[1]
    py_ver = sys.argv[2]
    pil_src = os.path.join(appimagelib_path, 'python{}'.format(py_ver), 'site-packages', 'pillow.libs')
    remove_libs(appimagelib_path)
    clean_pillow_libs(pil_src, appimagelib_path)


================================================
FILE: .github/workflows/appimg_python3_gather.py
================================================
#!/usr/bin/env python3
# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai

import sys, os, subprocess, glob, inspect, shutil, platform, textwrap, site

# Get "real" python binary, libs and stdlibs regardless if a venv is being used.
global base_dest
global py_ver
global pylib
global py_exe

#AppImage Destination directories
global lib_dir
global lib_dynload
global site_dest
global bin_dir


# QUiTools needs QtOpenGlWidgets (on Windows anyway)
PYSIDE6_MODULES = [
    'QtCore', 'QtDBus', 'QtGui', 'QtNetwork', 'QtOpenGLWidgets', 'QtPdf', 'QtPrintSupport',
    'QtUiTools','QtWebEngine', 'QtWebEngineCore', 'QtWebEngineWidgets',
    'QtWebChannel', 'QtSvg', 'QtWidgets', 'Shiboken'
    ]

# Cherry-picked additional and/or modified site modules
site_packages = [ ('lxml', 'd'), 
                  ('six.py', 'f'),
                  ('urllib3', 'd'),
                  ('certifi', 'd'),
                  ('dulwich', 'd'),
                  ('css_parser', 'd'),
                  ('html5lib','d'), 
                  ('PIL', 'd'),
                  ('pillow.libs', 'd'), 
                  ('regex','d'),
                  ('cssselect', 'd'),
                  ('webencodings', 'd'), # needed by html5lib
                  ('chardet', 'd'),
                  ('shiboken6', 'd'),
                  ('PySide6', 'd')]


def set_rpath(f, depth=0, addorigin=False):
    if depth == 0:
        subprocess.check_call(['patchelf', '--set-rpath', '$ORIGIN', f])
        print('Setting rpath of {} to $ORIGIN'.format(os.path.basename(f)))
        return
    else:
        recurse = ''.join(['../' for x in range(depth)])
        if addorigin:
             rpath = '$ORIGIN:$ORIGIN/{}{}'.format(recurse, 'lib')
        else:
            rpath = '$ORIGIN/{}{}'.format(recurse, 'lib')
        subprocess.check_call(['patchelf', '--set-rpath', rpath, f])
        print('Setting rpath of {} to {}'.format(os.path.basename(f), rpath))
        return


def copy_site_packages():
    if not os.path.exists(site_dest):
        os.makedirs(site_dest)
    for pkg, typ in site_packages:
        found = False
        # Uses site-packages from venv or base python
        for path in site.getsitepackages():
            if not found:
                for entry in os.listdir(path):
                    if entry == pkg:
                        if typ == 'd' and os.path.isdir(os.path.join(path, entry)):
                            if pkg in ('PySide6', 'shiboken6'):
                                shutil.copytree(os.path.join(path, entry), os.path.join(site_dest, entry), dirs_exist_ok=True, ignore=ignore_in_pyside6_dirs)
                                print('Got some pyside6!')
                            else:
                                print('Here we are dir!')
                                print(f'Src: {os.path.join(path, entry)}')
                                print(f'Dest: {os.path.join(site_dest, entry)}')
                                if entry == 'pillow.libs':
                                    shutil.copytree(os.path.join(path, entry), os.path.join(site_dest, entry), dirs_exist_ok=True)
                                else:
                                    shutil.copytree(os.path.join(path, entry), os.path.join(site_dest, entry), dirs_exist_ok=True, ignore=ignore_in_dirs)
                            found = True
                            break
                        else:
                            if os.path.isfile(os.path.join(path, entry)):
                                print('Here we are file!')
                                print(f'Src: {os.path.join(path, entry)}')
                                print(f'Dest: {os.path.join(site_dest, entry)}')
                                shutil.copy2(os.path.join(path, entry), os.path.join(site_dest, entry))
                                found = True
                                break
            else:
                break
        if not found:
            print('WARNING: %s not found in site_packages. Your python environment could potentially be incomplete.' % pkg)


def ignore_in_pyside6_dirs(base, items, ignored_dirs=None):
    ans = []
    if ignored_dirs is None:
        ignored_dirs = {'.svn', '.bzr', '.git', 'docs', 'examples', 'glue', 'include', 'metatypes', 'modules', 
                       'plugins', 'Qt', 'qml', 'resources', 'scripts', 'support', 'translations', 'typesystems', '__pycache__'}
    for name in items:
        path = os.path.join(base, name)
        if os.path.isdir(path):
            if name in ignored_dirs:  # or not os.path.exists(os.path.join(path, '__init__.py')):
                ans.append(name)
        else:
            #if name.rpartition('.')[-1] == '':
            #    ans.append(name)
            if not os.path.splitext(name)[1]:
                ans.append(name)
            if name.startswith('libpyside6') or name.startswith('libshiboken6'):
                pass
            if name.rpartition('.')[-1] in ('py', 'pyi', 'so'):
                pass
            if name.startswith('Qt') and name.partition('.')[0] not in PYSIDE6_MODULES:
                ans.append(name)
            if name.rpartition('.')[-1] == 'pyi' and name.partition('.')[0] not in PYSIDE6_MODULES:
                ans.append(name)
            if name.rpartition('.')[-1] == 'so' and name.partition('.')[0] not in PYSIDE6_MODULES:
                ans.append(name)
    return ans


def ignore_in_dirs(base, items, ignored_dirs=None):
    ans = []
    if ignored_dirs is None:
        ignored_dirs = {'.svn', '.bzr', '.git', 'test', 'tests', 'testing', 'turtledemo', '__pycache__'}
    for name in items:
        path = os.path.join(base, name)
        if os.path.isdir(path):
            if name in ignored_dirs: # or not os.path.exists(os.path.join(path, '__init__.py')):
                ans.append(name)
        #else:
        #    if name.rpartition('.')[-1] not in ('so', 'py'):
        #        ans.append(name)
    return ans



def copy_tk_tcl():
    def ignore_lib(root, items):
            ans = []
            for x in items:
                ext = os.path.splitext(x)[1]
                if (not ext and (x in ('demos', 'tzdata'))) or \
                    (ext in ('.chm', '.htm', '.txt')):
                    ans.append(x)
            return ans


    src = os.path.join('/usr/share', 'tcltk')
    for entry in os.listdir(src):
        if entry in ('tk8.6', 'tcl8.6'):
            if os.path.isdir(os.path.join(src, entry)):
                main_lib_dir = os.path.abspath(os.path.join(lib_dir, ".."))
                shutil.copytree(os.path.join(src, entry), os.path.join(main_lib_dir, entry), dirs_exist_ok=True, ignore=ignore_lib)


def copy_pybin():
    new_py_binary = os.path.join(bin_dir, 'python3')
    shutil.copy2(py_exe, new_py_binary)
    # Set RPATH for python binary
    set_rpath(new_py_binary, depth=1)


def copy_python():
    def ignore_lib(root, items):
        ans = []
        for x in items:
            ext = os.path.splitext(x)[1]
            if (not ext and (x in ('turtledemo', 'demos', 'tests', 'test', 'idlelib', 'lib2to3', '__pycache__', 'site-packages')) or x.startswith('plat-')) or \
                (ext in ('.chm', '.htm', '.txt')):
                ans.append(x)
        return ans

    shutil.copytree(pylib, lib_dir, ignore=ignore_lib)

    # Set RPATH for shared libraries in lib-dynload to root lib dir
    #root = os.path.join(py_dir, 'lib-dynload')
    for item in os.listdir(lib_dynload):
        f = os.path.join(lib_dynload, item)
        if os.path.isfile(f) and os.path.splitext(f)[1] == '.so':
            set_rpath(f, depth=3, addorigin=True)


def compile_libs():
    for x in os.walk(lib_dir):
        for f in x[-1]:
            if f.endswith('.py'):
                y = os.path.join(x[0], f)
                rel = os.path.relpath(y, lib_dir)
                try:
                    py_compile.compile(y, cfile=y+'c',dfile=rel, doraise=True, optimize=2)
                    os.remove(y)
                    z = y+'o'
                    if os.path.exists(z):
                        os.remove(z)
                except:
                    print ('Failed to byte-compile', y)


def create_site_py():
    with open(os.path.join(lib_dir, 'site.py'), 'wb') as f:
        f.write(bytes(textwrap.dedent('''\
        import sys
        import builtins
        import os
        import _sitebuiltins

        def set_helper():
            builtins.help = _sitebuiltins._Helper()

        def fix_sys_path():
            if os.sep == '/':
                sys.path.append(os.path.join(sys.prefix, "lib",
                                "python" + sys.version[:3],
                                "site-packages"))
            else:
                for path in sys.path:
                    py_ver = "".join(map(str, sys.version[:3])).replace(".", "")
                    if os.path.basename(path) == "python" + py_ver + ".zip":
                        sys.path.remove(path)
                sys.path.append(os.path.join(sys.prefix, "lib", "site-packages"))

        def main():
            try:
                fix_sys_path()
                set_helper()
            except SystemExit as err:
                if err.code is None:
                    return 0
                if isinstance(err.code, int):
                    return err.code
                print (err.code)
                return 1
            except:
                import traceback
                traceback.print_exc()
            return 1

        if not sys.flags.no_site:
            main()
            '''), 'UTF-8'))


def create_pyvenv():
    with open(os.path.join(tmp_prefix, 'pyvenv.cfg'), 'wb') as f:
        f.write(bytes(textwrap.dedent('''\
        applocal = true
        '''), 'UTF-8'))


def create_qt_conf():
    with open(os.path.join(tmp_prefix, 'qt.conf'), 'wb') as f:
        f.write(bytes(textwrap.dedent('''\
        [Paths]
        Prefix = .
        Plugins = .
        Binaries = .
        '''), 'ascii'))


def fix_pyside6_qt_conf():
    _conf_ = os.path.join(site_dest, 'PySide6', 'qt.conf')
    if os.path.exists(_conf_) and os.path.isfile(_conf_):
        with open(_conf_, 'wb') as f:
            f.write(bytes(textwrap.dedent('''\
            [Paths]
            Prefix = ../../..
            '''), 'ascii'))


def patch_pillow_init():
    # PyPi-installed Pillow's __init__.py trys to modify doc strings
    # that are unavailable since we compile all of them away.
    _init_ = os.path.join(site_dest, 'PIL', '__init__.py')
    criteria = '(__doc__ =.*)$'
    if os.path.exists(_init_) and os.path.isfile(_init_):
        import re
        with open(_init_, 'r') as f:
            content = f.read()
            new_content = re.sub(criteria, r'#\1', content, flags = re.M)
        with open(_init_, 'wb') as f:
            f.write(bytes(new_content, 'UTF-8'))


if __name__ == '__main__':
    base_dest = sys.argv[1]
    py_ver = sys.argv[2]

    print(f'base_dest: {base_dest}')
    print(f'py_ver: {py_ver}')
    
    pybase = sys.base_prefix
    print(f'Base Prefix: {pybase}')
    
    pylib = os.path.join(pybase, 'lib', f'python{py_ver}')
    py_exe = os.path.join(pybase, 'bin', 'python3')
    print(site.getsitepackages())
    #files = os.listdir(pylib)
    #print(files)

    lib_dir = os.path.join(base_dest, 'usr', 'lib', f'python{py_ver}',)
    lib_dynload = os.path.join(lib_dir, 'lib-dynload')
    #os.makedirs(lib_dir, exist_ok=True)
    bin_dir = os.path.join(base_dest, 'usr', 'bin')
    os.makedirs(bin_dir, exist_ok=True)
    site_dest = os.path.join(lib_dir, 'site-packages')
    #os.makedirs(site_dest, exist_ok=True)
    #dll_walk()
    copy_pybin()
    copy_python()
    copy_site_packages()
    #create_site_py()
    # create_pyvenv()
    # create_qt_conf()
    copy_tk_tcl()
    #fix_pyside6_qt_conf()
    #patch_pillow_init()
    #compile_libs()
    pass

================================================
FILE: .github/workflows/arch-repo.yml
================================================
name: Build Qt6 Sigil package on Arch Linux

on:
  workflow_dispatch:

env:
  BUILD_TYPE: Release

jobs:
  test-package-build:
    runs-on: ubuntu-latest

    container:
      image: archlinux
      options: --privileged
      volumes:
        - /sys/fs/cgroup:/sys/fs/cgroup
    steps:
    - uses: actions/checkout@v4
    - name: Build Arch Linux Qt6 package
      uses: FFY00/build-arch-package@main
      with:
        BUILD_SCRIPT: extra-x86_64-build
        PKGBUILD: $GITHUB_WORKSPACE/ci_scripts/PKGBUILD


================================================
FILE: .github/workflows/build_appimage.yml
================================================
name: Build Sigil AppImage

on:
  push:

  workflow_dispatch:
    inputs:
      vers_info:
        description: 'Version for file name'
        required: true
        default: ''

env:
  PY_VER: 3.13
  PY_VER2: 3.13.2
  QT_VER: 6.8.2
  DOWNLOADQT: https://github.com/dougmassay/win-qtwebkit-5.212/releases/download/v5.212-1/AppImageWebEngine682.tar.xz

jobs:
  build:
    if: "!contains(github.event.head_commit.message, '[skip ci]')"
    runs-on: ubuntu-22.04

    steps:
    - name: Get Short SHA
      if: ${{ github.event_name != 'workflow_dispatch' }}
      id: get_short_sha
      run: echo "SHORT_SHA=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_ENV

    - name: Get Dispatch Input
      if: ${{ github.event_name == 'workflow_dispatch' }}
      id: get_dispatch_input
      run: echo "DISP_INPUT=${{ github.event.inputs.vers_info }}" >> $GITHUB_ENV

    - name: Get Tag Name
      if: startswith( github.ref, 'refs/tags/')
      id: get_tag_name
      run: echo "TAG_NAME=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV

    - name: Checkout Sigil
      uses: actions/checkout@v4
      with:
        ref: master

    - name: Set up Python
      uses: actions/setup-python@v5
      with:
        python-version: ${{env.PY_VER2}}
  
    - name: Install Qt
      uses: jurplel/install-qt-action@v3
      with:
        version: ${{env.QT_VER}}
        dir: ${{runner.workspace}}/Qt
        modules: 'qtpositioning qtpdf qtwebchannel qtserialport qtimageformats qtwaylandcompositor'
        setup-python: 'false'

    - name: Install patched QtWebEngine
      run: |
        curl -L -o qtwebengine.tar.xz "$DOWNLOADQT"
        tar -xJvf qtwebengine.tar.xz -C ${{runner.workspace}}/Qt

    - uses: lukka/get-cmake@latest

    - name: Package Python
      run: |
        which python3
        mkdir ${{runner.workspace}}/build
        pip install patchelf
        pip install -r $GITHUB_WORKSPACE/.github/workflows/requirements.txt
        python3 $GITHUB_WORKSPACE/.github/workflows/appimg_python3_gather.py ${{runner.workspace}}/build/sigil.AppDir $PY_VER

    - name: Install dependencies
      run: |
        sudo apt-get install -y mesa-common-dev libglu1-mesa-dev libxcb-cursor-dev libgtk-3-dev libtiff-dev libwebp-dev
        which cmake
        cmake --version
        which ninja
        ninja --version
        which qmake
        qmake -v
        which python3
        python3 --version
        gcc --version
        cd ${{runner.workspace}}/build
        wget -nv https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
        chmod +x linuxdeploy-x86_64.AppImage
        wget -nv https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
        chmod +x linuxdeploy-plugin-qt-x86_64.AppImage
        wget -nv https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/continuous/linuxdeploy-plugin-appimage-x86_64.AppImage
        chmod +x linuxdeploy-plugin-appimage-x86_64.AppImage
        cp /lib/x86_64-linux-gnu/libtiff.so.5 ${{runner.workspace}}/build/sigil.AppDir/usr/lib/
        cp /lib/x86_64-linux-gnu/libwebp.so.7 ${{runner.workspace}}/build/sigil.AppDir/usr/lib/


    - name: Build Sigil
      working-directory: ${{runner.workspace}}/build
      run: |
        cmake $GITHUB_WORKSPACE \
        -G "Ninja" \
        -DCMAKE_PREFIX_PATH=${QT_ROOT_DIR}/lib/cmake \
        -DPKG_SYSTEM_PYTHON=1 \
        -DAPPIMAGE_BUILD=1 \
        -DCMAKE_BUILD_TYPE=Release \
        -DINSTALL_HICOLOR_ICONS=1 \
        -DCMAKE_INSTALL_PREFIX=/usr \
        -DCMAKE_INSTALL_LIBDIR=lib \
        -DCMAKE_SKIP_RPATH=ON
        ninja
        DESTDIR=sigil.AppDir ninja install
    
    - name: Make AppImage
      working-directory: ${{runner.workspace}}/build
      run: |
        if [[ -v DISP_INPUT ]]; then
          export LINUXDEPLOY_OUTPUT_APP_NAME="Sigil-$DISP_INPUT"
        elif [[ -v TAG_NAME ]]; then
          export LINUXDEPLOY_OUTPUT_APP_NAME="Sigil-$TAG_NAME"
        else
          export LINUXDEPLOY_OUTPUT_APP_NAME="Sigil-$SHORT_SHA"
        fi
        DEPLOY_PLATFORM_THEMES=1 \
        DISABLE_COPYRIGHT_FILES_DEPLOYMENT=1 \
        LD_LIBRARY_PATH=lib:sigil.AppDir/usr/lib/python$PY_VER/site-packages/pillow.libs:$LD_LIBRARY_PATH \
        EXTRA_PLATFORM_PLUGINS=libqwayland-generic.so \
        EXTRA_QT_MODULES="waylandcompositor" \
        ./linuxdeploy-x86_64.AppImage --appdir sigil.AppDir --plugin qt
        python3 $GITHUB_WORKSPACE/.github/workflows/appimg_cleanup.py ${{runner.workspace}}/build/sigil.AppDir/usr/lib $PY_VER
        cp -f $GITHUB_WORKSPACE/.github/workflows/AppRun ${{runner.workspace}}/build/sigil.AppDir/
        LDAI_UPDATE_INFORMATION="gh-releases-zsync|Sigil-Ebook|Sigil|latest|Sigil-*x86_64.AppImage.zsync" \
        ./linuxdeploy-plugin-appimage-x86_64.AppImage --appdir=sigil.AppDir
     
    - name: Upload Artifact
      if: contains(github.event.head_commit.message, '[deploy]') || startswith( github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch'
      uses: actions/upload-artifact@v4
      with:
        name: Sigil-AppImage-artifact
        path: ${{runner.workspace}}/build/Sigil-*.AppImage*
        retention-days: 5


================================================
FILE: .github/workflows/build_appimage2.yml
================================================
name: Build Sigil AppImage the Sequel

on:

  push:

  workflow_dispatch:
    inputs:
      vers_info:
        description: 'Version for file name'
        required: true
        default: ''

jobs:
  gather-info:
    if: "!contains(github.event.head_commit.message, '[skip ci]')"
    runs-on: ubuntu-latest
    outputs:
      commitish: ${{ steps.set_output.outputs.commitish_value }}

    steps:
    - name: Get Short SHA
      if: ${{ github.event_name != 'workflow_dispatch' }}
      id: get_short_sha
      run: echo "SHORT_SHA=$(echo $GITHUB_SHA | cut -c1-7)" >> $GITHUB_ENV

    - name: Get Dispatch Input
      if: ${{ github.event_name == 'workflow_dispatch' }}
      id: get_dispatch_input
      run: echo "DISP_INPUT=${{ github.event.inputs.vers_info }}" >> $GITHUB_ENV

    - name: Get Tag Name
      if: startswith( github.ref, 'refs/tags/')
      id: get_tag_name
      run: echo "TAG_NAME=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV

    - name: Set Job Output
      id: set_output
      run: |
        if [[ -v DISP_INPUT ]]; then
          echo "commitish_value=$DISP_INPUT" >> "$GITHUB_OUTPUT"
        elif [[ -v TAG_NAME ]]; then
          echo "commitish_value=$TAG_NAME" >> "$GITHUB_OUTPUT"
        else
          echo "commitish_value=$SHORT_SHA" >> "$GITHUB_OUTPUT"
        fi

  make-appimage:  
    name: Make AppImage
    runs-on: ubuntu-latest
    needs: gather-info

    container:
      image: ubuntu:22.04
      options: --privileged
      volumes:
        - ${{ github.workspace }}:/reporoot
      
    steps:
      - uses: actions/checkout@v4
      - run: bash /reporoot/.github/workflows/build_sigil_appimage.sh ${{ needs.gather-info.outputs.commitish }}
      - name: Upload Artifact
        if: contains(github.event.head_commit.message, '[deploy]') || startswith( github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch'
        uses: actions/upload-artifact@v4
        with:
          name: Sigil-AppImage-artifact
          path: /reporoot/Sigil-*.AppImage*
          retention-days: 5
          


================================================
FILE: .github/workflows/build_sigil_appimage.sh
================================================
#!/bin/bash -e

# WARNING!!  Do not attempt to run this script outside of a docker container. Doing so can damage your system!!

# This script is for building the sigil appimage
# Please run this script in docker image: ubuntu:22.04
# E.g: docker run --rm -v `git rev-parse --show-toplevel`:/reporoot ubuntu:22.04 /reporoot/.github/workflows/build_sigil_appimage.sh
# Artifacts will copy to the same directory.

set -o pipefail

export PY_SHORT_VER="3.14"
export PYTHON_VER="3.14.2"
export QT6_VER="6.10"
export QT6_VER_FULL="6.10.2"
export QT6_FN="6102"
export LC_ALL="C.UTF-8"
export DEBIAN_FRONTEND=noninteractive
export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig
SELF_DIR="$(readlink -f "$(dirname "$0")")"
COMMITISH="${1}"

retry() {
  # max retry 5 times
  try=5
  # sleep 30 sec every retry
  sleep_time=15
  for i in $(seq ${try}); do
    echo "executing with retry: $@" >&2
    if eval "$@"; then
      return 0
    else
      echo "execute '$@' failed, tries: ${i}" >&2
      sleep ${sleep_time}
    fi
  done
  echo "execute '$@' failed" >&2
  return 1
}

prepare_baseenv() {
  rm -f /etc/apt/sources.list.d/*.list*

  # keep debs in container for store cache in docker volume
  rm -f /etc/apt/apt.conf.d/*
  echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/01keep-debs
  echo -e 'Acquire::https::Verify-Peer "false";\nAcquire::https::Verify-Host "false";' > /etc/apt/apt.conf.d/99-trust-https

  # Since cmake 3.23.0 CMAKE_INSTALL_LIBDIR will force set to lib/<multiarch-tuple> on Debian
  echo '/usr/local/lib/x86_64-linux-gnu' > /etc/ld.so.conf.d/x86_64-linux-gnu-local.conf
  echo '/usr/local/lib64' > /etc/ld.so.conf.d/lib64-local.conf
  retry apt-get update

  retry apt-get install -y --allow-downgrades software-properties-common apt-transport-https
  retry apt-get update

  retry apt-get install -y \
    make \
    build-essential \
    curl \
    wget \
    file \
    liblzma-dev \
    libnss3-dev \
    libasound2-dev \
    libxkbfile-dev \
    libnspr4-dev \
    libncurses-dev \
    libxkbcommon-dev \
    libxkbcommon-x11-dev \
    libwayland-dev \
    libwayland-egl-backend-dev \
    libxcb1-dev \
    libxcb1-dev \
    libxcb-cursor-dev \
    libxcb-glx0-dev \
    libxcb-icccm4-dev \
    libxcb-image0-dev \
    libxcb-keysyms1-dev \
    libxcb-randr0-dev \
    libxcb-render-util0-dev \
    libxcb-shape0-dev \
    libxcb-shm0-dev \
    libxcb-sync-dev \
    libxcb-util-dev \
    libxcb-xfixes0-dev \
    libxcb-xinerama0-dev \
    libxcb-xkb-dev \
    mesa-common-dev \
    libglu1-mesa-dev \
    libxcb-cursor-dev \
    libgtk-3-dev \
    libtiff-dev \
    libwebp-dev \
    zlib1g-dev \
    tk-dev \
    zip \
    p7zip-full \
    zstd \
    zsync \


  apt-get autoremove --purge -y
  # strip all compiled files by default
  export CFLAGS='-s'
  export CXXFLAGS='-s'
  # Force refresh ld.so.cache
  ldconfig
}

prepare_buildenv() {
  # Install Cmake
  if ! which cmake &>/dev/null; then
    cmake_latest_ver="$(retry curl -ksSL --compressed https://cmake.org/download/ \| grep "'Latest Release'" \| sed -r "'s/.*Latest Release\s*\((.+)\).*/\1/'" \| head -1)"
    cmake_binary_url="https://github.com/Kitware/CMake/releases/download/v${cmake_latest_ver}/cmake-${cmake_latest_ver}-linux-x86_64.tar.gz"
    cmake_sha256_url="https://github.com/Kitware/CMake/releases/download/v${cmake_latest_ver}/cmake-${cmake_latest_ver}-SHA-256.txt"
    if [ -f "/usr/src/cmake-${cmake_latest_ver}-linux-x86_64.tar.gz" ]; then
      cd /usr/src
      cmake_sha256="$(retry curl -ksSL --compressed "${cmake_sha256_url}" \| grep "cmake-${cmake_latest_ver}-linux-x86_64.tar.gz")"
      if ! echo "${cmake_sha256}" | sha256sum -c; then
        rm -f "/usr/src/cmake-${cmake_latest_ver}-linux-x86_64.tar.gz"
      fi
    fi
    if [ ! -f "/usr/src/cmake-${cmake_latest_ver}-linux-x86_64.tar.gz" ]; then
      retry curl -kLo "/usr/src/cmake-${cmake_latest_ver}-linux-x86_64.tar.gz" "${cmake_binary_url}"
    fi
    tar -zxf "/usr/src/cmake-${cmake_latest_ver}-linux-x86_64.tar.gz" -C /usr/local --strip-components 1
  fi
  cmake --version

  # Install Ninja
  if ! which ninja &>/dev/null; then
    ninja_ver="$(retry curl -ksSL --compressed https://ninja-build.org/ \| grep "'The last Ninja release is'" \| sed -r "'s@.*<b>(.+)</b>.*@\1@'" \| head -1)"
    ninja_binary_url="https://github.com/ninja-build/ninja/releases/download/${ninja_ver}/ninja-linux.zip"
    if [ ! -f "/usr/src/ninja-${ninja_ver}-linux.zip.download_ok" ]; then
      rm -f "/usr/src/ninja-${ninja_ver}-linux.zip"
      retry curl -kLC- -o "/usr/src/ninja-${ninja_ver}-linux.zip" "${ninja_binary_url}"
      touch "/usr/src/ninja-${ninja_ver}-linux.zip.download_ok"
    fi
    unzip -d /usr/local/bin "/usr/src/ninja-${ninja_ver}-linux.zip"
  fi
  echo "Ninja version $(ninja --version)"
}

setup_python() {
  mkdir -p /opt/sigiltools
  python_url="https://github.com/dougmassay/win-qtwebkit-5.212/releases/download/v5.212-1/sigilpython${PYTHON_VER}.tar.xz"
  if [ -f "/reporoot/sigilpython${PYTHON_VER}.tar.xz" ]; then
    echo "Using local Python archive"
    tar -xJf "/reporoot/sigilpython${PYTHON_VER}.tar.xz" -C /opt/sigiltools
  else
    if [ ! -f "/usr/src/sigilpython${PYTHON_VER}.tar.xz.download_ok" ]; then
      rm -f "/usr/src/sigilpython${PYTHON_VER}.tar.xz"
      retry curl -kLC- -o "/usr/src/sigilpython${PYTHON_VER}.tar.xz" "${python_url}"
      touch "/usr/src/sigilpython${PYTHON_VER}.tar.xz.download_ok"
    fi
    tar -xJf "/usr/src/sigilpython${PYTHON_VER}.tar.xz" -C /opt/sigiltools
  fi
  export PATH=/opt/sigiltools/python/bin:$PATH
  export LD_LIBRARY_PATH=/opt/sigiltools/python/lib:$LD_LIBRARY_PATH
  export PYTHONHOME=/opt/sigiltools/python
  which python3
  echo "Upgrading pip..."
  export PIP_ROOT_USER_ACTION=ignore
  python3 -m ensurepip
  python3 -m pip install --upgrade --force-reinstall --root-user-action ignore pip --disable-pip-version-check --no-warn-script-location
  echo "Python version $(python3 --version)"
}

setup_qt6() {
  python3 -m pip install --root-user-action ignore aqtinstall
  python3 -m aqt install-qt --outputdir /opt/sigiltools/Qt linux desktop "${QT6_VER_FULL}" linux_gcc_64 -m qtpositioning qtpdf qtwebchannel qtserialport qtimageformats qtwaylandcompositor
  export PATH=/opt/sigiltools/Qt/$QT6_VER_FULL/gcc_64/bin:$PATH
  export LD_LIBRARY_PATH=/opt/sigiltools/Qt/${QT6_VER_FULL}/gcc_64/lib:$LD_LIBRARY_PATH
  echo "Qt version $(qmake -v)"
}

setup_webengine() {
  we_url="https://github.com/dougmassay/win-qtwebkit-5.212/releases/download/v5.212-1/AppImageWebEngine${QT6_FN}.tar.xz"
  if [ -f "/reporoot/AppImageWebEngine${QT6_FN}.tar.xz" ]; then
    echo "Using local QtWebEngine archive"
    tar -xJf "/reporoot/AppImageWebEngine${QT6_FN}.tar.xz" -C /opt/sigiltools
  else
    if [ ! -f "/usr/src/AppImageWebEngine${QT6_FN}.tar.xz.download_ok" ]; then
      echo "Downloading remote QtWebEngine archive"
      rm -f "/usr/src/AppImageWebEngine${QT6_FN}.tar.xz"
      retry curl -kLC- -o "/usr/src/AppImageWebEngine${QT6_FN}.tar.xz" "${we_url}"
      touch "/usr/src/AppImageWebEngine${QT6_FN}.tar.xz.download_ok"
    fi
    tar -xJf "/usr/src/AppImageWebEngine${QT6_FN}.tar.xz" -C /opt/sigiltools
  fi
  ls -l "/opt/sigiltools/Qt/${QT6_VER_FULL}/gcc_64/libexec"
  export Qt6_Dir="/opt/sigiltools/Qt/${QT6_VER_FULL}/gcc_64/lib/cmake/Qt6"
  export Qt6_DIR="/opt/sigiltools/Qt/${QT6_VER_FULL}/gcc_64/lib/cmake/Qt6"
  export QT_PLUGIN_PATH="/opt/sigiltools/Qt/${QT6_VER_FULL}/gcc_64/plugins"
}

clone_sigil_src() {
  cd /
  git config --global --add safe.directory /
  git clone https://github.com/Sigil-Ebook/Sigil.git
}

pkg_python() {
  mkdir -p /build
  python3 -m pip install --root-user-action ignore patchelf
  python3 -m pip install --root-user-action ignore -r "${SELF_DIR}/requirements.txt"
  python3 "${SELF_DIR}/appimg_python3_gather.py" /build/sigil.AppDir "${PY_SHORT_VER}"
}

get_appimage_tools() {
  cd /build
  wget -nv https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
  chmod +x linuxdeploy-x86_64.AppImage
  wget -nv https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
  chmod +x linuxdeploy-plugin-qt-x86_64.AppImage
  wget -nv https://github.com/linuxdeploy/linuxdeploy-plugin-appimage/releases/download/continuous/linuxdeploy-plugin-appimage-x86_64.AppImage
  chmod +x linuxdeploy-plugin-appimage-x86_64.AppImage
  cp /lib/x86_64-linux-gnu/libtiff.so.5 /build/sigil.AppDir/usr/lib/
  cp /lib/x86_64-linux-gnu/libwebp.so.7 /build/sigil.AppDir/usr/lib/
}

build_sigil() {
  cd /build
  cmake /reporoot \
    -G "Ninja" \
    -DCMAKE_PREFIX_PATH="/opt/sigiltools/Qt/${QT6_VER_FULL}/gcc_64/lib/cmake" \
    -DPKG_SYSTEM_PYTHON=1 \
    -DAPPIMAGE_BUILD=1 \
    -DCMAKE_BUILD_TYPE=Release \
    -DINSTALL_HICOLOR_ICONS=1 \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_INSTALL_LIBDIR=lib \
    -DCMAKE_SKIP_RPATH=ON
  ninja -j$(getconf _NPROCESSORS_ONLN)
  DESTDIR=sigil.AppDir ninja install
}

build_appimage() {
  cd /build
  # If COMMITISH not provided as a parameter, try to pick
  # up the Sigil version from cmake-created version file.
  if [ -z "$COMMITISH" ]; then
    if [ -f appimage_version.txt ]; then
      COMMITISH=$(cat appimage_version.txt | tr -d '\n')
      echo "Using COMMITISH of ${COMMITISH} for OUTPUT_APP_NAME"
    fi
  fi
  export LINUXDEPLOY_OUTPUT_APP_NAME="Sigil-${COMMITISH}"
  export APPIMAGE_EXTRACT_AND_RUN=1
  export DEPLOY_PLATFORM_THEMES=1
  export DISABLE_COPYRIGHT_FILES_DEPLOYMENT=1
  export LD_LIBRARY_PATH=lib:sigil.AppDir/usr/lib/python$PY_SHORT_VER/site-packages/pillow.libs:$LD_LIBRARY_PATH
  #EXTRA_PLATFORM_PLUGINS=libqwayland-generic.so
  export EXTRA_PLATFORM_PLUGINS=libqwayland.so
  export EXTRA_QT_MODULES="waylandcompositor"
  ./linuxdeploy-x86_64.AppImage --appdir sigil.AppDir --custom-apprun=${SELF_DIR}/AppRun --plugin qt
  python3 "${SELF_DIR}/appimg_cleanup.py" /build/sigil.AppDir/usr/lib $PY_SHORT_VER
  #cp -fv "${SELF_DIR}/AppRun" /build/sigil.AppDir/
  LDAI_UPDATE_INFORMATION="gh-releases-zsync|Sigil-Ebook|Sigil|latest|Sigil-*x86_64.AppImage.zsync" \
  LDAI_VERBOSE=1 \
  ./linuxdeploy-plugin-appimage-x86_64.AppImage --appdir=sigil.AppDir
  cp -fv Sigil-*-x86_64.AppImage* /reporoot/
}

time {
  prepare_baseenv
  prepare_buildenv
  setup_python
  setup_qt6
  setup_webengine
  #clone_sigil_src
  pkg_python
  get_appimage_tools
  build_sigil
  build_appimage
}


================================================
FILE: .github/workflows/build_sigilpython.sh
================================================
#!/bin/bash -e

# WARNING!!  Do not attempt to run this script outside of a docker container. Doing so can damage your system!!

# This script is for building python for sigil appimage
# Please run this script in docker image: ubuntu:22.04
# E.g: docker run --rm -v `git rev-parse --show-toplevel`:/reporoot ubuntu:22.04 /reporoot/.github/workflows/build_sigilpython.sh
# Artifacts will copy to the same directory.

set -o pipefail

export PYTHON_VER="3.14.2"
export OPENSSL_VER="3.0.16"
export LC_ALL="C.UTF-8"
export DEBIAN_FRONTEND=noninteractive
export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig
SELF_DIR="$(dirname "$(readlink -f "${0}")")"

retry() {
  # max retry 5 times
  try=5
  # sleep 30 sec every retry
  sleep_time=15
  for i in $(seq ${try}); do
    echo "executing with retry: $@" >&2
    if eval "$@"; then
      return 0
    else
      echo "execute '$@' failed, tries: ${i}" >&2
      sleep ${sleep_time}
    fi
  done
  echo "execute '$@' failed" >&2
  return 1
}

# join array to string. E.g join_by ',' "${arr[@]}"
join_by() {
  local separator="$1"
  shift
  local first="$1"
  shift
  printf "%s" "$first" "${@/#/$separator}"
}

prepare_baseenv() {
  rm -f /etc/apt/sources.list.d/*.list*

  # keep debs in container for store cache in docker volume
  rm -f /etc/apt/apt.conf.d/*
  echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/01keep-debs
  echo -e 'Acquire::https::Verify-Peer "false";\nAcquire::https::Verify-Host "false";' > /etc/apt/apt.conf.d/99-trust-https

  # Since cmake 3.23.0 CMAKE_INSTALL_LIBDIR will force set to lib/<multiarch-tuple> on Debian
  echo '/usr/local/lib/x86_64-linux-gnu' > /etc/ld.so.conf.d/x86_64-linux-gnu-local.conf
  echo '/usr/local/lib64' > /etc/ld.so.conf.d/lib64-local.conf
  retry apt-get update

  retry apt-get install -y --allow-downgrades software-properties-common apt-transport-https python3-tk tk-dev 
  retry apt-get update

  retry apt-get install -y \
    make \
    build-essential \
    curl \
    libssl-dev \
    libgdbm-dev \
    libgdbm-compat-dev \
    libzstd-dev \
    liblzma-dev \
    libbz2-dev \
    libsqlite3-dev \
    libffi-dev \
    pkg-config \
    unzip \
    zip \
    zlib1g-dev

#libncursesw5-dev \
#libreadline-dev \

  apt-get autoremove --purge -y
  # strip all compiled files by default
  export CFLAGS='-s'
  export CXXFLAGS='-s'
  # Force refresh ld.so.cache
  ldconfig
}

prepare_ssl() {
  openssl_url="https://github.com/openssl/openssl/releases/download/openssl-${OPENSSL_VER}/openssl-${OPENSSL_VER}.tar.gz"
  echo "OpenSSL version: ${OPENSSL_VER}"
  mkdir -p "/usr/src/openssl-${OPENSSL_VER}/"
  if [ ! -f "/usr/src/openssl-${OPENSSL_VER}/.unpack_ok" ]; then
    retry curl -kSL "${openssl_url}" \| tar zxf - -C "/usr/src/openssl-${OPENSSL_VER}/" --strip-components 1
    touch "/usr/src/openssl-${OPENSSL_VER}/.unpack_ok"
  fi
  cd "/usr/src/openssl-${OPENSSL_VER}"
  ./Configure no-tests --openssldir=/etc/ssl
  make -j$(nproc)
  make install_sw
  ldconfig
}

prepare_python() {
  python_url="https://www.python.org/ftp/python/${PYTHON_VER}/Python-${PYTHON_VER}.tar.xz"
  echo "Python version: ${PYTHON_VER}"
  mkdir -p "/usr/src/python3-${PYTHON_VER}/"
  if [ ! -f "/usr/src/python3-${PYTHON_VER}/.unpack_ok" ]; then
    retry curl -kSL "${python_url}" \| tar Jxf - -C "/usr/src/python3-${PYTHON_VER}/" --strip-components 1
    touch "/usr/src/python3-${PYTHON_VER}/.unpack_ok"
  fi
  cd "/usr/src/python3-${PYTHON_VER}"
  ./configure --prefix=/opt/sigiltools/python --enable-shared --enable-optimizations --enable-loadable-sqlite-extensions --disable-test-modules
  make -j$(nproc)
  make install
  cd /opt/sigiltools
  tar -cvJf sigilpython${PYTHON_VER}.tar.xz --exclude='**/__pycache__/*' python
  cp -fv sigilpython${PYTHON_VER}.tar.xz /reporoot/
  ldconfig
}

time {
  prepare_baseenv
  #prepare_ssl
  prepare_python
}

================================================
FILE: .github/workflows/build_sigilwebengine.sh
================================================
#!/bin/bash -e

# WARNING!!  Do not attempt to run this script outside of a docker container. Doing so can damage your system!!

# This script is for building qtwebengine for sigil appimage
# Please run this script in docker image: ubuntu:22.04
# E.g: docker run --rm -v `git rev-parse --show-toplevel`:/reporoot ubuntu:22.04 /reporoot/.github/workflows/build_sigilwebengine.sh
# Artifacts will copy to the same directory.

set -o pipefail

export PYTHON_VER="3.14.2"
export QT6_VER="6.10"
export QT6_VER_FULL="6.10.2"
export QT6_FN="6102"
export LC_ALL="C.UTF-8"
export DEBIAN_FRONTEND=noninteractive
export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig
SELF_DIR="$(dirname "$(readlink -f "${0}")")"

retry() {
  # max retry 5 times
  try=5
  # sleep 30 sec every retry
  sleep_time=15
  for i in $(seq ${try}); do
    echo "executing with retry: $@" >&2
    if eval "$@"; then
      return 0
    else
      echo "execute '$@' failed, tries: ${i}" >&2
      sleep ${sleep_time}
    fi
  done
  echo "execute '$@' failed" >&2
  return 1
}

prepare_baseenv() {
  rm -f /etc/apt/sources.list.d/*.list*

  # keep debs in container for store cache in docker volume
  rm -f /etc/apt/apt.conf.d/*
  echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/01keep-debs
  echo -e 'Acquire::https::Verify-Peer "false";\nAcquire::https::Verify-Host "false";' > /etc/apt/apt.conf.d/99-trust-https

  # Since cmake 3.23.0 CMAKE_INSTALL_LIBDIR will force set to lib/<multiarch-tuple> on Debian
  echo '/usr/local/lib/x86_64-linux-gnu' > /etc/ld.so.conf.d/x86_64-linux-gnu-local.conf
  echo '/usr/local/lib64' > /etc/ld.so.conf.d/lib64-local.conf
  retry apt-get update

  retry apt-get install -y --allow-downgrades software-properties-common apt-transport-https
  retry apt-get update

  retry apt-get install -y \
    make \
    build-essential \
    curl \
    gperf \
    bison \
    flex \
    libfontconfig1-dev \
    libdbus-glib-1-dev \
    libgl1-mesa-dev \
    libgbm-dev \
    libnss3-dev \
    libasound2-dev \
    libpulse-dev \
    libdrm-dev \
    libxshmfence-dev \
    libxkbfile-dev \
    libxcomposite-dev \
    libxcursor-dev \
    libxrandr-dev \
    libxi-dev \
    x11proto-dev \
    libxtst-dev \
    libxkbcommon-dev \
    libxcb-dri3-dev \
    libxdamage-dev \
    zip \
    p7zip-full \
    zlib1g-dev


  apt-get autoremove --purge -y
  # strip all compiled files by default
  export CFLAGS='-s'
  export CXXFLAGS='-s'
  # Force refresh ld.so.cache
  ldconfig
}

prepare_buildenv() {
  # Install Cmake
  if ! which cmake &>/dev/null; then
    cmake_latest_ver="$(retry curl -ksSL --compressed https://cmake.org/download/ \| grep "'Latest Release'" \| sed -r "'s/.*Latest Release\s*\((.+)\).*/\1/'" \| head -1)"
    cmake_binary_url="https://github.com/Kitware/CMake/releases/download/v${cmake_latest_ver}/cmake-${cmake_latest_ver}-linux-x86_64.tar.gz"
    cmake_sha256_url="https://github.com/Kitware/CMake/releases/download/v${cmake_latest_ver}/cmake-${cmake_latest_ver}-SHA-256.txt"
    if [ -f "/usr/src/cmake-${cmake_latest_ver}-linux-x86_64.tar.gz" ]; then
      cd /usr/src
      cmake_sha256="$(retry curl -ksSL --compressed "${cmake_sha256_url}" \| grep "cmake-${cmake_latest_ver}-linux-x86_64.tar.gz")"
      if ! echo "${cmake_sha256}" | sha256sum -c; then
        rm -f "/usr/src/cmake-${cmake_latest_ver}-linux-x86_64.tar.gz"
      fi
    fi
    if [ ! -f "/usr/src/cmake-${cmake_latest_ver}-linux-x86_64.tar.gz" ]; then
      retry curl -kLo "/usr/src/cmake-${cmake_latest_ver}-linux-x86_64.tar.gz" "${cmake_binary_url}"
    fi
    tar -zxf "/usr/src/cmake-${cmake_latest_ver}-linux-x86_64.tar.gz" -C /usr/local --strip-components 1
  fi
  cmake --version

  # Install Ninja
  if ! which ninja &>/dev/null; then
    ninja_ver="$(retry curl -ksSL --compressed https://ninja-build.org/ \| grep "'The last Ninja release is'" \| sed -r "'s@.*<b>(.+)</b>.*@\1@'" \| head -1)"
    ninja_binary_url="https://github.com/ninja-build/ninja/releases/download/${ninja_ver}/ninja-linux.zip"
    if [ ! -f "/usr/src/ninja-${ninja_ver}-linux.zip.download_ok" ]; then
      rm -f "/usr/src/ninja-${ninja_ver}-linux.zip"
      retry curl -kLC- -o "/usr/src/ninja-${ninja_ver}-linux.zip" "${ninja_binary_url}"
      touch "/usr/src/ninja-${ninja_ver}-linux.zip.download_ok"
    fi
    unzip -d /usr/local/bin "/usr/src/ninja-${ninja_ver}-linux.zip"
  fi
  echo "Ninja version $(ninja --version)"
}

setup_python() {
  mkdir -p /opt/sigiltools
  python_url="https://github.com/dougmassay/win-qtwebkit-5.212/releases/download/v5.212-1/sigilpython${PYTHON_VER}.tar.xz"
  if [ -f "/reporoot/sigilpython${PYTHON_VER}.tar.xz" ]; then
    echo "Using local Python archive"
    tar -xJf "/reporoot/sigilpython${PYTHON_VER}.tar.xz" -C /opt/sigiltools
  else
    if [ ! -f "/usr/src/sigilpython${PYTHON_VER}.tar.xz.download_ok" ]; then
      rm -f "/usr/src/sigilpython${PYTHON_VER}.tar.xz"
      retry curl -kLC- -o "/usr/src/sigilpython${PYTHON_VER}.tar.xz" "${python_url}"
      touch "/usr/src/sigilpython${PYTHON_VER}.tar.xz.download_ok"
    fi
    tar -xJf "/usr/src/sigilpython${PYTHON_VER}.tar.xz" -C /opt/sigiltools
  fi
  export PATH=/opt/sigiltools/python/bin:$PATH
  export LD_LIBRARY_PATH=/opt/sigiltools/python/lib:$LD_LIBRARY_PATH
  export PYTHONHOME=/opt/sigiltools/python
  which python3
  echo "Upgrading pip..."
  export PIP_ROOT_USER_ACTION=ignore
  python3 -m ensurepip
  python3 -m pip install --upgrade --force-reinstall --root-user-action ignore pip --disable-pip-version-check --no-warn-script-location
  python3 -m pip install --root-user-action ignore html5lib 
  echo "Python version $(python3 --version)"
}

setup_nodejs() {
  curl -fsSL https://deb.nodesource.com/setup_23.x -o nodesource_setup.sh
  bash nodesource_setup.sh
  apt-get install -y nodejs
  node -v
}

setup_qt6() {
  python3 -m pip install --root-user-action ignore aqtinstall
  python3 -m aqt install-qt --outputdir /opt/sigiltools/qt linux desktop "${QT6_VER_FULL}" linux_gcc_64 -m qtpositioning qtpdf qtwebchannel qtserialport qtimageformats qtwaylandcompositor
  export PATH=/opt/sigiltools/qt/$QT6_VER_FULL/gcc_64/bin:$PATH
  echo "Qt version $(qmake -v)"
}

setup_webengine_src() {
  mkdir -p /opt/we_src
  webengine_url="https://download.qt.io/official_releases/qt/${QT6_VER}/${QT6_VER_FULL}/submodules/qtwebengine-everywhere-src-${QT6_VER_FULL}.tar.xz"
  webengine_sha256_url="https://download.qt.io/official_releases/qt/${QT6_VER}/${QT6_VER_FULL}/submodules/qtwebengine-everywhere-src-${QT6_VER_FULL}.tar.xz.sha256"
  if [ -f "/usr/src/qtwebengine-everywhere-src-${QT6_VER_FULL}.tar.xz" ]; then
    cd /usr/src
    webengine_sha256="$(retry curl -ksSL --compressed "${webengine_sha256_url}" \| grep "qtwebengine-everywhere-src-${QT6_VER_FULL}.tar.xz")"
    if ! echo "${webengine_sha256}" | sha256sum -c; then
      rm -f "/usr/src/qtwebengine-everywhere-src-${QT6_VER_FULL}.tar.xz"
    fi
  fi
  if [ ! -f "/usr/src/qtwebengine-everywhere-src-${QT6_VER_FULL}.tar.xz" ]; then
    retry curl -kLo "/usr/src/qtwebengine-everywhere-src-${QT6_VER_FULL}.tar.xz" "${webengine_url}"
  fi
  tar -xJf "/usr/src/qtwebengine-everywhere-src-${QT6_VER_FULL}.tar.xz" -C /opt/we_src --strip-components 1
  cd /opt/we_src
  patch -p1 < /reporoot/docs/Qt_Patches/qt672_fix_h6_insertParagraph.patch
  #patch -p1 < /reporoot/docs/Qt_Patches/qt693_fix_mesa_issues.patch
  #patch -p1 < /reporoot/docs/Qt_Patches/qt693_memory_leak_fix_886ff03.patch
  mkdir /opt/we_src/build
  cd /opt/we_src/build
  qt-configure-module .. -list-features
  qt-configure-module .. -feature-qtwebengine-build -feature-qtwebengine-widgets-build -no-feature-qtpdf-quick-build -no-feature-qtwebengine-quick-build -no-feature-webengine-system-libxml -feature-webengine-proprietary-codecs -webengine-ffmpeg -webengine-icu -- -D CMAKE_BUILD_TYPE=MinSizeRel
  cmake --build . --parallel --verbose
  cmake --install . --prefix /opt/Qt/${QT6_VER_FULL}/gcc_64
  cd /opt
  #XZ_OPT='-9' tar -cJf AppImageWebEngine${QT6_FN}.tar.xz --exclude='*.debug' Qt
  tar -cJf AppImageWebEngine${QT6_FN}.tar.xz --exclude='*.debug' Qt
  cp -fv AppImageWebEngine${QT6_FN}.tar.xz /reporoot/
}

prepare_baseenv
prepare_buildenv
setup_python
setup_nodejs
setup_qt6
time {
  setup_webengine_src
}


================================================
FILE: .github/workflows/checkqt5.yml
================================================
name: Test Qt5 Compatibility

on:
  workflow_dispatch: 
    branches: master

env:
  BUILD_TYPE: Debug

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v4

    - uses: actions/setup-python@v5
      with:
        python-version: '3.11.3'

    - name: Cache Qt
      id: cache-qt
      uses: actions/cache@v4
      with:
        path: ${{runner.workspace}}/Qt
        key: ${{ runner.os }}-sigilqt-${{ hashFiles('**/reset-lin-caches.txt') }}
  
    - name: Install Qt
      uses: jurplel/install-qt-action@v3
      with:
        version: '5.12.9'
        dir: ${{runner.workspace}}/Qt
        modules: 'qtwebengine'
        setup-python: 'false'
        cache: ${{ steps.cache-qt.outputs.cache-hit }}

    - uses: lukka/get-cmake@latest

    - name: Install dependencies
      run: |
        sudo apt install mesa-common-dev libglu1-mesa-dev
        mkdir ${{runner.workspace}}/build
        cmake --version
        ninja --version
        qmake -v
        python3 --version
        gcc --version

    - name: Build Sigil
      working-directory: ${{runner.workspace}}/build
      run: |
        cmake $GITHUB_WORKSPACE \
        -G "Ninja" \
        -DUSE_QT5=1 \
        -DCMAKE_PREFIX_PATH="{$QT_ROOT_DIR}/lib/cmake" \
        -DCMAKE_BUILD_TYPE=$BUILD_TYPE \
        -DUSE_SYSTEM_LIBS=1 \
        -DSYSTEM_LIBS_REQUIRED=0
        ninja -j$(getconf _NPROCESSORS_ONLN)


================================================
FILE: .github/workflows/create_tag.yml
================================================
name: Create Signed Tag Manually

on:
  workflow_dispatch: 
    branches: master
    inputs:
      tag_name:
        description: 'Tag name to create'
        required: true
        default: ''

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v4
      with:
        token: ${{ secrets.ROBO_ACTIONS }}

    - name: Check Tag Name
      id: check_tag_name
      if: ${{ github.event.inputs.tag_name != '' }}
      run: echo "valid=yes" >> "$GITHUB_OUTPUT"
#      uses: actions-ecosystem/action-regex-match@v2
#      with:
#        text: ${{ github.event.inputs.tag_name }}
#        regex: '^\d+\.\d+\.\d+$'
      

    - name: GPG Import
      if: ${{ steps.check_tag_name.outputs.valid == 'yes' }}
      uses: crazy-max/ghaction-import-gpg@v6
      with:
        gpg_private_key: ${{ secrets.NEW_SIGNING_STUFF }}
        passphrase: ${{ secrets.SIGNING_BONUS_PHRASE }}
        git_user_signingkey: true
        git_tag_gpgsign: true

    - name: Sign and Push Tag
      id: create_archive
      if: ${{ steps.check_tag_name.outputs.valid == 'yes' }}
      run: |
        git config tar.tar.gz.command 'gzip -cn'
        git tag -s ${{ github.event.inputs.tag_name }} -m 'Tag for ${{ github.event.inputs.tag_name }} release'
        git push origin ${{ github.event.inputs.tag_name }}
        REPO=$(basename "$(pwd)")
        TAG=${{ github.event.inputs.tag_name }}
        FNAME=${REPO}-${TAG#v}
        echo "fname=$FNAME" >> $GITHUB_OUTPUT
        URL="https://github.com/$GITHUB_REPOSITORY/archive/refs/tags/${{ github.event.inputs.tag_name }}.zip"
        git archive --prefix=${REPO}-${TAG#v}/ -o ${FNAME}.tar.gz ${TAG}
        gpg --detach-sign --pinentry-mode=loopback --passphrase ${{ secrets.SIGNING_BONUS_PHRASE }} ${FNAME}.tar.gz
        curl -L -o ${FNAME}.zip ${URL}
        gpg --detach-sign --pinentry-mode=loopback --passphrase ${{ secrets.SIGNING_BONUS_PHRASE }} ${FNAME}.zip

    - name: Create Release
      if: ${{ steps.check_tag_name.outputs.valid == 'yes' }}
      uses: ncipollo/release-action@v1
      with:
        token: ${{ secrets.ROBO_ACTIONS }}
        name: ${{ steps.create_archive.outputs.fname }}
        tag: ${{ github.event.inputs.tag_name }}
        body: |
          Changes in this Release
          - First Change
          - Second Change
        draft: true
        prerelease: false
        artifacts: "./${{ steps.create_archive.outputs.fname }}.tar.gz.sig, ./${{ steps.create_archive.outputs.fname }}.zip.sig"


================================================
FILE: .github/workflows/linux-build.yml
================================================
name: Build Sigil on Linux

on:
  push:
    branches: [ master ]
    tags-ignore:
      - '**'
    paths-ignore:
    - 'docs/**'
    - 'installer/win_installer_note.txt'
    - 'ChangeLog.txt'
    - 'COPYING.txt'
    - 'version.xml'
    - 'appveyor.yml'
    - '.retired_travis.yml'
    - '**.md'

  pull_request:
    branches: [ master ]
    tags-ignore:
      - '**'
    paths-ignore:
    - 'docs/**'
    - 'installer/win_installer_note.txt'
    - 'ChangeLog.txt'
    - 'COPYING.txt'
    - 'version.xml'
    - 'appveyor.yml'
    - '.retired_travis.yml'
    - '**.md'

env:
  BUILD_TYPE: Debug

jobs:
  build:
    if: "!contains(github.event.head_commit.message, '[skip ci]')"
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v4

    - uses: actions/setup-python@v5
      with:
        python-version: '3.10.4'

    - name: Cache Qt
      id: cache-qt
      uses: actions/cache@v4
      with:
        path: ${{runner.workspace}}/Qt
        key: ${{ runner.os }}-sigilqt-${{ hashFiles('**/reset-lin-caches.txt') }}
  
    - name: Install Qt
      uses: jurplel/install-qt-action@v3
      with:
        version: '6.4.0'
        dir: ${{runner.workspace}}/Qt
        modules: 'qtwebengine qtpositioning qtpdf qtwebchannel'
        setup-python: 'false'
        cache: ${{ steps.cache-qt.outputs.cache-hit }}
        # extra: "-b https://mirrors.dotsrc.org/qtproject"

    - uses: lukka/get-cmake@latest

    - name: Install dependencies
      run: |
        sudo apt install mesa-common-dev libglu1-mesa-dev
        mkdir ${{runner.workspace}}/build
        cmake --version
        ninja --version
        qmake -v
        python3 --version
        gcc --version

    - name: Build Sigil
      working-directory: ${{runner.workspace}}/build
      run: |
        cmake $GITHUB_WORKSPACE \
        -G "Ninja" \
        -DCMAKE_PREFIX_PATH="{$QT_ROOT_DIR}/lib/cmake" \
        -DCMAKE_BUILD_TYPE=$BUILD_TYPE \
        -DTRY_NEWER_FINDPYTHON3=1 \
        -DUSE_SYSTEM_LIBS=1 \
        -DSYSTEM_LIBS_REQUIRED=0
        ninja -j$(getconf _NPROCESSORS_ONLN)


================================================
FILE: .github/workflows/mac-build.yml
================================================
name: Build Sigil on macOS x86_64

on:

  workflow_dispatch:

  push:
    branches: [ master ]
    tags-ignore:
      - '**'
    paths-ignore:
    - 'docs/**'
    - 'installer/win_installer_note.txt'
    - 'ChangeLog.txt'
    - 'COPYING.txt'
    - 'version.xml'
    - '.retired_travis.yml'
    - '**/**.md'
  pull_request:
    branches: [ master ]
    tags-ignore:
      - '**'
    paths-ignore:
    - 'docs/**'
    - 'installer/win_installer_note.txt'
    - 'ChangeLog.txt'
    - 'COPYING.txt'
    - 'version.xml'
    - '.retired_travis.yml'
    - '**/**.md'
env:
  HOMEBREW_NO_AUTO_UPDATE: 1
  HOMEBREW_NO_INSTALL_CLEANUP: 1
  MACOSX_DEPLOYMENT_TARGET: 13
  DOWNLOADQT: https://github.com/kevinhendricks/BuildSigilOnMac/releases/download/for_sigil_1.0.0/Qt6102.tar.xz
  DOWNLOADPY: https://github.com/kevinhendricks/BuildSigilOnMac/releases/download/for_sigil_1.0.0/Python.framework.tar.xz
  PY_VER: 3.14
  QT: Qt6102

jobs:
  build:
    if: "!contains(github.event.head_commit.message, '[skip ci]')"
    runs-on: macos-15-intel

    steps:
    - uses: actions/checkout@v4

    - name: Cache Custom Qt
      uses: actions/cache@v4
      with:
        path: ${{runner.workspace}}/${{env.QT}}
        key: ${{ runner.os }}-qtdeps-${{hashFiles('**/reset-mac-caches.txt')}}

    - name: Cache Custom Python
      uses: actions/cache@v4
      with:
        path: ${{runner.workspace}}/Frameworks
        key: ${{ runner.os }}-qtdeps-${{hashFiles('**/reset-mac-caches.txt')}}

    - name: Install dependencies
      shell: bash
      working-directory: ${{runner.workspace}}
      run: |
        pwd
        if [[ ! -d ${{runner.workspace}}/${{env.QT}} ]]; \
        then curl -L -o qt6.tar.xz ${DOWNLOADQT} && tar xzf qt6.tar.xz; fi

        if [[ -d ${{runner.workspace}}/${{env.QT}}/bin ]]; \
        then cd ${{runner.workspace}}/${{env.QT}}/bin && \
        echo [Paths] > qt.conf && echo Prefix=.. >> qt.conf; fi

        export MYQTHOME=${{runner.workspace}}/${{env.QT}}
        echo ${MYQTHOME}/bin >> $GITHUB_PATH
        cd ${{runner.workspace}}

        if [[ ! -d ${{runner.workspace}}/Frameworks ]]; \
        then mkdir Frameworks && cd ${{runner.workspace}}/Frameworks && \
        curl -L -o python3.tar.xz ${DOWNLOADPY} && tar xzf python3.tar.xz; fi

        export MYDEST=${{runner.workspace}}/Frameworks
        echo ${MYDEST}/Python.framework/Versions/${PY_VER}/bin >> $GITHUB_PATH
        echo "Qt6_DIR=${{runner.workspace}}/${{env.QT}}/lib/cmake/Qt6" >> $GITHUB_ENV
        echo "Qt6_Dir=${{runner.workspace}}/${{env.QT}}/lib/cmake/Qt6" >> $GITHUB_ENV
        echo "QT_PLUGIN_PATH=${{runner.workspace}}/${{env.QT}}/plugins" >> $GITHUB_ENV

    - name: Test environment
      shell: bash
      run: |
        qmake -v
        python3 --version
        mkdir ${{runner.workspace}}/build
        pwd

    - name: Build Sigil
      working-directory: ${{runner.workspace}}/build
      shell: bash
      run: |
        cmake -DPKG_SYSTEM_PYTHON=1 \
        -DCMAKE_OSX_DEPLOYMENT_TARGET=11 \
        -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_CXX_FLAGS=-Wno-inconsistent-missing-override \
        -DCMAKE_PREFIX_PATH=${{runner.workspace}}/${{env.QT}}/lib/cmake \
        -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/ $GITHUB_WORKSPACE  
        make -j$(getconf _NPROCESSORS_ONLN)   

    - name: Build Installer
      working-directory: ${{runner.workspace}}/build
      shell: bash
      if: contains(github.event.head_commit.message, '[deploy]') || github.event_name == 'workflow_dispatch'
      run: |
        echo 'Deploying App'
        make addframeworks
        bash $GITHUB_WORKSPACE/ci_scripts/rpath_adjust.sh
        cd ./bin
        tar -cJf Sigil.tar.xz Sigil.app

    # RIP gdrive
    #- name: Upload to gdrive
    #  working-directory: ${{runner.workspace}}/build
    #  shell: bash
    #  if: "contains(github.event.head_commit.message, '[deploy]') && github.event_name != 'pull_request'"
    #  run: |
    #    gdrive version
    #    python3 $GITHUB_WORKSPACE/ci_scripts/newgddeploy.py

    - uses: actions/upload-artifact@v4
      if: contains(github.event.head_commit.message, '[deploy]') || github.event_name == 'workflow_dispatch'
      with:
        name: sigil-installer
        path: ${{runner.workspace}}/build/bin/Sigil.tar.xz
        retention-days: 5
         


================================================
FILE: .github/workflows/mac_arm64-build.yml
================================================
name: Build Sigil on macOS arm64

on:

  workflow_dispatch:
  
  push:
    branches: [ master ]
    tags-ignore:
      - '**'
    paths-ignore:
    - 'docs/**'
    - 'installer/win_installer_note.txt'
    - 'ChangeLog.txt'
    - 'COPYING.txt'
    - 'version.xml'
    - '.retired_travis.yml'
    - '**/**.md'
  pull_request:
    branches: [ master ]
    tags-ignore:
      - '**'
    paths-ignore:
    - 'docs/**'
    - 'installer/win_installer_note.txt'
    - 'ChangeLog.txt'
    - 'COPYING.txt'
    - 'version.xml'
    - '.retired_travis.yml'
    - '**/**.md'
env:
  HOMEBREW_NO_AUTO_UPDATE: 1
  HOMEBREW_NO_INSTALL_CLEANUP: 1
  MACOSX_DEPLOYMENT_TARGET: 13
  DOWNLOADQT: https://github.com/kevinhendricks/BuildSigilOnMac/releases/download/for_sigil_1.0.0/Qt6102_arm64.tar.xz
  DOWNLOADPY: https://github.com/kevinhendricks/BuildSigilOnMac/releases/download/for_sigil_1.0.0/Python.framework_arm64.tar.xz
  PY_VER: 3.14
  QT: Qt6102

jobs:
  build:
    if: "!contains(github.event.head_commit.message, '[skip ci]')"
    runs-on: macos-latest

    steps:
    - uses: actions/checkout@v4

    - name: Cache Custom Qt
      uses: actions/cache@v4
      with:
        path: ${{runner.workspace}}/${{env.QT}}
        key: ${{ runner.os }}-qtdeps-${{hashFiles('**/reset-mac_arm64-caches.txt')}}

    - name: Cache Custom Python
      uses: actions/cache@v4
      with:
        path: ${{runner.workspace}}/Frameworks
        key: ${{ runner.os }}-qtdeps-${{hashFiles('**/reset-mac_arm64-caches.txt')}}

    - name: Install dependencies
      shell: bash
      working-directory: ${{runner.workspace}}
      run: |
        pwd
        if [[ ! -d ${{runner.workspace}}/${{env.QT}} ]]; \
        then curl -L -o qt6.tar.xz ${DOWNLOADQT} && tar xzf qt6.tar.xz; fi

        if [[ -d ${{runner.workspace}}/${{env.QT}}/bin ]]; \
        then cd ${{runner.workspace}}/${{env.QT}}/bin && \
        echo [Paths] > qt.conf && echo Prefix=.. >> qt.conf; fi

        export MYQTHOME=${{runner.workspace}}/${{env.QT}}
        echo ${MYQTHOME}/bin >> $GITHUB_PATH
        cd ${{runner.workspace}}

        if [[ ! -d ${{runner.workspace}}/Frameworks ]]; \
        then mkdir Frameworks && cd ${{runner.workspace}}/Frameworks && \
        curl -L -o python3.tar.xz ${DOWNLOADPY} && tar xzf python3.tar.xz; fi

        export MYDEST=${{runner.workspace}}/Frameworks
        echo ${MYDEST}/Python.framework/Versions/${PY_VER}/bin >> $GITHUB_PATH
        echo "Qt6_DIR=${{runner.workspace}}/${{env.QT}}/lib/cmake/Qt6" >> $GITHUB_ENV
        echo "Qt6_Dir=${{runner.workspace}}/${{env.QT}}/lib/cmake/Qt6" >> $GITHUB_ENV
        echo "QT_PLUGIN_PATH=${{runner.workspace}}/${{env.QT}}/plugins" >> $GITHUB_ENV

    - name: Test environment
      shell: bash
      run: |
        qmake -v
        python3 --version
        mkdir ${{runner.workspace}}/build
        pwd

    - name: Build Sigil
      working-directory: ${{runner.workspace}}/build
      shell: bash
      run: |
        cmake -DPKG_SYSTEM_PYTHON=1 \
        -DCMAKE_OSX_DEPLOYMENT_TARGET=11 \
        -DCMAKE_BUILD_TYPE=Release \
        -DCMAKE_CXX_FLAGS=-Wno-inconsistent-missing-override \
        -DCMAKE_PREFIX_PATH=${{runner.workspace}}/${{env.QT}}/lib/cmake \
        -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/ $GITHUB_WORKSPACE  
        make -j$(getconf _NPROCESSORS_ONLN)   

    - name: Build Installer
      working-directory: ${{runner.workspace}}/build
      shell: bash
      if: contains(github.event.head_commit.message, '[deploy]') || github.event_name == 'workflow_dispatch'
      run: |
        echo 'Deploying App'
        make addframeworks
        bash $GITHUB_WORKSPACE/ci_scripts/rpath_adjust.sh
        cd ./bin
        tar -cJf Sigil_arm64.tar.xz Sigil.app

    # RIP gdrive
    #- name: Upload to gdrive
    #  working-directory: ${{runner.workspace}}/build
    #  shell: bash
    #  if: "contains(github.event.head_commit.message, '[deploy]') && github.event_name != 'pull_request'"
    #  run: |
    #    gdrive version
    #    python3 $GITHUB_WORKSPACE/ci_scripts/newgddeploy.py

    - uses: actions/upload-artifact@v4
      if: contains(github.event.head_commit.message, '[deploy]') || github.event_name == 'workflow_dispatch'
      with:
        name: sigil-installer
        path: ${{runner.workspace}}/build/bin/Sigil_arm64.tar.xz
        retention-days: 5
         


================================================
FILE: .github/workflows/make_blog_post.yml
================================================
name: Make Blog Post

on:
  # Only create blog post after new Sigil release is published
  release:
    types: published

jobs:
  post:
    runs-on: ubuntu-latest
    steps:
      - name: Get tag name
        id: get_tag_name
        run: echo "TAGNAME=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT

      - name: Checkout
        uses: actions/checkout@v4
        with:
          ref: master
          path: main

      - name: Checkout website
        uses: actions/checkout@v4
        with:
          token: ${{ secrets.ROBO_ACTIONS }}
          repository: sigil-ebook/sigil-ebook.github.io
          ref: master
          path: website

      - name: Get Release details
        run: |
          pip install python-dateutil
          echo "${{ github.event_path }}"
          python $GITHUB_WORKSPACE/main/.github/workflows/make_post.py -p ${{ github.event_path }}
          mv ./*.md $GITHUB_WORKSPACE/website/_posts

      - name: Commit post to blog
        if: "!github.event.release.prerelease"
        uses: stefanzweifel/git-auto-commit-action@v5
        with:
          repository: website
          commit_user_name: GH Actions Bot
          commit_user_email: ghactions-bot@example.org
          commit_author: Doug Massay <dougmassay@noreply.github.com>
          commit_message: Auto create ${{ steps.get_tag_name.outputs.TAGNAME }} release blog post
          branch: master

      # Trigger sigil-ebook.com to update its version info
      - name: Trigger Remote Workflow
        if: "!github.event.release.prerelease"
        run: |
          curl \
            -X POST \
            -H "Accept: application/vnd.github.v3+json" \
            -H "Authorization: token ${{ secrets.ROBO_ACTIONS }}" \
            https://api.github.com/repos/sigil-ebook/sigil-ebook.github.io/actions/workflows/check_versions.yml/dispatches \
            -d '{"ref":"master"}'

      # Update Sigil's version.xml file so updatecheck will notice
      - name: Write file
        run: |
          cat <<EOT> $GITHUB_WORKSPACE/main/version.xml
          <?xml version="1.0" encoding="UTF-8"?>
          <information>
              <current-version>${{ steps.get_tag_name.outputs.TAGNAME }}</current-version>
          </information>
          EOT

      - name: Update Sigil version.xml
        uses: stefanzweifel/git-auto-commit-action@v5
        if: "!github.event.release.prerelease"
        with:
          repository: main
          commit_user_name: My GitHub Actions Bot
          commit_user_email: my-github-actions-bot@example.org
          commit_author: Author <actions@github.com>
          commit_message: Update version.xml to ${{ steps.get_tag_name.outputs.TAGNAME }}
          branch: master

  


================================================
FILE: .github/workflows/make_post.py
================================================
import os
import sys
import getopt
import json
import codecs
from dateutil import parser


BAIL = False

NAME = 'Sigil'

# Blog post template
POST = """---
title: {}
date: {}
categories:
  - Blog
tags:
  - Releases
  - {}
---

{}

{}

"""

# Map asset filename patterns to link text
asset_patterns = {
    'CHECKSUMS.sha256.txt'     : 'CHECKSUMS file',
    'Windows-Setup.exe'        : 'Windows x86 download',
    'Windows-x64-Setup.exe'    : 'Windows x64 download',
    'Windows-Legacy-Setup.exe' : 'Windows Legacy download',
    'Mac-x86_64.txz'           : 'MacOS (Intel) download',
    'Mac-arm64.txz'            : 'MacOS (Arm64) download',
    'x86_64.AppImage'          : 'Linux AppImage download'
}

link = "[{}]({}){{: .btn .btn--success}}<br/>"

def rchop(s, sub):
    return s[:-len(sub)] if s.endswith(sub) else s

# Get asset download urls from release  event payload 
def get_asset_links(assets):
    md_links =[]
    for asset in assets:
        for p, t in asset_patterns.items():
            if p in asset['name']:
                if not asset['name'].endswith('.zsync'):
                    md_links.append(link.format(t, asset['browser_download_url']))

    print(md_links)
    return rchop('\n'.join(md_links), '<br/>')


def main(argv):
    global BAIL
    global POST
    path = ''
    try:
        opts, args = getopt.getopt(argv,"hp:",["path="])
    except getopt.GetoptError:
        print ('make_post.py -p <path>')
        sys.exit(2)
    for opt, arg in opts:
        if opt == '-h':
            print ('make_post.py -p <path>')
            sys.exit()
        elif opt in ("-p", "--path"):
            path = arg

    # Open and serialize release event payload
    with codecs.open(path, 'r', 'utf-8') as f:
        j = json.load(f)
    r = j['release']
    date = parser.parse(r['published_at'])
    title = r['name'] + ' Released'

    # file name for blog post
    filename = os.path.join('.', date.strftime('%Y-%m-%d') + '-' + title.lower().replace(' ', '-') + '.md')
    print(filename)

    links = get_asset_links(r['assets'])

    # Plug relevant data into post template
    md = POST.format(title, r['published_at'], NAME, links, r['body'])
    print(md)

    # Write post to file
    with codecs.open(filename, 'w', 'utf-8') as f:
        f.write(md)
    sys.exit()

if __name__ == "__main__":
   main(sys.argv[1:])


================================================
FILE: .github/workflows/requirements.txt
================================================
six==1.17.0
html5lib==1.1
regex==2026.1.15
css-parser==1.0.10
cssselect==1.4.0
certifi==2026.1.4
dulwich==1.0.0
chardet==5.2.0
pillow==12.1.0
lxml==6.0.2
PySide6==6.10.2


================================================
FILE: .github/workflows/reset-lin-caches.txt
================================================
Change the content of this file to reset the caches for the github actions sigil linux build

Cache cleared 4/4/23
Cache cleard 8 August 2023
Cache cleared 8 August 2023 later
Cache cleared 8 August 2023
Cache cleared 8 August 2023
Cache cleared 8 August 2023
Cache cleared 8 August 2023
Cache cleared 19 February 2024
Cache cleared 28 June 2024
Cache cleared 28 June 2024-2
Cache cleared 29 June 2024
Cache cleared 03 July 2024


================================================
FILE: .github/workflows/reset-mac-caches.txt
================================================
Change the content of this file to reset the caches for the github actions sigil macOS x86_64 build

Changed 2024.10.23
Changed 2025.02.05
Changed 2025.02.28
Changed 2025.09.15
Changed 2025.09.19
Changed 2025.10.06
Changed 2026.02.08


================================================
FILE: .github/workflows/reset-mac_arm64-caches.txt
================================================
Change the content of this file to reset the caches for the github actions sigil macos_arm64 build

Changed 2024.7.24
Changed 2024.7.24 again
Changed 2024.7.24 again
Changed 2024.10.23
Changed 2025.02.05
Changed 2025.09.15
Changed 2025.09.19
Changed 2025.10.06
Changed 2026.02.08


================================================
FILE: .github/workflows/reset-win-caches.txt
================================================
Change the content of this file to reset the caches for the github actions sigil windows build
Reset cache on 7-July-2023
Reset cache on 26-July-2023
Reset cache on 26-August-2023
Reset cache on 4-September-2023
Reset cache on 9-Semptemeber-2023
Reset cache on 7-October-2023
Reset cache on 18-November-2023
Reset cache for Qt6.6.2 on 19-Febbruary-2024
Reset Cache on 7-March-2024
Reset Cache on 25-March-2024
Reset Cache on 28-June-2024
Reset Cache on 23-October-2024
Reset Cache on 4-February-2025
Reset Cache on 15-September-2025
Reset Cache 0n 6-October-2025
Reset Cache on 8-February-2026
Reset Cache on 18-February-2026


================================================
FILE: .github/workflows/win-build.yml
================================================
name: Build Sigil on Windows

on:

  workflow_dispatch:
  
  push:
    branches: [ master ]
    tags-ignore:
      - '**'
    paths-ignore:
    - 'docs/**'
    - 'installer/win_installer_note.txt'
    - 'ChangeLog.txt'
    - 'COPYING.txt'
    - 'version.xml'
    - '.retired_travis.yml'
    - '**/**.md'

  pull_request:
    branches: [ master ]
    tags-ignore:
      - '**'
    paths-ignore:
    - 'docs/**'
    - 'installer/win_installer_note.txt'
    - 'ChangeLog.txt'
    - 'COPYING.txt'
    - 'version.xml'
    - '.retired_travis.yml'
    - '**/**.md'

env:
  BUILD_TYPE: Release
  DOWNLOADQT: https://github.com/dougmassay/win-qtwebkit-5.212/releases/download/v5.212-1/Qt6.10.2ci_x64_VS2026.7z
  QT: Qt6.10.2
  INNO: C:\Program Files (x86)\Inno Setup 6
  PYTHON: \hostedtoolcache\windows\Python\3.14.2\x64

jobs:
  build:
    if: "!contains(github.event.head_commit.message, '[skip ci]')"
    runs-on: windows-2025-vs2026

    steps:
    - uses: actions/checkout@v4

    - name: Set up Python 3.14.2
      uses: actions/setup-python@v5
      with:
        python-version: 3.14.2

    - name: Cache Custom Qt
      uses: actions/cache@v4
      with:
        path: ${{runner.workspace}}\${{env.QT}}
        key: ${{ runner.os }}-qtdeps-${{hashFiles('**/reset-win-caches.txt')}}
  
    - name: Install Custom Qt
      shell: cmd
      run: |
        if not exist ${{runner.workspace}}\%QT% cd ${{runner.workspace}} & curl -L -o qt.7z "%DOWNLOADQT%" & 7z x qt.7z -y

    # Add this after windows-latest migrates to windows-2025
    - name: install InnoSetup
      shell: cmd
      # Install if not already installed otherwise do nothing if already latest
      run: choco upgrade innosetup -y --no-progress

    - uses: lukka/get-cmake@latest

    - name: Install pip dependencies
      shell: cmd
      run: |
        set PATH=C:\%PYTHON%;C:\%PYTHON%\Scripts;%PATH%
        python -m pip install --upgrade pip
        pip install six==1.17.0
        pip install html5lib==1.1
        pip install regex==2026.1.15
        pip install css-parser==1.0.10
        pip install cssselect==1.4.0
        pip install urllib3==2.6.3
        pip install certifi==2026.1.4
        pip install dulwich==1.0.0
        pip install chardet==5.2.0
        pip install pillow==12.1.0
        pip install lxml==6.0.2
        pip install shiboken6==6.10.2
        pip install PySide6==6.10.2

    - name: Create Build Environment
      shell: cmd
      run: |
        set PATH=${{runner.workspace}}\%QT%\bin;%PATH%
        echo ${{runner.workspace}}
        mkdir ${{runner.workspace}}\build
        cd ${{runner.workspace}}\build
        qmake -v
        python --version

    - name: Build Sigil
      shell: cmd
      working-directory: ${{runner.workspace}}\build
      run: |
        set PATH=C:\%PYTHON%;${{runner.workspace}}\%QT%\bin;%PATH%
        call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
        cmake %GITHUB_WORKSPACE% ^
        -G "Ninja" ^
        -DTRY_NEWER_FINDPYTHON3=1 ^
        -DPython3_EXECUTABLE="C:\%PYTHON%\python.exe" ^
        -DCMAKE_BUILD_TYPE=%BUILD_TYPE% ^
        -DQt6_DIR="${{runner.workspace}}\$QT\lib\cmake\Qt6"
        ninja -j2

    - name: Build Installer
      shell: cmd
      working-directory: ${{runner.workspace}}\build
      if: contains(github.event.head_commit.message, '[deploy]') || github.event_name == 'workflow_dispatch'
      run: |
        set PATH=C:\%PYTHON%;%INNO%;${{runner.workspace}}\%QT%\bin;%PATH%
        call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
        ninja -j2 makeinstaller

    # RIP gdrive
    #- name: Upload to gdrive
    #  shell: cmd
    #  working-directory: ${{runner.workspace}}\build
    #  if: "contains(github.event.head_commit.message, '[deploy]') && github.event_name != 'pull_request'"
    #  run: |
    #    set PATH=C:\%PYTHON%;${{runner.workspace}}\build;%PATH%
    #    python %GITHUB_WORKSPACE%\ci_scripts\newgddeploy.py

    - uses: actions/upload-artifact@v4
      if: contains(github.event.head_commit.message, '[deploy]') || github.event_name == 'workflow_dispatch'
      with:
        name: sigil-installer
        path: ${{runner.workspace}}\build\installer\*.exe
        retention-days: 5


================================================
FILE: .github/workflows/winget.yml
================================================
name: Publish Release to WinGet
on:
  workflow_dispatch:
    inputs:
      version:
        description: 'The latest version'
        required: true
jobs:
  publish:
    runs-on: windows-latest
    defaults:
      run:
        shell: pwsh
        working-directory: ${{ github.workspace }}/ci_scripts/winget
    env:
      WINGET_TOKEN: ${{ secrets.WINGET_PAT }}
    steps:
    - name: Checkout
      uses: actions/checkout@v4
    - name: Create manifest and submit PR
      run: |
        ./build.ps1 -Version "${{ github.event.inputs.version }}"


================================================
FILE: .gitignore
================================================
# Backup files left behind by the Emacs editor.
*~

# Lock files used by the Emacs editor.
.\#*

# emacs auto recovery files from aborted edits
\#*\#

#use ful for stashing files
*.orig
*.keep

# Temporary files used by the vim editor.
.*.swp
.swp

# A hidden file created by the Mac OS X Finder.
.DS_Store

# Image thumbnail database created by windows
Thumbs.db

# Various files created by Visual Studio
*.sln
*.suo
*.vcproj
*.user*
#*.rc
*.ncb
*.pch
*.dep
*.idb
*.exp
*.res
*.manifest
*.ilk
*.pdb
*.def
Release
Debug
BuildLog.htm

# Various files and folders created by CMake
CMakeFiles
CMakeScripts
CMakeCache.txt
*.dir
ALL_BUILD*

# Various Qt files
ui_*
moc_*
qrc_*

# Misc files
*.svn
*.a
*.o
*.obj
*.lib
*.exe
*.dll
*.a
*.app
*.xcodeproj
*.pbxbtree
*.pbxindex
*.build
*.smp
*.pl
*.pyc
*.pyo
*.orig
*.bak
*.rar
OpenCandy
tags
build

# Appimage created archives
*.tar.xz

#AppImage builds
*.AppImage
*.zsync


================================================
FILE: 3rdparty/CMakeLists.txt
================================================
project(3rdparty)

# Note: All files in the cmake dir will be included as if they were in this file.
#       The paths in each .cmake file are relative to this directory not the
#       cmake directory.

IF(MSVC)
    add_definitions( /D_CRT_SECURE_NO_WARNINGS /DUNICODE /D_UNICODE )
ENDIF()

if( NOT USE_SYSTEM_LIBS OR NOT ZLIB_FOUND )
    MESSAGE(STATUS "Using Bundled ZLIB")
    include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/zlib.cmake)
else ()
    MESSAGE(STATUS "Using System ZLIB")
endif()

if( NOT USE_SYSTEM_LIBS OR NOT MINIZIP_FOUND )
    MESSAGE(STATUS "Using Bundled MiniZip")
    include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/minizip.cmake)
else ()
    MESSAGE(STATUS "Using System MiniZip")
endif()

if( NOT USE_SYSTEM_LIBS OR NOT HUNSPELL_FOUND )
    MESSAGE(STATUS "Using Bundled Hunspell")
    include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/hunspell.cmake)
else ()
    MESSAGE(STATUS "Using System Hunspell")
endif()

if( NOT USE_SYSTEM_LIBS OR NOT PCRE2_FOUND OR APPLE )
    MESSAGE(STATUS "Using Bundled PCRE2")
    include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/pcre2.cmake)
else ()
    MESSAGE(STATUS "Using System PCRE2")
endif()

if (SYSTEM_LIBS_REQUIRED)
    if (NOT ZLIB_FOUND OR NOT MINIZIP_FOUND OR NOT HUNSPELL_FOUND OR (NOT APPLE AND NOT PCRE2_FOUND))
        #if (NOT ZLIB_FOUND OR NOT MINIZIP_FOUND OR (NOT APPLE AND NOT PCRE2_FOUND))
        MESSAGE(FATAL_ERROR "Could not find all required system libraries...")
    endif()
endif()

if( (UNIX AND NOT APPLE) AND BUILD_PATCHED_LIBXML2 )
      include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/ext_libxml2.cmake)
endif()


================================================
FILE: 3rdparty/about.md
================================================
3rdparty
========

Bundled copies of 3rd party libraries.

To prevent using bundled copies in favor of system libraries use the build flag:

USE_SYSTEM_LIBS

To require the use of System libraries and not allow falling back to bundled
copies if a system library is not found use the build flag:

SYSTEM_LIBS_REQUIRED

Both of the above libraries should be constructed like so:

-D...=1

Each copy is a pristine (unchanged) copy without any modification. Any files
that need to be or are modified will be in the extra directory.


Versions
========

hunspell - 1.3.3
minizip  - 1.1
pcre     - 8.37
python   - 3.4.3
zlib     - 1.2.8


extra
=====

The extra directory is for files that are custom files and not part of the
3rdparty source directly. Such as preconfigured .config files.


================================================
FILE: 3rdparty/cmake/ext_libxml2.cmake
================================================
include(ExternalProject)

MESSAGE(STATUS "The git, libtool, autoconf, and automake packages are required for compiling libxml2")

find_program(GIT git)
if(NOT GIT)
    message(FATAL_ERROR "The git program is needed for compiling libxml2. Install the git package.")
endif()

find_program(LIBTOOL libtoolize)
if (NOT LIBTOOL)
    message(FATAL_ERROR "The libtoolize program is needed for compiling libxml2. Install the libtool package.")
endif()

find_program(AUTOCONF autoreconf)
if (NOT AUTOCONF)
    message(FATAL_ERROR "The autoreconf program is needed for compiling libxml2. Install the autoconf package.")
endif()

find_program(AUTOMAKE automake)
if (NOT AUTOMAKE)
    message(FATAL_ERROR "The automake program is needed for compiling libxml2. Install the automake package.")
endif()

ExternalProject_Add(
    libxml2

    GIT_REPOSITORY "https://github.com/GNOME/libxml2.git"
    GIT_TAG "d8083bf77955b7879c1290f0c0a24ab8cc70f7fb"
    SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/libxml2
    UPDATE_COMMAND ""
    PATCH_COMMAND patch < ${CMAKE_CURRENT_SOURCE_DIR}/extra/libxml2/libxml2_bug_fix.patch
    CONFIGURE_COMMAND ${CMAKE_CURRENT_BINARY_DIR}/libxml2/autogen.sh --prefix=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libxml2 --disable-static --enable-shared --without-python
    TEST_COMMAND ""
    INSTALL_COMMAND ""
    BUILD_IN_SOURCE 1
)

ExternalProject_Add_Step(
    libxml2 CopyToLib
    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/libxml2/.libs/libxml2.so.2.9.4 ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libsigilxml2.so.2.9.4
    COMMAND strip --strip-unneeded ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libsigilxml2.so.2.9.4
    COMMAND ln -sfr ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libsigilxml2.so.2.9.4 ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libxml2.so.2
    DEPENDEES build
)


================================================
FILE: 3rdparty/cmake/hunspell.cmake
================================================
PROJECT(hunspell CXX)

set( HUNSPELL_LIBRARIES ${PROJECT_NAME} CACHE INTERNAL "" )
set( HUNSPELL_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME} CACHE INTERNAL "" )

set(PROJECT_C_FLAGS "")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/extra/hunspell/config.h
               ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/config.h COPYONLY)

SET(SOURCES
    ${PROJECT_NAME}/src/hunspell/affentry.cxx
    ${PROJECT_NAME}/src/hunspell/affixmgr.cxx
    ${PROJECT_NAME}/src/hunspell/csutil.cxx
    ${PROJECT_NAME}/src/hunspell/filemgr.cxx
    ${PROJECT_NAME}/src/hunspell/hashmgr.cxx
    ${PROJECT_NAME}/src/hunspell/hunspell.cxx
    ${PROJECT_NAME}/src/hunspell/hunzip.cxx
    ${PROJECT_NAME}/src/hunspell/phonet.cxx
    ${PROJECT_NAME}/src/hunspell/replist.cxx
    ${PROJECT_NAME}/src/hunspell/suggestmgr.cxx
)
if( APPLE )
    set(CMAKE_MACOSX_RPATH 1)
endif()

ADD_LIBRARY(${PROJECT_NAME} SHARED ${SOURCES})

target_include_directories(${PROJECT_NAME} PUBLIC
    ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}
    ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/src/hunspell
)

# Special compiler and linker flags for MSVC
if( MSVC )
    set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS /DBUILDING_LIBHUNSPELL)
    set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP")
    set( CMAKE_C_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Oi /GL" )
endif()


================================================
FILE: 3rdparty/cmake/minizip.cmake
================================================
project(minizip C)

set( MINIZIP_LIBRARIES ${PROJECT_NAME} CACHE INTERNAL "" )
set( MINIZIP_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME} CACHE INTERNAL "" )

SET(PROJECT_C_FLAGS "")

SET(SOURCES
    ${PROJECT_NAME}/ioapi.c
    ${PROJECT_NAME}/mztools.c
    ${PROJECT_NAME}/unzip.c
    ${PROJECT_NAME}/zip.c
)

if(WIN32)
    list(APPEND SOURCES
        ${PROJECT_NAME}/iowin32.c
    )
endif()

# OS X doesn't have fopen64.
if(APPLE)
    set(PROJECT_C_FLAGS "${PROJECT_C_FLAGS} -DUSE_FILE32API")
endif()

add_library(${PROJECT_NAME} ${SOURCES})
target_include_directories(${PROJECT_NAME} PUBLIC
    ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}
    ${ZLIB_INCLUDE_DIRS}
)
target_link_libraries( ${PROJECT_NAME} ${ZLIB_LIBRARIES} )
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${PROJECT_C_FLAGS}")

# Special compiler and linker flags for MSVC
if( MSVC )
	set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP")
	set( CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /Oi /GL" ) 
    set_target_properties( ${PROJECT_NAME} PROPERTIES STATIC_LIBRARY_FLAGS "/LTCG" )
endif()


================================================
FILE: 3rdparty/cmake/pcre2.cmake
================================================
project(pcre2 C)

INCLUDE(CheckIncludeFile)
INCLUDE(CheckIncludeFileCXX)
INCLUDE(CheckFunctionExists)
INCLUDE(CheckTypeSize)

set( PCRE2_LIBRARIES ${PROJECT_NAME}-16 CACHE INTERNAL "" )
set( PCRE2_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/src CACHE INTERNAL "" )

SET(PROJECT_C_FLAGS "-DHAVE_CONFIG_H")

CHECK_INCLUDE_FILE(dirent.h     HAVE_DIRENT_H)
CHECK_INCLUDE_FILE(stdint.h     HAVE_STDINT_H)
CHECK_INCLUDE_FILE(inttypes.h   HAVE_INTTYPES_H)
CHECK_INCLUDE_FILE(sys/stat.h   HAVE_SYS_STAT_H)
CHECK_INCLUDE_FILE(sys/types.h  HAVE_SYS_TYPES_H)
CHECK_INCLUDE_FILE(unistd.h     HAVE_UNISTD_H)
CHECK_INCLUDE_FILE(windows.h    HAVE_WINDOWS_H)

CHECK_INCLUDE_FILE_CXX(type_traits.h            HAVE_TYPE_TRAITS_H)
CHECK_INCLUDE_FILE_CXX(bits/type_traits.h       HAVE_BITS_TYPE_TRAITS_H)

CHECK_FUNCTION_EXISTS(bcopy     HAVE_BCOPY)
CHECK_FUNCTION_EXISTS(memmove   HAVE_MEMMOVE)
CHECK_FUNCTION_EXISTS(strerror  HAVE_STRERROR)
CHECK_FUNCTION_EXISTS(strtoll   HAVE_STRTOLL)
CHECK_FUNCTION_EXISTS(strtoq    HAVE_STRTOQ)
CHECK_FUNCTION_EXISTS(_strtoi64 HAVE__STRTOI64)

CHECK_TYPE_SIZE("long long"             LONG_LONG)
CHECK_TYPE_SIZE("unsigned long long"    UNSIGNED_LONG_LONG)

# Prepare build configuration

SET(pcre_have_type_traits 0)
SET(pcre_have_bits_type_traits 0)

IF(HAVE_TYPE_TRAITS_H)
        SET(pcre_have_type_traits 1)
ENDIF(HAVE_TYPE_TRAITS_H)

IF(HAVE_BITS_TYPE_TRAITS_H)
        SET(pcre_have_bits_type_traits 1)
ENDIF(HAVE_BITS_TYPE_TRAITS_H)

SET(pcre_have_long_long 0)
SET(pcre_have_ulong_long 0)

IF(HAVE_LONG_LONG)
        SET(pcre_have_long_long 1)
ENDIF(HAVE_LONG_LONG)

IF(HAVE_UNSIGNED_LONG_LONG)
        SET(pcre_have_ulong_long 1)
ENDIF(HAVE_UNSIGNED_LONG_LONG)

# Our configuration

# OPTION(BUILD_STATIC_LIBS "Build static libraries." ON)
# OPTION(PCRE2_BUILD_PCRE2_8 "Build 8 bit PCRE2 library" OFF)
# OPTION(PCRE2_BUILD_PCRE2_16 "Build 16 bit PCRE2 library" ON)
# OPTION(PCRE2_BUILD_PCRE2_32 "Build 32 bit PCRE2 library" OFF)

OPTION(PCRE2_STATIC_PIC "Build the static library with the option position independent code enabled." ON)

SET(PCRE2_LINK_SIZE "4")
SET(PCRE2_PARENS_NEST_LIMIT "250")
SET(PCRE2_HEAP_LIMIT "20000000")
SET(PCRE2_MATCH_LIMIT "10000000")
SET(PCRE2_MATCH_LIMIT_DEPTH "MATCH_LIMIT")
set(PCRE2_MAX_VARLOOKBEHIND "255" CACHE STRING "Default limit on variable lookbehinds.")

SET(SUPPORT_PCRE2_16 1)

SET(PCRE2_NEWLINE "LF")
SET(NEWLINE_DEFAULT "2")

SET(PCRE2_SUPPORT_UNICODE ON)
SET(SUPPORT_UNICODE 1)

SET(SUPPORT_UCP 1)

SET(PCRE2_SUPPORT_JIT ON)
SET(SUPPORT_JIT 1)

# Output files
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/config-cmake.h.in
               ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/config.h @ONLY)

CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/src/pcre2.h.generic
               ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/pcre2.h COPYONLY)

CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/src/pcre2_chartables.c.dist
               ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/pcre2_chartables.c COPYONLY)

SET(PCRE2_HEADERS ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/pcre2.h)

SET(SOURCES
    ${PROJECT_NAME}/src/pcre2_auto_possess.c
    ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/pcre2_chartables.c
    ${PROJECT_NAME}/src/pcre2_chkdint.c
    ${PROJECT_NAME}/src/pcre2_compile.c
    ${PROJECT_NAME}/src/pcre2_config.c
    ${PROJECT_NAME}/src/pcre2_context.c
    ${PROJECT_NAME}/src/pcre2_convert.c
    ${PROJECT_NAME}/src/pcre2_compile_class.c
    ${PROJECT_NAME}/src/pcre2_dfa_match.c
    ${PROJECT_NAME}/src/pcre2_error.c
    ${PROJECT_NAME}/src/pcre2_extuni.c
    ${PROJECT_NAME}/src/pcre2_find_bracket.c
    ${PROJECT_NAME}/src/pcre2_jit_compile.c
    ${PROJECT_NAME}/src/pcre2_maketables.c
    ${PROJECT_NAME}/src/pcre2_match.c
    ${PROJECT_NAME}/src/pcre2_match_data.c
    ${PROJECT_NAME}/src/pcre2_newline.c
    ${PROJECT_NAME}/src/pcre2_ord2utf.c
    ${PROJECT_NAME}/src/pcre2_pattern_info.c
    ${PROJECT_NAME}/src/pcre2_script_run.c
    ${PROJECT_NAME}/src/pcre2_serialize.c
    ${PROJECT_NAME}/src/pcre2_string_utils.c
    ${PROJECT_NAME}/src/pcre2_study.c
    ${PROJECT_NAME}/src/pcre2_substitute.c
    ${PROJECT_NAME}/src/pcre2_substring.c
    ${PROJECT_NAME}/src/pcre2_tables.c
    ${PROJECT_NAME}/src/pcre2_chartables.c
    ${PROJECT_NAME}/src/pcre2_ucd.c
    ${PROJECT_NAME}/src/pcre2_valid_utf.c
    ${PROJECT_NAME}/src/pcre2_xclass.c
)
    
add_library(${PROJECT_NAME}-16 ${SOURCES})
target_include_directories(${PROJECT_NAME}-16 PUBLIC
    ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}
    ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/src
)
set_target_properties(${PROJECT_NAME}-16 PROPERTIES 
    COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=16
    COMPILE_FLAGS "${PROJECT_C_FLAGS}")

TARGET_COMPILE_DEFINITIONS(${PROJECT_NAME}-16 PUBLIC PCRE2_STATIC)

IF(PCRE2_STATIC_PIC)
    SET_TARGET_PROPERTIES(${PROJECT_NAME}-16 PROPERTIES POSITION_INDEPENDENT_CODE 1)
ENDIF(PCRE2_STATIC_PIC)


# Special compiler and linker flags for MSVC
if( MSVC )
    set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP")
    set( CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /Oi /GL" )
    set_target_properties( ${PROJECT_NAME}-16 PROPERTIES STATIC_LIBRARY_FLAGS "/LTCG" )
endif()


================================================
FILE: 3rdparty/cmake/zlib.cmake
================================================
PROJECT(zlib C)

set( ZLIB_LIBRARIES ${PROJECT_NAME} CACHE INTERNAL "" )
set( ZLIB_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME} CACHE INTERNAL "" )

SET(PROJECT_C_FLAGS "")

include(CheckTypeSize)
include(CheckFunctionExists)
include(CheckIncludeFile)
include(CheckCSourceCompiles)

check_include_file(sys/types.h HAVE_SYS_TYPES_H)
check_include_file(stdint.h    HAVE_STDINT_H)
check_include_file(stddef.h    HAVE_STDDEF_H)
check_include_file(stdarg.h    HAVE_STDARG_H)
check_type_size(off64_t        OFF64_T)
check_function_exists(fseeko   HAVE_FSEEKO)
check_include_file(unistd.h    HAVE_UNISTD_H)

if(HAVE_SYS_TYPES_H)
    SET(PROJECT_C_FLAGS "${PROJECT_C_FLAGS} -DHAVE_SYS_TYPES_H")
endif()
if(HAVE_STDINT_H)
    set(PROJECT_C_FLAGS "${PROJECT_C_FLAGS} -DHAVE_STDINT_H")
endif()
if(HAVE_STDARG_H)
    set(PROJECT_C_FLAGS "${PROJECT_C_FLAGS} -DHAVE_STDARG_H")
endif()
if(HAVE_UNISTD_H)
    set(PROJECT_C_FLAGS "${PROJECT_C_FLAGS} -DHAVE_UNISTD_H")
endif()
if(HAVE_STDDEF_H)
    set(PROJECT_C_FLAGS "${PROJECT_C_FLAGS} -DHAVE_STDDEF_H")
endif()
if(HAVE_OFF64_T)
    set(PROJECT_C_FLAGS "${PROJECT_C_FLAGS} -D_LARGEFILE64_SOURCE=1")
endif()
if(NOT HAVE_FSEEKO)
    set(PROJECT_C_FLAGS "${PROJECT_C_FLAGS} -DNO_FSEEKO")
endif()

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}/zconf.h.cmakein
               ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/zconf.h @ONLY)

set(SOURCES
    ${PROJECT_NAME}/adler32.c
    ${PROJECT_NAME}/compress.c
    ${PROJECT_NAME}/crc32.c
    ${PROJECT_NAME}/deflate.c
    ${PROJECT_NAME}/gzclose.c
    ${PROJECT_NAME}/gzlib.c
    ${PROJECT_NAME}/gzread.c
    ${PROJECT_NAME}/gzwrite.c
    ${PROJECT_NAME}/inflate.c
    ${PROJECT_NAME}/infback.c
    ${PROJECT_NAME}/inftrees.c
    ${PROJECT_NAME}/inffast.c
    ${PROJECT_NAME}/trees.c
    ${PROJECT_NAME}/uncompr.c
    ${PROJECT_NAME}/zutil.c
)

ADD_LIBRARY(${PROJECT_NAME} ${SOURCES})
target_include_directories(${PROJECT_NAME} PUBLIC
    ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}
    ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}
)
set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${PROJECT_C_FLAGS}")

if( MSVC )
    set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP")
	set( CMAKE_C_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Oi /GL" ) 
    set_target_properties( ${PROJECT_NAME} PROPERTIES STATIC_LIBRARY_FLAGS "/LTCG" )
endif()


================================================
FILE: 3rdparty/extra/hunspell/config.h
================================================
/* Name of package */
#define PACKAGE "hunspell"

/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "nemeth@openoffice.org"

/* Define to the full name of this package. */
#define PACKAGE_NAME "hunspell"

/* Define to the full name and version of this package. */
#define PACKAGE_STRING "hunspell 1.7.2"

/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "hunspell"

/* Define to the home page for this package. */
#define PACKAGE_URL ""

/* Define to the version of this package. */
#define PACKAGE_VERSION "1.7.2"

/* Version number of package */
#define VERSION "1.7.2"


================================================
FILE: 3rdparty/extra/libxml2/libxml2_bug_fix.patch
================================================
--- parser.c.orig	2016-07-13 09:25:04.312703211 -0400
+++ parser.c	2016-07-13 10:13:34.475133927 -0400
@@ -7420,6 +7420,10 @@
 	}
 	if (ent->checked == 0)
 	    ent->checked = 2;
+	
+	/* Prevent entity from being parsed and expanded twice (Bug 760367). */
+	was_checked = 0;
+
     } else if (ent->checked != 1) {
 	ctxt->nbentities += ent->checked / 2;
     }


================================================
FILE: 3rdparty/hunspell/ABOUT-NLS
================================================
1 Notes on the Free Translation Project
***************************************

Free software is going international!  The Free Translation Project is
a way to get maintainers of free software, translators, and users all
together, so that free software will gradually become able to speak many
languages.  A few packages already provide translations for their
messages.

   If you found this `ABOUT-NLS' file inside a distribution, you may
assume that the distributed package does use GNU `gettext' internally,
itself available at your nearest GNU archive site.  But you do _not_
need to install GNU `gettext' prior to configuring, installing or using
this package with messages translated.

   Installers will find here some useful hints.  These notes also
explain how users should proceed for getting the programs to use the
available translations.  They tell how people wanting to contribute and
work on translations can contact the appropriate team.

   When reporting bugs in the `intl/' directory or bugs which may be
related to internationalization, you should tell about the version of
`gettext' which is used.  The information can be found in the
`intl/VERSION' file, in internationalized packages.

1.1 Quick configuration advice
==============================

If you want to exploit the full power of internationalization, you
should configure it using

     ./configure --with-included-gettext

to force usage of internationalizing routines provided within this
package, despite the existence of internationalizing capabilities in the
operating system where this package is being installed.  So far, only
the `gettext' implementation in the GNU C library version 2 provides as
many features (such as locale alias, message inheritance, automatic
charset conversion or plural form handling) as the implementation here.
It is also not possible to offer this additional functionality on top
of a `catgets' implementation.  Future versions of GNU `gettext' will
very likely convey even more functionality.  So it might be a good idea
to change to GNU `gettext' as soon as possible.

   So you need _not_ provide this option if you are using GNU libc 2 or
you have installed a recent copy of the GNU gettext package with the
included `libintl'.

1.2 INSTALL Matters
===================

Some packages are "localizable" when properly installed; the programs
they contain can be made to speak your own native language.  Most such
packages use GNU `gettext'.  Other packages have their own ways to
internationalization, predating GNU `gettext'.

   By default, this package will be installed to allow translation of
messages.  It will automatically detect whether the system already
provides the GNU `gettext' functions.  If not, the included GNU
`gettext' library will be used.  This library is wholly contained
within this package, usually in the `intl/' subdirectory, so prior
installation of the GNU `gettext' package is _not_ required.
Installers may use special options at configuration time for changing
the default behaviour.  The commands:

     ./configure --with-included-gettext
     ./configure --disable-nls

will, respectively, bypass any pre-existing `gettext' to use the
internationalizing routines provided within this package, or else,
_totally_ disable translation of messages.

   When you already have GNU `gettext' installed on your system and run
configure without an option for your new package, `configure' will
probably detect the previously built and installed `libintl.a' file and
will decide to use this.  This might not be desirable.  You should use
the more recent version of the GNU `gettext' library.  I.e. if the file
`intl/VERSION' shows that the library which comes with this package is
more recent, you should use

     ./configure --with-included-gettext

to prevent auto-detection.

   The configuration process will not test for the `catgets' function
and therefore it will not be used.  The reason is that even an
emulation of `gettext' on top of `catgets' could not provide all the
extensions of the GNU `gettext' library.

   Internationalized packages usually have many `po/LL.po' files, where
LL gives an ISO 639 two-letter code identifying the language.  Unless
translations have been forbidden at `configure' time by using the
`--disable-nls' switch, all available translations are installed
together with the package.  However, the environment variable `LINGUAS'
may be set, prior to configuration, to limit the installed set.
`LINGUAS' should then contain a space separated list of two-letter
codes, stating which languages are allowed.

1.3 Using This Package
======================

As a user, if your language has been installed for this package, you
only have to set the `LANG' environment variable to the appropriate
`LL_CC' combination.  If you happen to have the `LC_ALL' or some other
`LC_xxx' environment variables set, you should unset them before
setting `LANG', otherwise the setting of `LANG' will not have the
desired effect.  Here `LL' is an ISO 639 two-letter language code, and
`CC' is an ISO 3166 two-letter country code.  For example, let's
suppose that you speak German and live in Germany.  At the shell
prompt, merely execute `setenv LANG de_DE' (in `csh'),
`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
This can be done from your `.login' or `.profile' file, once and for
all.

   You might think that the country code specification is redundant.
But in fact, some languages have dialects in different countries.  For
example, `de_AT' is used for Austria, and `pt_BR' for Brazil.  The
country code serves to distinguish the dialects.

   The locale naming convention of `LL_CC', with `LL' denoting the
language and `CC' denoting the country, is the one use on systems based
on GNU libc.  On other systems, some variations of this scheme are
used, such as `LL' or `LL_CC.ENCODING'.  You can get the list of
locales supported by your system for your language by running the
command `locale -a | grep '^LL''.

   Not all programs have translations for all languages.  By default, an
English message is shown in place of a nonexistent translation.  If you
understand other languages, you can set up a priority list of languages.
This is done through a different environment variable, called
`LANGUAGE'.  GNU `gettext' gives preference to `LANGUAGE' over `LANG'
for the purpose of message handling, but you still need to have `LANG'
set to the primary language; this is required by other parts of the
system libraries.  For example, some Swedish users who would rather
read translations in German than English for when Swedish is not
available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.

   Special advice for Norwegian users: The language code for Norwegian
bokma*l changed from `no' to `nb' recently (in 2003).  During the
transition period, while some message catalogs for this language are
installed under `nb' and some older ones under `no', it's recommended
for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
older translations are used.

   In the `LANGUAGE' environment variable, but not in the `LANG'
environment variable, `LL_CC' combinations can be abbreviated as `LL'
to denote the language's main dialect.  For example, `de' is equivalent
to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
(Portuguese as spoken in Portugal) in this context.

1.4 Translating Teams
=====================

For the Free Translation Project to be a success, we need interested
people who like their own language and write it well, and who are also
able to synergize with other translators speaking the same language.
Each translation team has its own mailing list.  The up-to-date list of
teams can be found at the Free Translation Project's homepage,
`http://translationproject.org/', in the "Teams" area.

   If you'd like to volunteer to _work_ at translating messages, you
should become a member of the translating team for your own language.
The subscribing address is _not_ the same as the list itself, it has
`-request' appended.  For example, speakers of Swedish can send a
message to `sv-request@li.org', having this message body:

     subscribe

   Keep in mind that team members are expected to participate
_actively_ in translations, or at solving translational difficulties,
rather than merely lurking around.  If your team does not exist yet and
you want to start one, or if you are unsure about what to do or how to
get started, please write to `coordinator@translationproject.org' to
reach the coordinator for all translator teams.

   The English team is special.  It works at improving and uniformizing
the terminology in use.  Proven linguistic skills are praised more than
programming skills, here.

1.5 Available Packages
======================

Languages are not equally supported in all packages.  The following
matrix shows the current state of internationalization, as of May 2010.
The matrix shows, in regard of each package, for which languages PO
files have been submitted to translation coordination, with a
translation percentage of at least 50%.

     Ready PO files       af am ar as ast az be be@latin bg bn_IN bs ca crh
                        +---------------------------------------------------+
     a2ps               |                    []                      []     |
     aegis              |                                                   |
     ant-phone          |                                                   |
     anubis             |                                                   |
     aspell             |             []                             []     |
     bash               |                                                   |
     bfd                |                                                   |
     bibshelf           |             []                                    |
     binutils           |                                                   |
     bison              |                                                   |
     bison-runtime      |             []                                    |
     bluez-pin          | []          []                                    |
     bombono-dvd        |                                                   |
     buzztard           |                                                   |
     cflow              |                                                   |
     clisp              |                                                   |
     coreutils          |                                []          []     |
     cpio               |                                                   |
     cppi               |                                                   |
     cpplib             |                                            []     |
     cryptsetup         |                                                   |
     dfarc              |                                                   |
     dialog             |                          []                []     |
     dico               |                                                   |
     diffutils          |                                            []     |
     dink               |                                                   |
     doodle             |                                                   |
     e2fsprogs          |                                            []     |
     enscript           |                                            []     |
     exif               |                                                   |
     fetchmail          |                                            []     |
     findutils          |                                []                 |
     flex               |                                            []     |
     freedink           |                                                   |
     gas                |                                                   |
     gawk               |             []                             []     |
     gcal               |                                            []     |
     gcc                |                                                   |
     gettext-examples   | []          []                 []          []     |
     gettext-runtime    |                    []          []          []     |
     gettext-tools      |                                []          []     |
     gip                |                                []                 |
     gjay               |                                                   |
     gliv               |                                []                 |
     glunarclock        |             []                 []                 |
     gnubiff            |                                                   |
     gnucash            |                                            []     |
     gnuedu             |                                                   |
     gnulib             |                                                   |
     gnunet             |                                                   |
     gnunet-gtk         |                                                   |
     gnutls             |                                                   |
     gold               |                                                   |
     gpe-aerial         |                                                   |
     gpe-beam           |                                                   |
     gpe-bluetooth      |                                                   |
     gpe-calendar       |                                                   |
     gpe-clock          |             []                                    |
     gpe-conf           |                                                   |
     gpe-contacts       |                                                   |
     gpe-edit           |                                                   |
     gpe-filemanager    |                                                   |
     gpe-go             |                                                   |
     gpe-login          |                                                   |
     gpe-ownerinfo      |             []                                    |
     gpe-package        |                                                   |
     gpe-sketchbook     |                                                   |
     gpe-su             |             []                                    |
     gpe-taskmanager    |             []                                    |
     gpe-timesheet      |             []                                    |
     gpe-today          |             []                                    |
     gpe-todo           |                                                   |
     gphoto2            |                                                   |
     gprof              |                                []                 |
     gpsdrive           |                                                   |
     gramadoir          |                                                   |
     grep               |                                                   |
     grub               |             []                             []     |
     gsasl              |                                                   |
     gss                |                                                   |
     gst-plugins-bad    |                                []                 |
     gst-plugins-base   |                                []                 |
     gst-plugins-good   |                                []                 |
     gst-plugins-ugly   |                                []                 |
     gstreamer          | []                             []          []     |
     gtick              |                                                   |
     gtkam              |                    []                             |
     gtkorphan          |                                []                 |
     gtkspell           | []          []     []                             |
     gutenprint         |                                                   |
     hello              |                                []                 |
     help2man           |                                                   |
     hylafax            |                                                   |
     idutils            |                                                   |
     indent             |                                []          []     |
     iso_15924          |                                                   |
     iso_3166           | []       []        []          []  []   [] [] []  |
     iso_3166_2         |                                                   |
     iso_4217           |                                                   |
     iso_639            |          [] []     []              []         []  |
     iso_639_3          |                                               []  |
     jwhois             |                                                   |
     kbd                |                                                   |
     keytouch           |                                            []     |
     keytouch-editor    |                                                   |
     keytouch-keyboa... |                                            []     |
     klavaro            |       []                                          |
     latrine            |                                                   |
     ld                 |                                []                 |
     leafpad            |                                []          []     |
     libc               |                                []          []     |
     libexif            |                    ()                             |
     libextractor       |                                                   |
     libgnutls          |                                                   |
     libgpewidget       |                                                   |
     libgpg-error       |                                                   |
     libgphoto2         |                                                   |
     libgphoto2_port    |                                                   |
     libgsasl           |                                                   |
     libiconv           |                                []                 |
     libidn             |                                                   |
     lifelines          |                                                   |
     liferea            |                          []                []     |
     lilypond           |                                                   |
     linkdr             |       []                                          |
     lordsawar          |                                                   |
     lprng              |                                                   |
     lynx               |                                            []     |
     m4                 |                                                   |
     mailfromd          |                                                   |
     mailutils          |                                                   |
     make               |                                                   |
     man-db             |                                                   |
     man-db-manpages    |                                                   |
     minicom            |                                                   |
     mkisofs            |                                                   |
     myserver           |                                                   |
     nano               |                                []          []     |
     opcodes            |                                                   |
     parted             |                                                   |
     pies               |                                                   |
     popt               |                                                   |
     psmisc             |                                                   |
     pspp               |                                            []     |
     pwdutils           |                                                   |
     radius             |                                            []     |
     recode             |                    []                      []     |
     rosegarden         |                                                   |
     rpm                |                                                   |
     rush               |                                                   |
     sarg               |                                                   |
     screem             |                                                   |
     scrollkeeper       |                 [] []                      []     |
     sed                |             []                             []     |
     sharutils          |                                []          []     |
     shishi             |                                                   |
     skencil            |                                                   |
     solfege            |                                                   |
     solfege-manual     |                                                   |
     soundtracker       |                                                   |
     sp                 |                                                   |
     sysstat            |                                                   |
     tar                |                                []                 |
     texinfo            |                                                   |
     tin                |                                                   |
     unicode-han-tra... |                                                   |
     unicode-transla... |                                                   |
     util-linux-ng      |                                            []     |
     vice               |                                                   |
     vmm                |                                                   |
     vorbis-tools       |                                                   |
     wastesedge         |                                                   |
     wdiff              |                                                   |
     wget               |                    []                      []     |
     wyslij-po          |                                                   |
     xchat              |             []     []          []          []     |
     xdg-user-dirs      | []       [] []     []    []    []  []      [] []  |
     xkeyboard-config   |                                []          [] []  |
                        +---------------------------------------------------+
                          af am ar as ast az be be@latin bg bn_IN bs ca crh
                           6  0  2  3 19   1 11     3    28   3    1 38  5

                          cs da  de  el en en_GB en_ZA eo es et eu fa fi
                        +-------------------------------------------------+
     a2ps               | [] []  []  []     []            [] []       []  |
     aegis              |    []  []                       []              |
     ant-phone          |    []  ()                                       |
     anubis             |    []  []                                   []  |
     aspell             | [] []  []         []            []              |
     bash               | []                           [] []          []  |
     bfd                |                                 []          []  |
     bibshelf           |    []  []                       []          []  |
     binutils           |                                 []          []  |
     bison              |        []  []                               []  |
     bison-runtime      |    []  []  []                      []       []  |
     bluez-pin          | [] []  []  []                [] []          []  |
     bombono-dvd        |    []                                       []  |
     buzztard           | [] []  []                                       |
     cflow              |    []  []                                   []  |
     clisp              |    []  []     []                []              |
     coreutils          | [] []  []                          []           |
     cpio               |                                             []  |
     cppi               |                                             []  |
     cpplib             |    []  []                       []              |
     cryptsetup         |        []                                       |
     dfarc              |    []  []                       []          []  |
     dialog             |    []  []                    [] []    []        |
     dico               |                                                 |
     diffutils          | [] []  []  []                [] []          []  |
     dink               |    []  []                       []              |
     doodle             |        []                                       |
     e2fsprogs          | []     []                       []              |
     enscript           |    []  []         []                            |
     exif               | () []  []                                   []  |
     fetchmail          | [] []  ()  []     []            []              |
     findutils          | [] []  []                                   []  |
     flex               |        []                       []          []  |
     freedink           |    []  []                       []          []  |
     gas                |                                 []              |
     gawk               |    []  []                       []              |
     gcal               |                                 []              |
     gcc                |        []                       []              |
     gettext-examples   |        []  []                [] []          []  |
     gettext-runtime    |    []  []                    [] []          []  |
     gettext-tools      |        []                       []    []        |
     gip                |    []  []                       []    []    []  |
     gjay               |        []                                   []  |
     gliv               | [] []  []                                   []  |
     glunarclock        |    []  []                                   []  |
     gnubiff            |        ()                                       |
     gnucash            | []     ()  ()     ()            ()          ()  |
     gnuedu             |    []                           []              |
     gnulib             |        []                       []          []  |
     gnunet             |                                                 |
     gnunet-gtk         |    []                                           |
     gnutls             | []     []                                       |
     gold               |                                 []          []  |
     gpe-aerial         | [] []  []                       []          []  |
     gpe-beam           | [] []  []                       []          []  |
     gpe-bluetooth      |    []  []                                   []  |
     gpe-calendar       |    []                                       []  |
     gpe-clock          | [] []  []                       []          []  |
     gpe-conf           | [] []  []                                   []  |
     gpe-contacts       |    []  []                       []          []  |
     gpe-edit           |    []  []                                   []  |
     gpe-filemanager    |    []  []                       []          []  |
     gpe-go             | [] []  []                       []          []  |
     gpe-login          |    []  []                                   []  |
     gpe-ownerinfo      | [] []  []                       []          []  |
     gpe-package        |    []  []                       []          []  |
     gpe-sketchbook     | [] []  []                       []          []  |
     gpe-su             | [] []  []                       []          []  |
     gpe-taskmanager    | [] []  []                       []          []  |
     gpe-timesheet      | [] []  []                       []          []  |
     gpe-today          | [] []  []                       []          []  |
     gpe-todo           |    []  []                       []          []  |
     gphoto2            | [] []  ()         []            []    []    []  |
     gprof              |    []  []                       []          []  |
     gpsdrive           |    []                           [] []           |
     gramadoir          |    []  []                    []                 |
     grep               | []                                          []  |
     grub               |    []  []                                   []  |
     gsasl              |        []                                   []  |
     gss                |                                             []  |
     gst-plugins-bad    | [] []  []                       []    []    []  |
     gst-plugins-base   | [] []  []                       []    []    []  |
     gst-plugins-good   | [] []  []  []                   []    []    []  |
     gst-plugins-ugly   | [] []  []  []                   []    []    []  |
     gstreamer          | [] []  []                       []    []    []  |
     gtick              |    []  ()                    []             []  |
     gtkam              | [] []  ()                    [] []              |
     gtkorphan          | [] []  []                    []                 |
     gtkspell           | [] []  []  []                [] []    []    []  |
     gutenprint         |    []  []         []                        []  |
     hello              |    []  []                    [] []          []  |
     help2man           |        []                                   []  |
     hylafax            |        []                       []              |
     idutils            |    []  []                                   []  |
     indent             | [] []  []                    [] [] [] []    []  |
     iso_15924          |    []      ()                [] []          []  |
     iso_3166           | [] []  []  ()                [] [] [] ()    []  |
     iso_3166_2         |            ()                                   |
     iso_4217           | [] []  []  ()                   [] []       []  |
     iso_639            | [] []  []  ()                [] []          []  |
     iso_639_3          |                                                 |
     jwhois             |                                 []          []  |
     kbd                | [] []  []  []                   []              |
     keytouch           |    []  []                                   []  |
     keytouch-editor    |    []  []                                   []  |
     keytouch-keyboa... |    []                                       []  |
     klavaro            | [] []  []                    []                 |
     latrine            |    []  ()                                   []  |
     ld                 |    []                           []          []  |
     leafpad            | [] []  []  []                   []    []    []  |
     libc               | [] []  []                       []          []  |
     libexif            |    []  []         ()                            |
     libextractor       |                                                 |
     libgnutls          | []                                              |
     libgpewidget       |    []  []                                   []  |
     libgpg-error       | []     []                                       |
     libgphoto2         |    []  ()                                       |
     libgphoto2_port    |    []  ()                             []        |
     libgsasl           |                                             []  |
     libiconv           | [] []  []                    []    []       []  |
     libidn             | []     []                    []             []  |
     lifelines          |    []  ()                                       |
     liferea            | []     []  []                   []    []        |
     lilypond           | []     []                       []          []  |
     linkdr             |    []  []                       []          []  |
     lordsawar          |    []                                           |
     lprng              |                                                 |
     lynx               | [] []  []                          []           |
     m4                 | [] []  []  []                               []  |
     mailfromd          |                                                 |
     mailutils          |                                 []              |
     make               |    []  []                       []          []  |
     man-db             |                                                 |
     man-db-manpages    |                                                 |
     minicom            | [] []  []                       []          []  |
     mkisofs            |                                             []  |
     myserver           |                                                 |
     nano               |        []                       []    []    []  |
     opcodes            |        []                       []          []  |
     parted             | []     []                                       |
     pies               |                                                 |
     popt               | [] []  []                    [] []          []  |
     psmisc             | []     []                             []    []  |
     pspp               |                                 []              |
     pwdutils           |    []                                           |
     radius             |                                 []              |
     recode             | [] []  []  []                [] []          []  |
     rosegarden         | ()     ()                       ()          ()  |
     rpm                |    []  []                       []              |
     rush               |                                                 |
     sarg               |                                                 |
     screem             |                                                 |
     scrollkeeper       | [] []  []         []            []          []  |
     sed                | []     []  []                [] [] []       []  |
     sharutils          |    []  []                       [] []       []  |
     shishi             |                                                 |
     skencil            |    []  ()                       []              |
     solfege            |        []                    []    []       []  |
     solfege-manual     |                              []    []           |
     soundtracker       |    []  []                       []              |
     sp                 |        []                                       |
     sysstat            |    []  []                             []    []  |
     tar                | []     []                          [] []    []  |
     texinfo            |        []                    [] []              |
     tin                |        []                          []           |
     unicode-han-tra... |                                                 |
     unicode-transla... |                                                 |
     util-linux-ng      | [] []  []                       []          []  |
     vice               |    ()  ()                                       |
     vmm                |        []                                       |
     vorbis-tools       | []                           []                 |
     wastesedge         |    []                                           |
     wdiff              |        []                       []          []  |
     wget               | []     []                          []       []  |
     wyslij-po          |                                             []  |
     xchat              | []     []  []                   [] []       []  |
     xdg-user-dirs      | [] []  []  []                [] [] [] []    []  |
     xkeyboard-config   | [] []  []                    [] []          []  |
                        +-------------------------------------------------+
                          cs da  de  el en en_GB en_ZA eo es et eu fa fi
                          64 105 117 18  1   8     0   28 89 18 19  0 104

                          fr  ga gl gu he hi hr hu hy id  is it ja ka kn
                        +------------------------------------------------+
     a2ps               | []                          []        []       |
     aegis              | []                                 []          |
     ant-phone          | []                                 []          |
     anubis             | []                          []     []          |
     aspell             | []  []                      []     []          |
     bash               | []                          []        []       |
     bfd                | []                          []                 |
     bibshelf           | []  []                      []     []          |
     binutils           | []                          []                 |
     bison              | []  []                      []                 |
     bison-runtime      | []  []                      []     [] []       |
     bluez-pin          | []  []                [] [] []  []    []       |
     bombono-dvd        |                                                |
     buzztard           |                             []                 |
     cflow              |     []                      []                 |
     clisp              | []                                             |
     coreutils          | []  []                []    []     []          |
     cpio               | []  []                      []                 |
     cppi               | []                                             |
     cpplib             | []                          []                 |
     cryptsetup         | []                          []     []          |
     dfarc              | []                                 []          |
     dialog             | []  [] []                   []  [] [] []       |
     dico               |                                                |
     diffutils          | []  [] []    []       []    []     [] []       |
     dink               | []                                             |
     doodle             |     []                             []          |
     e2fsprogs          | []                          []                 |
     enscript           | []  []             []       []                 |
     exif               | []                          []  [] [] []       |
     fetchmail          | []                          []     [] []       |
     findutils          | []  []                []    []     []          |
     flex               | []  []                                         |
     freedink           | []                          []                 |
     gas                | []                          []                 |
     gawk               | []  []       []             []     () []       |
     gcal               | []                                             |
     gcc                |                             []                 |
     gettext-examples   | []  []                []    []     [] []       |
     gettext-runtime    | []  []                      []     [] []       |
     gettext-tools      | []                          []     [] []       |
     gip                | []  [] []                   []        []       |
     gjay               |                                                |
     gliv               | ()                                             |
     glunarclock        |     []                []    []                 |
     gnubiff            | ()                          []     ()          |
     gnucash            | ()           ()       ()           () []       |
     gnuedu             | []                                 []          |
     gnulib             | []  []                []           [] []       |
     gnunet             |                                                |
     gnunet-gtk         | []                                             |
     gnutls             | []                                 []          |
     gold               |                             []                 |
     gpe-aerial         | []                          []                 |
     gpe-beam           | []                          []        []       |
     gpe-bluetooth      |                             []     [] []       |
     gpe-calendar       |                                       []       |
     gpe-clock          | []                    []    []        []       |
     gpe-conf           | []                          []        []       |
     gpe-contacts       | []                          []        []       |
     gpe-edit           |                             []        []       |
     gpe-filemanager    |                       []    []        []       |
     gpe-go             | []                    []    []        []       |
     gpe-login          |                             []        []       |
     gpe-ownerinfo      | []                    []    []        []       |
     gpe-package        |                             []        []       |
     gpe-sketchbook     | []                          []        []       |
     gpe-su             | []     []             []    []        []       |
     gpe-taskmanager    | []                    []    []        []       |
     gpe-timesheet      | []  []                      []        []       |
     gpe-today          | []  [] []             []    []        []       |
     gpe-todo           |                             []        []       |
     gphoto2            | []                    []    []     [] []       |
     gprof              | []  []                      []                 |
     gpsdrive           |        []                   []     []          |
     gramadoir          | []  []                      []                 |
     grep               |                                    []          |
     grub               |                       []    []     []          |
     gsasl              | []  []                      []     []          |
     gss                | []  []                      []     []          |
     gst-plugins-bad    | []                    []    []     []          |
     gst-plugins-base   | []                    []    []     [] []       |
     gst-plugins-good   | []                    []    []     [] []       |
     gst-plugins-ugly   | []                    []    []     [] []       |
     gstreamer          | []                    []    []     []          |
     gtick              | []  []                      []     []          |
     gtkam              | []                    []    []     [] []       |
     gtkorphan          | []                          []     []          |
     gtkspell           | []  [] []             [] [] []     [] []       |
     gutenprint         | []                    []           []          |
     hello              |     []                      []                 |
     help2man           | []                                             |
     hylafax            |                             []                 |
     idutils            | []  []                []    []     []          |
     indent             | []  [] []             []    []     [] []       |
     iso_15924          | ()                          []     []          |
     iso_3166           | ()  [] [] [] [] [] [] []    []     [] []       |
     iso_3166_2         | ()                    []    []     []          |
     iso_4217           | ()                    []    []     [] []       |
     iso_639            | ()  []    []          []    []     [] []    [] |
     iso_639_3          | ()                                 []       [] |
     jwhois             | []                    []    []     []          |
     kbd                | []                          []                 |
     keytouch           | []  []                []    []     []          |
     keytouch-editor    |     []                []    []     []          |
     keytouch-keyboa... |     []                []    []     []          |
     klavaro            |        []             []                       |
     latrine            |                             []     []          |
     ld                 | []  []                      []                 |
     leafpad            | []  []       []       []    []     [] ()       |
     libc               | []     []                   []        []       |
     libexif            |                                                |
     libextractor       |                                                |
     libgnutls          | []                                 []          |
     libgpewidget       |     []                      []        []       |
     libgpg-error       | []                                 []          |
     libgphoto2         | []                                 [] []       |
     libgphoto2_port    | []                                 [] []       |
     libgsasl           | []  []                      []     []          |
     libiconv           | []  []                      []     [] []       |
     libidn             | []                          []     []          |
     lifelines          | ()                                             |
     liferea            | []                    []           [] []       |
     lilypond           | []                                             |
     linkdr             |              []    [] []           []          |
     lordsawar          |                                                |
     lprng              |                             []                 |
     lynx               | []                    []    []     [] []       |
     m4                 | []  [] []                   []        []       |
     mailfromd          |                                                |
     mailutils          | []                          []                 |
     make               | []  [] []    []    []       []     [] []       |
     man-db             |                             []     []          |
     man-db-manpages    |                             []                 |
     minicom            | []                    []    []        []       |
     mkisofs            | []                          []     []          |
     myserver           |                                                |
     nano               | []  [] []             []           []          |
     opcodes            | []  []                      []                 |
     parted             | []                          []     [] []       |
     pies               |                                                |
     popt               | []  [] []             []    []  [] [] []       |
     psmisc             | []                          []                 |
     pspp               |                                                |
     pwdutils           | []                          []                 |
     radius             | []                          []                 |
     recode             | []  [] []    []       []    []     []          |
     rosegarden         | ()                          ()     () ()       |
     rpm                |                             []        []       |
     rush               |                                                |
     sarg               | []                                             |
     screem             |                                    [] []       |
     scrollkeeper       |                       []    []     []          |
     sed                | []  [] []             []    []     [] []       |
     sharutils          | []  []                []    []     [] []       |
     shishi             | []                                             |
     skencil            | []                                             |
     solfege            | []     []                          []          |
     solfege-manual     | []     []                                      |
     soundtracker       | []                                 []          |
     sp                 | []                                    ()       |
     sysstat            | []                          []     [] []       |
     tar                | []  []                []    []     [] []       |
     texinfo            | []                          []     [] []       |
     tin                | []                                             |
     unicode-han-tra... |                                                |
     unicode-transla... | []  []                                         |
     util-linux-ng      | []                    []    []     [] []       |
     vice               | ()                    ()           ()          |
     vmm                | []                                             |
     vorbis-tools       |                             []                 |
     wastesedge         | ()                                 ()          |
     wdiff              |                                                |
     wget               | []  []             [] []    []     [] []       |
     wyslij-po          | []                          []                 |
     xchat              | []        []    []    []    []     [] []    [] |
     xdg-user-dirs      | []  [] [] [] []       []    []  [] [] []    [] |
     xkeyboard-config   | []                    []    []     []          |
                        +------------------------------------------------+
                          fr  ga gl gu he hi hr hu hy id  is it ja ka kn
                          121 53 20  4  8  2  5 53  2 120  5 83 66  0  4

                          ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
                        +-----------------------------------------------+
     a2ps               |                               []              |
     aegis              |                                               |
     ant-phone          |                                               |
     anubis             |                               []    []        |
     aspell             |                         []                    |
     bash               |                                               |
     bfd                |                                               |
     bibshelf           |                []             []              |
     binutils           |                                               |
     bison              |                               []              |
     bison-runtime      |       []    [] []             []    []        |
     bluez-pin          |    [] []    [] []             []              |
     bombono-dvd        |                                               |
     buzztard           |                                               |
     cflow              |                                               |
     clisp              |                                               |
     coreutils          |          []                                   |
     cpio               |                                               |
     cppi               |                                               |
     cpplib             |                                               |
     cryptsetup         |                                               |
     dfarc              |                   []                          |
     dialog             |    []       [] []             []    []        |
     dico               |                                               |
     diffutils          |                []             []              |
     dink               |                                               |
     doodle             |                                               |
     e2fsprogs          |                                               |
     enscript           |                                               |
     exif               |                []                             |
     fetchmail          |                                               |
     findutils          |                                               |
     flex               |                                               |
     freedink           |                                     []        |
     gas                |                                               |
     gawk               |                                               |
     gcal               |                                               |
     gcc                |                                               |
     gettext-examples   |       []       []             [] []           |
     gettext-runtime    | []                                            |
     gettext-tools      | []                                            |
     gip                |                []             []              |
     gjay               |                                               |
     gliv               |                                               |
     glunarclock        |                []                             |
     gnubiff            |                                               |
     gnucash            | ()          ()                      ()     () |
     gnuedu             |                                               |
     gnulib             |                                               |
     gnunet             |                                               |
     gnunet-gtk         |                                               |
     gnutls             |                               []              |
     gold               |                                               |
     gpe-aerial         |                []                             |
     gpe-beam           |                []                             |
     gpe-bluetooth      |                []                []           |
     gpe-calendar       |                []                             |
     gpe-clock          | []    []       []             [] []           |
     gpe-conf           | []             []                             |
     gpe-contacts       | []             []                             |
     gpe-edit           |                []                             |
     gpe-filemanager    | []             []                             |
     gpe-go             | []             []                []           |
     gpe-login          |                []                             |
     gpe-ownerinfo      |                []             []              |
     gpe-package        | []             []                             |
     gpe-sketchbook     | []             []                             |
     gpe-su             | []    []       []             [] [] []        |
     gpe-taskmanager    | [] [] []       []             [] []           |
     gpe-timesheet      |                []             []              |
     gpe-today          |       []       []             [] []           |
     gpe-todo           |                []                   []        |
     gphoto2            |                                               |
     gprof              |                               []              |
     gpsdrive           |                                               |
     gramadoir          |                                               |
     grep               |                                               |
     grub               |                                               |
     gsasl              |                                               |
     gss                |                                               |
     gst-plugins-bad    |                []                []           |
     gst-plugins-base   |             [] []                             |
     gst-plugins-good   |                []                []           |
     gst-plugins-ugly   |             [] []             [] [] []        |
     gstreamer          |                                               |
     gtick              |                                               |
     gtkam              |                                     []        |
     gtkorphan          |                []                      []     |
     gtkspell           |       []    [] []       []    []    [] []     |
     gutenprint         |                                               |
     hello              | []             []             []              |
     help2man           |                                               |
     hylafax            |                                               |
     idutils            |                                               |
     indent             |                                               |
     iso_15924          |             [] []                             |
     iso_3166           | [] []       () [] [] []    []       []        |
     iso_3166_2         |                                               |
     iso_4217           |             []                      []        |
     iso_639            |                      []    []                 |
     iso_639_3          |                            []                 |
     jwhois             |                []                             |
     kbd                |                                               |
     keytouch           |                []                             |
     keytouch-editor    |                []                             |
     keytouch-keyboa... |                []                             |
     klavaro            |                                     []        |
     latrine            |                []                             |
     ld                 |                                               |
     leafpad            | []          [] []                             |
     libc               | []                                            |
     libexif            |                                               |
     libextractor       |                                               |
     libgnutls          |                               []              |
     libgpewidget       |                []             []              |
     libgpg-error       |                                               |
     libgphoto2         |                                               |
     libgphoto2_port    |                                               |
     libgsasl           |                                               |
     libiconv           |                                               |
     libidn             |                                               |
     lifelines          |                                               |
     liferea            |                                               |
     lilypond           |                                               |
     linkdr             |                                               |
     lordsawar          |                                               |
     lprng              |                                               |
     lynx               |                                               |
     m4                 |                                               |
     mailfromd          |                                               |
     mailutils          |                                               |
     make               | []                                            |
     man-db             |                                               |
     man-db-manpages    |                                               |
     minicom            |                                     []        |
     mkisofs            |                                               |
     myserver           |                                               |
     nano               |                               []    []        |
     opcodes            |                                               |
     parted             |                                               |
     pies               |                                               |
     popt               | []             []                   []        |
     psmisc             |                                               |
     pspp               |                                               |
     pwdutils           |                                               |
     radius             |                                               |
     recode             |                                               |
     rosegarden         |                                               |
     rpm                |                                               |
     rush               |                                               |
     sarg               |                                               |
     screem             |                                               |
     scrollkeeper       |                                     []     [] |
     sed                |                                               |
     sharutils          |                                               |
     shishi             |                                               |
     skencil            |                                               |
     solfege            |                                     []        |
     solfege-manual     |                                               |
     soundtracker       |                                               |
     sp                 |                                               |
     sysstat            |                []                             |
     tar                |       []                                      |
     texinfo            |                                     []        |
     tin                |                                               |
     unicode-han-tra... |                                               |
     unicode-transla... |                                               |
     util-linux-ng      |                                               |
     vice               |                                               |
     vmm                |                                               |
     vorbis-tools       |                                               |
     wastesedge         |                                               |
     wdiff              |                                               |
     wget               |             []                                |
     wyslij-po          |                                               |
     xchat              | []             [] []                          |
     xdg-user-dirs      | [] []       [] [] []       []       [] []     |
     xkeyboard-config   | []    []    []                                |
                        +-----------------------------------------------+
                          ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne
                          20  5 10  1 12 48  4  2  2  4 24 10 19  3   1

                          nl  nn or pa pl  ps pt pt_BR ro ru rw sk sl sq sr
                        +---------------------------------------------------+
     a2ps               | []           []     []  []   [] []       []    [] |
     aegis              | []                      []      []                |
     ant-phone          |                         []   []                   |
     anubis             | []           []                 []                |
     aspell             | []                           [] []    [] []       |
     bash               | []                                    []          |
     bfd                |                                 []                |
     bibshelf           | []  []                                            |
     binutils           |                                 []    []          |
     bison              | []           []                 []                |
     bison-runtime      | []           []     []  []   [] []       []       |
     bluez-pin          | []           []         []   [] []    [] []    [] |
     bombono-dvd        |     []                          ()                |
     buzztard           | []  []                                            |
     cflow              |              []                                   |
     clisp              | []                              []                |
     coreutils          | []           []     []  []      []       []       |
     cpio               | []           []                 []                |
     cppi               |              []                                   |
     cpplib             | []                                                |
     cryptsetup         | []                                                |
     dfarc              |              []                                   |
     dialog             | []           []         []      []                |
     dico               |              []                                   |
     diffutils          | []           []         []   [] []             [] |
     dink               | ()                                                |
     doodle             | []                                          []    |
     e2fsprogs          | []           []                                   |
     enscript           | []                      []   [] []       []       |
     exif               | []           []              [] ()    []          |
     fetchmail          | []           []                 []          []    |
     findutils          | []           []     []          []       []       |
     flex               | []           []         []   [] []                |
     freedink           | []           []                                   |
     gas                |                                                   |
     gawk               | []           []         []   []                   |
     gcal               |                                                   |
     gcc                |                                                [] |
     gettext-examples   | []           []     []       [] []    [] []    [] |
     gettext-runtime    | []  []       []     []       [] []    [] []    [] |
     gettext-tools      |              []              [] []    [] []    [] |
     gip                | []           []                 []    []       [] |
     gjay               |                                                   |
     gliv               | []           []         []   [] []    []          |
     glunarclock        | []                      []   []       []       [] |
     gnubiff            | []                           ()                   |
     gnucash            | []           ()         ()      ()                |
     gnuedu             | []                                                |
     gnulib             | []           []                 []       []       |
     gnunet             |                                                   |
     gnunet-gtk         |                                                   |
     gnutls             | []           []                                   |
     gold               |                                                   |
     gpe-aerial         | []                  []  []   [] []       []    [] |
     gpe-beam           | []                  []  []   [] []       []    [] |
     gpe-bluetooth      | []                      []                        |
     gpe-calendar       |                         []      []       []    [] |
     gpe-clock          | []                  []  []   [] []    [] []    [] |
     gpe-conf           | []                  []  []   [] []    [] []       |
     gpe-contacts       |                         []   [] []       []    [] |
     gpe-edit           | []           []                          []       |
     gpe-filemanager    | []                              []       []       |
     gpe-go             | []           []         []   [] []    [] []    [] |
     gpe-login          | []                      []                        |
     gpe-ownerinfo      | []                  []  []   [] []    [] []    [] |
     gpe-package        | []                                       []       |
     gpe-sketchbook     | []                  []  []   [] []       []    [] |
     gpe-su             | []                  []  []   [] []    [] []    [] |
     gpe-taskmanager    | []                  []  []   [] []    [] []    [] |
     gpe-timesheet      | []                  []  []   [] []    [] []    [] |
     gpe-today          | []                  []  []   [] []    [] []    [] |
     gpe-todo           | []                      []      []       []    [] |
     gphoto2            | []        [] []         []   [] []    []       [] |
     gprof              | []                      []   []                   |
     gpsdrive           | []                              []                |
     gramadoir          | []                                    []          |
     grep               | []           []                 []    []          |
     grub               | []           []                 []                |
     gsasl              | []           []                       []       [] |
     gss                |              []              []       []          |
     gst-plugins-bad    | []           []         []      []    []          |
     gst-plugins-base   | []           []         []      []    []          |
     gst-plugins-good   | []           []         []      []    []          |
     gst-plugins-ugly   | []           []         []      []    [] []       |
     gstreamer          | []           []         []      []    []          |
     gtick              | []                              []    []          |
     gtkam              | []        [] []         []      []    []          |
     gtkorphan          | []                                                |
     gtkspell           | []           []     []  []   [] []    [] [] [] [] |
     gutenprint         | []                              []                |
     hello              | []           []                       [] []       |
     help2man           |              []                 []                |
     hylafax            | []                                                |
     idutils            | []           []         []   [] []                |
     indent             | []           []         []   [] []    []       [] |
     iso_15924          | []           []                 []       []       |
     iso_3166           | []  [] [] [] []     ()  []   [] [] [] [] [] [] [] |
     iso_3166_2         | []           []                          []       |
     iso_4217           | []  []       []     []          [] []    []    [] |
     iso_639            | []     [] [] []                 [] [] [] []    [] |
     iso_639_3          |        [] []                                      |
     jwhois             | []           []         []   []                   |
     kbd                | []           []              []                   |
     keytouch           | []           []                       []          |
     keytouch-editor    | []           []                       []          |
     keytouch-keyboa... | []           []                       []          |
     klavaro            | []                      []                        |
     latrine            |              []                 []                |
     ld                 |                                                   |
     leafpad            | []  []       []     []  []      []    [] []    [] |
     libc               | []           []                 []    []          |
     libexif            | []           []         ()            []          |
     libextractor       |                                                   |
     libgnutls          | []           []                                   |
     libgpewidget       | []           []                          []       |
     libgpg-error       |              []              []                   |
     libgphoto2         | []           []                                   |
     libgphoto2_port    | []           []                 []    []          |
     libgsasl           | []           []              []       []       [] |
     libiconv           | []           []                       [] []    [] |
     libidn             | []           []                                   |
     lifelines          | []           []                                   |
     liferea            | []           []     []  []   [] ()    ()    []    |
     lilypond           | []                                                |
     linkdr             | []                  []          []                |
     lordsawar          |                                                   |
     lprng              |              []                                   |
     lynx               | []                      []      []                |
     m4                 | []           []         []   [] []                |
     mailfromd          |              []                                   |
     mailutils          |              []                                   |
     make               | []           []         []      []                |
     man-db             | []           []                 []                |
     man-db-manpages    | []           []                 []                |
     minicom            |              []         []   [] []                |
     mkisofs            | []           []                 []                |
     myserver           |                                                   |
     nano               | []           []         []      []                |
     opcodes            | []                           []                   |
     parted             | []           []                 []    []          |
     pies               |              []                                   |
     popt               | []           []     []          []                |
     psmisc             | []           []                 []                |
     pspp               | []                      []                        |
     pwdutils           |              []                                   |
     radius             | []           []                 []                |
     recode             | []           []     []  []   [] []    [] []       |
     rosegarden         |              ()                 ()                |
     rpm                | []           []     []                            |
     rush               | []           []                                   |
     sarg               |                                                   |
     screem             |                                                   |
     scrollkeeper       | []  []       []              [] []    []    [] [] |
     sed                | []           []     []  []   [] []    [] []    [] |
     sharutils          | []           []                 []             [] |
     shishi             |              []                                   |
     skencil            |                     []  []                        |
     solfege            | []           []         []      []                |
     solfege-manual     | []           []         []                        |
     soundtracker       |                                       []          |
     sp                 |                                                   |
     sysstat            | []           []         []      []                |
     tar                | []           []                 []       []       |
     texinfo            | []           []              [] []                |
     tin                |                                 []                |
     unicode-han-tra... |                                                   |
     unicode-transla... |                                                   |
     util-linux-ng      | []           []         []      []       []       |
     vice               | []                                                |
     vmm                | []                                                |
     vorbis-tools       | []           []                                   |
     wastesedge         | []                                                |
     wdiff              | []           []                                   |
     wget               | []           []     []  []      []    [] []       |
     wyslij-po          | []  []       []                                   |
     xchat              | []        [] []     []          []    [] [] [] [] |
     xdg-user-dirs      | []  [] [] [] []  [] []  []   [] []    [] [] [] [] |
     xkeyboard-config   | []           []                 []    [] []       |
                        +---------------------------------------------------+
                          nl  nn or pa pl  ps pt pt_BR ro ru rw sk sl sq sr
                          135 10  4  7 105  1 29  61   47 91  3 55 47  8 37

                          sv  sw ta te tg th tr uk vi  wa zh_CN zh_HK zh_TW
                        +---------------------------------------------------+
     a2ps               | []              [] [] [] []                       | 27
     aegis              |                          []                       |  9
     ant-phone          | []                 []    []      []               |  9
     anubis             | []                 [] [] []                       | 15
     aspell             |                       [] []  []                   | 20
     bash               | []                       []                       | 11
     bfd                |                          []                       |  6
     bibshelf           | []                       []      []               | 16
     binutils           |                       [] []                       |  8
     bison              | []                       []                       | 12
     bison-runtime      | []              []    [] []      []          []   | 29
     bluez-pin          | []              [] [] [] []  []  []          []   | 37
     bombono-dvd        |                          []                       |  4
     buzztard           |                          []                       |  7
     cflow              |                       [] []      []               |  9
     clisp              |                                                   | 10
     coreutils          | []                    [] []      []               | 22
     cpio               | []                 [] [] []      []          []   | 13
     cppi               |                       [] []                       |  5
     cpplib             | []                 [] [] []      []          []   | 13
     cryptsetup         | []                       []                       |  7
     dfarc              |                          []                       |  9
     dialog             | []  []          []       []  []  []          []   | 30
     dico               |                       []                          |  2
     diffutils          | []                 [] [] []      []          []   | 30
     dink               |                                                   |  4
     doodle             | []                       []                       |  7
     e2fsprogs          | []                 []    []                       | 11
     enscript           | []                 [] [] []                       | 17
     exif               | []                       []      []               | 16
     fetchmail          |                    []    []      []               | 17
     findutils          | []                 [] [] []      []               | 20
     flex               | []                 []    []                  []   | 15
     freedink           |                          []                       | 10
     gas                |                    []                             |  4
     gawk               | []                 []    []      []               | 18
     gcal               | []                 []                             |  5
     gcc                | []                 []            []               |  7
     gettext-examples   | []                 [] [] []      []    []    []   | 34
     gettext-runtime    | []                 [] [] []      []    []    []   | 30
     gettext-tools      | []                 [] [] []      []          []   | 22
     gip                | []                       []      []          []   | 22
     gjay               |                          []                       |  3
     gliv               | []                 []    []                       | 14
     glunarclock        | []                       []  []  []          []   | 19
     gnubiff            | []                       []                       |  4
     gnucash            |                    () [] ()                  ()   |  9
     gnuedu             |                          []                  []   |  7
     gnulib             | []                    [] []      []               | 16
     gnunet             |                          []                       |  1
     gnunet-gtk         | []                 []    []                       |  5
     gnutls             | []                       []      []               | 10
     gold               |                          []                       |  4
     gpe-aerial         | []                       []      []               | 18
     gpe-beam           | []                       []      []               | 19
     gpe-bluetooth      | []                       []      []               | 13
     gpe-calendar       | []                       []  []  []               | 12
     gpe-clock          | []                 []    []  []  []               | 28
     gpe-conf           | []                       []  []  []               | 20
     gpe-contacts       | []                       []      []               | 17
     gpe-edit           | []                       []      []               | 12
     gpe-filemanager    | []                       []  []  []               | 16
     gpe-go             | []                 []    []  []  []               | 25
     gpe-login          | []                       []      []               | 11
     gpe-ownerinfo      | []                 []    []      []          []   | 25
     gpe-package        | []                       []      []               | 13
     gpe-sketchbook     | []                       []      []               | 20
     gpe-su             | []                 []    []  []  []               | 30
     gpe-taskmanager    | []                 []    []  []  []               | 29
     gpe-timesheet      | []                 []    []      []          []   | 25
     gpe-today          | []                 []    []  []  []          []   | 30
     gpe-todo           | []                       []  []  []               | 17
     gphoto2            | []                    [] []      []          []   | 24
     gprof              | []                 []    []                       | 15
     gpsdrive           | []                       []      []               | 11
     gramadoir          | []                       []      []               | 11
     grep               |                 []       []      []               | 10
     grub               | []                       []      []               | 14
     gsasl              | []                       []      []          []   | 14
     gss                | []                       []      []               | 11
     gst-plugins-bad    | []                 []    []      []               | 22
     gst-plugins-base   | []                 [] [] []      []               | 24
     gst-plugins-good   | []                 [] [] []      []               | 25
     gst-plugins-ugly   | []                 [] [] []      []               | 29
     gstreamer          | []                    [] []      []               | 22
     gtick              |                       [] []      []               | 13
     gtkam              | []                       []      []               | 20
     gtkorphan          | []                       []      []               | 14
     gtkspell           | []              [] [] [] []  []  []    []    []   | 45
     gutenprint         | []                                                | 10
     hello              | []              [] []    []      []          []   | 21
     help2man           | []                       []                       |  7
     hylafax            |                          []                       |  5
     idutils            | []                 []    []      []               | 17
     indent             | []                 [] [] []      []          []   | 30
     iso_15924          |                 ()    [] ()      []          []   | 16
     iso_3166           | []        []    () [] [] ()  []  []    []    ()   | 53
     iso_3166_2         |                 ()    [] ()      []               |  9
     iso_4217           | []              () [] [] ()      []    []         | 26
     iso_639            | []     [] []    ()    [] ()  []  []    []    []   | 38
     iso_639_3          |        []                ()                       |  8
     jwhois             | []                 []    []      []          []   | 16
     kbd                | []                 [] [] []      []               | 15
     keytouch           | []                       []      []               | 16
     keytouch-editor    | []                       []      []               | 14
     keytouch-keyboa... | []                       []      []               | 14
     klavaro            |                          []                       | 11
     latrine            |                    []    []      []               | 10
     ld                 | []                 []    []                  []   | 11
     leafpad            | []                 [] [] []      []          []   | 33
     libc               | []                 []    []      []          []   | 21
     libexif            |                          []      ()               |  6
     libextractor       |                          []                       |  1
     libgnutls          | []                       []      []               |  9
     libgpewidget       | []                       []      []               | 14
     libgpg-error       | []                       []      []               |  9
     libgphoto2         |                       [] []                       |  8
     libgphoto2_port    | []                    [] []                  []   | 13
     libgsasl           | []                       []      []               | 13
     libiconv           | []                       []  []  []               | 21
     libidn             | ()                       []      []               | 11
     lifelines          | []                                                |  4
     liferea            | []                 []            []               | 21
     lilypond           |                          []                       |  7
     linkdr             | []                 []    []      []          []   | 17
     lordsawar          |                                                   |  1
     lprng              |                          []                       |  3
     lynx               | []                 [] [] []                       | 17
     m4                 | []                       []      []          []   | 19
     mailfromd          |                       [] []                       |  3
     mailutils          |                          []                       |  5
     make               | []                 []    []      []               | 21
     man-db             | []                       []      []               |  8
     man-db-manpages    |                                                   |  4
     minicom            | []                       []                       | 16
     mkisofs            |                          []      []               |  9
     myserver           |                                                   |  0
     nano               | []                       []      []          []   | 21
     opcodes            | []                 []    []                       | 11
     parted             | []                 [] [] []                  []   | 15
     pies               |                       [] []                       |  3
     popt               | []              [] []    []      []          []   | 27
     psmisc             | []                       []                       | 11
     pspp               |                                                   |  4
     pwdutils           | []                       []                       |  6
     radius             |                       [] []                       |  9
     recode             | []                 []    []      []               | 28
     rosegarden         | ()                                                |  0
     rpm                | []                       []                  []   | 11
     rush               |                       [] []                       |  4
     sarg               |                                                   |  1
     screem             |                          []                       |  3
     scrollkeeper       | []                 [] [] []                  []   | 27
     sed                | []                 []    []      []          []   | 30
     sharutils          | []                 []    []      []          []   | 22
     shishi             |                          []                       |  3
     skencil            | []                       []                       |  7
     solfege            | []                 []    []      []               | 16
     solfege-manual     |                    []                             |  8
     soundtracker       | []                 []    []                       |  9
     sp                 |                    []                             |  3
     sysstat            |                          []      []               | 15
     tar                | []                 [] [] []      []          []   | 23
     texinfo            | []                 []    []      []               | 16
     tin                |                                                   |  4
     unicode-han-tra... |                                                   |  0
     unicode-transla... |                                                   |  2
     util-linux-ng      | []                 [] [] []                       | 20
     vice               | ()                 ()                             |  1
     vmm                |                          []                       |  4
     vorbis-tools       |                          []                       |  6
     wastesedge         |                                                   |  2
     wdiff              | []                       []                       |  7
     wget               | []                 []    []      []          []   | 26
     wyslij-po          |                       [] []                       |  8
     xchat              | []              []    [] []      []          []   | 36
     xdg-user-dirs      | []     []       [] [] [] []      []    []    []   | 60
     xkeyboard-config   | []                 [] [] []                       | 25
                        +---------------------------------------------------+
       84 teams           sv  sw ta te tg th tr uk vi  wa zh_CN zh_HK zh_TW
      178 domains         119  1  3  2  0 10 66 50 155 17  97     7    41    2610

   Some counters in the preceding matrix are higher than the number of
visible blocks let us expect.  This is because a few extra PO files are
used for implementing regional variants of languages, or language
dialects.

   For a PO file in the matrix above to be effective, the package to
which it applies should also have been internationalized and
distributed as such by its maintainer.  There might be an observable
lag between the mere existence a PO file and its wide availability in a
distribution.

   If May 2010 seems to be old, you may fetch a more recent copy of
this `ABOUT-NLS' file on most GNU archive sites.  The most up-to-date
matrix with full percentage details can be found at
`http://translationproject.org/extra/matrix.html'.

1.6 Using `gettext' in new packages
===================================

If you are writing a freely available program and want to
internationalize it you are welcome to use GNU `gettext' in your
package.  Of course you have to respect the GNU Library General Public
License which covers the use of the GNU `gettext' library.  This means
in particular that even non-free programs can use `libintl' as a shared
library, whereas only free software can use `libintl' as a static
library or use modified versions of `libintl'.

   Once the sources are changed appropriately and the setup can handle
the use of `gettext' the only thing missing are the translations.  The
Free Translation Project is also available for packages which are not
developed inside the GNU project.  Therefore the information given above
applies also for every other Free Software Project.  Contact
`coordinator@translationproject.org' to make the `.pot' files available
to the translation teams.



================================================
FILE: 3rdparty/hunspell/AUTHORS
================================================
Author: László Németh

MySpell's (Hunspell's code base) author: Kevin Hendricks

Maintainer, distinguished contributor: Caolán McNamara

Author of rule-based transformation code for phonetic suggestions
(PHONE/phonet.cxx, used by English dictionaries): Björn Jacke


Hunspell/MySpell code base is result of work of several
contributors. See git log, ./THANKS, ./Changelog, ./Changelog.O,
MySpell's README and CONTRIBUTORS files for their contributions.


Note: Following contributors are not owners and
not representatives of Hunspell, and they haven't got
permission from Hunspell's author to act on the behalf
of Hunspell project: Sander van Geloven, Dimitri Mijoski


If you would like to support Hunspell, join the
development or contact the author.


================================================
FILE: 3rdparty/hunspell/COPYING
================================================
                    GNU GENERAL PUBLIC LICENSE
                       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.

                    GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program u
Download .txt
gitextract_h3u3_stj/

├── .gitattributes
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   └── feature_request.yml
│   └── workflows/
│       ├── AppRun
│       ├── appimg_cleanup.py
│       ├── appimg_python3_gather.py
│       ├── arch-repo.yml
│       ├── build_appimage.yml
│       ├── build_appimage2.yml
│       ├── build_sigil_appimage.sh
│       ├── build_sigilpython.sh
│       ├── build_sigilwebengine.sh
│       ├── checkqt5.yml
│       ├── create_tag.yml
│       ├── linux-build.yml
│       ├── mac-build.yml
│       ├── mac_arm64-build.yml
│       ├── make_blog_post.yml
│       ├── make_post.py
│       ├── requirements.txt
│       ├── reset-lin-caches.txt
│       ├── reset-mac-caches.txt
│       ├── reset-mac_arm64-caches.txt
│       ├── reset-win-caches.txt
│       ├── win-build.yml
│       └── winget.yml
├── .gitignore
├── 3rdparty/
│   ├── CMakeLists.txt
│   ├── about.md
│   ├── cmake/
│   │   ├── ext_libxml2.cmake
│   │   ├── hunspell.cmake
│   │   ├── minizip.cmake
│   │   ├── pcre2.cmake
│   │   └── zlib.cmake
│   ├── extra/
│   │   ├── hunspell/
│   │   │   └── config.h
│   │   └── libxml2/
│   │       └── libxml2_bug_fix.patch
│   ├── hunspell/
│   │   ├── ABOUT-NLS
│   │   ├── AUTHORS
│   │   ├── COPYING
│   │   ├── COPYING.LESSER
│   │   ├── COPYING.MPL
│   │   ├── ChangeLog
│   │   ├── ChangeLog.O
│   │   ├── INSTALL
│   │   ├── Makefile.am
│   │   ├── Makefile.in
│   │   ├── NEWS
│   │   ├── README
│   │   ├── THANKS
│   │   ├── aclocal.m4
│   │   ├── compile
│   │   ├── config.guess
│   │   ├── config.h.in
│   │   ├── config.rpath
│   │   ├── config.sub
│   │   ├── configure
│   │   ├── configure.ac
│   │   ├── depcomp
│   │   ├── hunspell.pc.in
│   │   ├── install-sh
│   │   ├── license.hunspell
│   │   ├── license.myspell
│   │   ├── ltmain.sh
│   │   ├── m4/
│   │   │   ├── ax_cxx_compile_stdcxx.m4
│   │   │   ├── ax_cxx_compile_stdcxx_11.m4
│   │   │   ├── gettext.m4
│   │   │   ├── iconv.m4
│   │   │   ├── lib-ld.m4
│   │   │   ├── lib-link.m4
│   │   │   ├── lib-prefix.m4
│   │   │   ├── libtool.m4
│   │   │   ├── ltoptions.m4
│   │   │   ├── ltsugar.m4
│   │   │   ├── ltversion.m4
│   │   │   ├── lt~obsolete.m4
│   │   │   ├── nls.m4
│   │   │   ├── po.m4
│   │   │   ├── progtest.m4
│   │   │   └── visibility.m4
│   │   ├── man/
│   │   │   ├── Makefile.am
│   │   │   ├── Makefile.in
│   │   │   ├── hu/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── Makefile.in
│   │   │   │   ├── hunspell.1
│   │   │   │   └── hunspell.5
│   │   │   ├── hunspell.1
│   │   │   ├── hunspell.3
│   │   │   ├── hunspell.5
│   │   │   ├── hunzip.1
│   │   │   └── hzip.1
│   │   ├── missing
│   │   ├── po/
│   │   │   ├── ChangeLog
│   │   │   ├── LINGUAS
│   │   │   ├── Makefile.in.in
│   │   │   ├── Makevars
│   │   │   ├── POTFILES.in
│   │   │   ├── Rules-quot
│   │   │   ├── an.gmo
│   │   │   ├── an.po
│   │   │   ├── ar.gmo
│   │   │   ├── ar.po
│   │   │   ├── boldquot.sed
│   │   │   ├── ca.gmo
│   │   │   ├── ca.po
│   │   │   ├── ckb.gmo
│   │   │   ├── ckb.po
│   │   │   ├── cs.gmo
│   │   │   ├── cs.po
│   │   │   ├── da.gmo
│   │   │   ├── da.po
│   │   │   ├── de.gmo
│   │   │   ├── de.po
│   │   │   ├── de_CH.gmo
│   │   │   ├── de_CH.po
│   │   │   ├── el.gmo
│   │   │   ├── el.po
│   │   │   ├── en@boldquot.header
│   │   │   ├── en@quot.header
│   │   │   ├── eo.gmo
│   │   │   ├── eo.po
│   │   │   ├── es.gmo
│   │   │   ├── es.po
│   │   │   ├── es_EU.gmo
│   │   │   ├── es_EU.po
│   │   │   ├── fa.gmo
│   │   │   ├── fa.po
│   │   │   ├── fr.gmo
│   │   │   ├── fr.po
│   │   │   ├── fy.gmo
│   │   │   ├── fy.po
│   │   │   ├── gl.gmo
│   │   │   ├── gl.po
│   │   │   ├── hr.gmo
│   │   │   ├── hr.po
│   │   │   ├── hu.gmo
│   │   │   ├── hu.po
│   │   │   ├── hunspell.pot
│   │   │   ├── hy.gmo
│   │   │   ├── hy.po
│   │   │   ├── ie.gmo
│   │   │   ├── ie.po
│   │   │   ├── insert-header.sin
│   │   │   ├── is.gmo
│   │   │   ├── is.po
│   │   │   ├── it.gmo
│   │   │   ├── it.po
│   │   │   ├── ka.gmo
│   │   │   ├── ka.po
│   │   │   ├── kab.gmo
│   │   │   ├── kab.po
│   │   │   ├── ky.gmo
│   │   │   ├── ky.po
│   │   │   ├── lt.gmo
│   │   │   ├── lt.po
│   │   │   ├── mk.gmo
│   │   │   ├── mk.po
│   │   │   ├── nb_NO.gmo
│   │   │   ├── nb_NO.po
│   │   │   ├── nl.gmo
│   │   │   ├── nl.po
│   │   │   ├── nl_BE.gmo
│   │   │   ├── nl_BE.po
│   │   │   ├── oc.gmo
│   │   │   ├── oc.po
│   │   │   ├── pa.gmo
│   │   │   ├── pa.po
│   │   │   ├── pl.gmo
│   │   │   ├── pl.po
│   │   │   ├── pt.gmo
│   │   │   ├── pt.po
│   │   │   ├── pt_BR.gmo
│   │   │   ├── pt_BR.po
│   │   │   ├── pt_PT.gmo
│   │   │   ├── pt_PT.po
│   │   │   ├── quot.sed
│   │   │   ├── remove-potcdate.sin
│   │   │   ├── ru.gmo
│   │   │   ├── ru.po
│   │   │   ├── si.gmo
│   │   │   ├── si.po
│   │   │   ├── sl.gmo
│   │   │   ├── sl.po
│   │   │   ├── stamp-po
│   │   │   ├── sv.gmo
│   │   │   ├── sv.po
│   │   │   ├── ta.gmo
│   │   │   ├── ta.po
│   │   │   ├── tg.gmo
│   │   │   ├── tg.po
│   │   │   ├── tr.gmo
│   │   │   ├── tr.po
│   │   │   ├── tt.gmo
│   │   │   ├── tt.po
│   │   │   ├── uk.gmo
│   │   │   ├── uk.po
│   │   │   ├── uz.gmo
│   │   │   ├── uz.po
│   │   │   ├── zh_Hans.gmo
│   │   │   ├── zh_Hans.po
│   │   │   ├── zh_Hant.gmo
│   │   │   └── zh_Hant.po
│   │   ├── src/
│   │   │   ├── Makefile.am
│   │   │   ├── Makefile.in
│   │   │   ├── hunspell/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── Makefile.in
│   │   │   │   ├── affentry.cxx
│   │   │   │   ├── affentry.hxx
│   │   │   │   ├── affixmgr.cxx
│   │   │   │   ├── affixmgr.hxx
│   │   │   │   ├── atypes.hxx
│   │   │   │   ├── baseaffix.hxx
│   │   │   │   ├── csutil.cxx
│   │   │   │   ├── csutil.hxx
│   │   │   │   ├── filemgr.cxx
│   │   │   │   ├── filemgr.hxx
│   │   │   │   ├── hashmgr.cxx
│   │   │   │   ├── hashmgr.hxx
│   │   │   │   ├── htypes.hxx
│   │   │   │   ├── hunspell.cxx
│   │   │   │   ├── hunspell.h
│   │   │   │   ├── hunspell.hxx
│   │   │   │   ├── hunvisapi.h
│   │   │   │   ├── hunvisapi.h.in
│   │   │   │   ├── hunzip.cxx
│   │   │   │   ├── hunzip.hxx
│   │   │   │   ├── langnum.hxx
│   │   │   │   ├── phonet.cxx
│   │   │   │   ├── phonet.hxx
│   │   │   │   ├── replist.cxx
│   │   │   │   ├── replist.hxx
│   │   │   │   ├── suggestmgr.cxx
│   │   │   │   ├── suggestmgr.hxx
│   │   │   │   ├── utf_info.hxx
│   │   │   │   └── w_char.hxx
│   │   │   ├── parsers/
│   │   │   │   ├── Makefile.am
│   │   │   │   ├── Makefile.in
│   │   │   │   ├── firstparser.cxx
│   │   │   │   ├── firstparser.hxx
│   │   │   │   ├── htmlparser.cxx
│   │   │   │   ├── htmlparser.hxx
│   │   │   │   ├── latexparser.cxx
│   │   │   │   ├── latexparser.hxx
│   │   │   │   ├── manparser.cxx
│   │   │   │   ├── manparser.hxx
│   │   │   │   ├── odfparser.cxx
│   │   │   │   ├── odfparser.hxx
│   │   │   │   ├── testparser.cxx
│   │   │   │   ├── textparser.cxx
│   │   │   │   ├── textparser.hxx
│   │   │   │   ├── xmlparser.cxx
│   │   │   │   └── xmlparser.hxx
│   │   │   └── tools/
│   │   │       ├── Makefile.am
│   │   │       ├── Makefile.in
│   │   │       ├── affixcompress
│   │   │       ├── analyze.cxx
│   │   │       ├── chmorph.cxx
│   │   │       ├── example.cxx
│   │   │       ├── hunspell.cxx
│   │   │       ├── hunzip.cxx
│   │   │       ├── hzip.cxx
│   │   │       ├── ispellaff2myspell
│   │   │       ├── makealias
│   │   │       ├── munch.cxx
│   │   │       ├── munch.h
│   │   │       ├── unmunch.cxx
│   │   │       ├── unmunch.h
│   │   │       ├── wordforms
│   │   │       └── wordlist2hunspell
│   │   ├── tap-driver.sh
│   │   ├── test-driver
│   │   └── tests/
│   │       ├── 1463589.aff
│   │       ├── 1463589.dic
│   │       ├── 1463589.sug
│   │       ├── 1463589.wrong
│   │       ├── 1463589_utf.aff
│   │       ├── 1463589_utf.dic
│   │       ├── 1463589_utf.sug
│   │       ├── 1463589_utf.wrong
│   │       ├── 1592880.aff
│   │       ├── 1592880.dic
│   │       ├── 1592880.good
│   │       ├── 1695964.aff
│   │       ├── 1695964.dic
│   │       ├── 1695964.sug
│   │       ├── 1695964.wrong
│   │       ├── 1706659.aff
│   │       ├── 1706659.dic
│   │       ├── 1706659.wrong
│   │       ├── 1748408-1.aff
│   │       ├── 1748408-1.dic
│   │       ├── 1748408-1.good
│   │       ├── 1748408-2.aff
│   │       ├── 1748408-2.dic
│   │       ├── 1748408-2.good
│   │       ├── 1748408-3.aff
│   │       ├── 1748408-3.dic
│   │       ├── 1748408-3.good
│   │       ├── 1748408-4.aff
│   │       ├── 1748408-4.dic
│   │       ├── 1748408-4.good
│   │       ├── 1975530.aff
│   │       ├── 1975530.dic
│   │       ├── 1975530.good
│   │       ├── 1975530.wrong
│   │       ├── 2970240.aff
│   │       ├── 2970240.dic
│   │       ├── 2970240.good
│   │       ├── 2970240.wrong
│   │       ├── 2970242.aff
│   │       ├── 2970242.dic
│   │       ├── 2970242.good
│   │       ├── 2970242.wrong
│   │       ├── 2999225.aff
│   │       ├── 2999225.dic
│   │       ├── 2999225.good
│   │       ├── IJ.aff
│   │       ├── IJ.dic
│   │       ├── IJ.good
│   │       ├── IJ.sug
│   │       ├── IJ.wrong
│   │       ├── Makefile.am
│   │       ├── Makefile.in
│   │       ├── affixes.aff
│   │       ├── affixes.dic
│   │       ├── affixes.good
│   │       ├── alias.aff
│   │       ├── alias.dic
│   │       ├── alias.good
│   │       ├── alias2.aff
│   │       ├── alias2.dic
│   │       ├── alias2.good
│   │       ├── alias2.morph
│   │       ├── alias3.aff
│   │       ├── alias3.dic
│   │       ├── alias3.good
│   │       ├── alias3.morph
│   │       ├── allcaps.aff
│   │       ├── allcaps.dic
│   │       ├── allcaps.good
│   │       ├── allcaps.sug
│   │       ├── allcaps.wrong
│   │       ├── allcaps2.aff
│   │       ├── allcaps2.dic
│   │       ├── allcaps2.good
│   │       ├── allcaps2.sug
│   │       ├── allcaps2.wrong
│   │       ├── allcaps3.aff
│   │       ├── allcaps3.dic
│   │       ├── allcaps3.good
│   │       ├── allcaps3.wrong
│   │       ├── allcaps_utf.aff
│   │       ├── allcaps_utf.dic
│   │       ├── allcaps_utf.good
│   │       ├── allcaps_utf.sug
│   │       ├── allcaps_utf.wrong
│   │       ├── arabic.aff
│   │       ├── arabic.dic
│   │       ├── arabic.wrong
│   │       ├── base.aff
│   │       ├── base.dic
│   │       ├── base.good
│   │       ├── base.sug
│   │       ├── base.wrong
│   │       ├── base_utf.aff
│   │       ├── base_utf.dic
│   │       ├── base_utf.good
│   │       ├── base_utf.sug
│   │       ├── base_utf.wrong
│   │       ├── break.aff
│   │       ├── break.dic
│   │       ├── break.good
│   │       ├── break.wrong
│   │       ├── breakdefault.aff
│   │       ├── breakdefault.dic
│   │       ├── breakdefault.good
│   │       ├── breakdefault.sug
│   │       ├── breakdefault.wrong
│   │       ├── breakoff.aff
│   │       ├── breakoff.dic
│   │       ├── breakoff.good
│   │       ├── breakoff.wrong
│   │       ├── checkcompoundcase.aff
│   │       ├── checkcompoundcase.dic
│   │       ├── checkcompoundcase.good
│   │       ├── checkcompoundcase.wrong
│   │       ├── checkcompoundcase2.aff
│   │       ├── checkcompoundcase2.dic
│   │       ├── checkcompoundcase2.good
│   │       ├── checkcompoundcase2.wrong
│   │       ├── checkcompoundcaseutf.aff
│   │       ├── checkcompoundcaseutf.dic
│   │       ├── checkcompoundcaseutf.good
│   │       ├── checkcompoundcaseutf.wrong
│   │       ├── checkcompounddup.aff
│   │       ├── checkcompounddup.dic
│   │       ├── checkcompounddup.good
│   │       ├── checkcompounddup.wrong
│   │       ├── checkcompoundpattern.aff
│   │       ├── checkcompoundpattern.dic
│   │       ├── checkcompoundpattern.good
│   │       ├── checkcompoundpattern.wrong
│   │       ├── checkcompoundpattern2.aff
│   │       ├── checkcompoundpattern2.dic
│   │       ├── checkcompoundpattern2.good
│   │       ├── checkcompoundpattern2.wrong
│   │       ├── checkcompoundpattern3.aff
│   │       ├── checkcompoundpattern3.dic
│   │       ├── checkcompoundpattern3.good
│   │       ├── checkcompoundpattern3.wrong
│   │       ├── checkcompoundpattern4.aff
│   │       ├── checkcompoundpattern4.dic
│   │       ├── checkcompoundpattern4.good
│   │       ├── checkcompoundpattern4.wrong
│   │       ├── checkcompoundrep.aff
│   │       ├── checkcompoundrep.dic
│   │       ├── checkcompoundrep.good
│   │       ├── checkcompoundrep.wrong
│   │       ├── checkcompoundrep2.aff
│   │       ├── checkcompoundrep2.dic
│   │       ├── checkcompoundrep2.good
│   │       ├── checkcompoundtriple.aff
│   │       ├── checkcompoundtriple.dic
│   │       ├── checkcompoundtriple.good
│   │       ├── checkcompoundtriple.wrong
│   │       ├── checksharps.aff
│   │       ├── checksharps.dic
│   │       ├── checksharps.good
│   │       ├── checksharps.sug
│   │       ├── checksharps.wrong
│   │       ├── checksharpsutf.aff
│   │       ├── checksharpsutf.dic
│   │       ├── checksharpsutf.good
│   │       ├── checksharpsutf.sug
│   │       ├── checksharpsutf.wrong
│   │       ├── circumfix.aff
│   │       ├── circumfix.dic
│   │       ├── circumfix.good
│   │       ├── circumfix.morph
│   │       ├── circumfix.wrong
│   │       ├── colons_in_words.aff
│   │       ├── colons_in_words.dic
│   │       ├── complexprefixes.aff
│   │       ├── complexprefixes.dic
│   │       ├── complexprefixes.good
│   │       ├── complexprefixes.wrong
│   │       ├── complexprefixes2.aff
│   │       ├── complexprefixes2.dic
│   │       ├── complexprefixes2.good
│   │       ├── complexprefixesutf.aff
│   │       ├── complexprefixesutf.dic
│   │       ├── complexprefixesutf.good
│   │       ├── complexprefixesutf.wrong
│   │       ├── compoundaffix.aff
│   │       ├── compoundaffix.dic
│   │       ├── compoundaffix.good
│   │       ├── compoundaffix.wrong
│   │       ├── compoundaffix2.aff
│   │       ├── compoundaffix2.dic
│   │       ├── compoundaffix2.good
│   │       ├── compoundaffix3.aff
│   │       ├── compoundaffix3.dic
│   │       ├── compoundaffix3.good
│   │       ├── compoundaffix3.wrong
│   │       ├── compoundflag.aff
│   │       ├── compoundflag.dic
│   │       ├── compoundflag.good
│   │       ├── compoundflag.wrong
│   │       ├── compoundforbid.aff
│   │       ├── compoundforbid.dic
│   │       ├── compoundforbid.good
│   │       ├── compoundforbid.wrong
│   │       ├── compoundrule.aff
│   │       ├── compoundrule.dic
│   │       ├── compoundrule.good
│   │       ├── compoundrule.wrong
│   │       ├── compoundrule2.aff
│   │       ├── compoundrule2.dic
│   │       ├── compoundrule2.good
│   │       ├── compoundrule2.wrong
│   │       ├── compoundrule3.aff
│   │       ├── compoundrule3.dic
│   │       ├── compoundrule3.good
│   │       ├── compoundrule3.wrong
│   │       ├── compoundrule4.aff
│   │       ├── compoundrule4.dic
│   │       ├── compoundrule4.good
│   │       ├── compoundrule4.wrong
│   │       ├── compoundrule5.aff
│   │       ├── compoundrule5.dic
│   │       ├── compoundrule5.good
│   │       ├── compoundrule5.morph
│   │       ├── compoundrule5.wrong
│   │       ├── compoundrule6.aff
│   │       ├── compoundrule6.dic
│   │       ├── compoundrule6.good
│   │       ├── compoundrule6.wrong
│   │       ├── compoundrule7.aff
│   │       ├── compoundrule7.dic
│   │       ├── compoundrule7.good
│   │       ├── compoundrule7.wrong
│   │       ├── compoundrule8.aff
│   │       ├── compoundrule8.dic
│   │       ├── compoundrule8.good
│   │       ├── compoundrule8.wrong
│   │       ├── condition.aff
│   │       ├── condition.dic
│   │       ├── condition.good
│   │       ├── condition.wrong
│   │       ├── condition_utf.aff
│   │       ├── condition_utf.dic
│   │       ├── condition_utf.good
│   │       ├── condition_utf.wrong
│   │       ├── conditionalprefix.aff
│   │       ├── conditionalprefix.dic
│   │       ├── conditionalprefix.good
│   │       ├── conditionalprefix.morph
│   │       ├── conditionalprefix.wrong
│   │       ├── digits_in_words.aff
│   │       ├── digits_in_words.dic
│   │       ├── digits_in_words.wrong
│   │       ├── dotless_i.aff
│   │       ├── dotless_i.dic
│   │       ├── dotless_i.good
│   │       ├── dotless_i.wrong
│   │       ├── encoding.aff
│   │       ├── encoding.dic
│   │       ├── encoding.good
│   │       ├── flag.aff
│   │       ├── flag.dic
│   │       ├── flag.good
│   │       ├── flaglong.aff
│   │       ├── flaglong.dic
│   │       ├── flaglong.good
│   │       ├── flagnum.aff
│   │       ├── flagnum.dic
│   │       ├── flagnum.good
│   │       ├── flagutf8.aff
│   │       ├── flagutf8.dic
│   │       ├── flagutf8.good
│   │       ├── fogemorpheme.aff
│   │       ├── fogemorpheme.dic
│   │       ├── fogemorpheme.good
│   │       ├── fogemorpheme.wrong
│   │       ├── forbiddenword.aff
│   │       ├── forbiddenword.dic
│   │       ├── forbiddenword.good
│   │       ├── forbiddenword.wrong
│   │       ├── forceucase.aff
│   │       ├── forceucase.dic
│   │       ├── forceucase.good
│   │       ├── forceucase.sug
│   │       ├── forceucase.wrong
│   │       ├── fullstrip.aff
│   │       ├── fullstrip.dic
│   │       ├── fullstrip.good
│   │       ├── germancompounding.aff
│   │       ├── germancompounding.dic
│   │       ├── germancompounding.good
│   │       ├── germancompounding.wrong
│   │       ├── germancompoundingold.aff
│   │       ├── germancompoundingold.dic
│   │       ├── germancompoundingold.good
│   │       ├── germancompoundingold.wrong
│   │       ├── hu.aff
│   │       ├── hu.dic
│   │       ├── hu.good
│   │       ├── i35725.aff
│   │       ├── i35725.dic
│   │       ├── i35725.good
│   │       ├── i35725.sug
│   │       ├── i35725.wrong
│   │       ├── i53643.aff
│   │       ├── i53643.dic
│   │       ├── i53643.good
│   │       ├── i53643.wrong
│   │       ├── i54633.aff
│   │       ├── i54633.dic
│   │       ├── i54633.good
│   │       ├── i54633.sug
│   │       ├── i54633.wrong
│   │       ├── i54980.aff
│   │       ├── i54980.dic
│   │       ├── i54980.good
│   │       ├── i58202.aff
│   │       ├── i58202.dic
│   │       ├── i58202.good
│   │       ├── i58202.sug
│   │       ├── i58202.wrong
│   │       ├── i68568.aff
│   │       ├── i68568.dic
│   │       ├── i68568.wrong
│   │       ├── i68568utf.aff
│   │       ├── i68568utf.dic
│   │       ├── i68568utf.wrong
│   │       ├── iconv.aff
│   │       ├── iconv.dic
│   │       ├── iconv.good
│   │       ├── iconv2.aff
│   │       ├── iconv2.dic
│   │       ├── iconv2.good
│   │       ├── ignore.aff
│   │       ├── ignore.dic
│   │       ├── ignore.good
│   │       ├── ignoresug.aff
│   │       ├── ignoresug.dic
│   │       ├── ignoresug.good
│   │       ├── ignoresug.morph
│   │       ├── ignoreutf.aff
│   │       ├── ignoreutf.dic
│   │       ├── ignoreutf.good
│   │       ├── keepcase.aff
│   │       ├── keepcase.dic
│   │       ├── keepcase.good
│   │       ├── keepcase.sug
│   │       ├── keepcase.wrong
│   │       ├── korean.aff
│   │       ├── korean.dic
│   │       ├── korean.good
│   │       ├── korean.wrong
│   │       ├── limit-multiple-compounding.aff
│   │       ├── limit-multiple-compounding.dic
│   │       ├── limit-multiple-compounding.good
│   │       ├── limit-multiple-compounding.wrong
│   │       ├── map.aff
│   │       ├── map.dic
│   │       ├── map.sug
│   │       ├── map.wrong
│   │       ├── maputf.aff
│   │       ├── maputf.dic
│   │       ├── maputf.sug
│   │       ├── maputf.wrong
│   │       ├── morph.aff
│   │       ├── morph.dic
│   │       ├── morph.good
│   │       ├── morph.morph
│   │       ├── needaffix.aff
│   │       ├── needaffix.dic
│   │       ├── needaffix.good
│   │       ├── needaffix.wrong
│   │       ├── needaffix2.aff
│   │       ├── needaffix2.dic
│   │       ├── needaffix2.good
│   │       ├── needaffix2.morph
│   │       ├── needaffix3.aff
│   │       ├── needaffix3.dic
│   │       ├── needaffix3.good
│   │       ├── needaffix3.wrong
│   │       ├── needaffix4.aff
│   │       ├── needaffix4.dic
│   │       ├── needaffix4.good
│   │       ├── needaffix5.aff
│   │       ├── needaffix5.dic
│   │       ├── needaffix5.good
│   │       ├── needaffix5.wrong
│   │       ├── nepali.aff
│   │       ├── nepali.dic
│   │       ├── nepali.good
│   │       ├── ngram_utf_fix.aff
│   │       ├── ngram_utf_fix.dic
│   │       ├── ngram_utf_fix.good
│   │       ├── ngram_utf_fix.sug
│   │       ├── ngram_utf_fix.wrong
│   │       ├── nosuggest.aff
│   │       ├── nosuggest.dic
│   │       ├── nosuggest.good
│   │       ├── nosuggest.sug
│   │       ├── nosuggest.wrong
│   │       ├── oconv.aff
│   │       ├── oconv.dic
│   │       ├── oconv.good
│   │       ├── oconv.sug
│   │       ├── oconv.wrong
│   │       ├── oconv2.aff
│   │       ├── oconv2.dic
│   │       ├── oconv2.good
│   │       ├── oconv2.morph
│   │       ├── oconv2.root
│   │       ├── oconv2.test
│   │       ├── onlyincompound.aff
│   │       ├── onlyincompound.dic
│   │       ├── onlyincompound.good
│   │       ├── onlyincompound.sug
│   │       ├── onlyincompound.wrong
│   │       ├── onlyincompound2.aff
│   │       ├── onlyincompound2.dic
│   │       ├── onlyincompound2.good
│   │       ├── onlyincompound2.wrong
│   │       ├── opentaal_cpdpat.aff
│   │       ├── opentaal_cpdpat.dic
│   │       ├── opentaal_cpdpat.good
│   │       ├── opentaal_cpdpat.wrong
│   │       ├── opentaal_cpdpat2.aff
│   │       ├── opentaal_cpdpat2.dic
│   │       ├── opentaal_cpdpat2.good
│   │       ├── opentaal_cpdpat2.wrong
│   │       ├── opentaal_forbiddenword1.aff
│   │       ├── opentaal_forbiddenword1.dic
│   │       ├── opentaal_forbiddenword1.good
│   │       ├── opentaal_forbiddenword1.sug
│   │       ├── opentaal_forbiddenword1.wrong
│   │       ├── opentaal_forbiddenword2.aff
│   │       ├── opentaal_forbiddenword2.dic
│   │       ├── opentaal_forbiddenword2.good
│   │       ├── opentaal_forbiddenword2.sug
│   │       ├── opentaal_forbiddenword2.wrong
│   │       ├── opentaal_keepcase.aff
│   │       ├── opentaal_keepcase.dic
│   │       ├── opentaal_keepcase.good
│   │       ├── opentaal_keepcase.sug
│   │       ├── opentaal_keepcase.wrong
│   │       ├── ph.aff
│   │       ├── ph.dic
│   │       ├── ph.sug
│   │       ├── ph.wrong
│   │       ├── ph2.aff
│   │       ├── ph2.dic
│   │       ├── ph2.sug
│   │       ├── ph2.wrong
│   │       ├── phone.aff
│   │       ├── phone.dic
│   │       ├── phone.sug
│   │       ├── phone.wrong
│   │       ├── rep.aff
│   │       ├── rep.dic
│   │       ├── rep.sug
│   │       ├── rep.wrong
│   │       ├── reputf.aff
│   │       ├── reputf.dic
│   │       ├── reputf.sug
│   │       ├── reputf.wrong
│   │       ├── right_to_left_mark.aff
│   │       ├── right_to_left_mark.dic
│   │       ├── right_to_left_mark.good
│   │       ├── simplifiedtriple.aff
│   │       ├── simplifiedtriple.dic
│   │       ├── simplifiedtriple.good
│   │       ├── simplifiedtriple.wrong
│   │       ├── slash.aff
│   │       ├── slash.dic
│   │       ├── slash.good
│   │       ├── sug.aff
│   │       ├── sug.dic
│   │       ├── sug.sug
│   │       ├── sug.wrong
│   │       ├── sug2.aff
│   │       ├── sug2.dic
│   │       ├── sug2.sug
│   │       ├── sug2.wrong
│   │       ├── suggestiontest/
│   │       │   ├── List_of_common_misspellings.txt
│   │       │   ├── Makefile.am
│   │       │   ├── Makefile.in
│   │       │   ├── README
│   │       │   ├── prepare
│   │       │   └── test
│   │       ├── sugutf.aff
│   │       ├── sugutf.dic
│   │       ├── sugutf.sug
│   │       ├── sugutf.wrong
│   │       ├── test.sh
│   │       ├── timelimit.aff
│   │       ├── timelimit.dic
│   │       ├── timelimit.good
│   │       ├── timelimit.wrong
│   │       ├── utf8.aff
│   │       ├── utf8.dic
│   │       ├── utf8.good
│   │       ├── utf8_bom.aff
│   │       ├── utf8_bom.dic
│   │       ├── utf8_bom.good
│   │       ├── utf8_bom2.aff
│   │       ├── utf8_bom2.dic
│   │       ├── utf8_bom2.good
│   │       ├── utf8_nonbmp.aff
│   │       ├── utf8_nonbmp.dic
│   │       ├── utf8_nonbmp.good
│   │       ├── utf8_nonbmp.sug
│   │       ├── utf8_nonbmp.test
│   │       ├── utf8_nonbmp.wrong
│   │       ├── utfcompound.aff
│   │       ├── utfcompound.dic
│   │       ├── utfcompound.good
│   │       ├── utfcompound.wrong
│   │       ├── warn.aff
│   │       ├── warn.dic
│   │       ├── warn.good
│   │       ├── wordpair.aff
│   │       ├── wordpair.dic
│   │       ├── wordpair.wrong
│   │       ├── zeroaffix.aff
│   │       ├── zeroaffix.dic
│   │       ├── zeroaffix.good
│   │       └── zeroaffix.morph
│   ├── minizip/
│   │   ├── MiniZip64_Changes.txt
│   │   ├── MiniZip64_info.txt
│   │   ├── crypt.h
│   │   ├── ioapi.c
│   │   ├── ioapi.h
│   │   ├── iowin32.c
│   │   ├── iowin32.h
│   │   ├── mztools.c
│   │   ├── mztools.h
│   │   ├── unzip.c
│   │   ├── unzip.h
│   │   ├── zip.c
│   │   └── zip.h
│   ├── pcre2/
│   │   ├── AUTHORS.md
│   │   ├── BUILD.bazel
│   │   ├── CMakeLists.txt
│   │   ├── COPYING
│   │   ├── ChangeLog
│   │   ├── HACKING
│   │   ├── INSTALL
│   │   ├── LICENCE.md
│   │   ├── MODULE.bazel
│   │   ├── Makefile.am
│   │   ├── Makefile.in
│   │   ├── NEWS
│   │   ├── NON-AUTOTOOLS-BUILD
│   │   ├── README
│   │   ├── RunGrepTest
│   │   ├── RunGrepTest.bat
│   │   ├── RunTest
│   │   ├── RunTest.bat
│   │   ├── SECURITY.md
│   │   ├── WORKSPACE.bazel
│   │   ├── aclocal.m4
│   │   ├── ar-lib
│   │   ├── build.zig
│   │   ├── cmake/
│   │   │   ├── COPYING-CMAKE-SCRIPTS
│   │   │   ├── FindEditline.cmake
│   │   │   ├── FindReadline.cmake
│   │   │   ├── pcre2-config-version.cmake.in
│   │   │   └── pcre2-config.cmake.in
│   │   ├── compile
│   │   ├── config-cmake.h.in
│   │   ├── config.guess
│   │   ├── config.sub
│   │   ├── configure
│   │   ├── configure.ac
│   │   ├── depcomp
│   │   ├── deps/
│   │   │   └── sljit/
│   │   │       └── sljit_src/
│   │   │           ├── allocator_src/
│   │   │           │   ├── sljitExecAllocatorApple.c
│   │   │           │   ├── sljitExecAllocatorCore.c
│   │   │           │   ├── sljitExecAllocatorFreeBSD.c
│   │   │           │   ├── sljitExecAllocatorPosix.c
│   │   │           │   ├── sljitExecAllocatorWindows.c
│   │   │           │   ├── sljitProtExecAllocatorNetBSD.c
│   │   │           │   ├── sljitProtExecAllocatorPosix.c
│   │   │           │   ├── sljitWXExecAllocatorPosix.c
│   │   │           │   └── sljitWXExecAllocatorWindows.c
│   │   │           ├── sljitConfig.h
│   │   │           ├── sljitConfigCPU.h
│   │   │           ├── sljitConfigInternal.h
│   │   │           ├── sljitLir.c
│   │   │           ├── sljitLir.h
│   │   │           ├── sljitNativeARM_32.c
│   │   │           ├── sljitNativeARM_64.c
│   │   │           ├── sljitNativeARM_T2_32.c
│   │   │           ├── sljitNativeLOONGARCH_64.c
│   │   │           ├── sljitNativeMIPS_32.c
│   │   │           ├── sljitNativeMIPS_64.c
│   │   │           ├── sljitNativeMIPS_common.c
│   │   │           ├── sljitNativePPC_32.c
│   │   │           ├── sljitNativePPC_64.c
│   │   │           ├── sljitNativePPC_common.c
│   │   │           ├── sljitNativeRISCV_32.c
│   │   │           ├── sljitNativeRISCV_64.c
│   │   │           ├── sljitNativeRISCV_common.c
│   │   │           ├── sljitNativeS390X.c
│   │   │           ├── sljitNativeX86_32.c
│   │   │           ├── sljitNativeX86_64.c
│   │   │           ├── sljitNativeX86_common.c
│   │   │           ├── sljitSerialize.c
│   │   │           └── sljitUtils.c
│   │   ├── doc/
│   │   │   ├── html/
│   │   │   │   ├── NON-AUTOTOOLS-BUILD.txt
│   │   │   │   ├── README.txt
│   │   │   │   ├── index.html
│   │   │   │   ├── pcre2-config.html
│   │   │   │   ├── pcre2.html
│   │   │   │   ├── pcre2_callout_enumerate.html
│   │   │   │   ├── pcre2_code_copy.html
│   │   │   │   ├── pcre2_code_copy_with_tables.html
│   │   │   │   ├── pcre2_code_free.html
│   │   │   │   ├── pcre2_compile.html
│   │   │   │   ├── pcre2_compile_context_copy.html
│   │   │   │   ├── pcre2_compile_context_create.html
│   │   │   │   ├── pcre2_compile_context_free.html
│   │   │   │   ├── pcre2_config.html
│   │   │   │   ├── pcre2_convert_context_copy.html
│   │   │   │   ├── pcre2_convert_context_create.html
│   │   │   │   ├── pcre2_convert_context_free.html
│   │   │   │   ├── pcre2_converted_pattern_free.html
│   │   │   │   ├── pcre2_dfa_match.html
│   │   │   │   ├── pcre2_general_context_copy.html
│   │   │   │   ├── pcre2_general_context_create.html
│   │   │   │   ├── pcre2_general_context_free.html
│   │   │   │   ├── pcre2_get_error_message.html
│   │   │   │   ├── pcre2_get_mark.html
│   │   │   │   ├── pcre2_get_match_data_heapframes_size.html
│   │   │   │   ├── pcre2_get_match_data_size.html
│   │   │   │   ├── pcre2_get_ovector_count.html
│   │   │   │   ├── pcre2_get_ovector_pointer.html
│   │   │   │   ├── pcre2_get_startchar.html
│   │   │   │   ├── pcre2_jit_compile.html
│   │   │   │   ├── pcre2_jit_free_unused_memory.html
│   │   │   │   ├── pcre2_jit_match.html
│   │   │   │   ├── pcre2_jit_stack_assign.html
│   │   │   │   ├── pcre2_jit_stack_create.html
│   │   │   │   ├── pcre2_jit_stack_free.html
│   │   │   │   ├── pcre2_maketables.html
│   │   │   │   ├── pcre2_maketables_free.html
│   │   │   │   ├── pcre2_match.html
│   │   │   │   ├── pcre2_match_context_copy.html
│   │   │   │   ├── pcre2_match_context_create.html
│   │   │   │   ├── pcre2_match_context_free.html
│   │   │   │   ├── pcre2_match_data_create.html
│   │   │   │   ├── pcre2_match_data_create_from_pattern.html
│   │   │   │   ├── pcre2_match_data_free.html
│   │   │   │   ├── pcre2_pattern_convert.html
│   │   │   │   ├── pcre2_pattern_info.html
│   │   │   │   ├── pcre2_serialize_decode.html
│   │   │   │   ├── pcre2_serialize_encode.html
│   │   │   │   ├── pcre2_serialize_free.html
│   │   │   │   ├── pcre2_serialize_get_number_of_codes.html
│   │   │   │   ├── pcre2_set_bsr.html
│   │   │   │   ├── pcre2_set_callout.html
│   │   │   │   ├── pcre2_set_character_tables.html
│   │   │   │   ├── pcre2_set_compile_extra_options.html
│   │   │   │   ├── pcre2_set_compile_recursion_guard.html
│   │   │   │   ├── pcre2_set_depth_limit.html
│   │   │   │   ├── pcre2_set_glob_escape.html
│   │   │   │   ├── pcre2_set_glob_separator.html
│   │   │   │   ├── pcre2_set_heap_limit.html
│   │   │   │   ├── pcre2_set_match_limit.html
│   │   │   │   ├── pcre2_set_max_pattern_compiled_length.html
│   │   │   │   ├── pcre2_set_max_pattern_length.html
│   │   │   │   ├── pcre2_set_max_varlookbehind.html
│   │   │   │   ├── pcre2_set_newline.html
│   │   │   │   ├── pcre2_set_offset_limit.html
│   │   │   │   ├── pcre2_set_optimize.html
│   │   │   │   ├── pcre2_set_parens_nest_limit.html
│   │   │   │   ├── pcre2_set_recursion_limit.html
│   │   │   │   ├── pcre2_set_recursion_memory_management.html
│   │   │   │   ├── pcre2_set_substitute_callout.html
│   │   │   │   ├── pcre2_set_substitute_case_callout.html
│   │   │   │   ├── pcre2_substitute.html
│   │   │   │   ├── pcre2_substring_copy_byname.html
│   │   │   │   ├── pcre2_substring_copy_bynumber.html
│   │   │   │   ├── pcre2_substring_free.html
│   │   │   │   ├── pcre2_substring_get_byname.html
│   │   │   │   ├── pcre2_substring_get_bynumber.html
│   │   │   │   ├── pcre2_substring_length_byname.html
│   │   │   │   ├── pcre2_substring_length_bynumber.html
│   │   │   │   ├── pcre2_substring_list_free.html
│   │   │   │   ├── pcre2_substring_list_get.html
│   │   │   │   ├── pcre2_substring_nametable_scan.html
│   │   │   │   ├── pcre2_substring_number_from_name.html
│   │   │   │   ├── pcre2api.html
│   │   │   │   ├── pcre2build.html
│   │   │   │   ├── pcre2callout.html
│   │   │   │   ├── pcre2compat.html
│   │   │   │   ├── pcre2convert.html
│   │   │   │   ├── pcre2demo.html
│   │   │   │   ├── pcre2grep.html
│   │   │   │   ├── pcre2jit.html
│   │   │   │   ├── pcre2limits.html
│   │   │   │   ├── pcre2matching.html
│   │   │   │   ├── pcre2partial.html
│   │   │   │   ├── pcre2pattern.html
│   │   │   │   ├── pcre2perform.html
│   │   │   │   ├── pcre2posix.html
│   │   │   │   ├── pcre2sample.html
│   │   │   │   ├── pcre2serialize.html
│   │   │   │   ├── pcre2syntax.html
│   │   │   │   ├── pcre2test.html
│   │   │   │   └── pcre2unicode.html
│   │   │   ├── pcre2-config.1
│   │   │   ├── pcre2-config.txt
│   │   │   ├── pcre2.3
│   │   │   ├── pcre2.txt
│   │   │   ├── pcre2_callout_enumerate.3
│   │   │   ├── pcre2_code_copy.3
│   │   │   ├── pcre2_code_copy_with_tables.3
│   │   │   ├── pcre2_code_free.3
│   │   │   ├── pcre2_compile.3
│   │   │   ├── pcre2_compile_context_copy.3
│   │   │   ├── pcre2_compile_context_create.3
│   │   │   ├── pcre2_compile_context_free.3
│   │   │   ├── pcre2_config.3
│   │   │   ├── pcre2_convert_context_copy.3
│   │   │   ├── pcre2_convert_context_create.3
│   │   │   ├── pcre2_convert_context_free.3
│   │   │   ├── pcre2_converted_pattern_free.3
│   │   │   ├── pcre2_dfa_match.3
│   │   │   ├── pcre2_general_context_copy.3
│   │   │   ├── pcre2_general_context_create.3
│   │   │   ├── pcre2_general_context_free.3
│   │   │   ├── pcre2_get_error_message.3
│   │   │   ├── pcre2_get_mark.3
│   │   │   ├── pcre2_get_match_data_heapframes_size.3
│   │   │   ├── pcre2_get_match_data_size.3
│   │   │   ├── pcre2_get_ovector_count.3
│   │   │   ├── pcre2_get_ovector_pointer.3
│   │   │   ├── pcre2_get_startchar.3
│   │   │   ├── pcre2_jit_compile.3
│   │   │   ├── pcre2_jit_free_unused_memory.3
│   │   │   ├── pcre2_jit_match.3
│   │   │   ├── pcre2_jit_stack_assign.3
│   │   │   ├── pcre2_jit_stack_create.3
│   │   │   ├── pcre2_jit_stack_free.3
│   │   │   ├── pcre2_maketables.3
│   │   │   ├── pcre2_maketables_free.3
│   │   │   ├── pcre2_match.3
│   │   │   ├── pcre2_match_context_copy.3
│   │   │   ├── pcre2_match_context_create.3
│   │   │   ├── pcre2_match_context_free.3
│   │   │   ├── pcre2_match_data_create.3
│   │   │   ├── pcre2_match_data_create_from_pattern.3
│   │   │   ├── pcre2_match_data_free.3
│   │   │   ├── pcre2_pattern_convert.3
│   │   │   ├── pcre2_pattern_info.3
│   │   │   ├── pcre2_serialize_decode.3
│   │   │   ├── pcre2_serialize_encode.3
│   │   │   ├── pcre2_serialize_free.3
│   │   │   ├── pcre2_serialize_get_number_of_codes.3
│   │   │   ├── pcre2_set_bsr.3
│   │   │   ├── pcre2_set_callout.3
│   │   │   ├── pcre2_set_character_tables.3
│   │   │   ├── pcre2_set_compile_extra_options.3
│   │   │   ├── pcre2_set_compile_recursion_guard.3
│   │   │   ├── pcre2_set_depth_limit.3
│   │   │   ├── pcre2_set_glob_escape.3
│   │   │   ├── pcre2_set_glob_separator.3
│   │   │   ├── pcre2_set_heap_limit.3
│   │   │   ├── pcre2_set_match_limit.3
│   │   │   ├── pcre2_set_max_pattern_compiled_length.3
│   │   │   ├── pcre2_set_max_pattern_length.3
│   │   │   ├── pcre2_set_max_varlookbehind.3
│   │   │   ├── pcre2_set_newline.3
│   │   │   ├── pcre2_set_offset_limit.3
│   │   │   ├── pcre2_set_optimize.3
│   │   │   ├── pcre2_set_parens_nest_limit.3
│   │   │   ├── pcre2_set_recursion_limit.3
│   │   │   ├── pcre2_set_recursion_memory_management.3
│   │   │   ├── pcre2_set_substitute_callout.3
│   │   │   ├── pcre2_set_substitute_case_callout.3
│   │   │   ├── pcre2_substitute.3
│   │   │   ├── pcre2_substring_copy_byname.3
│   │   │   ├── pcre2_substring_copy_bynumber.3
│   │   │   ├── pcre2_substring_free.3
│   │   │   ├── pcre2_substring_get_byname.3
│   │   │   ├── pcre2_substring_get_bynumber.3
│   │   │   ├── pcre2_substring_length_byname.3
│   │   │   ├── pcre2_substring_length_bynumber.3
│   │   │   ├── pcre2_substring_list_free.3
│   │   │   ├── pcre2_substring_list_get.3
│   │   │   ├── pcre2_substring_nametable_scan.3
│   │   │   ├── pcre2_substring_number_from_name.3
│   │   │   ├── pcre2api.3
│   │   │   ├── pcre2build.3
│   │   │   ├── pcre2callout.3
│   │   │   ├── pcre2compat.3
│   │   │   ├── pcre2convert.3
│   │   │   ├── pcre2demo.3
│   │   │   ├── pcre2grep.1
│   │   │   ├── pcre2grep.txt
│   │   │   ├── pcre2jit.3
│   │   │   ├── pcre2limits.3
│   │   │   ├── pcre2matching.3
│   │   │   ├── pcre2partial.3
│   │   │   ├── pcre2pattern.3
│   │   │   ├── pcre2perform.3
│   │   │   ├── pcre2posix.3
│   │   │   ├── pcre2sample.3
│   │   │   ├── pcre2serialize.3
│   │   │   ├── pcre2syntax.3
│   │   │   ├── pcre2test.1
│   │   │   ├── pcre2test.txt
│   │   │   └── pcre2unicode.3
│   │   ├── install-sh
│   │   ├── libpcre2-16.pc.in
│   │   ├── libpcre2-32.pc.in
│   │   ├── libpcre2-8.pc.in
│   │   ├── libpcre2-posix.pc.in
│   │   ├── ltmain.sh
│   │   ├── m4/
│   │   │   ├── ax_pthread.m4
│   │   │   ├── libtool.m4
│   │   │   ├── ltoptions.m4
│   │   │   ├── ltsugar.m4
│   │   │   ├── ltversion.m4
│   │   │   ├── lt~obsolete.m4
│   │   │   └── pcre2_visibility.m4
│   │   ├── missing
│   │   ├── pcre2-config.in
│   │   ├── perltest.sh
│   │   ├── src/
│   │   │   ├── config.h.generic
│   │   │   ├── config.h.in
│   │   │   ├── pcre2.h.generic
│   │   │   ├── pcre2.h.in
│   │   │   ├── pcre2_auto_possess.c
│   │   │   ├── pcre2_chartables.c
│   │   │   ├── pcre2_chartables.c.dist
│   │   │   ├── pcre2_chkdint.c
│   │   │   ├── pcre2_compile.c
│   │   │   ├── pcre2_compile.h
│   │   │   ├── pcre2_compile_class.c
│   │   │   ├── pcre2_config.c
│   │   │   ├── pcre2_context.c
│   │   │   ├── pcre2_convert.c
│   │   │   ├── pcre2_dfa_match.c
│   │   │   ├── pcre2_dftables.c
│   │   │   ├── pcre2_error.c
│   │   │   ├── pcre2_extuni.c
│   │   │   ├── pcre2_find_bracket.c
│   │   │   ├── pcre2_fuzzsupport.c
│   │   │   ├── pcre2_internal.h
│   │   │   ├── pcre2_intmodedep.h
│   │   │   ├── pcre2_jit_char_inc.h
│   │   │   ├── pcre2_jit_compile.c
│   │   │   ├── pcre2_jit_match.c
│   │   │   ├── pcre2_jit_misc.c
│   │   │   ├── pcre2_jit_neon_inc.h
│   │   │   ├── pcre2_jit_simd_inc.h
│   │   │   ├── pcre2_jit_test.c
│   │   │   ├── pcre2_maketables.c
│   │   │   ├── pcre2_match.c
│   │   │   ├── pcre2_match_data.c
│   │   │   ├── pcre2_newline.c
│   │   │   ├── pcre2_ord2utf.c
│   │   │   ├── pcre2_pattern_info.c
│   │   │   ├── pcre2_printint.c
│   │   │   ├── pcre2_script_run.c
│   │   │   ├── pcre2_serialize.c
│   │   │   ├── pcre2_string_utils.c
│   │   │   ├── pcre2_study.c
│   │   │   ├── pcre2_substitute.c
│   │   │   ├── pcre2_substring.c
│   │   │   ├── pcre2_tables.c
│   │   │   ├── pcre2_ucd.c
│   │   │   ├── pcre2_ucp.h
│   │   │   ├── pcre2_ucptables.c
│   │   │   ├── pcre2_util.h
│   │   │   ├── pcre2_valid_utf.c
│   │   │   ├── pcre2_xclass.c
│   │   │   ├── pcre2demo.c
│   │   │   ├── pcre2grep.c
│   │   │   ├── pcre2posix.c
│   │   │   ├── pcre2posix.h
│   │   │   ├── pcre2posix_test.c
│   │   │   └── pcre2test.c
│   │   ├── test-driver
│   │   ├── testdata/
│   │   │   ├── grepbinary
│   │   │   ├── grepfilelist
│   │   │   ├── grepinput
│   │   │   ├── grepinput3
│   │   │   ├── grepinput8
│   │   │   ├── grepinputBad8
│   │   │   ├── grepinputBad8_Trail
│   │   │   ├── grepinputC.bz2
│   │   │   ├── grepinputM
│   │   │   ├── grepinputUN
│   │   │   ├── grepinputv
│   │   │   ├── grepinputx
│   │   │   ├── greplist
│   │   │   ├── grepnot.bz2
│   │   │   ├── grepoutput
│   │   │   ├── grepoutput8
│   │   │   ├── grepoutputC
│   │   │   ├── grepoutputCN
│   │   │   ├── grepoutputCNU
│   │   │   ├── grepoutputCU
│   │   │   ├── grepoutputCbz2
│   │   │   ├── grepoutputCgz
│   │   │   ├── grepoutputN
│   │   │   ├── grepoutputUN
│   │   │   ├── greppatN4
│   │   │   ├── testbtables
│   │   │   ├── testinput1
│   │   │   ├── testinput10
│   │   │   ├── testinput11
│   │   │   ├── testinput12
│   │   │   ├── testinput13
│   │   │   ├── testinput14
│   │   │   ├── testinput15
│   │   │   ├── testinput16
│   │   │   ├── testinput17
│   │   │   ├── testinput18
│   │   │   ├── testinput19
│   │   │   ├── testinput2
│   │   │   ├── testinput20
│   │   │   ├── testinput21
│   │   │   ├── testinput22
│   │   │   ├── testinput23
│   │   │   ├── testinput24
│   │   │   ├── testinput25
│   │   │   ├── testinput26
│   │   │   ├── testinput27
│   │   │   ├── testinput3
│   │   │   ├── testinput4
│   │   │   ├── testinput5
│   │   │   ├── testinput6
│   │   │   ├── testinput7
│   │   │   ├── testinput8
│   │   │   ├── testinput9
│   │   │   ├── testinputEBC
│   │   │   ├── testinputheap
│   │   │   ├── testoutput1
│   │   │   ├── testoutput10
│   │   │   ├── testoutput11-16
│   │   │   ├── testoutput11-32
│   │   │   ├── testoutput12-16
│   │   │   ├── testoutput12-32
│   │   │   ├── testoutput13
│   │   │   ├── testoutput14-16
│   │   │   ├── testoutput14-32
│   │   │   ├── testoutput14-8
│   │   │   ├── testoutput15
│   │   │   ├── testoutput16
│   │   │   ├── testoutput17
│   │   │   ├── testoutput18
│   │   │   ├── testoutput19
│   │   │   ├── testoutput2
│   │   │   ├── testoutput20
│   │   │   ├── testoutput21
│   │   │   ├── testoutput22-16
│   │   │   ├── testoutput22-32
│   │   │   ├── testoutput22-8
│   │   │   ├── testoutput23
│   │   │   ├── testoutput24
│   │   │   ├── testoutput25
│   │   │   ├── testoutput26
│   │   │   ├── testoutput27
│   │   │   ├── testoutput3
│   │   │   ├── testoutput3A
│   │   │   ├── testoutput3B
│   │   │   ├── testoutput4
│   │   │   ├── testoutput5
│   │   │   ├── testoutput6
│   │   │   ├── testoutput7
│   │   │   ├── testoutput8-16-2
│   │   │   ├── testoutput8-16-3
│   │   │   ├── testoutput8-16-4
│   │   │   ├── testoutput8-32-2
│   │   │   ├── testoutput8-32-3
│   │   │   ├── testoutput8-32-4
│   │   │   ├── testoutput8-8-2
│   │   │   ├── testoutput8-8-3
│   │   │   ├── testoutput8-8-4
│   │   │   ├── testoutput9
│   │   │   ├── testoutputEBC
│   │   │   ├── testoutputheap-16
│   │   │   ├── testoutputheap-32
│   │   │   ├── testoutputheap-8
│   │   │   ├── valgrind-jit.supp
│   │   │   ├── wintestinput3
│   │   │   └── wintestoutput3
│   │   └── vms/
│   │       ├── configure.com
│   │       ├── openvms_readme.txt
│   │       ├── pcre2.h_patch
│   │       └── stdint.h
│   └── zlib/
│       ├── CMakeLists.txt
│       ├── ChangeLog
│       ├── FAQ
│       ├── INDEX
│       ├── LICENSE
│       ├── Makefile
│       ├── Makefile.in
│       ├── README
│       ├── adler32.c
│       ├── amiga/
│       │   ├── Makefile.pup
│       │   └── Makefile.sas
│       ├── compress.c
│       ├── configure
│       ├── contrib/
│       │   ├── README.contrib
│       │   ├── ada/
│       │   │   ├── buffer_demo.adb
│       │   │   ├── mtest.adb
│       │   │   ├── read.adb
│       │   │   ├── readme.txt
│       │   │   ├── test.adb
│       │   │   ├── zlib-streams.adb
│       │   │   ├── zlib-streams.ads
│       │   │   ├── zlib-thin.adb
│       │   │   ├── zlib-thin.ads
│       │   │   ├── zlib.adb
│       │   │   ├── zlib.ads
│       │   │   └── zlib.gpr
│       │   ├── blast/
│       │   │   ├── Makefile
│       │   │   ├── README
│       │   │   ├── blast.c
│       │   │   ├── blast.h
│       │   │   ├── test.pk
│       │   │   └── test.txt
│       │   ├── delphi/
│       │   │   ├── ZLib.pas
│       │   │   ├── ZLibConst.pas
│       │   │   ├── readme.txt
│       │   │   └── zlibd32.mak
│       │   ├── dotzlib/
│       │   │   ├── DotZLib/
│       │   │   │   ├── AssemblyInfo.cs
│       │   │   │   ├── ChecksumImpl.cs
│       │   │   │   ├── CircularBuffer.cs
│       │   │   │   ├── CodecBase.cs
│       │   │   │   ├── Deflater.cs
│       │   │   │   ├── DotZLib.cs
│       │   │   │   ├── DotZLib.csproj
│       │   │   │   ├── GZipStream.cs
│       │   │   │   ├── Inflater.cs
│       │   │   │   └── UnitTests.cs
│       │   │   ├── DotZLib.chm
│       │   │   ├── LICENSE_1_0.txt
│       │   │   └── readme.txt
│       │   ├── gcc_gvmat64/
│       │   │   └── gvmat64.S
│       │   ├── infback9/
│       │   │   ├── README
│       │   │   ├── infback9.c
│       │   │   ├── infback9.h
│       │   │   ├── inffix9.h
│       │   │   ├── inflate9.h
│       │   │   ├── inftree9.c
│       │   │   └── inftree9.h
│       │   ├── iostream/
│       │   │   ├── test.cpp
│       │   │   ├── zfstream.cpp
│       │   │   └── zfstream.h
│       │   ├── iostream2/
│       │   │   ├── zstream.h
│       │   │   └── zstream_test.cpp
│       │   ├── iostream3/
│       │   │   ├── README
│       │   │   ├── TODO
│       │   │   ├── test.cc
│       │   │   ├── zfstream.cc
│       │   │   └── zfstream.h
│       │   ├── minizip/
│       │   │   ├── Makefile
│       │   │   ├── Makefile.am
│       │   │   ├── MiniZip64_Changes.txt
│       │   │   ├── MiniZip64_info.txt
│       │   │   ├── configure.ac
│       │   │   ├── crypt.h
│       │   │   ├── ioapi.c
│       │   │   ├── ioapi.h
│       │   │   ├── iowin32.c
│       │   │   ├── iowin32.h
│       │   │   ├── make_vms.com
│       │   │   ├── miniunz.c
│       │   │   ├── miniunzip.1
│       │   │   ├── minizip.1
│       │   │   ├── minizip.c
│       │   │   ├── minizip.pc.in
│       │   │   ├── mztools.c
│       │   │   ├── mztools.h
│       │   │   ├── unzip.c
│       │   │   ├── unzip.h
│       │   │   ├── zip.c
│       │   │   └── zip.h
│       │   ├── nuget/
│       │   │   └── nuget.csproj
│       │   ├── pascal/
│       │   │   ├── example.pas
│       │   │   ├── readme.txt
│       │   │   ├── zlibd32.mak
│       │   │   └── zlibpas.pas
│       │   ├── puff/
│       │   │   ├── Makefile
│       │   │   ├── README
│       │   │   ├── puff.c
│       │   │   ├── puff.h
│       │   │   ├── pufftest.c
│       │   │   └── zeros.raw
│       │   ├── testzlib/
│       │   │   ├── testzlib.c
│       │   │   └── testzlib.txt
│       │   ├── untgz/
│       │   │   ├── Makefile
│       │   │   ├── Makefile.msc
│       │   │   └── untgz.c
│       │   └── vstudio/
│       │       ├── readme.txt
│       │       ├── vc10/
│       │       │   ├── miniunz.vcxproj
│       │       │   ├── miniunz.vcxproj.filters
│       │       │   ├── minizip.vcxproj
│       │       │   ├── minizip.vcxproj.filters
│       │       │   ├── testzlib.vcxproj
│       │       │   ├── testzlib.vcxproj.filters
│       │       │   ├── testzlibdll.vcxproj
│       │       │   ├── testzlibdll.vcxproj.filters
│       │       │   ├── zlib.rc
│       │       │   ├── zlibstat.vcxproj
│       │       │   ├── zlibstat.vcxproj.filters
│       │       │   ├── zlibvc.vcxproj
│       │       │   └── zlibvc.vcxproj.filters
│       │       ├── vc11/
│       │       │   ├── miniunz.vcxproj
│       │       │   ├── minizip.vcxproj
│       │       │   ├── testzlib.vcxproj
│       │       │   ├── testzlibdll.vcxproj
│       │       │   ├── zlib.rc
│       │       │   ├── zlibstat.vcxproj
│       │       │   └── zlibvc.vcxproj
│       │       ├── vc12/
│       │       │   ├── miniunz.vcxproj
│       │       │   ├── minizip.vcxproj
│       │       │   ├── testzlib.vcxproj
│       │       │   ├── testzlibdll.vcxproj
│       │       │   ├── zlib.rc
│       │       │   ├── zlibstat.vcxproj
│       │       │   └── zlibvc.vcxproj
│       │       ├── vc14/
│       │       │   ├── miniunz.vcxproj
│       │       │   ├── minizip.vcxproj
│       │       │   ├── testzlib.vcxproj
│       │       │   ├── testzlibdll.vcxproj
│       │       │   ├── zlib.rc
│       │       │   ├── zlibstat.vcxproj
│       │       │   └── zlibvc.vcxproj
│       │       ├── vc17/
│       │       │   ├── miniunz.vcxproj
│       │       │   ├── minizip.vcxproj
│       │       │   ├── testzlib.vcxproj
│       │       │   ├── testzlibdll.vcxproj
│       │       │   ├── zlib.rc
│       │       │   ├── zlibstat.vcxproj
│       │       │   └── zlibvc.vcxproj
│       │       └── vc9/
│       │           └── zlib.rc
│       ├── crc32.c
│       ├── crc32.h
│       ├── deflate.c
│       ├── deflate.h
│       ├── doc/
│       │   ├── algorithm.txt
│       │   ├── rfc1950.txt
│       │   ├── rfc1951.txt
│       │   ├── rfc1952.txt
│       │   └── txtvsbin.txt
│       ├── examples/
│       │   ├── README.examples
│       │   ├── enough.c
│       │   ├── fitblk.c
│       │   ├── gun.c
│       │   ├── gzappend.c
│       │   ├── gzjoin.c
│       │   ├── gzlog.c
│       │   ├── gzlog.h
│       │   ├── gznorm.c
│       │   ├── zlib_how.html
│       │   ├── zpipe.c
│       │   ├── zran.c
│       │   └── zran.h
│       ├── gzclose.c
│       ├── gzguts.h
│       ├── gzlib.c
│       ├── gzread.c
│       ├── gzwrite.c
│       ├── infback.c
│       ├── inffast.c
│       ├── inffast.h
│       ├── inffixed.h
│       ├── inflate.c
│       ├── inflate.h
│       ├── inftrees.c
│       ├── inftrees.h
│       ├── make_vms.com
│       ├── msdos/
│       │   ├── Makefile.bor
│       │   ├── Makefile.dj2
│       │   ├── Makefile.emx
│       │   ├── Makefile.msc
│       │   └── Makefile.tc
│       ├── nintendods/
│       │   ├── Makefile
│       │   └── README
│       ├── old/
│       │   ├── Makefile.emx
│       │   ├── Makefile.riscos
│       │   ├── README
│       │   ├── descrip.mms
│       │   ├── os2/
│       │   │   └── Makefile.os2
│       │   └── visual-basic.txt
│       ├── os400/
│       │   ├── README400
│       │   ├── bndsrc
│       │   ├── make.sh
│       │   └── zlib.inc
│       ├── qnx/
│       │   └── package.qpg
│       ├── test/
│       │   ├── example.c
│       │   ├── infcover.c
│       │   └── minigzip.c
│       ├── treebuild.xml
│       ├── trees.c
│       ├── trees.h
│       ├── uncompr.c
│       ├── watcom/
│       │   ├── watcom_f.mak
│       │   └── watcom_l.mak
│       ├── win32/
│       │   ├── DLL_FAQ.txt
│       │   ├── Makefile.bor
│       │   ├── Makefile.gcc
│       │   ├── Makefile.msc
│       │   ├── README-WIN32.txt
│       │   ├── VisualC.txt
│       │   └── zlib1.rc
│       ├── zconf.h
│       ├── zconf.h.cmakein
│       ├── zconf.h.in
│       ├── zlib.3
│       ├── zlib.h
│       ├── zlib.pc.cmakein
│       ├── zlib.pc.in
│       ├── zutil.c
│       └── zutil.h
├── CMakeLists.txt
├── COPYING.txt
├── ChangeLog.txt
├── README.md
├── ci_scripts/
│   ├── PKGBUILD
│   ├── gddeploy.py
│   ├── newgddeploy.py
│   ├── rpath_adjust.sh
│   └── winget/
│       ├── Sigil-Ebook.Sigil.installer.yaml
│       ├── Sigil-Ebook.Sigil.locale.en-US.yaml
│       ├── Sigil-Ebook.Sigil.yaml
│       └── build.ps1
├── cmake_extras/
│   ├── FindMiniZip.cmake
│   ├── FindPackageHandleStandardArgs.cmake
│   ├── FindPackageMessage.cmake
│   └── FindPython3MacFramework.cmake
├── docker-compose.yml
├── docs/
│   ├── Building_A_Relocatable_Python_3.14_Framework_on_MacOSX.txt
│   ├── Building_PySide6_for_Qt6_on_MacOSX.txt
│   ├── Building_Qt6_From_Source_on_MacOSX.txt
│   ├── Building_Qt_for_Sigil_on_Windows.html
│   ├── Building_Qt_for_Sigil_on_Windows.md
│   ├── Building_Sigil_AppImage.md
│   ├── Building_Sigil_On_MacOSX_With_Qt6.txt
│   ├── Building_Sigil_on_Windows.html
│   ├── Building_Sigil_on_Windows.md
│   ├── Building_Sigil_on_Windows_with_Qt6.md
│   ├── Building_on_Linux.md
│   ├── Building_on_Linux_older.md
│   ├── CodeStyle.md
│   ├── Linux_Virtual_Plugin_Environment.md
│   ├── Qt_Patches/
│   │   ├── prev/
│   │   │   ├── CVE-2023-43114-6.5-qtbase.patch
│   │   │   ├── qt515.9-fix_cve-2023-24607-qtbase.patch
│   │   │   ├── qt515.9_fix_h6_insertParagrahph.patch
│   │   │   ├── qt515.9_fix_missing_macos_menubar.patch
│   │   │   ├── qt515.9_official_fix_qtabbar_segfault.patch
│   │   │   ├── qt650_avoid_qtabbar_segfault.patch
│   │   │   ├── qt650_fix_h6_insertParagraph.patch
│   │   │   ├── qt650_fix_missing_macos_menubar.patch
│   │   │   ├── qt650_post_install_macos_ignore_bad_cups_cmake_find_failure.patch
│   │   │   ├── qt652_CVE-2023-38197-qtbase-6.5.diff
│   │   │   ├── qt652_fix_h6_insertParagraph.patch
│   │   │   ├── qt652_fix_missing_macos_menubar.patch
│   │   │   ├── qt652_not_needed_CVE-2023-32573-qtsvg-6.5.diff
│   │   │   ├── qt652_not_needed_CVE-2023-32762-qtbase-6.5.diff
│   │   │   ├── qt652_not_needed_CVE-2023-32763-qtbase-6.5.diff
│   │   │   ├── qt652_not_needed_CVE-2023-33285-qtbase-6.5.diff
│   │   │   ├── qt652_not_needed_CVE-2023-34410-qtbase-6.5.diff
│   │   │   ├── qt652_not_needed_CVE-2023-37369-qtbase-6.5.diff
│   │   │   ├── qt652_not_needed_qt651_addl_cve_fixes_qtbase.patch
│   │   │   ├── qt652_post_install_macos_ignore_bad_cups_cmake_find_failure.patch
│   │   │   ├── qt652_win-only_fix-identical-edid-qtbase-6.5.patch
│   │   │   ├── qt653_fix_transient_children-qtbase.patch
│   │   │   ├── qt662_fix_qtreeview_perf_issue_0b474e1.diff
│   │   │   ├── qt672_post_install_macos_ignore_bad_cups_cmake_find_failure.patch
│   │   │   ├── qt692_9dd5105_fix.patch
│   │   │   ├── qt692_ddcd304_reverse_me.patch
│   │   │   ├── qt693_fix_mesa_issues.patch
│   │   │   └── qt693_memory_leak_fix_886ff03.patch
│   │   ├── qt6102_fix_qwindows_dialogs.patch
│   │   ├── qt672_fix_h6_insertParagraph.patch
│   │   ├── qt672_fix_missing_macos_menubar.patch
│   │   ├── qt672_freetype_add_brotli_for_woff2.patch
│   │   └── qt682_post_install_macos_ignore_bad_cups_cmake_find_failure.patch
│   ├── ReleaseChecklist.md
│   ├── Sigil_Plugin_Framework_rev15.epub
│   ├── Translating.md
│   ├── plugin-reqs.txt
│   └── sigil_build.txt
├── installer/
│   ├── Sigil.iss
│   └── win_installer_note.txt
├── internal/
│   ├── about.md
│   ├── exec_wrapper/
│   │   ├── CMakeLists.txt
│   │   └── exec.c
│   └── gumbo/
│       ├── CHANGES.md
│       ├── CMakeLists.txt
│       ├── CONTRIBUTING.md
│       ├── COPYING
│       ├── DEBUGGING.md
│       ├── README.md
│       ├── Thanks
│       ├── attribute.c
│       ├── attribute.h
│       ├── char_ref.c
│       ├── char_ref.h
│       ├── char_ref.rl
│       ├── error.c
│       ├── error.h
│       ├── foreign_attrs.c
│       ├── gumbo.h
│       ├── gumbo_edit.c
│       ├── gumbo_edit.h
│       ├── include/
│       │   └── strings.h
│       ├── insertion_mode.h
│       ├── parser.c
│       ├── parser.h
│       ├── replacement.h
│       ├── string_buffer.c
│       ├── string_buffer.h
│       ├── string_piece.c
│       ├── string_piece.h
│       ├── svg_attrs.c
│       ├── svg_tags.c
│       ├── tag.c
│       ├── tag.in
│       ├── tag_enum.h
│       ├── tag_perf.h
│       ├── tag_sizes.h
│       ├── tag_strings.h
│       ├── token_type.h
│       ├── tokenizer.c
│       ├── tokenizer.h
│       ├── tokenizer_states.h
│       ├── utf8.c
│       ├── utf8.h
│       ├── util.c
│       ├── util.h
│       ├── vector.c
│       └── vector.h
├── src/
│   ├── BookManipulation/
│   │   ├── Book.cpp
│   │   ├── Book.h
│   │   ├── BookReports.cpp
│   │   ├── BookReports.h
│   │   ├── CleanSource.cpp
│   │   ├── CleanSource.h
│   │   ├── FolderKeeper.cpp
│   │   ├── FolderKeeper.h
│   │   ├── HTMLMetadata.cpp
│   │   ├── HTMLMetadata.h
│   │   ├── Headings.cpp
│   │   ├── Headings.h
│   │   ├── Index.cpp
│   │   ├── Index.h
│   │   ├── XhtmlDoc.cpp
│   │   └── XhtmlDoc.h
│   ├── CMakeLists.txt
│   ├── Dialogs/
│   │   ├── About.cpp
│   │   ├── About.h
│   │   ├── AddAutomatePlugin.cpp
│   │   ├── AddAutomatePlugin.h
│   │   ├── AddAutomateTool.cpp
│   │   ├── AddAutomateTool.h
│   │   ├── AddClips.cpp
│   │   ├── AddClips.h
│   │   ├── AddMetadata.cpp
│   │   ├── AddMetadata.h
│   │   ├── AddRoles.cpp
│   │   ├── AddRoles.h
│   │   ├── AddSemantics.cpp
│   │   ├── AddSemantics.h
│   │   ├── AutomateEditor.cpp
│   │   ├── AutomateEditor.h
│   │   ├── CPCompare.cpp
│   │   ├── CPCompare.h
│   │   ├── ChgViewer.cpp
│   │   ├── ChgViewer.h
│   │   ├── ClipEditor.cpp
│   │   ├── ClipEditor.h
│   │   ├── ClipboardHistorySelector.cpp
│   │   ├── ClipboardHistorySelector.h
│   │   ├── Controls.cpp
│   │   ├── Controls.h
│   │   ├── CountsReport.cpp
│   │   ├── CountsReport.h
│   │   ├── DeleteFiles.cpp
│   │   ├── DeleteFiles.h
│   │   ├── DeleteStyles.cpp
│   │   ├── DeleteStyles.h
│   │   ├── DryRunReplace.cpp
│   │   ├── DryRunReplace.h
│   │   ├── EditRO.cpp
│   │   ├── EditRO.h
│   │   ├── EditTOC.cpp
│   │   ├── EditTOC.h
│   │   ├── EmptyLayout.cpp
│   │   ├── EmptyLayout.h
│   │   ├── HeadingSelector.cpp
│   │   ├── HeadingSelector.h
│   │   ├── ImageResizeDialog.cpp
│   │   ├── ImageResizeDialog.h
│   │   ├── IndexEditor.cpp
│   │   ├── IndexEditor.h
│   │   ├── Inspector.cpp
│   │   ├── Inspector.h
│   │   ├── LinkJavascripts.cpp
│   │   ├── LinkJavascripts.h
│   │   ├── LinkStylesheets.cpp
│   │   ├── LinkStylesheets.h
│   │   ├── ListSelector.h
│   │   ├── MDViewer.cpp
│   │   ├── MDViewer.h
│   │   ├── ManageAutomation.cpp
│   │   ├── ManageAutomation.h
│   │   ├── ManageRepos.cpp
│   │   ├── ManageRepos.h
│   │   ├── MetaEditor.cpp
│   │   ├── MetaEditor.h
│   │   ├── MetaEditorItemDelegate.cpp
│   │   ├── MetaEditorItemDelegate.h
│   │   ├── OpenWithName.cpp
│   │   ├── OpenWithName.h
│   │   ├── PluginRunner.cpp
│   │   ├── PluginRunner.h
│   │   ├── PreferenceWidgets/
│   │   │   ├── AppearanceWidget.cpp
│   │   │   ├── AppearanceWidget.h
│   │   │   ├── GeneralSettingsWidget.cpp
│   │   │   ├── GeneralSettingsWidget.h
│   │   │   ├── KeyboardShortcutsWidget.cpp
│   │   │   ├── KeyboardShortcutsWidget.h
│   │   │   ├── LanguageWidget.cpp
│   │   │   ├── LanguageWidget.h
│   │   │   ├── PluginWidget.cpp
│   │   │   ├── PluginWidget.h
│   │   │   ├── PreferencesWidget.h
│   │   │   ├── PreserveEntitiesWidget.cpp
│   │   │   ├── PreserveEntitiesWidget.h
│   │   │   ├── SpellCheckWidget.cpp
│   │   │   └── SpellCheckWidget.h
│   │   ├── Preferences.cpp
│   │   ├── Preferences.h
│   │   ├── PreviewFileDialog.cpp
│   │   ├── PreviewFileDialog.h
│   │   ├── PythonFunctionEditor.cpp
│   │   ├── PythonFunctionEditor.h
│   │   ├── RERenamer.cpp
│   │   ├── RERenamer.h
│   │   ├── RETable.cpp
│   │   ├── RETable.h
│   │   ├── RenameTemplate.cpp
│   │   ├── RenameTemplate.h
│   │   ├── ReplacementChooser.cpp
│   │   ├── ReplacementChooser.h
│   │   ├── RepoLog.cpp
│   │   ├── RepoLog.h
│   │   ├── Reports.cpp
│   │   ├── Reports.h
│   │   ├── ReportsWidgets/
│   │   │   ├── AllFilesWidget.cpp
│   │   │   ├── AllFilesWidget.h
│   │   │   ├── CSSFilesWidget.cpp
│   │   │   ├── CSSFilesWidget.h
│   │   │   ├── CharactersInHTMLFilesWidget.cpp
│   │   │   ├── CharactersInHTMLFilesWidget.h
│   │   │   ├── ClassesInHTMLFilesWidget.cpp
│   │   │   ├── ClassesInHTMLFilesWidget.h
│   │   │   ├── HTMLFilesWidget.cpp
│   │   │   ├── HTMLFilesWidget.h
│   │   │   ├── ImageFilesWidget.cpp
│   │   │   ├── ImageFilesWidget.h
│   │   │   ├── LinksWidget.cpp
│   │   │   ├── LinksWidget.h
│   │   │   ├── ReportsWidget.h
│   │   │   ├── StylesInCSSFilesWidget.cpp
│   │   │   └── StylesInCSSFilesWidget.h
│   │   ├── SearchEditor.cpp
│   │   ├── SearchEditor.h
│   │   ├── SearchEditorItemDelegate.cpp
│   │   ├── SearchEditorItemDelegate.h
│   │   ├── SelectCharacter.cpp
│   │   ├── SelectCharacter.h
│   │   ├── SelectCheckpoint.cpp
│   │   ├── SelectCheckpoint.h
│   │   ├── SelectFiles.cpp
│   │   ├── SelectFiles.h
│   │   ├── SelectFolder.cpp
│   │   ├── SelectFolder.h
│   │   ├── SelectHyperlink.cpp
│   │   ├── SelectHyperlink.h
│   │   ├── SelectId.cpp
│   │   ├── SelectId.h
│   │   ├── SelectIndexTitle.cpp
│   │   ├── SelectIndexTitle.h
│   │   ├── SemanticTargetID.cpp
│   │   ├── SemanticTargetID.h
│   │   ├── SourceViewer.cpp
│   │   ├── SourceViewer.h
│   │   ├── SpellcheckEditor.cpp
│   │   ├── SpellcheckEditor.h
│   │   ├── StyledTextDelegate.cpp
│   │   ├── StyledTextDelegate.h
│   │   ├── TreeItem.cpp
│   │   ├── TreeItem.h
│   │   ├── TreeModel.cpp
│   │   ├── TreeModel.h
│   │   ├── ViewAV.cpp
│   │   ├── ViewAV.h
│   │   ├── ViewFont.cpp
│   │   ├── ViewFont.h
│   │   ├── ViewImage.cpp
│   │   └── ViewImage.h
│   ├── EmbedPython/
│   │   ├── DiffRec.h
│   │   ├── EmbeddedPython.cpp
│   │   ├── EmbeddedPython.h
│   │   ├── PyObjectPtr.cpp
│   │   ├── PyObjectPtr.h
│   │   ├── PythonRoutines.cpp
│   │   └── PythonRoutines.h
│   ├── Exporters/
│   │   ├── EncryptionXmlWriter.cpp
│   │   ├── EncryptionXmlWriter.h
│   │   ├── ExportEPUB.cpp
│   │   ├── ExportEPUB.h
│   │   ├── Exporter.h
│   │   ├── ExporterFactory.cpp
│   │   ├── ExporterFactory.h
│   │   ├── NCXWriter.cpp
│   │   ├── NCXWriter.h
│   │   ├── XMLWriter.cpp
│   │   └── XMLWriter.h
│   ├── Form_Files/
│   │   ├── About.ui
│   │   ├── AddAutomatePlugin.ui
│   │   ├── AddAutomateTool.ui
│   │   ├── AddClips.ui
│   │   ├── AddMetadata.ui
│   │   ├── AddRoles.ui
│   │   ├── AddSemantics.ui
│   │   ├── AdjustImage.ui
│   │   ├── AutomateEditor.ui
│   │   ├── ClipEditor.ui
│   │   ├── ClipboardHistorySelector.ui
│   │   ├── Controls.ui
│   │   ├── CountsReport.ui
│   │   ├── DeleteFiles.ui
│   │   ├── DeleteStyles.ui
│   │   ├── DryRunReplace.ui
│   │   ├── EditRO.ui
│   │   ├── EditTOC.ui
│   │   ├── EmptyLayout.ui
│   │   ├── FindReplace.ui
│   │   ├── HeadingSelector.ui
│   │   ├── IndexEditor.ui
│   │   ├── LinkJavascripts.ui
│   │   ├── LinkStylesheets.ui
│   │   ├── MDViewer.ui
│   │   ├── ManageAutomation.ui
│   │   ├── ManageRepos.ui
│   │   ├── MetaEditor.ui
│   │   ├── OpenWithName.ui
│   │   ├── PAppearanceWidget.ui
│   │   ├── PGeneralSettingsWidget.ui
│   │   ├── PKeyboardShortcutsWidget.ui
│   │   ├── PLanguageWidget.ui
│   │   ├── PPluginWidget.ui
│   │   ├── PPreserveEntitiesWidget.ui
│   │   ├── PSpellCheckWidget.ui
│   │   ├── PluginRunner.ui
│   │   ├── Preferences.ui
│   │   ├── RERenamer.ui
│   │   ├── RETable.ui
│   │   ├── RenameTemplate.ui
│   │   ├── ReplacementChooser.ui
│   │   ├── Reports.ui
│   │   ├── ReportsAllFilesWidget.ui
│   │   ├── ReportsCSSFilesWidget.ui
│   │   ├── ReportsCharactersInHTMLFilesWidget.ui
│   │   ├── ReportsClassesInHTMLFilesWidget.ui
│   │   ├── ReportsHTMLFilesWidget.ui
│   │   ├── ReportsImageFilesWidget.ui
│   │   ├── ReportsLinksWidget.ui
│   │   ├── ReportsStylesInCSSFilesWidget.ui
│   │   ├── SearchEditor.ui
│   │   ├── SelectCharacter.ui
│   │   ├── SelectCheckpoint.ui
│   │   ├── SelectFiles.ui
│   │   ├── SelectFolder.ui
│   │   ├── SelectHyperlink.ui
│   │   ├── SelectId.ui
│   │   ├── SelectIndexTitle.ui
│   │   ├── SemanticTargetID.ui
│   │   ├── SpellcheckEditor.ui
│   │   └── main.ui
│   ├── Importers/
│   │   ├── ImportEPUB.cpp
│   │   ├── ImportEPUB.h
│   │   ├── ImportHTML.cpp
│   │   ├── ImportHTML.h
│   │   ├── ImportTXT.cpp
│   │   ├── ImportTXT.h
│   │   ├── Importer.cpp
│   │   ├── Importer.h
│   │   ├── ImporterFactory.cpp
│   │   └── ImporterFactory.h
│   ├── MainUI/
│   │   ├── BookBrowser.cpp
│   │   ├── BookBrowser.h
│   │   ├── ClipsWindow.cpp
│   │   ├── ClipsWindow.h
│   │   ├── FindReplace.cpp
│   │   ├── FindReplace.h
│   │   ├── MainApplication.cpp
│   │   ├── MainApplication.h
│   │   ├── MainWindow.cpp
│   │   ├── MainWindow.h
│   │   ├── OPFModel.cpp
│   │   ├── OPFModel.h
│   │   ├── OPFModelItem.cpp
│   │   ├── OPFModelItem.h
│   │   ├── PreviewWindow.cpp
│   │   ├── PreviewWindow.h
│   │   ├── TOCModel.cpp
│   │   ├── TOCModel.h
│   │   ├── TableOfContents.cpp
│   │   ├── TableOfContents.h
│   │   ├── ValidationResultsView.cpp
│   │   └── ValidationResultsView.h
│   ├── Misc/
│   │   ├── AppEventFilter.cpp
│   │   ├── AppEventFilter.h
│   │   ├── AriaClips.cpp
│   │   ├── AriaClips.h
│   │   ├── AriaRoles.cpp
│   │   ├── AriaRoles.h
│   │   ├── AsciiFy.cpp
│   │   ├── AsciiFy.h
│   │   ├── CSSHighlighter.cpp
│   │   ├── CSSHighlighter.h
│   │   ├── CodepointNames.cpp
│   │   ├── CodepointNames.h
│   │   ├── DescriptiveInfo.h
│   │   ├── FilenameDelegate.cpp
│   │   ├── FilenameDelegate.h
│   │   ├── FindReplaceQLineEdit.cpp
│   │   ├── FindReplaceQLineEdit.h
│   │   ├── FontObfuscation.cpp
│   │   ├── FontObfuscation.h
│   │   ├── GuideItems.cpp
│   │   ├── GuideItems.h
│   │   ├── HTMLEncodingResolver.cpp
│   │   ├── HTMLEncodingResolver.h
│   │   ├── HTMLSpellCheck.cpp
│   │   ├── HTMLSpellCheck.h
│   │   ├── HTMLSpellCheckML.cpp
│   │   ├── HTMLSpellCheckML.h
│   │   ├── KeyboardShortcut.cpp
│   │   ├── KeyboardShortcut.h
│   │   ├── KeyboardShortcutManager.cpp
│   │   ├── KeyboardShortcutManager.h
│   │   ├── KeyboardShortcut_p.h
│   │   ├── Landmarks.cpp
│   │   ├── Landmarks.h
│   │   ├── Language.cpp
│   │   ├── Language.h
│   │   ├── LocaleAwareItem.h
│   │   ├── MarcRelators.cpp
│   │   ├── MarcRelators.h
│   │   ├── MediaTypes.cpp
│   │   ├── MediaTypes.h
│   │   ├── Ncx20051Dtd.cpp
│   │   ├── NumericItem.h
│   │   ├── OpenExternally.cpp
│   │   ├── OpenExternally.h
│   │   ├── PasteTarget.h
│   │   ├── PasteTargetComboBox.cpp
│   │   ├── PasteTargetComboBox.h
│   │   ├── Plugin.cpp
│   │   ├── Plugin.h
│   │   ├── PluginDB.cpp
│   │   ├── PluginDB.h
│   │   ├── PrettyPrintProps.cpp
│   │   ├── PrettyPrintProps.h
│   │   ├── PythonHighlighter.cpp
│   │   ├── PythonHighlighter.h
│   │   ├── SearchOperations.cpp
│   │   ├── SearchOperations.h
│   │   ├── SearchUtils.cpp
│   │   ├── SearchUtils.h
│   │   ├── SettingsStore.cpp
│   │   ├── SettingsStore.h
│   │   ├── SigilDarkStyle.cpp
│   │   ├── SigilDarkStyle.h
│   │   ├── SleepFunctions.h
│   │   ├── SpellCheck.cpp
│   │   ├── SpellCheck.h
│   │   ├── TOCHTMLWriter.cpp
│   │   ├── TOCHTMLWriter.h
│   │   ├── TempFolder.cpp
│   │   ├── TempFolder.h
│   │   ├── UILanguage.cpp
│   │   ├── UILanguage.h
│   │   ├── URLInterceptor.cpp
│   │   ├── URLInterceptor.h
│   │   ├── URLSchemeHandler.cpp
│   │   ├── URLSchemeHandler.h
│   │   ├── UpdateChecker.cpp
│   │   ├── UpdateChecker.h
│   │   ├── Utility.cpp
│   │   ├── Utility.h
│   │   ├── ValidationResult.cpp
│   │   ├── ValidationResult.h
│   │   ├── WebProfileMgr.cpp
│   │   ├── WebProfileMgr.h
│   │   ├── WrapIndicator.h
│   │   ├── XHTMLHighlighter.cpp
│   │   ├── XHTMLHighlighter.h
│   │   ├── XHTMLHighlighter2.cpp
│   │   ├── XHTMLHighlighter2.h
│   │   ├── XMLEntities.cpp
│   │   ├── XMLEntities.h
│   │   ├── XhtmlEntitiesDtd.cpp
│   │   ├── macos_menu_and_window_fixes.mm
│   │   ├── webviewprinter.cpp
│   │   └── webviewprinter.h
│   ├── MiscEditors/
│   │   ├── ClipEditorModel.cpp
│   │   ├── ClipEditorModel.h
│   │   ├── ClipEditorTreeView.cpp
│   │   ├── ClipEditorTreeView.h
│   │   ├── IndexEditorModel.cpp
│   │   ├── IndexEditorModel.h
│   │   ├── IndexEditorTreeView.cpp
│   │   ├── IndexEditorTreeView.h
│   │   ├── IndexEntries.cpp
│   │   ├── IndexEntries.h
│   │   ├── IndexHTMLWriter.cpp
│   │   ├── IndexHTMLWriter.h
│   │   ├── MetaEditorTreeView.cpp
│   │   ├── MetaEditorTreeView.h
│   │   ├── SearchEditorModel.cpp
│   │   ├── SearchEditorModel.h
│   │   ├── SearchEditorTreeView.cpp
│   │   └── SearchEditorTreeView.h
│   ├── PCRE2/
│   │   ├── PCRECache.cpp
│   │   ├── PCRECache.h
│   │   ├── PCREErrors.cpp
│   │   ├── PCREErrors.h
│   │   ├── PCREReplaceTextBuilder.cpp
│   │   ├── PCREReplaceTextBuilder.h
│   │   ├── SPCRE.cpp
│   │   └── SPCRE.h
│   ├── Parsers/
│   │   ├── CSSDeNest.cpp
│   │   ├── CSSDeNest.h
│   │   ├── CSSInfo.cpp
│   │   ├── CSSInfo.h
│   │   ├── CSSToolbox.cpp
│   │   ├── CSSToolbox.h
│   │   ├── GumboInterface.cpp
│   │   ├── GumboInterface.h
│   │   ├── HTMLStyleInfo.cpp
│   │   ├── HTMLStyleInfo.h
│   │   ├── OPFParser.cpp
│   │   ├── OPFParser.h
│   │   ├── QuickParser.cpp
│   │   ├── QuickParser.h
│   │   ├── TagAtts.cpp
│   │   ├── TagAtts.h
│   │   ├── TagLister.cpp
│   │   ├── TagLister.h
│   │   ├── qCSSParser.cpp
│   │   ├── qCSSParser.h
│   │   ├── qCSSProperties.cpp
│   │   ├── qCSSProperties.h
│   │   ├── qCSSUtils.cpp
│   │   └── qCSSUtils.h
│   ├── Query/
│   │   ├── CDocument.cpp
│   │   ├── CDocument.h
│   │   ├── CNode.cpp
│   │   ├── CNode.h
│   │   ├── CObject.cpp
│   │   ├── CObject.h
│   │   ├── CParser.cpp
│   │   ├── CParser.h
│   │   ├── CQueryUtil.cpp
│   │   ├── CQueryUtil.h
│   │   ├── CSelection.cpp
│   │   ├── CSelection.h
│   │   ├── CSelector.cpp
│   │   ├── CSelector.h
│   │   └── LICENSE
│   ├── ResourceObjects/
│   │   ├── AudioResource.cpp
│   │   ├── AudioResource.h
│   │   ├── CSSResource.cpp
│   │   ├── CSSResource.h
│   │   ├── FontResource.cpp
│   │   ├── FontResource.h
│   │   ├── HTMLResource.cpp
│   │   ├── HTMLResource.h
│   │   ├── ImageResource.cpp
│   │   ├── ImageResource.h
│   │   ├── MiscTextResource.cpp
│   │   ├── MiscTextResource.h
│   │   ├── NCXResource.cpp
│   │   ├── NCXResource.h
│   │   ├── NavProcessor.cpp
│   │   ├── NavProcessor.h
│   │   ├── OPFResource.cpp
│   │   ├── OPFResource.h
│   │   ├── PdfResource.cpp
│   │   ├── PdfResource.h
│   │   ├── Resource.cpp
│   │   ├── Resource.h
│   │   ├── SVGResource.cpp
│   │   ├── SVGResource.h
│   │   ├── TextResource.cpp
│   │   ├── TextResource.h
│   │   ├── VideoResource.cpp
│   │   ├── VideoResource.h
│   │   ├── XMLResource.cpp
│   │   └── XMLResource.h
│   ├── Resource_Files/
│   │   ├── About/
│   │   │   └── About.qrc
│   │   ├── bash/
│   │   │   └── sigil-sh_install
│   │   ├── dark/
│   │   │   ├── dark.qrc
│   │   │   ├── lin_dark_scrollbar.css
│   │   │   ├── mac_dark_scrollbar.css
│   │   │   ├── win-dark-style.qss
│   │   │   └── win_dark_scrollbar.css
│   │   ├── dictionaries/
│   │   │   ├── About.txt
│   │   │   ├── COPYING_GPLv2.txt
│   │   │   ├── COPYING_GPLv3.txt
│   │   │   ├── COPYING_LGPL_v2.0.txt
│   │   │   ├── COPYING_LGPL_v2.1.txt
│   │   │   ├── License_es.md
│   │   │   ├── README.txt
│   │   │   ├── README_de_DE_frami.txt
│   │   │   ├── README_en_GB.txt
│   │   │   ├── README_en_US.txt
│   │   │   ├── README_es_ANY.txt
│   │   │   ├── README_extension_owner.txt
│   │   │   ├── README_fr.txt
│   │   │   ├── README_hyph_de.txt
│   │   │   ├── README_hyph_en_GB.txt
│   │   │   ├── README_hyph_en_US.txt
│   │   │   ├── README_hyph_es.txt
│   │   │   ├── README_hyph_fr.txt
│   │   │   ├── de_DE.aff
│   │   │   ├── de_DE.dic
│   │   │   ├── en_GB.aff
│   │   │   ├── en_GB.dic
│   │   │   ├── en_US.aff
│   │   │   ├── en_US.dic
│   │   │   ├── es.aff
│   │   │   ├── es.dic
│   │   │   ├── fr.aff
│   │   │   ├── fr.dic
│   │   │   ├── hyph_de_DE.dic
│   │   │   ├── hyph_en_GB.dic
│   │   │   ├── hyph_en_US.dic
│   │   │   ├── hyph_es.dic
│   │   │   ├── hyph_fr.dic
│   │   │   └── license.txt
│   │   ├── dtd/
│   │   │   └── xhtml-entities.dtd
│   │   ├── examples/
│   │   │   ├── clip_entries.ini
│   │   │   └── search_entries.ini
│   │   ├── fluent/
│   │   │   └── fluent.qrc
│   │   ├── freedesktop/
│   │   │   ├── sigil-appimage.desktop
│   │   │   └── sigil.desktop
│   │   ├── icon/
│   │   │   ├── app_icons_alt/
│   │   │   │   ├── Sigil.icns
│   │   │   │   └── app_icons.qrc
│   │   │   ├── app_icons_orig/
│   │   │   │   ├── Sigil.icns
│   │   │   │   └── app_icons.qrc
│   │   │   ├── epub.icns
│   │   │   └── icon.qrc
│   │   ├── javascript/
│   │   │   ├── book_view_current_location.js
│   │   │   ├── format_block.js
│   │   │   ├── get_ancestor.js
│   │   │   ├── get_ancestor_attribute.js
│   │   │   ├── get_block.js
│   │   │   ├── get_parent_tags.js
│   │   │   ├── get_range.js
│   │   │   ├── get_segment_html.js
│   │   │   ├── get_tag_html.js
│   │   │   ├── javascript.qrc
│   │   │   ├── jquery.scrollTo-2.1.2-min.js
│   │   │   ├── new_selection.js
│   │   │   └── set_ancestor_attribute.js
│   │   ├── mac/
│   │   │   └── MacOSXBundleInfo.plist
│   │   ├── main/
│   │   │   └── main.qrc
│   │   ├── material/
│   │   │   └── material.qrc
│   │   ├── plugin_launchers/
│   │   │   └── python/
│   │   │       ├── bookcontainer.py
│   │   │       ├── compatibility_utils.py
│   │   │       ├── epub_utils.py
│   │   │       ├── hrefutils.py
│   │   │       ├── imghdr.py
│   │   │       ├── inputcontainer.py
│   │   │       ├── launcher.py
│   │   │       ├── navprocessor.py
│   │   │       ├── opf_parser.py
│   │   │       ├── outputcontainer.py
│   │   │       ├── pluginhunspell.py
│   │   │       ├── pluginhunspellml.py
│   │   │       ├── preferences.py
│   │   │       ├── quickparser.py
│   │   │       ├── sigil_bs4/
│   │   │       │   ├── AUTHORS.txt
│   │   │       │   ├── COPYING.txt
│   │   │       │   ├── __init__.py
│   │   │       │   ├── builder/
│   │   │       │   │   ├── __init__.py
│   │   │       │   │   ├── _html5lib.py
│   │   │       │   │   ├── _htmlparser.py
│   │   │       │   │   └── _lxml.py
│   │   │       │   ├── dammit.py
│   │   │       │   ├── diagnose.py
│   │   │       │   ├── element.py
│   │   │       │   └── sigil_custom_changes_to_bs4-4.4.0.patch.txt
│   │   │       ├── sigil_gumbo_bs4_adapter.py
│   │   │       ├── sigil_gumboc.py
│   │   │       ├── sigil_gumboc_tags.py
│   │   │       ├── unipath.py
│   │   │       ├── validationcontainer.py
│   │   │       ├── validationresult.py
│   │   │       └── wrapper.py
│   │   ├── polyfills/
│   │   │   ├── MathJax_License.txt
│   │   │   └── MathJax_README.md
│   │   ├── python3lib/
│   │   │   ├── cssreformatter.py
│   │   │   ├── diffstat.py
│   │   │   ├── fix_opf_ids.py
│   │   │   ├── fr_utils.py
│   │   │   ├── functionrep.py
│   │   │   ├── functionsearch.py
│   │   │   ├── gencheck.py
│   │   │   ├── getcodepointname.py
│   │   │   ├── metadata_utils.py
│   │   │   ├── metaproc2.py
│   │   │   ├── metaproc3.py
│   │   │   ├── ncxdata.py
│   │   │   ├── ncxgenerator.py
│   │   │   ├── opf2data.py
│   │   │   ├── opf3data.py
│   │   │   ├── opf_id_parser.py
│   │   │   ├── opf_newparser.py
│   │   │   ├── repomanager.py
│   │   │   ├── sanitycheck.py
│   │   │   ├── sdifflibparser.py
│   │   │   ├── titlecase.py
│   │   │   ├── unidecode/
│   │   │   │   ├── LICENSE
│   │   │   │   ├── README.rst
│   │   │   │   ├── __init__.py
│   │   │   │   ├── __main__.py
│   │   │   │   ├── py.typed
│   │   │   │   ├── util.py
│   │   │   │   ├── x000.py
│   │   │   │   ├── x001.py
│   │   │   │   ├── x002.py
│   │   │   │   ├── x003.py
│   │   │   │   ├── x004.py
│   │   │   │   ├── x005.py
│   │   │   │   ├── x006.py
│   │   │   │   ├── x007.py
│   │   │   │   ├── x009.py
│   │   │   │   ├── x00a.py
│   │   │   │   ├── x00b.py
│   │   │   │   ├── x00c.py
│   │   │   │   ├── x00d.py
│   │   │   │   ├── x00e.py
│   │   │   │   ├── x00f.py
│   │   │   │   ├── x010.py
│   │   │   │   ├── x011.py
│   │   │   │   ├── x012.py
│   │   │   │   ├── x013.py
│   │   │   │   ├── x014.py
│   │   │   │   ├── x015.py
│   │   │   │   ├── x016.py
│   │   │   │   ├── x017.py
│   │   │   │   ├── x018.py
│   │   │   │   ├── x01d.py
│   │   │   │   ├── x01e.py
│   │   │   │   ├── x01f.py
│   │   │   │   ├── x020.py
│   │   │   │   ├── x021.py
│   │   │   │   ├── x022.py
│   │   │   │   ├── x023.py
│   │   │   │   ├── x024.py
│   │   │   │   ├── x025.py
│   │   │   │   ├── x026.py
│   │   │   │   ├── x027.py
│   │   │   │   ├── x028.py
│   │   │   │   ├── x029.py
│   │   │   │   ├── x02a.py
│   │   │   │   ├── x02c.py
│   │   │   │   ├── x02e.py
│   │   │   │   ├── x02f.py
│   │   │   │   ├── x030.py
│   │   │   │   ├── x031.py
│   │   │   │   ├── x032.py
│   │   │   │   ├── x033.py
│   │   │   │   ├── x04d.py
│   │   │   │   ├── x04e.py
│   │   │   │   ├── x04f.py
│   │   │   │   ├── x050.py
│   │   │   │   ├── x051.py
│   │   │   │   ├── x052.py
│   │   │   │   ├── x053.py
│   │   │   │   ├── x054.py
│   │   │   │   ├── x055.py
│   │   │   │   ├── x056.py
│   │   │   │   ├── x057.py
│   │   │   │   ├── x058.py
│   │   │   │   ├── x059.py
│   │   │   │   ├── x05a.py
│   │   │   │   ├── x05b.py
│   │   │   │   ├── x05c.py
│   │   │   │   ├── x05d.py
│   │   │   │   ├── x05e.py
│   │   │   │   ├── x05f.py
│   │   │   │   ├── x060.py
│   │   │   │   ├── x061.py
│   │   │   │   ├── x062.py
│   │   │   │   ├── x063.py
│   │   │   │   ├── x064.py
│   │   │   │   ├── x065.py
│   │   │   │   ├── x066.py
│   │   │   │   ├── x067.py
│   │   │   │   ├── x068.py
│   │   │   │   ├── x069.py
│   │   │   │   ├── x06a.py
│   │   │   │   ├── x06b.py
│   │   │   │   ├── x06c.py
│   │   │   │   ├── x06d.py
│   │   │   │   ├── x06e.py
│   │   │   │   ├── x06f.py
│   │   │   │   ├── x070.py
│   │   │   │   ├── x071.py
│   │   │   │   ├── x072.py
│   │   │   │   ├── x073.py
│   │   │   │   ├── x074.py
│   │   │   │   ├── x075.py
│   │   │   │   ├── x076.py
│   │   │   │   ├── x077.py
│   │   │   │   ├── x078.py
│   │   │   │   ├── x079.py
│   │   │   │   ├── x07a.py
│   │   │   │   ├── x07b.py
│   │   │   │   ├── x07c.py
│   │   │   │   ├── x07d.py
│   │   │   │   ├── x07e.py
│   │   │   │   ├── x07f.py
│   │   │   │   ├── x080.py
│   │   │   │   ├── x081.py
│   │   │   │   ├── x082.py
│   │   │   │   ├── x083.py
│   │   │   │   ├── x084.py
│   │   │   │   ├── x085.py
│   │   │   │   ├── x086.py
│   │   │   │   ├── x087.py
│   │   │   │   ├── x088.py
│   │   │   │   ├── x089.py
│   │   │   │   ├── x08a.py
│   │   │   │   ├── x08b.py
│   │   │   │   ├── x08c.py
│   │   │   │   ├── x08d.py
│   │   │   │   ├── x08e.py
│   │   │   │   ├── x08f.py
│   │   │   │   ├── x090.py
│   │   │   │   ├── x091.py
│   │   │   │   ├── x092.py
│   │   │   │   ├── x093.py
│   │   │   │   ├── x094.py
│   │   │   │   ├── x095.py
│   │   │   │   ├── x096.py
│   │   │   │   ├── x097.py
│   │   │   │   ├── x098.py
│   │   │   │   ├── x099.py
│   │   │   │   ├── x09a.py
│   │   │   │   ├── x09b.py
│   │   │   │   ├── x09c.py
│   │   │   │   ├── x09d.py
│   │   │   │   ├── x09e.py
│   │   │   │   ├── x09f.py
│   │   │   │   ├── x0a0.py
│   │   │   │   ├── x0a1.py
│   │   │   │   ├── x0a2.py
│   │   │   │   ├── x0a3.py
│   │   │   │   ├── x0a4.py
│   │   │   │   ├── x0ac.py
│   │   │   │   ├── x0ad.py
│   │   │   │   ├── x0ae.py
│   │   │   │   ├── x0af.py
│   │   │   │   ├── x0b0.py
│   │   │   │   ├── x0b1.py
│   │   │   │   ├── x0b2.py
│   │   │   │   ├── x0b3.py
│   │   │   │   ├── x0b4.py
│   │   │   │   ├── x0b5.py
│   │   │   │   ├── x0b6.py
│   │   │   │   ├── x0b7.py
│   │   │   │   ├── x0b8.py
│   │   │   │   ├── x0b9.py
│   │   │   │   ├── x0ba.py
│   │   │   │   ├── x0bb.py
│   │   │   │   ├── x0bc.py
│   │   │   │   ├── x0bd.py
│   │   │   │   ├── x0be.py
│   │   │   │   ├── x0bf.py
│   │   │   │   ├── x0c0.py
│   │   │   │   ├── x0c1.py
│   │   │   │   ├── x0c2.py
│   │   │   │   ├── x0c3.py
│   │   │   │   ├── x0c4.py
│   │   │   │   ├── x0c5.py
│   │   │   │   ├── x0c6.py
│   │   │   │   ├── x0c7.py
│   │   │   │   ├── x0c8.py
│   │   │   │   ├── x0c9.py
│   │   │   │   ├── x0ca.py
│   │   │   │   ├── x0cb.py
│   │   │   │   ├── x0cc.py
│   │   │   │   ├── x0cd.py
│   │   │   │   ├── x0ce.py
│   │   │   │   ├── x0cf.py
│   │   │   │   ├── x0d0.py
│   │   │   │   ├── x0d1.py
│   │   │   │   ├── x0d2.py
│   │   │   │   ├── x0d3.py
│   │   │   │   ├── x0d4.py
│   │   │   │   ├── x0d5.py
│   │   │   │   ├── x0d6.py
│   │   │   │   ├── x0d7.py
│   │   │   │   ├── x0f9.py
│   │   │   │   ├── x0fa.py
│   │   │   │   ├── x0fb.py
│   │   │   │   ├── x0fc.py
│   │   │   │   ├── x0fd.py
│   │   │   │   ├── x0fe.py
│   │   │   │   ├── x0ff.py
│   │   │   │   ├── x1d4.py
│   │   │   │   ├── x1d5.py
│   │   │   │   ├── x1d6.py
│   │   │   │   ├── x1d7.py
│   │   │   │   ├── x1f1.py
│   │   │   │   └── x1f6.py
│   │   │   ├── updatechecker.py
│   │   │   ├── xmlprocessor.py
│   │   │   └── xmlsanitycheck.py
│   │   ├── python_pkg/
│   │   │   ├── osx_add_python_framework.py
│   │   │   ├── osx_add_python_framework6.py
│   │   │   ├── python_paths.py
│   │   │   ├── python_paths6.py
│   │   │   ├── windows_python_gather.py
│   │   │   ├── windows_python_gather6.py
│   │   │   └── winreqs.txt
│   │   ├── ts/
│   │   │   ├── base.ts
│   │   │   ├── sigil_ar.ts
│   │   │   ├── sigil_ca.ts
│   │   │   ├── sigil_cs.ts
│   │   │   ├── sigil_de.ts
│   │   │   ├── sigil_en.ts
│   │   │   ├── sigil_es.ts
│   │   │   ├── sigil_fi.ts
│   │   │   ├── sigil_fr.ts
│   │   │   ├── sigil_it.ts
│   │   │   ├── sigil_ja.ts
│   │   │   ├── sigil_ko.ts
│   │   │   ├── sigil_nl.ts
│   │   │   ├── sigil_pl.ts
│   │   │   ├── sigil_pt_BR.ts
│   │   │   ├── sigil_ru.ts
│   │   │   ├── sigil_sr.ts
│   │   │   ├── sigil_tr.ts
│   │   │   ├── sigil_uk.ts
│   │   │   ├── sigil_zh_CN.ts
│   │   │   └── sigil_zh_TW.ts
│   │   └── windows/
│   │       ├── Sigil.exe.appmanifest
│   │       ├── icon.rc.in
│   │       ├── postinstall.bat
│   │       └── version.rc.in
│   ├── SourceUpdates/
│   │   ├── AnchorUpdates.cpp
│   │   ├── AnchorUpdates.h
│   │   ├── FragmentUpdates.cpp
│   │   ├── FragmentUpdates.h
│   │   ├── JavascriptUpdates.cpp
│   │   ├── JavascriptUpdates.h
│   │   ├── LinkUpdates.cpp
│   │   ├── LinkUpdates.h
│   │   ├── PerformCSSUpdates.cpp
│   │   ├── PerformCSSUpdates.h
│   │   ├── PerformHTMLUpdates.cpp
│   │   ├── PerformHTMLUpdates.h
│   │   ├── PerformNCXUpdates.cpp
│   │   ├── PerformNCXUpdates.h
│   │   ├── PerformOPFUpdates.cpp
│   │   ├── PerformOPFUpdates.h
│   │   ├── PerformXMLUpdates.cpp
│   │   ├── PerformXMLUpdates.h
│   │   ├── UniversalUpdates.cpp
│   │   ├── UniversalUpdates.h
│   │   ├── WordUpdates.cpp
│   │   └── WordUpdates.h
│   ├── Tabs/
│   │   ├── AVTab.cpp
│   │   ├── AVTab.h
│   │   ├── CSSTab.cpp
│   │   ├── CSSTab.h
│   │   ├── ContentTab.cpp
│   │   ├── ContentTab.h
│   │   ├── FlowTab.cpp
│   │   ├── FlowTab.h
│   │   ├── FontTab.cpp
│   │   ├── FontTab.h
│   │   ├── ImageTab.cpp
│   │   ├── ImageTab.h
│   │   ├── MiscTextTab.cpp
│   │   ├── MiscTextTab.h
│   │   ├── NCXTab.cpp
│   │   ├── NCXTab.h
│   │   ├── OPFTab.cpp
│   │   ├── OPFTab.h
│   │   ├── PdfTab.cpp
│   │   ├── PdfTab.h
│   │   ├── SVGTab.cpp
│   │   ├── SVGTab.h
│   │   ├── TabBar.cpp
│   │   ├── TabBar.h
│   │   ├── TabManager.cpp
│   │   ├── TabManager.h
│   │   ├── TextTab.cpp
│   │   ├── TextTab.h
│   │   ├── WellFormedCheckComponent.cpp
│   │   ├── WellFormedCheckComponent.h
│   │   ├── WellFormedContent.h
│   │   ├── XMLTab.cpp
│   │   └── XMLTab.h
│   ├── ViewEditors/
│   │   ├── CodeViewEditor.cpp
│   │   ├── CodeViewEditor.h
│   │   ├── ElementIndex.h
│   │   ├── LineNumberArea.cpp
│   │   ├── LineNumberArea.h
│   │   ├── Overlay.h
│   │   ├── Searchable.cpp
│   │   ├── Searchable.h
│   │   ├── SimplePage.cpp
│   │   ├── SimplePage.h
│   │   ├── ViewEditor.h
│   │   ├── ViewPreview.cpp
│   │   ├── ViewPreview.h
│   │   ├── Viewer.h
│   │   ├── WebEngPage.cpp
│   │   ├── WebEngPage.h
│   │   └── Zoomable.h
│   ├── Widgets/
│   │   ├── AVView.cpp
│   │   ├── AVView.h
│   │   ├── AdjustImage.cpp
│   │   ├── AdjustImage.h
│   │   ├── AlertBox.cpp
│   │   ├── AlertBox.h
│   │   ├── CaretStyle.cpp
│   │   ├── CaretStyle.h
│   │   ├── FileDropZone.h
│   │   ├── FontView.cpp
│   │   ├── FontView.h
│   │   ├── ImageView.cpp
│   │   ├── ImageView.h
│   │   ├── Navigator.h
│   │   ├── Navigator2.h
│   │   ├── PdfView.cpp
│   │   ├── PdfView.h
│   │   ├── SELineNumberArea.cpp
│   │   ├── SELineNumberArea.h
│   │   ├── SourceEditor.cpp
│   │   ├── SourceEditor.h
│   │   ├── TVLineNumberArea.cpp
│   │   ├── TVLineNumberArea.h
│   │   ├── TextDocument.cpp
│   │   ├── TextDocument.h
│   │   ├── TextView.cpp
│   │   └── TextView.h
│   ├── main.cpp
│   ├── qt6sigil.cmake
│   ├── sigil_constants.cpp
│   ├── sigil_constants.h
│   └── sigil_exception.h
├── version.xml
├── windownloadqt.cmake
└── winvirtpy.cmake
Copy disabled (too large) Download .json
Condensed preview — 2541 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (66,331K chars).
[
  {
    "path": ".gitattributes",
    "chars": 99,
    "preview": ".git export-ignore\n.gitattributes export-ignore\n.gitignore export-ignore\nversion.xml export-ignore\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "chars": 1514,
    "preview": "name: Bug Report\ndescription: File a bug report\ntitle: \"[Bug]: \"\nlabels: [\"bug\"]\nbody:\n  - type: markdown\n    attributes"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 764,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: Sigil Community Support\n    url: https://www.mobileread.com/forums/"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yml",
    "chars": 631,
    "preview": "name: Feature Request\ndescription: New feature requests are not accepted here\nbody:\n  - type: markdown\n    attributes:\n "
  },
  {
    "path": ".github/workflows/AppRun",
    "chars": 842,
    "preview": "#! /usr/bin/env bash\n\n# make sure errors in sourced scripts will cause this script to stop\nset -e\n\nthis_dir=\"$(readlink "
  },
  {
    "path": ".github/workflows/appimg_cleanup.py",
    "chars": 3532,
    "preview": "#!/usr/bin/env python3\r\n# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai\r\n\r\nimport os, sys, glob\r\n\r\nexclude_libs = [\r\n"
  },
  {
    "path": ".github/workflows/appimg_python3_gather.py",
    "chars": 12172,
    "preview": "#!/usr/bin/env python3\r\n# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai\r\n\r\nimport sys, os, subprocess, glob, inspect,"
  },
  {
    "path": ".github/workflows/arch-repo.yml",
    "chars": 535,
    "preview": "name: Build Qt6 Sigil package on Arch Linux\r\n\r\non:\r\n  workflow_dispatch:\r\n\r\nenv:\r\n  BUILD_TYPE: Release\r\n\r\njobs:\r\n  test"
  },
  {
    "path": ".github/workflows/build_appimage.yml",
    "chars": 5369,
    "preview": "name: Build Sigil AppImage\r\n\r\non:\r\n  push:\r\n\r\n  workflow_dispatch:\r\n    inputs:\r\n      vers_info:\r\n        description: "
  },
  {
    "path": ".github/workflows/build_appimage2.yml",
    "chars": 2047,
    "preview": "name: Build Sigil AppImage the Sequel\n\non:\n\n  push:\n\n  workflow_dispatch:\n    inputs:\n      vers_info:\n        descripti"
  },
  {
    "path": ".github/workflows/build_sigil_appimage.sh",
    "chars": 10448,
    "preview": "#!/bin/bash -e\n\n# WARNING!!  Do not attempt to run this script outside of a docker container. Doing so can damage your s"
  },
  {
    "path": ".github/workflows/build_sigilpython.sh",
    "chars": 3865,
    "preview": "#!/bin/bash -e\n\n# WARNING!!  Do not attempt to run this script outside of a docker container. Doing so can damage your s"
  },
  {
    "path": ".github/workflows/build_sigilwebengine.sh",
    "chars": 8249,
    "preview": "#!/bin/bash -e\n\n# WARNING!!  Do not attempt to run this script outside of a docker container. Doing so can damage your s"
  },
  {
    "path": ".github/workflows/checkqt5.yml",
    "chars": 1463,
    "preview": "name: Test Qt5 Compatibility\r\n\r\non:\r\n  workflow_dispatch: \r\n    branches: master\r\n\r\nenv:\r\n  BUILD_TYPE: Debug\r\n\r\njobs:\r\n"
  },
  {
    "path": ".github/workflows/create_tag.yml",
    "chars": 2512,
    "preview": "name: Create Signed Tag Manually\n\non:\n  workflow_dispatch: \n    branches: master\n    inputs:\n      tag_name:\n        des"
  },
  {
    "path": ".github/workflows/linux-build.yml",
    "chars": 2066,
    "preview": "name: Build Sigil on Linux\n\non:\n  push:\n    branches: [ master ]\n    tags-ignore:\n      - '**'\n    paths-ignore:\n    - '"
  },
  {
    "path": ".github/workflows/mac-build.yml",
    "chars": 4376,
    "preview": "name: Build Sigil on macOS x86_64\n\non:\n\n  workflow_dispatch:\n\n  push:\n    branches: [ master ]\n    tags-ignore:\n      - "
  },
  {
    "path": ".github/workflows/mac_arm64-build.yml",
    "chars": 4411,
    "preview": "name: Build Sigil on macOS arm64\n\non:\n\n  workflow_dispatch:\n  \n  push:\n    branches: [ master ]\n    tags-ignore:\n      -"
  },
  {
    "path": ".github/workflows/make_blog_post.yml",
    "chars": 2712,
    "preview": "name: Make Blog Post\n\non:\n  # Only create blog post after new Sigil release is published\n  release:\n    types: published"
  },
  {
    "path": ".github/workflows/make_post.py",
    "chars": 2353,
    "preview": "import os\nimport sys\nimport getopt\nimport json\nimport codecs\nfrom dateutil import parser\n\n\nBAIL = False\n\nNAME = 'Sigil'\n"
  },
  {
    "path": ".github/workflows/requirements.txt",
    "chars": 181,
    "preview": "six==1.17.0\r\nhtml5lib==1.1\r\nregex==2026.1.15\r\ncss-parser==1.0.10\r\ncssselect==1.4.0\r\ncertifi==2026.1.4\r\ndulwich==1.0.0\r\nc"
  },
  {
    "path": ".github/workflows/reset-lin-caches.txt",
    "chars": 429,
    "preview": "Change the content of this file to reset the caches for the github actions sigil linux build\n\nCache cleared 4/4/23\nCache"
  },
  {
    "path": ".github/workflows/reset-mac-caches.txt",
    "chars": 234,
    "preview": "Change the content of this file to reset the caches for the github actions sigil macOS x86_64 build\n\nChanged 2024.10.23\n"
  },
  {
    "path": ".github/workflows/reset-mac_arm64-caches.txt",
    "chars": 280,
    "preview": "Change the content of this file to reset the caches for the github actions sigil macos_arm64 build\n\nChanged 2024.7.24\nCh"
  },
  {
    "path": ".github/workflows/reset-win-caches.txt",
    "chars": 626,
    "preview": "Change the content of this file to reset the caches for the github actions sigil windows build\nReset cache on 7-July-202"
  },
  {
    "path": ".github/workflows/win-build.yml",
    "chars": 4284,
    "preview": "name: Build Sigil on Windows\n\non:\n\n  workflow_dispatch:\n  \n  push:\n    branches: [ master ]\n    tags-ignore:\n      - '**"
  },
  {
    "path": ".github/workflows/winget.yml",
    "chars": 548,
    "preview": "name: Publish Release to WinGet\non:\n  workflow_dispatch:\n    inputs:\n      version:\n        description: 'The latest ver"
  },
  {
    "path": ".gitignore",
    "chars": 1000,
    "preview": "# Backup files left behind by the Emacs editor.\r\n*~\r\n\r\n# Lock files used by the Emacs editor.\r\n.\\#*\r\n\r\n# emacs auto reco"
  },
  {
    "path": "3rdparty/CMakeLists.txt",
    "chars": 1574,
    "preview": "project(3rdparty)\n\n# Note: All files in the cmake dir will be included as if they were in this file.\n#       The paths i"
  },
  {
    "path": "3rdparty/about.md",
    "chars": 784,
    "preview": "3rdparty\n========\n\nBundled copies of 3rd party libraries.\n\nTo prevent using bundled copies in favor of system libraries "
  },
  {
    "path": "3rdparty/cmake/ext_libxml2.cmake",
    "chars": 1773,
    "preview": "include(ExternalProject)\n\nMESSAGE(STATUS \"The git, libtool, autoconf, and automake packages are required for compiling l"
  },
  {
    "path": "3rdparty/cmake/hunspell.cmake",
    "chars": 1399,
    "preview": "PROJECT(hunspell CXX)\n\nset( HUNSPELL_LIBRARIES ${PROJECT_NAME} CACHE INTERNAL \"\" )\nset( HUNSPELL_INCLUDE_DIRS ${CMAKE_CU"
  },
  {
    "path": "3rdparty/cmake/minizip.cmake",
    "chars": 1084,
    "preview": "project(minizip C)\n\nset( MINIZIP_LIBRARIES ${PROJECT_NAME} CACHE INTERNAL \"\" )\nset( MINIZIP_INCLUDE_DIRS ${CMAKE_CURRENT"
  },
  {
    "path": "3rdparty/cmake/pcre2.cmake",
    "chars": 5197,
    "preview": "project(pcre2 C)\n\nINCLUDE(CheckIncludeFile)\nINCLUDE(CheckIncludeFileCXX)\nINCLUDE(CheckFunctionExists)\nINCLUDE(CheckTypeS"
  },
  {
    "path": "3rdparty/cmake/zlib.cmake",
    "chars": 2342,
    "preview": "PROJECT(zlib C)\n\nset( ZLIB_LIBRARIES ${PROJECT_NAME} CACHE INTERNAL \"\" )\nset( ZLIB_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_D"
  },
  {
    "path": "3rdparty/extra/hunspell/config.h",
    "chars": 661,
    "preview": "/* Name of package */\n#define PACKAGE \"hunspell\"\n\n/* Define to the address where bug reports for this package should be "
  },
  {
    "path": "3rdparty/extra/libxml2/libxml2_bug_fix.patch",
    "chars": 361,
    "preview": "--- parser.c.orig\t2016-07-13 09:25:04.312703211 -0400\n+++ parser.c\t2016-07-13 10:13:34.475133927 -0400\n@@ -7420,6 +7420,"
  },
  {
    "path": "3rdparty/hunspell/ABOUT-NLS",
    "chars": 95341,
    "preview": "1 Notes on the Free Translation Project\n***************************************\n\nFree software is going international!  "
  },
  {
    "path": "3rdparty/hunspell/AUTHORS",
    "chars": 754,
    "preview": "Author: László Németh\n\nMySpell's (Hunspell's code base) author: Kevin Hendricks\n\nMaintainer, distinguished contributor: "
  },
  {
    "path": "3rdparty/hunspell/COPYING",
    "chars": 18093,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 2, June 1991\n\n Copyright (C) 1989, 1991 Fr"
  },
  {
    "path": "3rdparty/hunspell/COPYING.LESSER",
    "chars": 26531,
    "preview": "                  GNU LESSER GENERAL PUBLIC LICENSE\n                       Version 2.1, February 1999\n\n Copyright (C) 19"
  },
  {
    "path": "3rdparty/hunspell/COPYING.MPL",
    "chars": 25755,
    "preview": "                          MOZILLA PUBLIC LICENSE\n                                Version 1.1\n\n                          "
  },
  {
    "path": "3rdparty/hunspell/ChangeLog",
    "chars": 88570,
    "preview": "2016-04-29 Caolán McNamara <caolanm at LibO>:\n\t* deprecate old api and add new one\n\t  old one remains implemented in ter"
  },
  {
    "path": "3rdparty/hunspell/ChangeLog.O",
    "chars": 19130,
    "preview": "Myspell has a lot of parallel development, that is not documented here.\n\n2005-01-11: Nmeth Lszl <nemethl@gyorsposta.hu>\n"
  },
  {
    "path": "3rdparty/hunspell/INSTALL",
    "chars": 15756,
    "preview": "Installation Instructions\n*************************\n\n   Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software\nFoun"
  },
  {
    "path": "3rdparty/hunspell/Makefile.am",
    "chars": 223,
    "preview": "ACLOCAL_AMFLAGS = -I m4\n\nSUBDIRS= po src man tests\n\npkgconfdir = $(libdir)/pkgconfig\npkgconf_DATA = hunspell.pc\n\nEXTRA_D"
  },
  {
    "path": "3rdparty/hunspell/Makefile.in",
    "chars": 29132,
    "preview": "# Makefile.in generated by automake 1.15.1 from Makefile.am.\n# @configure_input@\n\n# Copyright (C) 1994-2017 Free Softwar"
  },
  {
    "path": "3rdparty/hunspell/NEWS",
    "chars": 28364,
    "preview": "2022-08-22: Hunspell 1.7.1 release:\n  - Merge chromium fix for #714 OOB string write in hunspell\n  - Merge firefox fix f"
  },
  {
    "path": "3rdparty/hunspell/README",
    "chars": 10806,
    "preview": "# About Hunspell\n\nHunspell is a free spell checker and morphological analyzer library\nand command-line tool, licensed un"
  },
  {
    "path": "3rdparty/hunspell/THANKS",
    "chars": 4940,
    "preview": "Many thanks to the following contributors and supporters:\n\nMehmet Akin\nGöran Andersson\nLars Aronsson\nRuud Baars\nBartkó Z"
  },
  {
    "path": "3rdparty/hunspell/aclocal.m4",
    "chars": 46437,
    "preview": "# generated automatically by aclocal 1.15.1 -*- Autoconf -*-\n\n# Copyright (C) 1996-2017 Free Software Foundation, Inc.\n\n"
  },
  {
    "path": "3rdparty/hunspell/compile",
    "chars": 7333,
    "preview": "#! /bin/sh\n# Wrapper for compilers which do not understand '-c -o'.\n\nscriptversion=2012-10-14.11; # UTC\n\n# Copyright (C)"
  },
  {
    "path": "3rdparty/hunspell/config.guess",
    "chars": 44283,
    "preview": "#! /bin/sh\n# Attempt to guess a canonical system name.\n#   Copyright 1992-2018 Free Software Foundation, Inc.\n\ntimestamp"
  },
  {
    "path": "3rdparty/hunspell/config.h.in",
    "chars": 3872,
    "preview": "/* config.h.in.  Generated from configure.ac by autoheader.  */\n\n/* Define to 1 if translation of program messages to th"
  },
  {
    "path": "3rdparty/hunspell/config.rpath",
    "chars": 18442,
    "preview": "#! /bin/sh\n# Output a system dependent set of variables, describing how to set the\n# run time search path of shared libr"
  },
  {
    "path": "3rdparty/hunspell/config.sub",
    "chars": 36136,
    "preview": "#! /bin/sh\n# Configuration validation subroutine script.\n#   Copyright 1992-2018 Free Software Foundation, Inc.\n\ntimesta"
  },
  {
    "path": "3rdparty/hunspell/configure",
    "chars": 707222,
    "preview": "#! /bin/sh\n# Guess values for system-dependent variables and create Makefiles.\n# Generated by GNU Autoconf 2.69 for huns"
  },
  {
    "path": "3rdparty/hunspell/configure.ac",
    "chars": 2932,
    "preview": "#                                               -*- Autoconf -*-\n# Process this file with autoconf to produce a configur"
  },
  {
    "path": "3rdparty/hunspell/depcomp",
    "chars": 23567,
    "preview": "#! /bin/sh\n# depcomp - compile a program generating dependencies as side-effects\n\nscriptversion=2016-01-11.22; # UTC\n\n# "
  },
  {
    "path": "3rdparty/hunspell/hunspell.pc.in",
    "chars": 269,
    "preview": "prefix=@prefix@\nexec_prefix=${prefix}\nlibdir=@libdir@\nincludedir=@includedir@\n\nName: hunspell\nDescription: Hunspell spel"
  },
  {
    "path": "3rdparty/hunspell/install-sh",
    "chars": 15155,
    "preview": "#!/bin/sh\n# install - install a program, script, or datafile\n\nscriptversion=2014-09-12.12; # UTC\n\n# This originates from"
  },
  {
    "path": "3rdparty/hunspell/license.hunspell",
    "chars": 1953,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/license.myspell",
    "chars": 2912,
    "preview": "/*\n * Copyright 2002 Kevin B. Hendricks, Stratford, Ontario, Canada\n * And Contributors.  All rights reserved.\n *\n * Red"
  },
  {
    "path": "3rdparty/hunspell/ltmain.sh",
    "chars": 324412,
    "preview": "#! /bin/sh\n## DO NOT EDIT - This file generated from ./build-aux/ltmain.in\n##               by inline-source v2014-01-03"
  },
  {
    "path": "3rdparty/hunspell/m4/ax_cxx_compile_stdcxx.m4",
    "chars": 20244,
    "preview": "# ===========================================================================\n#  https://www.gnu.org/software/autoconf-a"
  },
  {
    "path": "3rdparty/hunspell/m4/ax_cxx_compile_stdcxx_11.m4",
    "chars": 1677,
    "preview": "# =============================================================================\n#  https://www.gnu.org/software/autoconf"
  },
  {
    "path": "3rdparty/hunspell/m4/gettext.m4",
    "chars": 14938,
    "preview": "# gettext.m4 serial 63 (gettext-0.18)\ndnl Copyright (C) 1995-2010 Free Software Foundation, Inc.\ndnl This file is free s"
  },
  {
    "path": "3rdparty/hunspell/m4/iconv.m4",
    "chars": 9274,
    "preview": "# iconv.m4 serial 19 (gettext-0.18.2)\ndnl Copyright (C) 2000-2002, 2007-2014, 2016 Free Software Foundation, Inc.\ndnl Th"
  },
  {
    "path": "3rdparty/hunspell/m4/lib-ld.m4",
    "chars": 3683,
    "preview": "# lib-ld.m4 serial 6\ndnl Copyright (C) 1996-2003, 2009-2016 Free Software Foundation, Inc.\ndnl This file is free softwar"
  },
  {
    "path": "3rdparty/hunspell/m4/lib-link.m4",
    "chars": 33059,
    "preview": "# lib-link.m4 serial 26 (gettext-0.18.2)\ndnl Copyright (C) 2001-2016 Free Software Foundation, Inc.\ndnl This file is fre"
  },
  {
    "path": "3rdparty/hunspell/m4/lib-prefix.m4",
    "chars": 8466,
    "preview": "# lib-prefix.m4 serial 7 (gettext-0.18)\ndnl Copyright (C) 2001-2005, 2008-2016 Free Software Foundation, Inc.\ndnl This f"
  },
  {
    "path": "3rdparty/hunspell/m4/libtool.m4",
    "chars": 306297,
    "preview": "# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-\n#\n#   Copyright (C) 1996-2001, 2003-2015 Free Softw"
  },
  {
    "path": "3rdparty/hunspell/m4/ltoptions.m4",
    "chars": 14514,
    "preview": "# Helper functions for option handling.                    -*- Autoconf -*-\n#\n#   Copyright (C) 2004-2005, 2007-2009, 20"
  },
  {
    "path": "3rdparty/hunspell/m4/ltsugar.m4",
    "chars": 4384,
    "preview": "# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-\n#\n# Copyright (C) 2004-2005, 2007-2008, 20"
  },
  {
    "path": "3rdparty/hunspell/m4/ltversion.m4",
    "chars": 699,
    "preview": "# ltversion.m4 -- version numbers\t\t\t-*- Autoconf -*-\n#\n#   Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc.\n"
  },
  {
    "path": "3rdparty/hunspell/m4/lt~obsolete.m4",
    "chars": 6140,
    "preview": "# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-\n#\n#   Copyright (C) 2004-2005, 2007, 2009"
  },
  {
    "path": "3rdparty/hunspell/m4/nls.m4",
    "chars": 1223,
    "preview": "# nls.m4 serial 5 (gettext-0.18)\ndnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016 Free Software\ndnl Foundation, I"
  },
  {
    "path": "3rdparty/hunspell/m4/po.m4",
    "chars": 18830,
    "preview": "# po.m4 serial 17 (gettext-0.18)\ndnl Copyright (C) 1995-2010 Free Software Foundation, Inc.\ndnl This file is free softwa"
  },
  {
    "path": "3rdparty/hunspell/m4/progtest.m4",
    "chars": 3092,
    "preview": "# progtest.m4 serial 7 (gettext-0.18.2)\ndnl Copyright (C) 1996-2003, 2005, 2008-2016 Free Software Foundation, Inc.\ndnl "
  },
  {
    "path": "3rdparty/hunspell/m4/visibility.m4",
    "chars": 3351,
    "preview": "# visibility.m4 serial 5 (gettext-0.18.2)\ndnl Copyright (C) 2005, 2008, 2010-2016 Free Software Foundation, Inc.\ndnl Thi"
  },
  {
    "path": "3rdparty/hunspell/man/Makefile.am",
    "chars": 96,
    "preview": "man_MANS = hunspell.1 hunspell.3 hunspell.5 hzip.1 hunzip.1\nEXTRA_DIST = $(man_MANS)\nSUBDIRS=hu\n"
  },
  {
    "path": "3rdparty/hunspell/man/Makefile.in",
    "chars": 26123,
    "preview": "# Makefile.in generated by automake 1.15.1 from Makefile.am.\n# @configure_input@\n\n# Copyright (C) 1994-2017 Free Softwar"
  },
  {
    "path": "3rdparty/hunspell/man/hu/Makefile.am",
    "chars": 141,
    "preview": "#mandir = $(DESTDIR)/share\nman1dir = $(mandir)/hu/man1\nman4dir = $(mandir)/hu/man4\nman_MANS = hunspell.1 hunspell.5\nEXTR"
  },
  {
    "path": "3rdparty/hunspell/man/hu/Makefile.in",
    "chars": 18033,
    "preview": "# Makefile.in generated by automake 1.15.1 from Makefile.am.\n# @configure_input@\n\n# Copyright (C) 1994-2017 Free Softwar"
  },
  {
    "path": "3rdparty/hunspell/man/hu/hunspell.1",
    "chars": 15427,
    "preview": ".hla hu\n.TH hunspell 1 \"2014. május 27.\"\n.LO 1\n.SH NÉV\nhunspell \\- unicode-os helyesírás\\-ellenőrző, szótövező és morfol"
  },
  {
    "path": "3rdparty/hunspell/man/hu/hunspell.5",
    "chars": 18200,
    "preview": ".hla hu\n.TH hunspell 5 \"2014. május 26.\"\n.LO 1\n.SH NÉV\nhunspell \\- a Hunspell állományainak formátuma\n.SH LEÍRÁS\nA\n.IR H"
  },
  {
    "path": "3rdparty/hunspell/man/hunspell.1",
    "chars": 12191,
    "preview": ".TH hunspell 1 \"2014-05-27\"\n.LO 1\n.SH NAME\nhunspell \\- spell checker, stemmer and morphological analyzer\n.SH SYNOPSIS\nhu"
  },
  {
    "path": "3rdparty/hunspell/man/hunspell.3",
    "chars": 7195,
    "preview": ".TH hunspell 3 \"2017-11-20\"\n.LO 1\n.hy 0\n.SH NAME\n\\fBhunspell\\fR - spell checking, stemming, morphological generation and"
  },
  {
    "path": "3rdparty/hunspell/man/hunspell.5",
    "chars": 37093,
    "preview": ".TH hunspell 5 \"2017-09-20\"\n.LO 1\n.SH NAME\nhunspell \\- format of Hunspell dictionaries and affix files\n.SH DESCRIPTION\n."
  },
  {
    "path": "3rdparty/hunspell/man/hunzip.1",
    "chars": 633,
    "preview": ".TH hzip 1 \"2008-06-12\"\n.LO 1\n.SH NAME\nhunzip \\- decompress and decrypt hzip files to the standard output\n.SH SYNOPSIS\nh"
  },
  {
    "path": "3rdparty/hunspell/man/hzip.1",
    "chars": 719,
    "preview": ".TH hunzip 1 \"2008-06-12\"\n.LO 1\n.SH NAME\nhunzip \\- compress and encrypt dictionary files\n.SH SYNOPSIS\nhzip [\\-h] [\\-P pa"
  },
  {
    "path": "3rdparty/hunspell/missing",
    "chars": 6872,
    "preview": "#! /bin/sh\n# Common wrapper for a few potentially missing GNU programs.\n\nscriptversion=2013-10-28.13; # UTC\n\n# Copyright"
  },
  {
    "path": "3rdparty/hunspell/po/ChangeLog",
    "chars": 198,
    "preview": "2017-10-22  gettextize  <bug-gnu-gettext@gnu.org>\n\n\t* Makefile.in.in: Upgrade to gettext-0.19.8.1.\n\n2016-11-02  gettexti"
  },
  {
    "path": "3rdparty/hunspell/po/LINGUAS",
    "chars": 204,
    "preview": "# Set of available languages.\nan\nca\nckb\ncs\nda\nde\nde_CH\neo\nes\nes_EU\nfr\nfy\ngl\nhr\nhu\nhy\nie\nis\nit\nkab\nky\nmk\nnb_NO\nnl\nnl_BE\no"
  },
  {
    "path": "3rdparty/hunspell/po/Makefile.in.in",
    "chars": 16162,
    "preview": "# Makefile for PO directory in any package using GNU gettext.\n# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich "
  },
  {
    "path": "3rdparty/hunspell/po/Makevars",
    "chars": 3394,
    "preview": "# Makefile variables for PO directory in any package using GNU gettext.\n\n# Usually the message domain is the same as the"
  },
  {
    "path": "3rdparty/hunspell/po/POTFILES.in",
    "chars": 187,
    "preview": "# List of source files containing translatable strings.\n# Copyright (C) 1995, 1996 Free Software Foundation, Inc.\n\n# Pac"
  },
  {
    "path": "3rdparty/hunspell/po/Rules-quot",
    "chars": 1792,
    "preview": "# Special Makefile rules for English message catalogs with quotation marks.\n\nDISTFILES.common.extra1 = quot.sed boldquot"
  },
  {
    "path": "3rdparty/hunspell/po/an.po",
    "chars": 15659,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/ar.po",
    "chars": 14522,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/boldquot.sed",
    "chars": 177,
    "preview": "s/\"\\([^\"]*\\)\"/“\\1”/g\ns/`\\([^`']*\\)'/‘\\1’/g\ns/ '\\([^`']*\\)' / ‘\\1’ /g\ns/ '\\([^`']*\\)'$/ ‘\\1’/g\ns/^'\\([^`']*\\)' /‘\\1’ /g\ns"
  },
  {
    "path": "3rdparty/hunspell/po/ca.po",
    "chars": 15753,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/ckb.po",
    "chars": 10966,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/cs.po",
    "chars": 15406,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/da.po",
    "chars": 15061,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/de.po",
    "chars": 15818,
    "preview": "# German translation of hunspell.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under t"
  },
  {
    "path": "3rdparty/hunspell/po/de_CH.po",
    "chars": 10707,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/el.po",
    "chars": 15768,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/en@boldquot.header",
    "chars": 1337,
    "preview": "# All this catalog \"translates\" are quotation characters.\n# The msgids must be ASCII and therefore cannot contain real q"
  },
  {
    "path": "3rdparty/hunspell/po/en@quot.header",
    "chars": 1203,
    "preview": "# All this catalog \"translates\" are quotation characters.\n# The msgids must be ASCII and therefore cannot contain real q"
  },
  {
    "path": "3rdparty/hunspell/po/eo.po",
    "chars": 15163,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/es.po",
    "chars": 15638,
    "preview": "# Spanish translation of hunspell.\n# Copyright (C) 2016 Free Software Foundation, Inc.\n# This file is distributed under "
  },
  {
    "path": "3rdparty/hunspell/po/es_EU.po",
    "chars": 10690,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/fa.po",
    "chars": 10531,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/fr.po",
    "chars": 15925,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/fy.po",
    "chars": 15429,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/gl.po",
    "chars": 15653,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/hr.po",
    "chars": 15240,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/hu.po",
    "chars": 15328,
    "preview": "# Hungarian translation of hunspell.\n# Copyright (C) 2005 Free Software Foundation, Inc.\n# This file is distributed unde"
  },
  {
    "path": "3rdparty/hunspell/po/hunspell.pot",
    "chars": 10556,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/hy.po",
    "chars": 10782,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/ie.po",
    "chars": 14290,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/insert-header.sin",
    "chars": 672,
    "preview": "# Sed script that inserts the file called HEADER before the header entry.\n#\n# At each occurrence of a line starting with"
  },
  {
    "path": "3rdparty/hunspell/po/is.po",
    "chars": 11691,
    "preview": "# Sveinn í Felli <sv1@fellsnet.is>, 2018.\nmsgid \"\"\nmsgstr \"\"\n\"Project-Id-Version: Icelandic (Hunspell)\\n\"\n\"Report-Msgid-"
  },
  {
    "path": "3rdparty/hunspell/po/it.po",
    "chars": 16307,
    "preview": "# Italian translation for hunspell\n# Copyright (c) 2007 Rosetta Contributors and Canonical Ltd 2007\n# Copyright (C) 2009"
  },
  {
    "path": "3rdparty/hunspell/po/ka.po",
    "chars": 15516,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/kab.po",
    "chars": 12998,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/ky.po",
    "chars": 10889,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/lt.po",
    "chars": 11136,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/mk.po",
    "chars": 10708,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/nb_NO.po",
    "chars": 15051,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/nl.po",
    "chars": 15578,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/nl_BE.po",
    "chars": 15627,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/oc.po",
    "chars": 12507,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/pa.po",
    "chars": 11394,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/pl.po",
    "chars": 15507,
    "preview": "# Polish translation for hunspell.\n# Copyright © 2017 the hunspell authors.\n# This file is distributed under the same li"
  },
  {
    "path": "3rdparty/hunspell/po/pt.po",
    "chars": 15529,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/pt_BR.po",
    "chars": 15579,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/pt_PT.po",
    "chars": 15554,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/quot.sed",
    "chars": 129,
    "preview": "s/\"\\([^\"]*\\)\"/“\\1”/g\ns/`\\([^`']*\\)'/‘\\1’/g\ns/ '\\([^`']*\\)' / ‘\\1’ /g\ns/ '\\([^`']*\\)'$/ ‘\\1’/g\ns/^'\\([^`']*\\)' /‘\\1’ /g\ns"
  },
  {
    "path": "3rdparty/hunspell/po/remove-potcdate.sin",
    "chars": 432,
    "preview": "# Sed script that remove the POT-Creation-Date line in the header entry\n# from a POT file.\n#\n# The distinction between t"
  },
  {
    "path": "3rdparty/hunspell/po/ru.po",
    "chars": 15193,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/si.po",
    "chars": 10740,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/sl.po",
    "chars": 15258,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/stamp-po",
    "chars": 10,
    "preview": "timestamp\n"
  },
  {
    "path": "3rdparty/hunspell/po/sv.po",
    "chars": 15104,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/ta.po",
    "chars": 10756,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/tg.po",
    "chars": 15536,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/tr.po",
    "chars": 15176,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/tt.po",
    "chars": 10766,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/uk.po",
    "chars": 15567,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/uz.po",
    "chars": 15272,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/zh_Hans.po",
    "chars": 12986,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/po/zh_Hant.po",
    "chars": 10822,
    "preview": "# SOME DESCRIPTIVE TITLE.\n# Copyright (C) YEAR Free Software Foundation, Inc.\n# This file is distributed under the same "
  },
  {
    "path": "3rdparty/hunspell/src/Makefile.am",
    "chars": 31,
    "preview": "SUBDIRS=hunspell parsers tools\n"
  },
  {
    "path": "3rdparty/hunspell/src/Makefile.in",
    "chars": 19477,
    "preview": "# Makefile.in generated by automake 1.15.1 from Makefile.am.\n# @configure_input@\n\n# Copyright (C) 1994-2017 Free Softwar"
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/Makefile.am",
    "chars": 895,
    "preview": "lib_LTLIBRARIES = libhunspell-1.7.la\nlibhunspell_1_7_includedir = $(includedir)/hunspell\nlibhunspell_1_7_la_SOURCES=affe"
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/Makefile.in",
    "chars": 25339,
    "preview": "# Makefile.in generated by automake 1.15.1 from Makefile.am.\n# @configure_input@\n\n# Copyright (C) 1994-2017 Free Softwar"
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/affentry.cxx",
    "chars": 34884,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/affentry.hxx",
    "chars": 8754,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/affixmgr.cxx",
    "chars": 151900,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/affixmgr.hxx",
    "chars": 15265,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/atypes.hxx",
    "chars": 4087,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/baseaffix.hxx",
    "chars": 2546,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/csutil.cxx",
    "chars": 129669,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/csutil.hxx",
    "chars": 12236,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/filemgr.cxx",
    "chars": 4548,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/filemgr.hxx",
    "chars": 4174,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/hashmgr.cxx",
    "chars": 42673,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/hashmgr.hxx",
    "chars": 6900,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/htypes.hxx",
    "chars": 3147,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/hunspell.cxx",
    "chars": 70015,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/hunspell.h",
    "chars": 7267,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * The contents of this file are subject to t"
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/hunspell.hxx",
    "chars": 9272,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/hunvisapi.h",
    "chars": 495,
    "preview": "#ifndef HUNSPELL_VISIBILITY_H_\n#define HUNSPELL_VISIBILITY_H_\n\n#if defined(HUNSPELL_STATIC)\n#  define LIBHUNSPELL_DLL_EX"
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/hunvisapi.h.in",
    "chars": 511,
    "preview": "#ifndef HUNSPELL_VISIBILITY_H_\n#define HUNSPELL_VISIBILITY_H_\n\n#if defined(HUNSPELL_STATIC)\n#  define LIBHUNSPELL_DLL_EX"
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/hunzip.cxx",
    "chars": 6809,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/hunzip.hxx",
    "chars": 3136,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/langnum.hxx",
    "chars": 2586,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/phonet.cxx",
    "chars": 8448,
    "preview": "/*  phonetic.c - generic replacement aglogithms for phonetic transformation\n    Copyright (C) 2000 Bjoern Jacke\n\n    Thi"
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/phonet.hxx",
    "chars": 1611,
    "preview": "/*  phonetic.c - generic replacement aglogithms for phonetic transformation\n    Copyright (C) 2000 Bjoern Jacke\n\n    Thi"
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/replist.cxx",
    "chars": 6655,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/replist.hxx",
    "chars": 4225,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/suggestmgr.cxx",
    "chars": 71253,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/suggestmgr.hxx",
    "chars": 8358,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/utf_info.hxx",
    "chars": 2603891,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/hunspell/w_char.hxx",
    "chars": 2979,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/parsers/Makefile.am",
    "chars": 599,
    "preview": "\nAM_CPPFLAGS=-I${top_builddir}/src/hunspell\n\nnoinst_LIBRARIES=libparsers.a\nlibparsers_a_SOURCES=firstparser.cxx xmlparse"
  },
  {
    "path": "3rdparty/hunspell/src/parsers/Makefile.in",
    "chars": 21544,
    "preview": "# Makefile.in generated by automake 1.15.1 from Makefile.am.\n# @configure_input@\n\n# Copyright (C) 1994-2017 Free Softwar"
  },
  {
    "path": "3rdparty/hunspell/src/parsers/firstparser.cxx",
    "chars": 2443,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/parsers/firstparser.hxx",
    "chars": 2185,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/parsers/htmlparser.cxx",
    "chars": 3455,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/parsers/htmlparser.hxx",
    "chars": 2202,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/parsers/latexparser.cxx",
    "chars": 10331,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/parsers/latexparser.hxx",
    "chars": 2423,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/parsers/manparser.cxx",
    "chars": 3282,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/parsers/manparser.hxx",
    "chars": 2215,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/parsers/odfparser.cxx",
    "chars": 3141,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/parsers/odfparser.hxx",
    "chars": 2252,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  },
  {
    "path": "3rdparty/hunspell/src/parsers/testparser.cxx",
    "chars": 2895,
    "preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Version: MPL 1.1/GPL 2.0/LGPL 2.1\n *\n * Copyright (C) 2002-2022 Németh László\n *\n "
  }
]

// ... and 2341 more files (download for full content)

About this extraction

This page contains the full source code of the user-none/Sigil GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2541 files (59.2 MB), approximately 15.6M tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!