diff --git a/etc/08-config.scm b/etc/08-config.scm deleted file mode 100644 index 5e592fb..0000000 --- a/etc/08-config.scm +++ /dev/null @@ -1,708 +0,0 @@ -(use-modules - (gnu) - (guix store) - (guix packages) - (gnu packages jami) - (gnu packages suckless) - (gnu packages finance) - (gnu packages haskell) - (gnu packages pdf) - (gnu packages cran) - (gnu packages kde) - (gnu packages tex) - (gnu packages samba) - (gnu services docker) - (gnu services certbot) - (gnu services mcron) - (gnu services auditd) - (gnu packages unicode) - (gnu packages python-build) - (gnu packages glib) -(gnu packages mail) - (gnu packages gcc) -(gnu packages rust) -(gnu packages rust-apps) -(guix git-download) -(guix git) -(gnu packages -commencement) -(gnu packages golang) - (gnu packages haskell-xyz) - (gnu packages kde-pim) - (gnu packages guile-xyz) - (gnu packages python-xyz) - (gnu packages pulseaudio) - (gnu packages texinfo) - (gnu packages cmake) - (gnu packages mpd) - (gnu packages disk) - (gnu packages android) - (gnu packages freedesktop) - (gnu packages gnuzilla) - (gnu packages image) - (gnu packages image-viewers) - (gnu packages messaging) - (gnu packages vim) - (gnu packages gstreamer) - (gnu packages virtualization) - (gnu packages web-browsers) - (gnu services) - (gnu services vpn) - (gnu services dbus) - (gnu services shepherd) - (gnu system shadow) - (gnu services configuration) - (gnu packages build-tools) - (gnu packages admin) - (gnu packages qt) - (gnu packages lxde) - (gnu packages python) - (gnu packages bittorrent) - (gnu packages chromium) - (gnu packages compression) - (gnu packages tor) - (gnu packages ncurses) - (gnu packages web) - (gnu packages fonts) - (gnu packages vpn) - (gnu packages curl) - (gnu packages password-utils) - (gnu packages emacs) - (gnu packages node) - (gnu packages emacs-xyz) - (gnu packages engineering) - (gnu packages fontutils) - (gnu packages gimp) - (gnu packages gnome) - (gnu packages gnome-xyz) - (gnu packages gnupg) - (gnu packages haskell-apps) - (gnu packages imagemagick) - (gnu packages java) - (gnu packages libreoffice) - (gnu packages linux) - (gnu packages package-management) - (gnu packages rsync) - (gnu packages ssh) - (gnu packages telegram) - (gnu packages video) - (gnu packages wm) - (gnu packages benchmark) - (gnu packages xdisorg) - (gnu packages xorg) - (gnu home services gnupg) - (gnu home services xdg) - (gnu packages terminals) - (gnu packages music) - (gnu packages compton) - (gnu packages version-control) - (gnu packages lxqt) - (gnu packages file-systems) - (gnu packages lisp) - (gnu packages networking) - (gnu home services gnupg) - (gnu home services xdg) - (gnu packages security-token) - (gnu packages tls) - (gnu packages graphics) - (nongnu packages compression) - (nongnu packages clojure) - (nongnu packages linux) - (nongnu system linux-initrd)) - - -(use-service-modules web security base certbot shepherd nix cups desktop networking ssh docker xorg linux virtualization) -(use-package-modules package-management version-control gcc bash certs admin linux) -(define my-kernel linux) - -(operating-system - (kernel my-kernel) - (initrd microcode-initrd) - (firmware (list linux-firmware)) - - (locale "en_US.utf8") - (timezone "America/Sao_Paulo") - (keyboard-layout (keyboard-layout "br")) - - (host-name "lisp") - ;; The list of user accounts ('root' is implicit). - (users (cons* (user-account - (name "berkeley") - (comment "Berkeley") - (group "users") - (home-directory "/home/berkeley") - (supplementary-groups '("wheel" "netdev" "audio" "video" "plugdev"))) - %base-user-accounts)) - - ;; Packages installed system-wide. Users can also install packages - ;; under their own account: use 'guix search KEYWORD' to search - ;; for packages and 'guix install PACKAGE' to install a package. - (packages (append (list - ;emacs-org-roam - ;emacs-org-roam-ui - polybar - gstreamer - gst-plugins-bad - gst-plugins-good - nyxt - cmus - v4l-utils - xdg-utils - curl - gthumb - mangohud - qtsolutions - glances - zstd - mpv - kitty - maim - procps - scrot - mupdf - zathura - matterbridge - sbcl - go - clisp - fdm - jami - ;navidrome-bin - ;mullvad-vpn - smartmontools - udevil - samba - cifs-utils - mergerfs - parted - net-tools - ntfs-3g - texlive-scheme-basic - texlive-cm-super - texlive-listings - texmaker - texlive-pgf - texlive-beamer - texlive-hyperref - alacritty - ;;protonup-ng - wipe - imagemagick - unzip - compton - p7zip - gedit - htop - netdiscover - fping - gparted - texstudio - texlive-bibtex - bcachefs-tools - whois - python-pip - setxkbmap - xfe - ;;clamav - libbluray - libaacs - libbdplus - vim - neovim - ;emacs-telega - cmake - neofetch - kleopatra - flatpak - pfetch - icecat - ;;mullvadbrowser - git-lfs - ghc-git-lfs - hashcat - haunt - openssl - flameshot - openshot - obs - go - ffmpeg - lm-sensors - vlc - virt-manager - guix - nsxiv - git - inxi - tor - monero-gui - ; emacs-org-roam - torsocks - tor-client - privoxy - terminator - openvpn - kiwix-tools - pavucontrol - pavucontrol-qt - emacs - keepassxc - wireshark - tcpdump - nmap - firejail - foliate - xf86-video-amdgpu - asciinema - alsa-lib - alsa-utils - binutils - dbus - xset - lxrandr - dosfstools - elogind - qtox - exfat-utils - exfatprogs - fuse-exfat - gnupg - libinput - texinfo - xf86-input-keyboard - xf86-input-libinput - xf86-input-mouse - xf86-input-synaptics - ;;emacs-org-timeblock - xrandr - ungoogled-chromium - qbittorrent - macchanger - ;guile - ;emacs-geiser - ;emacs-geiser-guile - fontconfig - picom - mpd - brightnessctl - feh - gimp - fzf - xmodmap - rofi - coreutils - qemu - xwininfo - xprop - xpra - libfido2 - grep - iptables - node - jq - python - sed - nomacs - meson - ncurses - ueberzug++ - ;; lots of fonts from package fonts.scm - font-adobe-source-code-pro font-adobe-source-han-sans - font-adobe-source-sans-pro font-adobe-source-serif-pro - font-anonymous-pro font-anonymous-pro-minus font-awesome - font-cns11643 font-cns11643-swjz font-comic-neue font-culmus - font-dejavu font-dosis font-dseg font-fantasque-sans font-fira-code - font-fira-mono font-fira-sans font-fontna-yasashisa-antique - font-google-material-design-icons font-google-noto font-google-roboto - font-hack font-hermit font-ibm-plex font-inconsolata font-iosevka - font-iosevka-aile font-iosevka-etoile font-iosevka-slab - font-iosevka-term font-iosevka-term-slab - font-ipa-mj-mincho font-jetbrains-mono font-lato font-liberation - font-linuxlibertine font-lohit font-meera-inimai font-mononoki - font-mplus-testflight - font-public-sans font-rachana font-sarasa-gothic font-sil-andika - font-sil-charis font-sil-gentium font-tamzen font-terminus - font-tex-gyre font-un font-vazir font-wqy-microhei - font-wqy-zenhei - python-emoji - ghc-emojis - ghc - guile-semver - ranger - xmessage - xrdb - xmonad - sysbench - xmobar - ghc - ghc-xmonad-contrib - gcc - gcc-toolchain - linux-libre-headers - yt-dlp - rofi - texlive-emoji - emacs-emojify - texlive-twemoji-colr - texlive-noto-emoji - texlive-hwemoji - texlive-byo-twemojis - unicode-emoji - texlive-twemojis - texlive-emojicite - ;;rust-unic-emoji-char - r-emojifont - font-google-noto-emoji - ;; font-apple-color-emoji - emacs-company-emoji - font-openmoji - vim-characterize -texlive-lua-uni-algos -texlive-pwebmac -texlive-olsak-misc -texlive-pdfoverlay -texlive-texosquery -texlive-pdfx -texlive-pdfprivacy -texlive-pdfcomment -texlive-iftex -texlive-tex -texlive-montex -texlive-pdfescape -texlive-texdef -texlive-pdfpages -extractpdfmark -texlive-csplain -poppler-qt5 -poppler -texlive-pdf14 -texlive-thumbpdf -texlive-pax -texlive-etex -texlive-axodraw2 -texlive-repltext -texlive-luatex -texlive-hyperref -texlive-xetex -texlive-pdftexcmds -texlive-epstopdf -texlive-epsf-dvipdfmx -texlive-dvipdfmx -texlive-texsurgery -texlive-ptex2pdf -texlive-jadetex -texlive-texlogfilter -texlive-svg-inkscape -texlive-purifyeps -texlive-navigator -texlive-latex-uni8 -texlive-biblatex -texlive-latex-make -texlive-pgf -texlive-pdftricks -texlive-pdflatexpicscale -texlive-pdfmanagement-testphase -texlive-pdflatexpicscale -texlive-pdfextra -texlive-tagpdf -texlive-pdfreview -texlive-pdfmsym -texlive-mptopdf -texlive-inter -texlive-pdftex-quiet -texlive-pdftex -texlive-knuth-pdf -texlive-xmltexconfig -texlive-pdfjam -texlive-luatex85 -texlive-grayhints -texlive-fig4latex -texlive-tpic2pdftex -texlive-pst2pdf -texlive-pdfslide -texlive-minim-pdf -texlive-hvextern -texlive-flippdf -texlive-combinedgraphics -texlive-autopdf -texlive-xetex-pstricks -texlive-texonly -texlive-scikgtex -texlive-pdfsync -texlive-mathastext -texlive-luainputenc -texlive-pdfcomment -texlive-pdfprivacy -texlive-pdfoverlay -texlive-pdfpages -texlive-latexmk -texlive-hyperxmp -texlive-datetime2-en-fulltext -texlive-commonunicode -texlive-pict2e -texlive-intopdf -texlive-filemod -texlive-textcsc -texlive-texpower -texlive-texdoc -texlive-pst-pdf -texlive-pdfpc-movie -texlive-pdfmarginpar -texlive-pdfbook2 -texlive-pdf-trans -texlive-lobster2 -texlive-hitex -texlive-epstopdf-pkg -texlive-epspdfconversion -texlive-collection-luatex -texlive-bxpdfver -texlive-asmeconf -texlive-synctex -texlive-pdfcolmk -texlive-pdfcolfoot -texlive-lapdf -texlive-fixpdfmag -python-pdfminer-six -texlive-zhmetrics-uptex -texlive-xpdfopen -texlive-xcpdftips -texlive-quattrocento -texlive-pdfxup -texlive-pdfpc -texlive-pdfarticle -texlive-oswald -texlive-nunito -texlive-magra -texlive-librebaskerville -texlive-l3experimental -texlive-knuth-hint -texlive-forum -texlive-epspdf -texlive-dickimaw -texlive-convbkmk -texlive-changebar -texlive-cascadia-code -texlive-cabin -texlive-bitter -texlive-auto-pst-pdf-lua -texlive-arvo -texlive-archivo -texlive-sanitize-umlaut -texlive-protex -texlive-pdftricks2 -texlive-pdflscape -texlive-ocg-p -texlive-minim-xmp -texlive-gregoriotex -texlive-docshots -emacs-latex-preview-pane - rust - ;;goldendict-ng - ;;suckless-dictpopup - ;;rust-version-check - ;;rust-deunicode - nheko - lf - ;; lots of fonts from package xorg.scm - font-adobe100dpi font-adobe75dpi font-cronyx-cyrillic font-dec-misc - font-isas-misc font-micro-misc font-misc-cyrillic font-misc-ethiopic - font-misc-misc font-mutt-misc font-schumacher-misc - font-screen-cyrillic font-sony-misc font-sun-misc font-util - font-winitzki-cyrillic font-xfree86-type1 - youtube-dl - noisetorch - linux-firmware - nix - (specification->package "i3-wm") - (specification->package "i3status") - (specification->package "dmenu") - (specification->package "st") - (specification->package "emacs") - ;(specification->package "mullvad-vpn") - (specification->package "navidrome-bin")) - %base-packages)) - - ;; Below is the list of system services. To search for available - ;; services, run 'guix system search KEYWORD' in a terminal. -;;(home-environment (packages (cons* anki ))) ;; figure out how to install it from here - ;;(home-environment (packages (cons* anki ))) ;; figure out how to install it from here - - ;; Below is the list of system services. To search for available - ;; services, run 'guix system search KEYWORD' in a terminal. - (services - (append (list - (service gnome-desktop-service-type) - (set-xorg-configuration - (xorg-configuration - (extra-config '("Option \"DPMS\" \"false\"")) - (udev-rules-service 'fido2 libfido2 #:groups '("plugdev")) - (service iptables-service-type - (iptables-configuration - (ipv4-rules (plain-file "iptables.rules" "*filter -:INPUT DROP -:FORWARD ACCEPT -:OUTPUT ACCEPT --A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT --A INPUT -j REJECT --reject-with icmp-port-unreachable --A INPUT -p tcp -s 127.0.0.1 -j ACCEPT --A FORWARD -p tcp -s 127.0.0.1 -j ACCEPT --A FORWARD -m state --state INVALID -j DROP --A OUTPUT -p tcp -s 127.0.0.1 -j ACCEPT --A OUTPUT -m state --state INVALID -j DROP --A OUTPUT -o lo -j ACCEPT --A OUTPUT -o tun+ -j ACCEPT --A OUTPUT -m owner --gid-owner openvpn -j ACCEPT --t nat -A OUTPUT -p tcp -m owner --uid-owner berkeley -m tcp -j REDIRECT --to-ports 9040 --t nat -A OUTPUT -p udp -m owner --uid-owner berkeley -m udp --dport 53 -j REDIRECT --to-ports 53 --t filter -A OUTPUT -p tcp -m owner --uid-owner berkeley -m tcp --dport 9040 -j ACCEPT --t filter -A OUTPUT -p udp -m owner --uid-owner berkeley -m udp --dport 53 -j ACCEPT --t filter -A OUTPUT -m owner --uid-owner berkeley -j DROP -COMMIT -")) - (ipv6-rules (plain-file "ip6tables.rules" "*filter -:INPUT DROP -:FORWARD DROP -:OUTPUT DROP --A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT --A INPUT -j REJECT --reject-with icmp6-port-unreachable -COMMIT -")))) - (service docker-service-type) - (service nix-service-type) - (service tor-service-type - (tor-configuration - (config-file (plain-file "tor-config" - "HttpTunnelPort 9050\n\ - VirtualAddrNetwork 10.192.0.0/10\n\ - AutomapHostsOnResolve 1\n\ - TransPort 9040\n\ - DNSPort 53\n\ - SOCKSPort 0\n\ - ORPort 443\n\ - BridgeRelay 1\n\ - ExitRelay 0")))) - - (service libvirt-service-type - (libvirt-configuration - (unix-sock-group "libvirt") - (tls-port "16555"))) - - (service zram-device-service-type - (zram-device-configuration - (size (* 2 (expt 2 30))) - (compression-algorithm 'zstd) - (priority 100))) - - (set-xorg-configuration - (xorg-configuration - (keyboard-layout keyboard-layout)))) - %desktop-services)) - - (bootloader (bootloader-configuration - (bootloader grub-bootloader) - (targets (list "/dev/nvme0n1")) - (theme (grub-theme - (resolution '(1920 . 1080)) - (image (local-file "/home/berkeley/wallpapers/back.jpg")))))) - (swap-devices (list (swap-space - (priority 50) - (target (uuid - "85b7b3d8-657a-443c-b010-52d224bc4483"))))) - ;; The list of file systems that get "mounted". The unique - ;; file system identifiers there ("UUIDs") can be obtained - ;; by running 'blkid' in a terminal. - (file-systems (cons* (file-system - (mount-point "/boot/efi") - (device (uuid "02E2-0AB2" - 'fat32)) - (type "vfat")) - (file-system - (mount-point "/") - (device (uuid - "38467002-a282-4387-8319-cff6d93cd23b" - 'ext4)) - (type "ext4")) - (file-system - (mount-point "/files") - (device (uuid - "7b2cbf88-bc71-49ad-b2fa-a4bbdb71f886" - 'ext4)) - (type "ext4")) - (file-system - (mount-point "/virt") - (device (uuid - "9d009d01-d635-4d56-987a-ffc2699da9fb" - 'ext4)) - (type "ext4")) - - %base-file-systems))) - -;; Harden security settings -; (security security-settings) - ; (security-settings - ; (harden - ; (commit-harden-settings)) ; Commit any existing hardening settings - ; (disable-services '(telnet ftp rsh)) ; Disable insecure services - ; (setuid-programs '("/usr/bin/sudo")) ; List of Setuid programs - ; (setgid-programs '("/usr/bin/su")) ; List of Setgid programs - ; (enable-auditd #t) ; Enable the auditd service - ; (enable-firewall #t) ; Enable the firewall service - ; (enable-tor #t) ; Enable the Tor service - ; ;(restrict-sudo-users (cons "admin" %base-account-usernames)) ; Restrict sudo users - ; ;(restrict-ssh-users (cons "user" %base-account-usernames)) ; Restrict SSH users - ; (security-programs '("tcpdump" "wireshark")) ; List of security tools - ; (enable-apparmor #t) ; Enable AppArmor - ; (apparmor-profiles '("firefox" "chrome")) ; List of AppArmor profiles - ; (enable-selinux #t) ; Enable SELinux - ; (selinux-policy "strict") ; Set SELinux policy - ; (selinux-mode "enforcing") ; Set SELinux mode - ; (disable-setuid-binaries #t)) ; Disable Setuid binaries for system-wide protection - - - - ;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNNXK00OOOOOOOOOOO00KXNNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWN0kdlc;,'..... .....',;:ldx0NWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMXxc'. .':xXWMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMW0: cXMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMNKxc,. lNMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMKocoddol:;,... .xWMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMNo. ..',;;;;,'... ,0MMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMO' lNMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMXc .xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMWx. ;KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0, lNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNl .xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWx. ,KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO' cXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMWNXKKXXXO, c0K00KKKXNWMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMNOocll:::::;'. ...........,cxKWMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMKc.';'. .l0kdc;'.. ..,cok0x. ,OWMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMNo..:' .xWMMMWNKOxdolc:;;,,;;:cloxk0XWWMMMX: cNMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMNl .:. 'OMMMMMMMMMMMMMWWWWWWWWMMMMMMMMMMMMNl :XMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMWk..;, 'OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX: .dWMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMNo..;, 'lkKNWMMMMMMMMMMMMMMMMMMMMMMMMWX0d;. .cXMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMNd..,;. .';cloxkkO0000000000OOkxdlc;'. .oXMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMW0c..,,'. ........... .:OWMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMW0o,.',,'. .'lONMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMWNOo:,''...... .;lkXWMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMWWXkoc;,,......... .....dKNMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWX0kxoc:;,,'''....... .,:codolddl;oXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMWNNWMMMMMMMMMMMWWNNXXXXXXXXKl,xNWNKOkkk0Xo,kWNNWMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMWXXWMMMMMMMMMMMMMMMMMMMMMMMMWd;xWXO0OO0NMNo,OMWXXWMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMKOXMMMMMMMMMMMMMMMMMMMMMMMMMMKc;kXNWNWMWXd;oNMMN0KMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMM0kNMMMMMMMMMMMMMMMMMMMMMMMMMMMXd:ldkOOkoc:xNMMMWOOWMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMOdKMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXOdooodx0NMMMMMNxkWMMMMMMMMMMMMMMMMMMMMMMMM -;MMMMMMMMMMMMMMMMMMMMMMMMMXoxNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWkoKMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMW0ldXMMMMMMMMMMMMMMWWNXXWWNXNWWMMMMMMMMMMMMMMNxlOWMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMWKocd0NWMMMMMWNKkoc;'.;dx:.';cok0NWMMMMMWNKxcl0WMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMNOocccllool:,. .;oo:.. .':looollcclONMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNKkxocc::::cloxOKXNNNKOxdlc:::::codk0NWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWMMMMMMMMMMMMMMMMMMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -;;MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM -