]> Sergey Matveev's repositories - dotfiles.git/commitdiff
No on-data caches master
authorSergey Matveev <stargrave@stargrave.org>
Sat, 6 Apr 2024 07:43:13 +0000 (10:43 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sat, 6 Apr 2024 07:43:13 +0000 (10:43 +0300)
402 files changed:
anchors/ca/cacert.org.pem [new file with mode: 0644]
anchors/ca/digicert/BaltimoreCyberTrustRoot.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertAssuredIDRootCA.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertAssuredIDRootG2.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertAssuredIDRootG3.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertCSECCP384RootG5.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertCSRSA4096RootG5.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertClientECCP384RootG5.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertClientRSA4096RootG5.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertECCP384RootG5.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertFederatedIDRootCA.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertGlobalRootCA.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertGlobalRootG2.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertGlobalRootG3.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertHighAssuranceEVRootCA.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertPrivateServicesRoot.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertRSA4096RootG5.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertSMIMEECCP384RootG5.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertSMIMERSA4096RootG5.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertTLSECCP384RootG5.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertTLSRSA4096RootG5.pem [new file with mode: 0644]
anchors/ca/digicert/DigiCertTrustedRootG4.pem [new file with mode: 0644]
anchors/ca/digicert/GeoTrustPCA-G2.pem [new file with mode: 0644]
anchors/ca/digicert/GeoTrustPCA-G3.pem [new file with mode: 0644]
anchors/ca/digicert/GeoTrustPCA.pem [new file with mode: 0644]
anchors/ca/digicert/VerizonGlobalRootCA.pem [new file with mode: 0644]
anchors/ca/digicert/pca3-g3.pem [new file with mode: 0644]
anchors/ca/digicert/pca3-g4.pem [new file with mode: 0644]
anchors/ca/digicert/pca3-g5.pem [new file with mode: 0644]
anchors/ca/digicert/pca3-g6.pem [new file with mode: 0644]
anchors/ca/digicert/symc-pca3-g4.pem [new file with mode: 0644]
anchors/ca/digicert/universal-root.pem [new file with mode: 0644]
anchors/ca/gogetssl.pem [new file with mode: 0644]
anchors/ca/lets-encrypt/e1.pem [new file with mode: 0644]
anchors/ca/lets-encrypt/e2.pem [new file with mode: 0644]
anchors/ca/lets-encrypt/r3.pem [new file with mode: 0644]
anchors/ca/lets-encrypt/r4.pem [new file with mode: 0644]
anchors/ca/lets-encrypt/x1.pem [new file with mode: 0644]
anchors/ca/lets-encrypt/x2.pem [new file with mode: 0644]
anchors/ca/ru/RussianTrustedRoot.csv.do [new file with mode: 0644]
anchors/ca/ru/RussianTrustedRoot.pem [new file with mode: 0644]
anchors/ca/ru/RussianTrustedRoot.pem.p7s [new file with mode: 0644]
anchors/ca/ru/reestr-pki/README [new file with mode: 0644]
anchors/ca/ru/reestr-pki/guc.pem [new file with mode: 0644]
anchors/ca/ru/reestr-pki/guc2020.pem [new file with mode: 0644]
anchors/ca/ru/reestr-pki/guc2021.pem [new file with mode: 0644]
anchors/ca/ru/reestr-pki/guc2022.pem [new file with mode: 0644]
anchors/ca/ru/reestr-pki/guc_gost12.pem [new file with mode: 0644]
anchors/ca/ru/reestr-pki/guc_unep_2021.pem [new file with mode: 0644]
anchors/ca/ru/reestr-pki/rootca_ssl_rsa2022.pem [new file with mode: 0644]
anchors/ca/ru/reestr-pki/subcaDV_ssl_rsa2022.pem [new file with mode: 0644]
anchors/ca/ru/reestr-pki/subca_ssl_rsa2022.pem [new file with mode: 0644]
anchors/ca/ru/reestr-pki/vguc1.pem [new file with mode: 0644]
anchors/ca/ru/reestr-pki/vguc1_2.pem [new file with mode: 0644]
anchors/ca/ru/reestr-pki/vguc1_3.pem [new file with mode: 0644]
anchors/ca/ru/reestr-pki/vguc1_4.pem [new file with mode: 0644]
anchors/ca/ru/reestr-pki/vguc1_5.pem [new file with mode: 0644]
anchors/ca/ru/reestr-pki/vguc1_6.pem [new file with mode: 0644]
anchors/ca/ru/reestr-pki/vguc2.pem [new file with mode: 0644]
anchors/ca/ru/reestr-pki/vguc2_2.pem [new file with mode: 0644]
anchors/ca/ru/Корус.pem [new file with mode: 0644]
anchors/ca/ru/Минкомсвязь.pem [new file with mode: 0644]
anchors/ca/ru/Минобороны.pem [new file with mode: 0644]
anchors/ca/ru/Минцифры.pem [new file with mode: 0644]
anchors/ca/ru/Росказна.pem [new file with mode: 0644]
anchors/ca/ru/Росреестр.pem [new file with mode: 0644]
anchors/ca/ru/ТЦИ.pem [new file with mode: 0644]
anchors/ca/ru/ФКПРосреестр.pem [new file with mode: 0644]
anchors/ca/sectigo.pem [new file with mode: 0644]
anchors/ca/thawte/Primary_Root_CA-G2_ECC.pem [new file with mode: 0644]
anchors/ca/thawte/Primary_Root_CA-G3_SHA256.pem [new file with mode: 0644]
anchors/ca/thawte/Primary_Root_CA-G4_DSA.pem [new file with mode: 0644]
anchors/ca/thawte/Primary_Root_CA.pem [new file with mode: 0644]
anchors/ca/thawte/Timestamping_CA.pem [new file with mode: 0644]
anchors/ca/zerossl.pem [new file with mode: 0644]
anchors/dns/@ [new file with mode: 0644]
anchors/dns/@.do [new file with mode: 0644]
anchors/dns/buddyns.com [new file with mode: 0644]
anchors/dns/dnscurve.cz [new file with mode: 0644]
anchors/dns/ianix.com [new file with mode: 0644]
anchors/dns/root-servers.net.zone.do [new file with mode: 0644]
anchors/dns/stargrave.org [new file with mode: 0644]
anchors/dns/yp.to [new file with mode: 0644]
anchors/dnssec/default.do [new file with mode: 0644]
anchors/dnssec/root.key [new file with mode: 0644]
anchors/dnssec/root.key.do [new file with mode: 0644]
aria2/.aria2/aria2.conf
bin/bin/4k2mpeg2.sh [deleted file]
bin/bin/bitlbee.sh [deleted file]
bin/bin/cfmt.sh [deleted file]
bin/bin/cp-sorted [moved from bin/bin/cp-sorted.sh with 100% similarity]
bin/bin/cueparser [new file with mode: 0755]
bin/bin/cueparser.sh [deleted file]
bin/bin/dc-wrapped.sh [deleted file]
bin/bin/dl-magnet [new file with mode: 0755]
bin/bin/docstringer.pl
bin/bin/exifrm.sh [deleted file]
bin/bin/gemget [new file with mode: 0755]
bin/bin/gen-ula [new file with mode: 0755]
bin/bin/git-list-gen [new file with mode: 0755]
bin/bin/gpg-e-fast.sh [deleted file]
bin/bin/ips [new file with mode: 0755]
bin/bin/jpegtran.sh [deleted file]
bin/bin/mail_dup_hdrs_remove.pl [new file with mode: 0755]
bin/bin/mail_dup_hdrs_remove.py [deleted file]
bin/bin/meshname [new file with mode: 0755]
bin/bin/mirror-page-warc.sh [deleted file]
bin/bin/mirror-page.sh [deleted file]
bin/bin/mirror-site-warc.sh [deleted file]
bin/bin/mirror-site.sh [deleted file]
bin/bin/mkss [new file with mode: 0755]
bin/bin/mkvclean.sh [deleted file]
bin/bin/mp [deleted file]
bin/bin/music-indexer [new file with mode: 0755]
bin/bin/music-renamer [new file with mode: 0755]
bin/bin/mv-hsh [moved from bin/bin/mv-sha.sh with 70% similarity]
bin/bin/my-bunzip2 [new file with mode: 0755]
bin/bin/my-cleanup [moved from bin/bin/cleanup.sh with 78% similarity]
bin/bin/my-der2pem [moved from bin/bin/der2pem.sh with 100% similarity]
bin/bin/my-mtree [new file with mode: 0755]
bin/bin/my-pem2der [moved from bin/bin/pem2der.sh with 100% similarity]
bin/bin/my-ps2pdf [new file with mode: 0755]
bin/bin/my-scan [moved from bin/bin/scan.sh with 96% similarity]
bin/bin/my-tree [moved from bin/bin/tree.sh with 100% similarity]
bin/bin/my-xmlpretty [moved from bin/bin/xmlpretty.sh with 100% similarity]
bin/bin/my-zstd [new file with mode: 0755]
bin/bin/pe [deleted file]
bin/bin/plantuml
bin/bin/pngcrush.sh [deleted file]
bin/bin/ps2pdf.sh [deleted file]
bin/bin/rem
bin/bin/start-im [deleted file]
bin/bin/start-lynx.sh [deleted file]
bin/bin/texinavfix.pl [deleted file]
bin/bin/tmux-common.sh [deleted file]
bin/bin/tmux-fzf.zsh [deleted file]
bin/bin/tmux-git-extractor.sh [deleted file]
bin/bin/tmux-menu-pass.sh [deleted file]
bin/bin/www [deleted file]
bin/bin/xstatusbar.sh [deleted file]
bin/bin/yt [deleted file]
bin/bin/zsnap [moved from bin/bin/zsnap.zsh with 67% similarity]
bin/bin/zstd-gut.sh [deleted file]
clang-format/.clang-format
dc/.dc [new file with mode: 0644]
dc/bin/zc [new file with mode: 0755]
eb/.ebrc [new file with mode: 0644]
eb/.inputrc-eb [new file with mode: 0644]
eb/bin/eb [new file with mode: 0755]
git/.git-ignore
git/.gitconfig
git/.zsh/functions/Gam [new file with mode: 0644]
git/.zsh/functions/Gbr [new file with mode: 0644]
git/.zsh/functions/Gg [new file with mode: 0644]
git/.zsh/functions/Gm [new file with mode: 0644]
git/.zsh/functions/Gr [new file with mode: 0644]
git/.zsh/rc/010git.zsh [new file with mode: 0644]
git/.zsh/rc/010vcs.zsh [new file with mode: 0644]
gnupg/.gnupg/gpg.conf
gnupg/.zsh/rc/010gpg.zsh [new file with mode: 0644]
gnupg/bin/mk-wkd-keys [new file with mode: 0755]
go/bin/go-clean [new file with mode: 0755]
go/bin/go-fix-bash [moved from bin/bin/go-fix-bash with 100% similarity]
img/bin/my-cwebp [moved from bin/bin/cwebp.sh with 100% similarity]
img/bin/my-cwebpl [moved from bin/bin/cwebpl.sh with 100% similarity]
img/bin/my-exifrm [new file with mode: 0755]
img/bin/my-jxll [new file with mode: 0755]
img/bin/my-pngcrush [new file with mode: 0755]
img/bin/my-transcode-jpg [new file with mode: 0755]
irssi/.irssi/config.skel
less/.lesskey [new file with mode: 0644]
less/.zsh/env/005less.zsh [new file with mode: 0644]
less/.zsh/rc/010less.zsh [new file with mode: 0644]
lftp/.lftprc [new file with mode: 0644]
link-for/bin/link-for-blog [new file with mode: 0755]
link-for/bin/link-for-github-release [new file with mode: 0755]
link-for/bin/link-for-rfc [new file with mode: 0755]
link-for/bin/link-for-youtube [new file with mode: 0755]
links/bin/xom [new file with mode: 0755]
lldb/.lldbinit
lynx/.lynx.cfg
lynx/.lynx_jumps.html
lynx/.mailcap
lynx/.zsh/env/005lynx.zsh [new file with mode: 0644]
mkv/bin/my-mkvmerge [new file with mode: 0755]
mpv/.mpv/config
mpv/.mpv/input.conf
mpv/bin/4k2mpeg2 [new file with mode: 0755]
mpv/bin/mp [new file with mode: 0755]
mutt/.mime.types
mutt/.mutt/color [deleted file]
mutt/.mutt/colour.rc [new file with mode: 0644]
mutt/.mutt/muttrc
mutt/.mutt/useragent.rc [new file with mode: 0644]
mutt/.muttrc
mutt/.signature
mutt/.zsh/rc/010mail.zsh [new file with mode: 0644]
mutt/bin/cfind [moved from bin/bin/cfind with 100% similarity]
mutt/bin/inc [moved from bin/bin/inc with 100% similarity]
mutt/bin/mfind [moved from bin/bin/mfind with 100% similarity]
mutt/bin/sent [new file with mode: 0755]
newsboat/.newsboat/config [deleted file]
nnn/.zsh/aliases/mc [new file with mode: 0644]
nnn/.zsh/env/005nnn.zsh [new file with mode: 0644]
nnn/bin/_nnn-cd [new file with mode: 0755]
nnn/bin/_nnn-cp [new file with mode: 0755]
parallel/.parallel/config [new file with mode: 0644]
parallel/.parallel/will-cite [deleted file]
pdb/.pdbrc
pip/.pip/pip.conf
readline/.inputrc
recoll/.zsh/env/005recoll.zsh [new file with mode: 0644]
recoll/bin/my-pdftotext [new file with mode: 0755]
recoll/bin/my-pdftotext-fast [new file with mode: 0755]
recoll/bin/rcl [new file with mode: 0755]
recoll/recoll/main/mimeconf [new file with mode: 0644]
recoll/recoll/man/mimemap [new file with mode: 0644]
recoll/recoll/man/recoll.conf [new file with mode: 0644]
recoll/recoll/rfc/mimeconf [new file with mode: 0644]
recoll/recoll/rfc/recoll.conf [new file with mode: 0644]
ssh/.ssh-config [new file with mode: 0644]
ssh/.zsh/functions/ssht [new file with mode: 0644]
ssh/.zsh/rc/010ssh.zsh [new file with mode: 0644]
ssh/bin/my-ssh-new-key [new file with mode: 0755]
tmux/.tmux.conf
tmux/.tmux/bin/common.sh [new file with mode: 0644]
tmux/.tmux/bin/fzf.zsh [new file with mode: 0755]
tmux/.tmux/bin/menu-calc.sh [moved from bin/bin/tmux-menu-calc.sh with 100% similarity]
tmux/.tmux/bin/menu-dict.sh [moved from bin/bin/tmux-menu-dict.sh with 53% similarity]
tmux/.tmux/bin/menu-music.sh [moved from bin/bin/tmux-menu-music.sh with 71% similarity]
tmux/.tmux/bin/menu-pass-session.sh [moved from bin/bin/tmux-menu-pass-session.sh with 84% similarity]
tmux/.tmux/bin/menu-pass.sh [new file with mode: 0755]
tmux/.tmux/functions.zsh/tmux-fzf-find [new file with mode: 0644]
tmux/.tmux/functions.zsh/tmux-fzf-git-branches [new file with mode: 0644]
tmux/.tmux/functions.zsh/tmux-fzf-git-commits [new file with mode: 0644]
tmux/.tmux/functions.zsh/tmux-fzf-git-files [new file with mode: 0644]
tmux/.tmux/functions.zsh/tmux-fzf-procs [new file with mode: 0644]
tmux/.tmux/rc/capture [new file with mode: 0644]
tmux/.tmux/rc/menu-fzf [new file with mode: 0644]
tmux/.tmux/rc/menu-various [new file with mode: 0644]
tmux/.tmux/rc/urlview [new file with mode: 0644]
update [moved from update.sh with 100% similarity]
urlview/.urlview [deleted file]
urlview/bin/urlview [new file with mode: 0755]
vim/.vim/after/ftplugin/c/autos.vim [new file with mode: 0644]
vim/.vim/autoload/fmt.vim [new file with mode: 0644]
vim/.vim/autoload/go/jump.vim [new file with mode: 0644]
vim/.vim/autoload/mutt.vim [new file with mode: 0644]
vim/.vim/ftdetect/ch.vim [new file with mode: 0644]
vim/.vim/ftdetect/hjson.vim
vim/.vim/ftdetect/mutt.vim
vim/.vim/ftdetect/tex.vim [deleted file]
vim/.vim/ftplugin/c/abs.vim [new file with mode: 0644]
vim/.vim/ftplugin/c/autos.vim
vim/.vim/ftplugin/c/fmt.vim [new file with mode: 0644]
vim/.vim/ftplugin/c/lsp.vim [deleted file]
vim/.vim/ftplugin/gitcommit/autos.vim [new file with mode: 0644]
vim/.vim/ftplugin/gitcommit/spell.vim [deleted file]
vim/.vim/ftplugin/gitcommit/tw.vim [deleted file]
vim/.vim/ftplugin/go/autos.vim
vim/.vim/ftplugin/go/fmt.vim
vim/.vim/ftplugin/go/gogetdoc.vim [deleted file]
vim/.vim/ftplugin/go/lsp.vim [deleted file]
vim/.vim/ftplugin/go/motion.vim
vim/.vim/ftplugin/hjson/autos.vim [new file with mode: 0644]
vim/.vim/ftplugin/html/autos.vim [new file with mode: 0644]
vim/.vim/ftplugin/mutt/autos.vim [new file with mode: 0644]
vim/.vim/ftplugin/python/autos.vim
vim/.vim/ftplugin/python/importcompl.vim [deleted file]
vim/.vim/ftplugin/python/lsp.vim [deleted file]
vim/.vim/ftplugin/python/pdb.vim [new file with mode: 0644]
vim/.vim/ftplugin/python/pep8.vim [deleted file]
vim/.vim/ftplugin/python/pylint.vim [deleted file]
vim/.vim/ftplugin/python/testname.vim [deleted file]
vim/.vim/ftplugin/python/unused_remover.vim [deleted file]
vim/.vim/ftplugin/rust/autos.vim [deleted file]
vim/.vim/ftplugin/sql/comments.vim [new file with mode: 0644]
vim/.vim/ftplugin/tcl/man.vim [new file with mode: 0644]
vim/.vim/ftplugin/tex/autos.vim [new file with mode: 0644]
vim/.vim/ftplugin/texinfo/autos.vim
vim/.vim/ftplugin/vim/autos.vim [new file with mode: 0644]
vim/.vim/ftplugin/yaml/autos.vim
vim/.vim/pack/stargrave/start/align/autoload/align.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/align/plugin/align.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/buftabline/autoload/buftabline.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/buftabline/plugin/buftabline.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/chnglstnav/autoload/chnglstnav.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/chnglstnav/plugin/chnglstnav.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/ctags/autoload/ctags.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/ctags/plugin/ctags.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/defsplit/autoload/defsplit.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/defsplit/plugin/defsplit.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/fileline/autoload/fileline.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/fileline/plugin/fileline.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/go-gogetdoc/autoload/go/getdoc.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/go-gogetdoc/ftplugin/go/gogetdoc.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/mark/autoload/mark.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/mark/plugin/mark.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/navindent/autoload/navindent.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/navindent/plugin/navindent.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/nonhumanhl/autoload/nonhumanhl.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/nonhumanhl/plugin/nonhumanhl.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/py-importcompl/autoload/python/importcompl.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/py-importcompl/autoload/python/unused.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/py-importcompl/ftplugin/python/importcompl.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/py-pep8/autoload/python/pep8.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/py-pep8/ftplugin/python/pep8.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/py-testname/autoload/python/testname.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/py-testname/ftplugin/python/testname.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/whereami/autoload/whereami.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/whereami/plugin/whereami.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/zshfe/autoload/zshfe.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/zshfe/plugin/zshfe.vim [new file with mode: 0644]
vim/.vim/pack/stargrave/start/zshfe/plugin/zshfe.zsh [moved from vim/.vim/plugin/zshfe.zsh with 92% similarity]
vim/.vim/plugin/bracketedpaste.vim [new file with mode: 0644]
vim/.vim/plugin/buftabline.vim [deleted file]
vim/.vim/plugin/chnglstnav.vim [deleted file]
vim/.vim/plugin/ctags.vim [deleted file]
vim/.vim/plugin/defsplit.vim [deleted file]
vim/.vim/plugin/disables.vim
vim/.vim/plugin/exted.vim
vim/.vim/plugin/file_line.vim [deleted file]
vim/.vim/plugin/fzf.vim [deleted file]
vim/.vim/plugin/ggrep.vim
vim/.vim/plugin/git-alias.vim [new file with mode: 0644]
vim/.vim/plugin/grep.vim
vim/.vim/plugin/lsp.vim
vim/.vim/plugin/netrw.vim
vim/.vim/plugin/pastemode.vim [deleted file]
vim/.vim/plugin/whereami.vim [deleted file]
vim/.vim/plugin/zshfe.vim [deleted file]
vim/.vimrc
vim/.zsh/aliases/vi [new file with mode: 0644]
vim/bin/mktags [moved from bin/bin/mktags with 100% similarity]
vim/bin/qq [moved from bin/bin/qq with 77% similarity]
vim/bin/vimclear [moved from bin/bin/vimclear.sh with 100% similarity]
x/.Xresources
x/.drirc [new file with mode: 0644]
x/.xinitrc
x/bin/dwm-menu [moved from bin/bin/dwm-menu with 100% similarity]
x/bin/dwm-term [moved from bin/bin/dwm-term with 100% similarity]
x/bin/dwm-term-session [moved from bin/bin/dwm-term-session with 100% similarity]
x/bin/mylock [moved from bin/bin/mylock with 100% similarity]
x/bin/start-im [new file with mode: 0755]
x/bin/start-tabbed.sh [moved from bin/bin/start-tabbed.sh with 96% similarity]
x/bin/start-x [moved from bin/bin/start-x with 100% similarity]
x/bin/xr-external [moved from bin/bin/xr-external with 100% similarity]
x/bin/xr-internal [moved from bin/bin/xr-internal with 100% similarity]
xombrero/.xombrero.conf [deleted file]
youtube-dl/.youtube-dl.conf
youtube-dl/bin/yt [new file with mode: 0755]
youtube-dl/bin/ytb [moved from bin/bin/ytb with 52% similarity]
zathura/bin/zat [moved from bin/bin/zat with 87% similarity]
zsh/.zlogout
zsh/.zprofile
zsh/.zsh/aliases/grep [new file with mode: 0644]
zsh/.zsh/aliases/ls [new file with mode: 0644]
zsh/.zsh/aliases/redirects [new file with mode: 0644]
zsh/.zsh/aliases/tai [new file with mode: 0644]
zsh/.zsh/aliases/wc [new file with mode: 0644]
zsh/.zsh/env/005functions.zsh [new file with mode: 0644]
zsh/.zsh/env/005history.zsh [new file with mode: 0644]
zsh/.zsh/env/005irc.zsh [new file with mode: 0644]
zsh/.zsh/env/005ls.zsh [new file with mode: 0644]
zsh/.zsh/env/005paths.zsh [new file with mode: 0644]
zsh/.zsh/env/005redo.zsh [new file with mode: 0644]
zsh/.zsh/env/005sdcv.zsh [new file with mode: 0644]
zsh/.zsh/env/005term.zsh [new file with mode: 0644]
zsh/.zsh/env/005xdg.zsh [new file with mode: 0644]
zsh/.zsh/env/010c.zsh [new file with mode: 0644]
zsh/.zsh/env/010go.zsh [new file with mode: 0644]
zsh/.zsh/env/010python.zsh [new file with mode: 0644]
zsh/.zsh/env/010tabbed.zsh [new file with mode: 0644]
zsh/.zsh/functions/PV [new file with mode: 0644]
zsh/.zsh/functions/arr [new file with mode: 0644]
zsh/.zsh/functions/cf [new file with mode: 0644]
zsh/.zsh/functions/f [new file with mode: 0644]
zsh/.zsh/functions/g [new file with mode: 0644]
zsh/.zsh/functions/mbox [new file with mode: 0644]
zsh/.zsh/rc/005basic.zsh [new file with mode: 0644]
zsh/.zsh/rc/005history-cfg.zsh [new file with mode: 0644]
zsh/.zsh/rc/005home,end.zsh [new file with mode: 0644]
zsh/.zsh/rc/005vi.zsh [new file with mode: 0644]
zsh/.zsh/rc/010aliases.zsh [new file with mode: 0644]
zsh/.zsh/rc/010autoload.zsh [new file with mode: 0644]
zsh/.zsh/rc/010cd...zsh [new file with mode: 0644]
zsh/.zsh/rc/010history-bind.zsh [new file with mode: 0644]
zsh/.zsh/rc/010mime.zsh [new file with mode: 0644]
zsh/.zsh/rc/010popd.zsh [new file with mode: 0644]
zsh/.zsh/rc/010zle.zsh [new file with mode: 0644]
zsh/.zsh/rc/010zmv.zsh [new file with mode: 0644]
zsh/.zsh/rc/015completion.zsh [new file with mode: 0644]
zsh/.zsh/rc/015prompt.zsh [new file with mode: 0644]
zsh/.zsh/rc/020autosuggestions.zsh [new file with mode: 0644]
zsh/.zsh/rc/020highlight.zsh [new file with mode: 0644]
zsh/.zsh/rc/020zhashd.zsh [new file with mode: 0644]
zsh/.zsh/rc/025paste-notrailing-newline.zsh [new file with mode: 0644]
zsh/.zsh/rc/025zaq.zsh [new file with mode: 0644]
zsh/.zsh/rc/050autoenv.zsh [new file with mode: 0644]
zsh/.zshenv
zsh/.zshrc
zsh/bin/zsh-mime-open [new file with mode: 0755]

diff --git a/anchors/ca/cacert.org.pem b/anchors/ca/cacert.org.pem
new file mode 100644 (file)
index 0000000..8ef0716
--- /dev/null
@@ -0,0 +1,40 @@
+-----BEGIN CERTIFICATE-----
+MIIG7jCCBNagAwIBAgIBDzANBgkqhkiG9w0BAQsFADB5MRAwDgYDVQQKEwdSb290
+IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB
+IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA
+Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO
+BgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi
+MCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ
+ARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ
+8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6
+zWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y
+fk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7
+w2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc
+G8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k
+epKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q
+laegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ
+QUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU
+fslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826
+YreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAX8w
+ggF7MB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TAPBgNVHRMBAf8EBTAD
+AQH/MDQGCWCGSAGG+EIBCAQnFiVodHRwOi8vd3d3LmNhY2VydC5vcmcvaW5kZXgu
+cGhwP2lkPTEwMFYGCWCGSAGG+EIBDQRJFkdUbyBnZXQgeW91ciBvd24gY2VydGlm
+aWNhdGUgZm9yIEZSRUUgaGVhZCBvdmVyIHRvIGh0dHA6Ly93d3cuY2FjZXJ0Lm9y
+ZzAxBgNVHR8EKjAoMCagJKAihiBodHRwOi8vY3JsLmNhY2VydC5vcmcvcmV2b2tl
+LmNybDAzBglghkgBhvhCAQQEJhYkVVJJOmh0dHA6Ly9jcmwuY2FjZXJ0Lm9yZy9y
+ZXZva2UuY3JsMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAYYWaHR0cDovL29j
+c3AuY2FjZXJ0Lm9yZzAfBgNVHSMEGDAWgBQWtTIb1Mfz4OaO873SsDrusjkY0TAN
+BgkqhkiG9w0BAQsFAAOCAgEAR5zXs6IX01JTt7Rq3b+bNRUhbO9vGBMggczo7R0q
+Ih1kdhS6WzcrDoO6PkpuRg0L3qM7YQB6pw2V+ubzF7xl4C0HWltfzPTbzAHdJtja
+JQw7QaBlmAYpN2CLB6Jeg8q/1Xpgdw/+IP1GRwdg7xUpReUA482l4MH1kf0W0ad9
+4SuIfNWQHcdLApmno/SUh1bpZyeWrMnlhkGNDKMxCCQXQ360TwFHc8dfEAaq5ry6
+cZzm1oetrkSviE2qofxvv1VFiQ+9TX3/zkECCsUB/EjPM0lxFBmu9T5Ih+Eqns9i
+vmrEIQDv9tNyJHuLsDNqbUBal7OoiPZnXk9LH+qb+pLf1ofv5noy5vX2a5OKebHe
++0Ex/A7e+G/HuOjVNqhZ9j5Nispfq9zNyOHGWD8ofj8DHwB50L1Xh5H+EbIoga/h
+JCQnRtxWkHP699T1JpLFYwapgplivF4TFv4fqp0nHTKC1x9gGrIgvuYJl1txIKmx
+XdfJzgscMzqpabhtHOMXOiwQBpWzyJkofF/w55e0LttZDBkEsilV/vW0CJsPs3eN
+aQF+iMWscGOkgLFlWsAS3HwyiYLNJo26aqyWPaIdc8E4ck7Sk08WrFrHIK3EHr4n
+1FZwmLpFAvucKqgl0hr+2jypyh5puA3KksHF3CsUzjMUvzxMhykh9zrMxQAHLBVr
+Gwc=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/BaltimoreCyberTrustRoot.pem b/anchors/ca/digicert/BaltimoreCyberTrustRoot.pem
new file mode 100644 (file)
index 0000000..519028c
--- /dev/null
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
+DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
+ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
+VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
+mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
+IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
+mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
+XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
+dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
+jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
+BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
+DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
+9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
+jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
+Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
+ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
+R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertAssuredIDRootCA.pem b/anchors/ca/digicert/DigiCertAssuredIDRootCA.pem
new file mode 100644 (file)
index 0000000..2731638
--- /dev/null
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
+b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
+cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
+JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
+mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
+VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
+AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
+AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
+BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
+pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
+dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
+fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
+NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
+H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertAssuredIDRootG2.pem b/anchors/ca/digicert/DigiCertAssuredIDRootG2.pem
new file mode 100644 (file)
index 0000000..fc60fb5
--- /dev/null
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
+b3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
+cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA
+n61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc
+biJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp
+EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA
+bx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu
+YjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB
+AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW
+BBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI
+QW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I
+0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni
+lmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9
+B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv
+ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
+IhNzbM8m9Yop5w==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertAssuredIDRootG3.pem b/anchors/ca/digicert/DigiCertAssuredIDRootG3.pem
new file mode 100644 (file)
index 0000000..244c99b
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw
+CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
+ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg
+RzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV
+UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
+Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq
+hkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf
+Zn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q
+RSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
+BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD
+AwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY
+JjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv
+6pZjamVFkpUBtA==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertCSECCP384RootG5.pem b/anchors/ca/digicert/DigiCertCSECCP384RootG5.pem
new file mode 100644 (file)
index 0000000..f567100
--- /dev/null
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICFjCCAZ2gAwIBAgIQA2mP5xLVGfPO0P23sWQwETAKBggqhkjOPQQDAzBNMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERp
+Z2lDZXJ0IENTIEVDQyBQMzg0IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYw
+MTE0MjM1OTU5WjBNMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIElu
+Yy4xJTAjBgNVBAMTHERpZ2lDZXJ0IENTIEVDQyBQMzg0IFJvb3QgRzUwdjAQBgcq
+hkjOPQIBBgUrgQQAIgNiAAR/FK2Ftpf9AiE1TWDoOJOTmz0FEG2v0/7v+rv7c5nz
+7DISjcdouIveiaKIVHeNuyF+M5VWlgno1YyhBLibbhkAYuhCKKZYN4QZVSZ7Mzdn
+8ppyraGurgBCPBx+uHqeIZyjQjBAMB0GA1UdDgQWBBTwjJhxOThlwjobphdmHcjt
+Zd6SNjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQD
+AwNnADBkAjAjb+EAGSZQ5EYgZYs3p8/rBuHMMskqoewyDXOiHgIcNWEqTmmrOXft
+l4jAfWvqid0CMEPx0VijdT6Gm7ZVEYsX9z3+CmnFf07GdRtalMvqERHGCCKI3tB6
+oqV56OMhp80Tsw==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertCSRSA4096RootG5.pem b/anchors/ca/digicert/DigiCertCSRSA4096RootG5.pem
new file mode 100644 (file)
index 0000000..a56b96b
--- /dev/null
@@ -0,0 +1,31 @@
+-----BEGIN CERTIFICATE-----
+MIIFZDCCA0ygAwIBAgIQBs7hMb5tVcgH98DH+0TmIDANBgkqhkiG9w0BAQwFADBM
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJDAiBgNVBAMT
+G0RpZ2lDZXJ0IENTIFJTQTQwOTYgUm9vdCBHNTAeFw0yMTAxMTUwMDAwMDBaFw00
+NjAxMTQyMzU5NTlaMEwxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg
+SW5jLjEkMCIGA1UEAxMbRGlnaUNlcnQgQ1MgUlNBNDA5NiBSb290IEc1MIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtjNzgNhiA3AULBEcOV58rnyDhh3+
+Ji9MJK2L6oNfqbw9W/wLmEwCRzDs4v7s6DRbZl6/O9cspiX/jFmz3+rafCnZRlBy
+CB1u0RsK3R/NmYn6Dw9zxOGcHXUyzW+X2ipqlbJsyQnQ6gt7fRcGSZnv1t7gyFPU
+rsZ38Ya7Ixy4wN9Z94590e+C5iaLWji1/3XVstlPCfM3iFDaEaSKFBTRUwQAffNq
+RBj+UHAyBxyomg46HcUKH24LJmm3PKJXcCyG+kxulalYQ7msEtb/P+3XQxdrTM6e
+xJCr//oQUJqjkFfW54wQrp8WGs81HX/Xdu2KnDWnKLinXSH8MDfd3ggZTxXG56ba
+kEeO95RTTI5TAr79meXqhtCvAwLTm6qT8asojiAB/0z7zLcpQPWHpBITBR9DbtdR
+UJ84tCDtFwkSj8y5Ga+fzb5pEdOvVRBtF4Z5llLGsgCd5a84sDX0iGuPDgQ9fO6v
+zdNqEErGzYbKIj2hSlz7Dv+I31xip8C5HtmsbH44N/53kyXChYpPtTcGWgaBFPHO
+lJ2ZkeoyWs5nPW4EZq0MTy2jLvee9Xid9wr9fo/jQopVlrzxnzct/J5flf6MGBv8
+jv1LkK/XA2gSY6zik6eiywTlT2TOA/rGFJ/Zi+jM1GKMa+QALBmfGgbGMYFU+1Mk
+mq9Vmbqdda64wt0CAwEAAaNCMEAwHQYDVR0OBBYEFGgBk7HSSkBCaZRGLBxaiKkl
+tEdPMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
+DAUAA4ICAQCS/O64AnkXAlF9IcVJZ6ek8agkOOsMaOpaQmuc9HPBaUotszcFUEKY
+kp4GeSwuBpn2798roM2zkgGDtaDLJ7U8IxqYSaLsLZmlWUOs0rGT1lfXHLyT1sZA
+4bNvGVW3E9flQzOktavL2sExZA101iztw41u67uvGUdhYS3A9AW5b3jcOvdCQGVT
+kb2ZDZOSVKapN1krm8uZxrw99wSE8JQzHQ+CWjnLLkXDKBmjspuYyPwxa2CP9umG
+KLzgPH10XRaJW2kkxxCLxEu7Nk/UWT/DsKSRmfgu0UoBnfWIEu+/WhFqWU9Za1pn
+84+0Ew/A2C89KHKqGX8RfWpbn5XnX7eUT/E+oVr/Lcyd3yd3jzJzHGcKdvP6XLG/
+vB29DCibsscXZwszD8O9Ntz7ukILq+2Ew2LWhBapsQdrqW7uxs/msEQpwvCzYYAq
+i2/SFFwlh1Rk86RMwaH4p2vq/uo6/HnbDo/cxvPJ1Gze6YOhjh0i7Mk6sgB73Dun
+Qhp/3IupET2Op8Agb10JXUNE5o9mzKlbB/Hvm3oOs1ThlP0OLMaT11X9cZg1uAlK
+/8YpKCz2Ui3bFBiSJ+IWfozK1GG+goeR65g3P79fXXc/NKwbOEOraHKZMh46Ghml
+ozhMI9ej58zVKpIXkAtaS70WvfuGauKJmezkoFUYyaMIHxPgMghy0A==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertClientECCP384RootG5.pem b/anchors/ca/digicert/DigiCertClientECCP384RootG5.pem
new file mode 100644 (file)
index 0000000..56d1bb1
--- /dev/null
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICHzCCAaWgAwIBAgIQBk+mpigpFB8OnYNi4RdeOjAKBggqhkjOPQQDAzBRMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xKTAnBgNVBAMTIERp
+Z2lDZXJ0IENsaWVudCBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoX
+DTQ2MDExNDIzNTk1OVowUTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0
+LCBJbmMuMSkwJwYDVQQDEyBEaWdpQ2VydCBDbGllbnQgRUNDIFAzODQgUm9vdCBH
+NTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGccPoSdUFeo//Ftm0qfjw07rsbG8eqB
+zMO1usko/cGp2vZs9iBCAYRKWmL9DF88W3kWed3X5delJjH1ZMbzJL/19kUvIYZt
+83aXZQUguq+5kcUq7pjF/pcb86fx59LPrqNCMEAwHQYDVR0OBBYEFLMsqpCF7XM8
+9c7QwUtG0sVgbZR5MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoG
+CCqGSM49BAMDA2gAMGUCMA+xAdFskP8ICqhlLebjF8aVdClLedTB64pmR9WrI38F
+XyW4HOyOxz2nObN2wJVzdAIxAPxsGdjNe5nR/lSqYzVCmsBe59u5HcnCny2HfswZ
+Nm9hi+opTmtpPNJloAPNqSXojA==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertClientRSA4096RootG5.pem b/anchors/ca/digicert/DigiCertClientRSA4096RootG5.pem
new file mode 100644 (file)
index 0000000..06d2663
--- /dev/null
@@ -0,0 +1,31 @@
+-----BEGIN CERTIFICATE-----
+MIIFbDCCA1SgAwIBAgIQBMj8A6hU65igmwKIPGajwDANBgkqhkiG9w0BAQwFADBQ
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xKDAmBgNVBAMT
+H0RpZ2lDZXJ0IENsaWVudCBSU0E0MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAw
+WhcNNDYwMTE0MjM1OTU5WjBQMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNl
+cnQsIEluYy4xKDAmBgNVBAMTH0RpZ2lDZXJ0IENsaWVudCBSU0E0MDk2IFJvb3Qg
+RzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDj5uj0wpUboAFRLX+I
+QSuQu82uUBQ2Z5vvcB6iQP+eAEwpG0yWS14MOh8mMifsddzfgmhVsFKbtnxboguE
+15i2LlAWtXz5u3f6Mz+krrB2VW1VGG6fF4Yk9EuUMIZyhTeVT8H5rCjRgcu/MWOF
+eTMCNOD4kT5fcb49xWdRQT4iE3MYDXNRFd5odImBB2yZhmksQQ6Vl/MWA1ZQgWqW
+2YbSp1DvlXT+AgPJUb2DvrAA/Rt6I3PfR5ux4sgA6U92sicwkcq696rhA2an39jj
+80pCMcwHQ/WouQXqhCf5e0QocgAv8+rzif5MgcFElEk6C1PJAU9nl30lyeDfCmE+
+Zoja1fhUoqtUsdXc/iSCZrS3giGWY6KTt7Nwh6EgNPr6WF0vexfIH1y2lDVgw5q7
+jiL4prUp3Cbe51dJgU1kue/CPIgLTMwBmNJYLVJEOrPOwz6+zrnDS+XRUbbhMdEy
+R0HPwJ+Wk1tl55NGtYsVlAJSurMuYlkHtDYFkVNec4Ho/7lMdo/ak3PArTgX7uf4
+owW0fV9gNpwqoVBIfhUeRXn4IFEF9uxiHWrRLw2L73RO8aNsNu4TRrE/CIIyu7n0
+YLmR4delkuCVoEGFFdjM0Y2htyQy7WOSRbDqB+jkdCDxJrlj9cLHbY2xVuheRRyM
+vNFAj2LuSb00sKKWwTkd/M1l7wIDAQABo0IwQDAdBgNVHQ4EFgQUk2078qYZI73o
+uEyOuc/V/vzEvXowDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ
+KoZIhvcNAQEMBQADggIBAJf7rW+sE2WxsOHVVpktlQqqgbVwgROdfZfVRyH+127F
+RTQA63zRgbUkkfsLmn7eYl+OUMT7RUYdU0vWsBnhj6GFc4V4lgG0uOg70K+Qa5Lv
+fPZnUjFmF55q4se9VUqSD2a0RQYAzJu2QQAsCkAKdLbYSsF0KKE1KCS11q7FjpQJ
+APog8EoWRf+HcFf6MyqaA+awMwy4vsOWO06jolechshjIte2FoLwOHF1j4uK4TUQ
+twrG651sWHJdC2jEq2XlS9I7gKqHn1ikGiKsq4pRyVN2hmIuLu8vVKfD1XLwoCxf
+f3T0i+QnCziTjdh5GO6rqvQK9MF5kjpFXnJkNqWaTl0y3GFFNDo3Lo8CtIC2DoVH
+pILSqMpngrkjnuNNENi3xq6YXBV2oyyHhggwDW9u1Bb2yokrgF1cXdoLfo+811E4
+oz3688ZMCpdmhHObOXSf+z1qwJvC4anrv7Lrl2Eb+d5G9lXiKwy0Z+hcVhDWuTl8
+4q0yIbA1IbrW0cRQAx2xAEc3u3ZAITXwLmXbUsDpttcIYNqOiVHYeK/7aAzRvkmf
+ICdRoooBEuLAf+CN0+sxBeYlYUKIAONWBaBDF01dFTkRr1Ebb/Xe38SzyyAeWIVg
+ZAcMGDpl6+ohzswf6wSVPAxNqDe1t8GeWAM1oDzRSTALzohNU1kgK5YqxhXHkA5A
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertECCP384RootG5.pem b/anchors/ca/digicert/DigiCertECCP384RootG5.pem
new file mode 100644 (file)
index 0000000..cb326c6
--- /dev/null
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICETCCAZegAwIBAgIQDfPZN2WjecWVZuqS4iRPNDAKBggqhkjOPQQDAzBKMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xIjAgBgNVBAMTGURp
+Z2lDZXJ0IEVDQyBQMzg0IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0
+MjM1OTU5WjBKMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4x
+IjAgBgNVBAMTGURpZ2lDZXJ0IEVDQyBQMzg0IFJvb3QgRzUwdjAQBgcqhkjOPQIB
+BgUrgQQAIgNiAAT8WR/OmWx/mw62KWNvxoXzCtPWm65XFUwO7V3jCX5tKqOGqrp4
+oKdxvUT6CMBKBtZv3SxKOHTl0L3/ev/lOU69vRceH0Ot1bwn2Eu/dowwMqT7+VPl
+2Ko4U12ooDegZwqjQjBAMB0GA1UdDgQWBBSSlvfmutURuvkiLnt+WtnwJeUFGzAO
+BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBl
+AjEA/cBN8aSn26cMJhH0Sb0HOGMrRGIGeQjHw9TPmz6rOieqkMf9WaK4MlLbyo4X
+CwqQAjBdGuxRidRk3PnlHji9Wy7j5UTkOxh61/CVQI/y68/0+dBlokHysOZ8wTYs
+j1453Tc=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertFederatedIDRootCA.pem b/anchors/ca/digicert/DigiCertFederatedIDRootCA.pem
new file mode 100644 (file)
index 0000000..061769c
--- /dev/null
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDuzCCAqOgAwIBAgIQCHTZWCM+IlfFIRXIvyKSrjANBgkqhkiG9w0BAQsFADBn
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSYwJAYDVQQDEx1EaWdpQ2VydCBGZWRlcmF0ZWQgSUQg
+Um9vdCBDQTAeFw0xMzAxMTUxMjAwMDBaFw0zMzAxMTUxMjAwMDBaMGcxCzAJBgNV
+BAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdp
+Y2VydC5jb20xJjAkBgNVBAMTHURpZ2lDZXJ0IEZlZGVyYXRlZCBJRCBSb290IENB
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvAEB4pcCqnNNOWE6Ur5j
+QPUH+1y1F9KdHTRSza6k5iDlXq1kGS1qAkuKtw9JsiNRrjltmFnzMZRBbX8Tlfl8
+zAhBmb6dDduDGED01kBsTkgywYPxXVTKec0WxYEEF0oMn4wSYNl0lt2eJAKHXjNf
+GTwiibdP8CUR2ghSM2sUTI8Nt1Omfc4SMHhGhYD64uJMbX98THQ/4LMGuYegou+d
+GTiahfHtjn7AboSEknwAMJHCh5RlYZZ6B1O4QbKJ+34Q0eKgnI3X6Vc9u0zf6DH8
+Dk+4zQDYRRTqTnVO3VT8jzqDlCRuNtq6YvryOWN74/dq8LQhUnXHvFyrsdMaE1X2
+DwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNV
+HQ4EFgQUGRdkFnbGt1EWjKwbUne+5OaZvRYwHwYDVR0jBBgwFoAUGRdkFnbGt1EW
+jKwbUne+5OaZvRYwDQYJKoZIhvcNAQELBQADggEBAHcqsHkrjpESqfuVTRiptJfP
+9JbdtWqRTmOf6uJi2c8YVqI6XlKXsD8C1dUUaaHKLUJzvKiazibVuBwMIT84AyqR
+QELn3e0BtgEymEygMU569b01ZPxoFSnNXc7qDZBDef8WfqAV/sxkTi8L9BkmFYfL
+uGLOhRJOFprPdoDIUBB+tmCl3oDcBy3vnUeOEioz8zAkprcb3GHwHAK+vHmmfgcn
+WsfMLH4JCLa/tRYL+Rw/N3ybCkDp00s0WUZ+AoDywSl0Q/ZEnNY0MsFiw6LyIdbq
+M/s/1JRtO3bDSzD9TazRVzn2oBqzSa8VgIo5C1nOnoAKJTlsClJKvIhnRlaLQqk=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertGlobalRootCA.pem b/anchors/ca/digicert/DigiCertGlobalRootCA.pem
new file mode 100644 (file)
index 0000000..fd4341d
--- /dev/null
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
+QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
+b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
+CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
+nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
+43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
+T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
+gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
+BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
+TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
+DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
+hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
+06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
+PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
+YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
+CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertGlobalRootG2.pem b/anchors/ca/digicert/DigiCertGlobalRootG2.pem
new file mode 100644 (file)
index 0000000..798e002
--- /dev/null
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
+MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
+b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
+2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
+1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
+q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
+tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
+vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP
+BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV
+5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY
+1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4
+NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG
+Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91
+8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
+pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
+MrY=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertGlobalRootG3.pem b/anchors/ca/digicert/DigiCertGlobalRootG3.pem
new file mode 100644 (file)
index 0000000..bc20c1e
--- /dev/null
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw
+CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
+ZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe
+Fw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw
+EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x
+IDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF
+K4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG
+fp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO
+Z9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd
+BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx
+AK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/
+oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8
+sycX
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertHighAssuranceEVRootCA.pem b/anchors/ca/digicert/DigiCertHighAssuranceEVRootCA.pem
new file mode 100644 (file)
index 0000000..9e6810a
--- /dev/null
@@ -0,0 +1,23 @@
+-----BEGIN CERTIFICATE-----
+MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
+ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
+LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
+RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
++9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
+PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
+xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
+Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
+hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
+EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
+MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
+FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
+nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
+eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
+hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
+Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
+vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
++OkuE6N36B9K
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertPrivateServicesRoot.pem b/anchors/ca/digicert/DigiCertPrivateServicesRoot.pem
new file mode 100644 (file)
index 0000000..a4404ec
--- /dev/null
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDnDCCAoSgAwIBAgIQAqgneYhfz3LBrBcPI90GkTANBgkqhkiG9w0BAQUFADBo
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMScwJQYDVQQDEx5EaWdpQ2VydCBQcml2YXRlIFNlcnZp
+Y2VzIFJvb3QwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBoMQswCQYD
+VQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGln
+aWNlcnQuY29tMScwJQYDVQQDEx5EaWdpQ2VydCBQcml2YXRlIFNlcnZpY2VzIFJv
+b3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDSJd1k/fsWB/YZrssY
+2nJkvAlRkaq997TyFdBFI1kvVYoGhrybaY7hqCC9FHyaZgnurTMXmHffvE7RixwC
+t1wYtZxx9OEWbtHFcZWnY+Ic3bBKqRQl3QOMVyNB3CyrrtmuScOtnLdCttv5bF5q
+uWzw+VwhZDPyZcnfTTxkMQLrvv/rr0BzHsrjcRl09W7c1oM08tnA5WhkenjgY/uN
+ac/xvo46bjZOkWMVQEaMUL3a/C205AWVvedVwxV9n4Jh5HT/73okgI7n+HHarvlS
+98xD8J0c/4RPkNuH8PPbCfpVJORdZ2AfTQNW6hqp4nvsmp66USmFqSqn7BGVj8yk
+G7OFAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0G
+A1UdDgQWBBT5EiBkqVFrCPeFbwBuDOmRtdaFQDANBgkqhkiG9w0BAQUFAAOCAQEA
+UKpbVqWY/1PPDXKVIM1P5c25Pa5B8z6C2YiYLVahTs7sKT/vTD+66hNqJM+tbGAV
+cbkZGIsPwVXsJ/ygwcZtd6/8kBIzDrDQnPFp4bhL0XV5QirOKlpngKyi1bh0TUEd
+DnXib4bc7Tw6rro8Va04ugIHv1H9mLJg9YwMhp+3+yPx1JyyB/3XVqlxpGiKSXx1
++ZFo4hbIl8vhNhWqdcShlwdeNInjzQLRGPIx00Dsh+8uszEElWMMRzIGWCHzubZu
+j/IOhqMO9trk6/2q0rwk9PnXYc8QVsAWAAbYkQe3xM/eB1VSS7DJMUiRWqdoz6LG
++BqPRSmowBJZCGnvhDihQw==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertRSA4096RootG5.pem b/anchors/ca/digicert/DigiCertRSA4096RootG5.pem
new file mode 100644 (file)
index 0000000..2c4c2f6
--- /dev/null
@@ -0,0 +1,31 @@
+-----BEGIN CERTIFICATE-----
+MIIFXjCCA0agAwIBAgIQCL+ib5o/M2WirPCmOMQBcDANBgkqhkiG9w0BAQwFADBJ
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xITAfBgNVBAMT
+GERpZ2lDZXJ0IFJTQTQwOTYgUm9vdCBHNTAeFw0yMTAxMTUwMDAwMDBaFw00NjAx
+MTQyMzU5NTlaMEkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5j
+LjEhMB8GA1UEAxMYRGlnaUNlcnQgUlNBNDA5NiBSb290IEc1MIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAqr4NsgZ9JvlH6uQb50JpuJnCue4ksUaQy1kk
+UlQ1piTCX5EZyLZC1vNHZZVk54VlZ6mufABP4HgDUK3zf464EeeBYrGL3/JJJgne
+Dxa82iibociXL5OQ2iAq44TU/6mesC2/tADemx/IoGNTaIVvTYXGqmP5jbI1dmJ0
+A9yTmGgFns2QZd3SejGrJC1tQC6QP2NsLOv6HoBUjXkCkBSztU9O9YgEQ4DDSLMm
+L6xRlTJVJS9BlrBWoQg73JgfcoUsd8qYzDj7jnLJbewF7O1NtzxbFFCF3Zf7WfeQ
+EvQTv4NNgLIVZRGXYOXWXOYEtVDmcTO2IJOpaAA4zknbtFw7ctdFXFS/zTwBIx58
+1vhpLKUACmwySLTecC06ExfBf2TL8zDtoT2WZ/GUtWBsW2lo9YIzCaK22fOFsm6g
+lPDCxH2hLMpz9a7gUpyiZuYDzurf7RjUuWOL9+j/+7Nbj0PFr7d0lFA1Za7WL/GF
+j1OhcPSNMl28lsMewgQEnAQPs11+iSDKXicNiUoSI7T2xN3YH/hoszb4HrzG94S2
+6IpOiDA4wCbYcAoJOjQOa4ISlhwv5p6t2HE1gbGMBm70bmb/S0quvfD+11xfU7sy
+PM1i0RSgKR8Q3qlyT7GtZOWDKo+L6oSV7pglmJqzcTzBp1DyrEJiMcKhkMbu4reK
+qLW2GzsCAwEAAaNCMEAwHQYDVR0OBBYEFGJtt5FPxOqjYmCPoNC+tY8GfGgAMA4G
+A1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBDAUAA4IC
+AQBh6PsnbdbiuLMJr6rwsYJM/j0XiU0tFZ377tC7hOyEddtDE96Mn8cp74d0yxNw
+gVYAdPyu9Nk63iIIUaWgXIJmtntMqdqPq6wcQZZm1p3eVua/TrGyXl/Aw27UwoSQ
+9X2xuhbRKYrInenP0McZOz/P7vfhM65CyJjACJ7zWvPf1Cs7jqgoVhnHTnc8JVTc
+uEhI0fknaj7sE6+yBYn9VV/zfY4NnAldLIp+hc744b8RPTKMWtd+PfQzWM+iBZij
+s/vOib/9whbdbtyISQ0LoAP/50XpBMHp/aqddfi4H4eD2es501qny5isE4kA/G+V
+TuF9EUZt9jhGoxOgLAH1Ys+/HFCRJ3Rdt+xHfNDRdct77tFNIwrDYKV3LYDaZw+O
+a3YH8KYP6oSuHnm/CIraCfP07rU289R6Q7qUNeH6wTsblpmkV2PrtaiC9634d9d2
+hvN2U1Zb/CZChM6fg5GRr/S+cBWApdjoabHYkVS4GbJi+aL6Ve0Ev7lEhuTP8ZsA
+vxEPvrV0JFH/dzRj7EgjDugR63dt2sqCkb6khJNM2qH+zAaE6CHoVLrm0x1jPcJa
+/ObJg55yZKmGWQCMwvcTg7bQpDHGrJGOe6QiVhPGdccjvItb/EY9/l1SKa+v6MnD
+dkvoq0cC8poN0yyIgAeGwGMPAkyOBFN2uVhCb3wpcF2/Jw==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertSMIMEECCP384RootG5.pem b/anchors/ca/digicert/DigiCertSMIMEECCP384RootG5.pem
new file mode 100644 (file)
index 0000000..c5f251f
--- /dev/null
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICHDCCAaOgAwIBAgIQBT9uoAYBcn3tP8OjtqPW7zAKBggqhkjOPQQDAzBQMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xKDAmBgNVBAMTH0Rp
+Z2lDZXJ0IFNNSU1FIEVDQyBQMzg0IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcN
+NDYwMTE0MjM1OTU5WjBQMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQs
+IEluYy4xKDAmBgNVBAMTH0RpZ2lDZXJ0IFNNSU1FIEVDQyBQMzg0IFJvb3QgRzUw
+djAQBgcqhkjOPQIBBgUrgQQAIgNiAAQWnVXlttT7+2drGtShqtJ3lT6I5QeftnBm
+ICikiOxwNa+zMv83E0qevAED3oTBuMbmZUeJ8hNVv82lHghgf61/6GGSKc8JR14L
+HMAfpL/yW7yY75lMzHBrtrrQKB2/vgSjQjBAMB0GA1UdDgQWBBRzemuW20IHi1Jm
+wmQyF/7gZ5AurTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggq
+hkjOPQQDAwNnADBkAjA3RPUygONx6/Rtz3zMkZrDbnHY0iNdkk2CQm1cYZX2kfWn
+CPZql+mclC2YcP0ztgkCMAc8L7lYgl4Po2Kok2fwIMNpvwMsO1CnO69BOMlSSJHW
+Dvu8YDB8ZD8SHkV/UT70pg==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertSMIMERSA4096RootG5.pem b/anchors/ca/digicert/DigiCertSMIMERSA4096RootG5.pem
new file mode 100644 (file)
index 0000000..b23d4ed
--- /dev/null
@@ -0,0 +1,31 @@
+-----BEGIN CERTIFICATE-----
+MIIFajCCA1KgAwIBAgIQBfa6BCODRst9XOa5W7ocVTANBgkqhkiG9w0BAQwFADBP
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJzAlBgNVBAMT
+HkRpZ2lDZXJ0IFNNSU1FIFJTQTQwOTYgUm9vdCBHNTAeFw0yMTAxMTUwMDAwMDBa
+Fw00NjAxMTQyMzU5NTlaME8xCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2Vy
+dCwgSW5jLjEnMCUGA1UEAxMeRGlnaUNlcnQgU01JTUUgUlNBNDA5NiBSb290IEc1
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4Gpb2fj5fey1e+9f3Vw0
+2Npd0ctldashfFsA1IJvRYVBiqkSAnIy8BT1A3W7Y5dJD0CZCxoeVqfS0OGr3eUE
+G+MfFBICiPWggAn2J5pQ8LrjouCsahSRtWs4EHqiMeGRG7e58CtbyHcJdrdRxDYK
+mVNURCW3CTWGFwVWkz1BtwLXYh+KkhGH6hFt6ggR3LF4SEmS9rRRgHgj2P7hVho6
+kBNWNInV4pWLX96yzPs/OLeF9+qevy6hLi9NfWoRLjag/xEIBJVV4Bs7Z5OplFXq
+Mu0GOn/Cf+OtEyfRNEGzMMO/tIj4A4Kk3z6reHegWZNx593rAAR7zEg5KOAeoxVp
+yDayoQuX31XW75GcpPYW91EK7gMjkdwE/+DdOPYiAwDCB3EaEsnXRiqUG83Wuxvu
+v75NUFiwC80wdin1z+W2ai92sLBpatBtZRg1fpO8chfBVULNL8Ilu/T9HaFkIlRd
+4p5yQYRucZbqRQe2XnpKhp1zZHc4A9IPU6VVIMRN/2hvVanq3XHkT9mFo3xOKQKe
+CwnyGlPMAKbd0TT2DcEwsZwCZKw17aWwKbHSlTMP0iAzvewjS/IZ+dqYZOQsMR8u
+4Y0cBJUoTYxYzUvlc4KGjOyo1nlc+2S73AxMKPYXr+Jo1haGmNv8AdwxuvicDvko
+Rkrh/ZYGRXkRaBdlXIsmh1sCAwEAAaNCMEAwHQYDVR0OBBYEFNGj1FcdT1XbdUxc
+Qp5jFs60xjsfMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
+SIb3DQEBDAUAA4ICAQAHpwreU7ua63C/sjaQzeSnuPEM5F1aHXhl/Mm4HiMRV3xp
+NW0B/1NQvwcOuscBP1gqlHUDqxwLI9wbih43PR1Yj3PZsypv3xCgWwynyrB/uSSi
+ATUy5V5GQevYf3PnQumkUSZ3gQqo6w8KUJ1+iiBn/AuOOhHTxYxgGNlLsfzU8bRJ
+Tq6H4dH7dqFf8wbPl5YM6Z51gVxTDSL8NuZJbnTbAIWNfCKgjvsQTNRiE1vvS3Im
+i/xOio/+lxBTxXiLQmQbX+CJ/bsJf1DgVIUmEWodZflJKdx8Nt/7PffSrO4yjW6m
+fTmcRcTKDfU7tHlTpS9Wx1HFikxkXZBDI45rTBd4zOi/9TvkqEjPrZsM3zJK09kS
+jiN4DS2vn6+ePAnClwDtOmkccT8539OPxGb17zaUD/PdkraWX5Cm3XOqpiCUlCVq
+CQxy5BMjYEyjyhcue2cA29DN6nofOSZXiTB3y07llUVPX/s2XD35ILU6ECVPkzJa
+7sGW6OlWBLBJYU3seKidGMH/2OovVu+VK3sEXmfjVUDtOQT5C3n1aoxcD4makMfN
+i97bJjWhbs2zQvKiDzsMjpP/FM/895P35EEIbhlSEQ9TGXN4DM/YhYH4rVXIsJ5G
+Y6+cUu5cv/DAWzceCSDSPiPGoRVKDjZ+MMV5arwiiNkMUkAf3U4PZyYW0q0XHA==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertTLSECCP384RootG5.pem b/anchors/ca/digicert/DigiCertTLSECCP384RootG5.pem
new file mode 100644 (file)
index 0000000..802c4c8
--- /dev/null
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURp
+Z2lDZXJ0IFRMUyBFQ0MgUDM4NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2
+MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJ
+bmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQgUm9vdCBHNTB2MBAG
+ByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1TzvdlHJS
+7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp
+0zVozptjn4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICIS
+B4CIfBFqMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49
+BAMDA2gAMGUCMQCJao1H5+z8blUD2WdsJk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQ
+LgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIxAJSdYsiJvRmEFOml+wG4
+DXZDjC5Ty3zfDBeWUA==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertTLSRSA4096RootG5.pem b/anchors/ca/digicert/DigiCertTLSRSA4096RootG5.pem
new file mode 100644 (file)
index 0000000..b007dff
--- /dev/null
@@ -0,0 +1,31 @@
+-----BEGIN CERTIFICATE-----
+MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBN
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMT
+HERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcN
+NDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQs
+IEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2IFJvb3QgRzUwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS87IE+
+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG0
+2C+JFvuUAT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgp
+wgscONyfMXdcvyej/Cestyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZM
+pG2T6T867jp8nVid9E6P/DsjyG244gXazOvswzH016cpVIDPRFtMbzCe88zdH5RD
+nU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnVDdXifBBiqmvwPXbzP6Po
+sMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9qTXeXAaDx
+Zre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cd
+Lvvyz6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvX
+KyY//SovcfXWJL5/MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNe
+XoVPzthwiHvOAbWWl9fNff2C+MIkwcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPL
+tgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4EFgQUUTMc7TZArxfTJc1paPKv
+TiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN
+AQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw
+GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7H
+PNtQOa27PShNlnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLF
+O4uJ+DQtpBflF+aZfTCIITfNMBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQ
+REtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/u4cnYiWB39yhL/btp/96j1EuMPik
+AdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9GOUrYU9DzLjtxpdRv
+/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh47a+
+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilw
+MUc/dNAUFvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WF
+qUITVuwhd4GTWgzqltlJyqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCK
+ovfepEWFJqgejF0pW8hL2JpqA15w8oVPbEtoL8pU9ozaMv7Da4M/OMZ+
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/DigiCertTrustedRootG4.pem b/anchors/ca/digicert/DigiCertTrustedRootG4.pem
new file mode 100644 (file)
index 0000000..4214227
--- /dev/null
@@ -0,0 +1,32 @@
+-----BEGIN CERTIFICATE-----
+MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg
+RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV
+UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
+Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y
+ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If
+xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV
+ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO
+DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ
+jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/
+CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi
+EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM
+fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY
+uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK
+chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t
+9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
+ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2
+SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd
++SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc
+fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa
+sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N
+cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N
+0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie
+4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI
+r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1
+/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm
+gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/GeoTrustPCA-G2.pem b/anchors/ca/digicert/GeoTrustPCA-G2.pem
new file mode 100644 (file)
index 0000000..f9364c0
--- /dev/null
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL
+MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj
+KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2
+MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV
+BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw
+NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV
+BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH
+MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL
+So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal
+tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
+BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG
+CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT
+qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz
+rD6ogRLQy7rQkgu2npaqBA+K
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/GeoTrustPCA-G3.pem b/anchors/ca/digicert/GeoTrustPCA-G3.pem
new file mode 100644 (file)
index 0000000..dc1f859
--- /dev/null
@@ -0,0 +1,24 @@
+-----BEGIN CERTIFICATE-----
+MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCB
+mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
+MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
+eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJ
+BgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
+MjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0
+BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz
++uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUm
+hsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn
+5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/W
+JmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exAL
+DmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZC
+huOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
+HQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IB
+AQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTTOd8lNNTB
+zU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN
+kv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
+AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUH
+SJsMC8tJP33st/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2G
+spki4cErx5z481+oghLrGREt
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/GeoTrustPCA.pem b/anchors/ca/digicert/GeoTrustPCA.pem
new file mode 100644 (file)
index 0000000..03c70c7
--- /dev/null
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBY
+MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo
+R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEx
+MjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
+Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQcmltYXJ5IENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9
+AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjA
+ZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0
+7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53W
+kBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MI
+mO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G
+A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJ
+KoZIhvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ1
+6CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl
+4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6K
+oKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJlyc1pZU8Fj
+UjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU
+AT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/VerizonGlobalRootCA.pem b/anchors/ca/digicert/VerizonGlobalRootCA.pem
new file mode 100644 (file)
index 0000000..d94b112
--- /dev/null
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDdTCCAl2gAwIBAgIBATANBgkqhkiG9w0BAQsFADBcMQswCQYDVQQGEwJVUzEZ
+MBcGA1UECgwQVmVyaXpvbiBCdXNpbmVzczERMA8GA1UECwwIT21uaVJvb3QxHzAd
+BgNVBAMMFlZlcml6b24gR2xvYmFsIFJvb3QgQ0EwHhcNMDkwNzMwMTQyNzA0WhcN
+MzQwNzMwMTQyNzA0WjBcMQswCQYDVQQGEwJVUzEZMBcGA1UECgwQVmVyaXpvbiBC
+dXNpbmVzczERMA8GA1UECwwIT21uaVJvb3QxHzAdBgNVBAMMFlZlcml6b24gR2xv
+YmFsIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCKAAxw
+Hb/rNIbDmUU1Hn9D96tvJC3NGcIQu7DKKVupIKurcizE4gI5bYK4xRHq+PuznmL4
+Mx6wH8nj9jfbBMg7Y0824oWkJR3HaR8EvWhFE5YHH5RQ9T7FJ1SewElXRI4HY9Sm
+ru0imcxNlmkEE252iZ90FpT5HVS9ornSgwEiDE1EgKr+NYknJaeGicbVGpLjj8WV
+oBRymuhWxQJVHJf5IC7Q9TwTGVr24fkLA4Jpp4y31m+cVj6d6CoJYG1L5vuLmRT3
+NE9lWYCNuVfIojUh2IhxVl3uglctJpAYn5qcnI/v1MVjp1R9R5GHfRoSqBsYb6lv
+sSe65AR0zjcef2bFAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
+BAQDAgEGMB0GA1UdDgQWBBRMOBG4mABbWitwPqp45NVnZ2enfjANBgkqhkiG9w0B
+AQsFAAOCAQEAAV+gsQYB9HnXZRhgPs95oLrCI08j34eWX4EOOBUuXMgCaCkg/Ivu
+pYoYgWRcmDV+OTCCpIKKULW6w+ha1qie4sMX29vE67AKIA3pnuP/YFRH8Tud1Cg8
+oq6j+6qLgiIqNYeQuBxZR5DVnS76SeNlqDbrx+QcaNyzMWyrTs4kgBXIEFkQEXJN
+epyYnMT8YeCzsp1OoMbCWasY1qJVRewpqiU31k5KPQtAweST5PzNkQv45qvMs3bE
+Yr8Z7Ya2ecMpVFS8mX1GV8+mz/RUKpoDZUcBoUIqyyVHbnxeAEuR2fkbEAZw+UIV
+pl+q10Ae/clInZeB6lxowqDniaFTTb/H4w==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/pca3-g3.pem b/anchors/ca/digicert/pca3-g3.pem
new file mode 100644 (file)
index 0000000..6880364
--- /dev/null
@@ -0,0 +1,24 @@
+-----BEGIN CERTIFICATE-----
+MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
+cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
+LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
+aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
+VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
+aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
+bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
+IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b
+N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t
+KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu
+kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm
+CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ
+Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu
+imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te
+2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe
+DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
+/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p
+F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt
+TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/pca3-g4.pem b/anchors/ca/digicert/pca3-g4.pem
new file mode 100644 (file)
index 0000000..e19fdea
--- /dev/null
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
+ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2ln
+biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
+U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
+aXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjELMAkG
+A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp
+U2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwg
+SW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln
+biBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHm
+GUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3ve
+fLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUw
+AwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ
+aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYj
+aHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMW
+kf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgmYFo4e1ZC
+4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga
+FRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/pca3-g5.pem b/anchors/ca/digicert/pca3-g5.pem
new file mode 100644 (file)
index 0000000..707ff08
--- /dev/null
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
+ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
+ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
+biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
+U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
+aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
+nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
+t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
+SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
+BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
+rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
+NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
+BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
+BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
+aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
+MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
+p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
+5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
+WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
+4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
+hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/pca3-g6.pem b/anchors/ca/digicert/pca3-g6.pem
new file mode 100644 (file)
index 0000000..5ce269e
--- /dev/null
@@ -0,0 +1,34 @@
+-----BEGIN CERTIFICATE-----
+MIIF9jCCA96gAwIBAgIQZWNxhdNvRcaPfzH5CYeSgjANBgkqhkiG9w0BAQwFADCB
+lDELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8w
+HQYDVQQLExZTeW1hbnRlYyBUcnVzdCBOZXR3b3JrMUUwQwYDVQQDEzxTeW1hbnRl
+YyBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+IC0gRzYwHhcNMTIxMDE4MDAwMDAwWhcNMzcxMjAxMjM1OTU5WjCBlDELMAkGA1UE
+BhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYDVQQLExZT
+eW1hbnRlYyBUcnVzdCBOZXR3b3JrMUUwQwYDVQQDEzxTeW1hbnRlYyBDbGFzcyAz
+IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzYwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC3DrL6TbyachX7d1vb/UMPywv3
+YC6zK34Mu1PyzE5l8xm7/zUd99Opu0Attd141Kb5N+qFBXttt+YTSwZ8+3ZjjyAd
+LTgrBIXy6LDRX01KIclq2JTqHgJQpqqQB6BHIepm+QSg5oPwxPVeluInTWHDs8GM
+IrZmoQDRVin77cF/JMo9+lqUsITDx7pDHP1kDvEo+0dZ8ibhMblE+avd+76+LDfj
+rAsY0/wBovGkCjWCR0yrvYpe3xOF/CDMSFmvr0FvyyPNypOn3dVfyGQ7/wEDoApP
+LW49hL6vyDKyUymQFfewBZoKPPa5BpDJpeFdoDuw/qi2v/WJKFckOiGGceTciotB
+VeweMCRZ0cBZuHivqlp03iWAMJjtMERvIXAc2xJTDtamKGaTLB/MTzwbgcW59nhv
+0DI6CHLbaw5GF4WU87zvvPekXo7p6bVk5bdLRRIsTDe3YEMKTXEGAJQmNXQfu3o5
+XE475rgD4seTi4QsJUlF3X8jlGAfy+nN9quX92Hn+39igcjcCjBcGHzmzu/Hbh6H
+fLPpysh7avRo/IOlDFa0urKNSgrHl5fFiDAVPRAIVBVycmczM/R8t84AJ1NlziTx
+WmTnNi/yLgLCl99y6AIeoPc9tftoYAP6M6nmEm0G4amoXU48/tnnAGWsthlNe4N/
+NEfq4RhtsYsceavnnQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQUOXEIAD7eyIbnkP/k/SEPziQZFvYwDQYJKoZIhvcN
+AQEMBQADggIBAFBriE1gSM5a4yLOZ3yEp80c/ekMA4w2rwqHDmquV64B0Da78v25
+c8FftaiuTKL6ScsHRhY2vePIVzh+OOS/JTNgxtw3nGO7XpgeGrKC8K6mdxGAREeh
+KcXwszrOmPC47NMOgAZ3IzBM/3lkYyJbd5NDS3Wz2ztuO0rd8ciutTeKlYg6EGhw
+OLlbcH7VQ8n8X0/l5ns27vAg7UdXEyYQXhQGDXt2B8LGLRb0rqdsD7yID08sAraj
+1yLmmUc12I2lT4ESOhF9s8wLdfMecKMbA+r6mujmLjY5zJnOOj8Mt674Q5mwk25v
+qtkPajGRu5zTtCj7g0x6c4JQZ9IOrO1gxbJdNZjPh34eWR0kvFa62qRa2MzmvB4Q
+jxuMjvPB27e+1LBbZY8WaPNWxSoZFk0PuGWHbSSDuGLc4EdhGoh7zk5//dzGDVqa
+pPO1TPbdMaboHREhMzAEYX0c4D5PjT+1ixIAWn2poQDUg+twuxj4pNIcgS23CBHI
+Jnu21OUPA0Zy1CVAHr5JXW2T8VyyO3VUaTqg7kwiuqya4gitRWMFSlI1dsQ09V4H
+Mq3cfCbRW4+t5OaqG3Wf61206MCpFXxOSgdy30bJ1JGSdVaw4e43NmUoxRXIK3bM
+bW8Zg/T92hXiQeczeUaDV/nxpbZt07zXU+fucW14qZen7iCcGRVyFT0E
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/symc-pca3-g4.pem b/anchors/ca/digicert/symc-pca3-g4.pem
new file mode 100644 (file)
index 0000000..383858d
--- /dev/null
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICpzCCAi2gAwIBAgIQTHm1miicdjFk9YlE0JEC3jAKBggqhkjOPQQDAzCBlDEL
+MAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYD
+VQQLExZTeW1hbnRlYyBUcnVzdCBOZXR3b3JrMUUwQwYDVQQDEzxTeW1hbnRlYyBD
+bGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0g
+RzQwHhcNMTIxMDE4MDAwMDAwWhcNMzcxMjAxMjM1OTU5WjCBlDELMAkGA1UEBhMC
+VVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYDVQQLExZTeW1h
+bnRlYyBUcnVzdCBOZXR3b3JrMUUwQwYDVQQDEzxTeW1hbnRlYyBDbGFzcyAzIFB1
+YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcq
+hkjOPQIBBgUrgQQAIgNiAARXz+qzOU0/oSHgbi84csaHl/OFC0fnD1HI0fSZm8pZ
+Zf9M+eoLtyXV0vbsMS0yYhLXdoan+jjJZdT+c+KEOfhMSWIT3brViKBfPchPsD+P
+oVAR5JNGrcNfy/GkapVW6MCjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
+BTADAQH/MB0GA1UdDgQWBBQknbzScfcdwiW+IvGJpSwVOzQeXjAKBggqhkjOPQQD
+AwNoADBlAjEAuWZoZdsF0Dh9DvPIdWG40CjEsUozUVj78jwQyK5HeHbKZiQXhj5Q
+Vm6lLZmIuL0kAjAD6qfnqDzqnWLGX1TamPR3vU+PGJyRXEdrQE0QHbPhicoLIsga
+xcX+i93B3294n5E=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/digicert/universal-root.pem b/anchors/ca/digicert/universal-root.pem
new file mode 100644 (file)
index 0000000..b5f1875
--- /dev/null
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB
+vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W
+ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
+Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX
+MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0
+IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y
+IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh
+bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF
+9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH
+H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H
+LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN
+/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT
+rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud
+EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw
+WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs
+exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
+DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4
+sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+
+seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz
+4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+
+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR
+lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3
+7M2CYfE45k+XmCpajQ==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/gogetssl.pem b/anchors/ca/gogetssl.pem
new file mode 100644 (file)
index 0000000..b72c550
--- /dev/null
@@ -0,0 +1,34 @@
+-----BEGIN CERTIFICATE-----
+MIIF1zCCA7+gAwIBAgIRAJOLsI5imHtPdfmMtqUEXJYwDQYJKoZIhvcNAQEMBQAw
+gYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtK
+ZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYD
+VQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE4
+MDkwNjAwMDAwMFoXDTI4MDkwNTIzNTk1OVowTDELMAkGA1UEBhMCTFYxDTALBgNV
+BAcTBFJpZ2ExETAPBgNVBAoTCEdvR2V0U1NMMRswGQYDVQQDExJHb0dldFNTTCBS
+U0EgRFYgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCfwF4hD6E1
+kLglXs1n2fH5vMQukCGyyD4LqLsc3pSzeh8we7njU4TB85BH5YXqcfwiH1Sf78aB
+hk1FgXoAZ3EQrF49We8mnTtTPFRnMwEHLJRpY9I/+peKeAZNL0MJG5zM+9gmcSpI
+OTI6p7MPela72g0pBQjwcExYLqFFVsnroEPTRRlmfTBTRi9r7rYcXwIct2VUCRmj
+jR1GX13op370YjYwgGv/TeYqUWkNiEjWNskFDEfxSc0YfoBwwKdPNfp6t/5+RsFn
+lgQKstmFLQbbENsdUEpzWEvZUpDC4qPvRrxEKcF0uLoZhEnxhskwXSTC64BNtc+l
+VEk7/g/be8svAgMBAAGjggF1MIIBcTAfBgNVHSMEGDAWgBRTeb9aqitKz1SA4dib
+wJ3ysgNmyzAdBgNVHQ4EFgQU+ftQxItnu2dk/oMhpqnOP1WEk5kwDgYDVR0PAQH/
+BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0lBBYwFAYIKwYBBQUHAwEG
+CCsGAQUFBwMCMCIGA1UdIAQbMBkwDQYLKwYBBAGyMQECAkAwCAYGZ4EMAQIBMFAG
+A1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VU0VSVHJ1
+c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDB2BggrBgEFBQcBAQRqMGgw
+PwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRydXN0LmNvbS9VU0VSVHJ1c3RS
+U0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AudXNlcnRy
+dXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAXXRDKHiA5DOhNKsztwayc8qtlK4q
+Vt2XNdlzXn4RyZIsC9+SBi0Xd4vGDhFx6XX4N/fnxlUjdzNN/BYY1gS1xK66Uy3p
+rw9qI8X12J4er9lNNhrsvOcjB8CT8FyvFu94j3Bs427uxcSukhYbERBAIN7MpWKl
+VWxT3q8GIqiEYVKa/tfWAvnOMDDSKgRwMUtggr/IE77hekQm20p7e1BuJODf1Q7c
+FPt7T74m3chg+qu0xheLI6HsUFuOxc7R5SQlkFvaVY5tmswfWpY+rwhyJW+FWNbT
+uNXkxR4v5KOQPWrY100/QN68/j17paKuSXNcsr56snuB/Dx+MACLBdsF35HxPadx
+78vkfQ37WcVmKZtHrHJQ/QUyjxdG8fezMsh0f+puUln/O+NlsFtipve8qYa9h/K5
+yD0oZN93ChWve78XrV4vCpjO75Nk5B8O9CWQqGTHbhkgvjyb9v/B+sYJqB22/NLl
+R4RPvbmqDJGeEI+4u6NJ5YiLIVVsX+dyfFP8zUbSsj6J34RyCYKBbQ4L+r7k8Srs
+LY51WUFP292wkFDPSDmV7XsUNTDOZoQcBh2Fycf7xFfxeA+6ERx2d8MpPPND7yS2
+1dkf+SY5SdpSbAKtYmbqb9q8cZUDEImNWJFUVHBLDOrnYhGwJudE3OBXRTxNhMDm
+IXnjEeWrFvAZQhk=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/lets-encrypt/e1.pem b/anchors/ca/lets-encrypt/e1.pem
new file mode 100644 (file)
index 0000000..2a19d41
--- /dev/null
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICxjCCAk2gAwIBAgIRALO93/inhFu86QOgQTWzSkUwCgYIKoZIzj0EAwMwTzEL
+MAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNo
+IEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDIwHhcNMjAwOTA0MDAwMDAwWhcN
+MjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3MgRW5j
+cnlwdDELMAkGA1UEAxMCRTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQkXC2iKv0c
+S6Zdl3MnMayyoGli72XoprDwrEuf/xwLcA/TmC9N/A8AmzfwdAVXMpcuBe8qQyWj
++240JxP2T35p0wKZXuskR5LBJJvmsSGPwSSB/GjMH2m6WPUZIvd0xhajggEIMIIB
+BDAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMB
+MBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFFrz7Sv8NsI3eblSMOpUb89V
+yy6sMB8GA1UdIwQYMBaAFHxClq7eS0g7+pL4nozPbYupcjeVMDIGCCsGAQUFBwEB
+BCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL3gyLmkubGVuY3Iub3JnLzAnBgNVHR8E
+IDAeMBygGqAYhhZodHRwOi8veDIuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYG
+Z4EMAQIBMA0GCysGAQQBgt8TAQEBMAoGCCqGSM49BAMDA2cAMGQCMHt01VITjWH+
+Dbo/AwCd89eYhNlXLr3pD5xcSAQh8suzYHKOl9YST8pE9kLJ03uGqQIwWrGxtO3q
+YJkgsTgDyj2gJrjubi1K9sZmHzOa25JK1fUpE8ZwYii6I4zPPS/Lgul/
+-----END CERTIFICATE-----
diff --git a/anchors/ca/lets-encrypt/e2.pem b/anchors/ca/lets-encrypt/e2.pem
new file mode 100644 (file)
index 0000000..0fd9f40
--- /dev/null
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICxjCCAkygAwIBAgIQTtI99q9+x/mwxHJv+VEqdzAKBggqhkjOPQQDAzBPMQsw
+CQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg
+R3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw0y
+NTA5MTUxNjAwMDBaMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNy
+eXB0MQswCQYDVQQDEwJFMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABCOaLO3lixmN
+YVWex+ZVYOiTLgi0SgNWtU4hufk50VU4Zp/LbBVDxCsnsI7vuf4xp4Cu+ETNggGE
+yBqJ3j8iUwe5Yt/qfSrRf1/D5R58duaJ+IvLRXeASRqEL+VkDXrW3qOCAQgwggEE
+MA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEw
+EgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUbZkq9U0C6+MRwWC6km+NPS7x
+6kQwHwYDVR0jBBgwFoAUfEKWrt5LSDv6kviejM9ti6lyN5UwMgYIKwYBBQUHAQEE
+JjAkMCIGCCsGAQUFBzAChhZodHRwOi8veDIuaS5sZW5jci5vcmcvMCcGA1UdHwQg
+MB4wHKAaoBiGFmh0dHA6Ly94Mi5jLmxlbmNyLm9yZy8wIgYDVR0gBBswGTAIBgZn
+gQwBAgEwDQYLKwYBBAGC3xMBAQEwCgYIKoZIzj0EAwMDaAAwZQIxAPJCN9qpyDmZ
+tX8K3m8UYQvK51BrXclM6WfrdeZlUBKyhTXUmFAtJw4X6A0x9mQFPAIwJa/No+KQ
+UAM1u34E36neL/Zba7ombkIOchSgx1iVxzqtFWGddgoG+tppRPWhuhhn
+-----END CERTIFICATE-----
diff --git a/anchors/ca/lets-encrypt/r3.pem b/anchors/ca/lets-encrypt/r3.pem
new file mode 100644 (file)
index 0000000..43b222a
--- /dev/null
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw
+TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
+cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
+WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
+RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
+R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
+sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm
+NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg
+Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG
+/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC
+AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA
+FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw
+AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw
+Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB
+gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W
+PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl
+ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz
+CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm
+lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4
+avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2
+yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O
+yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids
+hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+
+HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv
+MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX
+nLRbwHOoq7hHwg==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/lets-encrypt/r4.pem b/anchors/ca/lets-encrypt/r4.pem
new file mode 100644 (file)
index 0000000..578b3bd
--- /dev/null
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFFjCCAv6gAwIBAgIRAIp5IlCr5SxSbO7Pf8lC3WIwDQYJKoZIhvcNAQELBQAw
+TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
+cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
+WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
+RW5jcnlwdDELMAkGA1UEAxMCUjQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCzKNx3KdPnkb7ztwoAx/vyVQslImNTNq/pCCDfDa8oPs3Gq1e2naQlGaXS
+Mm1Jpgi5xy+hm5PFIEBrhDEgoo4wYCVg79kaiT8faXGy2uo/c0HEkG9m/X2eWNh3
+z81ZdUTJoQp7nz8bDjpmb7Z1z4vLr53AcMX/0oIKr13N4uichZSk5gA16H5OOYHH
+IYlgd+odlvKLg3tHxG0ywFJ+Ix5FtXHuo+8XwgOpk4nd9Z/buvHa4H6Xh3GBHhqC
+VuQ+fBiiCOUWX6j6qOBIUU0YFKAMo+W2yrO1VRJrcsdafzuM+efZ0Y4STTMzAyrx
+E+FCPMIuWWAubeAHRzNl39Jnyk2FAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC
+AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwHQYDVR0OBBYEFDadPuCxQPYnLHy/jZ0xivZUpkYmMB8GA1UdIwQYMBaA
+FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw
+AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw
+Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB
+gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCJbu5CalWO+H+Az0lmIG14DXmlYHQE
+k26umjuCyioWs2icOlZznPTcZvbfq02YPHGTCu3ctggVDULJ+fwOxKekzIqeyLNk
+p8dyFwSAr23DYBIVeXDpxHhShvv0MLJzqqDFBTHYe1X5X2Y7oogy+UDJxV2N24/g
+Z8lxG4Vr2/VEfUOrw4Tosl5Z+1uzOdvTyBcxD/E5rGgTLczmulctHy3IMTmdTFr0
+FnU0/HMQoquWQuODhFqzMqNcsdbjANUBwOEQrKI8Sy6+b84kHP7PtO+S4Ik8R2k7
+ZeMlE1JmxBi/PZU860YlwT8/qOYToCHVyDjhv8qutbf2QnUl3SV86th2I1QQE14s
+0y7CdAHcHkw3sAEeYGkwCA74MO+VFtnYbf9B2JBOhyyWb5087rGzitu5MTAW41X9
+DwTeXEg+a24tAeht+Y1MionHUwa4j7FB/trN3Fnb/r90+4P66ZETVIEcjseUSMHO
+w6yqv10/H/dw/8r2EDUincBBX3o9DL3SadqragkKy96HtMiLcqMMGAPm0gti1b6f
+bnvOdr0mrIVIKX5nzOeGZORaYLoSD4C8qvFT7U+Um6DMo36cVDNsPmkF575/s3C2
+CxGiCPQqVxPgfNSh+2CPd2Xv04lNeuw6gG89DlOhHuoFKRlmPnom+gwqhz3ZXMfz
+TfmvjrBokzCICA==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/lets-encrypt/x1.pem b/anchors/ca/lets-encrypt/x1.pem
new file mode 100644 (file)
index 0000000..b85c803
--- /dev/null
@@ -0,0 +1,31 @@
+-----BEGIN CERTIFICATE-----
+MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
+TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
+cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
+WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
+ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
+MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
+h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
+0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
+A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
+T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
+B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
+B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
+KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
+OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
+jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
+qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
+rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
+hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
+ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
+3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
+NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
+ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
+TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
+jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
+oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
+4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
+mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
+emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/lets-encrypt/x2.pem b/anchors/ca/lets-encrypt/x2.pem
new file mode 100644 (file)
index 0000000..7d903ed
--- /dev/null
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQsw
+CQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg
+R3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00
+MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBT
+ZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYw
+EAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW
++1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9
+ItgKbppbd9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T
+AQH/BAUwAwEB/zAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZI
+zj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70/aTSVaYgLXTWNLxBo1BfASdW
+tL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5U6VR5CmD1/iQMVtCnwr1
+/q4AaOeMSQ+2b1tbFfLn
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/RussianTrustedRoot.csv.do b/anchors/ca/ru/RussianTrustedRoot.csv.do
new file mode 100644 (file)
index 0000000..0335692
--- /dev/null
@@ -0,0 +1 @@
+curl https://www.gosuslugi.ru/api/nsi/v1/custom/dic/tls/csv
diff --git a/anchors/ca/ru/RussianTrustedRoot.pem b/anchors/ca/ru/RussianTrustedRoot.pem
new file mode 100644 (file)
index 0000000..fe7ad30
--- /dev/null
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFwjCCA6qgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAxMjEwNDE1WhcNMzIwMjI3MjEwNDE1WjBwMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMSAwHgYDVQQDDBdSdXNzaWFuIFRydXN0ZWQgUm9v
+dCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMfFOZ8pUAL3+r2n
+qqE0Zp52selXsKGFYoG0GM5bwz1bSFtCt+AZQMhkWQheI3poZAToYJu69pHLKS6Q
+XBiwBC1cvzYmUYKMYZC7jE5YhEU2bSL0mX7NaMxMDmH2/NwuOVRj8OImVa5s1F4U
+zn4Kv3PFlDBjjSjXKVY9kmjUBsXQrIHeaqmUIsPIlNWUnimXS0I0abExqkbdrXbX
+YwCOXhOO2pDUx3ckmJlCMUGacUTnylyQW2VsJIyIGA8V0xzdaeUXg0VZ6ZmNUr5Y
+Ber/EAOLPb8NYpsAhJe2mXjMB/J9HNsoFMBFJ0lLOT/+dQvjbdRZoOT8eqJpWnVD
+U+QL/qEZnz57N88OWM3rabJkRNdU/Z7x5SFIM9FrqtN8xewsiBWBI0K6XFuOBOTD
+4V08o4TzJ8+Ccq5XlCUW2L48pZNCYuBDfBh7FxkB7qDgGDiaftEkZZfApRg2E+M9
+G8wkNKTPLDc4wH0FDTijhgxR3Y4PiS1HL2Zhw7bD3CbslmEGgfnnZojNkJtcLeBH
+BLa52/dSwNU4WWLubaYSiAmA9IUMX1/RpfpxOxd4Ykmhz97oFbUaDJFipIggx5sX
+ePAlkTdWnv+RWBxlJwMQ25oEHmRguNYf4Zr/Rxr9cS93Y+mdXIZaBEE0KS2iLRqa
+OiWBki9IMQU4phqPOBAaG7A+eP8PAgMBAAGjZjBkMB0GA1UdDgQWBBTh0YHlzlpf
+BKrS6badZrHF+qwshzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzAS
+BgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
+AAOCAgEAALIY1wkilt/urfEVM5vKzr6utOeDWCUczmWX/RX4ljpRdgF+5fAIS4vH
+tmXkqpSCOVeWUrJV9QvZn6L227ZwuE15cWi8DCDal3Ue90WgAJJZMfTshN4OI8cq
+W9E4EG9wglbEtMnObHlms8F3CHmrw3k6KmUkWGoa+/ENmcVl68u/cMRl1JbW2bM+
+/3A+SAg2c6iPDlehczKx2oa95QW0SkPPWGuNA/CE8CpyANIhu9XFrj3RQ3EqeRcS
+AQQod1RNuHpfETLU/A2gMmvn/w/sx7TB3W5BPs6rprOA37tutPq9u6FTZOcG1Oqj
+C/B7yTqgI7rbyvox7DEXoX7rIiEqyNNUguTk/u3SZ4VXE2kmxdmSh3TQvybfbnXV
+4JbCZVaqiZraqc7oZMnRoWrXRG3ztbnbes/9qhRGI7PqXqeKJBztxRTEVj8ONs1d
+WN5szTwaPIvhkhO3CO5ErU2rVdUr89wKpNXbBODFKRtgxUT70YpmJ46VVaqdAhOZ
+D9EUUn4YaeLaS8AjSF/h7UkjOibNc4qVDiPP+rkehFWM66PVnP1Msh93tc+taIfC
+EYVMxjh8zNbFuoc7fzvvrFILLe7ifvEIUqSVIC/AzplM/Jxw7buXFeGP1qVCBEHq
+391d/9RAfaZ12zkwFsl+IKwE/OZxW8AHa9i1p4GO0YSNuczzEm4=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/RussianTrustedRoot.pem.p7s b/anchors/ca/ru/RussianTrustedRoot.pem.p7s
new file mode 100644 (file)
index 0000000..7a5138c
Binary files /dev/null and b/anchors/ca/ru/RussianTrustedRoot.pem.p7s differ
diff --git a/anchors/ca/ru/reestr-pki/README b/anchors/ca/ru/reestr-pki/README
new file mode 100644 (file)
index 0000000..f97dc5f
--- /dev/null
@@ -0,0 +1 @@
+http://reestr-pki.ru/cdp/
diff --git a/anchors/ca/ru/reestr-pki/guc.pem b/anchors/ca/ru/reestr-pki/guc.pem
new file mode 100644 (file)
index 0000000..433a9a2
--- /dev/null
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFGTCCBMigAwIBAgIQNGgeQMtB7zOpoLfIdpKaKTAIBgYqhQMCAgMwggFKMR4w
+HAYJKoZIhvcNAQkBFg9kaXRAbWluc3Z5YXoucnUxCzAJBgNVBAYTAlJVMRwwGgYD
+VQQIDBM3NyDQsy4g0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQutCy0LAx
+PzA9BgNVBAkMNjEyNTM3NSDQsy4g0JzQvtGB0LrQstCwLCDRg9C7LiDQotCy0LXR
+gNGB0LrQsNGPLCDQtC4gNzEsMCoGA1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfR
+jCDQoNC+0YHRgdC40LgxGDAWBgUqhQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqF
+AwOBAwEBEgwwMDc3MTA0NzQzNzUxQTA/BgNVBAMMONCT0L7Qu9C+0LLQvdC+0Lkg
+0YPQtNC+0YHRgtC+0LLQtdGA0Y/RjtGJ0LjQuSDRhtC10L3RgtGAMB4XDTEyMDcy
+MDEyMzExNFoXDTI3MDcxNzEyMzExNFowggFKMR4wHAYJKoZIhvcNAQkBFg9kaXRA
+bWluc3Z5YXoucnUxCzAJBgNVBAYTAlJVMRwwGgYDVQQIDBM3NyDQsy4g0JzQvtGB
+0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQutCy0LAxPzA9BgNVBAkMNjEyNTM3NSDQ
+sy4g0JzQvtGB0LrQstCwLCDRg9C7LiDQotCy0LXRgNGB0LrQsNGPLCDQtC4gNzEs
+MCoGA1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+0YHRgdC40LgxGDAW
+BgUqhQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEBEgwwMDc3MTA0NzQz
+NzUxQTA/BgNVBAMMONCT0L7Qu9C+0LLQvdC+0Lkg0YPQtNC+0YHRgtC+0LLQtdGA
+0Y/RjtGJ0LjQuSDRhtC10L3RgtGAMGMwHAYGKoUDAgITMBIGByqFAwICIwEGByqF
+AwICHgEDQwAEQI+lv3kQI8jWka1kMVdbvpvFioP0Pyn3Knmp+2XD6KgPWnXEIlSR
+X8g/IYracDr51YsNc2KE3C7mkH6hA3M3ofujggGCMIIBfjCBxgYFKoUDZHAEgbww
+gbkMI9Cf0JDQmtCcIMKr0JrRgNC40L/RgtC+0J/RgNC+IEhTTcK7DCDQn9CQ0Jog
+wqvQk9C+0LvQvtCy0L3QvtC5INCj0KbCuww20JfQsNC60LvRjtGH0LXQvdC40LUg
+4oSWIDE0OS8zLzIvMi05OTkg0L7RgiAwNS4wNy4yMDEyDDjQl9Cw0LrQu9GO0YfQ
+tdC90LjQtSDihJYgMTQ5LzcvMS80LzItNjAzINC+0YIgMDYuMDcuMjAxMjAuBgUq
+hQNkbwQlDCPQn9CQ0JrQnCDCq9Ca0YDQuNC/0YLQvtCf0YDQviBIU03CuzBDBgNV
+HSAEPDA6MAgGBiqFA2RxATAIBgYqhQNkcQIwCAYGKoUDZHEDMAgGBiqFA2RxBDAI
+BgYqhQNkcQUwBgYEVR0gADAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
+/zAdBgNVHQ4EFgQUi5g7iRhR6O+cAni46sjUILJVyV0wCAYGKoUDAgIDA0EA23Re
+ec/Y27rpMi+iFbgWCazGY3skBTq5ZGsQKOUxCe4mO7UBDACiWqdA0nvqiQMXeHgq
+o//fO9pxuIHtymwyMg==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/reestr-pki/guc2020.pem b/anchors/ca/ru/reestr-pki/guc2020.pem
new file mode 100644 (file)
index 0000000..9831bee
--- /dev/null
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFFDCCBMGgAwIBAgIQTm1HiybyfWV/do4CXOPTkzAKBggqhQMHAQEDAjCCASQx
+HjAcBgkqhkiG9w0BCQEWD2RpdEBtaW5zdnlhei5ydTELMAkGA1UEBhMCUlUxGDAW
+BgNVBAgMDzc3INCc0L7RgdC60LLQsDEZMBcGA1UEBwwQ0LMuINCc0L7RgdC60LLQ
+sDEuMCwGA1UECQwl0YPQu9C40YbQsCDQotCy0LXRgNGB0LrQsNGPLCDQtNC+0Lwg
+NzEsMCoGA1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+0YHRgdC40Lgx
+GDAWBgUqhQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEBEgwwMDc3MTA0
+NzQzNzUxLDAqBgNVBAMMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQ
+uNC4MB4XDTE4MDcwNjEyMTgwNloXDTM2MDcwMTEyMTgwNlowggEkMR4wHAYJKoZI
+hvcNAQkBFg9kaXRAbWluc3Z5YXoucnUxCzAJBgNVBAYTAlJVMRgwFgYDVQQIDA83
+NyDQnNC+0YHQutCy0LAxGTAXBgNVBAcMENCzLiDQnNC+0YHQutCy0LAxLjAsBgNV
+BAkMJdGD0LvQuNGG0LAg0KLQstC10YDRgdC60LDRjywg0LTQvtC8IDcxLDAqBgNV
+BAoMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4MRgwFgYFKoUD
+ZAESDTEwNDc3MDIwMjY3MDExGjAYBggqhQMDgQMBARIMMDA3NzEwNDc0Mzc1MSww
+KgYDVQQDDCPQnNC40L3QutC+0LzRgdCy0Y/Qt9GMINCg0L7RgdGB0LjQuDBmMB8G
+CCqFAwcBAQEBMBMGByqFAwICIwEGCCqFAwcBAQICA0MABEB1OSpFp7milX33EP0i
+kge6HbZacYp9fVj8sUa5RWFXrB27SKX5SvtIGepqKev69RSYeHHKR+jT9YX2NuSK
+9wONo4IBwjCCAb4wgfUGBSqFA2RwBIHrMIHoDDTQn9CQ0JrQnCDCq9Ca0YDQuNC/
+0YLQvtCf0YDQviBIU03CuyDQstC10YDRgdC40LggMi4wDEPQn9CQ0JogwqvQk9C+
+0LvQvtCy0L3QvtC5INGD0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC9
+0YLRgMK7DDXQl9Cw0LrQu9GO0YfQtdC90LjQtSDihJYgMTQ5LzMvMi8yLzIzINC+
+0YIgMDIuMDMuMjAxOAw00JfQsNC60LvRjtGH0LXQvdC40LUg4oSWIDE0OS83LzYv
+MTA1INC+0YIgMjcuMDYuMjAxODA/BgUqhQNkbwQ2DDTQn9CQ0JrQnCDCq9Ca0YDQ
+uNC/0YLQvtCf0YDQviBIU03CuyDQstC10YDRgdC40LggMi4wMEMGA1UdIAQ8MDow
+CAYGKoUDZHEBMAgGBiqFA2RxAjAIBgYqhQNkcQMwCAYGKoUDZHEEMAgGBiqFA2Rx
+BTAGBgRVHSAAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
+DgQWBBTCVPG0a9RMt+BtNrQjkPH+wzybBjAKBggqhQMHAQEDAgNBAJr6/eI7rHL7
++FsQnoH2i6DVxqalbIxLKj05edpZGPLLb6B2PTAMya7pSt9hb8QnFABgsR4IE5gT
+4VVkDWbX/n4=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/reestr-pki/guc2021.pem b/anchors/ca/ru/reestr-pki/guc2021.pem
new file mode 100644 (file)
index 0000000..faab9ea
--- /dev/null
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFFTCCBMKgAwIBAgIRAOrKMs71+XnWjTxOTyzGh6QwCgYIKoUDBwEBAwIwggEk
+MR4wHAYJKoZIhvcNAQkBFg9kaXRAbWluc3Z5YXoucnUxCzAJBgNVBAYTAlJVMRgw
+FgYDVQQIDA83NyDQnNC+0YHQutCy0LAxGTAXBgNVBAcMENCzLiDQnNC+0YHQutCy
+0LAxLjAsBgNVBAkMJdGD0LvQuNGG0LAg0KLQstC10YDRgdC60LDRjywg0LTQvtC8
+IDcxLDAqBgNVBAoMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4
+MRgwFgYFKoUDZAESDTEwNDc3MDIwMjY3MDExGjAYBggqhQMDgQMBARIMMDA3NzEw
+NDc0Mzc1MSwwKgYDVQQDDCPQnNC40L3QutC+0LzRgdCy0Y/Qt9GMINCg0L7RgdGB
+0LjQuDAeFw0yMTA3MDIxMjQxNDdaFw0zOTA3MDIxMjQxNDdaMIIBJDEeMBwGCSqG
+SIb3DQEJARYPZGl0QG1pbnN2eWF6LnJ1MQswCQYDVQQGEwJSVTEYMBYGA1UECAwP
+Nzcg0JzQvtGB0LrQstCwMRkwFwYDVQQHDBDQsy4g0JzQvtGB0LrQstCwMS4wLAYD
+VQQJDCXRg9C70LjRhtCwINCi0LLQtdGA0YHQutCw0Y8sINC00L7QvCA3MSwwKgYD
+VQQKDCPQnNC40L3QutC+0LzRgdCy0Y/Qt9GMINCg0L7RgdGB0LjQuDEYMBYGBSqF
+A2QBEg0xMDQ3NzAyMDI2NzAxMRowGAYIKoUDA4EDAQESDDAwNzcxMDQ3NDM3NTEs
+MCoGA1UEAwwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+0YHRgdC40LgwZjAf
+BggqhQMHAQEBATATBgcqhQMCAiMBBggqhQMHAQECAgNDAARAznwizLAQgEZQecg2
+Re7+vfP0h4I5BVHNCzC3UQsCNZdAxM2nn/pKJGaDI8hv4DM3FF3reU2jWDO7Sp66
+fTrSZqOCAcIwggG+MIH1BgUqhQNkcASB6zCB6Aw00J/QkNCa0JwgwqvQmtGA0LjQ
+v9GC0L7Qn9GA0L4gSFNNwrsg0LLQtdGA0YHQuNC4IDIuMAxD0J/QkNCaIMKr0JPQ
+vtC70L7QstC90L7QuSDRg9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQ
+vdGC0YDCuww10JfQsNC60LvRjtGH0LXQvdC40LUg4oSWIDE0OS8zLzIvMi8yMyDQ
+vtGCIDAyLjAzLjIwMTgMNNCX0LDQutC70Y7Rh9C10L3QuNC1IOKEliAxNDkvNy82
+LzEwNSDQvtGCIDI3LjA2LjIwMTgwPwYFKoUDZG8ENgw00J/QkNCa0JwgwqvQmtGA
+0LjQv9GC0L7Qn9GA0L4gSFNNwrsg0LLQtdGA0YHQuNC4IDIuMDBDBgNVHSAEPDA6
+MAgGBiqFA2RxATAIBgYqhQNkcQIwCAYGKoUDZHEDMAgGBiqFA2RxBDAIBgYqhQNk
+cQUwBgYEVR0gADAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
+HQ4EFgQUGXePu4Lmb8hfk/AVHZMiodatDCYwCgYIKoUDBwEBAwIDQQCFR821LAew
+8tY3/fYGGXQNN5g6E74pjdurOqOoZbS+0WjiGsLPVzcrAts2l7BRGowjZ3MVAmHJ
+L/NjPYAClFu0
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/reestr-pki/guc2022.pem b/anchors/ca/ru/reestr-pki/guc2022.pem
new file mode 100644 (file)
index 0000000..fcab19c
--- /dev/null
@@ -0,0 +1,31 @@
+-----BEGIN CERTIFICATE-----
+MIIFUTCCBP6gAwIBAgIRAJUfo0d8YQQ6rfqFhieCNEIwCgYIKoUDBwEBAwIwggE7
+MSEwHwYJKoZIhvcNAQkBFhJkaXRAZGlnaXRhbC5nb3YucnUxCzAJBgNVBAYTAlJV
+MRgwFgYDVQQIDA83NyDQnNC+0YHQutCy0LAxGTAXBgNVBAcMENCzLiDQnNC+0YHQ
+utCy0LAxUzBRBgNVBAkMStCf0YDQtdGB0L3QtdC90YHQutCw0Y8g0L3QsNCx0LXR
+gNC10LbQvdCw0Y8sINC00L7QvCAxMCwg0YHRgtGA0L7QtdC90LjQtSAyMSYwJAYD
+VQQKDB3QnNC40L3RhtC40YTRgNGLINCg0L7RgdGB0LjQuDEYMBYGBSqFA2QBEg0x
+MDQ3NzAyMDI2NzAxMRUwEwYFKoUDZAQSCjc3MTA0NzQzNzUxJjAkBgNVBAMMHdCc
+0LjQvdGG0LjRhNGA0Ysg0KDQvtGB0YHQuNC4MB4XDTIyMDEwODEzMzIzOVoXDTQw
+MDEwODEzMzIzOVowggE7MSEwHwYJKoZIhvcNAQkBFhJkaXRAZGlnaXRhbC5nb3Yu
+cnUxCzAJBgNVBAYTAlJVMRgwFgYDVQQIDA83NyDQnNC+0YHQutCy0LAxGTAXBgNV
+BAcMENCzLiDQnNC+0YHQutCy0LAxUzBRBgNVBAkMStCf0YDQtdGB0L3QtdC90YHQ
+utCw0Y8g0L3QsNCx0LXRgNC10LbQvdCw0Y8sINC00L7QvCAxMCwg0YHRgtGA0L7Q
+tdC90LjQtSAyMSYwJAYDVQQKDB3QnNC40L3RhtC40YTRgNGLINCg0L7RgdGB0LjQ
+uDEYMBYGBSqFA2QBEg0xMDQ3NzAyMDI2NzAxMRUwEwYFKoUDZAQSCjc3MTA0NzQz
+NzUxJjAkBgNVBAMMHdCc0LjQvdGG0LjRhNGA0Ysg0KDQvtGB0YHQuNC4MGYwHwYI
+KoUDBwEBAQEwEwYHKoUDAgIjAQYIKoUDBwEBAgIDQwAEQFpKa6Qda48LjFq/drz2
+M27fFqu/g3+Prxrg9lE+KPzdbvRHwuOtbhlJ92ogmS+i7mhDDGPsWhtPVduV9Kbq
+QI6jggHQMIIBzDCB9QYFKoUDZHAEgeswgegMNNCf0JDQmtCcIMKr0JrRgNC40L/R
+gtC+0J/RgNC+IEhTTcK7INCy0LXRgNGB0LjQuCAyLjAMQ9Cf0JDQmiDCq9CT0L7Q
+u9C+0LLQvdC+0Lkg0YPQtNC+0YHRgtC+0LLQtdGA0Y/RjtGJ0LjQuSDRhtC10L3R
+gtGAwrsMNdCX0LDQutC70Y7Rh9C10L3QuNC1IOKEliAxNDkvMy8yLzIvMjMg0L7R
+giAwMi4wMy4yMDE4DDTQl9Cw0LrQu9GO0YfQtdC90LjQtSDihJYgMTQ5LzcvNi00
+NDkg0L7RgiAzMC4xMi4yMDIxMD8GBSqFA2RvBDYMNNCf0JDQmtCcIMKr0JrRgNC4
+0L/RgtC+0J/RgNC+IEhTTcK7INCy0LXRgNGB0LjQuCAyLjAwDAYFKoUDZHIEAwIB
+ADBDBgNVHSAEPDA6MAgGBiqFA2RxATAIBgYqhQNkcQIwCAYGKoUDZHEDMAgGBiqF
+A2RxBDAIBgYqhQNkcQUwBgYEVR0gADAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQUyRNYsUynYjp+0j88pucUfJ1wo4YwCgYIKoUDBwEB
+AwIDQQCCSXhICg3SZ/TTCtRJpBFuXGSy3PeZTEeOwdOHIv0tWiN2q0mPRzB/o6r9
+MXjGqdzfYGtCrq1l5FsXZOI5c/2S
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/reestr-pki/guc_gost12.pem b/anchors/ca/ru/reestr-pki/guc_gost12.pem
new file mode 100644 (file)
index 0000000..9831bee
--- /dev/null
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFFDCCBMGgAwIBAgIQTm1HiybyfWV/do4CXOPTkzAKBggqhQMHAQEDAjCCASQx
+HjAcBgkqhkiG9w0BCQEWD2RpdEBtaW5zdnlhei5ydTELMAkGA1UEBhMCUlUxGDAW
+BgNVBAgMDzc3INCc0L7RgdC60LLQsDEZMBcGA1UEBwwQ0LMuINCc0L7RgdC60LLQ
+sDEuMCwGA1UECQwl0YPQu9C40YbQsCDQotCy0LXRgNGB0LrQsNGPLCDQtNC+0Lwg
+NzEsMCoGA1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+0YHRgdC40Lgx
+GDAWBgUqhQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEBEgwwMDc3MTA0
+NzQzNzUxLDAqBgNVBAMMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQ
+uNC4MB4XDTE4MDcwNjEyMTgwNloXDTM2MDcwMTEyMTgwNlowggEkMR4wHAYJKoZI
+hvcNAQkBFg9kaXRAbWluc3Z5YXoucnUxCzAJBgNVBAYTAlJVMRgwFgYDVQQIDA83
+NyDQnNC+0YHQutCy0LAxGTAXBgNVBAcMENCzLiDQnNC+0YHQutCy0LAxLjAsBgNV
+BAkMJdGD0LvQuNGG0LAg0KLQstC10YDRgdC60LDRjywg0LTQvtC8IDcxLDAqBgNV
+BAoMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4MRgwFgYFKoUD
+ZAESDTEwNDc3MDIwMjY3MDExGjAYBggqhQMDgQMBARIMMDA3NzEwNDc0Mzc1MSww
+KgYDVQQDDCPQnNC40L3QutC+0LzRgdCy0Y/Qt9GMINCg0L7RgdGB0LjQuDBmMB8G
+CCqFAwcBAQEBMBMGByqFAwICIwEGCCqFAwcBAQICA0MABEB1OSpFp7milX33EP0i
+kge6HbZacYp9fVj8sUa5RWFXrB27SKX5SvtIGepqKev69RSYeHHKR+jT9YX2NuSK
+9wONo4IBwjCCAb4wgfUGBSqFA2RwBIHrMIHoDDTQn9CQ0JrQnCDCq9Ca0YDQuNC/
+0YLQvtCf0YDQviBIU03CuyDQstC10YDRgdC40LggMi4wDEPQn9CQ0JogwqvQk9C+
+0LvQvtCy0L3QvtC5INGD0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC9
+0YLRgMK7DDXQl9Cw0LrQu9GO0YfQtdC90LjQtSDihJYgMTQ5LzMvMi8yLzIzINC+
+0YIgMDIuMDMuMjAxOAw00JfQsNC60LvRjtGH0LXQvdC40LUg4oSWIDE0OS83LzYv
+MTA1INC+0YIgMjcuMDYuMjAxODA/BgUqhQNkbwQ2DDTQn9CQ0JrQnCDCq9Ca0YDQ
+uNC/0YLQvtCf0YDQviBIU03CuyDQstC10YDRgdC40LggMi4wMEMGA1UdIAQ8MDow
+CAYGKoUDZHEBMAgGBiqFA2RxAjAIBgYqhQNkcQMwCAYGKoUDZHEEMAgGBiqFA2Rx
+BTAGBgRVHSAAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
+DgQWBBTCVPG0a9RMt+BtNrQjkPH+wzybBjAKBggqhQMHAQEDAgNBAJr6/eI7rHL7
++FsQnoH2i6DVxqalbIxLKj05edpZGPLLb6B2PTAMya7pSt9hb8QnFABgsR4IE5gT
+4VVkDWbX/n4=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/reestr-pki/guc_unep_2021.pem b/anchors/ca/ru/reestr-pki/guc_unep_2021.pem
new file mode 100644 (file)
index 0000000..df67eef
--- /dev/null
@@ -0,0 +1,35 @@
+-----BEGIN CERTIFICATE-----
+MIIGIzCCBdCgAwIBAgIQWGKJALOtn7FAASd/YMJgDDAKBggqhQMHAQEDAjCCAWgx
+GDAWBgUqhQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEBEgwwMDc3MTA0
+NzQzNzUxCzAJBgNVBAYTAlJVMRgwFgYDVQQIDA83NyDQnNC+0YHQutCy0LAxGTAX
+BgNVBAcMENCzLiDQnNC+0YHQutCy0LAxOjA4BgNVBAkMMdCf0YDQtdGB0L3QtdC9
+0YHQutCw0Y8g0L3QsNCxLiwg0LQuIDEwLCDRgdGC0YAuIDIxJjAkBgNVBAoMHdCc
+0LjQvdGG0LjRhNGA0Ysg0KDQvtGB0YHQuNC4MYGJMIGGBgNVBAMMf9Cc0LjQvdGG
+0LjRhNGA0Ysg0KDQvtGB0YHQuNC4LiDQo9GB0LjQu9C10L3QvdCw0Y8g0L3QtdC6
+0LLQsNC70LjRhNC40YbQuNGA0L7QstCw0L3QvdCw0Y8g0Y3Qu9C10LrRgtGA0L7Q
+vdC90LDRjyDQv9C+0LTQv9C40YHRjC4wHhcNMjEwOTMwMDgxMDEzWhcNMzYwOTMw
+MDgxMDEzWjCCAWgxGDAWBgUqhQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOB
+AwEBEgwwMDc3MTA0NzQzNzUxCzAJBgNVBAYTAlJVMRgwFgYDVQQIDA83NyDQnNC+
+0YHQutCy0LAxGTAXBgNVBAcMENCzLiDQnNC+0YHQutCy0LAxOjA4BgNVBAkMMdCf
+0YDQtdGB0L3QtdC90YHQutCw0Y8g0L3QsNCxLiwg0LQuIDEwLCDRgdGC0YAuIDIx
+JjAkBgNVBAoMHdCc0LjQvdGG0LjRhNGA0Ysg0KDQvtGB0YHQuNC4MYGJMIGGBgNV
+BAMMf9Cc0LjQvdGG0LjRhNGA0Ysg0KDQvtGB0YHQuNC4LiDQo9GB0LjQu9C10L3Q
+vdCw0Y8g0L3QtdC60LLQsNC70LjRhNC40YbQuNGA0L7QstCw0L3QvdCw0Y8g0Y3Q
+u9C10LrRgtGA0L7QvdC90LDRjyDQv9C+0LTQv9C40YHRjC4wZjAfBggqhQMHAQEB
+ATATBgcqhQMCAiMBBggqhQMHAQECAgNDAARABVlRighq8WUQbwafwWZKQg+zKv43
+80wYQhdlP6U8GDzFg5OCLHYaR4ur3SnUL+YUbbqaHSsZdZiMEntjmIyv16OCAkkw
+ggJFMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUDK2S1qH9/0zRGezLIfK9JJMZ
+BbMwDwYDVR0TAQH/BAUwAwEB/zAnBgNVHSAEIDAeMAgGBiqFA2RxATAIBgYqhQNk
+cQIwCAYGKoUDZHEDMIIBMwYFKoUDZHAEggEoMIIBJAxS0KHQmtCX0JggwqvQmtGA
+0LjQv9GC0L7Qn9GA0L4gQ1NQwrsg0LLQtdGA0YHQuNGPIDQuMCAo0LjRgdC/0L7Q
+u9C90LXQvdC40LUgMy1CYXNlKQwswqvQmtGA0LjQv9GC0L7Qn9GA0L4g0KPQpsK7
+INCy0LXRgNGB0LjQuCAyLjAMT9Ch0LXRgNGC0LjRhNC40LrQsNGCINGB0L7QvtGC
+0LLQtdGC0YHRgtCy0LjRjyDihJYg0KHQpC8xMjQtMzk2NyDQvtGCIDE1LjAxLjIw
+MjEMT9Ch0LXRgNGC0LjRhNC40LrQsNGCINGB0L7QvtGC0LLQtdGC0YHRgtCy0LjR
+jyDihJYg0KHQpC8xMjgtMzg2OSDQvtGCIDIzLjA3LjIwMjAwXQYFKoUDZG8EVAxS
+0KHQmtCX0JggwqvQmtGA0LjQv9GC0L7Qn9GA0L4gQ1NQwrsg0LLQtdGA0YHQuNGP
+IDQuMCAo0LjRgdC/0L7Qu9C90LXQvdC40LUgMy1CYXNlKTARBgkrBgEEAYI3FAIE
+BAwCQ0EwEAYJKwYBBAGCNxUBBAMCAQAwHwYJKwYBBAGCNxUHBBIwEAYIKoUDAgIu
+AAACAQECAQAwCgYIKoUDBwEBAwIDQQDwAhJdc9xMYUeyZY+hTgr8N12Sq4NlD6Y1
+2wmWWp6XJs05O/UIqkVFQf0BSxJpMCesZzLHym7Gk69d12nUTE8o
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/reestr-pki/rootca_ssl_rsa2022.pem b/anchors/ca/ru/reestr-pki/rootca_ssl_rsa2022.pem
new file mode 100644 (file)
index 0000000..fe7ad30
--- /dev/null
@@ -0,0 +1,33 @@
+-----BEGIN CERTIFICATE-----
+MIIFwjCCA6qgAwIBAgICEAAwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAxMjEwNDE1WhcNMzIwMjI3MjEwNDE1WjBwMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMSAwHgYDVQQDDBdSdXNzaWFuIFRydXN0ZWQgUm9v
+dCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMfFOZ8pUAL3+r2n
+qqE0Zp52selXsKGFYoG0GM5bwz1bSFtCt+AZQMhkWQheI3poZAToYJu69pHLKS6Q
+XBiwBC1cvzYmUYKMYZC7jE5YhEU2bSL0mX7NaMxMDmH2/NwuOVRj8OImVa5s1F4U
+zn4Kv3PFlDBjjSjXKVY9kmjUBsXQrIHeaqmUIsPIlNWUnimXS0I0abExqkbdrXbX
+YwCOXhOO2pDUx3ckmJlCMUGacUTnylyQW2VsJIyIGA8V0xzdaeUXg0VZ6ZmNUr5Y
+Ber/EAOLPb8NYpsAhJe2mXjMB/J9HNsoFMBFJ0lLOT/+dQvjbdRZoOT8eqJpWnVD
+U+QL/qEZnz57N88OWM3rabJkRNdU/Z7x5SFIM9FrqtN8xewsiBWBI0K6XFuOBOTD
+4V08o4TzJ8+Ccq5XlCUW2L48pZNCYuBDfBh7FxkB7qDgGDiaftEkZZfApRg2E+M9
+G8wkNKTPLDc4wH0FDTijhgxR3Y4PiS1HL2Zhw7bD3CbslmEGgfnnZojNkJtcLeBH
+BLa52/dSwNU4WWLubaYSiAmA9IUMX1/RpfpxOxd4Ykmhz97oFbUaDJFipIggx5sX
+ePAlkTdWnv+RWBxlJwMQ25oEHmRguNYf4Zr/Rxr9cS93Y+mdXIZaBEE0KS2iLRqa
+OiWBki9IMQU4phqPOBAaG7A+eP8PAgMBAAGjZjBkMB0GA1UdDgQWBBTh0YHlzlpf
+BKrS6badZrHF+qwshzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzAS
+BgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF
+AAOCAgEAALIY1wkilt/urfEVM5vKzr6utOeDWCUczmWX/RX4ljpRdgF+5fAIS4vH
+tmXkqpSCOVeWUrJV9QvZn6L227ZwuE15cWi8DCDal3Ue90WgAJJZMfTshN4OI8cq
+W9E4EG9wglbEtMnObHlms8F3CHmrw3k6KmUkWGoa+/ENmcVl68u/cMRl1JbW2bM+
+/3A+SAg2c6iPDlehczKx2oa95QW0SkPPWGuNA/CE8CpyANIhu9XFrj3RQ3EqeRcS
+AQQod1RNuHpfETLU/A2gMmvn/w/sx7TB3W5BPs6rprOA37tutPq9u6FTZOcG1Oqj
+C/B7yTqgI7rbyvox7DEXoX7rIiEqyNNUguTk/u3SZ4VXE2kmxdmSh3TQvybfbnXV
+4JbCZVaqiZraqc7oZMnRoWrXRG3ztbnbes/9qhRGI7PqXqeKJBztxRTEVj8ONs1d
+WN5szTwaPIvhkhO3CO5ErU2rVdUr89wKpNXbBODFKRtgxUT70YpmJ46VVaqdAhOZ
+D9EUUn4YaeLaS8AjSF/h7UkjOibNc4qVDiPP+rkehFWM66PVnP1Msh93tc+taIfC
+EYVMxjh8zNbFuoc7fzvvrFILLe7ifvEIUqSVIC/AzplM/Jxw7buXFeGP1qVCBEHq
+391d/9RAfaZ12zkwFsl+IKwE/OZxW8AHa9i1p4GO0YSNuczzEm4=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/reestr-pki/subcaDV_ssl_rsa2022.pem b/anchors/ca/ru/reestr-pki/subcaDV_ssl_rsa2022.pem
new file mode 100644 (file)
index 0000000..5ab6154
--- /dev/null
@@ -0,0 +1,41 @@
+-----BEGIN CERTIFICATE-----
+MIIHPDCCBSSgAwIBAgICEAQwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwNTI3MTA1MTU3WhcNMjcwNTMxMTA1MTU3WjByMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMSIwIAYDVQQDDBlSdXNzaWFuIFRydXN0ZWQgRFYg
+U3ViIENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0qErju5cEzrI
+/rXyT1PdWrZ8dVe+jn8pG44ux9wR7eEK3srIG+pS/Au0XUKdEVOf4SnpOO1U0WKS
+AvL/LagQiU6KEwO0ZMAPmqqP3D62mMgyYY1ukvCYjIUG5i6FlwUhoW1TIcVPpSMj
+tHHfbLXeg/ZuKUrO5ivmeNsEOhUTixSwHoOtfVtXn+IBM5V3hgaRQ7q45wIolAcV
+yKveCeRM4FWl22ukaeok+R5ldhge4Qks1+c8p9wgDH7C5TlOmQVQ4TUrBy1IrQSS
+2nkj8678d8JnKmM2tZatW8crYilBpvxp9iUu8tY0qPKbSGbAUi21U2OwZnkmd97o
+2Kyw+dUv1VZCHslnii4NgCIUtkSXm3MeBEh5aE8UxMndLub4Y60L2Yzz0zrajlsq
+QMYKVfvn+GMn/DB+fJxwENTAnISN57lrxiVTqSzK8aNiDMCRhBhBWFD+0SjctHnl
+jCyIpT56BXMGdwWbH7Cct1WbQROzUfqQEw9KcZOqT5GYylWsJ3Y9GYD96ANuyebv
+p9RYRp4pcS0VPaVq7Ta0J8qVdX5FJb+4kY+ggunwvZ/hbOiJUATEh3x9ehjCowUA
+EOAmFFGs8L78CShoWdbcCRWuf6Foa6fBI3DsQQWfBf5/agTNQMRhNMAVP2b6H8zv
+rV0QTYRxhvAK/jJqX5h6GnxcaTMlPd0CAwEAAaOCAdwwggHYMBIGA1UdEwEB/wQI
+MAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBQdc/tm3eYZ+aXLk4F/
+k4itmNnFWzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzCBxwYIKwYB
+BQUHAQEEgbowgbcwOwYIKwYBBQUHMAKGL2h0dHA6Ly9yZWVzdHItcGtpLnJ1L2Nk
+cC9yb290Y2Ffc3NsX3JzYTIwMjIuY3J0MDsGCCsGAQUFBzAChi9odHRwOi8vcm9z
+dGVsZWNvbS5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNydDA7BggrBgEFBQcw
+AoYvaHR0cDovL2NvbXBhbnkucnQucnUvY2RwL3Jvb3RjYV9zc2xfcnNhMjAyMi5j
+cnQwgacGA1UdHwSBnzCBnDCBmaCBlqCBk4YvaHR0cDovL3JlZXN0ci1wa2kucnUv
+Y2RwL3Jvb3RjYV9zc2xfcnNhMjAyMi5jcmyGL2h0dHA6Ly9yb3N0ZWxlY29tLnJ1
+L2NkcC9yb290Y2Ffc3NsX3JzYTIwMjIuY3Jshi9odHRwOi8vY29tcGFueS5ydC5y
+dS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNybDANBgkqhkiG9w0BAQsFAAOCAgEA
+ObdkintrAWIw7J/FbeFELumujQL/4tkxP6oe8hxaup/UJLOPFJOMm0u4dP3d/aMH
+ruToQE2i4h2FdPPNmGomSdn/vTw2yQyAJ9GYC+W3h300/PqpcUu4Ix/HYdE1NA/l
+n0JWo3UNowmAmiuDYmX1MCGHV3R293yU+vlw9DubKT1qfFRDSMKQ2qnCXdkJZPCK
+0qW6RfXs53+i8a88MtwGpeMWa/FCo3KWqRtVP+fbZaTubb5hJolPKEv1H3pFCtK8
+I+SxP+Zm/0Cu1WHSmvCjNTNJDFvB36ibsp8PTt7EmiV0KZdCgqo8WW6KyXyAYFgN
+IRq+34pPUYUZLrx8hAaKXiVorX4Etux3y4hpoNRLILEFT/ug2mhP/eoEcbr/aByV
+I0CV5TC+cupXKvfSDBrS74fjqRNHSfdlaJOqfo+YjphQAgXXzaOfxoPlsR0mAANp
+gAK41mc2gO8B87ST0+VJQQ/cYhrM/vFER3vrTYlPN00Q7rwY2LDfuiw7bJ2nlH5Y
+Nid2GLoa71EQRlXCypJFPGdoMiDhbtg1GacCX7VOylQzzlQRkcgOvKe4rLw834rt
+v6ACedL9D5NonkgG/1LBBVAR2my9sptt1YUhgneK0aMhUkxUNWcPQt6Mrj9THh4U
+TxiEc2QHORcar1WfDLXdLasmqm0IgYNtZuyhfnvAdgo=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/reestr-pki/subca_ssl_rsa2022.pem b/anchors/ca/ru/reestr-pki/subca_ssl_rsa2022.pem
new file mode 100644 (file)
index 0000000..506e767
--- /dev/null
@@ -0,0 +1,41 @@
+-----BEGIN CERTIFICATE-----
+MIIHQjCCBSqgAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwcDELMAkGA1UEBhMCUlUx
+PzA9BgNVBAoMNlRoZSBNaW5pc3RyeSBvZiBEaWdpdGFsIERldmVsb3BtZW50IGFu
+ZCBDb21tdW5pY2F0aW9uczEgMB4GA1UEAwwXUnVzc2lhbiBUcnVzdGVkIFJvb3Qg
+Q0EwHhcNMjIwMzAyMTEyNTE5WhcNMjcwMzA2MTEyNTE5WjBvMQswCQYDVQQGEwJS
+VTE/MD0GA1UECgw2VGhlIE1pbmlzdHJ5IG9mIERpZ2l0YWwgRGV2ZWxvcG1lbnQg
+YW5kIENvbW11bmljYXRpb25zMR8wHQYDVQQDDBZSdXNzaWFuIFRydXN0ZWQgU3Vi
+IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9YPqBKOk19NFymrE
+wehzrhBEgT2atLezpduB24mQ7CiOa/HVpFCDRZzdxqlh8drku408/tTmWzlNH/br
+HuQhZ/miWKOf35lpKzjyBd6TPM23uAfJvEOQ2/dnKGGJbsUo1/udKSvxQwVHpVv3
+S80OlluKfhWPDEXQpgyFqIzPoxIQTLZ0deirZwMVHarZ5u8HqHetRuAtmO2ZDGQn
+vVOJYAjls+Hiueq7Lj7Oce7CQsTwVZeP+XQx28PAaEZ3y6sQEt6rL06ddpSdoTMp
+BnCqTbxW+eWMyjkIn6t9GBtUV45yB1EkHNnj2Ex4GwCiN9T84QQjKSr+8f0psGrZ
+vPbCbQAwNFJjisLixnjlGPLKa5vOmNwIh/LAyUW5DjpkCx004LPDuqPpFsKXNKpa
+L2Dm6uc0x4Jo5m+gUTVORB6hOSzWnWDj2GWfomLzzyjG81DRGFBpco/O93zecsIN
+3SL2Ysjpq1zdoS01CMYxie//9zWvYwzI25/OZigtnpCIrcd2j1Y6dMUFQAzAtHE+
+qsXflSL8HIS+IJEFIQobLlYhHkoE3avgNx5jlu+OLYe0dF0Ykx1PGNjbwqvTX37R
+Cn32NMjlotW2QcGEZhDKj+3urZizp5xdTPZitA+aEjZM/Ni71VOdiOP0igbw6asZ
+2fxdozZ1TnSSYNYvNATwthNmZysCAwEAAaOCAeUwggHhMBIGA1UdEwEB/wQIMAYB
+Af8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTR4XENCy2BTm6KSo9MI7NM
+XqtpCzAfBgNVHSMEGDAWgBTh0YHlzlpfBKrS6badZrHF+qwshzCBxwYIKwYBBQUH
+AQEEgbowgbcwOwYIKwYBBQUHMAKGL2h0dHA6Ly9yb3N0ZWxlY29tLnJ1L2NkcC9y
+b290Y2Ffc3NsX3JzYTIwMjIuY3J0MDsGCCsGAQUFBzAChi9odHRwOi8vY29tcGFu
+eS5ydC5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNydDA7BggrBgEFBQcwAoYv
+aHR0cDovL3JlZXN0ci1wa2kucnUvY2RwL3Jvb3RjYV9zc2xfcnNhMjAyMi5jcnQw
+gbAGA1UdHwSBqDCBpTA1oDOgMYYvaHR0cDovL3Jvc3RlbGVjb20ucnUvY2RwL3Jv
+b3RjYV9zc2xfcnNhMjAyMi5jcmwwNaAzoDGGL2h0dHA6Ly9jb21wYW55LnJ0LnJ1
+L2NkcC9yb290Y2Ffc3NsX3JzYTIwMjIuY3JsMDWgM6Axhi9odHRwOi8vcmVlc3Ry
+LXBraS5ydS9jZHAvcm9vdGNhX3NzbF9yc2EyMDIyLmNybDANBgkqhkiG9w0BAQsF
+AAOCAgEARBVzZls79AdiSCpar15dA5Hr/rrT4WbrOfzlpI+xrLeRPrUG6eUWIW4v
+Sui1yx3iqGLCjPcKb+HOTwoRMbI6ytP/ndp3TlYua2advYBEhSvjs+4vDZNwXr/D
+anbwIWdurZmViQRBDFebpkvnIvru/RpWud/5r624Wp8voZMRtj/cm6aI9LtvBfT9
+cfzhOaexI/99c14dyiuk1+6QhdwKaCRTc1mdfNQmnfWNRbfWhWBlK3h4GGE9JK33
+Gk8ZS8DMrkdAh0xby4xAQ/mSWAfWrBmfzlOqGyoB1U47WTOeqNbWkkoAP2ys94+s
+Jg4NTkiDVtXRF6nr6fYi0bSOvOFg0IQrMXO2Y8gyg9ARdPJwKtvWX8VPADCYMiWH
+h4n8bZokIrImVKLDQKHY4jCsND2HHdJfnrdL2YJw1qFskNO4cSNmZydw0Wkgjv9k
+F+KxqrDKlB8MZu2Hclph6v/CZ0fQ9YuE8/lsHZ0Qc2HyiSMnvjgK5fDc3TD4fa8F
+E8gMNurM+kV8PT8LNIM+4Zs+LKEV8nqRWBaxkIVJGekkVKO8xDBOG/aN62AZKHOe
+GcyIdu7yNMMRihGVZCYr8rYiJoKiOzDqOkPkLOPdhtVlgnhowzHDxMHND/E2WA5p
+ZHuNM/m0TXt2wTTPL7JH2YC0gPz/BvvSzjksgzU5rLbRyUKQkgU=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/reestr-pki/vguc1.pem b/anchors/ca/ru/reestr-pki/vguc1.pem
new file mode 100644 (file)
index 0000000..9e42af5
--- /dev/null
@@ -0,0 +1,39 @@
+-----BEGIN CERTIFICATE-----
+MIIG2DCCBoegAwIBAgILANXJ6OMAAAAAAAwwCAYGKoUDAgIDMIIBSjEeMBwGCSqG
+SIb3DQEJARYPZGl0QG1pbnN2eWF6LnJ1MQswCQYDVQQGEwJSVTEcMBoGA1UECAwT
+Nzcg0LMuINCc0L7RgdC60LLQsDEVMBMGA1UEBwwM0JzQvtGB0LrQstCwMT8wPQYD
+VQQJDDYxMjUzNzUg0LMuINCc0L7RgdC60LLQsCwg0YPQuy4g0KLQstC10YDRgdC6
+0LDRjywg0LQuIDcxLDAqBgNVBAoMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQ
+vtGB0YHQuNC4MRgwFgYFKoUDZAESDTEwNDc3MDIwMjY3MDExGjAYBggqhQMDgQMB
+ARIMMDA3NzEwNDc0Mzc1MUEwPwYDVQQDDDjQk9C+0LvQvtCy0L3QvtC5INGD0LTQ
+vtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgDAeFw0xMjA3MjAxMzI1
+MDZaFw0yNzA3MTcxMzI1MDZaMIIBITEaMBgGCCqFAwOBAwEBEgwwMDc3MTA0NzQz
+NzUxGDAWBgUqhQNkARINMTA0NzcwMjAyNjcwMTEeMBwGCSqGSIb3DQEJARYPZGl0
+QG1pbnN2eWF6LnJ1MTwwOgYDVQQJDDMxMjUzNzUg0LMuINCc0L7RgdC60LLQsCDR
+g9C7LiDQotCy0LXRgNGB0LrQsNGPINC0LjcxLDAqBgNVBAoMI9Cc0LjQvdC60L7Q
+vNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4MRUwEwYDVQQHDAzQnNC+0YHQutCy0LAx
+HDAaBgNVBAgMEzc3INCzLiDQnNC+0YHQutCy0LAxCzAJBgNVBAYTAlJVMRswGQYD
+VQQDDBLQo9CmIDEg0JjQoSDQk9Cj0KYwYzAcBgYqhQMCAhMwEgYHKoUDAgIjAQYH
+KoUDAgIeAQNDAARAbU2Kxdct10eEH+AjY+ky/3IPC6+S5hvS7jU55UYg8g0bbsZ1
+JXe/4IbOcXjS7y1TsU1p/gayfqQw5IBRcp5l8qOCA28wggNrMA8GA1UdEwEB/wQF
+MAMBAf8wHQYDVR0OBBYEFPRmLzxd2FxkXSst3qMekf2IGP46MAsGA1UdDwQEAwIB
+hjAQBgkrBgEEAYI3FQEEAwIBADAvBgNVHSAEKDAmMAgGBiqFA2RxATAIBgYqhQNk
+cQIwCAYGKoUDZHEDMAYGBFUdIAAwNgYFKoUDZG8ELQwr0JrRgNC40L/RgtC+0J/R
+gNC+IENTUCAo0LLQtdGA0YHQuNGPIDMuNi4xKTCCAYsGA1UdIwSCAYIwggF+gBSL
+mDuJGFHo75wCeLjqyNQgslXJXaGCAVKkggFOMIIBSjEeMBwGCSqGSIb3DQEJARYP
+ZGl0QG1pbnN2eWF6LnJ1MQswCQYDVQQGEwJSVTEcMBoGA1UECAwTNzcg0LMuINCc
+0L7RgdC60LLQsDEVMBMGA1UEBwwM0JzQvtGB0LrQstCwMT8wPQYDVQQJDDYxMjUz
+NzUg0LMuINCc0L7RgdC60LLQsCwg0YPQuy4g0KLQstC10YDRgdC60LDRjywg0LQu
+IDcxLDAqBgNVBAoMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4
+MRgwFgYFKoUDZAESDTEwNDc3MDIwMjY3MDExGjAYBggqhQMDgQMBARIMMDA3NzEw
+NDc0Mzc1MUEwPwYDVQQDDDjQk9C+0LvQvtCy0L3QvtC5INGD0LTQvtGB0YLQvtCy
+0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgIIQNGgeQMtB7zOpoLfIdpKaKTBZBgNV
+HR8EUjBQMCagJKAihiBodHRwOi8vcm9zdGVsZWNvbS5ydS9jZHAvZ3VjLmNybDAm
+oCSgIoYgaHR0cDovL3JlZXN0ci1wa2kucnUvY2RwL2d1Yy5jcmwwgcYGBSqFA2Rw
+BIG8MIG5DCPQn9CQ0JrQnCDCq9Ca0YDQuNC/0YLQvtCf0YDQviBIU03Cuwwg0J/Q
+kNCaIMKr0JPQvtC70L7QstC90L7QuSDQo9CmwrsMNtCX0LDQutC70Y7Rh9C10L3Q
+uNC1IOKEliAxNDkvMy8yLzItOTk5INC+0YIgMDUuMDcuMjAxMgw40JfQsNC60LvR
+jtGH0LXQvdC40LUg4oSWIDE0OS83LzEvNC8yLTYwMyDQvtGCIDA2LjA3LjIwMTIw
+CAYGKoUDAgIDA0EA6iV+FNqmkkGHRzHFjtige/eHpe/m9Xf83Pi7CdHl2AZyEexf
+cYtRQM0ZlbRagdyPB0ZfPqnIieBZ9Po5KGT8PA==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/reestr-pki/vguc1_2.pem b/anchors/ca/ru/reestr-pki/vguc1_2.pem
new file mode 100644 (file)
index 0000000..0d62c7c
--- /dev/null
@@ -0,0 +1,39 @@
+-----BEGIN CERTIFICATE-----
+MIIG3TCCBoygAwIBAgILAP9y9MEAAAAAACswCAYGKoUDAgIDMIIBSjEeMBwGCSqG
+SIb3DQEJARYPZGl0QG1pbnN2eWF6LnJ1MQswCQYDVQQGEwJSVTEcMBoGA1UECAwT
+Nzcg0LMuINCc0L7RgdC60LLQsDEVMBMGA1UEBwwM0JzQvtGB0LrQstCwMT8wPQYD
+VQQJDDYxMjUzNzUg0LMuINCc0L7RgdC60LLQsCwg0YPQuy4g0KLQstC10YDRgdC6
+0LDRjywg0LQuIDcxLDAqBgNVBAoMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQ
+vtGB0YHQuNC4MRgwFgYFKoUDZAESDTEwNDc3MDIwMjY3MDExGjAYBggqhQMDgQMB
+ARIMMDA3NzEwNDc0Mzc1MUEwPwYDVQQDDDjQk9C+0LvQvtCy0L3QvtC5INGD0LTQ
+vtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgDAeFw0xMzEyMDUxODEy
+MDZaFw0xNzEyMDQxODEyMDZaMIIBITEaMBgGCCqFAwOBAwEBEgwwMDc3MTA0NzQz
+NzUxGDAWBgUqhQNkARINMTA0NzcwMjAyNjcwMTEeMBwGCSqGSIb3DQEJARYPZGl0
+QG1pbnN2eWF6LnJ1MTwwOgYDVQQJDDMxMjUzNzUg0LMuINCc0L7RgdC60LLQsCDR
+g9C7LiDQotCy0LXRgNGB0LrQsNGPINC0LjcxLDAqBgNVBAoMI9Cc0LjQvdC60L7Q
+vNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4MRUwEwYDVQQHDAzQnNC+0YHQutCy0LAx
+HDAaBgNVBAgMEzc3INCzLiDQnNC+0YHQutCy0LAxCzAJBgNVBAYTAlJVMRswGQYD
+VQQDDBLQo9CmIDEg0JjQoSDQk9Cj0KYwYzAcBgYqhQMCAhMwEgYHKoUDAgIjAQYH
+KoUDAgIeAQNDAARAfseuq3yfDouZVpJSktlCsA3o4onHAk6tVVd7qSvVrkI82HDS
+Zmn5Z4pLBj1YHJOPYb+iFVB7la+huHS1hmIl+6OCA3QwggNwMBIGA1UdEwEB/wQI
+MAYBAf8CAQEwHQYDVR0OBBYEFGS6CUrMdo/Wzmbv89yTP6kwNeQHMAsGA1UdDwQE
+AwIBhjASBgkrBgEEAYI3FQEEBQIDAQABMC8GA1UdIAQoMCYwCAYGKoUDZHEBMAgG
+BiqFA2RxAjAIBgYqhQNkcQMwBgYEVR0gADA2BgUqhQNkbwQtDCvQmtGA0LjQv9GC
+0L7Qn9GA0L4gQ1NQICjQstC10YDRgdC40Y8gMy42LjEpMIIBiwYDVR0jBIIBgjCC
+AX6AFIuYO4kYUejvnAJ4uOrI1CCyVcldoYIBUqSCAU4wggFKMR4wHAYJKoZIhvcN
+AQkBFg9kaXRAbWluc3Z5YXoucnUxCzAJBgNVBAYTAlJVMRwwGgYDVQQIDBM3NyDQ
+sy4g0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQutCy0LAxPzA9BgNVBAkM
+NjEyNTM3NSDQsy4g0JzQvtGB0LrQstCwLCDRg9C7LiDQotCy0LXRgNGB0LrQsNGP
+LCDQtC4gNzEsMCoGA1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+0YHR
+gdC40LgxGDAWBgUqhQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEBEgww
+MDc3MTA0NzQzNzUxQTA/BgNVBAMMONCT0L7Qu9C+0LLQvdC+0Lkg0YPQtNC+0YHR
+gtC+0LLQtdGA0Y/RjtGJ0LjQuSDRhtC10L3RgtGAghA0aB5Ay0HvM6mgt8h2kpop
+MFkGA1UdHwRSMFAwJqAkoCKGIGh0dHA6Ly9yb3N0ZWxlY29tLnJ1L2NkcC9ndWMu
+Y3JsMCagJKAihiBodHRwOi8vcmVlc3RyLXBraS5ydS9jZHAvZ3VjLmNybDCBxgYF
+KoUDZHAEgbwwgbkMI9Cf0JDQmtCcIMKr0JrRgNC40L/RgtC+0J/RgNC+IEhTTcK7
+DCDQn9CQ0JogwqvQk9C+0LvQvtCy0L3QvtC5INCj0KbCuww20JfQsNC60LvRjtGH
+0LXQvdC40LUg4oSWIDE0OS8zLzIvMi05OTkg0L7RgiAwNS4wNy4yMDEyDDjQl9Cw
+0LrQu9GO0YfQtdC90LjQtSDihJYgMTQ5LzcvMS80LzItNjAzINC+0YIgMDYuMDcu
+MjAxMjAIBgYqhQMCAgMDQQCuTvnFWHxBA33LHZV5yfbdy8BMA0FwWG/ykarS89FK
+dSs5VX5L2J8fgCvHolAGYl0Pa6lJGPX1Fsi5Uwc5lwOQ
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/reestr-pki/vguc1_3.pem b/anchors/ca/ru/reestr-pki/vguc1_3.pem
new file mode 100644 (file)
index 0000000..7275cb3
--- /dev/null
@@ -0,0 +1,39 @@
+-----BEGIN CERTIFICATE-----
+MIIG3DCCBougAwIBAgIKHBjOyAAAAAAAPTAIBgYqhQMCAgMwggFKMR4wHAYJKoZI
+hvcNAQkBFg9kaXRAbWluc3Z5YXoucnUxCzAJBgNVBAYTAlJVMRwwGgYDVQQIDBM3
+NyDQsy4g0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQutCy0LAxPzA9BgNV
+BAkMNjEyNTM3NSDQsy4g0JzQvtGB0LrQstCwLCDRg9C7LiDQotCy0LXRgNGB0LrQ
+sNGPLCDQtC4gNzEsMCoGA1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+
+0YHRgdC40LgxGDAWBgUqhQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEB
+EgwwMDc3MTA0NzQzNzUxQTA/BgNVBAMMONCT0L7Qu9C+0LLQvdC+0Lkg0YPQtNC+
+0YHRgtC+0LLQtdGA0Y/RjtGJ0LjQuSDRhtC10L3RgtGAMB4XDTE1MDQyMjExMTU0
+MFoXDTE5MDQyMTExMTU0MFowggEhMRowGAYIKoUDA4EDAQESDDAwNzcxMDQ3NDM3
+NTEYMBYGBSqFA2QBEg0xMDQ3NzAyMDI2NzAxMR4wHAYJKoZIhvcNAQkBFg9kaXRA
+bWluc3Z5YXoucnUxPDA6BgNVBAkMMzEyNTM3NSDQsy4g0JzQvtGB0LrQstCwINGD
+0LsuINCi0LLQtdGA0YHQutCw0Y8g0LQuNzEsMCoGA1UECgwj0JzQuNC90LrQvtC8
+0YHQstGP0LfRjCDQoNC+0YHRgdC40LgxFTATBgNVBAcMDNCc0L7RgdC60LLQsDEc
+MBoGA1UECAwTNzcg0LMuINCc0L7RgdC60LLQsDELMAkGA1UEBhMCUlUxGzAZBgNV
+BAMMEtCj0KYgMSDQmNChINCT0KPQpjBjMBwGBiqFAwICEzASBgcqhQMCAiMBBgcq
+hQMCAh4BA0MABECIK3XrPENDFjbx03P0BFzzRxoQIFUYBswZ1ybdlY+kWyDedtob
+HYKraIKYY+2GIf3kkwOiGRYvL9UPfVbWUQYKo4IDdDCCA3AwEgYDVR0TAQH/BAgw
+BgEB/wIBATAdBgNVHQ4EFgQUzIJYI521zO5pWagHdvAS2gxJQx8wCwYDVR0PBAQD
+AgGGMBIGCSsGAQQBgjcVAQQFAgMCAAIwLwYDVR0gBCgwJjAIBgYqhQNkcQEwCAYG
+KoUDZHECMAgGBiqFA2RxAzAGBgRVHSAAMDYGBSqFA2RvBC0MK9Ca0YDQuNC/0YLQ
+vtCf0YDQviBDU1AgKNCy0LXRgNGB0LjRjyAzLjYuMSkwggGLBgNVHSMEggGCMIIB
+foAUi5g7iRhR6O+cAni46sjUILJVyV2hggFSpIIBTjCCAUoxHjAcBgkqhkiG9w0B
+CQEWD2RpdEBtaW5zdnlhei5ydTELMAkGA1UEBhMCUlUxHDAaBgNVBAgMEzc3INCz
+LiDQnNC+0YHQutCy0LAxFTATBgNVBAcMDNCc0L7RgdC60LLQsDE/MD0GA1UECQw2
+MTI1Mzc1INCzLiDQnNC+0YHQutCy0LAsINGD0LsuINCi0LLQtdGA0YHQutCw0Y8s
+INC0LiA3MSwwKgYDVQQKDCPQnNC40L3QutC+0LzRgdCy0Y/Qt9GMINCg0L7RgdGB
+0LjQuDEYMBYGBSqFA2QBEg0xMDQ3NzAyMDI2NzAxMRowGAYIKoUDA4EDAQESDDAw
+NzcxMDQ3NDM3NTFBMD8GA1UEAww40JPQvtC70L7QstC90L7QuSDRg9C00L7RgdGC
+0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YCCEDRoHkDLQe8zqaC3yHaSmikw
+WQYDVR0fBFIwUDAmoCSgIoYgaHR0cDovL3Jvc3RlbGVjb20ucnUvY2RwL2d1Yy5j
+cmwwJqAkoCKGIGh0dHA6Ly9yZWVzdHItcGtpLnJ1L2NkcC9ndWMuY3JsMIHGBgUq
+hQNkcASBvDCBuQwj0J/QkNCa0JwgwqvQmtGA0LjQv9GC0L7Qn9GA0L4gSFNNwrsM
+INCf0JDQmiDCq9CT0L7Qu9C+0LLQvdC+0Lkg0KPQpsK7DDbQl9Cw0LrQu9GO0YfQ
+tdC90LjQtSDihJYgMTQ5LzMvMi8yLTk5OSDQvtGCIDA1LjA3LjIwMTIMONCX0LDQ
+utC70Y7Rh9C10L3QuNC1IOKEliAxNDkvNy8xLzQvMi02MDMg0L7RgiAwNi4wNy4y
+MDEyMAgGBiqFAwICAwNBAKLIL6X6RGBDYnHl/AQurCU3kHrqCQ7uTxQ1dvcm7/2f
+pzZvAILjCblWf13bicj6ZpC11QdiZo9zThxQxwKXhME=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/reestr-pki/vguc1_4.pem b/anchors/ca/ru/reestr-pki/vguc1_4.pem
new file mode 100644 (file)
index 0000000..1b99f76
--- /dev/null
@@ -0,0 +1,38 @@
+-----BEGIN CERTIFICATE-----
+MIIGrDCCBlugAwIBAgILAOvBBVQAAAAAAFkwCAYGKoUDAgIDMIIBSjEeMBwGCSqG
+SIb3DQEJARYPZGl0QG1pbnN2eWF6LnJ1MQswCQYDVQQGEwJSVTEcMBoGA1UECAwT
+Nzcg0LMuINCc0L7RgdC60LLQsDEVMBMGA1UEBwwM0JzQvtGB0LrQstCwMT8wPQYD
+VQQJDDYxMjUzNzUg0LMuINCc0L7RgdC60LLQsCwg0YPQuy4g0KLQstC10YDRgdC6
+0LDRjywg0LQuIDcxLDAqBgNVBAoMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQ
+vtGB0YHQuNC4MRgwFgYFKoUDZAESDTEwNDc3MDIwMjY3MDExGjAYBggqhQMDgQMB
+ARIMMDA3NzEwNDc0Mzc1MUEwPwYDVQQDDDjQk9C+0LvQvtCy0L3QvtC5INGD0LTQ
+vtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgDAeFw0xNjAzMTYxMjAy
+NTFaFw0yNzA3MTIxMjAyNTFaMIIBITEaMBgGCCqFAwOBAwEBEgwwMDc3MTA0NzQz
+NzUxGDAWBgUqhQNkARINMTA0NzcwMjAyNjcwMTEeMBwGCSqGSIb3DQEJARYPZGl0
+QG1pbnN2eWF6LnJ1MTwwOgYDVQQJDDMxMjUzNzUg0LMuINCc0L7RgdC60LLQsCDR
+g9C7LiDQotCy0LXRgNGB0LrQsNGPINC0LjcxLDAqBgNVBAoMI9Cc0LjQvdC60L7Q
+vNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4MRUwEwYDVQQHDAzQnNC+0YHQutCy0LAx
+HDAaBgNVBAgMEzc3INCzLiDQnNC+0YHQutCy0LAxCzAJBgNVBAYTAlJVMRswGQYD
+VQQDDBLQo9CmIDEg0JjQoSDQk9Cj0KYwYzAcBgYqhQMCAhMwEgYHKoUDAgIjAQYH
+KoUDAgIeAQNDAARAx70Y7WYQ4ODtdiSSx3MJnr1GQBEIExiPO/LWj1TRKES1OcDI
+YgtdOBGVYSvbsStl10jkAOG0OpnGsd2by4m+LaOCA0MwggM/MA8GA1UdEwEB/wQF
+MAMBAf8wHQYDVR0OBBYEFBGIaV7vyOlz23pXNbzSAfMF/qfRMAsGA1UdDwQEAwIB
+hjCCAYsGA1UdIwSCAYIwggF+gBSLmDuJGFHo75wCeLjqyNQgslXJXaGCAVKkggFO
+MIIBSjEeMBwGCSqGSIb3DQEJARYPZGl0QG1pbnN2eWF6LnJ1MQswCQYDVQQGEwJS
+VTEcMBoGA1UECAwTNzcg0LMuINCc0L7RgdC60LLQsDEVMBMGA1UEBwwM0JzQvtGB
+0LrQstCwMT8wPQYDVQQJDDYxMjUzNzUg0LMuINCc0L7RgdC60LLQsCwg0YPQuy4g
+0KLQstC10YDRgdC60LDRjywg0LQuIDcxLDAqBgNVBAoMI9Cc0LjQvdC60L7QvNGB
+0LLRj9C30Ywg0KDQvtGB0YHQuNC4MRgwFgYFKoUDZAESDTEwNDc3MDIwMjY3MDEx
+GjAYBggqhQMDgQMBARIMMDA3NzEwNDc0Mzc1MUEwPwYDVQQDDDjQk9C+0LvQvtCy
+0L3QvtC5INGD0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgIIQ
+NGgeQMtB7zOpoLfIdpKaKTBZBgNVHR8EUjBQMCagJKAihiBodHRwOi8vcm9zdGVs
+ZWNvbS5ydS9jZHAvZ3VjLmNybDAmoCSgIoYgaHR0cDovL3JlZXN0ci1wa2kucnUv
+Y2RwL2d1Yy5jcmwwJgYFKoUDZG8EHQwb0JrRgNC40L/RgtC+LdCf0YDQviBDU1Ag
+My42MCUGA1UdIAQeMBwwCAYGKoUDZHEBMAgGBiqFA2RxAjAGBgRVHSAAMIHGBgUq
+hQNkcASBvDCBuQwj0J/QkNCa0JwgwqvQmtGA0LjQv9GC0L7Qn9GA0L4gSFNNwrsM
+INCf0JDQmiDCq9CT0L7Qu9C+0LLQvdC+0Lkg0KPQpsK7DDbQl9Cw0LrQu9GO0YfQ
+tdC90LjQtSDihJYgMTQ5LzMvMi8yLTk5OSDQvtGCIDA1LjA3LjIwMTIMONCX0LDQ
+utC70Y7Rh9C10L3QuNC1IOKEliAxNDkvNy8xLzQvMi02MDMg0L7RgiAwNi4wNy4y
+MDEyMAgGBiqFAwICAwNBAKVYokUvb7XAMPJF38ZPKO2BFBldmGEfqsfmsiO35Y52
+kTkx512H3YLqWMrOLjIfVMJhc+DTCNeXWY6bhK4/DRU=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/reestr-pki/vguc1_5.pem b/anchors/ca/ru/reestr-pki/vguc1_5.pem
new file mode 100644 (file)
index 0000000..2f99077
--- /dev/null
@@ -0,0 +1,40 @@
+-----BEGIN CERTIFICATE-----
+MIIG8DCCBp+gAwIBAgILAMzgRWQAAAAAAJIwCAYGKoUDAgIDMIIBSjEeMBwGCSqG
+SIb3DQEJARYPZGl0QG1pbnN2eWF6LnJ1MQswCQYDVQQGEwJSVTEcMBoGA1UECAwT
+Nzcg0LMuINCc0L7RgdC60LLQsDEVMBMGA1UEBwwM0JzQvtGB0LrQstCwMT8wPQYD
+VQQJDDYxMjUzNzUg0LMuINCc0L7RgdC60LLQsCwg0YPQuy4g0KLQstC10YDRgdC6
+0LDRjywg0LQuIDcxLDAqBgNVBAoMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQ
+vtGB0YHQuNC4MRgwFgYFKoUDZAESDTEwNDc3MDIwMjY3MDExGjAYBggqhQMDgQMB
+ARIMMDA3NzEwNDc0Mzc1MUEwPwYDVQQDDDjQk9C+0LvQvtCy0L3QvtC5INGD0LTQ
+vtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgDAeFw0xNjEyMDcxMDUx
+MTFaFw0yNjEyMDcxMDUxMTFaMIIBITEaMBgGCCqFAwOBAwEBEgwwMDc3MTA0NzQz
+NzUxGDAWBgUqhQNkARINMTA0NzcwMjAyNjcwMTEeMBwGCSqGSIb3DQEJARYPZGl0
+QG1pbnN2eWF6LnJ1MTwwOgYDVQQJDDMxMjUzNzUg0LMuINCc0L7RgdC60LLQsCDR
+g9C7LiDQotCy0LXRgNGB0LrQsNGPINC0LjcxLDAqBgNVBAoMI9Cc0LjQvdC60L7Q
+vNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4MRUwEwYDVQQHDAzQnNC+0YHQutCy0LAx
+HDAaBgNVBAgMEzc3INCzLiDQnNC+0YHQutCy0LAxCzAJBgNVBAYTAlJVMRswGQYD
+VQQDDBLQo9CmIDEg0JjQoSDQk9Cj0KYwYzAcBgYqhQMCAhMwEgYHKoUDAgIjAQYH
+KoUDAgIeAQNDAARA0o8rJm8qWVz/UI9xrRFvMBRZI3STCxA839I2vjNiSMNXUtjW
+Jatz6qfZpJPJzXHxYShC6Ng1JgilG8h+mv7LhaOCA4cwggODMAsGA1UdDwQEAwIB
+hjAdBgNVHQ4EFgQUn8JzWKh0gWpgbTP0R6RopnY5Z5swFAYJKwYBBAGCNxQCBAcM
+BVN1YkNBMA8GA1UdEwEB/wQFMAMBAf8wLwYDVR0gBCgwJjAGBgRVHSAAMAgGBiqF
+A2RxATAIBgYqhQNkcQIwCAYGKoUDZHEDMDYGBSqFA2RvBC0MKyLQmtGA0LjQv9GC
+0L7Qn9GA0L4gQ1NQIiAo0LLQtdGA0YHQuNGPIDMuOSkwEgYJKwYBBAGCNxUBBAUC
+AwQABDCCAYsGA1UdIwSCAYIwggF+gBSLmDuJGFHo75wCeLjqyNQgslXJXaGCAVKk
+ggFOMIIBSjEeMBwGCSqGSIb3DQEJARYPZGl0QG1pbnN2eWF6LnJ1MQswCQYDVQQG
+EwJSVTEcMBoGA1UECAwTNzcg0LMuINCc0L7RgdC60LLQsDEVMBMGA1UEBwwM0JzQ
+vtGB0LrQstCwMT8wPQYDVQQJDDYxMjUzNzUg0LMuINCc0L7RgdC60LLQsCwg0YPQ
+uy4g0KLQstC10YDRgdC60LDRjywg0LQuIDcxLDAqBgNVBAoMI9Cc0LjQvdC60L7Q
+vNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4MRgwFgYFKoUDZAESDTEwNDc3MDIwMjY3
+MDExGjAYBggqhQMDgQMBARIMMDA3NzEwNDc0Mzc1MUEwPwYDVQQDDDjQk9C+0LvQ
+vtCy0L3QvtC5INGD0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLR
+gIIQNGgeQMtB7zOpoLfIdpKaKTBZBgNVHR8EUjBQMCagJKAihiBodHRwOi8vcm9z
+dGVsZWNvbS5ydS9jZHAvZ3VjLmNybDAmoCSgIoYgaHR0cDovL3JlZXN0ci1wa2ku
+cnUvY2RwL2d1Yy5jcmwwgcYGBSqFA2RwBIG8MIG5DCPQn9CQ0JrQnCDCq9Ca0YDQ
+uNC/0YLQvtCf0YDQviBIU03Cuwwg0J/QkNCaIMKr0JPQvtC70L7QstC90L7QuSDQ
+o9CmwrsMNtCX0LDQutC70Y7Rh9C10L3QuNC1IOKEliAxNDkvMy8yLzItOTk5INC+
+0YIgMDUuMDcuMjAxMgw40JfQsNC60LvRjtGH0LXQvdC40LUg4oSWIDE0OS83LzEv
+NC8yLTYwMyDQvtGCIDA2LjA3LjIwMTIwCAYGKoUDAgIDA0EAnWGN3cDUzgTIMNMT
+EGTdWO6KGIy/PudXB4Ybj6kGugyG0JbFxeq6dp3RfMSSs53AE33qH4XUuqS+6Fq/
+vFHZpA==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/reestr-pki/vguc1_6.pem b/anchors/ca/ru/reestr-pki/vguc1_6.pem
new file mode 100644 (file)
index 0000000..341e2bf
--- /dev/null
@@ -0,0 +1,40 @@
+-----BEGIN CERTIFICATE-----
+MIIG8DCCBp+gAwIBAgILAKDQmGEAAAAAAiowCAYGKoUDAgIDMIIBSjEeMBwGCSqG
+SIb3DQEJARYPZGl0QG1pbnN2eWF6LnJ1MQswCQYDVQQGEwJSVTEcMBoGA1UECAwT
+Nzcg0LMuINCc0L7RgdC60LLQsDEVMBMGA1UEBwwM0JzQvtGB0LrQstCwMT8wPQYD
+VQQJDDYxMjUzNzUg0LMuINCc0L7RgdC60LLQsCwg0YPQuy4g0KLQstC10YDRgdC6
+0LDRjywg0LQuIDcxLDAqBgNVBAoMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQ
+vtGB0YHQuNC4MRgwFgYFKoUDZAESDTEwNDc3MDIwMjY3MDExGjAYBggqhQMDgQMB
+ARIMMDA3NzEwNDc0Mzc1MUEwPwYDVQQDDDjQk9C+0LvQvtCy0L3QvtC5INGD0LTQ
+vtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgDAeFw0xODAxMjYwOTE1
+MzVaFw0yNzAxMjYwOTE1MzVaMIIBHDEeMBwGCSqGSIb3DQEJARYPZGl0QG1pbnN2
+eWF6LnJ1MRgwFgYFKoUDZAESDTEwNDc3MDIwMjY3MDExGjAYBggqhQMDgQMBARIM
+MDA3NzEwNDc0Mzc1MQswCQYDVQQGEwJSVTEYMBYGA1UECAwPNzcg0JzQvtGB0LrQ
+stCwMRkwFwYDVQQHDBDQsy4g0JzQvtGB0LrQstCwMSYwJAYDVQQJDB3Rg9C7LiDQ
+otCy0LXRgNGB0LrQsNGPLCDQtC4gNzEsMCoGA1UECgwj0JzQuNC90LrQvtC80YHQ
+stGP0LfRjCDQoNC+0YHRgdC40LgxLDAqBgNVBAMMI9Cc0LjQvdC60L7QvNGB0LLR
+j9C30Ywg0KDQvtGB0YHQuNC4MGMwHAYGKoUDAgITMBIGByqFAwICIwEGByqFAwIC
+HgEDQwAEQMTCJCufT5WUXGG673NQSzTWpkMarz9ssqeMnLza14iWLVfHoVNpc4ZG
++UWTjVLU3OD7wBmG2YAfYJtN5Ed/jHijggOMMIIDiDALBgNVHQ8EBAMCAYYwHQYD
+VR0OBBYEFCm0DYj5qBzFRL9Q3mVpA5VbBSPRMBQGCSsGAQQBgjcUAgQHDAVTdWJD
+QTASBgNVHRMBAf8ECDAGAQH/AgEAMDUGA1UdIAQuMCwwDAYKKwYBBAGCNwoMATAI
+BgYqhQNkcQEwCAYGKoUDZHECMAgGBiqFA2RxAzA0BgUqhQNkbwQrDCnQmtGA0LjQ
+v9GC0L7Qn9GA0L4gQ1NQICjQstC10YDRgdC40Y8gMy45KTAQBgkrBgEEAYI3FQEE
+AwIBADCCAYsGA1UdIwSCAYIwggF+gBSLmDuJGFHo75wCeLjqyNQgslXJXaGCAVKk
+ggFOMIIBSjEeMBwGCSqGSIb3DQEJARYPZGl0QG1pbnN2eWF6LnJ1MQswCQYDVQQG
+EwJSVTEcMBoGA1UECAwTNzcg0LMuINCc0L7RgdC60LLQsDEVMBMGA1UEBwwM0JzQ
+vtGB0LrQstCwMT8wPQYDVQQJDDYxMjUzNzUg0LMuINCc0L7RgdC60LLQsCwg0YPQ
+uy4g0KLQstC10YDRgdC60LDRjywg0LQuIDcxLDAqBgNVBAoMI9Cc0LjQvdC60L7Q
+vNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4MRgwFgYFKoUDZAESDTEwNDc3MDIwMjY3
+MDExGjAYBggqhQMDgQMBARIMMDA3NzEwNDc0Mzc1MUEwPwYDVQQDDDjQk9C+0LvQ
+vtCy0L3QvtC5INGD0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLR
+gIIQNGgeQMtB7zOpoLfIdpKaKTBZBgNVHR8EUjBQMCagJKAihiBodHRwOi8vcm9z
+dGVsZWNvbS5ydS9jZHAvZ3VjLmNybDAmoCSgIoYgaHR0cDovL3JlZXN0ci1wa2ku
+cnUvY2RwL2d1Yy5jcmwwgcYGBSqFA2RwBIG8MIG5DCPQn9CQ0JrQnCDCq9Ca0YDQ
+uNC/0YLQvtCf0YDQviBIU03Cuwwg0J/QkNCaIMKr0JPQvtC70L7QstC90L7QuSDQ
+o9CmwrsMNtCX0LDQutC70Y7Rh9C10L3QuNC1IOKEliAxNDkvMy8yLzItOTk5INC+
+0YIgMDUuMDcuMjAxMgw40JfQsNC60LvRjtGH0LXQvdC40LUg4oSWIDE0OS83LzEv
+NC8yLTYwMyDQvtGCIDA2LjA3LjIwMTIwCAYGKoUDAgIDA0EApzAuHf+HXGpko9zM
+cVoLxnGjdKcH5SHFYCfNJGTP3wZVk0E+Q2FMAuWnoBb0+iBLKjHy4LCsL2EJP9Rt
+Vc6Xxg==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/reestr-pki/vguc2.pem b/anchors/ca/ru/reestr-pki/vguc2.pem
new file mode 100644 (file)
index 0000000..8050877
--- /dev/null
@@ -0,0 +1,39 @@
+-----BEGIN CERTIFICATE-----
+MIIG2TCCBoigAwIBAgIKPIIlGQAAAAAAGDAIBgYqhQMCAgMwggFKMR4wHAYJKoZI
+hvcNAQkBFg9kaXRAbWluc3Z5YXoucnUxCzAJBgNVBAYTAlJVMRwwGgYDVQQIDBM3
+NyDQsy4g0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQutCy0LAxPzA9BgNV
+BAkMNjEyNTM3NSDQsy4g0JzQvtGB0LrQstCwLCDRg9C7LiDQotCy0LXRgNGB0LrQ
+sNGPLCDQtC4gNzEsMCoGA1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+
+0YHRgdC40LgxGDAWBgUqhQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEB
+EgwwMDc3MTA0NzQzNzUxQTA/BgNVBAMMONCT0L7Qu9C+0LLQvdC+0Lkg0YPQtNC+
+0YHRgtC+0LLQtdGA0Y/RjtGJ0LjQuSDRhtC10L3RgtGAMB4XDTEzMDcyMzA2NTQy
+MloXDTE3MDcyMjA2NTQyMlowggEgMRowGAYIKoUDA4EDAQESDDAwNzcxMDQ3NDM3
+NTEYMBYGBSqFA2QBEg0xMDQ3NzAyMDI2NzAxMR4wHAYJKoZIhvcNAQkBFg9kaXRA
+bWluc3Z5YXoucnUxPDA6BgNVBAkMMzEyNTM3NSDQsy4g0JzQvtGB0LrQstCwINGD
+0LsuINCi0LLQtdGA0YHQutCw0Y8g0LQuNzEsMCoGA1UECgwj0JzQuNC90LrQvtC8
+0YHQstGP0LfRjCDQoNC+0YHRgdC40LgxFTATBgNVBAcMDNCc0L7RgdC60LLQsDEb
+MBkGA1UECAwSNzcg0LMu0JzQvtGB0LrQstCwMQswCQYDVQQGEwJSVTEbMBkGA1UE
+AwwS0KPQpiAyINCY0KEg0JPQo9CmMGMwHAYGKoUDAgITMBIGByqFAwICIwEGByqF
+AwICHgEDQwAEQGnCxoF+JPaGUh2Hgtz3HO2pZdz4LNTgdTXFsQNlkbHaxMTZjHUe
+sfpbVTbeVsYm6Amab3zUxp4OeRZnjS/zHBGjggNyMIIDbjASBgNVHRMBAf8ECDAG
+AQH/AgEBMB0GA1UdDgQWBBTGa8ECopKqFAoKShT9GR0NV9BEnDALBgNVHQ8EBAMC
+AYYwEAYJKwYBBAGCNxUBBAMCAQAwLwYDVR0gBCgwJjAIBgYqhQNkcQEwCAYGKoUD
+ZHECMAgGBiqFA2RxAzAGBgRVHSAAMDYGBSqFA2RvBC0MK9Ca0YDQuNC/0YLQvtCf
+0YDQviBDU1AgKNCy0LXRgNGB0LjRjyAzLjYuMSkwggGLBgNVHSMEggGCMIIBfoAU
+i5g7iRhR6O+cAni46sjUILJVyV2hggFSpIIBTjCCAUoxHjAcBgkqhkiG9w0BCQEW
+D2RpdEBtaW5zdnlhei5ydTELMAkGA1UEBhMCUlUxHDAaBgNVBAgMEzc3INCzLiDQ
+nNC+0YHQutCy0LAxFTATBgNVBAcMDNCc0L7RgdC60LLQsDE/MD0GA1UECQw2MTI1
+Mzc1INCzLiDQnNC+0YHQutCy0LAsINGD0LsuINCi0LLQtdGA0YHQutCw0Y8sINC0
+LiA3MSwwKgYDVQQKDCPQnNC40L3QutC+0LzRgdCy0Y/Qt9GMINCg0L7RgdGB0LjQ
+uDEYMBYGBSqFA2QBEg0xMDQ3NzAyMDI2NzAxMRowGAYIKoUDA4EDAQESDDAwNzcx
+MDQ3NDM3NTFBMD8GA1UEAww40JPQvtC70L7QstC90L7QuSDRg9C00L7RgdGC0L7Q
+stC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YCCEDRoHkDLQe8zqaC3yHaSmikwWQYD
+VR0fBFIwUDAmoCSgIoYgaHR0cDovL3Jvc3RlbGVjb20ucnUvY2RwL2d1Yy5jcmww
+JqAkoCKGIGh0dHA6Ly9yZWVzdHItcGtpLnJ1L2NkcC9ndWMuY3JsMIHGBgUqhQNk
+cASBvDCBuQwj0J/QkNCa0JwgwqvQmtGA0LjQv9GC0L7Qn9GA0L4gSFNNwrsMINCf
+0JDQmiDCq9CT0L7Qu9C+0LLQvdC+0Lkg0KPQpsK7DDbQl9Cw0LrQu9GO0YfQtdC9
+0LjQtSDihJYgMTQ5LzMvMi8yLTk5OSDQvtGCIDA1LjA3LjIwMTIMONCX0LDQutC7
+0Y7Rh9C10L3QuNC1IOKEliAxNDkvNy8xLzQvMi02MDMg0L7RgiAwNi4wNy4yMDEy
+MAgGBiqFAwICAwNBACc2ZYXoqvi+dWijj+v4v0v08aoDXCi9ceFN5sfI60/VXa+L
+5l70WwzgjGumbpF/H936RAVSDdn1Iz8d559EXw0=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/reestr-pki/vguc2_2.pem b/anchors/ca/ru/reestr-pki/vguc2_2.pem
new file mode 100644 (file)
index 0000000..0202016
--- /dev/null
@@ -0,0 +1,39 @@
+-----BEGIN CERTIFICATE-----
+MIIG2zCCBoqgAwIBAgIKRYm2OgAAAAAANTAIBgYqhQMCAgMwggFKMR4wHAYJKoZI
+hvcNAQkBFg9kaXRAbWluc3Z5YXoucnUxCzAJBgNVBAYTAlJVMRwwGgYDVQQIDBM3
+NyDQsy4g0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQutCy0LAxPzA9BgNV
+BAkMNjEyNTM3NSDQsy4g0JzQvtGB0LrQstCwLCDRg9C7LiDQotCy0LXRgNGB0LrQ
+sNGPLCDQtC4gNzEsMCoGA1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+
+0YHRgdC40LgxGDAWBgUqhQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEB
+EgwwMDc3MTA0NzQzNzUxQTA/BgNVBAMMONCT0L7Qu9C+0LLQvdC+0Lkg0YPQtNC+
+0YHRgtC+0LLQtdGA0Y/RjtGJ0LjQuSDRhtC10L3RgtGAMB4XDTE0MTIxOTAwMDc0
+NVoXDTE4MTIxODAwMDc0NVowggEgMRowGAYIKoUDA4EDAQESDDAwNzcxMDQ3NDM3
+NTEYMBYGBSqFA2QBEg0xMDQ3NzAyMDI2NzAxMR4wHAYJKoZIhvcNAQkBFg9kaXRA
+bWluc3Z5YXoucnUxPDA6BgNVBAkMMzEyNTM3NSDQsy4g0JzQvtGB0LrQstCwINGD
+0LsuINCi0LLQtdGA0YHQutCw0Y8g0LQuNzEsMCoGA1UECgwj0JzQuNC90LrQvtC8
+0YHQstGP0LfRjCDQoNC+0YHRgdC40LgxFTATBgNVBAcMDNCc0L7RgdC60LLQsDEb
+MBkGA1UECAwSNzcg0LMu0JzQvtGB0LrQstCwMQswCQYDVQQGEwJSVTEbMBkGA1UE
+AwwS0KPQpiAyINCY0KEg0JPQo9CmMGMwHAYGKoUDAgITMBIGByqFAwICIwEGByqF
+AwICHgEDQwAEQOvLMVc+wjT6FTTgumH8+MsKRKQQxcyGwDG1RfAflhVGGnK71rVv
+/dJiIwNclxqAp5HC1XEPUyEttGbhq1YLENGjggN0MIIDcDASBgNVHRMBAf8ECDAG
+AQH/AgEBMB0GA1UdDgQWBBQNCfpGjs8LyV+STqhFypkLWa3nUzALBgNVHQ8EBAMC
+AYYwEgYJKwYBBAGCNxUBBAUCAwEAATAvBgNVHSAEKDAmMAgGBiqFA2RxATAIBgYq
+hQNkcQIwCAYGKoUDZHEDMAYGBFUdIAAwNgYFKoUDZG8ELQwr0JrRgNC40L/RgtC+
+0J/RgNC+IENTUCAo0LLQtdGA0YHQuNGPIDMuNi4xKTCCAYsGA1UdIwSCAYIwggF+
+gBSLmDuJGFHo75wCeLjqyNQgslXJXaGCAVKkggFOMIIBSjEeMBwGCSqGSIb3DQEJ
+ARYPZGl0QG1pbnN2eWF6LnJ1MQswCQYDVQQGEwJSVTEcMBoGA1UECAwTNzcg0LMu
+INCc0L7RgdC60LLQsDEVMBMGA1UEBwwM0JzQvtGB0LrQstCwMT8wPQYDVQQJDDYx
+MjUzNzUg0LMuINCc0L7RgdC60LLQsCwg0YPQuy4g0KLQstC10YDRgdC60LDRjywg
+0LQuIDcxLDAqBgNVBAoMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQ
+uNC4MRgwFgYFKoUDZAESDTEwNDc3MDIwMjY3MDExGjAYBggqhQMDgQMBARIMMDA3
+NzEwNDc0Mzc1MUEwPwYDVQQDDDjQk9C+0LvQvtCy0L3QvtC5INGD0LTQvtGB0YLQ
+vtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgIIQNGgeQMtB7zOpoLfIdpKaKTBZ
+BgNVHR8EUjBQMCagJKAihiBodHRwOi8vcm9zdGVsZWNvbS5ydS9jZHAvZ3VjLmNy
+bDAmoCSgIoYgaHR0cDovL3JlZXN0ci1wa2kucnUvY2RwL2d1Yy5jcmwwgcYGBSqF
+A2RwBIG8MIG5DCPQn9CQ0JrQnCDCq9Ca0YDQuNC/0YLQvtCf0YDQviBIU03Cuwwg
+0J/QkNCaIMKr0JPQvtC70L7QstC90L7QuSDQo9CmwrsMNtCX0LDQutC70Y7Rh9C1
+0L3QuNC1IOKEliAxNDkvMy8yLzItOTk5INC+0YIgMDUuMDcuMjAxMgw40JfQsNC6
+0LvRjtGH0LXQvdC40LUg4oSWIDE0OS83LzEvNC8yLTYwMyDQvtGCIDA2LjA3LjIw
+MTIwCAYGKoUDAgIDA0EAeaTj/dAfi11Hqx9NjhFhtPCU1S7RQNl7VY3B/SYF2va8
+EmAvCrIiCMeFdBlCkuw40HAzXEX5HmBeF/Zf4nWcpA==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/Корус.pem b/anchors/ca/ru/Корус.pem
new file mode 100644 (file)
index 0000000..ba44730
--- /dev/null
@@ -0,0 +1,45 @@
+-----BEGIN CERTIFICATE-----
+MIIIBTCCB7KgAwIBAgILAMk63c4AAAAABJEwCgYIKoUDBwEBAwIwggEkMR4wHAYJ
+KoZIhvcNAQkBFg9kaXRAbWluc3Z5YXoucnUxCzAJBgNVBAYTAlJVMRgwFgYDVQQI
+DA83NyDQnNC+0YHQutCy0LAxGTAXBgNVBAcMENCzLiDQnNC+0YHQutCy0LAxLjAs
+BgNVBAkMJdGD0LvQuNGG0LAg0KLQstC10YDRgdC60LDRjywg0LTQvtC8IDcxLDAq
+BgNVBAoMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4MRgwFgYF
+KoUDZAESDTEwNDc3MDIwMjY3MDExGjAYBggqhQMDgQMBARIMMDA3NzEwNDc0Mzc1
+MSwwKgYDVQQDDCPQnNC40L3QutC+0LzRgdCy0Y/Qt9GMINCg0L7RgdGB0LjQuDAe
+Fw0yMDEwMTUxMTQyNDlaFw0zNTEwMTUxMTQyNDlaMIIBvjEcMBoGCSqGSIb3DQEJ
+ARYNdWNAZXNwaGVyZS5ydTEYMBYGBSqFA2QBEg0xMDU3ODEyNzUyNTAyMRowGAYI
+KoUDA4EDAQESDDAwNzgwMTM5MjI3MTELMAkGA1UEBhMCUlUxLTArBgNVBAgMJDc4
+INCzLiDQodCw0L3QutGCLdCf0LXRgtC10YDQsdGD0YDQszEqMCgGA1UEBwwh0LMu
+INCh0LDQvdC60YIt0J/QtdGC0LXRgNCx0YPRgNCzMVowWAYDVQQJDFHQkdC+0LvR
+jNGI0L7QuSDQodCw0LzQv9GB0L7QvdC40LXQstGB0LrQuNC5INC/0YAuLCDQtC42
+OCwg0LvQuNGCLiDQnSwg0L/QvtC8LiAx0J0xMDAuBgNVBAsMJ9Cj0LTQvtGB0YLQ
+vtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgDE4MDYGA1UECgwv0J7QntCeICLQ
+mtCe0KDQo9ChINCa0L7QvdGB0LDQu9GC0LjQvdCzINCh0J3QkyIxODA2BgNVBAMM
+L9Ce0J7QniAi0JrQntCg0KPQoSDQmtC+0L3RgdCw0LvRgtC40L3QsyDQodCd0JMi
+MGYwHwYIKoUDBwEBAQEwEwYHKoUDAgIjAQYIKoUDBwEBAgIDQwAEQKjSuDCsuv1C
+sDnZL0/NtQiIKGQapTZPMPGcClUZLHDiGDtc+Pf3AFIjjmV9zP9ErAAUgAbq6ddJ
+Bepc0fNKMT6jggQeMIIEGjALBgNVHQ8EBAMCAYYwHQYDVR0OBBYEFM2K95NQ09rW
+Jk2gqrtws3Z+xSOYMBIGA1UdEwEB/wQIMAYBAf8CAQAwJQYDVR0gBB4wHDAIBgYq
+hQNkcQEwCAYGKoUDZHECMAYGBFUdIAAwUgYFKoUDZG8ESQxHItCa0YDQuNC/0YLQ
+vtCf0YDQviBDU1AiINCy0LXRgNGB0LjRjyA0LjAgKNC40YHQv9C+0LvQvdC10L3Q
+uNC1IDItQmFzZSkwFAYJKwYBBAGCNxQCBAcMBVN1YkNBMBIGCSsGAQQBgjcVAQQF
+AgMBAAEwggFlBgNVHSMEggFcMIIBWIAUwlTxtGvUTLfgbTa0I5Dx/sM8mwahggEs
+pIIBKDCCASQxHjAcBgkqhkiG9w0BCQEWD2RpdEBtaW5zdnlhei5ydTELMAkGA1UE
+BhMCUlUxGDAWBgNVBAgMDzc3INCc0L7RgdC60LLQsDEZMBcGA1UEBwwQ0LMuINCc
+0L7RgdC60LLQsDEuMCwGA1UECQwl0YPQu9C40YbQsCDQotCy0LXRgNGB0LrQsNGP
+LCDQtNC+0LwgNzEsMCoGA1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+
+0YHRgdC40LgxGDAWBgUqhQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEB
+EgwwMDc3MTA0NzQzNzUxLDAqBgNVBAMMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg
+0KDQvtGB0YHQuNC4ghBObUeLJvJ9ZX92jgJc49OTMIGPBgNVHR8EgYcwgYQwKqAo
+oCaGJGh0dHA6Ly9yZWVzdHItcGtpLnJ1L2NkcC9ndWMyMDIwLmNybDAqoCigJoYk
+aHR0cDovL2NvbXBhbnkucnQucnUvY2RwL2d1YzIwMjAuY3JsMCqgKKAmhiRodHRw
+Oi8vcm9zdGVsZWNvbS5ydS9jZHAvZ3VjMjAyMC5jcmwwQAYIKwYBBQUHAQEENDAy
+MDAGCCsGAQUFBzAChiRodHRwOi8vcmVlc3RyLXBraS5ydS9jZHAvZ3VjMjAyMC5j
+cnQwgfUGBSqFA2RwBIHrMIHoDDTQn9CQ0JrQnCDCq9Ca0YDQuNC/0YLQvtCf0YDQ
+viBIU03CuyDQstC10YDRgdC40LggMi4wDEPQn9CQ0JogwqvQk9C+0LvQvtCy0L3Q
+vtC5INGD0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgMK7DDXQ
+l9Cw0LrQu9GO0YfQtdC90LjQtSDihJYgMTQ5LzMvMi8yLzIzINC+0YIgMDIuMDMu
+MjAxOAw00JfQsNC60LvRjtGH0LXQvdC40LUg4oSWIDE0OS83LzYvMTA1INC+0YIg
+MjcuMDYuMjAxODAKBggqhQMHAQEDAgNBAE6GD3vUMEe4nsUKym7rTFElpTfS0u2L
+iaIp1xykdacAAnnMEA6nhw89G0+7u0FatFi1lX1AbLR3Ra+WxOBYMp0=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/Минкомсвязь.pem b/anchors/ca/ru/Минкомсвязь.pem
new file mode 100644 (file)
index 0000000..9831bee
--- /dev/null
@@ -0,0 +1,30 @@
+-----BEGIN CERTIFICATE-----
+MIIFFDCCBMGgAwIBAgIQTm1HiybyfWV/do4CXOPTkzAKBggqhQMHAQEDAjCCASQx
+HjAcBgkqhkiG9w0BCQEWD2RpdEBtaW5zdnlhei5ydTELMAkGA1UEBhMCUlUxGDAW
+BgNVBAgMDzc3INCc0L7RgdC60LLQsDEZMBcGA1UEBwwQ0LMuINCc0L7RgdC60LLQ
+sDEuMCwGA1UECQwl0YPQu9C40YbQsCDQotCy0LXRgNGB0LrQsNGPLCDQtNC+0Lwg
+NzEsMCoGA1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+0YHRgdC40Lgx
+GDAWBgUqhQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEBEgwwMDc3MTA0
+NzQzNzUxLDAqBgNVBAMMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQ
+uNC4MB4XDTE4MDcwNjEyMTgwNloXDTM2MDcwMTEyMTgwNlowggEkMR4wHAYJKoZI
+hvcNAQkBFg9kaXRAbWluc3Z5YXoucnUxCzAJBgNVBAYTAlJVMRgwFgYDVQQIDA83
+NyDQnNC+0YHQutCy0LAxGTAXBgNVBAcMENCzLiDQnNC+0YHQutCy0LAxLjAsBgNV
+BAkMJdGD0LvQuNGG0LAg0KLQstC10YDRgdC60LDRjywg0LTQvtC8IDcxLDAqBgNV
+BAoMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4MRgwFgYFKoUD
+ZAESDTEwNDc3MDIwMjY3MDExGjAYBggqhQMDgQMBARIMMDA3NzEwNDc0Mzc1MSww
+KgYDVQQDDCPQnNC40L3QutC+0LzRgdCy0Y/Qt9GMINCg0L7RgdGB0LjQuDBmMB8G
+CCqFAwcBAQEBMBMGByqFAwICIwEGCCqFAwcBAQICA0MABEB1OSpFp7milX33EP0i
+kge6HbZacYp9fVj8sUa5RWFXrB27SKX5SvtIGepqKev69RSYeHHKR+jT9YX2NuSK
+9wONo4IBwjCCAb4wgfUGBSqFA2RwBIHrMIHoDDTQn9CQ0JrQnCDCq9Ca0YDQuNC/
+0YLQvtCf0YDQviBIU03CuyDQstC10YDRgdC40LggMi4wDEPQn9CQ0JogwqvQk9C+
+0LvQvtCy0L3QvtC5INGD0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC9
+0YLRgMK7DDXQl9Cw0LrQu9GO0YfQtdC90LjQtSDihJYgMTQ5LzMvMi8yLzIzINC+
+0YIgMDIuMDMuMjAxOAw00JfQsNC60LvRjtGH0LXQvdC40LUg4oSWIDE0OS83LzYv
+MTA1INC+0YIgMjcuMDYuMjAxODA/BgUqhQNkbwQ2DDTQn9CQ0JrQnCDCq9Ca0YDQ
+uNC/0YLQvtCf0YDQviBIU03CuyDQstC10YDRgdC40LggMi4wMEMGA1UdIAQ8MDow
+CAYGKoUDZHEBMAgGBiqFA2RxAjAIBgYqhQNkcQMwCAYGKoUDZHEEMAgGBiqFA2Rx
+BTAGBgRVHSAAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
+DgQWBBTCVPG0a9RMt+BtNrQjkPH+wzybBjAKBggqhQMHAQEDAgNBAJr6/eI7rHL7
++FsQnoH2i6DVxqalbIxLKj05edpZGPLLb6B2PTAMya7pSt9hb8QnFABgsR4IE5gT
+4VVkDWbX/n4=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/Минобороны.pem b/anchors/ca/ru/Минобороны.pem
new file mode 100644 (file)
index 0000000..337f11e
--- /dev/null
@@ -0,0 +1,46 @@
+-----BEGIN CERTIFICATE-----
+MIIIJDCCB9GgAwIBAgIKMlKzdAAAAAAETjAKBggqhQMHAQEDAjCCASQxHjAcBgkq
+hkiG9w0BCQEWD2RpdEBtaW5zdnlhei5ydTELMAkGA1UEBhMCUlUxGDAWBgNVBAgM
+Dzc3INCc0L7RgdC60LLQsDEZMBcGA1UEBwwQ0LMuINCc0L7RgdC60LLQsDEuMCwG
+A1UECQwl0YPQu9C40YbQsCDQotCy0LXRgNGB0LrQsNGPLCDQtNC+0LwgNzEsMCoG
+A1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+0YHRgdC40LgxGDAWBgUq
+hQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEBEgwwMDc3MTA0NzQzNzUx
+LDAqBgNVBAMMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4MB4X
+DTIwMDczMTExMTUwMloXDTM1MDczMTExMTUwMlowggHJMRgwFgYJKoZIhvcNAQkB
+Fgl1Y0BtaWwucnUxGDAWBgUqhQNkARINMTAzNzcwMDI1NTI4NDEaMBgGCCqFAwOB
+AwEBEgwwMDc3MDQyNTIyNjExCzAJBgNVBAYTAlJVMRwwGgYDVQQIDBM3NyDQsy4g
+0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQutCy0LAxJzAlBgNVBAkMHtGD
+0LsuINCX0L3QsNC80LXQvdC60LAsINC0LiAxOTFYMFYGA1UECwxPNCDRhtC10L3R
+gtGAICjRg9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5KSDQstC+0LnRgdC60L7Q
+stC+0Lkg0YfQsNGB0YLQuCAzMTY1OTFYMFYGA1UECgxP0JzQuNC90LjRgdGC0LXR
+gNGB0YLQstC+INC+0LHQvtGA0L7QvdGLINCg0L7RgdGB0LjQudGB0LrQvtC5INCk
+0LXQtNC10YDQsNGG0LjQuDFYMFYGA1UEAwxP0JzQuNC90LjRgdGC0LXRgNGB0YLQ
+stC+INC+0LHQvtGA0L7QvdGLINCg0L7RgdGB0LjQudGB0LrQvtC5INCk0LXQtNC1
+0YDQsNGG0LjQuDBmMB8GCCqFAwcBAQEBMBMGByqFAwICIwEGCCqFAwcBAQICA0MA
+BEBCe/rx153+/tfCcVxbKUmzfkIgyXnk6ItYTjinfMeBJfg9HSfAYbM8HW5xybA4
+T64sVLz0Vcp1aynqMkkOfkzjo4IEMzCCBC8wCwYDVR0PBAQDAgGGMB0GA1UdDgQW
+BBRlCwg6pyqNx6ZEloK5ffmda44qqDASBgNVHRMBAf8ECDAGAQH/AgEAMCUGA1Ud
+IAQeMBwwCAYGKoUDZHEBMAgGBiqFA2RxAjAGBgRVHSAAMFsGBSqFA2RvBFIMUNCh
+0JrQl9CYICLQmtGA0LjQv9GC0L7Qn9GA0L4gQ1NQIiDQstC10YDRgdC40Y8gNC4w
+ICjQuNGB0L/QvtC70L3QtdC90LjQtSAyLUJhc2UpMBQGCSsGAQQBgjcUAgQHDAVT
+dWJDQTASBgkrBgEEAYI3FQEEBQIDAgACMIIBZQYDVR0jBIIBXDCCAViAFMJU8bRr
+1Ey34G02tCOQ8f7DPJsGoYIBLKSCASgwggEkMR4wHAYJKoZIhvcNAQkBFg9kaXRA
+bWluc3Z5YXoucnUxCzAJBgNVBAYTAlJVMRgwFgYDVQQIDA83NyDQnNC+0YHQutCy
+0LAxGTAXBgNVBAcMENCzLiDQnNC+0YHQutCy0LAxLjAsBgNVBAkMJdGD0LvQuNGG
+0LAg0KLQstC10YDRgdC60LDRjywg0LTQvtC8IDcxLDAqBgNVBAoMI9Cc0LjQvdC6
+0L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4MRgwFgYFKoUDZAESDTEwNDc3MDIw
+MjY3MDExGjAYBggqhQMDgQMBARIMMDA3NzEwNDc0Mzc1MSwwKgYDVQQDDCPQnNC4
+0L3QutC+0LzRgdCy0Y/Qt9GMINCg0L7RgdGB0LjQuIIQTm1HiybyfWV/do4CXOPT
+kzCBmAYDVR0fBIGQMIGNMC2gK6AphidodHRwOi8vcmVlc3RyLXBraS5ydS9jZHAv
+Z3VjX2dvc3QxMi5jcmwwLaAroCmGJ2h0dHA6Ly9jb21wYW55LnJ0LnJ1L2NkcC9n
+dWNfZ29zdDEyLmNybDAtoCugKYYnaHR0cDovL3Jvc3RlbGVjb20ucnUvY2RwL2d1
+Y19nb3N0MTIuY3JsMEMGCCsGAQUFBwEBBDcwNTAzBggrBgEFBQcwAoYnaHR0cDov
+L3JlZXN0ci1wa2kucnUvY2RwL2d1Y19nb3N0MTIuY3J0MIH1BgUqhQNkcASB6zCB
+6Aw00J/QkNCa0JwgwqvQmtGA0LjQv9GC0L7Qn9GA0L4gSFNNwrsg0LLQtdGA0YHQ
+uNC4IDIuMAxD0J/QkNCaIMKr0JPQvtC70L7QstC90L7QuSDRg9C00L7RgdGC0L7Q
+stC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YDCuww10JfQsNC60LvRjtGH0LXQvdC4
+0LUg4oSWIDE0OS8zLzIvMi8yMyDQvtGCIDAyLjAzLjIwMTgMNNCX0LDQutC70Y7R
+h9C10L3QuNC1IOKEliAxNDkvNy82LzEwNSDQvtGCIDI3LjA2LjIwMTgwCgYIKoUD
+BwEBAwIDQQDCxdB+RmSxthiLbG2FhjAlIlokYo6Pj3bljSPmfMrbPHWUwfiriIMJ
+MuehVhq0AaOA0VVP/dfEPVMLWasaA13b
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/Минцифры.pem b/anchors/ca/ru/Минцифры.pem
new file mode 100644 (file)
index 0000000..fcab19c
--- /dev/null
@@ -0,0 +1,31 @@
+-----BEGIN CERTIFICATE-----
+MIIFUTCCBP6gAwIBAgIRAJUfo0d8YQQ6rfqFhieCNEIwCgYIKoUDBwEBAwIwggE7
+MSEwHwYJKoZIhvcNAQkBFhJkaXRAZGlnaXRhbC5nb3YucnUxCzAJBgNVBAYTAlJV
+MRgwFgYDVQQIDA83NyDQnNC+0YHQutCy0LAxGTAXBgNVBAcMENCzLiDQnNC+0YHQ
+utCy0LAxUzBRBgNVBAkMStCf0YDQtdGB0L3QtdC90YHQutCw0Y8g0L3QsNCx0LXR
+gNC10LbQvdCw0Y8sINC00L7QvCAxMCwg0YHRgtGA0L7QtdC90LjQtSAyMSYwJAYD
+VQQKDB3QnNC40L3RhtC40YTRgNGLINCg0L7RgdGB0LjQuDEYMBYGBSqFA2QBEg0x
+MDQ3NzAyMDI2NzAxMRUwEwYFKoUDZAQSCjc3MTA0NzQzNzUxJjAkBgNVBAMMHdCc
+0LjQvdGG0LjRhNGA0Ysg0KDQvtGB0YHQuNC4MB4XDTIyMDEwODEzMzIzOVoXDTQw
+MDEwODEzMzIzOVowggE7MSEwHwYJKoZIhvcNAQkBFhJkaXRAZGlnaXRhbC5nb3Yu
+cnUxCzAJBgNVBAYTAlJVMRgwFgYDVQQIDA83NyDQnNC+0YHQutCy0LAxGTAXBgNV
+BAcMENCzLiDQnNC+0YHQutCy0LAxUzBRBgNVBAkMStCf0YDQtdGB0L3QtdC90YHQ
+utCw0Y8g0L3QsNCx0LXRgNC10LbQvdCw0Y8sINC00L7QvCAxMCwg0YHRgtGA0L7Q
+tdC90LjQtSAyMSYwJAYDVQQKDB3QnNC40L3RhtC40YTRgNGLINCg0L7RgdGB0LjQ
+uDEYMBYGBSqFA2QBEg0xMDQ3NzAyMDI2NzAxMRUwEwYFKoUDZAQSCjc3MTA0NzQz
+NzUxJjAkBgNVBAMMHdCc0LjQvdGG0LjRhNGA0Ysg0KDQvtGB0YHQuNC4MGYwHwYI
+KoUDBwEBAQEwEwYHKoUDAgIjAQYIKoUDBwEBAgIDQwAEQFpKa6Qda48LjFq/drz2
+M27fFqu/g3+Prxrg9lE+KPzdbvRHwuOtbhlJ92ogmS+i7mhDDGPsWhtPVduV9Kbq
+QI6jggHQMIIBzDCB9QYFKoUDZHAEgeswgegMNNCf0JDQmtCcIMKr0JrRgNC40L/R
+gtC+0J/RgNC+IEhTTcK7INCy0LXRgNGB0LjQuCAyLjAMQ9Cf0JDQmiDCq9CT0L7Q
+u9C+0LLQvdC+0Lkg0YPQtNC+0YHRgtC+0LLQtdGA0Y/RjtGJ0LjQuSDRhtC10L3R
+gtGAwrsMNdCX0LDQutC70Y7Rh9C10L3QuNC1IOKEliAxNDkvMy8yLzIvMjMg0L7R
+giAwMi4wMy4yMDE4DDTQl9Cw0LrQu9GO0YfQtdC90LjQtSDihJYgMTQ5LzcvNi00
+NDkg0L7RgiAzMC4xMi4yMDIxMD8GBSqFA2RvBDYMNNCf0JDQmtCcIMKr0JrRgNC4
+0L/RgtC+0J/RgNC+IEhTTcK7INCy0LXRgNGB0LjQuCAyLjAwDAYFKoUDZHIEAwIB
+ADBDBgNVHSAEPDA6MAgGBiqFA2RxATAIBgYqhQNkcQIwCAYGKoUDZHEDMAgGBiqF
+A2RxBDAIBgYqhQNkcQUwBgYEVR0gADAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQUyRNYsUynYjp+0j88pucUfJ1wo4YwCgYIKoUDBwEB
+AwIDQQCCSXhICg3SZ/TTCtRJpBFuXGSy3PeZTEeOwdOHIv0tWiN2q0mPRzB/o6r9
+MXjGqdzfYGtCrq1l5FsXZOI5c/2S
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/Росказна.pem b/anchors/ca/ru/Росказна.pem
new file mode 100644 (file)
index 0000000..acb5ada
--- /dev/null
@@ -0,0 +1,45 @@
+-----BEGIN CERTIFICATE-----
+MIIH+TCCB6agAwIBAgILAM/o/2EAAAAABfYwCgYIKoUDBwEBAwIwggE7MSEwHwYJ
+KoZIhvcNAQkBFhJkaXRAZGlnaXRhbC5nb3YucnUxCzAJBgNVBAYTAlJVMRgwFgYD
+VQQIDA83NyDQnNC+0YHQutCy0LAxGTAXBgNVBAcMENCzLiDQnNC+0YHQutCy0LAx
+UzBRBgNVBAkMStCf0YDQtdGB0L3QtdC90YHQutCw0Y8g0L3QsNCx0LXRgNC10LbQ
+vdCw0Y8sINC00L7QvCAxMCwg0YHRgtGA0L7QtdC90LjQtSAyMSYwJAYDVQQKDB3Q
+nNC40L3RhtC40YTRgNGLINCg0L7RgdGB0LjQuDEYMBYGBSqFA2QBEg0xMDQ3NzAy
+MDI2NzAxMRUwEwYFKoUDZAQSCjc3MTA0NzQzNzUxJjAkBgNVBAMMHdCc0LjQvdGG
+0LjRhNGA0Ysg0KDQvtGB0YHQuNC4MB4XDTIyMDExMDEwNTQ0NloXDTM3MDExMDEw
+NTQ0NlowggFXMSAwHgYJKoZIhvcNAQkBFhF1Y19ma0Byb3NrYXpuYS5ydTEYMBYG
+A1UECAwPNzcg0JzQvtGB0LrQstCwMRUwEwYFKoUDZAQSCjc3MTA1Njg3NjAxGDAW
+BgUqhQNkARINMTA0Nzc5NzAxOTgzMDFgMF4GA1UECQxX0JHQvtC70YzRiNC+0Lkg
+0JfQu9Cw0YLQvtGD0YHRgtC40L3RgdC60LjQuSDQv9C10YDQtdGD0LvQvtC6LCDQ
+tC4gNiwg0YHRgtGA0L7QtdC90LjQtSAxMRkwFwYDVQQHDBDQsy4g0JzQvtGB0LrQ
+stCwMQswCQYDVQQGEwJSVTEuMCwGA1UECgwl0JrQsNC30L3QsNGH0LXQudGB0YLQ
+stC+INCg0L7RgdGB0LjQuDEuMCwGA1UEAwwl0JrQsNC30L3QsNGH0LXQudGB0YLQ
+stC+INCg0L7RgdGB0LjQuDBmMB8GCCqFAwcBAQEBMBMGByqFAwICIwEGCCqFAwcB
+AQICA0MABEC2K1eiN738omFBKg9fAzgFHW2u7ANlsnVh+KK46pSiJ6YpCxzp3sTi
+nybSaUBeOfPVVf7aXo7TXITryyyfbOV+o4IEYjCCBF4wEgYDVR0TAQH/BAgwBgEB
+/wIBADCBlAYFKoUDZG8EgYoMgYfQn9GA0L7Qs9GA0LDQvNC80L3Qvi3QsNC/0L/Q
+sNGA0LDRgtC90YvQuSDQutC+0LzQv9C70LXQutGBIFZpUE5ldCBQS0kgU2Vydmlj
+ZSAo0L3QsCDQsNC/0L/QsNGA0LDRgtC90L7QuSDQv9C70LDRgtGE0L7RgNC80LUg
+SFNNIDIwMDBRMikwDgYDVR0PAQH/BAQDAgHGMCcGA1UdIAQgMB4wCAYGKoUDZHEB
+MAgGBiqFA2RxAjAIBgYqhQNkcQMwDAYFKoUDZHIEAwIBATCCAX0GA1UdIwSCAXQw
+ggFwgBTJE1ixTKdiOn7SPzym5xR8nXCjhqGCAUOkggE/MIIBOzEhMB8GCSqGSIb3
+DQEJARYSZGl0QGRpZ2l0YWwuZ292LnJ1MQswCQYDVQQGEwJSVTEYMBYGA1UECAwP
+Nzcg0JzQvtGB0LrQstCwMRkwFwYDVQQHDBDQsy4g0JzQvtGB0LrQstCwMVMwUQYD
+VQQJDErQn9GA0LXRgdC90LXQvdGB0LrQsNGPINC90LDQsdC10YDQtdC20L3QsNGP
+LCDQtNC+0LwgMTAsINGB0YLRgNC+0LXQvdC40LUgMjEmMCQGA1UECgwd0JzQuNC9
+0YbQuNGE0YDRiyDQoNC+0YHRgdC40LgxGDAWBgUqhQNkARINMTA0NzcwMjAyNjcw
+MTEVMBMGBSqFA2QEEgo3NzEwNDc0Mzc1MSYwJAYDVQQDDB3QnNC40L3RhtC40YTR
+gNGLINCg0L7RgdGB0LjQuIIRAJUfo0d8YQQ6rfqFhieCNEIwHQYDVR0OBBYEFB2A
+JtKJYucEgY8eSuircpJ2Ld09MIGPBgNVHR8EgYcwgYQwKqAooCaGJGh0dHA6Ly9y
+ZWVzdHItcGtpLnJ1L2NkcC9ndWMyMDIyLmNybDAqoCigJoYkaHR0cDovL2NvbXBh
+bnkucnQucnUvY2RwL2d1YzIwMjIuY3JsMCqgKKAmhiRodHRwOi8vcm9zdGVsZWNv
+bS5ydS9jZHAvZ3VjMjAyMi5jcmwwQAYIKwYBBQUHAQEENDAyMDAGCCsGAQUFBzAC
+hiRodHRwOi8vcmVlc3RyLXBraS5ydS9jZHAvZ3VjMjAyMi5jcnQwgfUGBSqFA2Rw
+BIHrMIHoDDTQn9CQ0JrQnCDCq9Ca0YDQuNC/0YLQvtCf0YDQviBIU03CuyDQstC1
+0YDRgdC40LggMi4wDEPQn9CQ0JogwqvQk9C+0LvQvtCy0L3QvtC5INGD0LTQvtGB
+0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgMK7DDXQl9Cw0LrQu9GO0YfQ
+tdC90LjQtSDihJYgMTQ5LzMvMi8yLzIzINC+0YIgMDIuMDMuMjAxOAw00JfQsNC6
+0LvRjtGH0LXQvdC40LUg4oSWIDE0OS83LzYtNDQ5INC+0YIgMzAuMTIuMjAyMTAK
+BggqhQMHAQEDAgNBADczVMIbKIaVT6vfgJurMdJEyPg8kjhdNN+WzHGqDkMbr41u
+njW9HRPMaSOYXQRPnLw+z/OfJ1aTn8oEN3ETLtI=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/Росреестр.pem b/anchors/ca/ru/Росреестр.pem
new file mode 100644 (file)
index 0000000..9983ab2
--- /dev/null
@@ -0,0 +1,51 @@
+-----BEGIN CERTIFICATE-----
+MIIJKjCCCNegAwIBAgIRAu6RtgD0rCu/SKAaWxgGcKIwCgYIKoUDBwEBAwIwggFR
+MRgwFgYFKoUDZAESDTEwMjc3MDA0ODU3NTcxGjAYBggqhQMDgQMBARIMMDA3NzA1
+NDAxMzQwMQswCQYDVQQGEwJSVTEYMBYGA1UECAwPNzcg0JzQvtGB0LrQstCwMRUw
+EwYDVQQHDAzQnNC+0YHQutCy0LAxRzBFBgNVBAkMPtC/0LXRgNC10YPQu9C+0Log
+0J7RgNC70LjQutC+0LIsINC00L7QvCAxMCwg0YHRgtGA0L7QtdC90LjQtSAxMTAw
+LgYDVQQLDCfQo9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAx
+LzAtBgNVBAoMJtCk0JPQkdCjICLQpNCa0J8g0KDQvtGB0YDQtdC10YHRgtGA0LAi
+MS8wLQYDVQQDDCbQpNCT0JHQoyAi0KTQmtCfINCg0L7RgdGA0LXQtdGB0YLRgNCw
+IjAeFw0yMTAzMjMxMDU0NDNaFw0yMjA2MjMxMTA0NDNaMIIBCTEYMBYGBSqFA2QB
+Eg0xMDQ3Nzk2OTQwNDY1MRowGAYIKoUDA4EDAQESDDAwNzcwNjU2MDUzNjEzMDEG
+A1UECQwq0YPQuy4g0JLQvtGA0L7QvdGG0L7QstC+INCf0L7Qu9C1LCDQtC4gNNCQ
+MRUwEwYDVQQHDAzQnNC+0YHQutCy0LAxGDAWBgNVBAgMDzc3INCc0L7RgdC60LLQ
+sDELMAkGA1UEBhMCUlUxJDAiBgkqhkiG9w0BCQEWFTAwX09aSUwxQHJvc3JlZXN0
+ci5ydTEbMBkGA1UECgwS0KDQvtGB0YDQtdC10YHRgtGAMRswGQYDVQQDDBLQoNC+
+0YHRgNC10LXRgdGC0YAwZjAfBggqhQMHAQEBATATBgcqhQMCAiQABggqhQMHAQEC
+AgNDAARALRZHYJmiFHpo5GA207b51rasg2UUREcaWiCX2Wf1RGZd/9MMD/saYpQD
+XgCOd8UXp9w81cZGLfTWTgNqgUNyPqOCBcUwggXBMA4GA1UdDwEB/wQEAwID+DAd
+BgNVHQ4EFgQURsFyHF02bzoGXwMgWi0wDiVXC+MwGwYDVR0lBBQwEgYIKwYBBQUH
+AwIGBiqFA2QCAjBFBggrBgEFBQcBAQQ5MDcwNQYIKwYBBQUHMAKGKWh0dHA6Ly91
+Yy5rYWRhc3RyLnJ1L3Jvb3QvaW5kZXgvcm9vdDcuY2VyMB0GA1UdIAQWMBQwCAYG
+KoUDZHEBMAgGBiqFA2RxAjCCATgGA1UdEQSCAS8wggErpIIBJzCCASMxggEfMIIB
+GwYJKoZIhvcNAQkIDIIBDNCh0LXRgNCy0LjRgSDQv9GA0LjQtdC80LAg0Y3Qu9C1
+0LrRgtGA0L7QvdC90YvRhSDQt9Cw0Y/QstC70LXQvdC40LksINC/0YDQtdC00L7R
+gdGC0LDQstC70LXQvdC40Y8g0LjQvdGE0L7RgNC80LDRhtC40Lgg0L4g0YXQvtC0
+0LUg0LjRgdC/0L7Qu9C90LXQvdC40Y8g0YPRgdC70YPQs9C4INC4INCy0YvQtNCw
+0YfQuCDRgNC10LfRg9C70YzRgtCw0YLQvtCyINC+0LrQsNC30LDQvdC40Y8g0YPR
+gdC70YPQs9C4INCyINGN0LvQtdC60YLRgNC+0L3QvdC+0Lwg0LLQuNC00LUwggG9
+BgUqhQNkcASCAbIwggGuDFDQodCa0JfQmCAi0JrRgNC40L/RgtC+0J/RgNC+IENT
+UCIg0LLQtdGA0YHQuNGPIDQuMCAo0LjRgdC/0L7Qu9C90LXQvdC40LUgMi1CYXNl
+KQyBt9Cf0YDQvtCz0YDQsNC80LzQvdC+LdCw0L/Qv9Cw0YDQsNGC0L3Ri9C5INC6
+0L7QvNC/0LvQtdC60YEgItCj0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQ
+tdC90YLRgCAi0JrRgNC40L/RgtC+0J/RgNC+INCj0KYiINCy0LXRgNGB0LjQuCAy
+LjAiICjQstCw0YDQuNCw0L3RgiDQuNGB0L/QvtC70L3QtdC90LjRjyA1KQxP0KHQ
+tdGA0YLQuNGE0LjQutCw0YIg0YHQvtC+0YLQstC10YLRgdGC0LLQuNGPIOKEliDQ
+odCkLzEyNC0zOTY2INC+0YIgMTUuMDEuMjAyMQxP0KHQtdGA0YLQuNGE0LjQutCw
+0YIg0YHQvtC+0YLQstC10YLRgdGC0LLQuNGPIOKEliDQodCkLzEyOC0zODY4INC+
+0YIgMjMuMDcuMjAyMDA/BgUqhQNkbwQ2DDTQodCa0JfQmCAi0JrRgNC40L/RgtC+
+0J/RgNC+IENTUCIgKNCy0LXRgNGB0LjRjyA0LjApMD8GA1UdHwQ4MDYwNKAyoDCG
+Lmh0dHA6Ly91Yy5rYWRhc3RyLnJ1L3Jldm9rZS9pbmRleC9yZXZva2VkNy5jcmww
+ggFfBgNVHSMEggFWMIIBUoAUEPru7ZjoSQxGYhsL4RgIuKl9k5uhggEspIIBKDCC
+ASQxHjAcBgkqhkiG9w0BCQEWD2RpdEBtaW5zdnlhei5ydTELMAkGA1UEBhMCUlUx
+GDAWBgNVBAgMDzc3INCc0L7RgdC60LLQsDEZMBcGA1UEBwwQ0LMuINCc0L7RgdC6
+0LLQsDEuMCwGA1UECQwl0YPQu9C40YbQsCDQotCy0LXRgNGB0LrQsNGPLCDQtNC+
+0LwgNzEsMCoGA1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+0YHRgdC4
+0LgxGDAWBgUqhQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEBEgwwMDc3
+MTA0NzQzNzUxLDAqBgNVBAMMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB
+0YHQuNC4ggoiLy26AAAAAATXMCsGA1UdEAQkMCKADzIwMjEwMzIzMTA1NDQzWoEP
+MjAyMjA2MjMxMDU0NDNaMAoGCCqFAwcBAQMCA0EAt5RwEoIF+aFW9cW7Xk1K+xMB
+GIOA4trSRqBaOQ8LCpEnAjhivJIBMaaw0W5VcNHbHf+bEz2yzVWH9F6fUP2Q0w==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/ТЦИ.pem b/anchors/ca/ru/ТЦИ.pem
new file mode 100644 (file)
index 0000000..57c4503
--- /dev/null
@@ -0,0 +1,12 @@
+-----BEGIN CERTIFICATE-----
+MIIBVDCB+6ADAgECAgwB3q3A3gCMGXg8etYwCgYIKoZIzj0EAw
+IwHDEaMBgGA1UEAwwRVENJIEVDRFNBIFJPT1QgQTEwHhcNMjIw
+MzMwMDkzMzE4WhcNMzIwMzMwMDkzMzE4WjAcMRowGAYDVQQDDB
+FUQ0kgRUNEU0EgUk9PVCBBMTBZMBMGByqGSM49AgEGCCqGSM49
+AwEHA0IABJni7LJT4Gj86pG0s9wOefWgqgp/EGf4ZcSxNgAJfh
+cl6WYNoWaZfflki4Rd0VzAJgbaTSW26zuv2mGM61txD96jIzAh
+MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCC
+qGSM49BAMCA0gAMEUCIDKjKPoaZrqtljmuy60G1PYINvR3A1eL
+OzT4RfhGBTrBAiEAhJL7IeLDbo2eZAIp4zioaIpo1hVyXkABNb
+npOTQ9KPs=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/ru/ФКПРосреестр.pem b/anchors/ca/ru/ФКПРосреестр.pem
new file mode 100644 (file)
index 0000000..4a93b1f
--- /dev/null
@@ -0,0 +1,43 @@
+-----BEGIN CERTIFICATE-----
+MIIHrDCCB1mgAwIBAgIKIi8tugAAAAAE1zAKBggqhQMHAQEDAjCCASQxHjAcBgkq
+hkiG9w0BCQEWD2RpdEBtaW5zdnlhei5ydTELMAkGA1UEBhMCUlUxGDAWBgNVBAgM
+Dzc3INCc0L7RgdC60LLQsDEZMBcGA1UEBwwQ0LMuINCc0L7RgdC60LLQsDEuMCwG
+A1UECQwl0YPQu9C40YbQsCDQotCy0LXRgNGB0LrQsNGPLCDQtNC+0LwgNzEsMCoG
+A1UECgwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQoNC+0YHRgdC40LgxGDAWBgUq
+hQNkARINMTA0NzcwMjAyNjcwMTEaMBgGCCqFAwOBAwEBEgwwMDc3MTA0NzQzNzUx
+LDAqBgNVBAMMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQuNC4MB4X
+DTIwMTEyMDA4NDkyMloXDTM1MTEyMDA4NDkyMlowggFRMRgwFgYFKoUDZAESDTEw
+Mjc3MDA0ODU3NTcxGjAYBggqhQMDgQMBARIMMDA3NzA1NDAxMzQwMQswCQYDVQQG
+EwJSVTEYMBYGA1UECAwPNzcg0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQ
+utCy0LAxRzBFBgNVBAkMPtC/0LXRgNC10YPQu9C+0Log0J7RgNC70LjQutC+0LIs
+INC00L7QvCAxMCwg0YHRgtGA0L7QtdC90LjQtSAxMTAwLgYDVQQLDCfQo9C00L7R
+gdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAxLzAtBgNVBAoMJtCk0JPQ
+kdCjICLQpNCa0J8g0KDQvtGB0YDQtdC10YHRgtGA0LAiMS8wLQYDVQQDDCbQpNCT
+0JHQoyAi0KTQmtCfINCg0L7RgdGA0LXQtdGB0YLRgNCwIjBmMB8GCCqFAwcBAQEB
+MBMGByqFAwICIwEGCCqFAwcBAQICA0MABEAub08wAHxEYraLidGC8LljGlvN3Sm+
+C86kQlpihsNvBHeiZc9RcTKYQn9I2Bezpc6nOWzXcBrnV4OtTvF8N/S8o4IEMzCC
+BC8wCwYDVR0PBAQDAgGGMB0GA1UdDgQWBBQQ+u7tmOhJDEZiGwvhGAi4qX2TmzAS
+BgNVHRMBAf8ECDAGAQH/AgEAMCUGA1UdIAQeMBwwBgYEVR0gADAIBgYqhQNkcQEw
+CAYGKoUDZHECMFsGBSqFA2RvBFIMUNCh0JrQl9CYICLQmtGA0LjQv9GC0L7Qn9GA
+0L4gQ1NQIiDQstC10YDRgdC40Y8gNC4wICjQuNGB0L/QvtC70L3QtdC90LjQtSAy
+LUJhc2UpMBQGCSsGAQQBgjcUAgQHDAVTdWJDQTASBgkrBgEEAYI3FQEEBQIDAgAC
+MIIBZQYDVR0jBIIBXDCCAViAFMJU8bRr1Ey34G02tCOQ8f7DPJsGoYIBLKSCASgw
+ggEkMR4wHAYJKoZIhvcNAQkBFg9kaXRAbWluc3Z5YXoucnUxCzAJBgNVBAYTAlJV
+MRgwFgYDVQQIDA83NyDQnNC+0YHQutCy0LAxGTAXBgNVBAcMENCzLiDQnNC+0YHQ
+utCy0LAxLjAsBgNVBAkMJdGD0LvQuNGG0LAg0KLQstC10YDRgdC60LDRjywg0LTQ
+vtC8IDcxLDAqBgNVBAoMI9Cc0LjQvdC60L7QvNGB0LLRj9C30Ywg0KDQvtGB0YHQ
+uNC4MRgwFgYFKoUDZAESDTEwNDc3MDIwMjY3MDExGjAYBggqhQMDgQMBARIMMDA3
+NzEwNDc0Mzc1MSwwKgYDVQQDDCPQnNC40L3QutC+0LzRgdCy0Y/Qt9GMINCg0L7R
+gdGB0LjQuIIQTm1HiybyfWV/do4CXOPTkzCBmAYDVR0fBIGQMIGNMC2gK6Aphido
+dHRwOi8vcmVlc3RyLXBraS5ydS9jZHAvZ3VjX2dvc3QxMi5jcmwwLaAroCmGJ2h0
+dHA6Ly9jb21wYW55LnJ0LnJ1L2NkcC9ndWNfZ29zdDEyLmNybDAtoCugKYYnaHR0
+cDovL3Jvc3RlbGVjb20ucnUvY2RwL2d1Y19nb3N0MTIuY3JsMEMGCCsGAQUFBwEB
+BDcwNTAzBggrBgEFBQcwAoYnaHR0cDovL3JlZXN0ci1wa2kucnUvY2RwL2d1Y19n
+b3N0MTIuY3J0MIH1BgUqhQNkcASB6zCB6Aw00J/QkNCa0JwgwqvQmtGA0LjQv9GC
+0L7Qn9GA0L4gSFNNwrsg0LLQtdGA0YHQuNC4IDIuMAxD0J/QkNCaIMKr0JPQvtC7
+0L7QstC90L7QuSDRg9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC
+0YDCuww10JfQsNC60LvRjtGH0LXQvdC40LUg4oSWIDE0OS8zLzIvMi8yMyDQvtGC
+IDAyLjAzLjIwMTgMNNCX0LDQutC70Y7Rh9C10L3QuNC1IOKEliAxNDkvNy82LzEw
+NSDQvtGCIDI3LjA2LjIwMTgwCgYIKoUDBwEBAwIDQQBkwci6wQBRV9DuqI6e3Qtp
+VfS26StAt0Q3G+GXxE9HT9toUbddJCqgXXDeiUHLZDkLpcxaroaA9dzmr4IGzopO
+-----END CERTIFICATE-----
diff --git a/anchors/ca/sectigo.pem b/anchors/ca/sectigo.pem
new file mode 100644 (file)
index 0000000..5a37fad
--- /dev/null
@@ -0,0 +1,35 @@
+-----BEGIN CERTIFICATE-----
+MIIGEzCCA/ugAwIBAgIQfVtRJrR2uhHbdBYLvFMNpzANBgkqhkiG9w0BAQwFADCB
+iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
+cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
+BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTgx
+MTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjCBjzELMAkGA1UEBhMCR0IxGzAZBgNV
+BAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UE
+ChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFJTQSBEb21haW4g
+VmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEA1nMz1tc8INAA0hdFuNY+B6I/x0HuMjDJsGz99J/LEpgPLT+N
+TQEMgg8Xf2Iu6bhIefsWg06t1zIlk7cHv7lQP6lMw0Aq6Tn/2YHKHxYyQdqAJrkj
+eocgHuP/IJo8lURvh3UGkEC0MpMWCRAIIz7S3YcPb11RFGoKacVPAXJpz9OTTG0E
+oKMbgn6xmrntxZ7FN3ifmgg0+1YuWMQJDgZkW7w33PGfKGioVrCSo1yfu4iYCBsk
+Haswha6vsC6eep3BwEIc4gLw6uBK0u+QDrTBQBbwb4VCSmT3pDCg/r8uoydajotY
+uK3DGReEY+1vVv2Dy2A0xHS+5p3b4eTlygxfFQIDAQABo4IBbjCCAWowHwYDVR0j
+BBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFI2MXsRUrYrhd+mb
++ZsF4bgBjWHhMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0G
+A1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAbBgNVHSAEFDASMAYGBFUdIAAw
+CAYGZ4EMAQIBMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRydXN0
+LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDB2Bggr
+BgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRydXN0LmNv
+bS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZaHR0cDov
+L29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAMr9hvQ5Iw0/H
+ukdN+Jx4GQHcEx2Ab/zDcLRSmjEzmldS+zGea6TvVKqJjUAXaPgREHzSyrHxVYbH
+7rM2kYb2OVG/Rr8PoLq0935JxCo2F57kaDl6r5ROVm+yezu/Coa9zcV3HAO4OLGi
+H19+24rcRki2aArPsrW04jTkZ6k4Zgle0rj8nSg6F0AnwnJOKf0hPHzPE/uWLMUx
+RP0T7dWbqWlod3zu4f+k+TY4CFM5ooQ0nBnzvg6s1SQ36yOoeNDT5++SR2RiOSLv
+xvcRviKFxmZEJCaOEDKNyJOuB56DPi/Z+fVGjmO+wea03KbNIaiGCpXZLoUmGv38
+sbZXQm2V0TP2ORQGgkE49Y9Y3IBbpNV9lXj9p5v//cWoaasm56ekBYdbqbe4oyAL
+l6lFhd2zi+WJN44pDfwGF/Y4QA5C5BIG+3vzxhFoYt/jmPQT2BVPi7Fp2RBgvGQq
+6jG35LWjOhSbJuMLe/0CjraZwTiXWTb2qHSihrZe68Zk6s+go/lunrotEbaGmAhY
+LcmsJWTyXnW0OMGuf1pGg+pRyrbxmRE1a6Vqe8YAsOf4vmSyrcjC8azjUeqkk+B5
+yOGBQMkKW+ESPMFgKuOXwIlCypTPRpgSabuY0MLTDXJLR27lk8QyKGOHQ+SwMj4K
+00u/I5sUKUErmgQfky3xxzlIPK1aEn8=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/thawte/Primary_Root_CA-G2_ECC.pem b/anchors/ca/thawte/Primary_Root_CA-G2_ECC.pem
new file mode 100644 (file)
index 0000000..447ee3d
--- /dev/null
@@ -0,0 +1,16 @@
+-----BEGIN CERTIFICATE-----
+MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMp
+IDIwMDcgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAi
+BgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAw
+MDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
+d3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBGb3Ig
+YXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9v
+dCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/
+BebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6
+papu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8E
+BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6K
+DPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3
+KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41ox
+XZ3Krr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/thawte/Primary_Root_CA-G3_SHA256.pem b/anchors/ca/thawte/Primary_Root_CA-G3_SHA256.pem
new file mode 100644 (file)
index 0000000..acfed9d
--- /dev/null
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCB
+rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV
+BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0wODA0MDIwMDAwMDBa
+Fw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3Rl
+LCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u
+MTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXpl
+ZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndm
+gcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8
+YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lf
+b1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS9
+9irY7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2S
+zhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUk
+OQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
+HQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQADggEBABpA
+2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW
+oCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
+t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7c
+KUGRIjxpp7sC8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fM
+m7v/OeZWYdMKp8RcTGB7BXcmer/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZu
+MdRAGmI0Nj81Aa6sY6A=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/thawte/Primary_Root_CA-G4_DSA.pem b/anchors/ca/thawte/Primary_Root_CA-G4_DSA.pem
new file mode 100644 (file)
index 0000000..e4e48d3
--- /dev/null
@@ -0,0 +1,32 @@
+-----BEGIN CERTIFICATE-----
+MIIFjzCCBTSgAwIBAgIQLk/0vCQf0ZZ/H92kT/tl/jALBglghkgBZQMEAwIwga4x
+CzAJBgNVBAYTAlVTMRUwEwYDVQQKEwx0aGF3dGUsIEluYy4xKDAmBgNVBAsTH0Nl
+cnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xODA2BgNVBAsTLyhjKSAyMDEy
+IHRoYXd0ZSwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MSQwIgYDVQQD
+Ext0aGF3dGUgUHJpbWFyeSBSb290IENBIC0gRzQwHhcNMTIxMDE1MDAwMDAwWhcN
+MzcxMjAxMjM1OTU5WjCBrjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg
+SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4
+MDYGA1UECxMvKGMpIDIwMTIgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQg
+dXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHNDCC
+A0YwggI5BgcqhkjOOAQBMIICLAKCAQEAuKVG7qscYrwa+gRUVIUUaIbYo3g8dU85
+I2dmd62jZc6E4M7CnLmimI1lYeQ8QhGJvNGhvIZQoK62KtiKAmR7CZ8FeDPujvMx
+gh/NiWmiTXHKUABzR9rTX+GFXGIzKpwLgYEH+aX4T8DGOJbT1NQjvtrUD+OjUv/t
+MlC7Sf+/RGlQe9vanTKB1wenDEKaO/9QgleE29AtpdzuGzTVI2VwL1kNA8Ez9XdE
+r6WTYOI+CX/z9O/itvXTThpPbHoXN8lbOEKHSnINQeURhU4dfcTClLj01T8j47LO
+yg7WxlpRWGNjRh/FAeU6ETZvd4UE1Zq7Uq6XVnxgc3p47vkpXdLVLQIhALPolWFX
+lPUCYH74I/jxM3/Zzuw9PVr8b3okbIFwNq+hAoIBABEgze+P0RWy3WZy1w6reNOI
+0n5QtwiwvCnDGt/HPO7NeB0qhyLXl9NwVdj1OmN9jn3mfATGrpuJZOBQkoAfTp+Y
+rz6SN9nS9ityIvDpZu7+XEp8qU95xsJ69rS7lRle2qPT5iolHGKA4czbwOLephg8
+GGIoIorQcxgUVRHXFhvswgcAxHv5fG3vX+YTnycrvPsVt+Uv5vteIUyBD5J6ybOg
+xEEgtSeBKkrEDHTTQU/8ZxJR1Wd3CmYJXICvbG7GnbX5BSVSoPqC58KBqqjY9j+F
+IyAV/Vyi1VqVr+qxfzrwXqxS0e6eZXIe4/ztknFOwrfyUBLnsQkfG7c8EWvcMsAD
+ggEFAAKCAQBTC/9/4vZWeiazdA/ujWrT/ZypqHFDIAXaIe/l8yMhZJnAxkJGlsK1
+aGwMtcVCzrxrRQXMocvNntNTv5SIA2yg5HkHO1z/2mb360X4u374cVmNbZN6vKi2
+RwIngV/b4SKpT8pCwUXOOO9wHZYQJi/aHXGBwkkrHLknS9RvEXaHd+NGCcTc3MRp
+ANpGl5ri4FQ0aDdw8OT3ITHvpUxfmv5z7z6U3ZMwnio7ZCVFj0YBD900oiHhlpwY
+LbbJiVIWvze+hxsIBOxVCJHf7vr0FqN+8BJK4SHKHgAI/IHOz3vM6fXAevDj/F9F
+7IQYh94T6mGueqYylB9ib/diNcqfO7Nqo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
+VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUx2eJZCLxnbHzi4Omwg6Zk1F265YwCwYJ
+YIZIAWUDBAMCA0gAMEUCIQCu5jrSlbF2eM49USoLQ36j8pTHZKIvLvWARxfM6dvr
+cwIgXKaxL+n4xluL6+8J3bYiE/wb5wUoC8hlSfg82gzLMd8=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/thawte/Primary_Root_CA.pem b/anchors/ca/thawte/Primary_Root_CA.pem
new file mode 100644 (file)
index 0000000..998460f
--- /dev/null
@@ -0,0 +1,25 @@
+-----BEGIN CERTIFICATE-----
+MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw
+NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j
+LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG
+A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
+IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs
+W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta
+3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk
+6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6
+Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J
+NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA
+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP
+r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU
+DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz
+YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
+xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2
+/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/
+LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7
+jVaMaA==
+-----END CERTIFICATE-----
diff --git a/anchors/ca/thawte/Timestamping_CA.pem b/anchors/ca/thawte/Timestamping_CA.pem
new file mode 100644 (file)
index 0000000..489d84b
--- /dev/null
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICsDCCAhmgAwIBAgIQZ8jh6OO+HL38kTuOpiOHSTANBgkqhkiG9w0BAQUFADCB
+izELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxML
+RHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENl
+cnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwHhcN
+OTcwMTAxMDAwMDAwWhcNMjEwMTAxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTAT
+BgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNV
+BAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNV
+BAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0A
+MIGJAoGBANYrWHhhRYZT6jR7UZztsOYuGA7+4F+oJ9O0yeB8WU4WDnNUYMF/9p8u
+6TqFJBU820cEY8OexJQaWt9MevPZQx08EHp5JduQ/vBR5zDWQQD9nyjfeb6Uu522
+FOMjhdepQeBMpHmwKxqL8vg7ij5FrHGSALSQQZj7X+36ty6K+Ig3AgMBAAGjEzAR
+MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEAS+mqF4EF+3kKMZ/F
+QfRWVKvpwuWXjhj+kckMPiZkyaFMJ2SnvQGTVXFuF0853BvcSTUQOSP/ypvIz2Y/
+3Ewa1IEGQlIf4SaxFhe65nByMUToTo1b5NP50OOPJWQx5yr4GIg2GlLFDUE1G2m3
+JvUXzMEZXkt8XOKDgJH6L/uatxY=
+-----END CERTIFICATE-----
diff --git a/anchors/ca/zerossl.pem b/anchors/ca/zerossl.pem
new file mode 100644 (file)
index 0000000..1d1739b
--- /dev/null
@@ -0,0 +1,39 @@
+-----BEGIN CERTIFICATE-----
+MIIG1TCCBL2gAwIBAgIQbFWr29AHksedBwzYEZ7WvzANBgkqhkiG9w0BAQwFADCB
+iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
+cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
+BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMjAw
+MTMwMDAwMDAwWhcNMzAwMTI5MjM1OTU5WjBLMQswCQYDVQQGEwJBVDEQMA4GA1UE
+ChMHWmVyb1NTTDEqMCgGA1UEAxMhWmVyb1NTTCBSU0EgRG9tYWluIFNlY3VyZSBT
+aXRlIENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAhmlzfqO1Mdgj
+4W3dpBPTVBX1AuvcAyG1fl0dUnw/MeueCWzRWTheZ35LVo91kLI3DDVaZKW+TBAs
+JBjEbYmMwcWSTWYCg5334SF0+ctDAsFxsX+rTDh9kSrG/4mp6OShubLaEIUJiZo4
+t873TuSd0Wj5DWt3DtpAG8T35l/v+xrN8ub8PSSoX5Vkgw+jWf4KQtNvUFLDq8mF
+WhUnPL6jHAADXpvs4lTNYwOtx9yQtbpxwSt7QJY1+ICrmRJB6BuKRt/jfDJF9Jsc
+RQVlHIxQdKAJl7oaVnXgDkqtk2qddd3kCDXd74gv813G91z7CjsGyJ93oJIlNS3U
+gFbD6V54JMgZ3rSmotYbz98oZxX7MKbtCm1aJ/q+hTv2YK1yMxrnfcieKmOYBbFD
+hnW5O6RMA703dBK92j6XRN2EttLkQuujZgy+jXRKtaWMIlkNkWJmOiHmErQngHvt
+iNkIcjJumq1ddFX4iaTI40a6zgvIBtxFeDs2RfcaH73er7ctNUUqgQT5rFgJhMmF
+x76rQgB5OZUkodb5k2ex7P+Gu4J86bS15094UuYcV09hVeknmTh5Ex9CBKipLS2W
+2wKBakf+aVYnNCU6S0nASqt2xrZpGC1v7v6DhuepyyJtn3qSV2PoBiU5Sql+aARp
+wUibQMGm44gjyNDqDlVp+ShLQlUH9x8CAwEAAaOCAXUwggFxMB8GA1UdIwQYMBaA
+FFN5v1qqK0rPVIDh2JvAnfKyA2bLMB0GA1UdDgQWBBTI2XhootkZaNU9ct5fCj7c
+tYaGpjAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHSUE
+FjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwIgYDVR0gBBswGTANBgsrBgEEAbIxAQIC
+TjAIBgZngQwBAgEwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC51c2VydHJ1
+c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHYG
+CCsGAQUFBwEBBGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3Qu
+Y29tL1VTRVJUcnVzdFJTQUFkZFRydXN0Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRw
+Oi8vb2NzcC51c2VydHJ1c3QuY29tMA0GCSqGSIb3DQEBDAUAA4ICAQAVDwoIzQDV
+ercT0eYqZjBNJ8VNWwVFlQOtZERqn5iWnEVaLZZdzxlbvz2Fx0ExUNuUEgYkIVM4
+YocKkCQ7hO5noicoq/DrEYH5IuNcuW1I8JJZ9DLuB1fYvIHlZ2JG46iNbVKA3ygA
+Ez86RvDQlt2C494qqPVItRjrz9YlJEGT0DrttyApq0YLFDzf+Z1pkMhh7c+7fXeJ
+qmIhfJpduKc8HEQkYQQShen426S3H0JrIAbKcBCiyYFuOhfyvuwVCFDfFvrjADjd
+4jX1uQXd161IyFRbm89s2Oj5oU1wDYz5sx+hoCuh6lSs+/uPuWomIq3y1GDFNafW
++LsHBU16lQo5Q2yh25laQsKRgyPmMpHJ98edm6y2sHUabASmRHxvGiuwwE25aDU0
+2SAeepyImJ2CzB80YG7WxlynHqNhpE7xfC7PzQlLgmfEHdU+tHFeQazRQnrFkW2W
+kqRGIq7cKRnyypvjPMkjeiV9lRdAM9fSJvsB3svUuu1coIG1xxI1yegoGM4r5QP4
+RGIVvYaiI76C0djoSbQ/dkIUUXQuB8AL5jyH34g3BZaaXyvpmnV4ilppMXVAnAYG
+ON51WhJ6W0xNdNJwzYASZYH+tmCWI+N60Gv2NNMGHwMZ7e9bXgzUCZH5FaBFDGR5
+S9VWqHB73Q+OyIVvIbKYcSc2w/aSuFKGSA==
+-----END CERTIFICATE-----
diff --git a/anchors/dns/@ b/anchors/dns/@
new file mode 100644 (file)
index 0000000..305ff65
--- /dev/null
@@ -0,0 +1,26 @@
+198.41.0.4
+2001:503:ba3e::2:30
+170.247.170.2
+2801:1b8:10::b
+192.33.4.12
+2001:500:2::c
+199.7.91.13
+2001:500:2d::d
+192.203.230.10
+2001:500:a8::e
+192.5.5.241
+2001:500:2f::f
+192.112.36.4
+2001:500:12::d0d
+198.97.190.53
+2001:500:1::53
+192.36.148.17
+2001:7fe::53
+192.58.128.30
+2001:503:c27::2:30
+193.0.14.129
+2001:7fd::1
+199.7.83.42
+2001:500:9f::42
+202.12.27.33
+2001:dc3::35
diff --git a/anchors/dns/@.do b/anchors/dns/@.do
new file mode 100644 (file)
index 0000000..248c5f5
--- /dev/null
@@ -0,0 +1,6 @@
+redo-ifchange root-servers.net.zone
+perl -lane 'print $F[$#F] if $F[3] =~ /^AA?/' < root-servers.net.zone |
+while read addr ; do
+    [ "${addr#*:}" = "$addr" ] && echo $addr ||
+        sipcalc $addr | perl -lane 'print $F[$#F] if /^Compressed address/'
+done
diff --git a/anchors/dns/buddyns.com b/anchors/dns/buddyns.com
new file mode 100644 (file)
index 0000000..472b468
--- /dev/null
@@ -0,0 +1,4 @@
+185.34.136.178|uz56xw8h7fw656bpfv84pctjbl9rbzbqrw4rpzdhtvzyltpjdmx0zq
+2a00:dcc7:d3ff:88b2::1|uz56xw8h7fw656bpfv84pctjbl9rbzbqrw4rpzdhtvzyltpjdmx0zq
+192.184.93.99|uz5dkwpjfvfwb9rh1qj93mtup0gw65s6j7vqqumch0r9gzlu8qxx39
+2604:180:1:92a::3|uz5dkwpjfvfwb9rh1qj93mtup0gw65s6j7vqqumch0r9gzlu8qxx39
diff --git a/anchors/dns/dnscurve.cz b/anchors/dns/dnscurve.cz
new file mode 100644 (file)
index 0000000..dc4fa21
--- /dev/null
@@ -0,0 +1,4 @@
+185.66.36.55|uz5mj60yr9tnudkkpcglw1y0w6dlh78j1l4gk4z7t8bsf1u4d48wlq
+37.157.196.86|uz5mj60yr9tnudkkpcglw1y0w6dlh78j1l4gk4z7t8bsf1u4d48wlq
+2a02:2b88:2:1::127d:1|uz5mj60yr9tnudkkpcglw1y0w6dlh78j1l4gk4z7t8bsf1u4d48wlq
+2a03:1e20:0:5::2|uz5mj60yr9tnudkkpcglw1y0w6dlh78j1l4gk4z7t8bsf1u4d48wlq
diff --git a/anchors/dns/ianix.com b/anchors/dns/ianix.com
new file mode 100644 (file)
index 0000000..7e6af90
--- /dev/null
@@ -0,0 +1,2 @@
+104.248.15.206|uz5dns1bx64zu3pgn9nm4zfvmh2vy4hpjy7nkjz6qjcu325bg9hzcx
+104.207.143.9|uz5dns2sdrnxskf5lqt46v34cdlfqb9q2lvvmpr95g3l1qh0148sf6
diff --git a/anchors/dns/root-servers.net.zone.do b/anchors/dns/root-servers.net.zone.do
new file mode 100644 (file)
index 0000000..9a63e2c
--- /dev/null
@@ -0,0 +1,5 @@
+wget -O $3.gz https://www.internic.net/zones/root-servers.net.zone.gz
+wget -O $3.gz.sig https://www.internic.net/zones/root-servers.net.zone.gz.sig
+gpg --keyring ~/work/keyrings/all.kbx --verify $3.gz.sig
+rm $3.gz.sig
+gunzip $3.gz
diff --git a/anchors/dns/stargrave.org b/anchors/dns/stargrave.org
new file mode 100644 (file)
index 0000000..d5f6289
--- /dev/null
@@ -0,0 +1,4 @@
+45.10.110.72|uz5nulnd504gp3s7sdmdl5l2gxc762hpw926t90k39ltxp67flbccn
+2a04:ac00:a:146::25|uz5nulnd504gp3s7sdmdl5l2gxc762hpw926t90k39ltxp67flbccn
+91.211.5.21|uz544mqwggqbf3z4utlhfqn45vpbpq78nc63hpg5u2ut29stkt0pkr
+2a03:e2c0:2663:1::1|uz544mqwggqbf3z4utlhfqn45vpbpq78nc63hpg5u2ut29stkt0pkr
diff --git a/anchors/dns/yp.to b/anchors/dns/yp.to
new file mode 100644 (file)
index 0000000..249fae9
--- /dev/null
@@ -0,0 +1,2 @@
+131.193.32.108|uz5jmyqz3gz2bhnuzg0rr0cml9u8pntyhn2jhtqn04yt3sm5h235c1
+131.193.32.109|uz5jmyqz3gz2bhnuzg0rr0cml9u8pntyhn2jhtqn04yt3sm5h235c1
diff --git a/anchors/dnssec/default.do b/anchors/dnssec/default.do
new file mode 100644 (file)
index 0000000..e7b619d
--- /dev/null
@@ -0,0 +1 @@
+wget -O $3 http://data.iana.org/root-anchors/$1
diff --git a/anchors/dnssec/root.key b/anchors/dnssec/root.key
new file mode 100644 (file)
index 0000000..5672152
--- /dev/null
@@ -0,0 +1 @@
+.      172800  IN      DNSKEY  257 3 8 AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTOiW1vkIbzxeF3+/4RgWOq7HrxRixHlFlExOLAJr5emLvN7SWXgnLh4+B5xQlNVz8Og8kvArMtNROxVQuCaSnIDdD5LKyWbRd2n9WGe2R8PzgCmr3EgVLrjyBxWezF0jLHwVN8efS3rCj/EWgvIWgb9tarpVUDK/b58Da+sqqls3eNbuv7pr+eoZG+SrDK6nWeL3c6H5Apxz7LjVc1uTIdsIXxuOLYA4/ilBmSVIzuDWfdRUfhHdY6+cn8HFRm+2hM8AnXGXws9555KrUB5qihylGa8subX2Nn6UwNR1AkUTV74bU=
diff --git a/anchors/dnssec/root.key.do b/anchors/dnssec/root.key.do
new file mode 100644 (file)
index 0000000..2015c20
--- /dev/null
@@ -0,0 +1,4 @@
+redo-ifchange icannbundle.pem root-anchors.p7s root-anchors.xml
+cmd="unbound-anchor -a $3 -c icannbundle.pem -x root-anchors.xml -s root-anchors.p7s"
+$cmd || :
+$cmd
index 5b8813c5ac8c2c83b7cc2dae4a76313bd750635a..efccdaf4c3a6a5f8e738ad45355fe397a637d09a 100644 (file)
@@ -3,9 +3,12 @@ ca-certificate=/etc/ssl/cert.pem
 bt-max-open-files=1000
 bt-max-peers=0
 bt-save-metadata=true
+dht-entry-point=dht.cypherpunks.ru:8991
+dht-entry-point6=dht.cypherpunks.ru:8991
 enable-dht=true
 enable-dht6=true
 seed-ratio=0.0
 disk-cache=0
 file-allocation=trunc
 force-save=true
+#disable-ipv6=true
diff --git a/bin/bin/4k2mpeg2.sh b/bin/bin/4k2mpeg2.sh
deleted file mode 100755 (executable)
index a354c4b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-ffmpeg -i "$1" -vf scale=w=iw/4:h=ih/4 -c:v mpeg2video -b:v 10000k -y "$1".mpg
diff --git a/bin/bin/bitlbee.sh b/bin/bin/bitlbee.sh
deleted file mode 100755 (executable)
index c149a32..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-/usr/local/sbin/bitlbee -c ~/.bitlbee.conf
diff --git a/bin/bin/cfmt.sh b/bin/bin/cfmt.sh
deleted file mode 100755 (executable)
index e0adac5..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-clang-format -style="`cat ~/.clang-format`" $@
similarity index 100%
rename from bin/bin/cp-sorted.sh
rename to bin/bin/cp-sorted
diff --git a/bin/bin/cueparser b/bin/bin/cueparser
new file mode 100755 (executable)
index 0000000..f701e61
--- /dev/null
@@ -0,0 +1,8 @@
+#!/usr/bin/env zsh
+
+cueprint -i cue -t "%t\n" =(iconv -f ${2:-latin1} -t utf-8 "$1") | while read name; do
+    (( i++ ))
+    printf -v num %02d $i
+    name=${name:gs#/#,}
+    print -r mv split-track${num}.wav ${num}.${(qq)name}.wav
+done
diff --git a/bin/bin/cueparser.sh b/bin/bin/cueparser.sh
deleted file mode 100755 (executable)
index 607d268..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-c=1
-iconv -f latin1 -t utf-8 "$1" |
-sed -n 's/^  *TITLE .\(.*\)".*$/\1/p' | while read trackname; do
-       v=`printf "%02d\n" $c`
-       echo mv split-track$v.wav $v.\"$trackname\".wav
-       c=$(( $c + 1 ))
-done
diff --git a/bin/bin/dc-wrapped.sh b/bin/bin/dc-wrapped.sh
deleted file mode 100755 (executable)
index 74d4af7..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-# natural logarithm: 1000lLx 10lLx /p
-# sum of everything in stack: lSxp
-pre="5k 10o \
-[1-d2+/d2*Skd*Sy0Ss10K^Sp[d1r/lk*ls+lsrdss-lp*d*1[s_q]s_>_lkly*sk2+lfx]Sf1lfxLsLkLyLpLfs_s_s_s_]sL \
-[0d[+2z>a]salax]sS
-"
-exec rlwrap \
-    --history-filename /tmp/.dc_history \
-    --substitute-prompt "> " \
-    --prompt-colour=red \
-    --wait-before-prompt -1 \
-    --pre-given "$pre" dc
diff --git a/bin/bin/dl-magnet b/bin/bin/dl-magnet
new file mode 100755 (executable)
index 0000000..ee429dd
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec aria2c --bt-save-metadata --bt-metadata-only "$1"
index 2de9a0e10331742e336653bac64af3d979dd2926..1b08be3e04dc9a642b96d4f6050ef68ff437a884 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/env perl
 # Simple script for substitute placeholders in Texinfo files with
 # docstring values found in source code.
-# Copyright (C) 2020 Sergey Matveev (stargrave@stargrave.org)
+# Copyright (C) 2020-2024 Sergey Matveev (stargrave@stargrave.org)
 #
 # If you C source code contains:
 #
@@ -23,11 +23,11 @@ my $verbose = 0;
 if ($ARGV[0] eq "-v") {
     $verbose = 1;
     shift @ARGV;
-};
-my @srcDirs = split / /, $ARGV[0];
-my $docDir = $ARGV[1];
-my $docBuildDir = $ARGV[2];
-my @exts = split / /, defined $ENV{EXTS} ? $ENV{EXTS} : "c h h.in";
+}
+my $outDir = $ARGV[0];
+my @srcDirs = split /:/, $ARGV[1];
+my @docDirs = split /:/, $ARGV[2];
+my @exts = split / /, (defined $ENV{EXTS}) ? $ENV{EXTS} : "c h h.in";
 
 my %docstrings;
 
@@ -39,43 +39,48 @@ foreach my $srcDir (@srcDirs) {
         open(my $src, "<:encoding(UTF-8)", "$srcDir/$fn") or
             die "can not open $srcDir/$fn";
         my $curEntry;
-        while(<$src>) {
+        while (<$src>) {
             chomp;
             if (not /^\/\//) {
                 if (defined $curEntry) {
                     undef $curEntry;
-                };
+                }
                 next;
-            };
+            }
             s/^\/\/ ?//;
             if (/^TEXINFO: (.*)$/) {
                 $curEntry = $1;
                 $docstrings{$curEntry} = "";
                 print "\t$fn: $curEntry\n" if $verbose;
                 next;
-            };
-            ( $docstrings{$curEntry} .= "$_\n" ) if defined $curEntry;
-        };
+            }
+            ($docstrings{$curEntry} .= "$_\n") if defined $curEntry;
+        }
         close $src;
-    };
+    }
     closedir $dir;
-};
+}
 
-print "doc: $docDir\n" if $verbose;
-opendir(my $dir, $docDir) or die "can not open $docDir";
-foreach my $fn (readdir $dir) {
-    next unless $fn =~ /\.texi$/;
-    open(my $src, "<:encoding(UTF-8)", "$docDir/$fn") or
-        die "can not open $docDir/$fn";
-    open(my $dst, ">:encoding(UTF-8)", "$docBuildDir/$fn") or
-        die "can not open $docBuildDir/$fn";
-    while(<$src>) {
-        ( print($dst $_) and next ) unless /^\s*\@DOCSTRING (.*)\@$/;
-        print "\t$fn: $1\n" if $verbose;
-        die "unable to find docstring: $1" unless defined $docstrings{$1};
-        print $dst $docstrings{$1};
-    };
-    close $src;
-    close $dst;
-};
-closedir $dir;
+foreach my $docDir (@docDirs) {
+    print "doc: $docDir\n" if $verbose;
+    opendir(my $dir, $docDir) or die "can not open $docDir";
+    ($docDir .= "/") unless $docDir =~ /\/$/;
+    ($docDir = "") if $docDir eq "./";
+    foreach my $fn (readdir $dir) {
+        next unless $fn =~ /\.texi$/;
+        $fn = $docDir . $fn;
+        open(my $src, "<:encoding(UTF-8)", $fn) or die "can not open $fn";
+        mkdir "$outDir/$docDir";
+        open(my $dst, ">:encoding(UTF-8)", "$outDir/$fn") or
+            die "can not open $outDir/$fn";
+        while (<$src>) {
+            (print($dst $_) and next) unless /^\s*\@DOCSTRING (.*)\@$/;
+            print "\t$fn: $1\n" if $verbose;
+            die "unable to find docstring: $1" unless defined $docstrings{$1};
+            print $dst $docstrings{$1};
+        }
+        close $src;
+        close $dst;
+    }
+    closedir $dir;
+}
diff --git a/bin/bin/exifrm.sh b/bin/bin/exifrm.sh
deleted file mode 100755 (executable)
index 0474704..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-exiftool -all= -overwrite_original $@
diff --git a/bin/bin/gemget b/bin/bin/gemget
new file mode 100755 (executable)
index 0000000..44024ee
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+h=${1#*//}
+h=${h%%/*}
+echo "$1" | tcpclient -DHR -l 0 $h 1965 tlsc -name $h -insecure sh -c "addcr >&7 ; delcr <&6"
diff --git a/bin/bin/gen-ula b/bin/bin/gen-ula
new file mode 100755 (executable)
index 0000000..0fbda56
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+one=`dd if=/dev/random bs=1 count=1 2>/dev/null | xxd -p`
+two=`dd if=/dev/random bs=1 count=2 2>/dev/null | xxd -p`
+thr=`dd if=/dev/random bs=1 count=2 2>/dev/null | xxd -p`
+sipcalc fd${one}:${two}:${thr}::/48
diff --git a/bin/bin/git-list-gen b/bin/bin/git-list-gen
new file mode 100755 (executable)
index 0000000..e6f8b66
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/sh -e
+# Generate list of available git repositories
+
+cat pre.txt
+cat <<EOF
+-------------------------------+------------------+---------------------------
+Repository name                | Latest change    | Description, upstream URLs
+-------------------------------+------------------+---------------------------
+EOF
+
+find . -name '*.git' -maxdepth 1 -mindepth 1 | sort | while read dir ; do
+    cd $dir
+    for commit in master main trunk ; do
+        mtime=`git cat-file -p $commit 2>/dev/null | perl -lane 'print $F[$#F - 1] if /^author/'`
+        [ -z "$mtime" ] || break
+    done
+    [ -z "$mtime" ] || mtime=`date -u -j -f %s $mtime "+%Y-%m-%d %H:%M"`
+    printf "%-30s | %16s | %s\n" ${dir#./} "$mtime" "`cat description`"
+    git remote | while read remote ; do
+        printf "%-30s | %16s | %s\n" "" "" "`git remote get-url $remote`"
+    done
+    cd ..
+done
diff --git a/bin/bin/gpg-e-fast.sh b/bin/bin/gpg-e-fast.sh
deleted file mode 100755 (executable)
index 5d44e28..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-gpg --compress-level 0 --encrypt --force-aead --cipher-algo AES-128 $@
diff --git a/bin/bin/ips b/bin/bin/ips
new file mode 100755 (executable)
index 0000000..a75c45a
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/sh -e
+
+# -de1
+
+exec rlwrap \
+    --prompt-colour=red \
+    --substitute-prompt "> " \
+    perl -Mbignum -MEncode -MData::Dumper \
+        -e '$Data::Dumper::Useqq = 1;' \
+        -e '*x = \&Dumper; $_dummy = $x;' \
+        -wnE 'say eval()//$@'
diff --git a/bin/bin/jpegtran.sh b/bin/bin/jpegtran.sh
deleted file mode 100755 (executable)
index 2556f15..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-jpegtran -optimize -progressive -perfect -copy none $@
diff --git a/bin/bin/mail_dup_hdrs_remove.pl b/bin/bin/mail_dup_hdrs_remove.pl
new file mode 100755 (executable)
index 0000000..dcc78ca
--- /dev/null
@@ -0,0 +1,46 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+my %hdrs;
+my $hdr;
+my @hdrs_order;
+my %hdrs_dup = (
+    "Content-Disposition", 1,
+    "Date" => 1,
+    "From" => 1,
+    "Message-ID" => 1,
+    "Subject" => 1,
+    "To" => 1,
+);
+
+while (<>) {
+    chomp;
+    last if ($_ eq "");
+    /^([^:]+): (.*)$/;
+    if (/^\s/) {
+        @{$hdrs{$hdr}}[-1] .= "\n$_";
+        next;
+    };
+    $hdr = $1;
+    my $val = $2;
+    (defined $hdrs{$hdr}) ? (push @{$hdrs{$hdr}}, $val) : ($hdrs{$hdr} = [$val]);
+    push @hdrs_order, $hdr;
+};
+
+my %seen;
+foreach (@hdrs_order) {
+    next if (defined $seen{$_});
+    $seen{$_} = 1;
+    if (defined $hdrs_dup{$_}) {
+        print "$_: @{$hdrs{$_}}[-1]\n";
+        next;
+    };
+    foreach my $val (@{$hdrs{$_}}) {
+        print "$_: $val\n";
+    };
+};
+
+print "\n";
+while (<>) { print };
diff --git a/bin/bin/mail_dup_hdrs_remove.py b/bin/bin/mail_dup_hdrs_remove.py
deleted file mode 100755 (executable)
index 669d8b4..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env python3.6
-
-import sys
-
-fn = sys.argv[1]
-out = sys.argv[2]
-with open(fn, "rb") as fd:
-    lines = fd.read().split(b"\n")
-
-def dup(lines, what):
-    idx = []
-    met = False
-    for i, line in enumerate(lines):
-        if line == "":
-            break
-        if met:
-            if line.startswith(b" "):
-                idx.append(i)
-                continue
-            else:
-                met = False
-        if line.startswith(what):
-            if len(idx) == 0:
-                idx.append(i)
-                met = True
-            else:
-                return [l for n, l in enumerate(lines) if n not in idx]
-    return lines
-
-lines = dup(lines, b"To")
-lines = dup(lines, b"From")
-lines = dup(lines, b"Subject")
-with open(out, "wb") as fd:
-    fd.write(b"\n".join(lines))
diff --git a/bin/bin/meshname b/bin/bin/meshname
new file mode 100755 (executable)
index 0000000..f713770
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh -e
+
+sipcalc $1 |
+sed -n 's/://g ; s/^Expanded.*-.//p' |
+xxd -r -p |
+perl -MMIME::Base32 -ne 'print lc encode_base32 $_; print ".meshname\n"'
diff --git a/bin/bin/mirror-page-warc.sh b/bin/bin/mirror-page-warc.sh
deleted file mode 100755 (executable)
index f0c8183..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-mirror-page.sh "$1" \
-    --warc-file $name-$(date '+%Y%M%d%H%m%S') \
-    --no-warc-compression \
-    --no-warc-keep-log \
-    $@
diff --git a/bin/bin/mirror-page.sh b/bin/bin/mirror-page.sh
deleted file mode 100755 (executable)
index 9f5d613..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-
-user_agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27"
-
-name=$1
-shift
-mkdir -p $name
-
-cd $name
-wget \
-    --page-requisites \
-    --convert-links \
-    --adjust-extension \
-    --restrict-file-names=ascii \
-    --span-hosts \
-    --random-wait \
-    --execute robots=off \
-    --user-agent "$user_agent" \
-    --reject '*.woff*,*.ttf,*.eot,*.js' \
-    --tries 10 \
-    $@
diff --git a/bin/bin/mirror-site-warc.sh b/bin/bin/mirror-site-warc.sh
deleted file mode 100755 (executable)
index 7808115..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-mirror-site.sh "$1" \
-    --warc-file $name-$(date '+%Y%M%d%H%m%S') \
-    --no-warc-compression \
-    --no-warc-keep-log \
-    $@
diff --git a/bin/bin/mirror-site.sh b/bin/bin/mirror-site.sh
deleted file mode 100755 (executable)
index a5d83c6..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-
-user_agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27"
-
-name=$1
-shift
-mkdir -p $name
-
-cd $name
-wget \
-    --page-requisites \
-    --convert-links \
-    --adjust-extension \
-    --restrict-file-names=ascii \
-    --span-hosts \
-    --random-wait \
-    --execute robots=off \
-    --recursive \
-    --timestamping \
-    -l inf \
-    --no-remove-listing \
-    --no-parent \
-    --user-agent "$user_agent" \
-    --reject '*.woff*,*.ttf,*.eot,*.js' \
-    --tries 10 \
-    $@
diff --git a/bin/bin/mkss b/bin/bin/mkss
new file mode 100755 (executable)
index 0000000..a276498
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh -e
+
+sleep 1
+tmp=`mktemp`
+trap "rm -f $tmp $tmp.png $tmp.webp $tmp.txt" HUP PIPE INT QUIT TERM EXIT
+[ "$1" = "root" ] && {
+    root="-window root" || root=""
+    shift
+}
+import $root $tmp.png
+my-cwebpl -o $tmp.webp $tmp.png
+if [ "$1" = no ]; then
+    fn=/tmp/`dd if=/dev/urandom bs=8 count=1 2>/dev/null | xxd -p`.webp
+    mv $tmp.webp $fn
+    echo $fn | tee $tmp.txt
+else
+    paster $tmp.webp > $tmp.txt
+fi
+xmessage -file $tmp.txt
diff --git a/bin/bin/mkvclean.sh b/bin/bin/mkvclean.sh
deleted file mode 100755 (executable)
index 476283a..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-mkvpropedit \
-    --edit info \
-    --delete title \
-    --delete date \
-    --set muxing-application=- \
-    --set writing-application=- \
-    --chapters "" \
-    --tags all: $@
diff --git a/bin/bin/mp b/bin/bin/mp
deleted file mode 100755 (executable)
index 9f03422..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env perl
-
-exec "mpv", map { s/^([A-Z][A-Z])$/--profile=$1/ ; $_ } @ARGV;
diff --git a/bin/bin/music-indexer b/bin/bin/music-indexer
new file mode 100755 (executable)
index 0000000..a1e837e
--- /dev/null
@@ -0,0 +1,47 @@
+#!/usr/bin/env zsh
+
+cat <<EOF
+%rec: Album
+%mandatory: Artist Album
+%allowed: Year Collection Lossless
+%type: Year int
+%type: Lossless bool
+
+EOF
+
+setopt EXTENDED_GLOB
+COLS=()
+for col (cols/*) COLS=($COLS $col:t)
+for name (*~cols) {
+    ts=(${(s/-/)name})
+    year=""
+    for (( i=2 ; i <= $#ts ; i++ )) {
+        [[ ${ts[$i]} =~ "^[0-9][0-9][0-9][0-9]$" ]] && {
+            year=${ts[$i]}
+            break
+        }
+    }
+    [[ -n $year ]] && {
+        artist=(${ts[1,$i-1]})
+        album=(${ts[$i+1,-1]})
+    } || {
+        artist=${ts[1]}
+        album=(${ts[2,-1]})
+    }
+    lossless=""
+    if [[ -d $name ]] ; then
+        wvs=($name/**/*.wv(N))
+        [[ ${#wvs} -gt 0 ]] && lossless=1
+    else
+        [[ $name:e = wv ]] && lossless=1
+    fi
+    cols=()
+    for col ($COLS) [[ -e cols/$col/$name ]] && cols=($cols $col)
+
+    print "Artist: ${(j/-/)artist:gs/_/ /}"
+    [[ -n $year ]] && print "Year: $year"
+    print "Album: ${(j/-/)album:gs/_/ /}"
+    [[ -n $lossless ]] && print "Lossless: yes"
+    for col ($cols) print "Collection: $col"
+    print
+}
diff --git a/bin/bin/music-renamer b/bin/bin/music-renamer
new file mode 100755 (executable)
index 0000000..b494f7e
--- /dev/null
@@ -0,0 +1,9 @@
+#!/usr/bin/env zsh
+
+ext=${1:-wav}
+
+while read name ; do
+    (( i++ ))
+    print -v num -f %02d $i
+    print -r mv track${num}.cdda.$ext ${num}.${(qq)name}.$ext
+done
similarity index 70%
rename from bin/bin/mv-sha.sh
rename to bin/bin/mv-hsh
index bf5cc5c2373bdcc87a076a8622b892a24816eafa..fe7ee9259ea708f261a38f872b4fb1cf638a08e4 100755 (executable)
@@ -2,5 +2,5 @@
 
 [ $# -eq 0 ] && fs="$(find . -maxdepth 1 -type f)" || fs="$@"
 for f in $fs ; do
-    mv -v "$f" $(sha1 -q "$f").${f##*.}
+    mv -v "$f" $(b3sum < "$f").${f##*.}
 done
diff --git a/bin/bin/my-bunzip2 b/bin/bin/my-bunzip2
new file mode 100755 (executable)
index 0000000..6c70c4d
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh -e
+
+exec 7z x -tbzip2 -si -so
similarity index 78%
rename from bin/bin/cleanup.sh
rename to bin/bin/my-cleanup
index 55aa00e563fd07120201e31288372e239ac61ec4..925e9c49619e8afe8f46a8c2b1a7783bd1eed722 100755 (executable)
@@ -3,9 +3,10 @@
 rm -fr \
     ~/.*_history \
     ~/.cache ~/.config ~/.local* ~/.thumbnails \
-    ~/.links ~/.w3m \
+    ~/.w3m \
     ~/.java \
     ~/.pylint.d \
     ~/.viminfo \
-    ~/xombrero.core \
+    ~/.Trash \
+    ~/go \
     ~/zathura.core
similarity index 100%
rename from bin/bin/der2pem.sh
rename to bin/bin/my-der2pem
diff --git a/bin/bin/my-mtree b/bin/bin/my-mtree
new file mode 100755 (executable)
index 0000000..117b365
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+fields="type size sha512"
+mtree -c -k "$fields" | mtree -C -S -k "$fields"
similarity index 100%
rename from bin/bin/pem2der.sh
rename to bin/bin/my-pem2der
diff --git a/bin/bin/my-ps2pdf b/bin/bin/my-ps2pdf
new file mode 100755 (executable)
index 0000000..5510c18
--- /dev/null
@@ -0,0 +1,45 @@
+#!/usr/bin/env zsh
+# Original ps2pdf is just a trivial caller to gs too.
+# That ones is lossless, tries to be closer to PDF/A-1.
+# It also copies Producer metainformation tag to Creator,
+# removes all empty metainformation fields, removed fields
+# with uuid:s, removes Format (that is application/pdf).
+
+setopt ERR_EXIT
+opts=(
+    -dQUIET
+    -dBATCH
+    -dNOPAUSE
+    -dSAFER
+    -sDEVICE=pdfwrite
+    -dPDFSETTINGS=/default
+    -dPDFA=1
+    -dCompatibilityLevel=1.4
+    -dPDFACompatibilityPolicy=3 # that will skip some errors about XMP
+    -dAutoRotatePages=/None
+    -dOptimize=true
+    -sColorConversionStrategy=RGB # advised for PDF/A
+    -sProcessColorModel=DeviceRGB # advised for PDF/A
+    -dAutoFilterColorImages=false
+    -dAutoFilterGrayImages=false
+    -dAutoFilterMonoImages=false
+    -dColorImageFilter=/FlateEncode
+    -dGrayImageFilter=/FlateEncode
+    -dMonoImageFilter=/FlateEncode
+    -sOutputFile="$1".pdf
+)
+gs ${=opts} $1
+
+toremove=(Format)
+exiftool $1.pdf | while read l ; do
+    f=${${(s/:/)l}[1]:gs/ //}
+    [[ "$l" =~ ": " ]] || toremove=($f $toremove)
+    [[ "$l" =~ ": uuid:" ]] && toremove=($f $toremove)
+done
+for i ({1..${#toremove}}) toremove[$i]=-${toremove[$i]}=
+exiftool -zip -overwrite_original -quiet \
+    -tagsFromFile $1 -Producer\>Creator \
+    ${=toremove} $1.pdf
+[[ -z $LINEARIZE ]] || LINEARIZE=--linearize
+qpdf $LINEARIZE --compress-streams=y $1.pdf $1.pdf.pdf
+mv $1.pdf.pdf $1.pdf
similarity index 96%
rename from bin/bin/scan.sh
rename to bin/bin/my-scan
index d5c905feb48c57a1a4edf10e872f9ebd733ec30b..083c08902952afb8af31a607bc53b2ab76779f8a 100755 (executable)
@@ -47,7 +47,7 @@ do_next() {
 do_next
 
 while : ; do
-    echo -n "$cur: crop:$crop rotate:$rotate v/r/c/s/p/n> "
+    echo -n "$cur: C:$crop R:$rotate v/r/c/s/p/n> "
     read c
     case $c in
     v)
similarity index 100%
rename from bin/bin/tree.sh
rename to bin/bin/my-tree
similarity index 100%
rename from bin/bin/xmlpretty.sh
rename to bin/bin/my-xmlpretty
diff --git a/bin/bin/my-zstd b/bin/bin/my-zstd
new file mode 100755 (executable)
index 0000000..9b68c88
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh -e
+
+exec zstdmt -v --ultra -22 --rm "$@"
diff --git a/bin/bin/pe b/bin/bin/pe
deleted file mode 100755 (executable)
index 9777ecb..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/zsh
-
-typeset -A seen
-path-extractor | while read fn ; do
-    [[ $seen[$fn] -eq 1 ]] && continue
-    seen+=($fn 1)
-    print $fn
-done | fzf -m
index 6f9d16f0b6708430e47f61398a7e3c5e6080e690..3a9447ca252c41b89a3f4b4265abaa388c069b1c 100755 (executable)
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-exec java -jar $HOME/src/plantuml.jar $@
+exec java -jar $HOME/src/plantuml/plantuml.jar $@
diff --git a/bin/bin/pngcrush.sh b/bin/bin/pngcrush.sh
deleted file mode 100755 (executable)
index cc73d9b..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh -ex
-
-t=$(TMPDIR=. mktemp)
-pngcrush -rem alla -rem allb "$1" $t
-mv $t "$1"
diff --git a/bin/bin/ps2pdf.sh b/bin/bin/ps2pdf.sh
deleted file mode 100755 (executable)
index b892beb..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-gs \
-    -dBATCH -dNOPAUSE -dSAFER \
-    -sDEVICE=pdfwrite -dPDFA \
-    -dPDFSETTINGS=/default \
-    -dAutoRotatePages=/None \
-    -sColorConversionStrategy=DeviceRGB \
-    -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode \
-    -dAutoFilterGrayImages=false -dGrayImageFilter=/FlateEncode \
-    -dMonoImageFilter=/FlateEncode \
-    -dOptimize=true \
-    -dEmbedAllFonts=true \
-    -sOutputFile="$1".pdf "$1"
index 4b7a0da566262c2411827f4dfad47e5f35932ea2..23250cbb4439d5790adbae4f529833370e4120b9 100755 (executable)
@@ -1 +1,3 @@
-remind -g ~/rem/index.rem
+#!/bin/sh
+
+remind -g ~/rem/index.rem $@
diff --git a/bin/bin/start-im b/bin/bin/start-im
deleted file mode 100755 (executable)
index 98e1ad3..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/zsh
-
-. $HOME/bin/tmux-common.sh
-
-$TMUX has-session -t im && exit
-$TMUX new-session -d -s im
-$TMUX rename-window -t im:1 "mattermost"
-$TMUX split-window -t im:1
-
-paste im:1.0 "~/work/matterircd/start.sh"
-sleep 1
-paste im:1.1 "irssi"
-$TMUX resize-pane -U -t im:1 15
-
-#$TMUX select-window -t root:1.0
-
-CMD="$TMUX attach-session -t im" CMDTITLE="Terminal8" $HOME/bin/dwm-term &
diff --git a/bin/bin/start-lynx.sh b/bin/bin/start-lynx.sh
deleted file mode 100755 (executable)
index a07a6ab..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-winid=$1
-shift
-exec ~/bin/st -w $winid -e lynx $@
diff --git a/bin/bin/texinavfix.pl b/bin/bin/texinavfix.pl
deleted file mode 100755 (executable)
index e14d808..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env perl
-
-use strict;
-use warnings;
-
-my %rels;
-my $header = 0;
-my $printed = 0;
-
-while(<STDIN>){
-    ($rels{$2} = $1) if /^<link href="([^#]*)[^"]*" rel="([^"]*)" title/;
-    if(/<div class="header">$/){
-        print "$_<center><p>";
-        if(defined $rels{"prev"}){
-            print "<a href=\"$rels{'prev'}\" accesskey=\"p\" rel=\"prev\">[&lt;&lt;&lt;]</a>";
-        };
-        if(defined $rels{"up"}){
-            print "<a href=\"$rels{'up'}\" accesskey=\"u\" rel=\"up\">[^^^]</a>";
-        };
-        if(defined $rels{"next"}){
-            print "<a href=\"$rels{'next'}\" accesskey=\"n\" rel=\"next\">[&gt;&gt;&gt;]</a>";
-        };
-        $header++;
-    };
-    if($header && /^<.div>$/){
-        print "</p></center>$_";
-        $header--;
-    };
-    next if $header;
-    print;
-};
diff --git a/bin/bin/tmux-common.sh b/bin/bin/tmux-common.sh
deleted file mode 100644 (file)
index 35de255..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-TMUX=/usr/local/bin/tmux
-
-paste()
-{
-    local pane="$1"
-    local cmd="$2"
-    $TMUX set-buffer "$cmd"
-    $TMUX paste-buffer -t "$pane"
-    $TMUX delete-buffer
-    $TMUX send-keys -t "$pane" Enter
-}
diff --git a/bin/bin/tmux-fzf.zsh b/bin/bin/tmux-fzf.zsh
deleted file mode 100755 (executable)
index eb66b31..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env zsh
-
-cd $2
-set -e
-tmp=`mktemp`
-trap "rm -f $tmp" HUP PIPE INT QUIT TERM EXIT
-
-case $1 in
-(find)
-    find . -mindepth 1 -path "*/.git" -prune -o \
-        \( -type f -o -type d -o -type l \) -print |
-    cut -c3- | fzf -m --preview="less -N -S {}" |
-    while read fn ; do print ${(q)fn} ; done > $tmp
-    ;;
-(buf-files)
-    tmux capture-pane -J
-    tmux save-buffer $tmp.capture
-    trap "rm -f $tmp.capture" HUP PIPE INT QUIT TERM EXIT
-    tmux delete-buffer
-    pe < $tmp.capture > $tmp
-    ;;
-(git-files) git status --short | fzf -m | perl -npe 's/^\s*\S+\s+//' > $tmp ;;
-(git-branches) { git branch ; git branch --remote } | fzf > $tmp ;;
-(git-commits)
-    git --no-pager log --oneline -n 20 | perl -ne "print \"@~\$n \$_\"; \$n++" |
-    fzf --reverse | cut -w -f1 > $tmp
-    ;;
-(*) echo unknown command ; sleep 1 ; exit ;;
-esac
-
-[ -s $tmp ] || exit
-tmux set-buffer "`perl -npe 's/\n/ /g' $tmp`"
-tmux paste-buffer
-tmux delete-buffer
diff --git a/bin/bin/tmux-git-extractor.sh b/bin/bin/tmux-git-extractor.sh
deleted file mode 100755 (executable)
index 8cf1488..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-tmux has-session -t git-extractor && tmux kill-session -t git-extractor || :
-tmux new-session -d -s git-extractor -c "$1" '
-    git status --short | fzf -m --preview="" | while read item ; do
-        item=`echo $item | cut -w -f2-`
-        echo -n "$item "
-    done | read data
-    tmux set-buffer "$data"
-    tmux detach
-'
-tmux set-option -t git-extractor status off
-exec tmux attach-session -t git-extractor
diff --git a/bin/bin/tmux-menu-pass.sh b/bin/bin/tmux-menu-pass.sh
deleted file mode 100755 (executable)
index bae3919..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-while :; do
-    echo -n "> "
-    read pass
-    passman has "$pass" && break
-done
-exec passman "$pass" >/dev/null
diff --git a/bin/bin/www b/bin/bin/www
deleted file mode 100755 (executable)
index d58285d..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-[ -e /tmp/stargrave-flags/WG ] && [ -n "$1" ] && {
-    exec $HOME/local/bin/xombrero -n "$1" 2>/dev/null
-}
-
-term() {
-    DISPLAY=:0 CMD="tmux attach-session -t www" CMDTITLE="Terminal9" $HOME/bin/dwm-term &
-}
-
-if tmux has-session -t www 2> /dev/null ; then
-    attached=`tmux list-sessions -F "#{session_attached}" -f "#{==:#{session_name},www}"`
-    [ "$attached" != "0" ] || {
-        term &
-        sleep 0.5
-    }
-    tmux new-window -t www "lynx $@"
-else
-    tmux new-session -d -s www "sleep 0.5 ; lynx $@"
-    tmux set-option -t www default-command lynx
-    term &
-fi
diff --git a/bin/bin/xstatusbar.sh b/bin/bin/xstatusbar.sh
deleted file mode 100755 (executable)
index 17a1b77..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-while :; do
-    life=$(apm -l)
-    flags="$(ls /tmp/stargrave-flags | perl -e 'print join " ", sort map { chomp and $_ } <>')"
-    topinfo=$(top -b -d 1 0 | sed s/[,:]//g)
-    meminfo=$(echo "$topinfo" | grep "^Mem")
-    arcinfo=$(echo "$topinfo" | grep "^ARC")
-    swpinfo=$(echo "$topinfo" | perl -ne 'print $1 if /^Swap \w+ Total (\w+) Used/')
-    xsetroot -name "$swpinfo   $meminfo   $arcinfo [$flags] $life% $(date "+%Y-%m-%dT%H:%M:%S")"
-    sleep 20
-done
diff --git a/bin/bin/yt b/bin/bin/yt
deleted file mode 100755 (executable)
index 2bbe403..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/local/bin/zsh
-
-. /usr/local/bin/virtualenvwrapper.sh
-workon youtube3
-youtube-dl --config-location ~/.youtube-dl.conf $@
similarity index 67%
rename from bin/bin/zsnap.zsh
rename to bin/bin/zsnap
index f9f97024a7d9c62aefa4d8d814f1fd476158f1e2..7bab829040cc9ebee6e6cea2a32ac62d5ec2171b 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env zsh
 
-set -e
+setopt ERR_EXIT EXTENDED_GLOB
 
 usage() {
     cat <<EOF
@@ -9,23 +9,33 @@ Usage: $0 DATASET@SNAPPREFIX snap-initial
        $0 DATASET@SNAPPREFIX sync-initial DST
        $0 DATASET@SNAPPREFIX sync DST
        $0 DATASET@SNAPPREFIX clean COUNT
+       FIFO=1
 EOF
     exit 1
 }
 
-enccmd="/home/stargrave/bin/gpg-e-fast.sh --recipient offline"
+mk_fifo() {
+    [[ -z $FIFO ]] || {
+        mkfifo $dst/$latest_filename.zfs.zst.age
+        echo $dst/$latest_filename.zfs.zst.age
+    }
+}
+
+enccmd=(~stargrave/bin/age -R /home/stargrave/.age/general.pub)
 
 [[ $# -ge 2 ]] || usage
 
 what=$1
 action=$2
 
-now=$(date "+%Y%m%d%H%M")
-depth=${#${(s./.)what}}
+zmodload -F zsh/datetime b:strftime
+now=$(strftime %Y%m%d%H%M)
+[[ $what =~ / ]] && depth=1 || depth=${#${(s./.)what}}
 snaps=$(zfs list -t snap -d $depth -o name -H | grep $what | sort -nr)
 snaps=(${(f)snaps})
 latest=${snaps[1]}
 latest_filename=${latest:gs#/#%}
+dst=$3
 
 case $action in
     snap-initial)
@@ -39,25 +49,26 @@ case $action in
         print $what-$now
         ;;
     sync-initial)
-        dst=$3
         [[ -d $dst ]] || usage
+        mk_fifo
         setopt PIPE_FAIL
-        zfs send -Rv $latest | zstd | ${=enccmd} > \
-            $dst/$latest_filename.zfs.zst.gpg
+        zfs send -Rwv $latest | zstdmt | $enccmd > $dst/$latest_filename.zfs.zst.age
         sync
         touch $dst/$latest_filename.from
         ;;
     sync)
-        dst=$3
         [[ -d $dst ]] || usage
-        latest_dst=($dst/*(.Onn[1]))
+        mk_fifo
+        latest_dst=($dst/*.from~$dst/.*(.Onn[1]))
         [[ $latest_dst ]]
         latest_dst=${latest_dst[1]}
         latest_dst=${${latest_dst##*/}%.from}
         [[ $latest_dst != $latest_filename ]]
         setopt PIPE_FAIL
-        zfs send -Rv -i ${latest_dst:gs#%#/} $latest | zstd | ${=enccmd} > \
-            $dst/$latest_filename.zfs.zst.gpg
+        set -x
+        zfs send -Rwv -i ${latest_dst:gs#%#/} $latest | zstdmt | $enccmd > \
+            $dst/$latest_filename.zfs.zst.age
+        set +x
         sync
         print $latest_dst > $dst/$latest_filename.from
         ;;
diff --git a/bin/bin/zstd-gut.sh b/bin/bin/zstd-gut.sh
deleted file mode 100755 (executable)
index 95a0a00..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-zstdmt -v --ultra -22 --rm $@
index 6e2f208654b76005f348478a989d81aaf20986c2..6499a216bb4b9c9c8067c9e517cd2c21da464c8a 100644 (file)
@@ -3,7 +3,7 @@
     ColumnLimit: 88,
     IndentWidth: 4,
     AlignAfterOpenBracket: AlwaysBreak,
-    AlignConsecutiveAssignments: true,
+    AlignConsecutiveAssignments: false,
     AllowAllParametersOfDeclarationOnNextLine: false,
     AllowShortBlocksOnASingleLine: true,
     AlwaysBreakAfterReturnType: TopLevel,
diff --git a/dc/.dc b/dc/.dc
new file mode 100644 (file)
index 0000000..d4893b3
--- /dev/null
+++ b/dc/.dc
@@ -0,0 +1,20 @@
+5k
+10o
+
+# [ 1-d2+/
+#   d2*Sk              # Initialize multiplier
+#   d*Sy               # Initialize multiplier factor
+#   0Ss                # Initialize accumulator
+#   10K^Sp             # Initialize 10^k power
+#   [ d1r/lk*ls+lsrdss   # Update accumulator
+#     -lp*d*1 [s_q]s_>_  # Check precision
+#     lkly*sk 2+         # Update multiplier and counter
+#     lfx
+#   ]Sf
+#   1lfxLs
+# LkLyLpLfs_s_s_s_] sL
+# natural logarithm: 1000lLx 10lLx /p
+[1-d2+/d2*Skd*Sy0Ss10K^Sp[d1r/lk*ls+lsrdss-lp*d*1[s_q]s_>_lkly*sk2+lfx]Sf1lfxLsLkLyLpLfs_s_s_s_]sL
+
+# sum of everything in stack: lSxp
+[0d[+2z>a]salax]sS
diff --git a/dc/bin/zc b/dc/bin/zc
new file mode 100755 (executable)
index 0000000..71b29f1
--- /dev/null
+++ b/dc/bin/zc
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+exec rlwrap \
+    --history-filename /tmp/.dc_history \
+    --substitute-prompt "> " \
+    --prompt-colour=red \
+    dc -f ~/.dc -f -
diff --git a/eb/.ebrc b/eb/.ebrc
new file mode 100644 (file)
index 0000000..b5c06bb
--- /dev/null
+++ b/eb/.ebrc
@@ -0,0 +1,121 @@
+downdir=/home/stargrave/tmp/
+jar=/tmp/.ebjar
+cachedir=/tmp/.ebcache
+cachesize=200
+webtimer=30
+proxy = http|https * localhost:8080
+
+plugin{
+    type=image/webp
+    desc=WebP
+    suffix=webp
+    content=image/webp
+    down_url
+    program=sxiv %i
+}
+
+plugin{
+    type=image/jpeg
+    desc=JPEG
+    suffix=jpg
+    content=image/jpeg
+    down_url
+    program=sxiv %i
+}
+
+plugin{
+    type=image/png
+    desc=PNG
+    suffix=png
+    content=image/png
+    down_url
+    program=sxiv %i
+}
+
+plugin{
+    type=image/jxl
+    desc=JPEG XL
+    suffix=jxl
+    content=image/jxl
+    down_url
+    program=sxiv %i
+}
+
+plugin{
+    type=application/pdf
+    desc=PDF
+    suffix=pdf
+    content=application/pdf
+    down_url
+    program=zat %i
+}
+
+function+S{
+    b https://html.duckduckgo.com/html?q=~0
+    /Next Page/+1
+    z20
+}
+
+function+Sg{
+    b https://www.google.com/search?q=~0
+    /^{h3/
+    z20
+}
+
+function+Soid{
+    b https://oidref.com/~0
+    /^h1/
+    z20
+}
+
+function+Spep{
+    b https://www.python.org/dev/peps/pep-0~0/
+    /^h1/
+    z20
+}
+
+function+Spy{
+    b https://pypi.org/project/~0/
+    /^h1/
+    z20
+}
+
+function+Srfc{
+    b https://datatracker.ietf.org/doc/html/rfc~0
+    /^From:/
+    z40
+}
+
+function+Swe{
+    b https://en.wikipedia.org/wiki/~0
+    /^h1/
+    z40
+}
+
+function+Swr{
+    b https://ru.wikipedia.org/wiki/~0
+    /^h1/
+    z40
+}
+
+function+Scroll{
+    +,+20n
+    if(?) {
+        +,$n
+        if(?) {
+            0<Scroll
+        }
+    }
+}
+
+function:init{
+    db0
+    hf
+    ls=lt
+    showall+
+    vs+
+    endm+
+    ll2000
+    js-
+    db2
+}
diff --git a/eb/.inputrc-eb b/eb/.inputrc-eb
new file mode 100644 (file)
index 0000000..02372c9
--- /dev/null
@@ -0,0 +1,3 @@
+$include ~/.inputrc
+
+"\eOP": "<Scroll\n"
diff --git a/eb/bin/eb b/eb/bin/eb
new file mode 100755 (executable)
index 0000000..531fef7
--- /dev/null
+++ b/eb/bin/eb
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+LANG=en_US.UTF-8 INPUTRC=~/.inputrc-eb book=~/.lynx_bookmarks.html \
+    exec rlwrap \
+    --history-filename /tmp/.eb_history \
+    --substitute-prompt "> " \
+    --prompt-colour=red \
+    --complete-filenames \
+    edbrowse $@
index f427540fbad3264600648a2afd8ae2ffd2284d22..29b4423f26ed94446ea8513f48c4b21d6421970b 100644 (file)
@@ -2,7 +2,8 @@
 *.o
 *.pyc
 *.swp
-.hypothesis
+.autoenv.zsh
+.autoenv_leave.zsh
 .redo
 .tags
 start.sh
index b00a96b353348eef66d24d962ddf9bba3393b2f2..bd6ae59d020f01b03701a0fc4c2ae9c87f1da6c0 100644 (file)
@@ -1,3 +1,5 @@
+[pack]
+       threads = 8
 [advice]
        pushUpdateRejected = false
        detachedHead = false
@@ -7,17 +9,16 @@
 [user]
        name = Sergey Matveev
        email = stargrave@stargrave.org
-       signingkey = "E49857EF"
+       signingkey = "12AD32689C660D426967FD75CB8205632107AD8A"
 [color]
        diff = auto
        status = auto
        branch = auto
        interactive = auto
 [core]
+       compression = 0
        excludesfile = /home/stargrave/.git-ignore
        quotepath = false
-       filemode = true
-       logallrefupdates = true
        whitespace = blank-at-eol, space-before-tab, tab-in-indent, blank-at-eof
        pager=diff-highlight | $PAGER
 [log]
        colorMoved = default
        colorMovedWS = allow-indentation-change
        tool = vimdiff
+       noprefix = true
 [grep]
        lineNumber = true
 [merge]
        tool = vimdiff
+       conflictStyle = zdiff3
 [pull]
        ff = only
 [help]
@@ -47,3 +50,7 @@
        defaultBranch = master
 [format]
        useAutoBase = true
+[safe]
+       directory = *
+[includeIf "gitdir:~/work/stc/"]
+       path = ~/work/stc/.gitconfig
diff --git a/git/.zsh/functions/Gam b/git/.zsh/functions/Gam
new file mode 100644 (file)
index 0000000..6cf98f0
--- /dev/null
@@ -0,0 +1 @@
+git commit --amend
diff --git a/git/.zsh/functions/Gbr b/git/.zsh/functions/Gbr
new file mode 100644 (file)
index 0000000..00038bf
--- /dev/null
@@ -0,0 +1 @@
+git branch --remote
diff --git a/git/.zsh/functions/Gg b/git/.zsh/functions/Gg
new file mode 100644 (file)
index 0000000..8bd18b2
--- /dev/null
@@ -0,0 +1 @@
+git log -i --grep=$1
diff --git a/git/.zsh/functions/Gm b/git/.zsh/functions/Gm
new file mode 100644 (file)
index 0000000..5929b13
--- /dev/null
@@ -0,0 +1 @@
+git diff --name-only --diff-filter=M --relative
diff --git a/git/.zsh/functions/Gr b/git/.zsh/functions/Gr
new file mode 100644 (file)
index 0000000..82b33ce
--- /dev/null
@@ -0,0 +1 @@
+git remote -v
diff --git a/git/.zsh/rc/010git.zsh b/git/.zsh/rc/010git.zsh
new file mode 100644 (file)
index 0000000..3301f42
--- /dev/null
@@ -0,0 +1,12 @@
+alias Ga="git add"
+alias Gb="git branch"
+alias Gc="git checkout"
+alias Gd="git diff"
+alias Gdc="git diff --cached"
+alias gg="git grep "
+alias ggj="GIT_EDITOR=\"$EDITOR -c copen\" git jump grep "
+alias Gl="git log --oneline --graph --decorate=short"
+alias Gld="git log --date=format:'%F %R' --pretty=format:'%ad %C(auto)%h %s'"
+alias Gp="git log --patch"
+alias Gs="git show --show-signature"
+bindkey -s "\eOR" " git status --short\n" # F3
diff --git a/git/.zsh/rc/010vcs.zsh b/git/.zsh/rc/010vcs.zsh
new file mode 100644 (file)
index 0000000..0550102
--- /dev/null
@@ -0,0 +1,5 @@
+autoload -Uz vcs_info
+zstyle ":vcs_info:*" enable git
+zstyle ":vcs_info:*" max-exports 1
+zstyle ":vcs_info:git:*" formats "G"
+zstyle ":vcs_info:git:*" actionformats "%a"
index f683e2ffad3ebbde98c0401e13f997520844f254..fa22865d766db90a205621731a1288175fcef970 100644 (file)
@@ -1,22 +1,24 @@
 charset utf-8
 no-auto-key-retrieve
-keyserver hkps://hkps.pool.sks-keyservers.net
+# keyserver hkps://keys.openpgp.org
+keyserver hkps://keyserver.ubuntu.com
 no-secmem-warning
 no-greeting
 no-emit-version
-default-key AE1A8109E49857EF
+default-key 12AD32689C660D426967FD75CB8205632107AD8A
 keyid-format 0xlong
 photo-viewer sxiv %i
 
 trust-model tofu+pgp
-auto-key-locate dane wkd hkps://hkps.pool.sks-keyservers.net local
+auto-key-locate nodefault dane wkd local
 
 aead-algo OCB
-personal-aead-preferences OCB EAX
-personal-cipher-preferences TWOFISH AES256 CAMELLIA256 AES192 CAMELLIA192 AES CAMELLIA128 CAST5 BLOWFISH IDEA 3DES
-personal-digest-preferences SHA512 SHA384 SHA256 SHA224 RIPEMD160 SHA1
-personal-compress-preferences ZLIB ZIP BZIP2 Uncompressed
-default-preference-list OCB EAX TWOFISH AES256 CAMELLIA256 AES192 CAMELLIA192 AES CAMELLIA128 CAST5 BLOWFISH IDEA 3DES SHA512 SHA384 SHA256 SHA224 RIPEMD160 SHA1 ZLIB ZIP BZIP2 Uncompressed
+personal-aead-preferences OCB
+personal-cipher-preferences AES256 TWOFISH AES
+personal-digest-preferences SHA512
+personal-compress-preferences ZLIB ZIP Uncompressed
+default-preference-list OCB AES256 TWOFISH AES SHA512 ZLIB ZIP Uncompressed
 cert-digest-algo SHA512
 
-group myself=AE1A8109E49857EF
+group myself=12AD32689C660D426967FD75CB8205632107AD8A
+group myold=CF60E89A59231E76E2636422AE1A8109E49857EF
diff --git a/gnupg/.zsh/rc/010gpg.zsh b/gnupg/.zsh/rc/010gpg.zsh
new file mode 100644 (file)
index 0000000..8414481
--- /dev/null
@@ -0,0 +1,2 @@
+export GPG_TTY=$(tty)
+alias gpgkr="gpg --no-default-keyring --keyring "
diff --git a/gnupg/bin/mk-wkd-keys b/gnupg/bin/mk-wkd-keys
new file mode 100755 (executable)
index 0000000..b09508e
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh -ex
+
+email=$1
+shift
+
+hsh=`gpg-wks-client --print-wkd-hash $email | cut -d " " -f1`
+gpg --export $@ > $hsh
+gpg --armor --export $@ > $hsh.asc
diff --git a/go/bin/go-clean b/go/bin/go-clean
new file mode 100755 (executable)
index 0000000..a5e4742
--- /dev/null
@@ -0,0 +1,11 @@
+#!/usr/bin/env zsh
+
+setopt NO_NOMATCH
+rm -fr $GOCACHE \
+    /tmp/*.pch \
+    /tmp/go-build* \
+    /tmp/go.*.*.{mod,sum} \
+    /tmp/gopackages-* \
+    /tmp/gopls-* \
+    /tmp/gopls.* \
+    $XDG_CACHE_HOME/gopls
similarity index 100%
rename from bin/bin/go-fix-bash
rename to go/bin/go-fix-bash
similarity index 100%
rename from bin/bin/cwebp.sh
rename to img/bin/my-cwebp
similarity index 100%
rename from bin/bin/cwebpl.sh
rename to img/bin/my-cwebpl
diff --git a/img/bin/my-exifrm b/img/bin/my-exifrm
new file mode 100755 (executable)
index 0000000..32005d8
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exiftool -all= -TagsFromFile @ -ColorSpaceTags -overwrite_original "$1"
diff --git a/img/bin/my-jxll b/img/bin/my-jxll
new file mode 100755 (executable)
index 0000000..cd6ee12
--- /dev/null
@@ -0,0 +1,34 @@
+#!/usr/bin/env zsh
+
+setopt ERR_EXIT
+tmp=`mktemp`
+trap "rm -f $tmp.pnm $tmp.jxl" HUP PIPE INT QUIT TERM EXIT
+case $1:e in
+pnm) cp $1 $tmp.pnm ;;
+gif) giftopnm < $1 > $tmp.pnm ;;
+png) pngtopnm < $1 > $tmp.pnm ;;
+webp) dwebp -mt -quiet -o $tmp.pnm $1 ;;
+*)
+    print unknown extension >&2
+    exit 1
+esac
+
+common=(--quiet --distance=0 --effort=9 --brotli_effort=11)
+prev=$(( 1 << 62 ))
+best=""
+zmodload -F zsh/stat b:zstat
+for g (0 1 2 3) {
+    opts=(--modular_group_size=$g)
+    cjxl $common $opts $tmp.pnm $tmp.jxl
+    zstat -A cur +size $tmp.jxl
+    [[ $cur -gt $prev ]] || {
+        prev=$cur
+        best=($opts)
+    }
+}
+zstat -A cur +size $1
+[[ $cur -lt $prev ]] && {
+    print $1 is smaller : $cur vs $prev
+    exit 2
+}
+cjxl $common $best $tmp.pnm $1:r.jxl
diff --git a/img/bin/my-pngcrush b/img/bin/my-pngcrush
new file mode 100755 (executable)
index 0000000..06da466
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh -ex
+
+t=$(TMPDIR=. mktemp)
+pngcrush -rem alla -rem allb -z 2 "$1" $t
+advpng -z -4 $t
+mv $t "$1"
diff --git a/img/bin/my-transcode-jpg b/img/bin/my-transcode-jpg
new file mode 100755 (executable)
index 0000000..bf4863d
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh -e
+
+tmp=`mktemp`
+trap "rm -f $tmp $tmp.jpg" HUP PIPE INT QUIT TERM EXIT
+jpegtran -optimize -progressive -perfect -copy all "$1" > $tmp.jpg
+cjxl $tmp.jpg "${1%.*}.jxl" --distance=0 --effort=9 --brotli_effort=11 --lossless_jpeg=1
+[ -s "${1%.*}.jxl" ]
+touch -r "$1" "${1%.*}.jxl"
index 43c024edceff72cccbc03e433bc8318ac4a38759..8e8588fa6566dbe97c7980bd32643b71c462649b 100644 (file)
@@ -1,4 +1,4 @@
-aliases = { wc = "window close"; };
+aliases = { wc = "window close"; qmsg = "quote privmsg $0 :$1-"; };
 settings = {
   "fe-text" = {
     actlist_sort = "refnum";
@@ -18,7 +18,42 @@ settings = {
     user_name = "stargrave";
     nick = "stargrave";
     timestamp_format = "%H:%M:%S";
+    resolve_prefer_ipv6 = "yes";
   };
 };
 logs = { };
+servers = (
+  {
+    address = "irc.oftc.net";
+    chatnet = "OFTC";
+    port = "6697";
+    use_tls = "yes";
+    tls_verify = "yes";
+    tls_cert = "~/.irssi/certs/stargrave.irc.ed.pem";
+    autoconnect = "yes";
+  },
+  {
+    address = "irc.libera.chat";
+    chatnet = "LiberaChat";
+    port = "6697";
+    use_tls = "yes";
+    tls_verify = "yes";
+    tls_cert = "~/.irssi/certs/stargrave.irc.ed.pem";
+    autoconnect = "yes";
+  },
+);
+chatnets = {
+  OFTC = { type = "IRC"; };
+  LiberaChat = { type = "IRC"; };
+};
 hilights = ( { text = "stargrave"; nick = "yes"; word = "yes"; } );
+keyboard = (
+  { key = "^Y"; id = "command"; data = "SCROLLBACK GOTO -2"; },
+  { key = "^E"; id = "command"; data = "SCROLLBACK GOTO +2"; },
+  { key = "^L"; id = "command"; data = "WINDOW LAST"; }
+);
+channels = (
+  { name = "#redo"; chatnet = "LiberaChat"; autojoin = "yes"; },
+  { name = "#yggdrasil"; chatnet = "LiberaChat"; autojoin = "yes"; },
+  { name = "#nncp"; chatnet = "OFTC"; autojoin = "yes"; },
+);
diff --git a/less/.lesskey b/less/.lesskey
new file mode 100644 (file)
index 0000000..e5277c9
--- /dev/null
@@ -0,0 +1,6 @@
+#command
+^N next-file
+^P prev-file
+c forw-search \^commit\r
+C back-search \^commit\r
+f forw-search \^diff --git\r
diff --git a/less/.zsh/env/005less.zsh b/less/.zsh/env/005less.zsh
new file mode 100644 (file)
index 0000000..5ed3bc7
--- /dev/null
@@ -0,0 +1,12 @@
+export PAGER=less
+export LESSHISTFILE=/tmp/.lesshst
+export -TU LESS lessflags " "
+lessflags=(
+    --use-color
+    --RAW-CONTROL-CHARS
+    --HILITE-UNREAD
+    --no-init
+    --ignore-case
+    --jump-target=2
+    "-Ps?f%f .?m(%i/%m) .%lt-%lb?L/%L. [%bB?B/%B.]?B %pB\%.?x N\:%x.%t"
+)
diff --git a/less/.zsh/rc/010less.zsh b/less/.zsh/rc/010less.zsh
new file mode 100644 (file)
index 0000000..cc0e1f4
--- /dev/null
@@ -0,0 +1,2 @@
+alias -g M="| less"
+alias m="less "
diff --git a/lftp/.lftprc b/lftp/.lftprc
new file mode 100644 (file)
index 0000000..8624342
--- /dev/null
@@ -0,0 +1,5 @@
+set http:decode true
+set http:use-propfind true
+set ssl:ca-file "/etc/ssl/cert.pem"
+set http:proxy "http://localhost:8080/"
+set https:proxy "http://localhost:8080/"
diff --git a/link-for/bin/link-for-blog b/link-for/bin/link-for-blog
new file mode 100755 (executable)
index 0000000..75248d8
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+echo http://blog.stargrave.org/russian/$1
diff --git a/link-for/bin/link-for-github-release b/link-for/bin/link-for-github-release
new file mode 100755 (executable)
index 0000000..bdac02f
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+tmp=`mktemp`
+trap "rm $tmp" HUP PIPE INT QUIT TERM EXIT
+curl https://api.github.com/repos/${1}/${2}/releases > $tmp
+gojq -r ".[] | .assets[] | .browser_download_url" < $tmp
+gojq -r ".[] | .tarball_url" < $tmp
diff --git a/link-for/bin/link-for-rfc b/link-for/bin/link-for-rfc
new file mode 100755 (executable)
index 0000000..36b1c69
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+echo https://datatracker.ietf.org/doc/html/rfc$1
diff --git a/link-for/bin/link-for-youtube b/link-for/bin/link-for-youtube
new file mode 100755 (executable)
index 0000000..df29307
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+echo https://www.youtube.com/watch?v=$1
diff --git a/links/bin/xom b/links/bin/xom
new file mode 100755 (executable)
index 0000000..57d4f5c
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/sh -e
+
+url="$@"
+if [ $# -gt 1 ] ; then
+    sel="$1"
+    shift
+    case "$sel" in
+    gg) url="https://www.google.com/search?q=$@" ;;
+    oid) url="https://oidref.com/$@" ;;
+    pep) url="https://www.python.org/dev/peps/pep-0$@/" ;;
+    py) url="https://pypi.org/project/$@/" ;;
+    rfc) url="https://datatracker.ietf.org/doc/html/rfc$@" ;;
+    s) url="https://html.duckduckgo.com/html?q=$@" ;;
+    we) url="https://en.wikipedia.org/wiki/$@" ;;
+    wr) url="https://ru.wikipedia.org/wiki/$@" ;;
+    esac
+fi
+exec links -g "$url"
index deeba1f4e1fabbc05f71c15b767696033c859e77..9e39ae3e7fbf965347eda05a33daeec7a21fd6f8 100644 (file)
@@ -1 +1 @@
-command alias mr memory read --size 1 --format x --count %1 --
+command alias mr memory read --force --size 1 --format x --count %1 --
index d5ddea078d6e2fd1945790e0d328e995cdca6f91..6fb10f0990157aa0d06a50fe2593607c0ea972a8 100644 (file)
@@ -1,6 +1,6 @@
 KEYMAP:^E:DOWN_TWO
 KEYMAP:^Y:UP_TWO
-INCLUDE:/usr/local/etc/lynx.cfg
+HELPFILE:file://localhost/home/stargrave/local/stow/lynx/share/lynx_help/lynx_help_main.html
 PARTIAL:TRUE
 SHOW_KB_RATE:KB,ETA
 INFOSECS:1
@@ -12,3 +12,5 @@ MAKE_LINKS_FOR_ALL_IMAGES:TRUE
 ASSUME_CHARSET:utf-8
 JUMPFILE:/home/stargrave/.lynx_jumps.html
 INCLUDE:/home/stargrave/.lynx_cookies.cfg
+http_proxy:http://localhost:8080/
+https_proxy:http://localhost:8080/
index 92fe07325cfd45e78ef0bd419c05d383db3f4e59..95d897f1ae9eedc01879a126aad63eeaeabb905e 100644 (file)
@@ -5,9 +5,11 @@
 <body>
 <dl compact>
 <dt>gg<dd><a href="https://www.google.com/search?q=%s">Google</a></dd>
+<dt>oid<dd><a href="https://oidref.com/%s">OID</a></dd>
+<dt>pep<dd><a href="https://www.python.org/dev/peps/pep-0%s/">PEP</a></dd>
 <dt>py<dd><a href="https://pypi.org/project/%s/">PyPI</a></dd>
-<dt>rfc<dd><a href="https://tools.ietf.org/html/rfc%s">RFC</a></dd>
-<dt>s<dd><a href="https://lite.duckduckgo.com/lite/?q=%s">DuckDuckGo</a></dd>
+<dt>rfc<dd><a href="https://datatracker.ietf.org/doc/html/rfc%s">RFC</a></dd>
+<dt>s<dd><a href="https://html.duckduckgo.com/html?q=%s">DuckDuckGo</a></dd>
 <dt>we<dd><a href="https://en.wikipedia.org/wiki/%s">WikiEN</a></dd>
 <dt>wr<dd><a href="https://ru.wikipedia.org/wiki/%s">WikiRU</a></dd>
 </dl>
index 0b40851507ae80f0237c8efaba1ee5f20bfbad1e..7e4cdc5b6a9cf394d4e2f92f2a7f4083480b934d 100644 (file)
@@ -1,6 +1,22 @@
-text/html; /usr/local/bin/lynx -noreferer -partial -assume_charset=%{charset} -dump %s; copiousoutput; nametemplate=%s.html
-application/pdf; /home/stargrave/bin/zat '%s'; test=test -n "$DISPLAY"
-image/gif; /usr/local/bin/sxiv '%s'; test=test -n "$DISPLAY"
-image/jpeg; /usr/local/bin/sxiv '%s'; test=test -n "$DISPLAY"
-image/png; /usr/local/bin/sxiv '%s'; test=test -n "$DISPLAY"
-image/webp; /usr/local/bin/sxiv '%s'; test=test -n "$DISPLAY"
+application/epub+zip; zat '%s'; test=test -n "$DISPLAY"
+application/pdf; zat '%s'; test=test -n "$DISPLAY"
+application/vnd.gnupg.wks; gpg-wks-client -v --read --send; needsterminal; description=WKS message
+application/x-perl; pod2text --color '%s' | less; needsterminal
+image/gif; sxiv '%s'; test=test -n "$DISPLAY"
+image/jpeg; sxiv '%s'; test=test -n "$DISPLAY"
+image/jxl; sxiv '%s'; test=test -n "$DISPLAY"
+image/png; sxiv '%s'; test=test -n "$DISPLAY"
+image/tiff; sxiv '%s'; test=test -n "$DISPLAY"
+image/webp; sxiv '%s'; test=test -n "$DISPLAY"
+image/x-djvu; zat '%s'; test=test -n "$DISPLAY"
+image/x-portable-anymap; sxiv '%s'; test=test -n "$DISPLAY"
+image/x-portable-arbitrarymap; sxiv '%s'; test=test -n "$DISPLAY"
+image/x-portable-bitmap; sxiv '%s'; test=test -n "$DISPLAY"
+image/x-portable-floatmap; sxiv '%s'; test=test -n "$DISPLAY"
+image/x-portable-graymap; sxiv '%s'; test=test -n "$DISPLAY"
+image/x-portable-pixmap; sxiv '%s'; test=test -n "$DISPLAY"
+image/x-xpixmap; sxiv '%s'; test=test -n "$DISPLAY"
+text/html; lynx -noreferer -partial -assume_charset=%{charset} -dump %s; copiousoutput; nametemplate=%s.html
+text/info; info '%s'; needsterminal
+text/plain; less '%s'; needsterminal
+text/x-man; man '%s'; needsterminal
diff --git a/lynx/.zsh/env/005lynx.zsh b/lynx/.zsh/env/005lynx.zsh
new file mode 100644 (file)
index 0000000..fd8e522
--- /dev/null
@@ -0,0 +1,3 @@
+export WWW_HOME=file:///home/stargrave/.lynx_bookmarks.html
+export SSL_CERT_FILE=/usr/local/openssl/cert.pem
+export LYNX_CFG=~/.lynx.cfg
diff --git a/mkv/bin/my-mkvmerge b/mkv/bin/my-mkvmerge
new file mode 100755 (executable)
index 0000000..5bf907f
--- /dev/null
@@ -0,0 +1,18 @@
+#!/usr/bin/env zsh
+
+setopt ERR_EXIT
+zparseopts -D -A info url: descr: out:
+tags=`mktemp`
+trap "rm -f $tags" HUP PIPE INT QUIT TERM EXIT
+[[ -z ${info[-url]} ]] || {
+    urlTag="<Tag><Simple><Name>URL</Name><String>${info[-url]}</String></Simple></Tag>"
+    tagsopt=(--global-tags $tags)
+}
+[[ -z ${info[-descr]} ]] || {
+    txt=`xml esc < ${info[-descr]}`
+    descrTag="<Tag><Simple><Name>DESCRIPTION</Name><String>$txt</String></Simple></Tag>"
+    tagsopt=(--global-tags $tags)
+}
+printf "<Tags>\n%s\n%s\n</Tags>" $urlTag $descrTag > $tags
+mkvmerge --no-date --disable-track-statistics-tags $tagsopt --output ${info[-out]} $@
+mkvpropedit --set muxing-application=- --set writing-application=- ${info[-out]}
index 22bdc9506ab6624dfc9720ae09ec8c53ea0931c5..0b8c924dfd6392e1d1472b6328f8d17d176ceb25 100644 (file)
@@ -1,29 +1,30 @@
 vo=gpu
-profile=gpu-hq
-hwdec=vaapi
-hwdec-codecs=h264,hevc,vp8,mpeg2video,vc1
-scale=ewa_lanczossharp
-cscale=ewa_lanczossharp
 cache=yes
 cache-secs=60
 display-tags=*
-#osd-fractions
-ytdl=no
 gapless-audio=yes
 autosync=30
-oss-mixer-device=/dev/mixer
-oss-mixer-channel=vol
+cache-on-disk=no
+gpu-shader-cache=no
+audio-channels=2
+hwdec=vaapi
+hwdec-codecs=h264,hevc,vp8,vp9,mpeg2video,vc1
 
 [AO]
-audio-device=oss//dev/dsp3
+audio-device=oss//dev/vdsp
+audio-delay=-0.04
 
-[AM]
-audio-device=oss//dev/dsp2
-oss-mixer-device=/dev/mixer2
-oss-mixer-channel=pcm
+[X1]
+vo=x11
 
 [VN]
 af=lavfi=loudnorm
 
 [NV]
 video=no
+
+[E3]
+audio-device=oss//dev/dsp3
+
+[E4]
+audio-device=oss//dev/dsp4
index c00863acc6791f3a2c059283b8df18647adc6a11..4e1358fd7d898c89df99214ebea2ef5c3e20c456 100644 (file)
@@ -1,8 +1,10 @@
 PGUP seek 600
 PGDWN seek -600
-Shift+PGUP add chapter 1
-Shift+PGDWN add chapter -1
+HOME add chapter 1
+END add chapter -1
 ENTER playlist-next force
 BS set speed 1.0
-VOLUME_UP run "mixer" "-f" "${oss-mixer-device}" "${oss-mixer-channel}" "+2"
-VOLUME_DOWN run "mixer" "-f" "${oss-mixer-device}" "${oss-mixer-channel}" "-2"
+#VOLUME_UP run "mixer" "-f" "${oss-mixer-device}" "${oss-mixer-channel}" "+2"
+#VOLUME_DOWN run "mixer" "-f" "${oss-mixer-device}" "${oss-mixer-channel}" "-2"
+VOLUME_UP add volume +2
+VOLUME_DOWN add volume -2
diff --git a/mpv/bin/4k2mpeg2 b/mpv/bin/4k2mpeg2
new file mode 100755 (executable)
index 0000000..88b83ae
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+ffmpeg -i "$1" -vf scale=iw/4:ih/4 -sws_flags spline+accurate_rnd+full_chroma_int -c:v mpeg2video -b:v 10000k -y "$1".mpg
diff --git a/mpv/bin/mp b/mpv/bin/mp
new file mode 100755 (executable)
index 0000000..ed9ace0
--- /dev/null
@@ -0,0 +1,9 @@
+#!/usr/bin/env zsh
+
+args=()
+for arg ($@) {
+    [[ $arg =~ "^[A-Z][A-Z0-9]$" ]] && arg="--profile=$arg"
+    args=($args $arg)
+}
+export vblank_mode=1
+exec mpv $args
index 5a7d4537706cee60bcaa3b9475d2124111904d5d..83e67b6b155eaf6f1cdf432388af093643c104b1 100644 (file)
@@ -1,6 +1,22 @@
-image/webp webp
-image/png png
-application/pdf pdf
-image/jpeg jpg
-image/jpeg jpeg
+application/epub+zip epub
 application/gzip gz
+application/metalink4+xml meta4
+application/pdf pdf
+application/x-perl pod
+application/zstd zst
+image/gif gif
+image/jpeg jpeg jpg
+image/jxl jxl
+image/png png
+image/webp webp
+image/x-djvu djvu
+image/x-portable-anymap pnm
+image/x-portable-arbitrarymap pam
+image/x-portable-bitmap pbm
+image/x-portable-floatmap pfm
+image/x-portable-graymap pgm
+image/x-portable-pixmap ppm
+image/x-xpixmap xpm
+text/info info
+text/plain txt
+text/x-man man
diff --git a/mutt/.mutt/color b/mutt/.mutt/color
deleted file mode 100644 (file)
index 7467ac1..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-color hdrdefault blue default
-color quoted blue default
-color signature red default
-color attachment red default
-color prompt brightmagenta default
-color message brightred default
-color error brightred default
-color indicator brightyellow red
-color status brightgreen blue
-color tree default default
-color normal default default
-color markers red default
-color search white black
-color tilde brightmagenta default
-color index blue default ~F
-#color index red default "~N|~O"
-
-color header brightmagenta default "subject:"
-color header brightred default "to:"
-color header brightred default "cc:"
-color header brightred default "list-id:"
-color header brightred default "list-archive:"
-
-color header brightyellow default "date:"
-color header brightyellow default "received:"
-
-color header brightgreen default "from:"
-color header brightgreen default "reply-to:"
-color header brightgreen default "mail-reply-to:"
-color header brightgreen default "mail-followup-to:"
-color header brightgreen default "organization:"
-color header brightgreen default "user-agent:"
-
-color body brightgreen default "(http|https|ftp|news|telnet|finger|gopher)://[^ \"\t\r\n]*"
-color body brightgreen default "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
diff --git a/mutt/.mutt/colour.rc b/mutt/.mutt/colour.rc
new file mode 100644 (file)
index 0000000..d79fa22
--- /dev/null
@@ -0,0 +1,33 @@
+color hdrdefault blue default
+color quoted brightblue default
+color signature red default
+color attachment red default
+color prompt brightmagenta default
+color message brightcyan default
+color error brightred default
+color indicator brightyellow red
+color status brightgreen blue
+color tree magenta default
+color markers red default
+color tilde brightmagenta default
+color index blue default ~F
+#color index red default "~N|~O"
+
+color header brightmagenta default subject:
+color header brightred default to:
+color header brightred default cc:
+color header brightred default list-id:
+color header brightred default list-archive:
+
+color header brightyellow default date:
+color header brightyellow default received:
+
+color header brightgreen default from:
+color header brightgreen default reply-to:
+color header brightgreen default mail-reply-to:
+color header brightgreen default mail-followup-to:
+color header brightgreen default organization:
+color header brightgreen default user-agent:
+
+color body brightgreen default "(finger|ftp|gemini|gopher|http|https|irc|ircs|news|telnet)://[^ \"\t\r\n]*"
+color body brightgreen default "[-a-z_0-9.]+@[-a-z_0-9.]+"
index 889a4fc0e0dc73b3796b35e57a0ca841f1d73413..e22e9160a1e8713ecb9cb30ffec20bb6a2485c50 100644 (file)
@@ -1,16 +1,16 @@
-set folder = "~/mail"
+set folder = ~/mail
 set mbox_type = maildir
 # set mbox_type = mbox
 set spoolfile = =mbox
-set record = =sent-`date "+%y-%m"`
+set record = =back-`date "+%y-%m"`
 set postponed = =postponed
 set certificate_file = ~/.mutt/certificates
 set net_inc = 1
 set edit_headers = yes
-set charset = "utf-8"
+set charset = utf-8
 set pager_stop = yes
-set sort = "threads"
-set sort_aux = "last-date-received"
+set sort = threads
+set sort_aux = last-date-received
 set pager_index_lines = 6
 set timeout = 60
 set rfc2047_parameters
@@ -19,22 +19,33 @@ set fcc_clear = yes
 set ssl_force_tls = no
 set user_agent = yes
 set signature = ~/.signature
-set hostname = "stargrave.org"
+set hostname = stargrave.org
 set realname = "Sergey Matveev"
-set query_command="mu cfind --format=mutt-ab '%s'"
+set query_command = "mu cfind --format=mutt-ab '%s'"
 set forward_format = "Fwd: %s"
-set indent_string = ">"
-set attribution = "*** %n [%{%Y-%m-%d %H:%M}]:"
-set index_format = "%4C %Z[%1H] %{%m-%d} [%N] %-15.15L (%?l?%4l&%4c?)%?M?[#%02M]?%?Y?[%Y]? %s"
+set date_format = "%Y-%m-%d %H:%M"
+set index_format = "%4C %Z[%1H] %D [%N] %-15.15L (%?l?%4l&%4c?)%?M?[#%02M]?%?Y?[%Y]? %s"
 set pipe_decode = yes
+set print_command = "cat > /tmp/mail-printed"
+set attribution = "*** %n [%{%Y-%m-%d %H:%M}]:"
+set forward_attribution_intro = "----- BEGIN %i -----"
+set forward_attribution_trailer = "----- END %i -----"
+set mail_check_stats
+set folder_format="%3C %t %N [%3n|%3m] %D %f"
+
 set crypt_protected_headers_write = yes
-set print_command="cat > /tmp/mail-printed"
+set crypt_opportunistic_encrypt = yes
+set crypt_autosign = yes
 
-macro index <F1> "<next-unread-mailbox><enter>" "Go to new mail"
+source ~/.mutt/useragent.rc
+
+macro index,pager,browser <F1> "<next-unread-mailbox><enter>"
 macro index <F5> ":set mbox_type = mbox\n" "mbox mailbox type"
+macro index S "<save-message>=spamdb<enter>"
 
-macro index <F8> "<shell-escape>mu find --clearlinks --format=links --linksdir=~/mail/search " "mu find"
-macro index <F9> "<change-folder-readonly>~/mail/search<enter>" "mu find results"
+macro index <F6> "<shell-escape>mu find --clearlinks --format=links --linksdir=/home/stargrave/mail/search " "mu find"
+macro index <F7> "<change-folder-readonly>~/mail/search<enter>" "mu find results"
+macro index <F8> "<change-folder-readonly>~/mail/search-sent<enter>" "mu find sent results"
 
 macro pager \cu |urlview\n
 
@@ -49,23 +60,41 @@ macro pager \cy <previous-line>
 alternative_order text/plain text/enriched text/html
 auto_view text/html
 unignore \
-    Mail-Followup-To \
     List-Id \
-    Reply-To \
+    Mail-Followup-To \
     Mail-Reply-To \
-    Organization \
+    Message-Id \
     OpenPGP \
+    Organization \
+    Reply-To \
     Return-Path \
-    X-Mailer \
     User-Agent \
-    Message-Id
+    X-Bogosity \
+    X-Label \
+    X-Mailer \
+    X-Original-To
 
 fcc-hook .* $record
 folder-hook . "set sort = threads; push <collapse-all>"
-folder-hook =rss "set sort = date"
 
-source ~/.mutt/mailboxes
+source ~/.mutt/mailboxes.rc
+
+folder-hook =blog-comment "set sort = date"
+folder-hook =monitoring "set sort = date"
+
+set my_month_prev = `date -j -v -1m "+%y-%m"`
+set my_month_curr = `date "+%y-%m"`
+
+mailboxes \
+    =stcnet-$my_month_prev \
+    =stcnet-$my_month_curr \
+    =back-$my_month_prev \
+    =back-$my_month_curr
+
+folder-hook =search-sent "set sort = date-sent"
+
 source ~/.mutt/accounts/rc
+source ~/.mutt/hooks.rc
 
 # set mime_forward = yes
 # set mime_forward_rest = yes
diff --git a/mutt/.mutt/useragent.rc b/mutt/.mutt/useragent.rc
new file mode 100644 (file)
index 0000000..9738e82
--- /dev/null
@@ -0,0 +1,6 @@
+set my_mutt_version=`mutt -v | sed -n 's/^Mutt \(.*\) (.*$/\1/p'`
+set my_gpg_version=`gpg --version | sed -n 's/^gpg (.*) \(.*\)$/\1/p'`
+set my_vim_version=`vim --version | sed -n 's/^VIM . Vi IMproved \([^ ]*\).*$/\1/p'`
+set my_arch=`uname -m`
+set my_fbsd_version=`uname -r`
+my_hdr User-Agent: Mutt/$my_mutt_version GnuPG/$my_gpg_version Vim/$my_vim_version FreeBSD/$my_fbsd_version ($my_arch)
index 04e813eca8b3dd075caefb7ecb79fed99f42ff4a..1b5292d6ac4d6b14b3b187f82cf3c312c88d3e21 100644 (file)
@@ -1,5 +1,4 @@
-set hostname = "stargrave.org"
 source ~/.mutt/muttrc
-source ~/.mutt/color
-source ~/.mutt/lists
+source ~/.mutt/colour.rc
+source ~/.mutt/lists.rc
 source ~/.mutt/gpg.rc
index 1fdbb4342657c3bef9ba062ff49281beaf347119..89dde6b89a7c09ceb1f53cbae61cdc249c9cff43 100644 (file)
@@ -1,2 +1,2 @@
 Sergey Matveev (http://www.stargrave.org/)
-OpenPGP: CF60 E89A 5923 1E76 E263  6422 AE1A 8109 E498 57EF
+OpenPGP: 12AD 3268 9C66 0D42 6967  FD75 CB82 0563 2107 AD8A
diff --git a/mutt/.zsh/rc/010mail.zsh b/mutt/.zsh/rc/010mail.zsh
new file mode 100644 (file)
index 0000000..b68d234
--- /dev/null
@@ -0,0 +1,6 @@
+mailpath=(
+    ~/mail/mbox/new"?Neue Nachrichten in =mbox"
+    ~/mail/arbeit/new"?Neue Nachrichten in =arbeit"
+)
+export MUHOME=~/.mu
+bindkey -s "\eOP" " inc\n" # F1
similarity index 100%
rename from bin/bin/cfind
rename to mutt/bin/cfind
similarity index 100%
rename from bin/bin/inc
rename to mutt/bin/inc
similarity index 100%
rename from bin/bin/mfind
rename to mutt/bin/mfind
diff --git a/mutt/bin/sent b/mutt/bin/sent
new file mode 100755 (executable)
index 0000000..2858c4a
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh -e
+
+mutt -f =back-`date "+%y-%m"`
diff --git a/newsboat/.newsboat/config b/newsboat/.newsboat/config
deleted file mode 100644 (file)
index d352c4d..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-history-limit 0
-text-width 80
-bind-key ^Y up
-bind-key ^E down
-notify-beep yes
-cleanup-on-quit yes
-
-max-items 100
-
-auto-reload yes
-reload-time 120
-reload-threads 10
-suppress-first-reload yes
-
-feed-sort-order lastupdated
-browser "~/bin/www %u &"
diff --git a/nnn/.zsh/aliases/mc b/nnn/.zsh/aliases/mc
new file mode 100644 (file)
index 0000000..3b1da90
--- /dev/null
@@ -0,0 +1 @@
+alias mc="nnn"
diff --git a/nnn/.zsh/env/005nnn.zsh b/nnn/.zsh/env/005nnn.zsh
new file mode 100644 (file)
index 0000000..a03ca54
--- /dev/null
@@ -0,0 +1,4 @@
+export NNN_OPTS=dHRU
+export NNN_OPENER=zsh-mime-open
+export NNN_PLUG='s:!sxiv -t .*;a:!tar tf "$nnn" | less*;d:!godu'
+export NNN_ARCHIVE="\\.(bz2|gz|iso|tar|tgz|txz|xz|zip|zst)$"
diff --git a/nnn/bin/_nnn-cd b/nnn/bin/_nnn-cd
new file mode 100755 (executable)
index 0000000..5ee8075
--- /dev/null
@@ -0,0 +1,7 @@
+#!/usr/bin/env zsh
+
+setopt ERR_EXIT
+[[ -n "$NNN_PIPE" ]]
+autoload ~/.zsh/functions/cf
+cf $1
+print -n -- "0c$PWD" > "$NNN_PIPE"
diff --git a/nnn/bin/_nnn-cp b/nnn/bin/_nnn-cp
new file mode 100755 (executable)
index 0000000..86f424c
--- /dev/null
@@ -0,0 +1,13 @@
+#!/usr/bin/env zsh
+
+setopt ERR_EXIT
+sel=${NNN_SEL:-${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.selection}
+[[ -s $sel ]]
+tgts=$(xargs -0 -L1 < $sel)
+tgts=(${(f)tgts})
+size=$(du -A -c $tgts)
+size=(${=size})
+size=${size[$#size - 1]}
+for tgt ($tgts) { pushd $tgt:h ; tar cf - $tgt:t ; popd } |
+pv --wait --interval 0.5 --size ${size}k |
+tar xf - --options read_concatenated_archives
diff --git a/parallel/.parallel/config b/parallel/.parallel/config
new file mode 100644 (file)
index 0000000..4b08796
--- /dev/null
@@ -0,0 +1 @@
+--bar
diff --git a/parallel/.parallel/will-cite b/parallel/.parallel/will-cite
deleted file mode 100644 (file)
index e69de29..0000000
index 0328df438958f7d06444bc40c440372de90f1fc6..aaaedb9882b42626c3241e0f2a10600f74487754 100644 (file)
@@ -1,5 +1,5 @@
 import os
 
-alias hare os.system('kill %d' % os.getpid())
-alias hare9 os.system('kill -9 %d' % os.getpid())
-alias pp1 import pyderasn ;; print(pyderasn.pprint(%1, oid_maps=(locals().get('OID_STR_TO_NAME', {}),)))
+alias hare os.system("kill %d" % os.getpid())
+alias hare9 os.system("kill -9 %d" % os.getpid())
+alias pp1 import pyderasn ;; print(pyderasn.pprint(%1, oid_maps=(locals().get("OID_STR_TO_NAME", {}),)))
index 1c668a14e2a309ce5387902e9a6cfb9596b39961..5298b3b2ecaf07e32dfe6c511a3f245c7fb74056 100644 (file)
@@ -2,4 +2,4 @@
 disable-pip-version-check = yes
 no-binary = :all:
 cache-dir = /tmp/pip-cache
-index-url = http://localhost:8080/simple/
+index-url = http://localhost:8081/simple/
index 7d95ac63d6227f4ed3e7bc3bb2e91cd4010de225..5486a1357ae7e83f944174fa8ea03f89a984464d 100644 (file)
@@ -6,6 +6,8 @@
 set editing-mode vi
 set show-mode-in-prompt on
 
+set expand-tilde on
+
 set colored-stats on
 set colored-completion-prefix on
 set visible-stats on
diff --git a/recoll/.zsh/env/005recoll.zsh b/recoll/.zsh/env/005recoll.zsh
new file mode 100644 (file)
index 0000000..11c8af1
--- /dev/null
@@ -0,0 +1 @@
+export RECOLL_DATADIR=~/local/stow/recoll/share/recoll
diff --git a/recoll/bin/my-pdftotext b/recoll/bin/my-pdftotext
new file mode 100755 (executable)
index 0000000..1775278
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+tmp=`mktemp`
+trap "rm -f $tmp" HUP PIPE INT QUIT TERM EXIT
+pages=`mutool info "$1" | sed -n 's/Pages: //p'`
+for page in `seq $pages` ; do
+    mutool convert -F text -o $tmp "$1" $page 2>/dev/null
+    cat $tmp
+    printf '\14\n' # ^L
+done
diff --git a/recoll/bin/my-pdftotext-fast b/recoll/bin/my-pdftotext-fast
new file mode 100755 (executable)
index 0000000..1857c2c
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+tmp=`mktemp`
+trap "rm -f $tmp" HUP PIPE INT QUIT TERM EXIT
+mutool convert -F text -o $tmp "$1" 2>/dev/null
+cat $tmp
diff --git a/recoll/bin/rcl b/recoll/bin/rcl
new file mode 100755 (executable)
index 0000000..00440ad
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+[ "$1" = "no" ] && shift || args="-A -p 2"
+
+cd ~/recoll
+args="$args -c main"
+while : ; do
+    [ -d "$1" ] || break
+    args="$args -i $1/xapiandb"
+    shift
+done
+
+recollq $args "$@" 2>/dev/null | perl -ne '
+    if (/^(ABSTRACT|SNIPPETS)/../^\/(ABSTRACT|SNIPPETS)/) {
+        print "\t$_" unless /^.?(ABSTRACT|SNIPPETS)/;
+        next;
+    };
+    next unless /^(.*)\t\[file:\/\/(.*)\]\t\[.*\]\t\d+\t.*\t.*$/;
+    print "$2\t$1\n";
+' | spc -e grn,"(^/.*)" | less
diff --git a/recoll/recoll/main/mimeconf b/recoll/recoll/main/mimeconf
new file mode 100644 (file)
index 0000000..15f2657
--- /dev/null
@@ -0,0 +1,3 @@
+[index]
+
+application/pdf = exec my-pdftotext; mimetype = text/plain ; charset=utf-8
diff --git a/recoll/recoll/man/mimemap b/recoll/recoll/man/mimemap
new file mode 100644 (file)
index 0000000..f93156f
--- /dev/null
@@ -0,0 +1,29 @@
+.0p = text/x-man
+.1 = text/x-man
+.1m = text/x-man
+.1p = text/x-man
+.1ssl = text/x-man
+.1x = text/x-man
+.2 = text/x-man
+.3 = text/x-man
+.3curses = text/x-man
+.3form = text/x-man
+.3gl = text/x-man
+.3menu = text/x-man
+.3ncurses = text/x-man
+.3p = text/x-man
+.3pm = text/x-man
+.3ssl = text/x-man
+.3tiff = text/x-man
+.3x = text/x-man
+.4 = text/x-man
+.4x = text/x-man
+.5 = text/x-man
+.5ssl = text/x-man
+.6 = text/x-man
+.6x = text/x-man
+.7 = text/x-man
+.7ssl = text/x-man
+.8 = text/x-man
+.9 = text/x-man
+.n = text/x-man
diff --git a/recoll/recoll/man/recoll.conf b/recoll/recoll/man/recoll.conf
new file mode 100644 (file)
index 0000000..25213e8
--- /dev/null
@@ -0,0 +1,13 @@
+idxflushmb = 512
+followLinks = 1
+topdirs = \
+       /usr/local/lib/perl5/5.32/perl/man \
+       /usr/local/lib/perl5/site_perl/man \
+       /usr/share/openssl/man \
+       /usr/local/share/man \
+       /usr/local/man \
+       /usr/share/man \
+       /usr/local/share/info \
+       /usr/local/info \
+       ~/local/share/man \
+       ~/local/share/info
diff --git a/recoll/recoll/rfc/mimeconf b/recoll/recoll/rfc/mimeconf
new file mode 100644 (file)
index 0000000..15f2657
--- /dev/null
@@ -0,0 +1,3 @@
+[index]
+
+application/pdf = exec my-pdftotext; mimetype = text/plain ; charset=utf-8
diff --git a/recoll/recoll/rfc/recoll.conf b/recoll/recoll/rfc/recoll.conf
new file mode 100644 (file)
index 0000000..7547ff1
--- /dev/null
@@ -0,0 +1,3 @@
+idxflushmb = 512
+topdirs = ~/doc/rfc
+skippedNames = *.p7s *.xml *.html
diff --git a/ssh/.ssh-config b/ssh/.ssh-config
new file mode 100644 (file)
index 0000000..90c7b69
--- /dev/null
@@ -0,0 +1,14 @@
+Protocol 2
+IdentitiesOnly yes
+Compression no
+UpdateHostKeys ask
+VerifyHostKeyDNS ask
+
+Host *
+    HostKeyAlgorithms ssh-ed25519-cert-v01@openssh.com,ssh-ed25519
+    KexAlgorithms sntrup761x25519-sha512@openssh.com,curve25519-sha256@libssh.org,curve25519-sha256
+    Ciphers chacha20-poly1305@openssh.com,aes256-ctr,aes128-ctr
+    MACs umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
+    ControlMaster auto
+    ControlPath ~/.ssh/sockets/%r@%h-%p
+    ControlPersist 60
diff --git a/ssh/.zsh/functions/ssht b/ssh/.zsh/functions/ssht
new file mode 100644 (file)
index 0000000..f747749
--- /dev/null
@@ -0,0 +1,2 @@
+local t="-t 0"
+ssh -C -t $1 "export LANG=en_US.UTF-8 ; tmux has-session $t && tmux attach-session $t || tmux new-session $t"
diff --git a/ssh/.zsh/rc/010ssh.zsh b/ssh/.zsh/rc/010ssh.zsh
new file mode 100644 (file)
index 0000000..72f7316
--- /dev/null
@@ -0,0 +1 @@
+alias sshnm="ssh -S none"
diff --git a/ssh/bin/my-ssh-new-key b/ssh/bin/my-ssh-new-key
new file mode 100755 (executable)
index 0000000..a9107fb
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh -e
+
+exec ssh-keygen -Z chacha20-poly1305@openssh.com -t ed25519 -C $1 -f ~/.ssh/sign/$1
index a3b7c072404a60a3cc224bddef7108d4a4c24868..f73cf92e5b609739ed109760f32d993c7bb1bb5b 100644 (file)
@@ -5,6 +5,9 @@ set-option -g escape-time 1
 set-option -g repeat-time 0
 set-option -g history-limit 20000
 set-option -g renumber-windows on
+set-option -g terminal-features[0] "screen*:256:ccolour:clipboard:cstyle:title"
+set-option -gU terminal-features[1]
+set-option -g pane-border-indicators both
 
 set-option -g prefix C-a
 unbind-key C-b
@@ -34,38 +37,7 @@ set-window-option -g window-status-last-style "bg=cyan"
 bind-key b set-option status
 unbind-key L
 
-bind-key t display-menu \
-    music t "display-popup -KE -w 100% -R ~/bin/tmux-menu-music.sh" \
-    pass p "display-popup -KE -R ~/bin/tmux-menu-pass-session.sh" \
-    dict d "display-popup -KE -h 100% -R ~/bin/tmux-menu-dict.sh" \
-    calc c "display-popup -KE -R ~/bin/tmux-menu-calc.sh" \
-    cal l "display-popup -R \"cal -3N\"" \
-    top o "display-popup -KE -h 100% -R \"top -s 1\""
-
-bind-key u {
-    capture-pane -J
-    save-buffer /tmp/tmux-buffer
-    delete-buffer
-    display-popup -KE -w 100% -R "urlview /tmp/tmux-buffer"
-}
-
-bind-key y {
-    capture-pane -J
-    save-buffer /tmp/tmux-buffer
-    delete-buffer
-    split-window 'vim -c "set listchars=" -c "match ExtraWhitespace //" /tmp/tmux-buffer'
-}
-
-bind-key o display-menu \
-    find o "display-popup -KE -w 100% -R \"~/bin/tmux-fzf.zsh find '#{pane_current_path}'\"" \
-    buf-files f "display-popup -KE -w 100% -R \"~/bin/tmux-fzf.zsh buf-files '#{pane_current_path}'\"" \
-    git-files g "display-popup -KE -w 100% -R \"~/bin/tmux-fzf.zsh git-files '#{pane_current_path}'\"" \
-    git-branches b "display-popup -KE -w 100% -R \"~/bin/tmux-fzf.zsh git-branches '#{pane_current_path}'\"" \
-    git-commits c "display-popup -KE -w 100% -R \"~/bin/tmux-fzf.zsh git-commits '#{pane_current_path}'\""
-
-bind-key Y {
-    capture-pane -J -S - -E -
-    save-buffer /tmp/tmux-buffer
-    delete-buffer
-    split-window 'vim -c "set listchars=" -c "match ExtraWhitespace //" /tmp/tmux-buffer'
-}
+source-file ~/.tmux/rc/urlview
+source-file ~/.tmux/rc/capture
+source-file ~/.tmux/rc/menu-various
+source-file ~/.tmux/rc/menu-fzf
diff --git a/tmux/.tmux/bin/common.sh b/tmux/.tmux/bin/common.sh
new file mode 100644 (file)
index 0000000..49936a8
--- /dev/null
@@ -0,0 +1,9 @@
+paste()
+{
+    local pane="$1"
+    local cmd="$2"
+    tmux set-buffer "$cmd"
+    tmux paste-buffer -t "$pane"
+    tmux delete-buffer
+    tmux send-keys -t "$pane" Enter
+}
diff --git a/tmux/.tmux/bin/fzf.zsh b/tmux/.tmux/bin/fzf.zsh
new file mode 100755 (executable)
index 0000000..06c91d5
--- /dev/null
@@ -0,0 +1,13 @@
+#!/usr/bin/env zsh
+
+cd $2
+setopt ERR_EXIT
+fpath=(~/.tmux/functions.zsh $fpath)
+autoload tmux-fzf-$1
+tmp=`mktemp`
+trap "rm -f $tmp" HUP PIPE INT QUIT TERM EXIT
+tmux-fzf-$1 > $tmp || { echo unknown command ; sleep 1 ; exit }
+[[ -s $tmp ]] || exit
+tmux set-buffer "`perl -npe 's/\n/ /g' $tmp`"
+tmux paste-buffer
+tmux delete-buffer
similarity index 53%
rename from bin/bin/tmux-menu-dict.sh
rename to tmux/.tmux/bin/menu-dict.sh
index 1009d3846a7994d85538f5fa7f9bac382f01f1f4..08922899e73580ce8152929152c832197b13bf02 100755 (executable)
@@ -1,5 +1,4 @@
 #!/bin/sh
 
-echo -n "> "
-read word
+word=$(rlwrap -S "> " head -1)
 sdcv "$word" | exec less
similarity index 71%
rename from bin/bin/tmux-menu-music.sh
rename to tmux/.tmux/bin/menu-music.sh
index a418f64f5fa00eb8ac4dd0541a30d2925e1f7d25..640901b011996cc8ab793a2da1a1393bbe321cfe 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 tmux has-session -t music || {
-    tmux new-session -d -s music -c ~/tmp/music
+    tmux new-session -d -s music -c ~/music
     tmux set-option -t music status off
 }
 exec tmux attach-session -t music
similarity index 84%
rename from bin/bin/tmux-menu-pass-session.sh
rename to tmux/.tmux/bin/menu-pass-session.sh
index a67cba98bddd60e9791ae8cf137a15c29b333bf9..8cc6e5e91b79c7928b203c80fdc1328c36686eb6 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/sh
 
 while tmux has-session -t pass ; do echo waiting... ; sleep 1 ; done
-tmux new-session -d -s pass rlwrap --history-filename /dev/null ~/bin/tmux-menu-pass.sh
+tmux new-session -d -s pass rlwrap --history-filename /dev/null --no-warnings ~/.tmux/bin/menu-pass.sh
 tmux set-option -t pass status off
 exec tmux attach-session -t pass
diff --git a/tmux/.tmux/bin/menu-pass.sh b/tmux/.tmux/bin/menu-pass.sh
new file mode 100755 (executable)
index 0000000..c74cac4
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+while :; do
+    echo -n "> "
+    read pass
+    passman "$pass" && break
+done
diff --git a/tmux/.tmux/functions.zsh/tmux-fzf-find b/tmux/.tmux/functions.zsh/tmux-fzf-find
new file mode 100644 (file)
index 0000000..54b8fac
--- /dev/null
@@ -0,0 +1,6 @@
+bfs -L . -mindepth 1 \
+    -path "*/.git" -prune -o \
+    -path "*/.redo" -prune -o \
+    \( -type f -o -type d -o -type l \) -print |
+cut -c3- | fzf -m --preview="less -N -S {}" |
+while read fn ; do print -r ${(q)fn} ; done
diff --git a/tmux/.tmux/functions.zsh/tmux-fzf-git-branches b/tmux/.tmux/functions.zsh/tmux-fzf-git-branches
new file mode 100644 (file)
index 0000000..91aa633
--- /dev/null
@@ -0,0 +1,2 @@
+{ git branch ; git branch --remote } | sed "s/ //g" |
+fzf --preview "git log --oneline --graph --decorate=short --color=always {}"
diff --git a/tmux/.tmux/functions.zsh/tmux-fzf-git-commits b/tmux/.tmux/functions.zsh/tmux-fzf-git-commits
new file mode 100644 (file)
index 0000000..47198cf
--- /dev/null
@@ -0,0 +1,2 @@
+git --no-pager log --oneline -n 100 | perl -ne 'print "@~$n $_"; $n++' |
+fzf --reverse | cut -w -f1
diff --git a/tmux/.tmux/functions.zsh/tmux-fzf-git-files b/tmux/.tmux/functions.zsh/tmux-fzf-git-files
new file mode 100644 (file)
index 0000000..ad29eb0
--- /dev/null
@@ -0,0 +1,4 @@
+git status --short |
+fzf -m --delimiter " " --preview "git diff --color=always {-1}" |
+perl -npe 's/^\s*\S+\s+//' |
+while read fn ; do print -r ${(q)fn} ; done
diff --git a/tmux/.tmux/functions.zsh/tmux-fzf-procs b/tmux/.tmux/functions.zsh/tmux-fzf-procs
new file mode 100644 (file)
index 0000000..8a77bdf
--- /dev/null
@@ -0,0 +1,4 @@
+pgrep -l -f . |
+fzf -m --no-sort --keep-right --delimiter " " \
+    --preview="procstat -c {1} ; procstat -s {1} ; procstat -r {1} ; procstat -f {1}" |
+perl -lane 'print $F[0]'
diff --git a/tmux/.tmux/rc/capture b/tmux/.tmux/rc/capture
new file mode 100644 (file)
index 0000000..74e24a8
--- /dev/null
@@ -0,0 +1,13 @@
+bind-key y {
+    capture-pane -J
+    save-buffer /tmp/tmux-buffer
+    delete-buffer
+    split-window 'vim -c "set listchars=" -c "match ExtraWhitespace //" /tmp/tmux-buffer'
+}
+
+bind-key Y {
+    capture-pane -J -S - -E -
+    save-buffer /tmp/tmux-buffer
+    delete-buffer
+    split-window 'vim -c "set listchars=" -c "match ExtraWhitespace //" /tmp/tmux-buffer'
+}
diff --git a/tmux/.tmux/rc/menu-fzf b/tmux/.tmux/rc/menu-fzf
new file mode 100644 (file)
index 0000000..4355fb8
--- /dev/null
@@ -0,0 +1,6 @@
+bind-key o display-menu \
+    find o "display-popup -E -w 100% \"~/.tmux/bin/fzf.zsh find '#{pane_current_path}'\"" \
+    procs p "display-popup -E -w 100% -h 100% \"~/.tmux/bin/fzf.zsh procs '#{pane_current_path}'\"" \
+    git-files g "display-popup -E -w 100% \"~/.tmux/bin/fzf.zsh git-files '#{pane_current_path}'\"" \
+    git-branches b "display-popup -E -w 100% \"~/.tmux/bin/fzf.zsh git-branches '#{pane_current_path}'\"" \
+    git-commits c "display-popup -E -w 100% \"~/.tmux/bin/fzf.zsh git-commits '#{pane_current_path}'\""
diff --git a/tmux/.tmux/rc/menu-various b/tmux/.tmux/rc/menu-various
new file mode 100644 (file)
index 0000000..7067232
--- /dev/null
@@ -0,0 +1,7 @@
+bind-key t display-menu \
+    music t "display-popup -E -w 100% '~/.tmux/bin/menu-music.sh'" \
+    pass p "display-popup -E '~/.tmux/bin/menu-pass-session.sh'" \
+    dict d "display-popup -E -h 100% '~/.tmux/bin/menu-dict.sh'" \
+    calc c "display-popup -E '~/.tmux/bin/menu-calc.sh'" \
+    cal l "display-popup 'cal -3N'" \
+    top o "display-popup -E -w 100% -h 100% 'top -s 1'"
diff --git a/tmux/.tmux/rc/urlview b/tmux/.tmux/rc/urlview
new file mode 100644 (file)
index 0000000..7568cc1
--- /dev/null
@@ -0,0 +1,6 @@
+bind-key u {
+    capture-pane -J
+    save-buffer /tmp/tmux-buffer
+    delete-buffer
+    display-popup -E -w 100% "urlview /tmp/tmux-buffer"
+}
similarity index 100%
rename from update.sh
rename to update
diff --git a/urlview/.urlview b/urlview/.urlview
deleted file mode 100644 (file)
index 511b181..0000000
+++ /dev/null
@@ -1 +0,0 @@
-COMMAND /home/stargrave/bin/www %s &
diff --git a/urlview/bin/urlview b/urlview/bin/urlview
new file mode 100755 (executable)
index 0000000..9259818
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh -e
+cmd=www
+# regexp is taken from urlview
+grep -P -o '(((http|https|ftp|gopher)|mailto):(//)?[^ <>\"\t]*|(www|ftp)[0-9]?\\.[-a-z0-9.]+)[^ .,;\t\n\r<\">\\):]?[^, <>\"\t]*[^ .,;\t\n\r<\">\\):]' "$@" |
+fzf --bind="enter:execute($cmd {})" \
+    --bind="ctrl-f:execute(rlwrap --pre-given={} head -1 | xargs $cmd)"
diff --git a/vim/.vim/after/ftplugin/c/autos.vim b/vim/.vim/after/ftplugin/c/autos.vim
new file mode 100644 (file)
index 0000000..96369aa
--- /dev/null
@@ -0,0 +1 @@
+set commentstring=//\ %s
diff --git a/vim/.vim/autoload/fmt.vim b/vim/.vim/autoload/fmt.vim
new file mode 100644 (file)
index 0000000..3c24a5d
--- /dev/null
@@ -0,0 +1,24 @@
+vim9script
+
+export def Do()
+    var lines = []
+    job_start(&equalprg, {
+        in_io: "buffer", in_buf: bufnr("%"),
+        callback: (chan, msg) => {
+            lines = add(lines, msg)
+        },
+        exit_cb: (job, status) => {
+            if status != 0
+                for i in range(len(lines))
+                    lines[i] = substitute(lines[i], "^[^:]\\+:", @% .. ":", "")
+                endfor
+                cgetexpr lines
+                copen
+                return
+            endif
+            var view = winsaveview()
+            silent execute ":%!" .. &equalprg
+            winrestview(view)
+        }
+    })
+enddef
diff --git a/vim/.vim/autoload/go/jump.vim b/vim/.vim/autoload/go/jump.vim
new file mode 100644 (file)
index 0000000..90c00d8
--- /dev/null
@@ -0,0 +1,9 @@
+vim9script
+
+export def Do(motion: string)
+    var saved = @/
+    mark '
+    execute motion
+    call histdel("/", -1)
+    @/ = saved
+enddef
diff --git a/vim/.vim/autoload/mutt.vim b/vim/.vim/autoload/mutt.vim
new file mode 100644 (file)
index 0000000..367c6d7
--- /dev/null
@@ -0,0 +1,9 @@
+vim9script
+
+export def KillSignature()
+    cursor(1, 1)
+    search('^[>|] \?-- \?$')
+    if getpos(".")[1] != 1
+        normal d}
+    endif
+enddef
diff --git a/vim/.vim/ftdetect/ch.vim b/vim/.vim/ftdetect/ch.vim
new file mode 100644 (file)
index 0000000..771b406
--- /dev/null
@@ -0,0 +1 @@
+autocmd BufRead,BufNewFile *.h setlocal filetype=ch
index 8181fc286a111b13630de0ff64aa02bafd05b54c..65ed94625851d12b74b0603394a5539f6bea3335 100644 (file)
@@ -1,2 +1 @@
-autocmd BufNewFile,BufRead *.hjson setlocal shiftwidth=2
-autocmd BufNewFile,BufRead *.hjson setlocal commentstring=#\ %s
+autocmd BufNewFile,BufRead *.hjson set filetype=hjson
index d106b42111c9e096aed707d317e6404979bbb05e..4e4dc757de054dce5947b38ab6906f1f46e37a01 100644 (file)
@@ -1,10 +1 @@
-function! s:KillSignature()
-    call cursor(1, 1)
-    call search('^[>|] \?-- \?$')
-    if getpos(".")[1] != 1
-        normal d}
-    endif
-endfunction
-
-autocmd BufRead /tmp/mutt-* call s:KillSignature()
-autocmd BufRead /tmp/mutt-* setlocal textwidth=72
+autocmd BufRead,BufNewFile /tmp/mutt-* set filetype=mutt
diff --git a/vim/.vim/ftdetect/tex.vim b/vim/.vim/ftdetect/tex.vim
deleted file mode 100644 (file)
index 19517da..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-autocmd BufNewFile,BufRead *.tex abbreviate framedo \begin{frame}<CR>\frametitle{TODO}<CR>\end{frame}<ESC>k>>wwlcw
-autocmd BufNewFile,BufRead *.tex abbreviate itemdo \begin{itemize}<CR>\item <CR>\end{itemize}<ESC>k>>$a
-autocmd BufNewFile,BufRead *.tex abbreviate cnter \begin{center}<CR>\end{center}<ESC>k$o
diff --git a/vim/.vim/ftplugin/c/abs.vim b/vim/.vim/ftplugin/c/abs.vim
new file mode 100644 (file)
index 0000000..08bcdec
--- /dev/null
@@ -0,0 +1,4 @@
+abbreviate <buffer> pdiff ptrdiff_t 
+abbreviate <buffer> SZ size_t 
+abbreviate <buffer> u8 uint8_t *
+abbreviate <buffer> ucc unsigned char *
index 3e821d6ada561a6bc6f083f3202dfe8429b61c63..2c3c98fa3d12b729fb0e27dd3f12bc4313a3b0ad 100644 (file)
@@ -1,9 +1,3 @@
-setlocal commentstring=//\ %s
-
-abbreviate UCC unsigned char
-abbreviate u8 uint8_t *
-abbreviate U8 (uint8_t *)
-let @e = "ywoassert(\epA!= NULL);\e"
-
-setlocal equalprg=cfmt.sh
-command! -buffer Fmt normal mtgg=G'tz.
+let @e = "yWoassert(\epA!= NULL);\e"
+nmap [cl O// clang-format off<ESC>
+nmap ]cl o// clang-format on<ESC>
diff --git a/vim/.vim/ftplugin/c/fmt.vim b/vim/.vim/ftplugin/c/fmt.vim
new file mode 100644 (file)
index 0000000..3b25483
--- /dev/null
@@ -0,0 +1,2 @@
+set equalprg=clang-format
+command! -buffer Fmt call fmt#Do()
diff --git a/vim/.vim/ftplugin/c/lsp.vim b/vim/.vim/ftplugin/c/lsp.vim
deleted file mode 100644 (file)
index f033c07..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-au User lsp_setup call lsp#register_server({
-\    "name": "clangd",
-\    "cmd": ["clangd"],
-\    "allowlist": ["c", "cpp", "objc", "objcpp"],
-\})
diff --git a/vim/.vim/ftplugin/gitcommit/autos.vim b/vim/.vim/ftplugin/gitcommit/autos.vim
new file mode 100644 (file)
index 0000000..fe6325e
--- /dev/null
@@ -0,0 +1,2 @@
+set spell
+set textwidth=72
diff --git a/vim/.vim/ftplugin/gitcommit/spell.vim b/vim/.vim/ftplugin/gitcommit/spell.vim
deleted file mode 100644 (file)
index 2ffef3c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-setlocal spell spelllang=ru,en_gb
diff --git a/vim/.vim/ftplugin/gitcommit/tw.vim b/vim/.vim/ftplugin/gitcommit/tw.vim
deleted file mode 100644 (file)
index 446f25e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-setlocal textwidth=72
index faad3c9728cef8e5e50dd693988f04fcd1a1c239..95c4afc10420faacb330a4f92d895f7a5d30622b 100644 (file)
@@ -1,5 +1,6 @@
 set noexpandtab
-let g:defsplit_shift=" "
+let b:defsplit_shift=" "
+set makeprg=go\ build
 
 let @e = "^iif err = \eA; err != nil {\eo        "
 let @r = "oif err != nil {\r}\eO "
index 49d20dca637cd9bb0ddacf7ca43a8e48e74ea581..feebf10deec01afa5885a46dfb7b429d6312a2b4 100644 (file)
@@ -1,69 +1,2 @@
-" Copyright 2011 The Go Authors. All rights reserved.
-" Use of this source code is governed by a BSD-style
-" license that can be found in the LICENSE file.
-"
-" fmt.vim: Vim command to format Go files with gofmt.
-"
-" This filetype plugin add a new commands for go buffers:
-"
-"   :Fmt
-"
-"       Filter the current Go buffer through gofmt.
-"       It tries to preserve cursor position and avoids
-"       replacing the buffer with stderr output.
-"
-" Options:
-"
-"   g:go_fmt_commands [default=1]
-"
-"       Flag to indicate whether to enable the commands listed above.
-"
-"   g:gofmt_command [default="gofmt"]
-"
-"       Flag naming the gofmt executable to use.
-"
-if exists("b:did_ftplugin_go_fmt")
-    finish
-endif
-
-if !exists("g:go_fmt_commands")
-    let g:go_fmt_commands = 1
-endif
-
-if !exists("g:gofmt_command")
-    let g:gofmt_command = "goimports"
-endif
-
-if g:go_fmt_commands
-    command! -buffer Fmt call s:GoFormat()
-endif
-
-function! s:GoFormat()
-    let view = winsaveview()
-    silent execute "%!" . g:gofmt_command
-    if v:shell_error
-        let errors = []
-        for line in getline(1, line('$'))
-            let tokens = matchlist(line, '^\(.\{-}\):\(\d\+\):\(\d\+\)\s*\(.*\)')
-            if !empty(tokens)
-                call add(errors, {"filename": @%,
-                                 \"lnum":     tokens[2],
-                                 \"col":      tokens[3],
-                                 \"text":     tokens[4]})
-            endif
-        endfor
-        if empty(errors)
-            % | " Couldn't detect gofmt error format, output errors
-        endif
-        undo
-        if !empty(errors)
-            call setqflist(errors, 'r')
-        endif
-        echohl Error | echomsg "Gofmt returned error" | echohl None
-    endif
-    call winrestview(view)
-endfunction
-
-let b:did_ftplugin_go_fmt = 1
-
-" vim:ts=4:sw=4:et
+set equalprg=goimports
+command! -buffer Fmt call fmt#Do()
diff --git a/vim/.vim/ftplugin/go/gogetdoc.vim b/vim/.vim/ftplugin/go/gogetdoc.vim
deleted file mode 100644 (file)
index 9105258..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-" Popup documentation of specified object under the cursor
-" Requires github.com/zmb3/gogetdoc in the $PATH
-
-function! LintStatus()
-    if exists("b:gogetdoc_job") && job_status(b:gogetdoc_job) == "run" | return "GD" | endif
-    return ""
-endfunction
-
-function! GoGetDocGot(ch)
-    let msgs = []
-    while ch_status(a:ch) == "buffered"
-        let msgs = add(msgs, ch_read(a:ch))
-    endwhile
-    if exists("b:godocid") | call popup_close(b:godocid) | endif
-    if len(msgs) == 0
-        echohl WarningMsg | echomsg "No go doc" | echohl None
-        return
-    endif
-    let msgs = msgs[2:]
-    let b:godocid = popup_atcursor(msgs[2:-2], {"wrap": 0, "title": msgs[0], "move": "word"})
-endfunction
-
-function! s:GoGetDoc()
-    if exists("b:gogetdoc_job") && job_status(b:gogetdoc_job) == "run" | return | endif
-    let pos = line2byte(line(".")) + col(".") - 2
-    let cmdline = "gogetdoc -pos " . expand("%p") . ":#" . pos
-    echomsg cmdline
-    let b:gogetdoc_job = job_start(cmdline, {
-        \"in_mode": "nl",
-        \"err_io": "null",
-        \"close_cb": "GoGetDocGot",
-    \})
-endfunction
-
-nmap <buffer> <silent> <CR> :call <SID>GoGetDoc()<CR>
diff --git a/vim/.vim/ftplugin/go/lsp.vim b/vim/.vim/ftplugin/go/lsp.vim
deleted file mode 100644 (file)
index ceaad66..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-au User lsp_setup call lsp#register_server({
-\    "name": "gopls",
-\    "cmd": ["gopls"],
-\    "allowlist": ["go"],
-\})
index 041347c73d8fbe3a9a9546d360934e5f062c71bc..410ce9a4b1b31bb1e35dd752dfa48d7881ae6251 100644 (file)
@@ -1,18 +1,6 @@
-nnoremap <silent> <buffer> ]] :call <SID>Go_jump('/^\(func\\|type\)')<cr>
-nnoremap <silent> <buffer> [[ :call <SID>Go_jump('?^\(func\\|type\)')<cr>
-nnoremap <silent> <buffer> ]m :call <SID>Go_jump('/^\s*\(func\\|type\)')<cr>
-nnoremap <silent> <buffer> [m :call <SID>Go_jump('?^\s*\(func\\|type\)')<cr>
-
-if exists('*<SID>Go_jump') | finish | endif
-
-fun! <SID>Go_jump(motion) range
-    let cnt = v:count1
-    let save = @/    " save last search pattern
-    mark '
-    while cnt > 0
-        silent! exe a:motion
-        let cnt = cnt - 1
-    endwhile
-    call histdel('/', -1)
-    let @/ = save    " restore last search pattern
-endfun
+vim9script
+if exists("*go#jump#Do") | finish | endif
+nnoremap <silent> <buffer> ]] :call go#jump#Do(':/^\(func\\|type\)')<CR>
+nnoremap <silent> <buffer> [[ :call go#jump#Do(':?^\(func\\|type\)')<CR>
+nnoremap <silent> <buffer> ]m :call go#jump#Do(':/^\s*\(func\\|type\)')<CR>
+nnoremap <silent> <buffer> [m :call go#jump#Do(':?^\s*\(func\\|type\)')<CR>
diff --git a/vim/.vim/ftplugin/hjson/autos.vim b/vim/.vim/ftplugin/hjson/autos.vim
new file mode 100644 (file)
index 0000000..069cc1c
--- /dev/null
@@ -0,0 +1,2 @@
+set shiftwidth=2
+set commentstring=#\ %s
diff --git a/vim/.vim/ftplugin/html/autos.vim b/vim/.vim/ftplugin/html/autos.vim
new file mode 100644 (file)
index 0000000..2470c62
--- /dev/null
@@ -0,0 +1 @@
+abbreviate <buffer> tto <em></em><ESC>F<i
diff --git a/vim/.vim/ftplugin/mutt/autos.vim b/vim/.vim/ftplugin/mutt/autos.vim
new file mode 100644 (file)
index 0000000..7708164
--- /dev/null
@@ -0,0 +1,6 @@
+vim9script
+mutt#KillSignature()
+set textwidth=72
+set commentstring=>%s
+set syntax=mail
+silent :%substitute /^> */>/e | set nohlsearch
index d837bdea242b900407752597be1501d37064295e..916b503fa6704788499e39f0a9e02a98645dfe37 100644 (file)
@@ -1,14 +1,10 @@
-iabbrev #u # coding: utf-8
-iabbrev tt # type: 
-iabbrev tti # type: ignore
-iabbrev trace import pdb ; pdb.set_trace()<CR>pass
-iabbrev itrace import ipdb ; ipdb.set_trace()<CR>pass
-iabbrev embed import code ; code.interact(local=locals())
-iabbrev iembed from IPython import embed ; embed()
-iabbrev kargs *args, **kwargs
-iabbrev pyldis # pylint: disable=
-iabbrev deff def () -> None:<ESC>F(i
-iabbrev """ """<ESC>o"<ESC>2i"<ESC>kA
-nmap <leader>ss :set lazyredraw<CR>vip:sort u<CR>:'<,'>sort i<CR>:set nolazyredraw<CR>
-let @b = ">gvctry:\e<<oexcept Exception as err:\rimport pdb ; pdb.set_trace()\rpass\e>>k>>kP"
-let @n = "ddV/except.*:\r<n3dd"
+iabbrev <buffer> #u # coding: utf-8
+iabbrev <buffer> tt # type: 
+iabbrev <buffer> tti # type: ignore
+iabbrev <buffer> trace breakpoint()
+iabbrev <buffer> embed import code ; code.interact(local=locals())
+iabbrev <buffer> kargs *args, **kwargs
+iabbrev <buffer> pyldis # pylint: disable=
+iabbrev <buffer> deff def () -> None:<ESC>F(i
+nmap <buffer> <leader>ss :set lazyredraw<CR>vip:sort u<CR>:'<,'>sort i<CR>:set nolazyredraw<CR>
+syntax keyword pythonStatement match case
diff --git a/vim/.vim/ftplugin/python/importcompl.vim b/vim/.vim/ftplugin/python/importcompl.vim
deleted file mode 100644 (file)
index 353eeb7..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-" Python imports insert completion
-" Maintainer: Sergey Matveev <stargrave@stargrave.org>
-" License: GNU General Public License version 3 of the License or later
-"
-" This plugin is intended for quick import-line insertion.
-" For example you have got "from foo.bar import Baz" import somewhere in
-" your Git-versioned code. In another file you can write "Baz" and then
-" press <F3> in insert mode. Completion menu will show you suggestions
-" of all import lines from your code containing Baz import.
-"
-" If you have Pylint or Pyflakes output in quickfix window, containing
-" unfedined variables errors, then you can you :call AllImportCompl()
-" function. It will go through the quickfix list and find all possible
-" imports, sort them and insert under current cursor position.
-"
-" It uses external "git grep" call and assumes that "canonical" Python
-" import format is used (single import per line).
-" You can use http://www.git.stargrave.org/?p=pyimportcan.git;a=blob;f=pyimportcan.pl
-" utility to convert existing imports to that format.
-
-let s:git_grep_cmd = "git grep -H --line-number --ignore-case --no-color "
-
-if exists('g:loaded_importcompl') | finish | endif
-let g:loaded_importcompl = 1
-
-function! SortByLen(s1, s2)
-    if len(a:s1) == len(a:s2) | return a:s1 > a:s2 | endif
-    return 1 ? len(a:s1) > len(a:s2) : -1
-endfunction
-
-function! ImportCompl()
-    normal diw
-    let output = system(s:git_grep_cmd . '"^from .* import .*' . @" . '" -- "*.py" "**/*.py"')
-    let suggestions = []
-    for line in split(output, "\n")
-        if stridx(line, "unused-import") != -1 | continue | endif
-        let m = matchlist(line, '^.*:\d\+:\(.*\)$')
-        if len(m) == 0 | continue | endif
-        call insert(suggestions, m[1])
-    endfor
-    call sort(suggestions, "SortByLen")
-    call uniq(suggestions)
-    call reverse(suggestions)
-    call complete(col('.'), suggestions)
-    return ''
-endfunction
-
-inoremap <F3> <C-R>=ImportCompl()<CR>
-
-function! AllImportCompl()
-    let output = system(s:git_grep_cmd . '"^from .* import" -- "*.py" "**/*.py"')
-    let imports = {}
-    for line in split(output, "\n")
-        if stridx(line, "unused-import") != -1 | continue | endif
-        for regexp in [
-            \'^.*:\d\+:\(from .* import \(\w\+\).*\)$',
-            \'^.*:\d\+:\(from .* import \w\+ as \(\w\+\).*\)$',
-        \]
-            let m = matchlist(line, regexp)
-            if len(m) == 0 | break | endif
-            let imports[m[2]] = m[1]
-        endfor
-    endfor
-    let lines = getloclist(winnr())
-    if len(lines) == 0 | let lines = getqflist() | endif
-    let result = []
-    for line in lines
-        let m = matchlist(line.text, '\(E0602\|F821\).*' . "'" . '\(\w\+\)' . "'$")
-        if len(m) == 0 || !has_key(imports, m[2]) | continue | endif
-        call insert(result, imports[m[2]])
-    endfor
-    call sort(result, "i")
-    call uniq(result)
-    call append(".", result)
-endfunction
diff --git a/vim/.vim/ftplugin/python/lsp.vim b/vim/.vim/ftplugin/python/lsp.vim
deleted file mode 100644 (file)
index 85091b4..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-if executable("pyls")
-    " pip install 'python-language-server[all]'
-    au User lsp_setup call lsp#register_server({
-    \    "name": "pyls",
-    \    "cmd": {server_info->["pyls"]},
-    \    "allowlist": ["python"],
-    \})
-endif
diff --git a/vim/.vim/ftplugin/python/pdb.vim b/vim/.vim/ftplugin/python/pdb.vim
new file mode 100644 (file)
index 0000000..b830cc2
--- /dev/null
@@ -0,0 +1,3 @@
+vim9script
+@b = ">gvctry:\e<<oexcept Exception as err:\rbreakpoint()\rpass\e>>k>>kP"
+@n = "ddV/except.*:\r<n3dd"
diff --git a/vim/.vim/ftplugin/python/pep8.vim b/vim/.vim/ftplugin/python/pep8.vim
deleted file mode 100644 (file)
index 7143e75..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-" PEP8 caller
-" Maintainer: Sergey Matveev <stargrave@stargrave.org>
-" License: GNU General Public License version 3 of the License or later
-"
-" Call pycodestyle utility and fill quickfix window with its results.
-
-sign define P8 text=P8 texthl=Error
-function! s:pep8()
-    set makeprg=PATH=$PATH\ pycodestyle\ --select=E,W\ %
-    silent make
-    sign unplace *
-    let l:id = 1
-    for item in getqflist()
-        execute(':sign place '.l:id.' name=P8 line='.l:item.lnum.' buffer='.l:item.bufnr)
-        let l:id = l:id + 2
-    endfor
-    redraw!
-    copen
-endfunction
-
-map <F5> :call <SID>pep8()<CR>
diff --git a/vim/.vim/ftplugin/python/pylint.vim b/vim/.vim/ftplugin/python/pylint.vim
deleted file mode 100644 (file)
index f0dd0a7..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-" Asynchronous pylint utility call
-" Maintainer: Sergey Matveev <stargrave@stargrave.org>
-" License: GNU General Public License version 3 of the License or later
-"
-" This plugin allows you to asynchronously call pylint.
-"
-" * Add %{LintStatus()} to your statusline to see if pylint is running
-" * Press <F6> to start pylint on current file
-" * Press <S-F6> to open quickfix window with messages from pylint
-" * All lines with corresponding pylint existing warning will be highlighted
-" * If no warning and errors occurred, "pylint is clean" message will be shown
-" * If existing quickfix window is found, then it won't be overwritten.
-"   Start pylint manually (<F6>) to force its filling
-" * After Python file is saved, pylint is automatically started
-
-if exists('g:loaded_pylint') | finish | endif
-let g:loaded_pylint = 1
-
-function! LintStatus()
-    if exists("b:lint_job") && job_status(b:lint_job) == "run" | return "LN" | endif
-    return ""
-endfunction
-
-function! s:qffill(ch)
-    let msgs = []
-    while ch_status(a:ch) == 'buffered'
-        let msgs = add(msgs, ch_read(a:ch))
-    endwhile
-    cgetexpr msgs
-endfunction
-
-sign define LN text=LN texthl=Error
-
-function! PylintFinish(ch)
-    let l:errorformat_bak = &errorformat
-    set errorformat=%f:%l:\ [%t]%m,%f:%l:%m
-    call s:qffill(a:ch)
-    let &errorformat=l:errorformat_bak
-    sign unplace *
-    let l:id = 2
-    for item in getqflist()
-        if item.lnum == 0 | continue | endif
-        execute(':sign place '.l:id.' name=LN line='.l:item.lnum.' buffer='.l:item.bufnr)
-        let l:id = l:id + 2
-    endfor
-    redraw!
-    if l:id == 2
-        echohl MoreMsg | echomsg "pylint is clean" | echohl None
-        cclose
-    endif
-endfunction
-
-function! PylintStart()
-    if exists("g:pylint_disable") || (exists("b:lint_job") && job_status(b:lint_job) == "run")
-        return
-    endif
-    let ignores = [
-        \"locally-disabled",
-        \"no-init",
-        \"no-self-use",
-        \"too-few-public-methods",
-        \"missing-docstring",
-        \"too-many-instance-attributes",
-        \"invalid-name",
-        \"too-many-arguments",
-        \"too-many-locals",
-        \"too-many-public-methods",
-        \"no-value-for-parameter",
-    \]
-    if !exists("g:pylint_linter") | let g:pylint_linter = "pylint" | endif
-    if g:pylint_linter == "flake8"
-        let cmdline = [
-            \"flake8",
-            \"--ignore=E501",
-            \"--format=%(path)s:%(row)d: [%(code)s] %(text)s",
-            \"--max-line-length=90",
-            \expand("%p")
-        \]
-    elseif g:pylint_linter == "pylint"
-        let cmdline = [
-            \"pylint",
-            \"--jobs=4",
-            \"--reports=n",
-            \"--msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg}",
-            \"--disable=" . join(ignores, ","),
-            \"--persistent=n",
-            \"--score=no",
-            \expand("%p")
-        \]
-    else
-        echohl WarningMsg | echomsg "Unknown linter specified" | echohl None
-        return
-    endif
-    let b:lint_job = job_start(cmdline, {"in_mode": "nl",  "err_io": "null", "close_cb": "PylintFinish"})
-endfunction()
-
-map <F6> :unlet! g:pylint_disable<CR>:call PylintStart()<CR>
-map \e[32~ :redraw!<CR>:copen<CR>
-autocmd BufWritePost *.py call PylintStart()
diff --git a/vim/.vim/ftplugin/python/testname.vim b/vim/.vim/ftplugin/python/testname.vim
deleted file mode 100644 (file)
index e388f1b..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-" Nose-compatible test name preparer
-" Maintainer: Sergey Matveev <stargrave@stargrave.org>
-" License: GNU General Public License version 3 of the License or later
-"
-" When standing inside TestCase's test method, type <leader>t and full
-" Python (your.project.tests:TestCaseName.test_method_name) path will be
-" copied to clipboard ("*) register.
-
-function! TestName()
-    normal mm
-    normal ?.*\s*def .*[Tt]est\r
-    normal ^f(Byw
-    let postfix = @"
-    normal [[f(Byw
-    let postfix = @" . "." . postfix
-    normal `m
-    let base = join([""] + split(getcwd(), "/")[:-1], "/")
-    let prefix = substitute(expand("%:p:r")[len(base)+1:], "/", ".", "g")
-    let name = prefix . ":" . postfix
-    let @* = name
-    echomsg name
-endfunction
-
-nmap <leader>t :call TestName()<CR>
diff --git a/vim/.vim/ftplugin/python/unused_remover.vim b/vim/.vim/ftplugin/python/unused_remover.vim
deleted file mode 100644 (file)
index 5e6b1ba..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-function! UnusedImportsRemover()
-    call setqflist(filter(getqflist(), "stridx(v:val.text, \"unused-import\") != -1 || stridx(v:val.text, \"imported but unused\") != -1"))
-    cdo d
-endfunction
diff --git a/vim/.vim/ftplugin/rust/autos.vim b/vim/.vim/ftplugin/rust/autos.vim
deleted file mode 100644 (file)
index 7f84a99..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let b:did_ftplugin = 1
diff --git a/vim/.vim/ftplugin/sql/comments.vim b/vim/.vim/ftplugin/sql/comments.vim
new file mode 100644 (file)
index 0000000..8c0d563
--- /dev/null
@@ -0,0 +1 @@
+set commentstring=--\ %s
diff --git a/vim/.vim/ftplugin/tcl/man.vim b/vim/.vim/ftplugin/tcl/man.vim
new file mode 100644 (file)
index 0000000..b849c68
--- /dev/null
@@ -0,0 +1 @@
+nmap K :Man <C-R><C-W>.tcl86<CR>
diff --git a/vim/.vim/ftplugin/tex/autos.vim b/vim/.vim/ftplugin/tex/autos.vim
new file mode 100644 (file)
index 0000000..2891419
--- /dev/null
@@ -0,0 +1,4 @@
+abbreviate framedo \begin{frame}<CR>\frametitle{TODO}<CR>\end{frame}<ESC>k>>wwlcw
+abbreviate itemdo \begin{itemize}<CR>\item <CR>\end{itemize}<ESC>k>>$a
+abbreviate cnter \begin{center}<CR>\end{center}<ESC>k$o
+abbreviate TTT \texttt{}<ESC>i
index 0f57cfe94bcc258369d6776b704738bb17769202..11e949d92a3905003cec16a8e19f8d85766a25b9 100644 (file)
@@ -1,2 +1,2 @@
-abbreviate \t @tab
-setlocal commentstring=@c\ %s
+abbreviate <buffer> \t @tab
+set commentstring=@c\ \ %s
diff --git a/vim/.vim/ftplugin/vim/autos.vim b/vim/.vim/ftplugin/vim/autos.vim
new file mode 100644 (file)
index 0000000..21a0960
--- /dev/null
@@ -0,0 +1,2 @@
+set commentstring=#%s
+abbreviate <buffer> v9 vim9script
index 6f78fab41fa11ef915df04dfd2833ff21809edc1..7b7ac767210220022953d4e833803c31673f2b30 100644 (file)
@@ -1 +1 @@
-setlocal shiftwidth=2
+set shiftwidth=2
diff --git a/vim/.vim/pack/stargrave/start/align/autoload/align.vim b/vim/.vim/pack/stargrave/start/align/autoload/align.vim
new file mode 100644 (file)
index 0000000..d31e1a1
--- /dev/null
@@ -0,0 +1,14 @@
+vim9script
+
+const Sep = "₀◎○ë" # something that won't be met anywhere
+
+export def Do(first: number, last: number, sep: string)
+    var in: list<string>
+    for n in range(first, last)
+        in = add(in, substitute(getline(n), sep, "\t" .. Sep, "g"))
+    endfor
+    var out = systemlist("column -t -s \"\t\"", add(in, ""))
+    for n in range(first, last)
+        setline(n, substitute(out[n - first], "  " .. Sep, escape(sep, "&"), "g"))
+    endfor
+enddef
diff --git a/vim/.vim/pack/stargrave/start/align/plugin/align.vim b/vim/.vim/pack/stargrave/start/align/plugin/align.vim
new file mode 100644 (file)
index 0000000..82d5370
--- /dev/null
@@ -0,0 +1,2 @@
+if exists("*align#Do") | finish | endif
+command! -nargs=1 -range Align call align#Do(<line1>, <line2>, <f-args>)
diff --git a/vim/.vim/pack/stargrave/start/buftabline/autoload/buftabline.vim b/vim/.vim/pack/stargrave/start/buftabline/autoload/buftabline.vim
new file mode 100644 (file)
index 0000000..d5c2721
--- /dev/null
@@ -0,0 +1,28 @@
+vim9script
+
+export def Do(): string
+    var bufsRaw = execute("buffers", "silent")
+    var bufs: list<string>
+    var leftIdx: number
+    var rightIdx: number
+    var filename: string
+    var linenum: string
+    var attrs: list<string>
+    var attr: string
+    var hl: string
+    for buf in split(bufsRaw, "\n")[ : 16]
+        leftIdx = stridx(buf, '"')
+        rightIdx = strridx(buf, '"')
+        filename = substitute(
+            strpart(buf, leftIdx + 1, rightIdx - leftIdx - 1), "%", "%%", "g")
+        linenum = split(strpart(buf, rightIdx), " ")[-1]
+        attrs = split(strpart(buf, 0, leftIdx - 1), '\s\+')
+        attrs = map(attrs, 'substitute(v:val, "%", "%%", "g")')
+        attr = (len(attrs) == 1) ? attrs[0] : attrs[0] .. ":" .. join(attrs[1 :], "")
+        attr = "%#TabLine#" .. attr .. "%*"
+        if len(filename) > 20 | filename = "<" .. filename[-(20 - 1) :] | endif
+        hl = (match(attr, "%%") == -1) ? "%#TabLine#:" : "%#TabLineSel#"
+        bufs = add(bufs, attr .. hl .. filename .. ":" .. linenum .. "%*")
+    endfor
+    return join(bufs, "  ")
+enddef
diff --git a/vim/.vim/pack/stargrave/start/buftabline/plugin/buftabline.vim b/vim/.vim/pack/stargrave/start/buftabline/plugin/buftabline.vim
new file mode 100644 (file)
index 0000000..99c444e
--- /dev/null
@@ -0,0 +1,3 @@
+if exists("*buftabline#Do") | finish | endif
+set showtabline=2
+set tabline=%!buftabline#Do()
diff --git a/vim/.vim/pack/stargrave/start/chnglstnav/autoload/chnglstnav.vim b/vim/.vim/pack/stargrave/start/chnglstnav/autoload/chnglstnav.vim
new file mode 100644 (file)
index 0000000..cfd5ab6
--- /dev/null
@@ -0,0 +1,6 @@
+vim9script
+
+export def Do(...args: list<number>)
+    if len(args) == 0 | return | endif
+    execute "normal " .. args[0] .. (args[0] > 0 ? "g;" : "g,")
+enddef
diff --git a/vim/.vim/pack/stargrave/start/chnglstnav/plugin/chnglstnav.vim b/vim/.vim/pack/stargrave/start/chnglstnav/plugin/chnglstnav.vim
new file mode 100644 (file)
index 0000000..01ef650
--- /dev/null
@@ -0,0 +1,2 @@
+if exists("*chnglstnav#Do") | finish | endif
+nmap <End> :changes<CR>:call chnglstnav#Do()<Left>
diff --git a/vim/.vim/pack/stargrave/start/ctags/autoload/ctags.vim b/vim/.vim/pack/stargrave/start/ctags/autoload/ctags.vim
new file mode 100644 (file)
index 0000000..29e1363
--- /dev/null
@@ -0,0 +1,37 @@
+vim9script
+
+# Universal Ctags creator
+# Maintainer: Sergey Matveev <stargrave@stargrave.org>
+# License: GNU General Public License version 3 of the License or later
+#
+# Create "tags" file in your project's root first.
+# Then :Ctags LANG to fill it.
+
+export def Do(lang: string, onlyCmd: bool, verbose: bool)
+    var dsts = tagfiles()
+    if len(dsts) == 0
+        echohl WarningMsg | echomsg "No tagfiles" | echohl None
+        return
+    endif
+    var dst = sort(dsts, (a, b) => len(a) > len(b) ? 1 : len(a) == len(b) ? 0 : -1)[0]
+    var src = "/" .. join(split(dst, "/")[: -3], "/")
+    if dst[0] != "/"
+        dst = getcwd() .. "/.tags/tags"
+        src = getcwd()
+    endif
+    var cmdline = [
+        "uctags",
+        "--languages=" .. lang,
+        "--python-kinds=-i",
+        "--c++-kinds=+p",
+        "--recurse",
+    ]
+    if verbose == true | cmdline += ["--verbose"] | endif
+    cmdline += ["-f", dst, src]
+    if onlyCmd == true
+        echo join(cmdline, " ")
+        return
+    endif
+    execute "!" .. join(cmdline, " ")
+    if verbose != true | redraw! | endif
+enddef
diff --git a/vim/.vim/pack/stargrave/start/ctags/plugin/ctags.vim b/vim/.vim/pack/stargrave/start/ctags/plugin/ctags.vim
new file mode 100644 (file)
index 0000000..34cde99
--- /dev/null
@@ -0,0 +1,5 @@
+vim9script
+if exists("*ctags#Do") | finish | endif
+command! -nargs=1 Ctags silent call ctags#Do(<f-args>, false, false)
+command! -nargs=1 Ctagsv silent call ctags#Do(<f-args>, true, false)
+command! -nargs=1 Ctagscmd call ctags#Do(<f-args>, true, true)
diff --git a/vim/.vim/pack/stargrave/start/defsplit/autoload/defsplit.vim b/vim/.vim/pack/stargrave/start/defsplit/autoload/defsplit.vim
new file mode 100644 (file)
index 0000000..8fb89e8
--- /dev/null
@@ -0,0 +1,97 @@
+vim9script
+
+# Function call splitter
+# Maintainer: Sergey Matveev <stargrave@stargrave.org>
+# License: GNU General Public License version 3 of the License or later
+#
+# This plugin splits function call on several lines.
+#
+#   def foobar(self, foo: str, bar: Some[thing, too]) -> None:
+# to
+#   def foobar(
+#           self,
+#           foo: str,
+#           bar: Some[thing, too],
+#   ) -> None:
+#
+#   foo(bar, baz)[0]
+# to
+#   foo(
+#       bar,
+#       baz,
+#   )[0]
+#
+# You can un-split it using :Undefsplit command on the line where
+# splitting starts.
+#
+# :Defsplit has optional argument specifying how many opening round
+# parenthesis must be skipped.
+# :Defsplit 1 on foo(baz(baz(...))) produces
+#    foo(baz(
+#        baz(...),
+#    ))
+#
+# Also there is :Brsplit command behaving similarly, but it splits other
+# types of brackets: "{}", "[]".
+
+def BracketFind(brsAllowable: list<string>, line: string, offset: number): number
+    var possible: list<number>
+    var found: number
+    for bracket in brsAllowable
+        found = stridx(line, bracket, offset)
+        if found != -1 | possible += [found] | endif
+    endfor
+    return min(possible)
+enddef
+
+const Brs = {"(": ")", "[": "]", "{": "}"}
+
+export def Do(brsAllowable: list<string>, singleLineComma: bool, ...args: list<string>)
+    var skip = len(args) == 0 ? 0 : str2nr(args[0])
+    var shift = get(b:, "defsplit_shift", "    ")
+    var line = getline(".")
+    var prfx: string
+    for i in range(len(line))
+        if line[i] != shift[0]
+            prfx = strpart(line, 0, i)
+            if line[i : i + 3] ==# "def " ||
+                line[i : i + 5] ==# "class " ||
+                line[i : i + 9] ==# "async def "
+                shift ..= shift
+            endif
+            break
+        endif
+    endfor
+    var brfirst = BracketFind(brsAllowable, line, 0)
+    var brlast = strridx(line, Brs[line[brfirst]])
+    while skip > 0
+        brfirst = BracketFind(brsAllowable, line, brfirst + 1)
+        brlast = strridx(line, Brs[line[brfirst]], brlast - 1)
+        skip -= 1
+    endwhile
+    var [curly, round, squar, outbuf] = [0, 0, 0, ""]
+    var ready = [strpart(line, 0, brfirst + 1)]
+    var trailingComma = true
+    for c in split(line[brfirst + 1 : brlast - 1], '\zs')
+        if c ==# "*" | trailingComma = false | endif
+        if outbuf ==# "" && c ==# " " | continue | endif
+        outbuf ..= c
+        if c ==# "," && !curly && !round && !squar
+            ready = add(ready, prfx .. shift .. outbuf)
+            outbuf = ""
+        elseif c ==# "[" | squar += 1
+        elseif c ==# "]" | squar -= 1
+        elseif c ==# "(" | round += 1
+        elseif c ==# ")" | round -= 1
+        elseif c ==# "{" | curly += 1
+        elseif c ==# "}" | curly -= 1
+        endif
+    endfor
+    if trailingComma && !(singleLineComma == true && len(ready) == 1)
+        outbuf = outbuf .. ","
+    endif
+    ready = add(ready, prfx .. shift .. outbuf)
+    ready = add(ready, prfx .. strpart(line, brlast))
+    append(line("."), ready)
+    normal "_dd
+enddef
diff --git a/vim/.vim/pack/stargrave/start/defsplit/plugin/defsplit.vim b/vim/.vim/pack/stargrave/start/defsplit/plugin/defsplit.vim
new file mode 100644 (file)
index 0000000..f01362b
--- /dev/null
@@ -0,0 +1,6 @@
+if exists("*defsplit#Do") | finish | endif
+command! -nargs=? Defsplit call defsplit#Do(["("], v:false, <f-args>)
+command! -nargs=? Brsplit call defsplit#Do(["(", "[", "{"], v:false, <f-args>)
+command! -nargs=? Defsplits call defsplit#Do(["("], v:true, <f-args>)
+command! -nargs=? Brsplits call defsplit#Do(["(", "[", "{"], v:true, <f-args>)
+command! Undefsplit normal ^v%$J:keepp s/^\(.*\)\([([{]\) \(.*[^,]\),\?\([)\]}]\)\(.*\)$/\1\2\3\4\5<CR>:keepp s/, \?\([)\]}]\+\)$/\1/e<CR>:<CR>
diff --git a/vim/.vim/pack/stargrave/start/fileline/autoload/fileline.vim b/vim/.vim/pack/stargrave/start/fileline/autoload/fileline.vim
new file mode 100644 (file)
index 0000000..d5b1d9a
--- /dev/null
@@ -0,0 +1,19 @@
+vim9script
+
+# Simplified version of http://www.vim.org/scripts/script.php?script_id=2184
+# that does not replace current window
+
+export def Goto()
+    var file = bufname("%")
+    if filereadable(file) | return | endif
+    var names = matchlist(file, '\(.\{-1,}\):\%(\(\d\+\)\%(:\(\d*\):\?\)\?\)\?$')
+    if empty(names) | return | endif
+    var fileName = names[1]
+    var lineNum = names[2] == "" ? "0" : names[2]
+    var colNum = names[3] == "" ? "0" : names[3]
+    if !filereadable(fileName) | return | endif
+    var nr = bufnr("%")
+    execute "keepalt edit +" .. lineNum .. " " .. fileName
+    execute "normal! " .. colNum .. "|"
+    execute "bdelete " .. nr
+enddef
diff --git a/vim/.vim/pack/stargrave/start/fileline/plugin/fileline.vim b/vim/.vim/pack/stargrave/start/fileline/plugin/fileline.vim
new file mode 100644 (file)
index 0000000..dcb7f9d
--- /dev/null
@@ -0,0 +1,6 @@
+if exists("*fileline#Goto") | finish | endif
+augroup FilelinePlugin
+    autocmd!
+    autocmd BufNewFile *:* nested call fileline#Goto()
+    autocmd BufRead *:* nested call fileline#Goto()
+augroup END
diff --git a/vim/.vim/pack/stargrave/start/go-gogetdoc/autoload/go/getdoc.vim b/vim/.vim/pack/stargrave/start/go-gogetdoc/autoload/go/getdoc.vim
new file mode 100644 (file)
index 0000000..6c5555e
--- /dev/null
@@ -0,0 +1,36 @@
+vim9script
+
+# Popup documentation of specified object under the cursor
+# Requires github.com/zmb3/gogetdoc in the $PATH
+
+export def Status(): string
+    if exists("b:gogetdoc_job") && job_status(b:gogetdoc_job) == "run" | return "GD" | endif
+    return ""
+enddef
+
+export def Got(ch: channel)
+    var msgs: list<string>
+    while ch_status(ch) == "buffered"
+        msgs = add(msgs, ch_read(ch))
+    endwhile
+    if exists("b:godocid") | popup_close(b:godocid) | endif
+    if len(msgs) == 0
+        echohl WarningMsg | echomsg "No go doc" | echohl None
+        return
+    endif
+    msgs = msgs[2 :]
+    b:godocid = popup_atcursor(msgs[2 : -2],
+        {"wrap": 0, "title": msgs[0], "move": "word"})
+enddef
+
+export def Do()
+    if exists("b:gogetdoc_job") && job_status(b:gogetdoc_job) == "run" | return | endif
+    var pos = line2byte(line(".")) + col(".") - 2
+    var cmdline = "gogetdoc -pos " .. expand("%p") .. ":#" .. pos
+    echomsg cmdline
+    b:gogetdoc_job = job_start(cmdline, {
+        "in_mode": "nl",
+        "err_io": "null",
+        "close_cb": "go#getdoc#Got",
+    })
+enddef
diff --git a/vim/.vim/pack/stargrave/start/go-gogetdoc/ftplugin/go/gogetdoc.vim b/vim/.vim/pack/stargrave/start/go-gogetdoc/ftplugin/go/gogetdoc.vim
new file mode 100644 (file)
index 0000000..a93c58f
--- /dev/null
@@ -0,0 +1,3 @@
+if exists("*go#getdoc#Do") | finish | endif
+let b:mein_status_func=function("go#getdoc#Status")
+nmap <buffer> <silent> <CR> :call go#getdoc#Do()<CR>
diff --git a/vim/.vim/pack/stargrave/start/mark/autoload/mark.vim b/vim/.vim/pack/stargrave/start/mark/autoload/mark.vim
new file mode 100644 (file)
index 0000000..a13d7a3
--- /dev/null
@@ -0,0 +1,73 @@
+vim9script
+
+# Based on Mark plugin by Yuheng Xie:
+# https://www.vim.org/scripts/script.php?script_id=1238
+# That one:
+# * uses autoload for lazy loading
+# * is ported to vim9script for code simplification and performance
+# * uses lists, instead of pack of variables to keep the state
+# * does not pollute global variable namespace
+# * has ability only to highlight the current word
+
+hi MarkWord1 ctermfg=Black ctermbg=Cyan
+hi MarkWord2 ctermfg=Black ctermbg=Green
+hi MarkWord3 ctermfg=Black ctermbg=Yellow
+hi MarkWord4 ctermfg=Black ctermbg=Red
+hi MarkWord5 ctermfg=Black ctermbg=Magenta
+hi MarkWord6 ctermfg=Black ctermbg=Blue
+
+const MarkIdOffset = 3333
+var Show: bool
+var Words: list<string>
+var Idx: number
+
+def Init()
+    if len(Words) > 0 | return | endif
+    var i = 1
+    while hlexists("MarkWord" .. i) | i = i + 1 | endwhile
+    Words = repeat([""], i - 1)
+enddef
+
+def WinRefresh()
+    for i in range(len(Words))
+        exec "syntax clear MarkWord" .. (i + 1)
+        silent! matchdelete(MarkIdOffset + i + 1)
+        if (Words[i] == "") || !Show | continue | endif
+        matchadd("MarkWord" .. (i + 1), Words[i], -10, MarkIdOffset + i + 1)
+    endfor
+enddef
+
+export def Refresh()
+    Init()
+    var nr = winnr()
+    silent! windo WinRefresh()
+    silent! exec ":" .. nr .. "wincmd w"
+enddef
+
+export def Toggle()
+    Show = !Show
+    Refresh()
+enddef
+
+def Do(word: string)
+    for i in range(len(Words))
+        if !Show | Words[i] = ""
+        elseif Words[i] == word | Words[i] = "" | return
+        endif
+    endfor
+    if !Show | Show = true | endif
+    for i in range(len(Words))
+        if Words[i] != "" | continue | endif
+        Words[i] = word
+        Idx = ((i + 1) == len(Words)) ? 0 : (i + 1)
+        return
+    endfor
+    Words[Idx] = word
+    Idx = ((Idx + 1) == len(Words)) ? 0 : (Idx + 1)
+enddef
+
+export def Word()
+    Init()
+    Do('\<' .. expand("<cword>") .. '\>')
+    Refresh()
+enddef
diff --git a/vim/.vim/pack/stargrave/start/mark/plugin/mark.vim b/vim/.vim/pack/stargrave/start/mark/plugin/mark.vim
new file mode 100644 (file)
index 0000000..3693784
--- /dev/null
@@ -0,0 +1,3 @@
+if exists("*mark#Word") | finish | endif
+nmap <silent> <leader>m :call mark#Word()<CR>
+autocmd BufWinEnter,WinEnter * call mark#Refresh()
diff --git a/vim/.vim/pack/stargrave/start/navindent/autoload/navindent.vim b/vim/.vim/pack/stargrave/start/navindent/autoload/navindent.vim
new file mode 100644 (file)
index 0000000..961cfa6
--- /dev/null
@@ -0,0 +1,22 @@
+vim9script
+
+# Based on https://vim.fandom.com/wiki/Move_to_next/previous_line_with_same_indentation
+
+export def Do(step: number, diff: number)
+    var l = line(".")
+    var cin = indent(l)
+    var last = line("$")
+    var lin: number
+    while (l > 0 && l <= last)
+        l += step
+        if (strlen(getline(l)) == 0) | continue | endif
+        lin = indent(l)
+        if !(
+            ((diff == 0) && (lin == cin)) ||
+            ((diff == 1) && (lin > cin)) ||
+            ((diff == -1) && (lin < cin))
+        ) | continue | endif
+        cursor(l, lin + 1)
+        return
+    endwhile
+enddef
diff --git a/vim/.vim/pack/stargrave/start/navindent/plugin/navindent.vim b/vim/.vim/pack/stargrave/start/navindent/plugin/navindent.vim
new file mode 100644 (file)
index 0000000..138a26b
--- /dev/null
@@ -0,0 +1,7 @@
+if exists("*navindent#Do") | finish | endif
+nmap <silent> [- :call navindent#Do(-1, -1)<CR>
+nmap <silent> ]- :call navindent#Do(+1, -1)<CR>
+nmap <silent> [= :call navindent#Do(-1, 0)<CR>
+nmap <silent> ]= :call navindent#Do(+1, 0)<CR>
+nmap <silent> [+ :call navindent#Do(-1, +1)<CR>
+nmap <silent> ]+ :call navindent#Do(+1, +1)<CR>
diff --git a/vim/.vim/pack/stargrave/start/nonhumanhl/autoload/nonhumanhl.vim b/vim/.vim/pack/stargrave/start/nonhumanhl/autoload/nonhumanhl.vim
new file mode 100644 (file)
index 0000000..038b8c4
--- /dev/null
@@ -0,0 +1,5 @@
+vim9script
+export def Load()
+    highlight nonhuman ctermbg=blue ctermfg=red
+    autocmd BufReadPost * syntax match nonhuman "[^\u0000-\u007Fа-яА-ЯёЁäÄöÖüÜßẞ]" containedin=ALL
+enddef
diff --git a/vim/.vim/pack/stargrave/start/nonhumanhl/plugin/nonhumanhl.vim b/vim/.vim/pack/stargrave/start/nonhumanhl/plugin/nonhumanhl.vim
new file mode 100644 (file)
index 0000000..38a0ff4
--- /dev/null
@@ -0,0 +1,3 @@
+vim9script
+if exists("*nonhumanhl#Load") | finish | endif
+nonhumanhl#Load()
diff --git a/vim/.vim/pack/stargrave/start/py-importcompl/autoload/python/importcompl.vim b/vim/.vim/pack/stargrave/start/py-importcompl/autoload/python/importcompl.vim
new file mode 100644 (file)
index 0000000..48c166a
--- /dev/null
@@ -0,0 +1,75 @@
+vim9script
+
+# Python imports insert completion
+# Maintainer: Sergey Matveev <stargrave@stargrave.org>
+# License: GNU General Public License version 3 of the License or later
+#
+# This plugin is intended for quick import-line insertion.
+# For example you have got "from foo.bar import Baz" import somewhere in
+# your Git-versioned code. In another file you can write "Baz" and then
+# press <F3> in insert mode. Completion menu will show you suggestions
+# of all import lines from your code containing Baz import.
+#
+# If you have Pylint or Pyflakes output in quickfix window, containing
+# unfedined variables errors, then you can you :call python#importcompl#all()
+# function. It will go through the quickfix list and find all possible
+# imports, sort them and insert under current cursor position.
+#
+# It uses external "git grep" call and assumes that "canonical" Python
+# import format is used (single import per line).
+# You can use http://www.git.stargrave.org/?p=pyimportcan.git;a=blob;f=pyimportcan.pl
+# utility to convert existing imports to that format.
+
+const gitGrepCmd = "git grep -H --line-number --ignore-case --no-color "
+
+export def Do(): string
+    normal diw
+    var output = system(gitGrepCmd .. '"^from .* import .*' .. @" .. '" -- "*.py" "**/*.py"')
+    var suggestions: list<string>
+    var m: list<string>
+    for line in split(output, "\n")
+        if stridx(line, "unused-import") != -1 | continue | endif
+        m = matchlist(line, '^.*:\d\+:\(.*\)$')
+        if len(m) == 0 | continue | endif
+        insert(suggestions, m[1])
+    endfor
+    sort(suggestions, (s1: string, s2: string): number => {
+        if len(s1) == len(s2) | return 0 | endif
+        if len(s1) > len(s2) | return 1 | endif
+        return -1
+    })
+    uniq(suggestions)
+    reverse(suggestions)
+    complete(col("."), suggestions)
+    return ""
+enddef
+
+export def All()
+    var output = system(gitGrepCmd .. '"^from .* import" -- "*.py" "**/*.py"')
+    var imports = {}
+    var ms: list<string>
+    for line in split(output, "\n")
+        if stridx(line, "unused-import") != -1 | continue | endif
+        for regexp in [
+            '^.*:\d\+:\(from .* import \(\w\+\).*\)$',
+            '^.*:\d\+:\(from .* import \w\+ as \(\w\+\).*\)$',
+        ]
+            ms = matchlist(line, regexp)
+            if len(ms) == 0 | break | endif
+            imports[ms[2]] = ms[1]
+        endfor
+    endfor
+    var lines = getloclist(winnr())
+    if len(lines) == 0 | lines = getqflist() | endif
+    var result: list<string>
+    var m: string
+    for line in lines
+        if line.text !~ "^undefined name" | continue | endif
+        m = line.text[strridx(line.text[: -2], "'") + 1 : -2]
+        if len(m) == 0 || !has_key(imports, m) | continue | endif
+        insert(result, imports[m])
+    endfor
+    sort(result, "i")
+    uniq(result)
+    append(".", result)
+enddef
diff --git a/vim/.vim/pack/stargrave/start/py-importcompl/autoload/python/unused.vim b/vim/.vim/pack/stargrave/start/py-importcompl/autoload/python/unused.vim
new file mode 100644 (file)
index 0000000..25ef8cb
--- /dev/null
@@ -0,0 +1,8 @@
+vim9script
+
+export def Remove()
+    setqflist(filter(getqflist(), (idx, val) =>
+        stridx(val.text, "unused-import") != -1 ||
+        stridx(val.text, "imported but unused") != -1))
+    cdo d
+enddef
diff --git a/vim/.vim/pack/stargrave/start/py-importcompl/ftplugin/python/importcompl.vim b/vim/.vim/pack/stargrave/start/py-importcompl/ftplugin/python/importcompl.vim
new file mode 100644 (file)
index 0000000..25cf83e
--- /dev/null
@@ -0,0 +1,4 @@
+if exists("*python#importcompl#Do") | finish | endif
+inoremap <F3> <C-R>=python#importcompl#Do()<CR>
+cnoremap <F3> call python#importcompl#All()<CR>
+cnoremap <F4> call python#unused#Remove()<CR>
diff --git a/vim/.vim/pack/stargrave/start/py-pep8/autoload/python/pep8.vim b/vim/.vim/pack/stargrave/start/py-pep8/autoload/python/pep8.vim
new file mode 100644 (file)
index 0000000..5075c35
--- /dev/null
@@ -0,0 +1,21 @@
+vim9script
+
+# PEP8 caller
+# Maintainer: Sergey Matveev <stargrave@stargrave.org>
+# License: GNU General Public License version 3 of the License or later
+#
+# Call pycodestyle utility and fill quickfix window with its results.
+
+export def Do()
+    set makeprg=PATH=$PATH\ pycodestyle\ --select=E,W\ %
+    silent make
+    sign unplace *
+    var _id = 1
+    for item in getqflist()
+        execute(":sign place " .. _id .. " name=P8 line=" .. item.lnum ..
+                " buffer=" .. item.bufnr)
+        _id = _id + 2
+    endfor
+    redraw!
+    copen
+enddef
diff --git a/vim/.vim/pack/stargrave/start/py-pep8/ftplugin/python/pep8.vim b/vim/.vim/pack/stargrave/start/py-pep8/ftplugin/python/pep8.vim
new file mode 100644 (file)
index 0000000..0115125
--- /dev/null
@@ -0,0 +1,3 @@
+if exists("*python#pep8#Do") | finish | endif
+sign define P8 text=P8 texthl=Error
+map <buffer> <F5> :call python#pep8#Do()<CR>
diff --git a/vim/.vim/pack/stargrave/start/py-testname/autoload/python/testname.vim b/vim/.vim/pack/stargrave/start/py-testname/autoload/python/testname.vim
new file mode 100644 (file)
index 0000000..921321a
--- /dev/null
@@ -0,0 +1,21 @@
+vim9script
+
+# Nose-compatible test name preparer
+# Maintainer: Sergey Matveev <stargrave@stargrave.org>
+# License: GNU General Public License version 3 of the License or later
+#
+# When standing inside TestCase's test method, type <leader>t and full
+# Python (your.project.tests:TestCaseName.test_method_name) path will be
+# copied to clipboard ("*) register.
+
+export def Get()
+    var pos = getpos(".")
+    var postfix = matchstr(getline(search(".*\s*def .*[Tt]est", "b")), '\w\+(')[: -2]
+    postfix = matchstr(getline(search("^\s*class", "bn")), '\w\+(')[: -2] .. "." .. postfix
+    setpos(".", pos)
+    var base = join([""] + split(getcwd(), "/")[: -1], "/")
+    var prefix = substitute(expand("%:p:r")[len(base) + 1 :], "/", ".", "g")
+    var name = prefix .. ":" .. postfix
+    @* = name
+    echomsg name
+enddef
diff --git a/vim/.vim/pack/stargrave/start/py-testname/ftplugin/python/testname.vim b/vim/.vim/pack/stargrave/start/py-testname/ftplugin/python/testname.vim
new file mode 100644 (file)
index 0000000..e3d8f87
--- /dev/null
@@ -0,0 +1,2 @@
+if exists("*python#testname#Get") | finish | endif
+nmap <buffer> <leader>t :call python#testname#Get()<CR>
diff --git a/vim/.vim/pack/stargrave/start/whereami/autoload/whereami.vim b/vim/.vim/pack/stargrave/start/whereami/autoload/whereami.vim
new file mode 100644 (file)
index 0000000..ba888d4
--- /dev/null
@@ -0,0 +1,16 @@
+vim9script
+
+export def PwdLoad()
+    g:whereami_pwdL = trim(system("pwd -L"))
+    g:whereami_pwdP = trim(system("pwd -P"))
+enddef
+
+export def Do(fmt: string)
+    var fullpath = expand("%:p")
+    if fullpath[ : len(g:whereami_pwdP) - 1] ==# g:whereami_pwdP
+        fullpath = g:whereami_pwdL .. fullpath[len(g:whereami_pwdP) : ]
+    endif
+    var where = printf(fmt, fullpath, line("."))
+    @* = where
+    echomsg where
+enddef
diff --git a/vim/.vim/pack/stargrave/start/whereami/plugin/whereami.vim b/vim/.vim/pack/stargrave/start/whereami/plugin/whereami.vim
new file mode 100644 (file)
index 0000000..c3c972b
--- /dev/null
@@ -0,0 +1,4 @@
+if exists("*whereami#pwdLoad") | finish | endif
+autocmd VimEnter * call whereami#PwdLoad()
+nmap <leader>w :call whereami#Do("%s:%d")<CR>
+nmap <leader>W :call whereami#Do("breakpoint set --file %s --line %d")<CR>
diff --git a/vim/.vim/pack/stargrave/start/zshfe/autoload/zshfe.vim b/vim/.vim/pack/stargrave/start/zshfe/autoload/zshfe.vim
new file mode 100644 (file)
index 0000000..bb94dd6
--- /dev/null
@@ -0,0 +1,7 @@
+vim9script
+
+export def Do(query: string, opencmd: string)
+    silent var result = systemlist(g:zshfe_path .. " " .. query)
+    if len(result) == 0 | return | endif
+    execute opencmd .. " " .. result[0][: -2]
+enddef
diff --git a/vim/.vim/pack/stargrave/start/zshfe/plugin/zshfe.vim b/vim/.vim/pack/stargrave/start/zshfe/plugin/zshfe.vim
new file mode 100644 (file)
index 0000000..cb05d99
--- /dev/null
@@ -0,0 +1,18 @@
+vim9script
+
+# zsh file completion caller
+# Maintainer: Sergey Matveev <stargrave@stargrave.org>
+# License: GNU General Public License version 3 of the License or later
+
+if exists("*zshfe#Do") | finish | endif
+if !exists("g:zshfe_path")
+    g:zshfe_path = expand("<sfile>:p:h") .. "/zshfe.zsh"
+endif
+
+command! -nargs=1 Fe call zshfe#Do(<f-args>, "edit")
+command! -nargs=1 Fsp call zshfe#Do(<f-args>, "split")
+command! -nargs=1 Fvs call zshfe#Do(<f-args>, "vsplit")
+
+nmap <Leader>e :Fe 
+nmap <Leader><space> :Fsp 
+nmap <Leader>v :Fvs 
similarity index 92%
rename from vim/.vim/plugin/zshfe.zsh
rename to vim/.vim/pack/stargrave/start/zshfe/plugin/zshfe.zsh
index 1afcb2a4b5eed359e0968d17a3f78ee1f65132a5..9222054adf47833ed4e48d013205f11846aa95a6 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/env zsh
 
-set -e
+setopt ERR_EXIT
 zmodload zsh/zpty
 zpty zshfe zsh
 zpty -w zshfe "print ZSHFE $*"$'\t EFHSZ\nexit\n'
diff --git a/vim/.vim/plugin/bracketedpaste.vim b/vim/.vim/plugin/bracketedpaste.vim
new file mode 100644 (file)
index 0000000..a80617f
--- /dev/null
@@ -0,0 +1,4 @@
+let &t_BE = "\e[?2004h"
+let &t_BD = "\e[?2004l"
+exec "set t_PS=\e[200~"
+exec "set t_PE=\e[201~"
diff --git a/vim/.vim/plugin/buftabline.vim b/vim/.vim/plugin/buftabline.vim
deleted file mode 100644 (file)
index 24a3547..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-if exists("g:loaded_mein_buftabline") | finish | endif
-let g:loaded_mein_buftabline = 1
-
-function! BufTabline()
-    redir => bufsRaw
-    silent buffers
-    redir END
-    let bufs = []
-    for buf in split(bufsRaw, "\n")[:16]
-        let leftIdx = stridx(buf, '"')
-        let rightIdx = strridx(buf, '"')
-        let filename = substitute(buf[leftIdx + 1 : rightIdx - 1], "%", "%%", "g")
-        let linenum = split(buf[rightIdx:], " ")[-1]
-        let attrs = split(buf[:leftIdx-1], '\s\+')
-        let attrs = map(attrs, 'substitute(v:val, "%", "%%", "g")')
-        let attrs = (len(attrs) == 1) ? attrs[0] : attrs[0] . ":" . join(attrs[1:], "")
-        let attrs = "%#TabLine#" . attrs . "%*"
-        if len(filename) > 20 | let filename = "<" . filename[-(20-1):] | endif
-        let hl = (match(attrs, "%%") == -1) ? "%#TabLine#:" : "%#TabLineSel#"
-        let bufs = add(bufs, attrs . hl . filename . ":" . linenum . "%*")
-    endfor
-    return join(bufs, "  ")
-endfunction
-
-set showtabline=2
-set tabline=%!BufTabline()
diff --git a/vim/.vim/plugin/chnglstnav.vim b/vim/.vim/plugin/chnglstnav.vim
deleted file mode 100644 (file)
index e383743..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-if exists("g:loaded_mein_chnglstnav") | finish | endif
-let g:loaded_mein_chnglstnav = 1
-
-function! s:Chng(...)
-    if a:0 == 0 | return | endif
-    execute "normal " . a:1 . (a:1 > 0 ? "g;" : "g,")
-endfunction
-
-command! -nargs=? Chng call s:Chng(<args>)
-nmap <End> :changes<CR>:Chng<Space>
diff --git a/vim/.vim/plugin/ctags.vim b/vim/.vim/plugin/ctags.vim
deleted file mode 100644 (file)
index fbc438c..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-" Universal Ctags creator
-" Maintainer: Sergey Matveev <stargrave@stargrave.org>
-" License: GNU General Public License version 3 of the License or later
-"
-" Create "tags" file in your project's root first.
-" Then :Ctags LANG to fill it.
-
-if exists("g:loaded_mein_ctags") | finish | endif
-let g:loaded_mein_ctags = 1
-
-function! s:ctags(lang, onlyCmd, verbose)
-    let dst = tagfiles()
-    if len(dst) == 0
-        echohl WarningMsg | echomsg "No tagfiles" | echohl None
-        return
-    endif
-    let dst = sort(dst, {a, b -> len(a) > len(b) ? 1 : len(a) == len(b) ? 0 : -1})[0]
-    let src = "/" . join(split(dst, "/")[:-3], "/")
-    if dst[0] != "/"
-        let dst = getcwd() . "/.tags/tags"
-        let src = getcwd()
-    endif
-    let cmdline = [
-        \"uctags",
-        \"--languages=" . a:lang,
-        \"--python-kinds=-i",
-        \"--c++-kinds=+p",
-        \"--recurse",
-    \]
-    if a:verbose == v:true | let cmdline += ["--verbose"] | endif
-    let cmdline += ["-f", dst, src]
-    if a:onlyCmd == v:true
-        echo join(cmdline, " ")
-        return
-    endif
-    execute "!" . join(cmdline, " ")
-    if a:verbose != v:true | redraw! | endif
-endfunction
-
-command! -nargs=1 Ctags silent call s:ctags(<f-args>, v:false, v:false)
-command! -nargs=1 Ctagsv silent call s:ctags(<f-args>, v:true, v:false)
-command! -nargs=1 Ctagscmd call s:ctags(<f-args>, v:true, v:true)
diff --git a/vim/.vim/plugin/defsplit.vim b/vim/.vim/plugin/defsplit.vim
deleted file mode 100644 (file)
index f995c8a..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-" Python function call splitter
-" Maintainer: Sergey Matveev <stargrave@stargrave.org>
-" License: GNU General Public License version 3 of the License or later
-"
-" This plugin splits Python function call on several lines.
-"
-"   def foobar(self, foo: str, bar: Some[thing, too]) -> None:
-" to
-"   def foobar(
-"           self,
-"           foo: str,
-"           bar: Some[thing, too],
-"   ) -> None:
-"
-"   foo(bar, baz)[0]
-" to
-"   foo(
-"       bar,
-"       baz,
-"   )[0]
-"
-" You can un-split it using :Undefsplit command on the line where
-" splitting starts.
-"
-" :Defsplit has optional argument specifying how many opening round
-" parenthesis must be skipped.
-" :Defsplit 1 on foo(baz(baz(...))) produces
-"    foo(baz(
-"        baz(...),
-"    ))
-"
-" Also there is :Brsplit command behaving similarly, but it splits other
-" types of brackets: "{}", "[]".
-
-if exists("g:loaded_defsplit") | finish | endif
-let g:loaded_defsplit = 1
-if !exists("g:defsplit_shift") | let g:defsplit_shift = "    " | endif
-
-function! s:bracket_find(brs_allowable, line, offset)
-    let possible = []
-    for bracket in a:brs_allowable
-        let found = stridx(a:line, bracket, a:offset)
-        if found != -1 | let possible += [found] | endif
-    endfor
-    return min(possible)
-endfunction
-
-function! s:defsplit(brs_allowable, single_line_comma, ...)
-    if a:0 == 0 | let skip = 0 | else | let skip = str2nr(a:1) | endif
-    let shift = g:defsplit_shift
-    let line = getline(".")
-    for i in range(len(line))
-        if line[i] != g:defsplit_shift[0]
-            let prfx = strpart(line, 0, i)
-            if line[i : i+3] ==# "def " ||
-                \line[i : i+5] ==# "class " ||
-                \line[i : i+9] ==# "async def "
-                let shift .= shift
-            endif
-            break
-        endif
-    endfor
-    let brs = {"(": ")", "[": "]", "{": "}"}
-    let brfirst = s:bracket_find(a:brs_allowable, line, 0)
-    let brlast = strridx(line, brs[line[brfirst]])
-    while skip > 0
-        let brfirst = s:bracket_find(a:brs_allowable, line, brfirst + 1)
-        let brlast = strridx(line, brs[line[brfirst]], brlast - 1)
-        let skip -= 1
-    endwhile
-    let [curly, round, squar, outbuf] = [0, 0, 0, ""]
-    let ready = [strpart(line, 0, brfirst + 1)]
-    let trailing_comma = 1
-    for c in split(line[brfirst + 1 : brlast-1], '\zs')
-        if c ==# "*" | let trailing_comma = 0 | endif
-        if outbuf ==# "" && c ==# " " | continue | endif
-        let outbuf .= c
-        if c ==# "," && !curly && !round && !squar
-            let ready = add(ready, prfx . shift . outbuf)
-            let outbuf = ""
-        elseif c ==# "[" | let squar += 1
-        elseif c ==# "]" | let squar -= 1
-        elseif c ==# "(" | let round += 1
-        elseif c ==# ")" | let round -= 1
-        elseif c ==# "{" | let curly += 1
-        elseif c ==# "}" | let curly -= 1
-        endif
-    endfor
-    if trailing_comma && !(a:single_line_comma == v:true && len(ready) == 1)
-        let outbuf = outbuf . ","
-    endif
-    let ready = add(ready, prfx . shift . outbuf)
-    let ready = add(ready, prfx . strpart(line, brlast))
-    call append(line("."), ready)
-    normal "_dd
-endfunction
-
-command! -nargs=? Defsplit call s:defsplit(["("], v:false, <f-args>)
-command! -nargs=? Brsplit call s:defsplit(["(", "[", "{"], v:false, <f-args>)
-command! -nargs=? Defsplits call s:defsplit(["("], v:true, <f-args>)
-command! -nargs=? Brsplits call s:defsplit(["(", "[", "{"], v:true, <f-args>)
-
-command! Undefsplit normal ^v%$J:keepp s/^\(.*\)\([([{]\) \(.*[^,]\),\?\([)\]}]\)\(.*\)$/\1\2\3\4\5<CR>:keepp s/, \?\([)\]}]\+\)$/\1/e<CR>:<CR>
index a412e42d5dd2824b328335a969a5d793a2e2a062..bb39d028a14bd0378b2c54f154561fa95d9266f9 100644 (file)
@@ -1,7 +1,9 @@
-let g:loaded_2html_plugin = 1
-let g:loaded_getscriptPlugin = 1
-let g:loaded_logipat = 1
-let g:loaded_rrhelper = 1
-let g:loaded_spellfile_plugin = 1
-let g:loaded_vimballPlugin = 1
-let g:loaded_vimball = 1
+vim9script
+
+g:loaded_2html_plugin = 1
+g:loaded_getscriptPlugin = 1
+g:loaded_logipat = 1
+g:loaded_rrhelper = 1
+g:loaded_spellfile_plugin = 1
+g:loaded_vimballPlugin = 1
+g:loaded_vimball = 1
index 39114313ff439a0c093b3950b73aa0900060b440..e0f00790fd7dddb30f678765811af55a08c96568 100644 (file)
@@ -1,8 +1,2 @@
-if exists("g:loaded_mein_exted") | finish | endif
-let g:loaded_mein_exted = 1
-
-function! s:exted(ext)
-    execute "edit %<." . a:ext
-endfunction
-
-command! -nargs=1 Ee silent call s:exted(<f-args>)
+vim9script
+command -nargs=1 Ee execute "edit %<." .. <f-args>
diff --git a/vim/.vim/plugin/file_line.vim b/vim/.vim/plugin/file_line.vim
deleted file mode 100644 (file)
index 45e250e..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-" Simplified version of http://www.vim.org/scripts/script.php?script_id=2184
-" that does not replace current window
-
-if exists("g:loaded_mein_file_line") | finish | endif
-let g:loaded_mein_file_line = 1
-
-function! s:gotoline()
-    let file = bufname("%")
-    if filereadable(file) | return | endif
-    let names = matchlist(file, '\(.\{-1,}\):\%(\(\d\+\)\%(:\(\d*\):\?\)\?\)\?$')
-    if empty(names) | return | endif
-    let file_name = names[1]
-    let line_num = names[2] == "" ? "0" : names[2]
-    let col_num = names[3] == "" ? "0" : names[3]
-    if !filereadable(file_name) | return | endif
-    let nr = bufnr("%")
-    exec "keepalt edit +" . line_num . " " . file_name
-    exec "normal! " . col_num . "|"
-    exec "bdelete " . nr
-endfunction
-
-autocmd! BufNewFile *:* nested call s:gotoline()
-autocmd! BufRead *:* nested call s:gotoline()
diff --git a/vim/.vim/plugin/fzf.vim b/vim/.vim/plugin/fzf.vim
deleted file mode 100644 (file)
index cd8284a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-let g:fzf_preview_window = []
index 7b52921113ff525e61bca15bf3c45828d7fa4f9a..26f3d17524fd7f1926f98847c82558f542d0c68a 100644 (file)
@@ -1,11 +1,6 @@
-if exists("g:loaded_mein_ggrep") | finish | endif
-let g:loaded_mein_ggrep = 1
+vim9script
 
-function! s:Vmg(pattern)
-    silent execute 'Ggrep "' . a:pattern . '"'
+command! -nargs=* -complete=file Vmg {
+    silent execute "Ggrep \"" .. <q-args> .. '"'
     copen
-    redraw!
-    let g:pylint_disable=1
-endfunction
-
-command! -nargs=* -complete=file Vmg call s:Vmg(<q-args>)
+}
diff --git a/vim/.vim/plugin/git-alias.vim b/vim/.vim/plugin/git-alias.vim
new file mode 100644 (file)
index 0000000..753b16b
--- /dev/null
@@ -0,0 +1,2 @@
+command! Gblame Git blame
+command! Gcommit Git commit
index e0878e7e2186e0fad352054a25b88cb79244b270..333a9d7214553fb08eddadc4d179876ec88ccc41 100644 (file)
@@ -1,13 +1,8 @@
-if exists("g:loaded_mein_grep") | finish | endif
-let g:loaded_mein_grep = 1
+vim9script
 
-function! s:Vim(pattern)
-    let ignorecase_bak=&ignorecase
-    set noignorecase
-    execute "vimgrep /" . a:pattern . "/ **/*"
+command! -nargs=* -complete=file Vim {
+    set grepprg=grep\ -Rns\ --binary-files=without-match\ --exclude-dir=.git\ --exclude-dir=.tags\ $*\ /dev/null\ .
+    execute "silent grep \"" .. <q-args> .. "\""
     copen
-    let &ignorecase=ignorecase_bak
-    let g:pylint_disable=1
-endfunction
-
-command! -nargs=* -complete=file Vim call s:Vim(<q-args>)
+    redraw!
+}
index 45f903c44f2091d0c851b9dfcd9fcc8acac8b3aa..a342e3cfe3398e2a0075bc5fe5edd49b29dbccc3 100644 (file)
@@ -1,20 +1,57 @@
-if exists("g:loaded_mein_lsp") | finish | endif
-let g:loaded_mein_lsp = 1
-let g:lsp_auto_enable = 1
+vim9script
 
-let g:lsp_diagnostics_echo_cursor = 1
-let g:lsp_diagnostics_echo_delay = -1
-let g:lsp_signature_help_enabled = 0
+# go get golang.org/x/tools/gopls@latest
+# pip install "python-language-server[all]"
 
-function! s:on_lsp_buffer_enabled() abort
-    setlocal omnifunc=lsp#complete
-    nmap <buffer> [g <Plug>(lsp-previous-diagnostic)
-    nmap <buffer> ]g <Plug>(lsp-next-diagnostic)
-    nmap <buffer> gd <plug>(lsp-definition)
-    nmap <buffer> K <plug>(lsp-hover)
-endfunction
+var lspServers: list<dict<any>>
 
-augroup lsp_install
-    autocmd!
-    autocmd User lsp_buffer_enabled call s:on_lsp_buffer_enabled()
-augroup END
+for d in [
+    {
+        filetype: ["c", "ch", "cpp"],
+        path: "clangd",
+        args: ["--log=error"],
+    },
+    {
+        filetype: ["go", "gomod"],
+        path: "gopls",
+        syncInit: true,
+    },
+    {
+        filetype: ["python"],
+        path: "pyls",
+        syncInit: true,
+        workspaceConfig: {pyls: {
+            configurationSources: ["flake8"],
+            plugins: {
+                mccabe: {enabled: false},
+            },
+        }},
+    },
+]
+    if executable(d["path"])
+        add(lspServers, d)
+    endif
+endfor
+
+var lspOpts = {
+    ignoreMissingServer: true,
+    autoComplete: false,
+
+    autoHighlight: true,
+    autoPopulateDiags: true,
+
+    # Lint warning only on status line, do not show near cursor
+    showDiagInPopup: false,
+    showDiagOnStatusLine: true,
+    showSignature: false,
+}
+
+set omnifunc=g:LspOmniFunc
+autocmd VimEnter * call LspAddServer(lspServers)
+autocmd VimEnter * call LspOptionsSet(lspOpts)
+autocmd CursorMoved * silent! LspDiagCurrent
+nmap gd :LspGotoDefinition<CR>
+nmap <C-W>gd :vert LspGotoDefinition<CR>
+nmap <F6> :lopen<CR>
+nmap [l :LspDiagPrev<CR>
+nmap ]l :LspDiagNext<CR>
index a724061835184376659f789821229ca8739008ed..9b71a8d6afe587a30327e32c3284efc4037950e8 100644 (file)
@@ -1,12 +1,14 @@
+vim9script
 if exists("g:loaded_mein_netrw") | finish | endif
-let g:loaded_mein_netrw = 1
+g:loaded_mein_netrw = 1
 
-let g:netrw_banner = 0
-let g:netrw_bufsettings = "noma nomod nowrap ro nobl"
+g:netrw_banner = 0
+g:netrw_bufsettings = "noma nomod nowrap ro nobl"
 
-function! WinClose(islocal)
+def g:WinClose(islocal: number): string
     close
-endfunction
-let g:Netrw_UserMaps = [["<Del>", "WinClose"]]
+    return ""
+enddef
+g:Netrw_UserMaps = [["<Del>", "g:WinClose"]]
 
 autocmd VimLeave * call delete("/home/stargrave/.vim/.netrwhist")
diff --git a/vim/.vim/plugin/pastemode.vim b/vim/.vim/plugin/pastemode.vim
deleted file mode 100644 (file)
index 78f42a0..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-if exists("g:loaded_mein_pastemode") | finish | endif
-let g:loaded_mein_pastemode = 1
-
-if &term =~ "screen.*"
-    let &t_ti = &t_ti . "\e[?2004h"
-    let &t_te = "\e[?2004l" . &t_te
-    function! XTermPasteBegin(ret)
-        set pastetoggle=<Esc>[201~
-        set paste
-        return a:ret
-    endfunction
-    map <expr> <Esc>[200~ XTermPasteBegin("i")
-    imap <expr> <Esc>[200~ XTermPasteBegin("")
-    cmap <Esc>[200~ <nop>
-    cmap <Esc>[201~ <nop>
-endif
diff --git a/vim/.vim/plugin/whereami.vim b/vim/.vim/plugin/whereami.vim
deleted file mode 100644 (file)
index f3a4f3c..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-if exists("g:loaded_mein_whereami") | finish | endif
-let g:loaded_mein_whereami = 1
-
-function! s:pwdLoad()
-    let g:mein_pwdL=trim(system("pwd -L"))
-    let g:mein_pwdP=trim(system("pwd -P"))
-endfunction
-
-autocmd VimEnter * call s:pwdLoad()
-
-function! WhereAmI(fmt)
-    let fullpath = expand("%:p")
-    if fullpath[:len(g:mein_pwdP)-1] ==# g:mein_pwdP
-        let fullpath = g:mein_pwdL . fullpath[len(g:mein_pwdP):]
-    endif
-    if a:fmt == "gnu"
-        let where = fullpath . ":" . line(".")
-    elseif a:fmt == "lldb"
-        let where = "breakpoint set --file " . fullpath . " --line " . line(".")
-    else
-        let where = "unknown fmt"
-    endif
-    let @* = where
-    echomsg where
-endfunction
-
-nmap <leader>w :call WhereAmI("gnu")<CR>
-nmap <leader>W :call WhereAmI("lldb")<CR>
diff --git a/vim/.vim/plugin/zshfe.vim b/vim/.vim/plugin/zshfe.vim
deleted file mode 100644 (file)
index fd5e5b1..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-" zsh file completion caller
-" Maintainer: Sergey Matveev <stargrave@stargrave.org>
-" License: GNU General Public License version 3 of the License or later
-
-if exists("g:loaded_zshfe") | finish | endif
-let g:loaded_zshfe = 1
-if !exists("g:zshfe_path") | let g:zshfe_path=expand("~/.vim/plugin/zshfe.zsh") | endif
-
-function! s:zshfe(query, opencmd)
-    silent let result = systemlist(g:zshfe_path . " " . a:query)
-    if len(result) == 0 | return | endif
-    exec a:opencmd . " " . result[0][:-2]
-endfunction
-
-command! -nargs=1 Fe call s:zshfe(<f-args>, "edit")
-command! -nargs=1 Fsp call s:zshfe(<f-args>, "split")
-command! -nargs=1 Fvs call s:zshfe(<f-args>, "vsplit")
-
-nmap <Leader>e :Fe 
-nmap <Leader><space> :Fsp 
-nmap <Leader>v :Fvs 
index ffa302ccaf577ef43ec0add0115264f05e047bc5..433a95c095fba5c5019cdcdb469321a908d16e80 100644 (file)
@@ -9,9 +9,9 @@ set encoding=utf-8
 "set t_kD=\7f
 set mouse="" " if Vim is compiled with mouse support
 
-set viminfo='100,<50,s10,f1,%,n~/secure/vim/info
+set viminfo-=h
+set viminfo+=f1,%,n~/secure/vim/info
 set viewdir=~/secure/vim/view
-set history=128
 set directory=~/secure/vim/tmp
 set undodir=~/secure/vim/undo
 set undofile
@@ -31,14 +31,15 @@ set highlight+=sr
 set cpoptions+=$
 set showcmd
 set showmatch
-set listchars=trail:·,tab:>→,nbsp:% ",eol:¶
-set list
 set completeopt-=preview
 set diffopt+=indent-heuristic,algorithm:histogram
 
 set cursorline
 set cursorcolumn
 set colorcolumn=80
+
+set listchars=trail:·,tab:>→,nbsp:% ",eol:¶
+set list
 highlight ExtraWhitespace ctermbg=green ctermfg=blue
 match ExtraWhitespace /\s\+$/
 
@@ -50,15 +51,15 @@ set smartcase
 set hlsearch
 set incsearch
 set gdefault
-set wildmode=longest:list
+map <F4> :nohlsearch<CR>:call mark#Toggle()<CR>
+
+set wildmode=list:longest
 set tags=.tags/**/tags;
 set wildignore=**/.git,**/.tags
 
 set exrc
 set secure
 
-map <F4> :nohlsearch<CR>:MarkClear<CR>
-
 " Folding {{{
 set foldmethod=indent
 set foldnestmax=9
@@ -72,8 +73,9 @@ highlight CursorColumn ctermfg=cyan ctermbg=red
 " }}}
 
 " Statusline {{{
+let MeinStatus = {-> exists("b:mein_status_func") ? b:mein_status_func() : ""}
 set laststatus=2
-set statusline=%F\ %m%r%h%w%q%k
+set statusline=%F\ %m%r%h%w%k
 set statusline+=%{len(getqflist())?'[Q]':''}
 set statusline+=%{len(getloclist(0))?'[L]':''}
 set statusline+=\ %=
@@ -82,17 +84,13 @@ set statusline+=%#DiffChange#%{strlen(&fenc)?&fenc:&enc}%{&bomb?'-bom':''}\ %{&f
 set statusline+=%#DiffAdd#%l/%L
 set statusline+=%#Todo#%c%V:0x%B
 set statusline+=%#Comment#%o
-set statusline+=%#Error#%{LintStatus()}
+set statusline+=%#Error#%{MeinStatus()}
 set statusline+=%*\ %P
-
-function! LintStatus() " it is overrided in ftplugins
-    return ""
-endfunction
 " }}}
 
 " View saving {{{
-autocmd BufWinLeave *.* mkview
-autocmd BufWinEnter *.* silent loadview
+autocmd BufWinLeave ?* silent! if &ft !=# "gitcommit" | mkview | endif
+autocmd BufWinEnter ?* silent! loadview
 " }}}
 
 " Windows related {{{
@@ -144,13 +142,12 @@ iabbrev итд и т.д.
 iabbrev итп и т.п.
 " }}}
 
-set keywordprg=
+let g:tex_flavor = "latex"
+set keywordprg=:LspHover
 let g:sh_no_error = 1
-
 set termwinkey=<C-B>
 
 nmap <space> f<space>
-vmap <space> I<space><ESC>gv
 nmap _ f_l
 
 nmap <leader>] "*yiw
@@ -159,22 +156,28 @@ nmap <leader>p "_diwP
 nnoremap <leader>d "_d
 vnoremap <leader>d "_d
 
-cmap <C-O> <S-Left>
-cmap <C-P> <S-Right>
-
 map Q gq
-map Y y$
 cmap ][ '[,']
 imap <C-b> <C-x><C-o>
-nmap <F2> :set wrap!<CR>:set wrap?<CR>
+imap <C-@> <C-x><C-f>
 nmap <Tab> :buffers<CR>:b<Space>
 nmap <silent> <Home> :registers<CR>
 nmap <leader>' yiwciw"<C-r>""<ESC>
 nmap <leader>h1 yypVr=o
 nmap <leader>sc 024i-<ESC>a >8 <ESC>24a-<ESC>
 nmap <leader><C-]> :vertical wincmd ]<CR>
+nmap [oc :copen<CR>
+nmap ]oc :cclose<CR>
 nnoremap <C-P> <C-I>
 
+nmap ZQ :qall<CR>
+nmap ZZ :wall<CR>:mksession!<CR>:qall<CR>
+
 command! E Explore
 command! Ch cd %:p:h
 command! -bar -nargs=? -bang Tmp :silent vnew<bang>|setlocal buftype=nofile bufhidden=hide noswapfile buflisted filetype=<args> modifiable
+
+execute "digraphs Ru" .. 0x20BD
+
+runtime ftplugin/man.vim
+packadd cfilter
diff --git a/vim/.zsh/aliases/vi b/vim/.zsh/aliases/vi
new file mode 100644 (file)
index 0000000..dca1e02
--- /dev/null
@@ -0,0 +1 @@
+alias vi="vim"
similarity index 100%
rename from bin/bin/mktags
rename to vim/bin/mktags
similarity index 77%
rename from bin/bin/qq
rename to vim/bin/qq
index 250645a664e6476d699ad4ae135a2e5ee943207d..290f13654e5cc492c287fd2fe6b0aa5f3b287707 100755 (executable)
@@ -6,5 +6,5 @@ tmux save-buffer $tmp
 tmux delete-buffer
 perl -ne '/^([^:]+:\d+:.*[^\s])\s*$/ and print "$1\n"' < $tmp > $tmp.err
 rm $tmp
-vim -c 'let g:pylint_disable=1' -c copen -q $tmp.err
+vim -c copen -q $tmp.err
 rm $tmp.err
similarity index 100%
rename from bin/bin/vimclear.sh
rename to vim/bin/vimclear
index 82e6a077a6c91b71a16e4f7c93df1d90a6585c8c..00f07a8971b1907faa71116131ac573d5c43e937 100644 (file)
@@ -5,7 +5,7 @@ Xft.autohint: false
 
 XTerm.termName: screen-256color
 XTerm.vt100.internalBorder: 0
-XTerm.vt100.faceName: Inconsolata LGC:pixelsize=16:antialias=false:autohint=true
+XTerm.vt100.faceName: Go Mono:pixelsize=18:antialias=true
 XTerm.vt100.foreground: gray90
 XTerm.vt100.background: black
 XTerm.vt100.cursorColor: white
@@ -21,5 +21,7 @@ XTerm.vt100.Translations: #override \
     Shift<Key>Page_Up: string("\e[5;2~") \n \
     <Key>Menu: string("\ 1") \n \
     <Key>Super_R: string("\ 1") \n \
+    <Btn4Down>: string("\19") \n \
+    <Btn5Down>: string("\ 5") \n \
     Shift Alt<Key>Insert: insert-selection(CLIPBOARD, CUT_BUFFER1)
 XTerm.vt100.trimSelection: true
diff --git a/x/.drirc b/x/.drirc
new file mode 100644 (file)
index 0000000..f9f2fa3
--- /dev/null
+++ b/x/.drirc
@@ -0,0 +1,5 @@
+<device screen="0" driver="dri2">
+    <application name="Default">
+        <option name="vblank_mode" value="0"/>
+    </application>
+</device>
index 0e037b91a787a80a424f435905e70000c46c1dc9..4717bbb7284a628ae6ac9a84aa82a317f5c8acd3 100755 (executable)
@@ -1,10 +1,10 @@
 #!/bin/zsh
 
-xsetroot -solid \#222222 &
+xsetroot -solid \#222222
 xset b off
+setxkbmap -rules xorg -layout us,ru -option grp:caps_toggle,grp_led:caps
 xrdb ~/.Xresources
 xmodmap ~/.Xmodmap
-~/bin/xstatusbar.sh &
-rm -f ~/.ssh/agent ; ssh-agent -a ~/.ssh/agent
-~/bin/cleanup.sh
-exec $HOME/src/suckless/dwm/dwm
+~/work/godwmstat/godwmstat -xsetroot &
+rm -f ~/.ssh/agent ; ssh-agent -a $SSH_AUTH_SOCK
+exec ~/src/suckless/dwm/dwm
similarity index 100%
rename from bin/bin/dwm-menu
rename to x/bin/dwm-menu
similarity index 100%
rename from bin/bin/dwm-term
rename to x/bin/dwm-term
similarity index 100%
rename from bin/bin/mylock
rename to x/bin/mylock
diff --git a/x/bin/start-im b/x/bin/start-im
new file mode 100755 (executable)
index 0000000..69727ae
--- /dev/null
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+st -t Terminal8 -e sh -c "cd /home/stargrave/secure/mmc ; /home/stargrave/work/mmc/cmd/start" 2>/dev/null &
similarity index 96%
rename from bin/bin/start-tabbed.sh
rename to x/bin/start-tabbed.sh
index f7a0bf91f775f37c2451ee5f320d28caa9c1ef78..7fbfe019eac8b59eb88a85c77dbeb84ffd7f61a9 100755 (executable)
@@ -13,4 +13,5 @@ w=/tmp/tabbed-$tabname
 }
 [ -z "$NOTABSTART" ] || exit 1
 tabbed -n tabbed-$tabname -d $@ > $w
+sleep 0.1
 exec $0 $tabname $@
similarity index 100%
rename from bin/bin/start-x
rename to x/bin/start-x
similarity index 100%
rename from bin/bin/xr-external
rename to x/bin/xr-external
similarity index 100%
rename from bin/bin/xr-internal
rename to x/bin/xr-internal
diff --git a/xombrero/.xombrero.conf b/xombrero/.xombrero.conf
deleted file mode 100644 (file)
index 30714ff..0000000
+++ /dev/null
@@ -1,410 +0,0 @@
-##
-## GENERAL SETTINGS
-##
-
-#
-# The strategy for the config file is as follows:
-#
-# Boolean values are the opposite of the default and need to simply be
-# uncommented to alter the default.
-#
-# Text values *are* set to the default and in order to change them one must
-# uncomment the option *and* change the value.
-#
-
-# NOTE: browser_mode and gui_mode MUST be the first entries in this
-# file!
-
-# Normal browser operation (default).
-# browser_mode         = normal
-
-# Prevent tracking operation.
-browser_mode           = whitelist
-
-# Classic GUI (default).
-# gui_mode             = classic
-
-# Minimalistic GUI.
-gui_mode               = minimal
-
-home                   = file:///home/stargrave/.lynx_bookmarks.html
-download_dir           = ~/tmp
-download_mode          = start
-# download_notifications = 1
-# window_maximize      = 1
-# window_width         = 1024
-# window_height                = 768
-# enable_spell_checking        = 1
-# spell_check_languages        = en_US
-# default_zoom_level   = 1.0
-encoding               = UTF-8
-ssl_ca_file            = /usr/local/share/certs/ca-root-nss.crt
-# ssl_strict_certs     = 1
-enable_strict_transport = 1
-# ctrl_click_focus     = 1
-# append_next          = 0
-# save_global_history  = 1
-color_visited_uris     = 0
-guess_search           = 1
-# enable_autoscroll    = 1
-# session_autosave     = 1
-# history_autosave     = 1
-# autofocus_onload     = 1
-# single_instance      = 1
-enable_socket          = 1
-# enable_js_autorun    = 0
-auto_load_images       = 0
-enable_localstorage    = 1
-# userstyle            = /usr/local/share/xombrero/style.css
-# userstyle_global     = 1
-enable_favicon_entry   = 0
-enable_favicon_tabs    = 0
-# preload_strict_transport = 1
-# referer              = always
-referer                = same-domain
-warn_cert_changes      = 1
-enable_cache           = 0
-# js_auto_open_windows = 0
-
-# See http://www.xroxy.com/proxylist.php for a good list of open
-# proxies.
-#
-# polipo
-# http_proxy                   = http://127.0.0.1:8123
-#
-# tsocks
-# http_proxy                   = http://127.0.0.1:1080
-#
-http_proxy = socks5://localhost:4444/
-# If you only occasionally use a proxy
-http_proxy_starts_enabled      = 0
-
-# Search engines; uncomment one of these lines for you favorite search
-# engine.
-#
-# Google
-# search_string                = https://www.google.com/search?q=%s
-#
-# Yahoo
-# search_string                = http://search.yahoo.com/search?p=%s
-#
-# Start Page
-# search_string                = https://startpage.com/do/search?language=english_us&cat=web&query=%s
-#
-# DuckDuckGo
-search_string          = https://lite.duckduckgo.com/lite/?q=%s
-
-# External editor.
-# NOTE: The editor specified here must not fork into the background.
-#
-# Examples of editors:
-external_editor = st -e vim -f <file>
-# external_editor      = gvim -f <file>
-# external_editor      = xterm -geometry 177x58+0+0 -font -*-fixed-medium-r-*-*-15-*-*-*-*-*-iso8859-* -e vim -f <file>
-# external_editor      = emacsclient -c <file>
-
-# "default_script" points to a script executed by the run_script
-# command. The only argument passed to this script is the current URI.
-#
-# default_script       = ~/.xombrero/playflash.sh
-
-# "user_agent" can be set to just about anything, for a comprehensive
-# list see: http://www.useragentstring.com/pages/All/ . If more than one
-# "user_agent" is given, then xombrero will use them in a round-robin
-# fashion for each request.
-#
-#user_agent            = Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)
-#user_agent            = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
-#user_agent            = Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.27 Safari/532.0
-#user_agent            = Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7C144 Safari/528.16
-#user_agent = Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1
-#
-
-##
-## ALIASES
-##
-
-# Aliases are given in the following format:
-#
-#   alias = <alias>, <link>
-#
-# Where the link part might contain "%s", the "%s" will be substituted
-# with the user's input when the alias is expanded.
-
-# alias = s,     https://www.google.com/search?q=%s
-# alias = w,     https://secure.wikimedia.org/wikipedia/en/w/index.php?title=Special%3ASearch&search=%s
-# alias = ports,  http://openports.se/search.php?so=%s
-
-alias = gg, https://www.google.com/search?q=%s
-alias = py, https://pypi.org/project/%s/
-alias = rfc, https://tools.ietf.org/html/rfc%s
-alias = we, https://en.wikipedia.org/wiki/%s
-alias = wr, https://ru.wikipedia.org/wiki/%s
-
-##
-## COOKIE, JAVASCRIPT AND PLUGIN WHITE LISTS
-##
-
-# Add the domains you trust.
-
-# cookie_wl            = .conformal.com
-# cookie_wl            = .peereboom.us
-
-# js_wl                        = .conformal.com
-# js_wl                        = .peereboom.us
-
-# pl_wl                        = .conformal.com
-# pl_wl                        = .peereboom.us
-
-
-##
-## FORCE HTTPS FOR SITES
-##
-
-# Add the domains of sites that should be only accesed over HTTPS.
-
-# force_https          = .conformal.com
-
-
-##
-## MIME TYPES
-##
-
-# PDF, note that xpdf can't load a URI directly; use "@" in front of
-# mime_type to indicate to download the file first.
-
-# mime_type            = application/pdf,kpdf
-# mime_type            = @application/pdf,xpdf
-
-# Specific MIME type for video.
-# mime_type            = video/x-ms-wmv,mplayer
-# mime_type            = video/quicktime,mplayer
-
-# Default MIME type for video.
-# mime_type            = video/*,mplayer
-
-# Default MIME type for audio.
-# mime_type            = audio/*,vlc
-
-# Word documents.
-# mime_type            = application/msword,soffice
-
-# Ignoring flash can be done by using the donothing pseudo-binary.
-# mime_type            = application/x-shockwave-flash,donothing
-
-
-##
-## ADVANCED SETTINGS
-##
-
-# resource_dir         = /usr/local/share/xombrero/
-# refresh_interval     = 10
-# url_regex            = ^[[:blank:]]*[^[:blank:]]*([[:alnum:]-]+\.)+[[:alnum:]-][^[:blank:]]*[[:blank:]]*$
-# gnutls_priority_string = NORMAL:%COMPAT
-
-# NOTE: webkit 1.4.x overwrites these values!
-# max_host_connections = 5
-# max_connections      = 25
-
-
-##
-## ADVANCED GUI SETTINGS
-##
-
-# The following low-level GUI settings are set by the high-level setting
-# "gui_mode".
-
-# The settings for "gui_mode = classic" are as follows:
-
-# fancy_bar            = 1
-# show_tabs            = 1
-# tab_style            = normal
-# userstyle_global     = 0
-# show_url             = 1
-# show_statusbar       = 0
-# show_scrollbars      = 1
-
-# The settings for "gui_mode = minimal" are as follows:
-
-# fancy_bar            = 0
-# show_tabs            = 1
-# tab_style            = compact
-# show_url             = 0
-# show_statusbar       = 1
-# show_scrollbars      = 0
-
-# The following are settings shared between "classic" and "minimal"
-# "gui_mode":
-
-# statusbar_elems      = BP
-statusbar_elems        = BP|T
-# icon_size            = 2
-# cmd_font             = monospace normal 9
-# oops_font            = monospace normal 9
-# statusbar_font       = monospace normal 9
-# tabbar_font          = monospace normal 9
-
-
-##
-## ADVANCED COOKIE AND JAVASCRIPT SETTINGS
-##
-
-# The following low-level settings are set by the high-level setting
-# "browser_mode", and shouldn't be tweaked manually unless you know what
-# you are doing.
-
-# The settings for "browser_mode = normal" are as follows:
-
-# allow_volatile_cookies       = 0
-# cookie_policy                        = allow
-# cookies_enabled              = 1
-# enable_cookie_whitelist      = 0
-# read_only_cookies            = 0
-# save_rejected_cookies                = 0
-# session_timeout              = 3600
-# enable_scripts               = 1
-# enable_js_whitelist          = 0
-# enable_localstorage          = 1
-# enable_plugins               = 1
-# enable_plugin_whitelist      = 0
-# allow_insecure_content       = 1
-# allow_insecure_scripts       = 1
-# do_not_track                 = 0
-
-# The settings for "browser_mode = whitelist" are as follows:
-
-# allow_volatile_cookies       = 0
-cookie_policy                  = no3rdparty
-# cookies_enabled              = 1
-# enable_cookie_whitelist      = 1
-# read_only_cookies            = 0
-# save_rejected_cookies                = 0
-# session_timeout              = 3600
-# enable_scripts               = 0
-# enable_js_whitelist          = 1
-# enable_localstorage          = 0
-# enable_plugins               = 0
-# enable_plugin_whitelist      = 1
-# allow_insecure_content       = 0
-# allow_insecure_scripts       = 0
-do_not_track                   = 1
-
-
-##
-## KEY BINDINGS
-##
-
-# To delete all default keybindings use "keybinding = clearall".
-#
-# keybinding   = clearall
-#
-# Key names can be found at:
-#
-#   http://git.gnome.org/browse/gtk+/tree/gdk/gdkkeysyms-compat.h
-#
-# Just chop off the "GDK_" part and you have the keyname. Or look at:
-#
-#   http://git.gnome.org/browse/gtk+/tree/gdk/gdkkeysyms.h
-#
-# and chop off "GDK_KEY_".
-#
-# Be aware that the names are case sensitive!
-#
-# The default keybindings are the following:
-#
-# keybinding   = command,colon
-# keybinding   = search,slash
-# keybinding   = searchb,question
-# keybinding   = command_mode,!Escape
-# keybinding   = insert_mode,i
-# keybinding   = cookiejar,!M1-j
-# keybinding   = downloadmgr,!M1-d
-# keybinding   = history,!M1-h
-# keybinding   = print,!C-p
-# keybinding   = quitall,!C-q
-# keybinding   = restart,!M1-q
-# keybinding   = run_script,!M1-r
-# keybinding   = js toggle,!C-j
-# keybinding   = cookie toggle,!M1-c
-# keybinding   = togglesrc,!C-s
-# keybinding   = yankuri,y
-# keybinding   = pasteuricur,p
-# keybinding   = pasteurinew,P
-# keybinding   = toplevel toggle,!F4
-# keybinding   = help,!F1
-keybinding     = loadimages,!F1
-keybinding     = :set auto_load_images=1,!F3
-# keybinding   = proxy toggle,!F2
-# keybinding   = searchnext,n
-# keybinding   = searchprevious,N
-# keybinding   = focusaddress,!F6
-# keybinding   = focussearch,!F7
-# keybinding   = hinting,f
-# keybinding   = hinting,period
-# keybinding   = hinting_newtab,S-F
-# keybinding   = hinting_newtab,comma
-# keybinding   = userstyle,s
-# keybinding   = userstyle_global,S
-# keybinding   = goback,BackSpace
-# keybinding   = goback,!M1-Left
-# keybinding   = goforward,!S-BackSpace
-# keybinding   = goforward,!M1-Right
-keybinding     = reload,r
-# keybinding   = reload,!F5
-# keybinding   = reload,!C-r
-# keybinding   = reload,!C-l
-# keybinding   = favorites,!M1-f
-# keybinding   = scrolldown,j
-# keybinding   = scrolldown,Down
-# keybinding   = scrollup,k
-# keybinding   = scrollup,Up
-# keybinding   = scrollbottom,G
-# keybinding   = scrollbottom,End
-# keybinding   = scrolltop,Home
-# keybinding   = scrollpagedown,space
-# keybinding   = scrollpagedown,!C-f
-# keybinding   = scrollpagedown,Page_Down
-# keybinding   = scrollhalfdown,!C-d
-# keybinding   = scrollpageup,Page_Up
-# keybinding   = scrollpageup,!C-b
-# keybinding   = scrollhalfup,!C-u
-# keybinding   = scrollright,l
-# keybinding   = scrollright,Right
-# keybinding   = scrollfarright,dollar
-# keybinding   = scrollleft,h
-# keybinding   = scrollleft,Left
-# keybinding   = scrollfarleft,0
-# keybinding   = statustoggle,!C-n
-keybinding     = stop,!C-c
-# keybinding   = stop,!S-F5
-# keybinding   = tabnew,!C-t
-#keybinding    = tabclose,!d
-keybinding     = tabclose,!C-w
-# keybinding   = tabundoclose,U
-# keybinding   = tabnext 1,!C-1
-# keybinding   = tabnext 2,!C-2
-# keybinding   = tabnext 3,!C-3
-# keybinding   = tabnext 4,!C-4
-# keybinding   = tabnext 5,!C-5
-# keybinding   = tabnext 6,!C-6
-# keybinding   = tabnext 7,!C-7
-# keybinding   = tabnext 8,!C-8
-# keybinding   = tabnext 9,!C-9
-# keybinding   = tabfirst,!C-less
-# keybinding   = tablast,!C-greater
-keybinding     = tabprevious,!C-Page_Up
-keybinding     = tabnext,!C-Page_Down
-keybinding     = tabnext,!C-Tab
-# keybinding   = focusout,!C-minus
-# keybinding   = focusin,!C-equal
-# keybinding   = focusin,!C-plus
-# keybinding   = focusreset,!C-0
-# keybinding   = editelement,!C-i
-# keybinding   = passthrough,!C-z
-keybinding     = :open ,o
-keybinding     = :open <uri>,O
-keybinding     = :tabnew ,t
-keybinding     = :tabnew <uri>,T
-
-# parse the contents of another configuration file
-# include_config       = ~/.xombrero_alternate.conf
index fb683ca4057713057c65cf543d6734db7b1fd852..8418a521b150eda7139cb3e84e68571d1dbbb298 100644 (file)
@@ -1,5 +1,4 @@
 --no-cache-dir
 --youtube-skip-dash-manifest
---force-ipv4
 --no-playlist
---format best[ext=webm]/bestvideo[ext=webm]+bestaudio[ext=webm]/best
+--format bestvideo[vcodec~=av01]+bestaudio[ext=webm]/bestvideo[ext=webm]+bestaudio[ext=webm]/best
diff --git a/youtube-dl/bin/yt b/youtube-dl/bin/yt
new file mode 100755 (executable)
index 0000000..174f043
--- /dev/null
@@ -0,0 +1,7 @@
+#!/usr/local/bin/zsh
+
+. ~/work/youtube-venv/bin/activate
+url=${@[${#@}]}
+args=(${@[1,${#@}-1]})
+[[ ${#url} -eq 11 ]] && url=https://www.youtube.com/watch?v=$url
+yt-dlp --config-location ~/.youtube-dl.conf ${=args} $url
similarity index 52%
rename from bin/bin/ytb
rename to youtube-dl/bin/ytb
index 47b400f977c74e045e37eeebac07adc01ef125b2..275494767fc69f6ad15de732d196e8014f3b00b6 100755 (executable)
@@ -1,3 +1,3 @@
 #!/usr/local/bin/zsh
 
-yt --format best $@
+yt --format b $@
similarity index 87%
rename from bin/bin/zat
rename to zathura/bin/zat
index 90c2f6bea2b638390a9ac44635d5bad237d1b019..f12a71841cfd2f2ca7fc646f6c23d5455ce961cf 100755 (executable)
@@ -4,5 +4,5 @@ export PATH=$HOME/local/bin:$PATH
 export XDG_DATA_DIRS=$HOME/local
 export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH
 winid=`start-tabbed.sh zathura -c`
-bin.zathura -e $winid "$1"
+zathura -e $winid "$1"
 rm -f zathura.core
index 1eff40311527bb7b66a73431ad8899f018deb2c9..99c299172f9c9fcfff7df4075f26342db757f4f3 100644 (file)
@@ -1 +1 @@
-~/bin/cleanup.sh
+~/bin/my-cleanup
index cec79984b7e2cb7842de58be671759b96533a62d..717b32c935c5e21fe0a2c4d30fd9bb50f7bf488d 100644 (file)
@@ -1,4 +1,5 @@
 umask 077
-mkdir -p /tmp/stargrave-xdg /tmp/stargrave-lldb /tmp/stargrave-flags
-env | grep -q XAUTH || ~/bin/rem
-~/bin/cleanup.sh
+[[ -e $XDG_DATA_HOME ]] || mkdir -p $XDG_DATA_HOME /tmp/stargrave-lldb /tmp/stargrave-flags
+export DISPLAY=:0
+export XAUTHORITY=/home/stargrave/.Xauthority
+~/bin/my-cleanup
diff --git a/zsh/.zsh/aliases/grep b/zsh/.zsh/aliases/grep
new file mode 100644 (file)
index 0000000..aa1d316
--- /dev/null
@@ -0,0 +1 @@
+alias -g G="| grep --colour=always"
diff --git a/zsh/.zsh/aliases/ls b/zsh/.zsh/aliases/ls
new file mode 100644 (file)
index 0000000..a841bf8
--- /dev/null
@@ -0,0 +1,2 @@
+alias l="ls -AF, "
+alias ll="ls -D \"%Y-%m-%d %H:%M\" -AFl, "
diff --git a/zsh/.zsh/aliases/redirects b/zsh/.zsh/aliases/redirects
new file mode 100644 (file)
index 0000000..5f520ff
--- /dev/null
@@ -0,0 +1,4 @@
+alias -g 2DN="2>/dev/null"
+alias -g DN=">/dev/null"
+alias -g DNA=">&/dev/null"
+alias -g TO="2>&1"
diff --git a/zsh/.zsh/aliases/tai b/zsh/.zsh/aliases/tai
new file mode 100644 (file)
index 0000000..cdfdc01
--- /dev/null
@@ -0,0 +1 @@
+alias -g T="| tai64nlocal"
diff --git a/zsh/.zsh/aliases/wc b/zsh/.zsh/aliases/wc
new file mode 100644 (file)
index 0000000..c79427f
--- /dev/null
@@ -0,0 +1 @@
+alias -g W="| wc -l | sed 's/ //g'"
diff --git a/zsh/.zsh/env/005functions.zsh b/zsh/.zsh/env/005functions.zsh
new file mode 100644 (file)
index 0000000..c918213
--- /dev/null
@@ -0,0 +1 @@
+fpath=(~/.zsh/functions $fpath)
diff --git a/zsh/.zsh/env/005history.zsh b/zsh/.zsh/env/005history.zsh
new file mode 100644 (file)
index 0000000..9feeea0
--- /dev/null
@@ -0,0 +1,3 @@
+HISTFILE=~/secure/.history
+HISTSIZE=10240
+SAVEHIST=10240
diff --git a/zsh/.zsh/env/005irc.zsh b/zsh/.zsh/env/005irc.zsh
new file mode 100644 (file)
index 0000000..e107fae
--- /dev/null
@@ -0,0 +1,3 @@
+export IRCNAME="Sergey Matveev"
+export IRCNICK="stargrave"
+export MMC_ENTRYPOINT=mm.rnd.stcnet.ru
diff --git a/zsh/.zsh/env/005ls.zsh b/zsh/.zsh/env/005ls.zsh
new file mode 100644 (file)
index 0000000..c75866e
--- /dev/null
@@ -0,0 +1,15 @@
+export CLICOLOR=1
+lscolors=(
+    Bx # ex # directory
+    Gx # fx # symbolic link
+    cx # cx # socket
+    dx # dx # pipe
+    Cx # bx # executable
+    eg # eg # block special
+    Dx # ed # character special
+    ab # ab # executable with setuid bit set
+    ag # ag # executable with setgid bit set
+    ac # ac # directory writable to others, with sticky bit
+    ad # ad # directory writable to others, without sticky bit
+)
+export LSCOLORS=${(j::)lscolors}
diff --git a/zsh/.zsh/env/005paths.zsh b/zsh/.zsh/env/005paths.zsh
new file mode 100644 (file)
index 0000000..4ad8fdd
--- /dev/null
@@ -0,0 +1,18 @@
+path=(~/bin ~/local/bin /usr/local/bin /usr/local/sbin /usr/bin /usr/sbin /bin /sbin)
+manpath=(
+    ~/local/share/man
+    /usr/local/lib/perl5/5.26/perl/man
+    /usr/local/lib/perl5/site_perl/man
+    /usr/share/openssl/man
+    /usr/local/share/man
+    /usr/local/man
+    /usr/share/man
+)
+export -TU INFOPATH infopath
+infopath=(~/local/share/info /usr/local/share/info /usr/local/info)
+
+export -TU PKG_CONFIG_PATH pkg_config_path
+pkg_config_path=(~/local/lib/pkgconfig ~/local/libdata/pkgconfig)
+
+export -TU LD_LIBRARY_PATH ld_library_path
+ld_library_path=(~/local/lib)
diff --git a/zsh/.zsh/env/005redo.zsh b/zsh/.zsh/env/005redo.zsh
new file mode 100644 (file)
index 0000000..504970d
--- /dev/null
@@ -0,0 +1,2 @@
+export REDO_JOBS=8
+export REDO_NO_SYNC=1
diff --git a/zsh/.zsh/env/005sdcv.zsh b/zsh/.zsh/env/005sdcv.zsh
new file mode 100644 (file)
index 0000000..41ea215
--- /dev/null
@@ -0,0 +1,2 @@
+export STARDICT_DATA_DIR=~/dic
+export SDCV_HISTSIZE=0
diff --git a/zsh/.zsh/env/005term.zsh b/zsh/.zsh/env/005term.zsh
new file mode 100644 (file)
index 0000000..59115b7
--- /dev/null
@@ -0,0 +1,4 @@
+export COLORFGBG="default;default;0"
+export COLORTERM=xterm-256color
+[ "$TERM" = "screen-256color" ] || TERM=xterm-256color
+export TERM
diff --git a/zsh/.zsh/env/005xdg.zsh b/zsh/.zsh/env/005xdg.zsh
new file mode 100644 (file)
index 0000000..bedcce7
--- /dev/null
@@ -0,0 +1,4 @@
+export XDG_CACHE_HOME=/tmp/stargrave-xdg
+export XDG_CONFIG_HOME=/tmp/stargrave-xdg
+export XDG_DATA_HOME=/tmp/stargrave-xdg
+export XDG_RUNTIME_DIR=/tmp/stargrave-xdg
diff --git a/zsh/.zsh/env/010c.zsh b/zsh/.zsh/env/010c.zsh
new file mode 100644 (file)
index 0000000..c6dd0e9
--- /dev/null
@@ -0,0 +1,8 @@
+export -TU CFLAGS cflags " "
+cflags=(-I$HOME/local/include -I/usr/local/include -I/usr/local/include/PCSC)
+
+export -TU LDFLAGS ldflags " "
+ldflags=(-L$HOME/local/lib -L/usr/local/lib)
+
+export -TU CXXFLAGS cxxflags " "
+cxxflags=($cflags)
diff --git a/zsh/.zsh/env/010go.zsh b/zsh/.zsh/env/010go.zsh
new file mode 100644 (file)
index 0000000..11ef3ff
--- /dev/null
@@ -0,0 +1,5 @@
+export GOCACHE=/tmp/go-cache
+export GOPROXY=off
+export GOSUMDB=off
+export GOPATH=~/work/gopath
+path=($GOPATH/bin ~/work/go/bin $path)
diff --git a/zsh/.zsh/env/010python.zsh b/zsh/.zsh/env/010python.zsh
new file mode 100644 (file)
index 0000000..7c1ab3a
--- /dev/null
@@ -0,0 +1,3 @@
+export PIP_RESPECT_VIRTUALENV=true
+export VIRTUAL_ENV_DISABLE_PROMPT=1
+export PYTHONDONTWRITEBYTECODE=1
diff --git a/zsh/.zsh/env/010tabbed.zsh b/zsh/.zsh/env/010tabbed.zsh
new file mode 100644 (file)
index 0000000..b574aa5
--- /dev/null
@@ -0,0 +1,2 @@
+manpath=(~/src/suckless/tabbed $manpath)
+path=(~/src/suckless/tabbed $path)
diff --git a/zsh/.zsh/functions/PV b/zsh/.zsh/functions/PV
new file mode 100644 (file)
index 0000000..b0bd617
--- /dev/null
@@ -0,0 +1 @@
+pv --wait --width 80 --interval 0.5 $@
diff --git a/zsh/.zsh/functions/arr b/zsh/.zsh/functions/arr
new file mode 100644 (file)
index 0000000..8b3ae6d
--- /dev/null
@@ -0,0 +1 @@
+mutt -f =arbeit -e "source ~/.mutt/accounts/arbeit" $@
diff --git a/zsh/.zsh/functions/cf b/zsh/.zsh/functions/cf
new file mode 100644 (file)
index 0000000..f0ab759
--- /dev/null
@@ -0,0 +1,6 @@
+local dir=$(bfs -L ${1:-.} -mindepth 1 \
+    -path "*/\.git" -prune -o \
+    -path "*/\.redo" -prune -o \
+    -type d -print 2>/dev/null |
+        fzf --height 40% --reverse --preview="tree -CN {}")
+[[ -z $dir ]] || { print -s cd $dir ; cd $dir }
diff --git a/zsh/.zsh/functions/f b/zsh/.zsh/functions/f
new file mode 100644 (file)
index 0000000..265465f
--- /dev/null
@@ -0,0 +1 @@
+bfs -L . -name "*$1*" -print
diff --git a/zsh/.zsh/functions/g b/zsh/.zsh/functions/g
new file mode 100644 (file)
index 0000000..7900244
--- /dev/null
@@ -0,0 +1,11 @@
+local GREP_ARGS=(
+    --devices=skip
+    --colour=always
+    --with-filename
+    --line-number
+    --dereference-recursive
+    --binary-files=without-match
+    --exclude-dir=.git
+    --exclude-dir=.tags
+)
+grep $GREP_ARGS $@ | less
diff --git a/zsh/.zsh/functions/mbox b/zsh/.zsh/functions/mbox
new file mode 100644 (file)
index 0000000..85cf407
--- /dev/null
@@ -0,0 +1 @@
+mutt -f "=$1"
diff --git a/zsh/.zsh/rc/005basic.zsh b/zsh/.zsh/rc/005basic.zsh
new file mode 100644 (file)
index 0000000..71d696b
--- /dev/null
@@ -0,0 +1,8 @@
+setopt GLOB_STAR_SHORT GLOB_DOTS EXTENDED_GLOB
+setopt NO_NOMATCH
+setopt AUTO_PUSHD PUSHD_IGNORE_DUPS
+setopt PIPE_FAIL
+setopt MULTIBYTE
+
+setopt RM_STAR_SILENT
+export LISTMAX=9999
diff --git a/zsh/.zsh/rc/005history-cfg.zsh b/zsh/.zsh/rc/005history-cfg.zsh
new file mode 100644 (file)
index 0000000..aa16543
--- /dev/null
@@ -0,0 +1,13 @@
+setopt APPEND_HISTORY SHARE_HISTORY INC_APPEND_HISTORY EXTENDED_HISTORY
+setopt HIST_IGNORE_SPACE HIST_IGNORE_ALL_DUPS
+local history_ignore=(
+    "dl-magnet *"
+    "link-for-*"
+    "sdcv *"
+    "t *"
+    "unsafe-www *"
+    "yt* *"
+    arr
+    t
+)
+HISTORY_IGNORE="(${(j:|:)history_ignore})"
diff --git a/zsh/.zsh/rc/005home,end.zsh b/zsh/.zsh/rc/005home,end.zsh
new file mode 100644 (file)
index 0000000..d39aa72
--- /dev/null
@@ -0,0 +1,2 @@
+bindkey "^[[1~" beginning-of-line # Home
+bindkey "^[[4~" end-of-line # End
diff --git a/zsh/.zsh/rc/005vi.zsh b/zsh/.zsh/rc/005vi.zsh
new file mode 100644 (file)
index 0000000..3a6d608
--- /dev/null
@@ -0,0 +1,2 @@
+bindkey -v
+export KEYTIMEOUT=1
diff --git a/zsh/.zsh/rc/010aliases.zsh b/zsh/.zsh/rc/010aliases.zsh
new file mode 100644 (file)
index 0000000..7f0a126
--- /dev/null
@@ -0,0 +1 @@
+for z (~/.zsh/aliases/*(on)) . $z
diff --git a/zsh/.zsh/rc/010autoload.zsh b/zsh/.zsh/rc/010autoload.zsh
new file mode 100644 (file)
index 0000000..e253807
--- /dev/null
@@ -0,0 +1 @@
+for f (~/.zsh/functions/*) autoload ${f:t}
diff --git a/zsh/.zsh/rc/010cd...zsh b/zsh/.zsh/rc/010cd...zsh
new file mode 100644 (file)
index 0000000..9fbc4de
--- /dev/null
@@ -0,0 +1,7 @@
+cddotdot() {
+    cd ..
+    pwd
+    zle reset-prompt
+}
+zle -N cddotdot
+bindkey "\eOQ" cddotdot # F2
diff --git a/zsh/.zsh/rc/010history-bind.zsh b/zsh/.zsh/rc/010history-bind.zsh
new file mode 100644 (file)
index 0000000..1a0a9e6
--- /dev/null
@@ -0,0 +1,13 @@
+autoload -U history-search-end
+zle -N history-beginning-search-backward-end history-search-end
+zle -N history-beginning-search-forward-end history-search-end
+bindkey "^[[A" history-beginning-search-backward-end
+bindkey "^[[B" history-beginning-search-forward-end
+
+beginning-history-incremental-pattern-search-backward() {
+    zle history-incremental-pattern-search-backward ${BUFFER:gs/ /*/}
+}
+zle -N beginning-history-incremental-pattern-search-backward
+bindkey "^[[1;2A" beginning-history-incremental-pattern-search-backward
+bindkey -M isearch "^[[A" history-incremental-pattern-search-backward
+bindkey -M isearch "^[[B" history-incremental-pattern-search-forward
diff --git a/zsh/.zsh/rc/010mime.zsh b/zsh/.zsh/rc/010mime.zsh
new file mode 100644 (file)
index 0000000..221bdf7
--- /dev/null
@@ -0,0 +1,22 @@
+autoload -U zsh-mime-setup ; zsh-mime-setup
+
+mime_compressed_handler() {
+    local tmp=`mktemp -t zsh-mime`
+    mv $tmp $tmp.$1:r:e
+    tmp=$tmp.$1:r:e
+    case $1:e in
+    (bz2) bunzip2 < $1 > $tmp ;;
+    (gz) gunzip < $1 > $tmp ;;
+    (xz) unxz < $1 > $tmp ;;
+    (zst) unzstd < $1 > $tmp ;;
+    (*) exit 1 ;;
+    esac
+    zsh-mime-handler $tmp
+}
+
+alias -s bz2=mime_compressed_handler
+alias -s gz=mime_compressed_handler
+alias -s xz=mime_compressed_handler
+alias -s zst=mime_compressed_handler
+
+alias -s html=lynx
diff --git a/zsh/.zsh/rc/010popd.zsh b/zsh/.zsh/rc/010popd.zsh
new file mode 100644 (file)
index 0000000..4952b1f
--- /dev/null
@@ -0,0 +1,6 @@
+popdquiet() {
+    popd
+    zle reset-prompt
+}
+zle -N popdquiet
+bindkey "\eOS" popdquiet # F4
diff --git a/zsh/.zsh/rc/010zle.zsh b/zsh/.zsh/rc/010zle.zsh
new file mode 100644 (file)
index 0000000..c132dfb
--- /dev/null
@@ -0,0 +1,3 @@
+autoload -U edit-command-line
+zle -N edit-command-line
+bindkey -M vicmd v edit-command-line
diff --git a/zsh/.zsh/rc/010zmv.zsh b/zsh/.zsh/rc/010zmv.zsh
new file mode 100644 (file)
index 0000000..227c5e7
--- /dev/null
@@ -0,0 +1 @@
+autoload -U zmv
diff --git a/zsh/.zsh/rc/015completion.zsh b/zsh/.zsh/rc/015completion.zsh
new file mode 100644 (file)
index 0000000..1eec179
--- /dev/null
@@ -0,0 +1,55 @@
+zstyle ":completion:*" list-colors ""
+
+zstyle ":completion:*:functions" ignored-patterns "_*"
+zstyle ":completion:*:manuals" separate-sections true
+
+zstyle ":completion:*" group-name ""
+zstyle ":completion:*:messages" format "%d"
+zstyle ":completion:*:warnings" format "%F{red}no matches: %d%f"
+zstyle ":completion:*:*:*:*:descriptions" format "%B... %d%b"
+zstyle ":completion:*:files:*:*:descriptions" format ""
+
+zstyle ":completion:*" file-patterns "%p:globbed" "*"
+zstyle ":completion:*" matcher-list "" "m:{a-z-}={A-Z_}" "r:|?=** m:{a-z-}={A-Z_}"
+zstyle ":completion:*:man:*:*:*" matcher-list "" "m:{a-zA-Z}={A-Za-z} l:|=* r:|=*"
+zstyle ":completion:*" completer \
+    _mycomp_mbox \
+    _mycomp_man:man \
+    _mycomp_info \
+    _mycomp \
+    _parameters \
+    _ignored
+
+_mycomp() {
+    [[ $CURRENT -eq 1 ]] && curcontext="${curcontext%:*:*}:-command-:" \
+        _command_names && return
+    [[ $IPREFIX =~ ~.* ]] && _tilde && return
+    local has_files
+    curcontext=:files:${curcontext#:*:} _files && has_files=1
+    [[ $has_files ]] && return
+
+    # MAGIC_EQUAL_SUBST {{{
+    [[ $PREFIX = *\=* ]] || return 1
+    compstate[parameter]=${PREFIX%%\=*}
+    compset -P 1 "*="
+    _value
+    # }}}
+}
+
+_mycomp_man() {
+    [[ ${words[1]} == man ]] && _dispatch man man man "" -default- && _value && return
+}
+
+_mycomp_info() {
+    [[ ${words[1]} == info ]] && _dispatch info info info "" -default- && return
+}
+
+local mboxes=()
+for m ($MAILDIR/*(/on)) mboxes=($mboxes $m:t)
+
+_mycomp_mbox() {
+    [[ ${words[1]} == mbox ]] && _values mboxes $mboxes && return
+}
+
+autoload -U compinit ; compinit -d /tmp/.zcompdump
+autoload -U complist
diff --git a/zsh/.zsh/rc/015prompt.zsh b/zsh/.zsh/rc/015prompt.zsh
new file mode 100644 (file)
index 0000000..febf80c
--- /dev/null
@@ -0,0 +1,41 @@
+setopt PROMPT_SUBST
+
+PROMPT="%2~ %B"
+# A: autoenv
+# V: virtualenv
+# M: laxed umask
+PROMPT+='${(j::)psvar}'
+PROMPT+="%(1j.%j.)%b"
+PROMPT+='%U${vcs_info_msg_0_}%u'
+PROMPT+="%(?.. %S%?%s)"
+PROMPT+='%(1S. %B${SECONDS}%b.)'
+PROMPT+='%B%F{magenta}%#%f%b '
+
+function zle-line-init zle-keymap-select {
+    local ccolour=red
+    [[ ${KEYMAP} == vicmd ]] || ccolour=green
+    printf "\e]12;${ccolour}\e\\"
+    [[ "$#_autoenv_stack_entered" -eq 0 ]] && psvar=(${psvar#A}) || {
+        [[ -n "${psvar[(r)A]}" ]] || psvar=(A $psvar)
+    }
+    [[ -z "$VIRTUAL_ENV" ]] && psvar=(${psvar#V}) || {
+        [[ -n "${psvar[(r)V]}" ]] || psvar=(V $psvar)
+    }
+    [[ `umask` == "077" ]] && psvar=(${psvar#M}) || {
+        [[ -n "${psvar[(r)M]}" ]] || psvar=("M" $psvar)
+    }
+    zle reset-prompt
+}
+
+zle -N zle-line-init
+zle -N zle-keymap-select
+
+preexec() {
+    printf "\e]12;green\e\\"
+    SECONDS=0
+}
+
+precmd() {
+    printf "\a\e]2;\e\\"
+    [[ -n "$NO_VCS_INFO" ]] || vcs_info
+}
diff --git a/zsh/.zsh/rc/020autosuggestions.zsh b/zsh/.zsh/rc/020autosuggestions.zsh
new file mode 100644 (file)
index 0000000..4cba855
--- /dev/null
@@ -0,0 +1,7 @@
+. ~/work/zsh-autosuggestions/zsh-autosuggestions.zsh
+unset ZSH_AUTOSUGGEST_USE_ASYNC
+ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=cyan"
+ZSH_AUTOSUGGEST_IGNORE_WIDGETS+=(
+    history-incremental-pattern-search-backward
+    history-incremental-pattern-search-forward
+)
diff --git a/zsh/.zsh/rc/020highlight.zsh b/zsh/.zsh/rc/020highlight.zsh
new file mode 100644 (file)
index 0000000..53a4595
--- /dev/null
@@ -0,0 +1,13 @@
+ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets)
+. ~/work/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
+typeset -A ZSH_HIGHLIGHT_STYLES
+ZSH_HIGHLIGHT_STYLES[assign]="fg=yellow"
+ZSH_HIGHLIGHT_STYLES[commandseparator]="fg=red"
+ZSH_HIGHLIGHT_STYLES[single-hyphen-option]="fg=green,bold"
+ZSH_HIGHLIGHT_STYLES[double-hyphen-option]="fg=green"
+ZSH_HIGHLIGHT_STYLES[globbing]="fg=magenta"
+ZSH_HIGHLIGHT_STYLES[global-alias]="fg=yellow,bold"
+ZSH_HIGHLIGHT_STYLES[history-expansion]="fg=magenta"
+ZSH_HIGHLIGHT_STYLES[redirection]="fg=red"
+ZSH_HIGHLIGHT_STYLES[path]="fg=white,underline"
+ZSH_HIGHLIGHT_STYLES[path_pathseparator]="fg=white,bold,underline"
diff --git a/zsh/.zsh/rc/020zhashd.zsh b/zsh/.zsh/rc/020zhashd.zsh
new file mode 100644 (file)
index 0000000..1f51fa6
--- /dev/null
@@ -0,0 +1,4 @@
+while read w ; do
+    w=(${(s/=/)w})
+    hash -d ${w[1]}=${~${w[2]}}
+done < ~/.zsh/hashd
diff --git a/zsh/.zsh/rc/025paste-notrailing-newline.zsh b/zsh/.zsh/rc/025paste-notrailing-newline.zsh
new file mode 100644 (file)
index 0000000..18741e1
--- /dev/null
@@ -0,0 +1,4 @@
+bracketed-paste() {
+    zle .$WIDGET && LBUFFER=${LBUFFER%$'\n'}
+}
+zle -N bracketed-paste
diff --git a/zsh/.zsh/rc/025zaq.zsh b/zsh/.zsh/rc/025zaq.zsh
new file mode 100644 (file)
index 0000000..4d51aae
--- /dev/null
@@ -0,0 +1,8 @@
+. ~/work/zsh-autoquoter/zsh-autoquoter.zsh
+ZSH_HIGHLIGHT_HIGHLIGHTERS+=(zaq)
+ZAQ_PREFIXES=(
+    "Gg"
+    "mutt -f"
+    "sdcv"
+    "t a"
+)
diff --git a/zsh/.zsh/rc/050autoenv.zsh b/zsh/.zsh/rc/050autoenv.zsh
new file mode 100644 (file)
index 0000000..fb17d89
--- /dev/null
@@ -0,0 +1 @@
+. ~/work/zsh-autoenv/autoenv.zsh
index dd9c10c34d9b86cc8a9afd042ef2d85c22ea965b..c6e3576973304693de410cd9bb522c5526e40afd 100644 (file)
-# vim: foldmethod=marker:foldlevel=0
+for z (~/.zsh/env/*(on)) . $z
 
-# History {{{
-HISTFILE=~/secure/.history
-HISTSIZE=10240
-SAVEHIST=10240
-# }}}
-
-# Terminal {{{
-export COLORFGBG="default;default;0"
-export COLORTERM=xterm-256color
-[ "$TERM" = "screen-256color" ] || TERM=xterm-256color
-export TERM
-# }}}
-
-# Less options {{{
-export PAGER=less
-export LESSHISTFILE=-
-export LESS=RXij3M
-# }}}
-
-# ls options {{{
-export CLICOLOR=1
-export LSCOLORS=BxGxcxdxCxegDxabagacad
-# }}}
-
-# Lynx options {{{
-export WWW_HOME=file:///home/stargrave/.lynx_bookmarks.html
-export SSL_CERT_FILE=/usr/local/openssl/cert.pem
-export LYNX_CFG=~/.lynx.cfg
-# }}}
-
-# sdcv options {{{
-export STARDICT_DATA_DIR=$HOME/dic
-export SDCV_HISTSIZE=0
-# }}}
-
-# IRC options {{{
-export IRCNAME="Sergey Matveev"
-export IRCNICK="stargrave"
-# }}}
-
-# Python options {{{
-export PIP_RESPECT_VIRTUALENV=true
-export PIP_VIRTUALENV_BASE=~/.virtualenvs
-export PYTHONDONTWRITEBYTECODE=1
-# }}}
-
-# XDG related junk {{{
-export XDG_CACHE_HOME=/tmp/stargrave-xdg
-export XDG_CONFIG_HOME=/tmp/stargrave-xdg
-export XDG_DATA_HOME=/tmp/stargrave-xdg
-export XDG_RUNTIME_DIR=/tmp/stargrave-xdg
-# }}}
-
-# Paths {{{
-path=(~/bin ~/local/bin /usr/local/bin /usr/local/sbin /usr/bin /usr/sbin /bin /sbin)
-manpath=(
-    ~/local/share/man
-    /usr/local/lib/perl5/5.26/perl/man
-    /usr/local/lib/perl5/site_perl/man
-    /usr/share/openssl/man
-    /usr/local/share/man
-    /usr/local/man
-    /usr/share/man
-)
-export -TU INFOPATH infopath
-infopath=(~/local/share/info /usr/local/share/info /usr/local/info)
-
-manpath=(~/src/suckless/tabbed $manpath)
-path=(~/src/suckless/tabbed $path)
-
-path=(~/work/goredo $path)
-
-export -TU PKG_CONFIG_PATH pkgconfigpath
-pkgconfigpath=(~/local/lib/pkgconfig ~/local/libdata/pkgconfig)
-# }}}
-
-# C related {{{
-export CFLAGS="-I$HOME/local/include -I/usr/local/include"
-export LDFLAGS="-L$HOME/local/lib -L/usr/local/lib"
-export -TU LD_LIBRARY_PATH ld_library_path
-ld_library_path=(~/local/lib)
-# }}}
-
-# Go related {{{
-export GOCACHE=/tmp/go-cache
-export GOPROXY=off
-export GOSUMDB=off
-export GOPATH=$HOME/work/gopath
-path=($GOPATH/bin ~/work/go/bin $path)
-# }}}
-
-# Various {{{
 export SHELL=/bin/zsh
 export EDITOR=vim
-export TZ='Europe/Moscow'
+export TZ=Europe/Moscow
 export IFCONFIG_FORMAT=inet:cidr,inet6:cidr
-export SSH_AUTH_SOCK=$HOME/.ssh/agent
-export MAILDIR=$HOME/mail
+export SSH_AUTH_SOCK=~/.ssh/agent
+export MAILDIR=~/mail
 export DBUS_SESSION_BUS_ADDRESS=disabled:
 export MYSQL_HISTFILE=/tmp/.mysql_history
-export REDO_JOBS=0 REDO_NO_SYNC=1
-export SHARNESS_TEST_SRCDIR=$HOME/local/stow/sharness/share/sharness
-# }}}
+export SHARNESS_TEST_SRCDIR=~/local/stow/sharness/share/sharness
+export FZF_DEFAULT_OPTS="--color=16 --info=inline"
+export AUTOENV_AUTH_FILE=~/.zsh/autoenv-auth
+export TIMEFMT="user:%U sys:%S mem:%K/%M io:%I/%O %*E %P"
+export RLWRAP_HOME=/tmp
index 45b63a6de76f8a8300b05f9f672c723e11c37885..55c0ce110ab829e4724f93f65cd97fdc9f938db9 100644 (file)
@@ -1,222 +1 @@
-# vim: foldmethod=marker:foldlevel=0
-
-# Basic options {{{
-setopt INTERACTIVE_COMMENTS
-setopt GLOB_STAR_SHORT GLOB_DOTS EXTENDED_GLOB
-setopt NO_NOMATCH
-setopt AUTO_PUSHD PUSHD_IGNORE_DUPS
-setopt PIPE_FAIL
-
-setopt RM_STAR_SILENT
-export LISTMAX=9999
-# }}}
-
-# History options {{{
-setopt APPEND_HISTORY SHARE_HISTORY INC_APPEND_HISTORY HIST_IGNORE_ALL_DUPS
-setopt HIST_IGNORE_SPACE
-HISTORY_IGNORE="(yt* *|t *|t|sdcv *|mmfileget *|arr)"
-# }}}
-
-# Vi mode {{{
-bindkey -v
-export KEYTIMEOUT=1
-# }}}
-
-# Home/end {{{
-bindkey "^[[1~" beginning-of-line
-bindkey "^[[4~" end-of-line
-# }}}
-
-# Command-line editing {{{
-autoload -U edit-command-line
-zle -N edit-command-line
-bindkey -M vicmd v edit-command-line
-# }}}
-
-# History search {{{
-autoload -U history-search-end
-zle -N history-beginning-search-backward-end history-search-end
-zle -N history-beginning-search-forward-end history-search-end
-bindkey "^[[A" history-beginning-search-backward-end
-bindkey "^[[B" history-beginning-search-forward-end
-
-beginning-history-incremental-pattern-search-backward() {
-    zle history-incremental-pattern-search-backward ${BUFFER:gs/ /*/}
-}
-zle -N beginning-history-incremental-pattern-search-backward
-bindkey "^[[1;2A" beginning-history-incremental-pattern-search-backward
-bindkey -M isearch "^[[A" history-incremental-pattern-search-backward
-bindkey -M isearch "^[[B" history-incremental-pattern-search-forward
-# }}}
-
-# Prompt {{{
-function zle-line-init zle-keymap-select {
-    mode_vi=${${KEYMAP/vicmd/+}/(main|viins)/-}
-    [[ $timer ]] && timer_show=$(( $SECONDS - $timer ))
-    prompt="%2~|"
-    prompt+="%U${timer_show}%u|"
-    prompt+="%B%?%b"
-    prompt+="${mode_vi}"
-    prompt+="%B%F{magenta}%#%f%b "
-    PS1=$prompt
-    zle reset-prompt
-}
-zle -N zle-line-init
-zle -N zle-keymap-select
-
-preexec() {
-    timer=$SECONDS
-}
-
-precmd() {
-    printf "\a\033]2;\033\\"
-}
-# }}}
-
-# Aliases {{{
-alias l="ls -AF "
-alias ll="ls -AFl "
-alias ssh="TERM=xterm ssh"
-alias vi="vim"
-alias more="less"
-alias m="less "
-alias -g M="| less"
-alias -g W="| wc -l | sed 's/ //g'"
-alias mc="mc --nomouse"
-alias sent="mutt -f =sent-\`date '+%y-%m'\`"
-
-f() {
-    # find . -name "*$1*" -print
-    print -C 1 **$1*
-}
-
-ssht() {
-    ssh -C -t $1 tmux attach -t0
-}
-alias sshnm="ssh -S none"
-# }}}
-
-# Faster movement {{{
-cddotdot() {
-    cd ..
-    pwd
-    zle reset-prompt
-}
-zle -N cddotdot
-bindkey "\eOQ" cddotdot # F2
-
-pushdquiet() {
-    popd
-    zle reset-prompt
-}
-zle -N pushdquiet
-bindkey "\eOS" pushdquiet # F4
-# }}}
-
-# Git {{{
-alias Ga="git add"
-alias Gb="git branch"
-alias Gc="git checkout"
-alias Gd="git diff"
-alias Gdc="git diff --cached"
-alias Gs="git show --show-signature"
-alias Gm="git diff --name-only --diff-filter=M"
-alias Gam="git commit --amend"
-
-alias Gl="git log --oneline --graph --decorate=short"
-alias Gld="git log --format=format:'%ai %Cgreen%h%Creset %s'"
-alias Gr="git --no-pager log --oneline -n 20 | perl -ne 'print \"@~\$n \$_\"; \$n++'"
-alias Grr="git --no-pager log --oneline --graph -n 1024 | vi -c 'setlocal filetype=gitrebase buftype=nofile noswapfile' -"
-
-bindkey -s "\eOR" " git status --short\n" # F3
-# }}}
-
-# grep {{{
-GREP=/usr/local/bin/grep
-GREP_ARGS="--color=always --with-filename --line-number --dereference-recursive"
-LESS_COLORED="less --RAW-CONTROL-CHARS"
-g() {
-    $GREP ${=GREP_ARGS} $@ | ${=LESS_COLORED}
-}
-GS() {
-    $GREP ${=GREP_ARGS} $@ | sort --numeric-sort | ${=LESS_COLORED}
-}
-alias -g G="| $GREP --color"
-alias gg="git grep "
-# }}}
-
-# GPG agent {{{
-GPG_TTY=$(tty)
-export GPG_TTY
-# }}}
-
-# Virtualenv {{{
-venv() {
-    . /usr/local/bin/virtualenvwrapper.sh
-}
-# }}}
-
-# Mail {{{
-mailpath=(
-    ~/mail/mbox"?Neue Nachrichten in =mbox"
-    ~/mail/arbeit"?Neue Nachrichten in =arbeit"
-)
-alias arr="mutt -f \=arbeit -e 'source ~/.mutt/accounts/stcnet.ru'"
-bindkey -s "\eOP" " inc\n" # F1
-# }}}
-
-# Completion {{{
-zstyle ":completion:*:functions" ignored-patterns "_*"
-zstyle ":completion:*" matcher-list "" 'm:{a-z\-}={A-Z\_}' 'r:|?=** m:{a-z\-}={A-Z\_}'
-_mycomp () {
-    [[ ${words[1]} != man ]] || { _man && return 0 }
-    [[ $CURRENT -eq 1 ]] && _command_names ||  _files && return 0
-    # MAGIC_EQUAL_SUBST {{{
-    [[ $PREFIX = *\=* ]] || return 1
-    compstate[parameter]=${PREFIX%%\=*}
-    compset -P 1 "*="
-    _value
-    # }}}
-}
-zstyle ":completion:*" completer _mycomp _parameters
-autoload -U compinit ; compinit -d /tmp/.zcompdump
-zstyle ":completion:*:default" list-colors ""
-autoload -U complist
-# }}}
-
-# Highlighting {{{
-ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets)
-. ~/work/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
-typeset -A ZSH_HIGHLIGHT_STYLES
-ZSH_HIGHLIGHT_STYLES[assign]="fg=yellow"
-ZSH_HIGHLIGHT_STYLES[commandseparator]="fg=red"
-ZSH_HIGHLIGHT_STYLES[single-hyphen-option]="fg=green,bold"
-ZSH_HIGHLIGHT_STYLES[double-hyphen-option]="fg=green"
-ZSH_HIGHLIGHT_STYLES[globbing]="fg=magenta"
-ZSH_HIGHLIGHT_STYLES[global-alias]="fg=yellow,bold"
-ZSH_HIGHLIGHT_STYLES[history-expansion]="fg=magenta"
-ZSH_HIGHLIGHT_STYLES[redirection]="fg=red"
-ZSH_HIGHLIGHT_STYLES[path]="fg=white,underline"
-ZSH_HIGHLIGHT_STYLES[path_pathseparator]="fg=white,bold,underline"
-# }}}
-
-# Autosuggestion {{{
-. ~/work/zsh-autosuggestions/zsh-autosuggestions.zsh
-ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=cyan"
-# }}}
-
-# fzf {{{
-export FZF_DEFAULT_OPTS="--color=16 --info=inline"
-cf() {
-    local dir=$(find ${1:-.} -mindepth 1 -path "*/\.git" -prune -o -type d -print |
-        fzf --height 40% --reverse --preview="tree -CN {}")
-    [[ -z $dir ]] || cd $dir
-}
-# }}}
-
-# Named directories {{{
-while read w ; do
-    w=(${(s/=/)w})
-    hash -d ${w[1]}=${~${w[2]}}
-done < ~/.zhashd
-# }}}
+for z (~/.zsh/rc/*(on)) . $z
diff --git a/zsh/bin/zsh-mime-open b/zsh/bin/zsh-mime-open
new file mode 100755 (executable)
index 0000000..990b59f
--- /dev/null
@@ -0,0 +1,4 @@
+#!/usr/bin/env zsh
+
+. ~/.zsh/rc/010mime.zsh
+zsh-mime-handler $1