From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id ALFKDr1r3GVGRgEAqHPOHw:P1 (envelope-from ) for ; Mon, 26 Feb 2024 11:45:17 +0100 Received: from aspmx1.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0.migadu.com with LMTPS id ALFKDr1r3GVGRgEAqHPOHw (envelope-from ) for ; Mon, 26 Feb 2024 11:45:17 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=WzOvTHt9; dmarc=pass (policy=none) header.from=posteo.net; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1708944317; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=XBPAB4Bg8THkgdu+giZLmKolGYANUChXgVvJBONfF7o=; b=hC/yUISoPzieHZ3ScpKpoxtSLwTxCsJokkqj3Jfp1jXt5G+yTlQEIUtlXRIO0gH6J+P+Bd K+1UJjOwKywjA0c02qwRpz/k+JQzN1A47PPHr6BJj0JVkZpoqUI+Ci97fcoExvWe/80hLx RTLMyHK8k5WiJHKh2RPlboMtb05X17cCKPOg3gUj7zJZONPEsX8sValtqHhch6xcVjenvv IMJM3cWongDJmQ9yipoddELox0MlX7q5FZol3dy19geXRxqVF0w4IgbBaPnYK1VyTDHN46 Spkl90kBEw7MYvGPs4bpdS80iBOKdWKFfbTN469bniLt74Qt4DAVHzcnQKK8lQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=WzOvTHt9; dmarc=pass (policy=none) header.from=posteo.net; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1708944317; a=rsa-sha256; cv=none; b=qp7XbMVUFItvCrZfJrFAtyAcLLkOZJV4LmMt5WIz+dEDycyB4xBpG6au5NRJBn4JbtJ7R5 wJlxJCZx3MZEjILmM19QB0gSDPlp18bP6Hyfi6KI9feIBLkqVNek1CddFGq/k8nLAspc6l Q2n7HAyr1IfRrQgtSATN+xk1fzqHjRprfwQaEBTXcrwLy+KxiCwI5wkOstgLUfSRO3IJkz BAJRa9YzqFTYnvLDG1qhURJLXqjH37zx1ZoVvSKuJ9OAHl3j5PXDQ4oMoqqqlO1Mfktqli Aj+ee0MP6hVh5e5G77orJhgIqE5Ewhr5OzOm5uAaLGjeFQ1GepsnTXVMI32Ecg== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 933123DEF6 for ; Mon, 26 Feb 2024 11:45:16 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1reYTQ-0000BA-Jy; Mon, 26 Feb 2024 05:44:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1reYTP-0000Ae-2N for emacs-orgmode@gnu.org; Mon, 26 Feb 2024 05:44:39 -0500 Received: from mout02.posteo.de ([185.67.36.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1reYTL-0002qV-Ks for emacs-orgmode@gnu.org; Mon, 26 Feb 2024 05:44:38 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id 7D9E3240104 for ; Mon, 26 Feb 2024 11:44:32 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1708944272; bh=0O8TQlAaw39NUger09GzKnZ/NpaViWYoF7t9saV4s8A=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type: From; b=WzOvTHt9xrMv3CQeYfMU9KCVO+rm6Dlelkj+fvIUpGuqxzJILqtFACry5js9RDr7O PrKbNZg2atJCeOvsJSiNmQyt6lE5tHXe7Mmz6E9KWntMFvDLOJTyPYB7SJwuiZEAn8 PlQ7jVt4HyCwNtRuy7GVtQ2Y2qHCzs7hrWQzxoWXSliaJTJHRPcLKXMwa+qWE+GDSp 12MXuS75joVSVNDWXeY+AhuWMs+Qf5sOHIV9z+3xYIdG0l+dCuxBxt9iNi8tSP50/i 8ZfMdsMEg2YKQnlyCvs3LbC+jCpaaN4eGAkeiwEckMAbgjBxZwMtSmzjk5thnzxW7a UFGh9iXwIdswA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4Tjy0v1JVmz9rxN; Mon, 26 Feb 2024 11:44:30 +0100 (CET) From: Ihor Radchenko To: Max Nikulin Cc: emacs-orgmode@gnu.org, Martin =?utf-8?Q?Edstr=C3=B6m?= Subject: Re: Warn about shell-expansion in the docstring of org-latex-to-html-convert-command In-Reply-To: <6e49c590-ad27-4fb0-b1f2-6a89c60a0b58@gmail.com> References: <87wmr1rc2w.fsf@localhost> <874jdzjqkk.fsf@localhost> <6e49c590-ad27-4fb0-b1f2-6a89c60a0b58@gmail.com> Date: Mon, 26 Feb 2024 10:48:17 +0000 Message-ID: <87msrncxhq.fsf@localhost> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=185.67.36.66; envelope-from=yantar92@posteo.net; helo=mout02.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -9.42 X-Spam-Score: -9.42 X-Migadu-Queue-Id: 933123DEF6 X-Migadu-Scanner: mx13.migadu.com X-TUID: db128BCyFUv+ --=-=-= Content-Type: text/plain Max Nikulin writes: > (let ((org-latex-to-html-convert-command > "printf '%%s' '%i'")) > (org-format-latex-as-html "$f' = df/dx$")) > "/bin/bash: -c: line 1: unexpected EOF while looking for matching `'' > " > > Something weird may be executed in the case of sufficiently complex > equations. > It should be more reliable to pass fragment to command stdin. It can be > done if %i is missed in `org-latex-to-html-convert-command'. I agree that it will be more reliable to shell-escape argument. However, I am concerned that escaping may break certain uses like somecommand << EOF %i EOF In the above scenario, escaping will break things. That's why I prefer to add a new replacement, not change the meaning of %i. We might even remove %i from the docstring, keeping support in the code for backwards-compatibility. Also, I just looked closer into the example with latexml we provide in the docstring and played around with it. I noticed that with (defun org-format-latex-as-html (latex-fragment) "Convert LATEX-FRAGMENT to HTML. This uses `org-latex-to-html-convert-command', which see." (let ((cmd (format-spec org-latex-to-html-convert-command `((?i . ,latex-fragment) (?I . ,(shell-quote-argument latex-fragment)))))) (message "Running %s" cmd) (shell-command-to-string cmd))) (with-temp-file "/tmp/test2.html" (let ((org-latex-to-html-convert-command "latexmlc literal:%I --profile=math --preload=siunitx.sty 2>/dev/null")) (insert (org-format-latex-as-html "$f' = df/dx$")))) test2.html is rendered *incorrectly* as in the attached screenshot. In contrast, manually providing output file as latexmlc literal:\$f\'\ =\ df/dx\$ --profile=math --preload=siunitx.sty --output /tmp/test3.html yields correct rendering. --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=incorrect-rendering.png Content-Transfer-Encoding: base64 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 m0Ui0R9//MH8lF6DiWJpaVlUVFTzSqVSaaNGjahjfvTRR5WVlTU/Jk8Qz4YVz3VBLco5MjMz6b/k Ro0a5ebmKhSKJ0+ecGOU0rFjR+bu1co5li9fTm22fPlyDZsXExNTv3795ORkrU8Qar/i4mJupG3Y sIGn6o4ePcqaI9/ExCQ8PFwikVAbSCSS8PBwExP2/cjDhw/z0R6Du0ZTCzhTFixYwPp00KBBrH+3 6OjomlfK/CIPDw+v+QH5g3g2rHiuC2rLsxWpVDp+/PjCwkLq7Zo1a6j+HMx7mCyspy3VQs+hfunS JQ13iYyMdHR0bNOmjdaVQu2ndP2dPn368FFXSkrKtGnTFIxFFlu2bHnlypVVq1bRY6bMzc1XrVp1 5cqVli1bMvcNDg5OTk7mo1UG5Pjx46tXr6Zee3p6LlmyhLVBRkYGq6QmFw1abX6wwoJ4htqmtuQc 33//PT1VV5cuXaZNm0a95l41aKqeuWiid+/ezs7OhJDY2NiSkpIqt5dIJFFRUdOnT8fKbcaNdbeM EOLo6Kj0hnANvXv3btSoUczYCw0NffDggY+PD3djHx+f+/fvh4aG0iWlpaWjRo2qy9PDZGRkBAcH 029//fVX7uB21opLlpaWSv95q6W8vJzqOEIIadmyZdeuXWt4QF4hnqG2qRU5R0JCwu+//06/Za6R xpxRg37yQggZMGDA0qVLta5RJBKNHz+eEFJRUXH48OEqt9+3b19xcfEXX3yhdY1gEK5du8Yq8fX1 1XmiqVAoAgMD6eeGzs7OZ8+e3bJli6WlpapdrKystmzZcubMGSpXJoSkpqYGBgYyf1bWvFX00Wp/ t765c+fSgz/btm3r7+/P3WbZsmX0mgkNGzbctWuXk5NTDes9d+4c/cCilt/kIIhnw4nnOkT4xzlc ffv2pdvz0UcfyWQy+qMhQ4bQHzk7O9+/f3/v3r03b97kHqRa/TkUCkVaWho1vPaTTz5Rv6VcLvfy 8ho/frwWpwaG5ZNPPmH9gWzcuFHntURERNDHnzhxYmFhoeb7FhQUMJc7joiI0LoZ9+/fX7ly5YgR I9q0aWNlZcX6KhKLxTY2Nk5OTh4eHp06dRo1atS8efM2btx47tw5nfTErImYmBhmU7du3apqy3fv 3p04ceLIkSOvX7/WSdXMf/zExESdHJM/iGeDiOc6Rf85x4kTJ5iRwerDzJyoTiQSvX37VtVxqptz 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 HNxZYhITEwWoF4yP0umS3NzcuCP0Kisrd+/eTY0knDdvHlW4ceNG1r4TJ06kPpLL5dT9fGqKHp7M mDGD2/5mzZo9fPhQ6fbFxcW7du1StWamMV2jmZKSklhnGhAQwGuN06ZNo+u6cOECr3UxIZ6NL57l cnloaCjVS6NDhw7bt28vLy9XKBRFRUXUjC9dunQpKytTtTt3iZ/Zs2dTH7169YrKOKOiogQ6GR4I kXOw7uk5ODhoPgAdgEnVnVs7O7vNmzenpKR8+PDh6dOnGzdu7NChA/VRSEgIvfvy5ctZO1pYWKxe vfrQoUPUctKjR4+uqKjgr/3ciWooYrF4zJgx69ev379//86dO9euXRsWFta7d2+6J6NYLG7ZsqVR XqO5du3axTrT33//nb/qysvL6VkuHB0dZTIZf3WxIJ6NL563bdvGOq8mTZqMGDGCGpHk5OSk/haF 0lVjvvjii5UrV1L/Yjr/VxIY7zkHawFAQsi4ceP4rhSMVWVlZbWGAoaFhTHvyS9atEjNxpMmTZJK pXyfgtKfhupZW1ufPHkyIiKCVd6lS5f9+/c/e/ZMV22rJTnHV199xTrTpKQk/qpjfvHPnDmTv4q4 EM9MxhHP06dPV3Xitra2Vd7jLywsFItVrvfeq1cv6q6J4eI95+BO7st3/3Mwbrm5uW3atKnyumZl ZUU982bas2eP0o1NTEwWL14szO23kpKSaq0a6uvrm5aWplAxzIFC/ZDKzc2tYdtqSc7BGr7I9zC3 SZMm0XVdvnyZ17q4EM9cBh3PP/30k6r/wbi4OE2OoGo+unbt2uXn5/Pdfr7xnnMsWbKE9Q+Xnp7O d6Vg3AoLCydPnqxqukYzM7MpU6a8fPmSu2Npaambmxtr+9atW3MHrfHqw4cPs2bNUvNrhtK7d+/o 6Gh6r6KiIvUzVKp6iK652pBzSCQSMzMz5nkFBQXxV11ZWZmVlRVVUdOmTXntqaoK4tmY4vnFixfc EUkuLi737t3T8AjPnz/nLmjs4+OTl5fHa8uFIVJwJoLVrSFDhpw7d45+27VrV+6cpABaSElJiY6O vn79el5enlQqtbW1dXd379mzZ0BAgJoJK6kph+Pi4kxNTbt27TplypTJkydXa+lwXUlLS4uMjPz7 77+fPXtWUFBQUVFhZWXl6urapk2b3r17Dx8+nOovxnTnzh2ZTKbqgB07duSu32Fw4uPje/bsySw5 deqUv78/T9UdPnyY7uT+zTff/P777zxVVCXEM4vhxnNqaupPP/0UGxv76tUrZ2fncePGLVy4kDtO R42kpKSwsLDExERTU9NOnToFBAR88cUXVWZ1BoH3nMPBwaGgoIB+u2rVqvDwcF5rBADDtWHDhtmz Z9Nv7ezs8vLy+F7CHgCEwe+cYE+fPmUmHCKRiDsQCACAduPGDebbUaNGIeEAMBr85hyxsbHMtz17 9vzoo494rREADBrroiHA+q4AIBh+cw7WIjRff/01r9UBgEHLysp68eIF/bZVq1ZKZ80CAAPFb87B HA3l6uqKBysAoMbff//NfPvdd9/Rq24CgBHg8e/50aNHz58/p99+++23eC4LAGowp/Oxt7dnTkkO AEaAx5zjxIkT9Gtra+vQ0FD+6gIAQ1deXs5cRfObb74x0KGSAKCKluN9Kyoqzp079+bNG19f3xYt Wijdhjlv/NKlS+kVDQCgDnr69OnVq1ddXFz8/PyUTiARHR1Nr8zu6uqKQfUAxkebnKOsrKxv3763 bt0ihJibm2/ZsoV7CzQuLu7x48fU6w4dOnzzzTc1bCgAGK79+/dPnz5dKpUSQrp163bp0iXWavWE kO3bt9Ov165dS08PCgBGQ5tnK+vWraMSDkJIeXn5rFmzmJNwUOj1e0Qi0caNG/UyLx4A1AZlZWVf f/01lXAQQm7fvr1s2TLWNgkJCXSXcz8/v7FjxwraRAAQhDY5x/Xr15lvP3z4kJiYyCy5desW3Zlj 2bJlPj4+WrcPAAxdcnJyUVERs4Q18RchZNGiRdScyK6urqqWLgMAQ6dNzsFaVUgsFnt6etJvP3z4 QC/mO2XKlIULF9akfQBg6LjrkLVv3575dvfu3WfPniWEWFpanjx5smnTpsI1DgAEpE3OMXjwYOZb Pz8/V1dX6rVUKp0yZUpycjIhZNiwYcwHtABQNzVp0sTb25tZQv8sIYTExMRQswU2bNjw8OHDrC0B wJhok3OMHDkyJCSEfnv79u34+Pji4uLz58/7+PhER0eLRKIlS5acOHHC3Nxcd00FAEO1b98+5rqa +/bte/PmzbNnzxYvXjxkyJD37997enrGx8ezfs8AgJHRcl1ZmUy2YsWK1atXFxcX/9fhRKJBgwb9 +OOPn332mY5aCADGICEhYe7cuVevXmWVN2nS5Ouvvw4LC+OOZAEAI1OjtewLCwtPnjz5+PHjzMxM JycnDw8PX1/ftm3b6rB9AGBMYmNj4+Pjnzx5UlFR4eHh0bZtW39/f9wQBagjapRzAAAAAGgI6ycB AACAEJBzAAAAgBCQcwAAAIAQkHMAAACAEJBzAAAAgBCQcwAAAIAQkHMAAACAEJBzAAAAgBCQcwAA AIAQkHMAAACAEJBzAAAAgBCQcwAAAIAQkHMAAACAEJBzAAAAgBCQcwAAAIAQkHMAAACAEJBzAAAA gBCQcwAAAIAQkHMAAACAEJBzAAAAgBCQcwAAAIAQkHMAAACAEJBzAAAAgBCQcwAAAIAQkHMAAACA EJBzAAAAgBCQcwAAAIAQkHMAAACAEJBzAAAAgBCQcwAAAIAQkHMAAACAEJBzAAAAgBCQcwAAAIAQ kHMAAACAEJBzAAAAgBCQcwAAAIAQkHMAAACAEJBzAAAAgBCQcwAAAIAQkHMAAACAEJBzAAAAgBCQ cwAAAIAQkHMAAACAEJBzAAAAgBCQcwAAAIAQkHMAAACAEJBzAAAAgBCQcwAAAIAQkHMAAACAEJBz AAAAgBCQcwAAAIAQkHMAAACAEJBzAAAAgBD+F+LFssZseaptAAAAAElFTkSuQmCC --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=correct-rendering.png Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAZIAAACnCAIAAAC0IE0HAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAZ dklEQVR4nO3deVgUR94H8O4BuQVDwCNEE0UjCAriBbuJUQRBiRpdQBMwh9msR7JEn6xHoiHGrM8m JtHkSWI2m11dA0FEEV3JBo+gRpRDJYpkvVaRiChyiTAcw8C8f/Q+/bbVM8Oc3V36/fw1U9NdVV3T 85s+qqtYnU7HAADQQyV3BQAAzIOwBQCUQdgCAMogbAEAZRC2AIAyCFsAQBmELQCgDMIWAFAGYQsA KIOwBQCUQdgCAMogbAEAZRC2AIAyCFsAQBmELQCgDMIWAFAGYQsAKIOwBQCUQdgCAMogbAEAZRC2 AIAyCFsAQBmELQCgDGVhKykpiRWYOXOm3DUCAKlRFraqq6uFb5OSkuSqCQDIheKw5eHhgaMtgAcQ xWFr9uzZrq6uMlYGAGRBU9hqaWlpaWnh3+IMEeDBRFPYunHjBv+6b9++UVFRMlYGAORCU9gSniHO nTvXwcFBxsoAgFxoCls3b97kX+MMEeCBRVPY4o+2/P39J0yYIG9lAEAuVIat559/Xt6aAICMELYA gDL0ha0xY8YEBATIXRcAkA19YQuHWgAPOEe5K2CGpUuXtre3z58/X+6KAICcWJ1OJ3cdAADMQNNJ IgAAg7AFANRB2AIAyiBsAQBlELYAgDIIWwBAGYQtAKAMTd1N4f7Q1dV19erVM2fOlJaWlpaWpqam /va3v5W7Uveh+7idKehu2t7evm3btry8vNLS0rq6OhcXl2HDhgUEBCxcuDAiIkLu2oExDQ0NN27c qK6u/vXXXysqKq5cuXLp0qULFy60t7fzy5SXlwcFBVlcRG5u7q5du4qKim7dutXZ2Tl06NBhw4bN mTNn3rx5KtWDcjIhQTsri07B1Gr1J5980r9/f66qHh4eISEhvXv35isfExNTW1srdzVBv4KCgh53 P19f3+7ubgsy7+7u3rVrV2hoKJdPr169RowYMWDAAD7nwMDA4uJiG27O6tWr+cxzcnJsmLOV7NrO yqTcsFVVVTVq1Ciu0f39/bOzs7l212q1YWFh/PcRHh7e2toqd2VBj5qams2bN3/wwQfLli2bNGmS 3p9TfHy8BTl3dHQ899xzXA69e/fesGFDW1sb91FKSgqfuY+Pz6VLl2y1OcOGDeOy9fT0bG9vt1W2 1rNfOyuWQsNWWVnZo48+yrX4yJEjhYdUWq1W+KfKMMyaNWtkrCqYaPny5eKf0xdffGFuPo2NjfyP 08vLq6SkRPhpQkKCMP8nn3zSJpU/ffo0n+f8+fNtkqed2KqdlUyJYauystLb25trbm9v75s3bwo/ LSwsJL6SkJAQuaoKptu7d6/451ReXm5WJhqNRnhBc//+/cSnwmsInMbGRusrL4wFubm51mdoPzZp Z4VT3DVLjUaTmJjY0NDAvd24cSN/bYtTUVFBrNLZ2SlR5cAKwjkuOb6+viNGjDArkxUrVvD/Wy+9 9NLUqVOFn9bV1TU3NxOraDQaM2uqR1ZWFvfioYceio6Otj5D+7FJOyuc4sLW8uXLi4uLuddjxox5 8cUXiQXGjBlD3CGKjY2VqHJghXPnzhEpTz/9NMuypueQk5Pz6aefcq9dXV03bNhALDBgwAA/Pz9h SlhYWN++fc2v7D2KiooqKyu517Nnz3ZycrIyQ7uyvp0pIPfh3j1Onz4tbN/MzEy9i61Zs4ZfJioq qqWlReJ6ggXEnYa+/PJL01dXq9WPPPIIv+6iRYv0LrZv3z43NzduGX9//19++cX6mi9dupQvlzgt VSAr25kKygpbkydP5tt60KBBWq3W0JJnz55NT08vKiqSsnpgMbVaLT5IMSumrF27VrjuxYsXDS15 /fr1zMzMAwcO8LcXrdHd3c0fwfn4+HR2dlqfp/1Y385UUFDY+te//iVs61WrVsldI7CZvLw84rfU t29f01evrq52d3fn1w0PD7dfVQlHjx7ly124cKFk5VrGynamhYKubb3//vvCt4mJiXLVBGzu0KFD RIqhHkZ6bdq0Sa1W82+l3Dd27NghS7mWsbKdaaGUsFVYWHjy5En+rb+//+jRo2WsD9jWjz/+SKQI LwgY19ra+ve//51/y7JsfHy8zWpmVFdXV3Z2Nve6X79+Tz/9tDTlWsyadqaIUsLWZ599Jnw7ffp0 uWoCNldfX3/mzBkiMTIy0sTVv/3228bGRv5tcHDwwIEDbVY5ow4fPlxTU8O9jo+Pd3BwkKZcy1jZ zhRRRNiqra3l/9M492VbP7Dy8/N19z6x/8gjjzzxxBMmrv7VV18J30q5bwjPEOfOnStZuZaxsp0p ooiwtWvXLq1Wy79VqVTKPxoH01lz5nL+/PmysjJhimRhq7Ozc/fu3dxrPz+/J598UppyLfaAnCEy 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 --=-=-= Content-Type: text/plain -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at . Support Org development at , or support my work at --=-=-=--