From ee04c436b0ed8287ad95dfda8eaa0ce7cb0ed023 Mon Sep 17 00:00:00 2001 From: JaeYoo-Im Date: Wed, 10 May 2023 21:09:38 +0900 Subject: [PATCH] 0510 --- .../custom-themes/morning-star-theme.el | 0 .config/{emacs => emacs-my}/desktop.org | 0 .config/{emacs => emacs-my}/emacs.org | 76 +++--------- .config/emacs/.gitignore | 5 - .config/emacs/early-init.el | 36 ++++++ .config/emacs/elfeed.org | 20 ---- .config/emacs/init.el | 57 +++++++++ .config/emacs/lisp/init-const.el | 7 ++ .config/emacs/lisp/init-package.el | 9 ++ .config/emacs/logos/xemacs_color.png | Bin 6928 -> 0 bytes .config/emacs/logos/xemacs_color.svg | 112 ------------------ 11 files changed, 127 insertions(+), 195 deletions(-) rename .config/{emacs => emacs-my}/custom-themes/morning-star-theme.el (100%) rename .config/{emacs => emacs-my}/desktop.org (100%) rename .config/{emacs => emacs-my}/emacs.org (97%) delete mode 100644 .config/emacs/.gitignore create mode 100644 .config/emacs/early-init.el delete mode 100755 .config/emacs/elfeed.org create mode 100644 .config/emacs/init.el create mode 100644 .config/emacs/lisp/init-const.el create mode 100644 .config/emacs/lisp/init-package.el delete mode 100644 .config/emacs/logos/xemacs_color.png delete mode 100644 .config/emacs/logos/xemacs_color.svg diff --git a/.config/emacs/custom-themes/morning-star-theme.el b/.config/emacs-my/custom-themes/morning-star-theme.el similarity index 100% rename from .config/emacs/custom-themes/morning-star-theme.el rename to .config/emacs-my/custom-themes/morning-star-theme.el diff --git a/.config/emacs/desktop.org b/.config/emacs-my/desktop.org similarity index 100% rename from .config/emacs/desktop.org rename to .config/emacs-my/desktop.org diff --git a/.config/emacs/emacs.org b/.config/emacs-my/emacs.org similarity index 97% rename from .config/emacs/emacs.org rename to .config/emacs-my/emacs.org index 76020fc..3b677f7 100755 --- a/.config/emacs/emacs.org +++ b/.config/emacs-my/emacs.org @@ -64,51 +64,11 @@ Emacs Configuration for emacs 29.50 (customize-set-variable 'package-user-dir (expand-file-name "elpa/" user-emacs-directory)) - ;; TODO - ;;(package-initialize) - ;;(unless package-archive-contents - ;; (package-refresh-contents)) (unless (package-installed-p 'use-package) (package-install 'use-package)) (require 'use-package) (setq use-package-always-ensure t) - - (use-package auto-package-update - :custom - (auto-package-update-interval 7) - (auto-package-update-prompt-before-update t) - (auto-package-update-hide-results t) - :config - (auto-package-update-maybe) - (auto-package-update-at-time "09:00")) -#+end_src -**** Straight -#+begin_src emacs-lisp -;;#+begin_src emacs-lisp :tangle ~/.config/emacs/init.el - (defvar bootstrap-version) - (defvar comp-deferred-compilation-deny-list ()) ; workaround, otherwise straight shits itself - (let ((bootstrap-file - (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory)) - (bootstrap-version 5)) - (unless (file-exists-p bootstrap-file) - (with-current-buffer - (url-retrieve-synchronously - "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el" - 'silent 'inhibit-cookies) - (goto-char (point-max)) - (eval-print-last-sexp))) - (load bootstrap-file nil 'nomessage)) - (package-initialize) - (unless package-archive-contents - (package-refresh-contents)) - (setq straight-use-package-by-default t) - (straight-use-package 'use-package) - (setq use-package-always-ensure t) - - (unless (file-exists-p package-user-dir) - (mkdir package-user-dir t)) - ;;; init.el ends here #+end_src *** Add other modules #+begin_src emacs-lisp :tangle ~/.config/emacs/init.el @@ -207,6 +167,10 @@ Emacs Configuration for emacs 29.50 (unless (display-graphic-p) (xterm-mouse-mode)) #+end_src +* Define some unused variable. +#+begin_src emacs-lisp :tangle ~/.config/emacs/config.el + (setq global-linum-mode nil) +#+end_src * Modules Selection module #+begin_src emacs-lisp :tangle ~/.config/emacs/config.el ;;; config.el -*- lexical-binding: t; -*- @@ -225,15 +189,15 @@ Emacs Configuration for emacs 29.50 (add-hook 'emacs-startup-hook (lambda () (custom-set-faces - `(default ((t (:font "Fira Code 16")))) + `(default ((t (:font "Fira Code Nerd Font 13")))) `(fixed-pitch ((t (:inherit (default))))) `(fixed-pitch-serif ((t (:inherit (default))))) - `(variable-pitch ((t (:font "Ubuntu 16"))))))) + `(variable-pitch ((t (:font "Ubuntu 13"))))))) (require 'custom-ui) (require 'custom-keybindings) (require 'custom-default) - ;;(require 'custom-completion) + (require 'custom-completion) ;;(require 'custom-edit) ;;(require 'custom-projects) ;;(require 'custom-latex) @@ -316,6 +280,7 @@ emacs built-in package config #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-default.el (use-package dired :ensure nil + :straight (:type built-in) :commands (dired dired-jump) :bind (("C-x C-j" . dired-jump)) :custom ((dired-listing-switches "-agho --group-directories-first")) @@ -533,7 +498,6 @@ emacs built-in package config **** Dashboard #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-ui.el (use-package dashboard - :disabled :after all-the-icons :config (setq dashboard-set-heading-icons t) @@ -888,7 +852,6 @@ Quick Action in minibuffer ;; (corfu-scroll-margin 5) ;; Use scroll margin :init (global-corfu-mode)) - ;; load extension (add-to-list 'load-path (expand-file-name "straight/build/corfu/extensions" @@ -958,7 +921,6 @@ Quick Action in minibuffer #+end_src **** Snippet #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-edit.el - (use-package yasnippet :defer t :hook (prog-mode . yas-minor-mode) @@ -972,8 +934,8 @@ Quick Action in minibuffer ***** Doom-Snippet #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-edit.el (use-package doom-snippets - :after yasnippet - :straight (doom-snippets :type git :host github :repo "doomemacs/snippets" :files ("*.el" "*"))) + :straight (doom-snippets :type git :host github :repo "doomemacs/snippets" :files ("*.el" "*")) + :after yasnippet) #+end_src **** Emojify @@ -1099,7 +1061,7 @@ Quick Action in minibuffer ***** Valign | 12345678 | | |----------+---| -| 일이삼사 | | +| 일이삼사 | | #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-org.el (use-package valign :defer t @@ -1341,6 +1303,7 @@ latex export code block ***** Org Roam #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-org.el (use-package org-roam + :ensure t ;;:demand t ;; ensure org-roam is loaded by default :custom (org-roam-directory "~/org/roam") @@ -1474,12 +1437,9 @@ get link from pdf, (use-package git-gutter :defer t :init (global-git-gutter-mode) - :config - (setq git-gutter:update-interval 2)) -#+end_src -**** Forge -Git forge -#+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-projects.el + :custom + (git-gutter:update-interval 2) + (git-gutter:linum-enabled nil)) #+end_src **** Highlight TODOs ***** TODO: test @@ -1728,7 +1688,7 @@ https://github.com/xenodium/chatgpt-shell **** Python #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-languages.el (use-package jupyter - :defer t) + :ensure t) #+end_src **** CMAKE #+begin_src emacs-lisp :mkdirp yes :tangle ~/.config/emacs/modules/custom-languages.el @@ -1803,10 +1763,10 @@ LSP -> veriloter 'org-babel-load-languages '((emacs-lisp . t) (python . t) - (jupyter . t) + ;;(jupyter . t) (dot . t) (latex . t))) - (org-babel-jupyter-override-src-block "python") + ;;(org-babel-jupyter-override-src-block "python") (push '("conf-unix" . conf-unix) org-src-lang-modes) ;; This is needed as of Org 9.2 (require 'org-tempo) diff --git a/.config/emacs/.gitignore b/.config/emacs/.gitignore deleted file mode 100644 index fc5f436..0000000 --- a/.config/emacs/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -# generated from emacs.org -* -!*.org -!modules/* -!custom-themes/* diff --git a/.config/emacs/early-init.el b/.config/emacs/early-init.el new file mode 100644 index 0000000..eabbdbd --- /dev/null +++ b/.config/emacs/early-init.el @@ -0,0 +1,36 @@ +;;; early-init.el -*- lexical-binding: t -*- +;; do not garbage collection during startup +(setq gc-cons-threshold most-positive-fixnum) +;; prefers newest version of a file +(customize-set-variable 'load-prefer-newer t) + +;;; Native compilation settings +(when (featurep 'native-compile) + ;; Silence compiler warnings as they can be pretty disruptive + (setq native-comp-async-report-warnings-errors nil) + (setq native-comp-deferred-compilation nil)) + + +(setq package-enable-at-startup nil) +;; built-in use-package, set before loading +(setq use-package-enable-imenu-support t) + +;; +(setq non-prefer-newer noninteractive) +(setq frame-inhibit-implied-resize t) + +(push '(menu-bar-lines . 0) default-frame-alist) +(push '(tool-bar-lines . 0) default-frame-alist) +(push '(vertical-scroll-bars) default-frame-alist) +(when (featurep 'ns) + (push '(ns-transparent-titlebar . t) default-frame-alist)) +(setq-default mode-line-format nil) + +(setq inhibit-startup-message nil) + +;; initial load with blue theme +;(load-theme 'deeper-blue) + +;;(customize-set-variable 'initial-major-mode 'fundamental-mode) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; early-init.el ends here diff --git a/.config/emacs/elfeed.org b/.config/emacs/elfeed.org deleted file mode 100755 index dd0b0cb..0000000 --- a/.config/emacs/elfeed.org +++ /dev/null @@ -1,20 +0,0 @@ -#+title: Rss -* root :elfeed: -** News :news: -*** [[https://www.phoronix.com/rss.php][phoronix]] :phoronix: -*** [[https://www.computerworld.com/index.rss][Computer world]] :computerworld: -*** [[https://coolenjoy.net/rss?bo_table=38][Coolenjoy]] :coolenjoy: -*** [[https://gigglehd.com/gg/ggnews/rss][GiggleHardware]] :gigglehd: -** Paper :study: -*** [[https://arxiv.org/rss/cs][Computer Science]] :computerscience: -*** [[https://arxiv.org/rss/eess][Electrical Engineering and System Science]] :eess: -** Linux :linux: -*** [[https://www.reddit.com/r/linux.rss][Reddit Linux]] -*** [[https://www.gamingonlinux.com/article_rss.php][Gaming on linux]] :gaming: -*** [[https://hackaday.com/blog/feed/][Hackaday]] :hackaday: -*** [[http://lxer.com/module/newswire/headlines.rss][Lxer]] -** Programming :programming: -*** [[https://this-week-in-rust.org/rss.xml][This Week in Rust]] :rust: -*** [[https://opensource.com/feed][Opensource]] :opensource: -** Emacs :emacs: -*** [[https://www.reddit.com/r/emacs.rss][Reddit Emacs]] :reddit: diff --git a/.config/emacs/init.el b/.config/emacs/init.el new file mode 100644 index 0000000..b1af5f2 --- /dev/null +++ b/.config/emacs/init.el @@ -0,0 +1,57 @@ +;;; init.el -*- lexical-binding: t no-byte-compile: t -*- +;; copied from centaur emacs +(setq gc-cons-threshold most-positive-fixnum) + +(setq-default mode-line-format nil) ;; only for startup + +(setq auto-mode-case-fold nil) + +(unless (or (daemonp) noninteractive init-file-debug) + ;; Prevent flashing of messages at startup + (when (display-graphic-p) + (setq-default inhibit-redisplay t + inhibit-message t) + (defun reset-inhibit-vars () + (setq-default inhibit-redisplay nil + inhibit-message nil) + (redraw-frame)) + (add-hook 'window-setup-hook #'reset-inhibit-vars) + (define-advice startup--load-user-init-file (:after (&rest _) reset-inhibit-vars) + (and init-file-had-error (reset-inhibit-vars)))) + + ;; Suppress file handlers operations at startup + ;; `file-name-handler-alist' is consulted on each call to `require' and `load' + (let ((old-value file-name-handler-alist)) + (setq file-name-handler-alist nil) + (set-default-toplevel-value 'file-name-handler-alist file-name-handler-alist) + (add-hook 'emacs-startup-hook + (lambda () + "Recover file name handlers." + (setq file-name-handler-alist + (delete-dups (append file-name-handler-alist old-value)))) + 101))) + +;; Load path +;; Optimize: Force "lisp"" and "site-lisp" at the head to reduce the startup time. +(defun update-load-path (&rest _) + "Update `load-path'." + (dolist (dir '("site-lisp" "lisp")) + (push (expand-file-name dir user-emacs-directory) load-path))) + +(defun add-subdirs-to-load-path (&rest _) + "Add subdirectories to `load-path'. + +Don't put large files in `site-lisp' directory, e.g. EAF. +Otherwise the startup will be very slow. " + (let ((default-directory (expand-file-name "site-lisp" user-emacs-directory))) + (normal-top-level-add-subdirs-to-load-path))) + +(advice-add #'package-initialize :after #'update-load-path) +(advice-add #'package-initialize :after #'add-subdirs-to-load-path) + +(update-load-path) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; init.el ends here +(require 'init-package) diff --git a/.config/emacs/lisp/init-const.el b/.config/emacs/lisp/init-const.el new file mode 100644 index 0000000..3849e91 --- /dev/null +++ b/.config/emacs/lisp/init-const.el @@ -0,0 +1,7 @@ +;;; init-const.el -*- lexical-binding: t -*- +(defconst ON-LINUX (eq system-type 'gnu/linux) + "Under Linux system") +(defconst ON-WINDOWS (memq system-type '(cygwin windows-nt ms-dos)) + "Under Windows System") + +(provide 'init-const) diff --git a/.config/emacs/lisp/init-package.el b/.config/emacs/lisp/init-package.el new file mode 100644 index 0000000..d14409e --- /dev/null +++ b/.config/emacs/lisp/init-package.el @@ -0,0 +1,9 @@ +;;; init-package.el -*- lexical-binding: t -*- +(require 'init-const) + + + + + + +(provide 'init-package) diff --git a/.config/emacs/logos/xemacs_color.png b/.config/emacs/logos/xemacs_color.png deleted file mode 100644 index 1df9ea94c86e419e3fb4633b28f90602f15bfb5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6928 zcmV+r8}H)Sf_tsSn_DiCspz4v+^3Dusy;4(20r$dqC3S-YYPjZGx7rNNO?&-B*r3jZB( zcXa`ZNn;a<#NhB@;8cnD%Fgz`d^O(te+{md5}D;#l8aYTHttNaJG&em*<%E5YQhPU z;lrS(DKcmBNcYz}%Xcb;iB|;Q7Lf)q?2qazs$8_I#RV|Cx&X!E%|x&i^fW}9GtKUd zo#a;PR^-l#4-Q@z;ZCrnDvV7xdq+(k;XSvL%CKEzPxuDk{BSr;9Q{vG*@U=9RS)Cu zeeJX1k?^Zl^m{0Wiy+qO|FMBT{)TVzUSIp}4!eC5ee)x^^D$dl1+c=DDQCLB>?>b&54C<0&tIs@ z8Ad3x%0>fo_xiXudrSpEU-|7VyKNIa|Iy4rkveODGJ(6RhkKXyg`bAUD2ak_8t8Qb zB|sK1*)3~us)^D>()>!$y)3Lwm-tr}-A4+O7#v)x$jzdfR3Qek z5tx;3b{lJJvBmb;7wmR5IRA$ap8)-`qW`P-$4nj0`^EH8w<0_Z>~fI(5z18AXoNqC zjYe0EjK5h-UwzGPSA!E3L8BliqSAtEPn+_!;)z?oB6~REEJt(@$XNs`x@M^ zG8(CB??=gqjgIYUFSg+^4zOX+fbwzc$F56zA4t8Q#~T~YEcW{59rqd&-n$P z@S^Y!RyFCUj;cC)b-X9A0g=bU ztb0{|o6<`)QJPEy%Pdrg*vXTJ#~$i3@z}Zh;<-yOx{Udgf3+jq{jvrpB%G#bnIP$Z zYuRzrT=z)$6|nP+$Y((Z0J8a}(jtcUBaus{_Tg+(PpNx|vP3disc;gIGge>fGVz4E z&*Hgv5}C_rob+-b_WPZ{^^fv#gt4N;5q)9QD5B2NHU5Hqa$$HG*a?D^fDA-Cw7E(S zXjNp^z>m3$`{R^e+xY%L^5SBY$z6^TD(4-HI1d8nv#2m}p&tsYHkc`fWL_vabp8tV zn>2!V0T!=hKt^-Jt;!gI3PD|v#1;lbRaG{M(B!$^kQ%!`)=^dYpSaHj$DPGCz1*80$)yCj z5dh`YgyRh!cP1OQF`P=p`5^fW;4!fE3)I$jYdF`hYH&$OFv#kMO|l>^Xc)Jsgztbdk8>SBShaRRfV}D;l59MbTs698ZU@N8O6xQjxs4 zs)WF(PQ?XSpI8JO2Rg00;zBY)o@-(n zemD;6evHWLG?6M5zrT-BUmVSS0QD<^atzDbR3-Tu;J>loncz9(ljPUX3uv9HGM6Qbt0 ze0N~S7^C}wV8h&WL_WLuy7H6SQM7cLDbk6+-XC6&BY^2!r1?<%_H>7X{0ACd#Q6Ht zSycV{t`j)*!+4NxdC|+JkFcKCilSApY2HK8m&M3DBT|m2Rpk$kaDR~V9@^Cbif8X; zfW*U9sQdZu^0!rT~V$bA+e}QqbFx0D7)+*mrwg3EaoGueI{j-W3cWBEf8K5V%$J=-XYTSnJOv^4v)~|3n8P|R zqVij-&i7q7&^mf2ksQ=nHjDh(VlFhIs){K2P@6`Y?$TEjABLM9ifS5bGI(sl204g* zKqjjsy#Yi~1tOQCjOfD3g*#Q?+{~pH#x}LyC2A#zmwnHhbM?5L>A$x~OjXB;Z0W$!UhNeR>@42}v1V2U$VftSIz~SS>LY}N@;p9w zFlhRZhm7Voz;8OsZiSViod}$0ZGF}Ft(|qq)aa!^?{`5is9w&5hGP-EcB?z@?UYDX zIQ@I~yRDhCt?#u2$z(;W_R3fK+-ae#opmySS%Ryd!-`_IQbODQjd&J~&fxgkP6HCn zKj9SX=r2`ei~O3{^xRV>_K2dXj@Jdzd{j;!1zo1b4aC~hMC1sy`j>RtyS{c5xq_dg za^AtULJC9XK3noP+8P38t|-FoWgDlNl6hKbDwsZRVLS{}I?c3`6vuKHDFhuDk71q4&4Hxw*{YK|KDnGjIH1)b|r{SI_wbo1A9g zQjo%SNs9`GQLIXJS}DYE@-`RU+@FSw;yy4N3oV+6JnRSF@E$H9>KN^MgDCNEp9q|u zb^A%Nf3&>e2HCxGiR3-r+;Ly(3qL(#b?V&!|3#(M2e?6Y(ZpiVTkk=~2P z0?KQ)-n=cWo--Mvb32Ai3H1$zPT4}>XYXg27&}s<59^Bf+4WXq-|m<$o%XIvByxXI zF;@t>A7cIi`a4vXR}Xie?6nlhl1ZQgP`QSMRkv?0OOblf5=>k2gqLYO6^sTYrB`~h zuDX54*^11XS(l))91y~2-_1SVXXktjqib>W6K%r2g2;CmJbn99i_No}fO9c`iel^) z44Scdk=yDA_(Txdr$o(R?bpPOLJ6Gfhn&av`{EHhWn$f>s4PWgJPWIqb-dO48a#ew zEJ(ig-)@lmjEbYSG;yAnx~i$ycDskLX4X7JssTY2TzmkYO%1@fPvyl0EXyzljHhDE zj+gKlc^=C-SQX%P*4rPo-&(Z_HxX)+&_P_WR;_c#(48f2)%+u|b|xyPA~KxDs%-)z zy%RWf_W+xG?-dh72dEgUB_-!OsWCfO+}9Sz_+b4#hBcq!f zKK;h$iJX%Wdk)B#Kwd(^p)8o%X(9S`(;%4ghHutJ{ zjzn(Wr?ILkKhNwhXH%@T*3}IMkdreo_7p@*Q8|zU5G z*q^Q^yR#_wW4Vz<)jQk)+3gyfuDN}vpKW>C207PpeVZ#uToF(0WO3Iulwh4zI64>r z%X*9qAU_NVP`=V8E}&NzEbi*%9=ubJa6O1c^&-k^?&+Asz#(d#{8-ot(rUfs$B(A+ z_(E!KD&?|1eiYUWLMTT#gX`t9hzRXdOr4?@Fh-929w_a zR{)Yl^-YZV1({$G-|zezyF)953LM;U>kuc{^mLTjYQroPr~|D8}!6Wu!Nwu)HT@;jSpbxbUw z8cQtevAFYY**n)tRp2BRm(*U;y;JF)cbDO4UR;qYD4(7mYsXtgp~j(oYeUF7qLR^2 zxdU-ihGu6b#+inyMRhitY^q~#d57eODrcjd4ss%>w;f4yz{|ioMAw1&GiqO=vHJfO z?5~^bP~cqZM_-7yv^*1~H@PO3h$27!bN{Amww`w^h)nI$i~QE??Oqgmro^-Wa|_PA zdd?&qy`oLT>nN|ui@Pcnr_5fLj5f<=W>p{p|EMp zs`&>IM&~1PK5$$Yson)%KzR|-7cshymc3tQSpnnkBC=h9Gc`*N^0UEnQF@aremt_V z*o*$0Yr9$=(lt#@PPpcs6@HLCJ<4T_6H8{@_5Ze@;QY!K!?dZC;r-+=;5vlU5!o`1ulxa61+2ojzhyz? zUkWNiAJetKspUy87p;r3X%E*?iN*fv#@-v!T?fI9w+=Cxmd6QgspitgjVG;*B`>1B zz;#$_=N^rb2ikhbjZ{qk@Wps0wGX~K6H!445j~BH8QnNMrPeZt?TdR|suaIu43Zp+ z&~ZXxJ@7N&G4NKgaKhgT_q+4xQs6KXG}~;tR8WkcY;ocrKbqQc-I=45pl0c9PPX-u zD3cMRh{TgNn=G9kpIKnEYxT{0LG&0xj7Xm3ts|-_?^t@L3egx=0wg+viW{Hp(pGmF zzjy#9eGPuH8g$>bK~Mzz3gs?5xu5!~{xQG39Xb^_SF`jElgl1Km@_6(76iWg1*djY z=L@tuA${Z0ll)9}g@j=lVb-XPFp1JAOeQA8XO8(^fo254yAci~(znR@-(=LNtpW+s zN@!ohG3QZnIs8h?rN&WKl_MWg=;9Tv}3*B7qNE?O5`0=dCe*Cl@9TC6j@+Vi3atA~MRz^lorsJYR1(0ob)`jK{jP8r&O@idu;ymV7T(#UI z@xeqyQa}uN8l;BC>Q#N>Zx_-ou(;{WGMmj9i6_D!?%xobHLA-%K~THwQq!7VjE&+p zn{iyvCkV4Re$uM%|K7y?)8n<5w*s=4E&EYqIJx7BQc*CLC(51m4OMzyzo zlWcmK38H;8+v>QUk9ADG*2YW2FzH|Hr>?!XJ^gCCu+EBH(6Jd71%p1n!Pz)+i#Ty} z>QKa4-uA!ol-CqDe3weOe2}OCsR90uaxvenzN@Q)1NIbL05_AJ6y?$m2lgoZrqUd8$W|QN2K6pMsE`yUOvG}pynEi9Z{mN@M*SOUz9A`zVIuZBfxWrE_ zXJTgaja4a^66e1#_^AAris?&>`jq1u4#6w=G3X#f8pv*%&63&{78cb@zr@Ymc>A~9 z$i_V{MiAsMHaav@v*aL6IH8-?DwE4y=2}}4W?CKJ^)Oxx8-`fdjZ8^dPGcpb-C0+z z=xFqL8b=CzcWZG)^-ozNUoPj`EyvVl&P;@3u%z+Bwn_RTQCW93uKW;q4#ylt!=yhI z&Gv49D?w{jl+769d3c^rkWD9I*1n+`h$5>tmvubf$M^DU*n%KXHy&5K*rU!N-Z_l9 za*N>kY8I9Y+)syTGEqg4cQEFJ6PU1NpdddanhJo?OZY&ZGhWGAiP=~DersdTv*6RB z=1IWYyz?f%o&AGIqAw1mYRh=->YMjM&4Zvq$bAg$#dNBkty1j3_8xQF-hfS^=t;*@ zwe4XkHoOBz_r=P4IPRFDJki9)eMlxBLgfwi-ZYBZ+RTnK?YX$>m<_p1ZZF^8@&tk? z$YMP|auP|6VzE0tZ~tpe?Wj(-Gd9uW9ID=f3WsjB!7eLe{{46+Ys zt~RwJTDNE9VEgv1DsqZ;*v?}hXT^MZFxPK83Gn<)pGM@?{Eh)#L`COopSs1w#(fa) zevD2i~sy>Bu>@i~z z`?bML>ih*+J9{R|48S6Ce8&alJtCFzc|Z9RFmv~$7;>@b@%GW*(Qp8&k8U9@s1@hj zF2!Aa)0a?c0I)Kn*WwDo2Z@_M61Qu5EO1QSAJE~rd_feetJNDahletc|Y z9d90Sb5DJ5=K6+lsJY`Kal58Rdy}4H!3crj?XyFIs8~C{!c1J!Wv0-%9ft!@0!(<$ zwyQI`$%OiIz`Vf1N$YxLXAh@GHQ0^x+RcF~RZxAP!c3gpWrnr0FUN3p-lJYkd2R0k z50&-h7|HF)vp~h7M*^!cF#*IX#>%rIC0)ml*Q7p!)%-HoP@e3#fx1UbY}^MZXF=7& zy|VK!LXVng5v~HpBD|4VI*1 zByc&EuK^Qwm{9&Phx~5@g5g4rpZ32!@wb@+-@1q>`r+=n0B%>%XXj+GcJ^0+NdPE! zGN`8O-vTOx>V^_v9gA-GNAC;wuS4G)Ww<)EAL_h{VIY>jlJ$?|q{#&z2KEufqi>Ef zwC2Y+3`B`=&2R>PB<`-F_)YYh+1KI78TtR{c#fOat>5|ih~iS*Ci=x$pCgnP5L_bt z1w&?ht$4;iq9+uu2EVpAMou2gi_1R=?YD|%`y+Zx@dRGKp$><`Korrhb3*NIwMlDF zr8okwop~DQcmS-a9dQI=Y!7t6*n{4 - - -