From unknown Sun Aug 17 10:22:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#35140: 12.1; Scan errors in doctex mode with ^^A-comments after braces Resent-From: Markus Kohm Original-Sender: "Debbugs-submit" Resent-CC: bug-auctex@gnu.org Resent-Date: Thu, 04 Apr 2019 12:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 35140 X-GNU-PR-Package: auctex X-GNU-PR-Keywords: To: 35140@debbugs.gnu.org X-Debbugs-Original-To: bug-auctex@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.155438144826213 (code B ref -1); Thu, 04 Apr 2019 12:38:02 +0000 Received: (at submit) by debbugs.gnu.org; 4 Apr 2019 12:37:28 +0000 Received: from localhost ([127.0.0.1]:43764 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hC1cW-0006oj-2D for submit@debbugs.gnu.org; Thu, 04 Apr 2019 08:37:28 -0400 Received: from eggs.gnu.org ([209.51.188.92]:54617) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hBwda-0005UA-NG for submit@debbugs.gnu.org; Thu, 04 Apr 2019 03:18:14 -0400 Received: from lists.gnu.org ([209.51.188.17]:54990) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hBwdU-00075S-Gs for submit@debbugs.gnu.org; Thu, 04 Apr 2019 03:18:09 -0400 Received: from eggs.gnu.org ([209.51.188.92]:40758) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hBwdT-0000SA-29 for bug-auctex@gnu.org; Thu, 04 Apr 2019 03:18:08 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_50,FREEMAIL_FROM, RCVD_IN_DNSWL_LOW,URIBL_BLOCKED autolearn=disabled version=3.3.2 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hBwdN-00072o-MJ for bug-auctex@gnu.org; Thu, 04 Apr 2019 03:18:07 -0400 Received: from mout.gmx.net ([212.227.15.15]:52483) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hBwdL-00070F-Re for bug-auctex@gnu.org; Thu, 04 Apr 2019 03:18:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1554362277; bh=BaLsFvfm0INsQyC5+0RerSVg+pFQhnC4ecG3UU8X6io=; h=X-UI-Sender-Class:From:To:Subject:Date; b=PdRQg0sLxEzxXV7/5tlryWr4v1GGPFQvKIx+nm4LnrLydChCmIylEPILO47S4gtMS FS6gY2Zv5BHyGBQ/SnXZUFnqtYh5bC79viBFd3gWwrFX+GZJDDmyziDYZx+g3MDNG2 cY2jYr7PciZvvInIcgw5oMiUnknf0ijrGgYWscQk= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from v130.localnet ([83.135.107.47]) by mail.gmx.com (mrgmx001 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MGS9o-1h7WmS3Xma-00DK45 for ; Thu, 04 Apr 2019 09:17:56 +0200 From: Markus Kohm Date: Thu, 04 Apr 2019 09:17:47 +0200 Message-ID: <1990475.NB1R35vEMU@komascript.de> X-Face: &j9&UV)xci&*\>K%lnE]u/`\0'`-rm=~HHx|j|3.iu}_m>N*Bu~=@/_5<=!?65%4BgW]f( MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart3591875.R4orCr9ueW"; micalg="pgp-sha256"; protocol="application/pgp-signature" X-Provags-ID: V03:K1:bD2menhJhV7qNs02Q2h2u6s0K8peZWX4wtxYKBUlujVAbHaLh75 qtgI73NNCwQaXWOmXTztuUhL08+9E1klybIiBQxAoUMOSziXbSn2hXAO9e0mmqRZ8KYjfpw QJ5/80TeuoHJkuaFawncm0lOmP0QP0i5s89Tm4IvejmSegl8W3xTDnDYA/M8E6fZF1Qnxce PjafaOOrE9FR2peHdWJFQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:+AkXNPIB6Jc=:7pF4DvXw4EqHxAXHs/tm7m DdNjwu/GpdXhoSTKAZSOX0bRlFzPaBN8w09m0FHAfRskN0cMzIF8z3HO3dJ6RpCWAp8eJBYpJ i7qcNNEOK4hFGAcU4fTEjYZllLqXCO1vqMGS8QeSZyVwnrqf0LObbn2IcHY2y8kabaPDfZCZ7 Vv1DYgswmPE3TgQP25z8YW1ZjPyjDWjcP2mBeMSg2Z0tKjy8f3QE4UqpTkRfAxkRRJIcP5HQu K3zLqlv2E0ueJl/MYksOQMT1XhPi/WebtF8Zg+ZiE1iKlgF1YnylKfKhvDwP+xiDD8+r3LQTn Evf6LH3uxswzlzrixrpNRMtQjEpc7VsYCKBHT5KlPW4POWFTmgViZ5zusJ+eKrBzNBTZHKqmH FMkATRm6hP3A9kK6eUAKeX+N7Zagnfh3jm5eN82ERlJKuBtwya97ZOt79YWLdx/P6ZI9cm0FH 4EbZQCcwEVt6Xi3WWp24j6VsFVbCYA/qnhtXxFaia0XWY2GRUraQIWsDku4QaqXSiznx/hVCC Ruk4nWEODRdxhSQDcnGn7KSz2nws+gpyAhnYheq9qvSJ3Y5Tmc0+4w42TaCVbRc8M7QB6TGFL 9TpB5mSpoKXYchLmYmKheORTZrgGrn7lXYk46eoKBtSG3CmbkC4qriDHXo0APAVAnpsSzht8J lR1FwqxkpTI95doOPgn1dDnVFY/DWOf3FHFD0NPpy2b01l4DFfefF1h27ACvFHD9XDXWr0v1X Q6l/c0CNNqfkEKfpxk12dq6YEVwwUAy/h26b33WNh8icsn0O49gyndmxRj7SqWLSpM/Vi6hnE FYCspdCTWhWoyZRgWybim0SCOqYWuZdEFPrzwEPRuDF4JOsF9yPt6dYIdoko2STYbgK+Gczpx +7Pwp4XyYC93KAAS6dHALbEBF3rI/nSaKe7ovrvos1yypC9bx2Vu1OCjH9nH2i X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 212.227.15.15 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Mailman-Approved-At: Thu, 04 Apr 2019 08:37:27 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" --nextPart3591875.R4orCr9ueW Content-Type: multipart/mixed; boundary="nextPart3262199.NWTHT7Wp6s" Content-Transfer-Encoding: 7Bit This is a multi-part message in MIME format. --nextPart3262199.NWTHT7Wp6s Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="us-ascii" Remember to cover the basics, that is, what you expected to happen and what in fact did happen. Be sure to consult the FAQ section in the manual before submitting a bug report. In addition check if the bug is reproducable with an up-to-date version of AUCTeX. So please upgrade to the version available from http://www.gnu.org/software/auctex/ if your installation is older than the one available from the web site. If the bug is triggered by a specific (La)TeX file, you should try to produce a minimal sample file showing the problem and include it in your report. Your report will be posted for the auctex package at the GNU bug tracker. Visit http://debbugs.gnu.org/cgi/pkgreport.cgi?pkg=3Dauctex to browse existing AUCTeX bugs. =2D----------------------------------------------------------------------- The LaTeX package doc, that is usually used via class ltxdoc for the documentation part of dtx-files, declares ^^A as comment character. But auctex's doctex mode fails scanning for balanced {...} pairs, if } is immediately followed by ^^A. You can test it, with this example file: =2D-- test.dtx --- % \begin{macro}{\test}^^A This is an official dtx-comment % This does not work. Try to double-click to the closing brace before the % comment and you will get: |Scan error: "Unbalanced parantheses", 22, 22| % \end{macro} % % \begin{macro}{\test}%^^A This is a workaround for an official dtx-commen= t % This does work, but the \% after the closing brace is not wanted. % \end{macro} % \endinput % Local Variables: % mode: doctex % TeX-master: t % End: =2D-- end of file --- Emacs : GNU Emacs 26.1 (build 1, x86_64-suse-linux-gnu, GTK+ Version 3.24= .4) Package: 12.1 current state: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D (setq AUCTeX-date "2017-12-10" window-system 'x LaTeX-version "2e" TeX-style-path '("/usr/share/emacs/site-lisp/auctex/auto" "/usr/share/emacs/site-lisp/auctex/style" "/home/mjk/.emacs.d/auctex/auto" "/home/mjk/.emacs.d/auctex/style" "auto" "style") TeX-auto-save t TeX-parse-self t TeX-master t TeX-command-list '(("biber" "biber %s.bcf" TeX-run-BibTeX nil t) ("TeX" "%(PDF)%(tex) %`%S%(PDFout)%(mode)%' %t" TeX-run-TeX nil (plain-tex-mode texinfo-mode ams-tex-mode) :help "Run plain TeX") ("LaTeX" "%`%l%(mode)%' %t" TeX-run-TeX nil (latex-mode doctex-mode) :help "Run LaTeX") ("Makeinfo" "makeinfo %t" TeX-run-compile nil (texinfo-mode) :help "Run Makeinfo with Info output") ("Makeinfo HTML" "makeinfo --html %t" TeX-run-compile nil (texinfo-mode) :help "Run Makeinfo with HTML output") ("AmSTeX" "%(PDF)amstex %`%S%(PDFout)%(mode)%' %t" TeX-run-TeX nil (ams-tex-mode) :help "Run AMSTeX") ("ConTeXt" "texexec --once --texutil %(execopts)%t" TeX-run-TeX nil (context-mode) :help "Run ConTeXt once") ("ConTeXt Full" "texexec %(execopts)%t" TeX-run-TeX nil (context-mode) :help "Run ConTeXt until completion") ("BibTeX" "bibtex %s" TeX-run-BibTeX nil t :help "Run BibTeX") ("View" "%V" TeX-run-discard-or-function t t :help "Run Viewer") ("Print" "%p" TeX-run-command t t :help "Print the file") ("Queue" "%q" TeX-run-background nil t :help "View the printer queue" :visible TeX-queue-command) ("File" "%(o?)dvips %d -o %f " TeX-run-command t t :help "Generate PostScript file") ("Index" "makeindex %s" TeX-run-command nil t :help "Create index file") ("Check" "lacheck %s" TeX-run-compile nil (latex-mode) :help "Check LaTeX file for correctness") ("Spell" "(TeX-ispell-document \"\")" TeX-run-function nil t :help "Spell-check the document") --nextPart3262199.NWTHT7Wp6s Content-Disposition: attachment; filename="doctexfailure.dtx" Content-Transfer-Encoding: 7Bit Content-Type: text/x-tex; charset="UTF-8"; name="doctexfailure.dtx" % \begin{macro}{\test}^^A This is an official dtx-comment % This does not work. Try to double-click to the closing brace before the % comment and you will get: |Scan error: "Unbalanced parantheses", 22, 22| % \end{macro} % % \begin{macro}{\test}%^^A This is a workaround for an official dtx-comment % This does work, but the \% after the closing brace is not wanted. % \end{macro} % \endinput % Local Variables: % mode: doctex % TeX-master: t % End: --nextPart3262199.NWTHT7Wp6s Content-Disposition: attachment; filename="auctex-scanerror.png" Content-Transfer-Encoding: base64 Content-Type: image/png; name="auctex-scanerror.png" iVBORw0KGgoAAAANSUhEUgAAAxgAAAL8CAYAAABj3xNEAAAACXBIWXMAABJ0AAASdAHeZh94AAAg AElEQVR4nOzdd1gUV9sH4N/Mwi5LrxZUNGKJIhakqNhiIWossRci5k1iy5vYS0xUNG/sGks+NbGh JrEkatQYe0MToyBqLNiwd4iALrB1Zr4/YFcWdtlZdkHU574uLtiZ2Zkz5wwz55lzzgyDksGU0HoJ IYQQQggh9iPYe4WsvVdICCGEEEIIeXNRgEEIIYQQQgixGwowCCGEEEIIIXZDAQYhhBBCCCHEbhxe 5sZjY2NpMDghhBBCCCF2Nn36dLsP3harJCr4hdZpLpBITk6mAIMQQgghhBA7q1u3rskAw0zgYddg xN4VfAYoHFCYCyTS0tIowCCEEEIIIcTO/Pz8TAYNBQOPfAGH3YKMEusilZyczFgKIBQKBQUYhBBC CCGElJL4+HgGyA1AzLVy2MpeFXzDemJjY5mCwYU+kFAqlQwABAUF2WmzhBBCCCGEEHMuXboEAJDL 5QIAuLm5GYIKfZBRoNuUzUGHXQOM2NhYJj4+ngVyg4qCAUVWVpZRoEEIIYQQQggpOfrAwtXVVQCM Aw59sNGqVSvenl2lbK3oG7VcxMfHswqFgqlevTqTlZXFFAwk1Go1AwAajcbkdn18fCjwIIQQQggh xEpPnz41GRhIpVIBAGQymdF8uVwuuLq6Cjdv3hTc3NyEAkEGYEOgYZcAo2BwkZaWxqrVakaj0TD5 gwZ9YKHVaimQIIQQQgghpIQ5OjoKwItAQ+/p06eCm5sb7+fnx5sJMko9wDDZclGuXDk2MzOTdXNz YzUaDaPVahmdTse4ubkxAKDT6Yx+F8RxHAUehBBCCCGEWEkikZgMCBwcHIT8fysUCkE/zcXFhVco FLynpyefmprK26slw6YAw1TLhVQqlTx79kwil8tZnU7HcBzHODs7M8CLAKLgb3PkcjkFHIQQQggh hBSgVCqLrPjrA478gYdEIhFycnIEiUQiODg4CEqlkpfL5bxareYqV67M2aslw9oKvMmnRfn5+bH3 79+XyGQyCQAHtVrNymQyVqPRsHK5nOE4juE4juF5npHJZAzP86K2K3Y5QgghhBBC3iQsy4qq+LMs K6jVaoFlWUEikQgSiURQKpWCVCrl1Wo1L5PJeAA6C0EGYEWgUawAw1zLhUajcQTgIJFIJCqVSuLo 6MhqtVpWH1Tk/3FycjIEEBRIEEIIIYQQYjt94KH/rVKp4ODgwLMsK+iDjbwWDJ7neQ6ATv9jr5YM sRV7US0XABw4jnPked6RYRgHlmUlHMexjo6ODMdxrIODAyMIgiGo0P+t/+3o6FhkIvTLEUIIIYQQ 8iZiGMZkRV+r1RrN1/9mWVZgGEbQ6XQCwzACx3G8RCLheZ7nBEHQAdA5OjpqIC7IAEQEGlYFGJZa LrRarVQikcg4jpNKpVIHrVbrwOaScBzHCoLA6IMM/U/+jUgkkiLTQwEGIYQQQgh5k5kLMDiOE0wt xzCMUWDBcRzv4ODACYLAAdDxPK/mOE5tRZBhc4BhVcsFwzBOEonEWafTySQSiVQQBEeGYSQcx0lY lmV5nmclEgkjCALD8zyrDxgcHBxyU1sggKCAghBCCCGEkMIKBhr6zzqdzvBZ/8PzPJ9bFed5iUTC CYLAMQyj1el0WkdHRxXHcTlWBhlAEYGGqABDbMuFRCJx3vbb9ovWZxEhhBBCCCHkZejR/f16xQgy zAYYbIHPTIEfQ8sFACiVSqNH0arValYikUiQ24Ih1el0MnvvMCGEEEIIIaTk6HQ6GcdxUuQ9rEmt VrNKpZJ1c3Nj09LSWKVSyQBAcnIyExsbq2+gKBQ36DlYs/GgoCDcv3+fAcDI5XIWAKvRaFhJLgdB EKQ27yEhhBBCCCGk1EgkEqlEItHodDqtSqXSyWQyDrn1fF6tVjNBQUG4efOmPoiwOAajYAuGkfzj LhQKBZOVlcXkf0O3PrhA3jgMQRCKfgwUIYQQQgghpEzRj5tmWVbi6OjIajQaVqfTMVqtltFoNExW VhZjphXDpCIDjPyUSiWjVCoZHx8fw1u45XI5o9VqWY7jWJ1OJ2EYRmLb7hFCCCGEEEJKE8MwEp1O J+E4jtVqtYYXZet0OsbHx8cQXIhlNsAo2HoRFBRkmKfT6QxBhkwmYyQSCSuRSFiO4yjAIIQQQggh 5NXioK/P61swnJ2dGTc3N0NgERQUBIVCwaSlpTGWWjGsGoOh5+bmxgiCwGg0GgYAIwgCw3Ecy7Ks 6BYRQgghhBBCyMunf4UExL8jr0jFCgh0Oh3DcRzD8zzD87zh5Xl5CSOEEEIIIYS8IvTvp3NwcDDU 7/VdpDQaDaNWq43GYVhSrBaMAgliWJbVBxkUYBBCCCGEEPIKYVmWZRhG32BgcyuGqIBAqVQyWVlZ jFqt1neLAgDIZDJDIuit24QQQgghhLya9HV5nucZmUxmqNfrnyRlzbpsbsEwlTBCCCGEEELIqyGv Ds/Yqy5vVYCh0WiYvBYUhmEYBgDj5OSkf6qUqESFhoebnB7Vvj1mzpiBmEGDMCgmBm3btjUs/9F/ /oNPhw+3JqlWs5Suoixbvhxr4uJwOiEBAArtQ0k4c+YMNm3ejIuXLiEzMxOenp4IDg5GdP/+qF+/ vt23Vxr7ZG/5y5RhGDg7O6NqQADeeecdRA8YAKnU+vdCXrt2DbPnzsW1a9cgl8uxYN481K9f3+z0 ssTcMZ6f/hi293ZL+n84/745ODjA19cX4WFhGDJ4MCpUqFBi282vLP+P2KsM7HUM/bF7N2KnTcOi hQvRPDLSaN7qNWuwJi4OmzduROXKlYud1lu3b2Pjxo1ISExEamoqnJyc4O/vj6j27REzcGCx1/u6 KXj9Kg79cdGrZ098MXGiyWV+/OknLF6yBID9zzMleY4pat3FzbvSqtcQYg19gIG8ur1+DEZxAw67 tmCI1bVrV/Tq2dNomoe7OwCgQsWKkMvlLyNZRabLGqb2Ycl338HBwcEuJ5QNGzdi0eLFaNumDcaN HQtfX1+kp6fj4MGD+GTIEEycMAE9e/Qo1rrNpfNllost9GUq8DyePXuGkwkJWLZ8OW7fvo3p06ZZ vb6vv/kGCoUCC+bNA8fzqF27dpHTy5L169YZ/t6ydSt27txpNO1Vpy/r7OxsXL92DWvXr8fJU6fw 6+bNcHFxKfHtv6r/I9aw1zH0XqdO2Lt3L+bOnYvQzZvh5OQEALh//z5Wr1mDT4cPtym4OHz4MKbE xqJOnToY8sknqFSpEp6mp+P8+fMQBIsvoCXF4OzsjP0HDmDsmDFwdCz8zt1df/wBDw8PPHv2rNjb sOd1lBBiTBCEvLYD+yh2gMFxHCORSMDzPGNts4qvjw/q1qljct7c2bOLmySbFZUuaxTcB57ncfTo UbRr187mdV+7dg2LFi/GoJgY/PfTT43mtW7VCpUqVcK8+fPRqGFDVK9e3ap1F5XOl1kutihYps2a NUNGejoOHzlSrAAjJSUFA/r3R0REhKjpZUn+fPD18Sk07VWXv6zDQkNRs1YtDP/0Uxw6dAhdu3Yt 8e2/qv8j1rDnMfTlpEno068fVqxciRGffw4AmD1nDmoEBmJA//7FTuODBw8QO3062rZpg2mxscj/ 9PQ277xT7PWSorVu3Rp79uzBn3/9hXdatzaad/nKFdy5cwddu3bFtm3birV+e15HCSGFOTg4gOM4 5B/kzXEcU9w3UJS5pz6Fhodj2fLlRS5z7fp1fD5iBFq2bo12UVH4ZsYMZGdnl0r6/j55EgNjYtCs eXN06NQJK1auhIODcZyWfx9u3b6N97t3x91797AmLg6h4eGiuhmY88uvv8LFxQX/+fBDk/MHDYqB s1yOX7dsMUrPkaNHsWLlSrzbsSOaRkbig5gYnDhxwrCMpXSaKpebt25hwsSJaNOuHZo1b44B0dGF Lh6h4eE4Gh+PFStX4r0uXRDZogUGREcjPj7eaLnUtDRMnTYNHTp1QrPmzdG5a1d8OXky0tLSiptV Zsnlcjg7Oxe5bwWn7z9wAN26d4dOp8P6H39EaHg4VqxcaXa6nqVjNTQ8HCf+/hu/bd+OLt26oWlk JK6npJR6nhQkpmytWS6/0tqvenkvB03NW29ReQ0UXVYDoqMxvEBAD+SeD0LDww2/Cx5HRa1z/IQJ 6NOvn9Hy23fsQGh4OJYuW2Y0fcSoUfjwo49szJGibd22DUOGDUNUhw5o0aoVBkRHY/+BA8Ven6Vj v2LFivh0+HD8vGEDUlJSsG/ffiSePo0pU6bAllcqbf71VzAMg4kTJlhcj9hz2OEjR7Bw0SK0i4pC i1atMGr0aPz77784/uefiB44EM2aN0ePXr2wZ+9eu30XEFcmYs+xgLjrV3FVKF8eISEh+OOPPwrN +33XLkRGRsLTw8Pkdy3tp5jrqEQiwQ8rVqBT585o3rIlogcOxLHjx+2yb9ayto4i5hpNyKvGLo+p 1Ter2OtEVZS79+7hk8GDUa9ePcyeNQtZWVlYtHgx7t+/j+8tBCa2OnfuHEaOGoXQ0FDMmzMHWp0O 2377DZcuXTL7nfLlymH27NmIGTTIZBcsayWdOYNGjRoZVZDzc5Y7o2GjRjhVoE/onLlzERISgqmT J4MXBGzcuBGjxozB98uWISQkxOp03r59G//56CNUq1YNX06aBA8PDyQlJWHOvHm4e+8eRo0caVh2 9pw5CK5XD19MnAhHR0esXr0aEydNwi+bNiEgIAAA8MUXX+BpejomjB8Pby8vPHz0COfOnYO3t7dN +ZXfc4UCSUlJ2LtvH4YNGWLVdxvUr49ZM2ca5Y+fry94njc5HRB/rMbFxSFHqcSY0aPh5emJqqWY J6aILVtrjoH8Smu/bt26BQCoUrmKYZq5vLZUVp07d8aixYuRmpqKcuXKGda3Z88elCtXDhEmbhpY WmeTJk1w5OhRpKenG/b96NGjcHd3x7Hjxw0tlBzH4dy5c4geMMCu+VPQP//8g4YNGuCD6Gg4yWRY ExeHyVOmoGpAgNVd/sQe+3379MH+/fvxvxkz8PjxYwyKiUHNGjVs2o8TJ04gIjzcYrc4a47fOXPn onlkJGbOmIH79+9j/oIF+HzECOQolRg2dCh8fX2xbt06TJs+HUFBQQioUsUu3xVbJmLOscW5flnr vU6dMGv2bDx79gweecGEVqvFvn378NWkSbhy9arJ71naTzHXp22//Yb6wcH4YuJESKXS3Dz44gts 3rTJKE9LWnHrKJau0YSUNEEQGIlEwjAMY1PLhd5LGYNhi1WrV0Mul+Pb+fMN/XadnZ0xavRonL9w AfWDg4u97jVxcVgTF2c07evp09GpY0cAwNp16+Dh4YFF335rGCDcskULdC6i+4Wzs7OhC4E9umCl paWhWdOmRS5TsUIFJCYmGk1zd3fHzG++MXyOCA9H565dsXb9eoSEhFidzh9WrICjoyN+WL7cUA5h oaFwcnLC0mXL0LtXL1SqVAkAIJPJMHfOHOj79vn7+6NHz55ISEw0XPyup6SgzTvvGLowNGzY0JDv tihYpnK5HKNHjUKP7t2tWk/58uVRvnx5AIXzx9x0scfqnTt3sHXLFri5uRlts6TyxBKxZWvNMVBa +yUIAp4/f45Lly7h20WLUKVKFbRq1dIw31xeWyqrjh06YMl332Hvvn2GAcIqlQpH4+PRr29fk3fK La2zaZMmAIDTp08jKioKSqUSCYmJiBk4EKtWr8bDhw/h7++PixcvIicnx7B8Sfl6+nSjz/7+/ni/ Rw8kJSVZHWCIPfZZlsWkSZMwIDoafn5++OTjj23ejydPnhQaOG6KNcevh4cHpkyeDAAIDwvDuXPn sHvPHixZvNhwPi7n54eevXvj7NmzRhVaW74rtkzEnGOLc/2yVru2bTF33jzsP3AAvXv1AgAc//NP CDyP5s2bmw0wLO2nmOuTXC43nQcJCTYHGKbqBuYUt45i6RpNyKvGLl2kHB0dIZFIRI/ByN/Eqf/Z v3+/qG0lJiaiSUSE4R8XABo2aAAAuHjhQjFS/8L73bphw08/Gf00b97cMP/CxYto2rSp0dOHWJZF k1Lud29piKIgCCg4UCekUSOjz1KpFJHNmhX77tXppCRENmtmVA4A8G5UFARBwMlTpwzTwkJDjdJT JW/w5r///muY1r17d+zesweTp0zB+fPni5UmU/KX6ZrVqzF65EisXLUKY8ePB8dxdtuOKWKP1Vat WhWq8AIllyeWiC1ba46B/Epqv9bExSEsIgJt27fHuAkTUL16daPKI2A+ry2VlZeXF5pHRmL3nj2G +UeOHkVOTg46d+5sMj2W1unv74/KlSsj8fRpALl33nmexwfR0YZWDABISEyEq6sr6tWrV9ysKRZ/ f38AQGYxBuVac54+efIkHB0d8e+//+Ly5cs2pPgFMQMVrTl+GzZsaLSM/slk+SuL+mlPnz41WtaW 7xZkrkzEnGNL4/rl7OyM1q1a4Y/duw3Tdu3ahXbt21v11L7iHHti8qC4TNUNNvz0E97v1q3QssWt o9j7Gk2Itez9qomX0oLxfrdu6NO7t9G0ihUrivpuZmYm/ti92+gEpvfs+XOb0uXt7Y1atWqZna9Q KAwDG/Pz8vKyabvW8PPzw+NHj4pc5tGjR/DN66aj5+rqWmg5Ly8vZGVlFSsdCoXCZJcWn7z8SU9P N9pOfvqLAM/zhmljRo1CeFgYNmzciI8HD0a1qlUxfPhwmwdlFizT+sHBqFatGoYMG4ZDhw8jqn17 k9/Ln7biEnusmjt+SipPLBFbttYcA/mV1H69360b+vTpAxdnZ/j5+Zms0JjLazFl1bVLF4wZNw7X U1JQs0YN7NmzBw0bNjR7d1TMOptERBgqskfj4xESEgJXV1c0a9oUx44dQ7++fZF4+jTCw8JsGpdg iUqlwtp16xAfH4/7Dx5ApVLZ9LQlscf+w4cPsWLlSowdMwZHjh7FjJkz8fNPP5l8CpFYfr6+eGjh HAlYd/yaGzuQ/7yqP68VzLfifteaMhFzji2t69d7772Hz0eMwN27d+Hq5oa/TpzAiu+/N7u8vY49 T09Po8+m8qC4zNUNTB0/xa2j2PsaTcjL9lJetGepIl8UNzc3hDZujA8HDSo0z8fEydOeXF1dkZmZ WWi6QqEo0e3mF9q4MQ4cPIisrCyTJ6SsrCycPXcOHTt0MJqenpFRaNn09HS4F+MxvADg7eVl8s6Q fppHvouq2MeeNY+MRPPISNy9dw9LlizBhIkTsWzpUoSHhRUrjebUyWtev3v3rtllMkzkl7XscayW Vp7kJ7ZsrTkGCiqJ/fL29katmjWL9V0xZRUZGQlvLy/s2bMHvh98gFMJCfhq0iSb1hkREYEtW7fi yZMn+OvECcPjN1u2bImpsbHIzMzExYsXMW7s2GLtl1hfTp6MhIQEDMnrO+6SN8YrupjvixB77M+c NQvVq1dHj+7dER4Whr79+2Pd+vU2dZUKDQ3FgYMHoVKpCrVO5GfL8VsarCkTMefY0rp+RYSHw8/P D3/s3g0Pd3dUqFABDfLu4Jtir2PPno/XtEVxz/v2vkYT8rK9cmMwQhs3xo2bNxEYGAiJRFKq264X FISTJ09Cp9MZBrQLgoCzZ89a/K6DgwNUarXNaejdqxd27NyJNXFxhkc75rcmLg4qlcrQ/1UvISEB PM8b7oKq1Wr8ffIkggv0BxWbzqZNm+LIkSPIyckxGnC+d98+ALkX+eIKqFIFU6dMwdH4eFy+fNnu lel/8rrl6FvNfHx88ODhQ6NlzHXvsYY9j9WSzpP8xJatPY6B0tyvoogpK4lEgo4dO+LwkSOoVKkS pFJpkY/MFLPOsNBQSCQSbNm6FQqFAq1btQIAQ9/8nzdsgEajQZMSHn9x6tQpdO3SxegFdFfN9JcX Q8y+796zBwmJiVi/di1YlkVAQAAGfvAB1sTFIap9e8PYAWv17NED23fswJLvvsOE8ePNLleS5zB7 sHeZ2HL9sgbLsujw7rvYs2cPnF1c8F6nTkUub81+2us6WpKKe94Xe40m5FXxygUYQ4cMwcBBgzBi 1Cj06tkTPt7eyMjIwPkLF9C/X79CXYOs8e/Tp0gu0AfYw93dMNBv4MCB+O9nn2Hs+PHo26cPeJ7H 77t2ieonWrNGDRw8cABNwsPBSiTF7vdaq1YtjBo5EgsXLcLDhw/x7rvvwsfHB+np6di/fz8OHjqE LyZOLPQOjOzsbIwdNw7d338fTk5OWPfjj8jMzCx0l0VsOocMHoxjx49j6LBhiImJgaenJ5KSkhC3 di16dO+O6m+9ZdV+jR4zBs2bN0fVqlUhCAJ27doFlmXRqEC/VGvlL1OdVovrKSlYuWoVAgIC0LZN GwC53VT27d+PekFBqF27NlJSUrBu/XqbumkAth+rJZUnlogt2+IeAy9rv4oitqy6dumCnzdswKZN m9C2TRuzT3MTu05XV1cEBQXht+3bEVyvnmE7rq6uCGnUCFu3bUNAQAD8RXYhLcrdu3dxtMCjS318 fBBcrx5q1qyJP//6C2FHjsDLywspKSnYvmNHkftXFEv7LpVKsXDRIvTu1Qtvv/224Xsff/QR9u7d ixmzZuGHYj4VsHbt2hjx+edYvGQJ7t27hy5duqBChQrIysrCnTt3UMnfHy1btrT7Ocze7F0mtly/ rPVep0748aefAADz5swpcllr9tNe19GSVNzzvthrNCGvilcuwKhatSrWrV2L5cuX45sZMwz9aMNC QyGTyWxa986dO7Fz506jaVHt22PmjBkAcu82Lpg/H8u//x5jx42Dh4cHunbpgnejojBh4sQi1/3V l19i5uzZGD9xInx8fLBz+/Zip3NA//6oXasWNm7ahHnz5iEjMxNeXl6oHxyM1atWIdjEYNAB/fsj JycHM2bNwvPnz1EjMBBLFi0q9EQLseksX7481q9di6XLlmHuvHnIyspC5UqVMPLzz9GvwLP9xahQ oQLi1q5FWloanJ2dUb16dcybM8emp4IBxmUqlUpRsWJFdOrYEYNiYgzdJ8aMHg2GYRC3di2ysrIQ VLcuZs+ahVk2vjjN1mO1pPLEErFlW9xj4GXtV1HEllVgYCDqvP02Ll+5gi8s/M+LXWeTiAicP38e g2JijL7fokULJCQmokOB7o7FdfDQIRw8dMhoWvPISCxauBBfT5+O+fPnY1re03yCg4Pxzf/+h4UL FxZrW5b2/duFC8GyLIYPG2b0PZlMhnFjx2LMuHHYsXMnuhXzCUcfREejVq1a2LR5MxYuWoSnT59C JpOhatWqGJzX/cre5zB7s3eZ2HL9slaNGjVQq1YtOMlkqGLhCU7W7Kc9r6MlpbjnfbHXaEJeFQU7 LRo+x8bGMsnJyUxaWhqTmprKVq1alUlNTZU4OTlJGIZx4HneUSqVSnmel0skEmdBENx4nvfesfP3 HaW8D8SC0PBwfPzRR4Uu5oQQQgh5uegaTcqCbl27dGNZNp1hGAXHcTksyyo1Go2GZVmtIAg6lUrF lStXjrtz545Qrlw53s/PT6hbt64wffr0/E9lMPxd5t7kTUqGLU+EIYQQQkjJoWs0ed1QgEEIIYQQ QgixGwowCCGEEEIIIXbzyg3yJtY7nZDwspNACCGEEBPoGk1eR9SCQQghhBBCCLEbCjAIIYQQQggh dkMBBiGEEEIIIcRuHFD4XRiEEEIIIYQQYg1DTEEtGIQQQgghhBC7oQCDEEIIIYQQYjcUYBBCCCGE EELsxmSAERsbyyQnJzNpaWk0PoMQQgghhBBikJaWxiQnJzOxsbEmYwVqwSCEEEIIIYTYjcUAQ6FQ UCsGIYQQQgghbzClUskEBQWJig2oBYMQQgghhBBiN6ICjKCgICiVSmrJIIQQQggh5A3j4+NjVRxA LRiEEEIIIYQQu6EAgxBCCCGEEGI3FGAQQgghhBBC7MbBmoV9fHyY7OxscBzHODs7M1qtlsZlEEII IYSQMsvL08Poc0bms5eUklcHz/OMXC5ncnJyGJa1vj3CqgCjpBQseDHo4CCEEEIIIXrm6pP79u1D +/btodVqMXnyZLPLUd3Sfl56gOHl6YELFy4gMDAQcrm8yGU1Gg3u3LmDqVOnwsvTgw4EQsgrrzg3 WMyhcyJ5k4ipB1Bd4c3h5emB7OzHhab/5z/DERUVhXXr1kGhUEAmk6FPn+4YOfJTNGwYbFju2j97 3/jjRRAEBoBdeie99AADgKjgAgCkUimePn2KSZMmUZBRgoqq8FB+E2I/Xp4eOH45Cw9znuH0pqX4 8v13wEokEHgefE4OwEqAvM86lRJgWEDgc38zLHRSOb79/RBaR3+G9GcKOie+JqgciR718LDe3avH DH8nX7mF7OdpAICkpCQIgoAWLVog/vAunD99CDrFDZQr5w0AOPD76peS3tdVmQgwigouBEEAwzAQ BAGCIECtVsPf3x8eHh5YuXIlnYjtzNvLA3/s/RkNGgQXmvfjjz+hXbtmOHjwxEtIGbGW7u59qA4d g+b8ZfCpuSdYtpwfpMF1IW/fApIqlV9yCgkAqIQs3LlxG2mp6Xh28jiQnQnwgE6jAWRy8EolNHIX QKeFJlsJBgIEiQQ5z7Mg8BwydF64mHwRZ8+ce9m7QuzAni1arzMvTw+c+vtYkXUAL08PPLx/+5Wv J+zatQvt2rWzuBzP80hKSnrl99dW/z7NzP39byaWr9qK3Xv/RGZmJgYMGAAvLy9oNBq0fOc9/LD6 V/TvE4VagQHw8/OERq16ySl/vZSJAMMUfUAhCDwYhoUg8BAEICMjHXXq1IGHhwfatWuHhQsXvvH/ TPbk7OyC4OC6SHt6wzBNEAQAQFC9atjwo+ZlJY2IJGi1yFq7Car9R4G8stPj7j2A8t4DKPcegjyq NVw+7AfGocyeBt4IgsCA53g4yZzwOIuDRCsFeAFgHMFoBQiOLshKfQY3D1dkqzi4eHsh58ljMAIP pZM3pIwUGq0AvkBZk1ePl6cHMh7sh1elqJedlFdCrdpB6NjRfF6NHTOiFFNTcqsu7Q0AACAASURB VNq1a4dnz8TVcWrVqlXCqSn7fH08AQCzF6zH9P8txNatWwHk9oK5cOECGIaBi4sLvH0r49if51Cj ehX4eHsCPP8yk/3asUvNQhAEJq/flj3WZQgsBAF5AQbyPgvIzs6GTCYDAPj5+aF169ZYv3692SAj NDwcDMNg5Q8/oGHDhibnf/Sf/+DT4cPtkXyrhIaHm5we1b49Zs6YgZhBgzAoJgZt27Y1LF+SaQ0N rYcl/zcDAKDMUYIXBLAsC4ZhwLIMylfwwdtB1REUVAOXLqXYtK0zZ85g0+bNuHjpEjIzM+Hp6Yng 4GBE9++P+vXr22N37K6slZcpglaLZzMWQnvxStEL8jyUew+Du/8I7pNHFxlkmNoPQRDw1ZQpOHXq FNasWoWqVata3H8x+ZE/jxmGgbOzM6oGBOCdd95B9IABkEqlYrLByLVr1zB77lxcu3YNcrkcC+bN Q/369c1OL206nofgwMPFTYKIqd9Y/f1948aBZVnwusLBvyAI2PzLL9ixYwfu3L0LqVQKP19fNGrU CJ999hnc3dzssQs2eRPL3BQvTw9kPIqHkHHE8FnPmhtoRf2fLVu+HGvi4nA6IcH2BJfgOsViAISH NjB5/ffy9MDzZxm4ffOqVeu8dfs2Nm7ciITERKSmpsLJyQn+/v6Iat8eMQMH2jH11vntt9+QmpoK AHBycsKgQYOQmJiIM2fOYOjQofjhhx8QEhKCsLCwYm+jrO67tZ4/z4JGq0PL5g0xfeoYZGQqoFKp Cy0nkUjQv08UWIZBRqYCvMh7NPnPWQ4ODvD19UV4WBiGDB6MChUq2Gs3Xnll5talqcBCP41hcn9D EKDRaOHp6WlyHeaCDEEQMHP2bGz46Sc4lLG7tV27dkWvnj2Npnm4uwMAKlSsKGpsir1wOg4RESFI ufEPsnNywHECJCwLiQMLR0dHMAyDesE18eRRGry9PA0tG6YUdUHcsHEjFi1ejLZt2mDc2LHw9fVF eno6Dh48iE+GDMHECRPQs0ePkthFm5Wl8jIlK26j5eAiH83Fy8hetxmuH0dbtZ3FS5bg2LFjWL5s GapWrQrAfvuvz2OB5/Hs2TOcTEjAsuXLcfv2bUyfNs3q9X39zTdQKBRYMG8eOJ5H7dq1i5xe2iQA eLXtd844Tldo2rLly7H+xx8xZPBgNGrUCCqlErdu38bFixfh5upq8zbt5U0r84K8PD2QcX+3IbhI T54GAHh05wZu3HxErfRmKNVKRDYJR58+PQvNGztmBLRaDc7/c1b0+g4fPowpsbGoU6cOhnzyCSpV qoSn6ek4f/58kdc7c5Z89x0cHBzscpOpe/fuhaaFhYUZAoohQ4YAQLHSCdh/318md/fcc1vXTi3h 7lb0ea5u7WqGMRjW0J+zsrOzcf3aNaxdvx4nT53Cr5s3w8XFpVjpNseex1FpKjO1bZ7nCgUW0P/W j8GAgD69e6F1q5bIzs7C/QcP8PjRY/zzz3lkK9Kwcs0Gk+tuEhGBhMRE/PTzz/hw0KBS3rOi+fr4 oG6dOibnzZ09u1TTInGQQCqT4tnzLGi1WqhVGkgkLBwcHSDwAnheQGBgAKoNqYzPRnwCuZMHHKWO YBkGMpkMUpkjJBIHZGY+NXtBvHbtGhYtXoxBMTH476efGs1r3aoVKlWqhHnz56NRw4aoXr16ae26 aGWpvArS3b0P1YF4w2f3sZ9CufcQtJeM7+A5BtWGvENbPF+wDACg3HcE8qjWkFSpJGo7mzZvxsZN m7Bg/nwE16tnmG6v/S+Yx82aNUNGejoOHzlSrMpmSkoKBvTvj4iICFHTS59g6Ml29uxZqy7mz58/ BwA4OkigVhduwdi6bRve69QJH3/0kWFas2bNbEtuCXjzyvwFfbco4VnhsW0VqwaiYtVA/LPdjYKM AjIyn2HJwgUYMXIk/jqZYJQ/+VsvftmyQ1S+PXjwALHTp6NtmzaYFhuL/M/9b/POO1anj+d5HD16 VNTYCTG+/PJLKJVKLFy4EF9//TXKly+PkJAQhIaGmrxrbs3DWuy97y+bvgUDAOrVza1HHDycgKRz V5CYlAydjjNavu7bb4FhGKQ+ugVAXOth/nNWWGgoataqheGffopDhw6ha9eudtsXex9HpanMvMmb 53nwPAee5yHk/fACnztd/5vL/Vsqk0Imk+Gtt95C/frBaNWqBQKrv2V23XXr1kWP7t2xavVqPHz0 yGJarl2/js9HjEDL1q3RLioK38yYgezsbADA+AkT0KdfP6Plt+/YgdDwcCxdtsxo+ohRo/Bhvgu7 tULDw7Fs+fJip9VaTx7/CwkrwaNHqVAolHj+TIHMDAUy058jM/M5MtKfQa3WwMFRAo0uC5mK+0hN vYknaTdx5+4lXLl6Fv/8cxJnz502u41ffv0VLi4u+M+HH5qcP2hQDJzlcvy6ZYtRPhw5ehQrVq7E ux07omlkJD6IicGJE4UvyJbyIzQ8HEfj47Fi5Uq816ULIlu0wIDoaMTHxxdal7VKu7wKUh06ZjTm QvnHAbiPGQ5pvRcVN8e3a8J9zHCo9h158UWeh/LQcVHbOHzkCL5duBCTv/oKzSMjjeaJ2f/iksvl cHZ2trit/NP3HziAbt27Q6fTYf2PPyI0PBwrVq40O11PzDF04u+/8dv27ejSrRuaRkbiekrxuwzy AgOe0yEzMxONGjVCSEiI6J/WrVu/WI+JLlIsyyInJ8diGrZu24Yhw4YhqkMHtGjVCgOio7H/wAHD /AHR0Rhe4IYAAPx98iRCw8Px98mTAOx7fL/OZa7n5emBo7+NNRlc5FelVgMcXduhRAaAW3NO/Pvk SQyMiUGz5s3RoVMnrFi50mSvgJu3bmHCxIlo064dmjVvjgHR0di2bZvd0x47/WvIZDJENgnHu+1f VIS7du4AjuPw+OE97Ny1V9S6Nv/6KxiGwcQJE1DUS8XEHIe3bt/G+9274+69e1gTF4fQ8HCzXWzF mjlzJhYuXAgAmDp1KoYOHYqwsDBUqFABv//+e75eIEX/JCcnFzqOxO47IK5sLV2z1Wo13mnbFnPn zSu0/p83bEBYRISoupo57u6u8PXxNPo5mXgRQz+diMdPnuLfp5lGP8f+Oov4P8/g8o0Mi3llTr2g IABAalqaYZql86p++anTpqFDp05o1rw5Onftii8nT0ZaWpqo46gk6xS2KkMtGLyhxUKAAIF/8TfD MbnTBAEcx8FZLofcyQk6nQ6cjoOfXzncttBP97+fforDhw9jzty5WJz3T2rK3Xv38MngwahXrx5m z5qFrKwsLFq8GPfv38f3y5ejSZMmOHL0KNLT0+HtndusdvToUbi7u+PY8eOGu/Icx+HcuXOIHjDA fplkZVqtlZWlhFbHIz0tE2qtFt8v3Yy01PRip8/bK7crW3pGpmFa0pkzaNSokVHFIT9nuTMaNmqE UwX6886ZOxchISGYOnkyeEHAxo0bMWrMGHy/bBlCQkIAiM+P2XPmILhePXwxcSIcHR2xevVqTJw0 Cb9s2oSAgIBi768l9i6vgjTnk40+a69cx/Nvl8N9zHA8/zZ3/fq/C7ZqaP4x/q4p586dw+QpUzB8 2DB06dzZ5vSK8VyhQFJSEvbu24dheV0AxGpQvz5mzZyJmEGDDM3Zfr6+4Hne5HRAfBnFxcUhR6nE mNGj4eXpiao2HDe8igfH8ma7foohCAIEnis0vWWLFtj1xx9Yu24d+vXtCycnJ5Pf/+eff9CwQQN8 EB0NJ5kMa+LiMHnKFFQNCEDt2rXRuXNnLFq8GKmpqShXrpzhe3v27EG5cuUQER5ut+P7TShzvYzM Z/Dy9MD3/5WhaR1Hk8t4BLaGe9VQVAysB6BkntMv5px47tw5jBw1CqGhoZg3Zw60Oh22/fYbLl26 ZLSu27dv4z8ffYRq1arhy0mT4OHhgaSkJMyZNw93793DqJEj7ZbujMxnWLZsGYYOHYKGR3KfKBUS EoJ9+/bi3p0UbNi0VXRenThxAhHh4Xbp3lK+XDnMnj3b6HizVf4xGPoxF/rWzs5WnI/rmGiBF7vv 1pStpWt2x44dsXfPHowaOdJonNWevXsREhIC/4oVRe9T4XQ+hEZn3GU085nCqnwCTOeVObdu5bZ+ VKlcxTDN0nkVAL744gs8TU/HhPHj4e3lhYePHuHcuXPw9vaGi4tLkcdRSdcpbFV2AgyOMwQWAAwB Rf7H1EIQcls28n50Oh08PNzAcVrwJi6u+bm5uWHUyJGYOm0aDh06ZBiIWtCq1ashl8vx7fz5houx s7MzRo0ejfMXLqBpkyYAgNOnTyMqKgpKpRIJiYmIGTgwt4Xk4UP4+/vj4sWLyMnJMSxfEiyltX5w 4UfNWiIIQLZSjT+PJSEx4W+4uDmA4wv37Tb/fQE6nQ5arQ46rQ6AI5o3j8Cff54CAKSlpaFZ06ZF rqNihQpITEw0mubu7o6Z37wYABsRHo7OXbti7fr1hgBDbH7IZDLMnTMHDJP7XAJ/f3/06NkTCYmJ JRpglER55cf/WzgY1F66aggyAJgMLnK/+2+R67516xa2bNkCiUSCbnZs/jVlTVwc1sTFGT7L5XKM HjUKPUz0QS5K+fLlUb58eQCFu+CYmy62jO7cuYOtW7bAzQ6DpNUsDOcva7tIqVQvHqvo4VD4/3TM 6NFQKBT4v6VLsXbdOrwbFYX+/fqhWrVqRst9PX260Wd/f3+836MHkpKSULt2bXTs0AFLvvsOe/ft Mwz2VKlUOBofj359+4JlWZuO7zetzPPTBxkLPxHQpmHhG2XPbhxF9sNzqNj0E+z4rhW6fW57a2tB Ys6Ja9etg4eHBxZ9+62hQtiyRQt0LnA++GHFCjg6OuKH5csN+RkWGgonJycsXbYMvXv1QqVK4rpj ijFu/AQMHz4cffsNwJFjf6Npk6a4cP4f6FSZWPvjJiz87gdR63ny5EmhVtnicnZ2NhxjRXWrtUbB MRhDhw6FIAiIjY0FAGzatAmPH+e+ZE4ul2Po0KH4+++/cerUKYwaNQqLFi1CREQEmpq4/ordd2vK 1tI1u2f37vjll18Qf+wY2ud1/7l9+zauXLmCaXn7VFzVqvkXmnbz1gMApvMJgOi8yk8QBDx//hyX Ll3Ct4sWoUqVKmjVqqVhvqXzKgBcT0lBm3feMXRFa9iwITp17AjA8nFU0nUKW5WdAIPnDS0W+r9Z fWCR7z0Y+sCC43SGzx7u7mbviOfXqVMnbN+5Ewu+/RZNmzY1+Z3ExEQ0iYgwutPXsEEDAMDFCxcw YMAAVK5cGYl5AcaJEyfA8zw+iI7GL7/+imPHj6Nf375ISEyEq6sr6uXro25KwQsrAMz85htERVl+ TKGltBbv4OKQk6PEuTNX4evrg+u3LXedyV8h0um43B+tDmqNBpmZCqjUxl00LFWf9EFlfiGNGhl9 lkqliGzWDMeOv0if2PwICw01Wn+Vyrnvg/jXQiUbKIvlVTqOxsdjQP/+2Pbbb4idNg1LFi8uVEb2 8n63bujTuzcAQKVWI+X6daxctQp/nTiBubNnQyKRlMh2AfFl1KpVK7tVNFlHAVIGyHn8GI0KHOdi bNu2DTqOB6fTFprn6uqKeXPnIjk5Gb/8+it2/fEHftu+HYM/+QSDP/nE7Dr9/XMv0Jl5j8b08vJC 88hI7N6zxxBgHDl6FDk5OYa7grYc329amRf0IsgA2jSUosFnWYZ5ua0bmXh2JwGVatQHYP8AQ8w5 8cLFi4iMjDS628yyLJpERGDn778bpp1OSkJks2aFWsvejYrC/y1dipOnTtn1IR4Zmc/g4uqG1Ef3 8XXsFCxcsgzvqTIR9V5vq1t6SuqcZg/6MRgADOMw/Pz8DPP7Fei6DQBNmzY1VJJHjRpV5PrF7Ls1 ZWvpmh0YGIj6wcH4/fffDQHGnr174ezsjLZt2lhMS1Hu3n9S6KlR+nEXpvIJsC6vAOO6gFQqRfPm zTFuzBizrcRA4fMqkBs4bty4ERzHoU/v3lY91a6s1ynKTIBhKzdXcc2aX0yciAHR0Vi2fDnGjR1b aH5mZib+2L0bf+zeXWjes7wBlU0iInDyVO4d+aPx8QgJCYGrqyuaNW2KY8eOoV/fvkg8fRrhYWEW +zPmv7DqVRTZNCgmrcVx7cotnD37N3JUz8DzvOHEY9SaVMCL4I+HTquDSq2GVqND8oXruH/vsWE5 Pz8/PLbQt/LRo0fwzeu+oOdq4ok3Xl5eyMp6cSEWmx9eXl5G8/T7x4t4BnZZLC891tcb3L2HRtMc g2qL6iLFFsjvgnr36oXRo0ahRo0amP7119iwcWOJdf/z9vY2epZ7/eBgVKtWDUOGDcOhw4cR1b69 ye+JKT9LinsM2ULDCVBpdJA1boWvvvoKanXhxymqdAIcwBXq756TkwOpux8kLIMn2YW/p1e3bl1M i43FiBEj8M2MGfhhxQo0aNAA4WFhUKlUWLtuHeLj43H/wQOoVCqT/+Ndu3TBmHHjcD0lBTVr1MCe PXvQsGFDBFTJ7RJgy/H9ppW5KS+6SzFGn4ctVWPv1xI4+dxH9QaW+/Fbqiiami/mnKhQKODr42Px uwqFwtB9OD+fvO+mpxe/2605+ry6duUievXohqj3elv+UgF+vr7F7vdvj+PQkpkzZxp9njp1Knie x7S8hyCMGDECOTk5WLVqFSZOnIiKFSsa7sLnvztvith9t6ZsxVyze/Toga//9z+kpqWhnJ8f9u7b h3Zt29r8NMKAyuULTQtp+DYA0/kEQHRe6b3frRv69OkDF2dn+Pn5FXqcttjz6phRoxAeFoYNGzfi 48GDUa1qVQwfPlzU4PqSrlPYqswEGLq8FgkAhrEYugKFkdv9RmuozAo8j7wRG+AsdJHSq/7WW4ge MAA//vQTOr/3XqH5bm5uCG3c2OTTpvT/RBEREdiydSuePHmCv06cMDw6rGXLlpgaG4vMzExcvHjR ZABTUMELqzXEpNVaPM8jKfEqypUrhys34pHb3sBA/6Sb3HeSwCjw4Pnc8uB0HLRaHTRaLTRqDZ4+ fYbz/1yFo8OLu4+hjRvjwMGDyMrKMnkCysrKwtlz59CxQwej6ekZGYWWTU9Ph3veI2KtyQ9b7lKV tfLKTxocBGW+AEM/oFux8AdDQPF83lK4j/8vFAt/gObiZcOysoZBRa5bX1ZdOndGYmIi/m/pUjQO CcHbb79tc7rF0PeFvXv3rtllMkwcI9Yq6TIyRdAKUKs5uHlWBusdAFeWyW2RyBuH5iBhIVVr4eYs M5wjWZaFVsehopMUSrUWDhIWOrXlrozeXl6InTIFbdu3x8WLFxEeFoYvJ09GQkIChuT15XXJa9mN LvDc+8jISHh7eWHPnj3w/eADnEpIwFeTJhnm2zvvXucyN0dfUS74ucPUHPzzfzdFrcPT0xNp+Qaa 5peammqygijmnOjq6orMzMxC0xUKhdFnby8vk63B+mkeHiX3pvLmLd9B39690axJBE6cPGXVd0ND Q3Hg4EGoVKoi70KbYo/j0JKixmAAwJIlSwx/z5kzx+i7+e/OmyJ2360pWzHX7Pbt2mHBt99i7969 aBwSkvs0q6lTzW5frAvJd6DVaaHTvLjpkp6R22pQVD4BlvNKz9vbG7Vq1jQ7X+x5FQCaR0aieWQk 7t67hyVLlmDCxIlYtnQpwi2806QsnbtMKTMBBsdxLx5Lmyc3kODAshJDH2WO45B3Px0cz+V7pK34 bQ3+5BPsP3AAM2bOLHRiDW3cGDdu3kRgYKDZZvmw0FBIJBJs2boVCoUCrVu1AgDD2IKfN2yARqNB kxIcfyE2rda6c/seYmIGQKNRQa3W5Av6AF7gwTIsOJ4DzwuQSFhwXG6LBRgGGrUGHM9DrdJAo9Hi 3t3H+G3bQTxNf3FR6t2rF3bs3Ik1cXEY8fnnhba/Ji4OKpUKvXv1MpqekJAAnucNLUJqtRp/nzyJ 4HxNgCWRH/ZU0umTt28B5d5DhreRyt9rX6i1Qj/wW96h7YsAg2Xh1KaF6O188cVEXLx4EV9Onoyf f/yxVN798c/58wBetBb5+PjgwUPj1hp9q6ItXsYxxGoBHjzSn+eAZVmc27sWDCTw9PKGp285cByX O86M48FzOggQoFWp8UTFgc9IQ6vew/BWRR+AL/wUKVP0F379nedTp06ha5cuRi/Sunq18DgdiUSC jh074vCRI6hUqRKkUqnRoxPtnXevc5kXxVyQIfWuhqspqRa/HxYWhr9OnEB2drbRoN2srCwc//PP Yo8zqBcUhJMnT0Kn0xla0gRBwNmzxu+ZaNq0KY4cOYKcnByjbsh79+0DkFuZtQdTT/dJTU3Dd0uX mV2mqC5TPXv0wPYdO7Dku+8wYfx4s8tZcxw6ODhAZaJF0locx1k1BkM/jgB4cWf+hx9+gFKpNHln Xuy+W1O2Yq7ZMpkMnTp2xMFDh5CZmYnKlSujkYkXIlsruG7VQtO8vXKPBXP5BIjLK7HEnlfzC6hS BVOnTMHR+HhcvnzZEGCYO47K2rmroDITYPAcZ2hmzK3UCoa/jd+LwYPPe5qU0TwrODk5YdyYMRhr 4h9p6JAhGDhoEEaMGoVePXvCx9sbGRkZOH/hAvr36wdfX1+4uroiKCgIv23fjuB69QzdeVxdXRHS qBG2btuGgIAAm56CIIaYtFor89kzDBv2CU6fyz1hcBxvKBdOXz75XnfJcbljLvi8wELHcRB4AZmZ Cpw9mwxHR+NDrFatWhg1ciQWLlqEhw8f4t1334WPjw/S09Oxf/9+HDx0CF9MnFjoHRjZ2dkYO24c ur//PpycnLDuxx+RmZlpFLmXRH7YU0mnT1KlMuRRraHcexgADO+5KEh76apR0CHv2AaSKoUHxZnj LHfGrJkz8eFHH2HeggWYOnmyTeku6N+nT5F8OTf40Wm1uJ6SgpWrViEgIMDQN7dJRAT27d+PekFB qF27NlJSUrBu/Xo4Opp+Eo9YL+MYEhxzz38QOFyN34k+HVuiQ6eucHBwgJM89yIuCAKysxTIfJYB jUqJ8+fO4EDiNWR7N0BKylWENKgLni88BuOzzz9Hs2bNUKVKFbi7ueHuvXuIW7sW/v7+hn7PNWvW xJ9//YWwI0fg5eWFlJQUbN+xw+QYta5duuDnDRuwadMmtG3TxmgZW/LuTStzS0xVhDmXGki5bXmc 2LAhQxBz4gQ+HjwYMR98gIr+/nj06BHWrluXOz9vUKu1Bg4ciP9+9hnGjh+Pvn36gOd5/L5rl1F/ cgAYMngwjh0/jqHDhiEmJgaenp5ISkpC3Nq16NG9O6q/Zf6R8tYyFYwBhd9joP9c1BO4ateujRGf f47FS5bg3r176NKlCypUqICsrCzcuXMHlfz90bJlS6uOw5o1auDggQNoEh4OViJBk2K+f+XMmTMW W84Lji0oWDkeWkS5i913a8pWzDUbyA1uft2yBU+fPkX399+3yziYK9fuIkelMWrBOPbnGQCW8wko Oq/EEnteHT1mDJo3b46qVatCEATs2rULLMsajcczdxyVxXNXfmUmwNB3fdITBEHfMQcMXjymls/3 FCl9Nyn9OzSs0apVK7Rs0cJokDAAVK1aFevWrsXy5cvxzYwZhj6HYaGhkMlkhuWaRETg/PnzGBQT Y/T9Fi1aICExER0KdPEpCWLTag1VjhpyZymys5XQ6bi8QO5FH9PcvM4N9nR5QaFOm7ucRqM1LPfo YRr27fkLj58UviAO6N8ftWvVwsZNmzBv3jxkZGbCy8sL9YODsXrVKqOXt+X/Tk5ODmbMmoXnz5+j RmAglixaZDSIqSTyw55KI30uH/YD9+ARNBcuW14YgLR+XbgM7Gv1dmrXro2RI0Zg/oIFaBIRYbaP fHHs3LkTO3fuzE2fVIqKFSuiU8eOGBQTY2i+HzN6NBiGQdzatcjKykJQ3bqYPWsWZtn4sr+XcwwJ 0HE6gOeRk5WFtu3fhZPcCdNiJyMt9QkAYNbsBUhPT4NamQOVMgehTSKxafcJOFcpD61OBbmDAE5V OMDw9vHBli1b8DQ9HVqtFhUqVECrli0RM3Cgodvb19OnY/78+ZiW98ST4OBgfPO//xmeuZ9fYGAg 6rz9Ni5fuYIvJk40mmdL3r15ZW49d/86GNhtlsWBywEBAVi7Zg1+WLECCxcvhkKhgJeXFyLCwzF0 yBDRY8YKCgsNxYL587H8++8xdtw4eHh4oGuXLng3KgoT8h0L5cuXx/q1a7F02TLMnTcPWVlZqFyp EkZ+/rnZAbbWMhdAmJtmahlTPoiORq1atbBp82YsXLQIT58+hUwmQ9WqVTH4448BWHccfvXll5g5 ezbGT5wIHx8f7Ny+3ep9FZt2/dgCAMUahyFm360pWzHXbACoXr066tWrhwsXLuC9Tp2szh9T3q5V +GmQbm65rXn2GoNhidjzaoUKFRC3di3S0tLg7OyM6tWrY96cOUb5ZO44KuvnLibvx0hsbCyTnJzM pKWlMQqFgqlevTqTlpbGSqVSSXZ2NsvzvKOzs7OjVquVAnBiWdZFEAQ3QRC8duz8fYc1CfDy9IBa rUZa6iNDywUDBmBe9PPXDy423EnnuNzxF/laMk4cO4CPho2lN53awMvTA/ceXMWNm8m4eCkJWi0H nU7/tK7c4C+3ixqTG1xwvKEFI7c7FQAIUKs1uHrlFv768ywePbLcpG9JaHg4Pv7oIwwfNszmdb0J BJ0O2es2Q7nviKG7VCEsC3nHNnAZ2BeMQ9lrWn1TeHl6YNPJOzj+11+QsTzO7N2M9SsWwd3dAxMn jDEEGF99FYvsbAV4TgdnZxd4+5bHyK9mQuJbHYzUEf8d2A8Tx3yOs8f20DnwNePl6YFTu/6LPxNu YezXu6l8YbolouA0Mcu8Drw8PazuxcEwTInmg7XX7CFDh0IikWD5MtOt7mJ5eXogO/sxdv22DhqN zujlo4uWbsSZc0V3UTKlpPOqLOnWtUs3hmEyGIZR8DyfDUDl6OioycnJ0+1e0QAAIABJREFU0bIs q3VxceE1Gg3n5+fH37x5U3BzcxP8/PyEunXrCtOnTy90EJaJFoysrCzDGAwwua0XLMuaDDAYoEBw wSO391TJP8XhdSf2TokYjo4OSE17apd1AbD6BPomYxwc4PpxdG53qUPHofknGXzeoE/Wzw+yhkFw atPCqm5RpOTkdjHMDdhVyhzwXO7DElKfPDbcVNFoVOA5HVxc3VCugj+cnJyh02khETTgOQZPlAJk jLgxGOTV4eXpgW2rPkDS+fsUXBSQP1gwd90Ss8zrwpYxGCVB7DX72rVrOHP2LObMmmWX7eY8f4z6 dQt3wyvtMRikjAQY9+/fh6e7c954ihcHJs/zYBkGvP6dGDwPAS/m5743I/clVTxPFVB7oAvY60NS pRJcP7RPlwRSci78dQCOcES2jodWo4YyJwc5OTngdJzhXKdWKeHl7Qu/8hUhkzlBrVaB5zlo1Bo4 8rktjAJnXTdRUvblv+lD5+YX9PliavyFqWX0817nPLRlDMbLcPbcOSieP8eixYsRFBSEd0Q8llWM R3cv4dzf2/Dvv6nQcDxUiiyo1DrcvXUHQOmNwSBlJMA4+fdROEuZ3LEWhgHeDHghr8UCeQ9KFfKm 54230AcVvMDj9JmzpldOCCFlVEbmM1SpEoA23aPh5umNyoG1kHT6FCpXroxPhw+Db7kKAAAXV3e4 uXnAwcERmRlPcf3aVahVKrhCAk6jgoblIRTu7UpeA69zpbi0vO6tF5cvXzY81lnMsmXBmLFjwXEc GoeEYNKkSRbfGSaGpV4Y1uSTfnlSfC89wLBntxw6Eb+eTickvOwkEFJi7t27a3QO3PHzGiu+nfsG 5Zvnz+DKmWN0DiRvDDHH+pvy/1C3bt2XnQQjYq7ZRw4dKpFtF1XmxalrvinHUEl46QEGQAVICHmz 0TmQEFIcdO4Qj/KqdNneJkUIIYQQQggheSjAIIQQQgghhNgNBRiEEEIIIYQQu6EAgxBCCCGEEGI3 FGAQQgghhBBC7IYCDEIIIYQQQojdUIBBCCGEEEIIsRsKMAghhBBCCCF2QwEGIYQQQgghxG7s/iZv CcsUOV+n09l7k4SUabVq1rC4TNq/T0shJYQQQgh5FSkUiiLnc7xQSikRh1owCCGEEEIIIXbzygYY vA441JXF7V+LbjE5M5lB4viil7E3gQN2hrC4sd727X6/fDnCQhujVs0a6Nevrx1S9/L07tUTtWrW QFhoY6xcucLi8qb2neM4LFiwAKdOnSrp5NrVr1u24tr1FCSeTsLgwUNednLs5syYMUgcOlTUsgLH 4ffAQNxYubKEU1W62yprniUn40T//tjbsCF+r1EDexs3BqdUWr2MvfLQ1vXocnLwe2Cg4efu5s02 pSe/0//9L86MGWO39RFCCMlV6gHGoUOH0KNHd/Tp3cuokqlQKBAV1R63b90StR7WAXj7MwFXVzDQ 5ZRUaouHYYEGUwT4NbOtuerWrZv49tsFWLxkCS5fuYqff95gpxS+HJs2/4LLV65iwbcLMX/ePNy9 e9fssub2XSKRICoqCocPH4ZGoylye2q1Gt98841d96G42+rXtw/qvF0bY8eMxrjx4xEQEGB22edX r+Lq4sVQXL9u0zI3Vq7E74GBuLpwobidyOdmXJxRpa7gz824OKvXybAsGsycCb+WLa3+blneVllz dvRoMCyLZhs3Iurvv9Fq506wMpnVy9grD21dj4OzM95LTsZ7ycmQenralBYxdNnZ2Nu4cYlv53VG eUgIsfsYDEtmzZyBRYsWI7BGDTSJCEffvv3g7u6O/309HQM/GIhqb70lel2V2gu4sZ7BjfUMag8r Q33PGKBqd9vTcyPlBmQyGZo1i7RDouyP5wHWihBVIpEAAFq2bAlHR0fcuJFitqJd1L7Xq1cPx48f x/Hjx9G2bVuz23vw4AEEoXSOC0vb4jgOAHDs2DFotVoEBtYwG2BdXbQImqdPkXXjBhovWVLsZe5t 2wavRo1wf/t21B41CmDEt6gF9O6NCu3bAwAUV68iYcgQRKxeDdcaueNJjCp6YtfLMAjoW0qtcKW5 rTKE12iguHEDb48fD/c6dYq9DAD75aEd1lMw+ClJmRcuAHn/r6R4KA8JIaUeYDx58gTlK1SAXC6H q6sbUlNTcerkSTx+8gRz5g60bmUMUHekgFOjGFTrLUDmY2YxBriynMHtLQwgABXbCAieIICVvljm xk8M7mxjoHwESD2B6tECAqMFIK/uxGuA8zMZPDzEgHUE3uojQJ0BqFKB8IW5FcvMZODYBy9q3EGj BATGGFc6E8cxkPkADs5A2kkG6nTAJ0RAw1gBEifjdOs4DqyJGvzx4w4YN84ZLVvqsGuXIz76SA21 msGvv0oRGanDsmXZAAC1msFXX8mxe7cjMjIYvPUWj0mTVOjSxfjO/6r/Z+/Ow2O6GgeOf+9Mkkki i6gQEoQsliKINdpaioTS2imJpVrbW0VjbamKXe1bFa0lYu8PtdZau5e26k1QOxFElJasM8nM/f0R GRkJuaOTSarn8zx5mJkz55x7lnvvufecO8s0rFih4fp1FSVKyHTtqmPYsFSejAe4eVNFzZqunD79 mHXr7Fi1SsP9+xLt2un49tvMtGQZFi60Z9kyDQkJEmXLGujRQ0f//mm5DkLUajX6jOcfgJ637QCS JBESEkJkZCR169bF2dk5R5jNmzfz888/A/D5558b3x8xYgSurq7G18eOHeP06dP89ddfODo60rBh Q4KCgpCynTQfOXKEU6dOkZiYiKOjIzVq1KBZs2bG/ClNK4ter0dto85121Lv3OHPX3+l0c6dHGze nLR797AvWdLsMI9iYki6coXGu3dzqHVrHpw+zWt16+aaZm5snJywcXICQPfnnwDYlyiBo5dXjrAq W1suL1zI9VWrMOh0lHz7bapPnIjaPrNB/xUdzZG2bY3hq4wahc9HH+WI5+rSpdyIikL7xx/YurpS pl07Kg4diqTOvaxyY820DFot5yZNIn7fPnR//UWRsmWpOGQIpUJCjGF+HjgQTfHiqB0duX/sGLoH D3itTh0Cpk5F7eCgOC1kmavLlnFj9Wq0f/yBg5cX5Tp3pnzv3khP2uF2f3/kJyd12aetOVWoQJO9 exWHUVqGNyIjubl2LcmxsWiKF8erXTv8P/7YWIZK4lFShpZi0OmIiYjg7u7dAHi1b5+548rm7OjR xG7YAMA2Hx/j+82PHcPewwNDRgbHu3aliLc3NWfMMH5+qm9f9Ckp1F+1ylgfSuRVhnnV+x8nTxL9 xRcUb9CA+D17KNe9OwatlritW3mtbl1qzpihKEyWa99+y83160m9fRs7Nzcq9O5NhQ8+MF5EUNKe 8ypDQRCsR6/Xs2/fPn47exaAmjVr8nbTpsYLvvnJ6gOMsmXLcv7cOfwrViQ5OQl7e3umT5/GylWR Jid1ShWvI1M8MHMAETAm9yvIf5yWcPKWeXuLgaSb8N9BKuxcofKgzPDX10lcXi5Rd6YBt+rw6AL8 d4gqcyDRJTPMtbUS8Yckgr4x4OILl5ZK3Nkr8Vrg0zSLVobWJw0AHOiQ+0FGrYG4HRLVP5OpMtiA 7i842FHFjQ3kGIw8j60tXL+uZujQNFq3Tqdr1yKMG5fK998nUbeuC2PHplKqlIEZM+zZudOWbdsS 8fKSWbXKjo8+KsKvv2ZQunRmPpcv1zBpkgOLFydTt24Gly+r6dGjCBkZ8PnnmXOyy5Uz4OgoM2KE A7a2sHNnIsWKGUhPf1pfq1drmD7dnsjIJBo2zODUKRvef98JnQ6GDElTtF3mqFChAuXLl2f//v20 zXYSk+W9997Dy8uL3bt3M3r0aOP7NjZPm/yJEyc4dOgQ3bt3p2zZsty+fZvIyEjUajX169cH4NKl Sxw+fJi+ffvi7u7OX3/9xapVqyhZsiQBAQGK01LqRmQkZdq3R/Paa3i2bs2NqCgqPTNHXEmYW99/ z2v16+Pk40OJRo2I27zZrAGGOR789784lilD4927Sb55k5NhYbhUqoTPhx8CULRqVd45fx6Ag8HB ucaRcOgQV775hobr1+Pk40PqnTuc+vBDnP398Xz3XcV5sWZalxYuJH7fPoLWrMGhVClurl/Pr0OG 8PZPPxlPpFQaDXGbN1NtwgSqjBqF7s8/+Sk4mBurV+d60v48sRs2cGn+fOosXsxr9erx8JdfOPXR RxjS0/Ht3x+AVjExpD9+zJ569ai/YsXT+s52wqskjJIyvLlmDb/PmkXNmTMpVqsWideu8fPAgch6 vbEtKolHSRlaytWlSzPTWruWImXLcmPNGm5GReGRLW/VJ06kaEAAF6ZOpUW2dV5Zd1BUNjYEzp3L oTZtuLNzJ6VbteLm2rX89b//0Wj7drMGF0rKMK96V9nYkHzjBn4DBuDRogWnPvqIyiNGUH/FCg42 b07l4cMVhbEvWZLrq1ZxefFi6ixejFvNmjyKieHURx8h2dpSvkcPYznk1Z7zKkNBEKxn/4EDHDl6 1Pj68OHDALR4MkMhP1l9DUZExAQWLJhP/359GR8xgSlTJjNg4EBKly790nFW/kTm1jaJxOcs31Db Q8X+MrbO4FYVvN6RuXvw6cnx9fUS5bvIFKuRuX6i6OtQ4X3ZZAH5nb0SnsEyRauAyg4qDsh5xwEp 8zOV3QtmjUhQpCx4tcocTNgVhWIBMo8u5gz6+NEjihQpkms0GRnQrFk65cvr0Wol3nwzA2/vzCuT d+9mVuvQoWkcOvQYHx8DGo1MaKgOnQ6io5+OXBct0hAaqiU4OB03N5m6dTNYvjyZ2rVNHydcsqTM lStqIiOT8PHR4+YmU6KEwSSeHj20NGqUgY0NBAVlEBqqY/Xq3A8qDg4OPHr86DmF9OJtzxIcHMyv v/7K/fv3c3ymUqmMI3QbGxvjX3YnT56kfv36lCtXDkmS8PLyIigoyGQB+ePHj1Gr1Tg6OgJQtGhR PvnkE+PgQmla2aWmpuLqksudjbQ0Yjdtoly3bgB49+hB7Lp1GLKtNVESxpCezu0ffsDrycDL88nJ kD7N8gM9AFtXVyoPH46dmxtuNWrwWv36PDp37mkASUKl0aDSaJ57ESEtPh7JxgbbJ1OvHEqXptHO nWad8Fs7Lb/+/Xlr2zaKeHuj0mgo26kThvR0Hj05qc7KTxFvb2Nd2Lm54RYYaBpGgWvffUfZrl0p HhSEpFbzWt26lO3UyXilGEBlZ4fKzu7p/5+Ug8rW1qwwSsrw6nffUbZzZ0o2bYpt0aIUq1WL2vPn 41ajhlnxKCpDC7mzYwdl2rXD2c8PlUZDhd69cwxiJLXaWBbGsnnmxNjB05Ma06fzv7Fj+ePkSc5P mUKt2bPRFC9uVn6UlKGSepf1eko0akSRcuUwaLUUr1+fIuXKAZltXWmY66tWUb5HD4oFBiKpVBSt Xp3yvXpxMyoqWwHl3Z6VlKEgCNZx5swZRe/lB6vfwQisXZuNm74HYMvmzegzMrCxsaFjhw7Y2tky LHwYgbVrmxWniy94tpS5ME8yTlcy+dxfRso2lCpSFlL/L/P/sgGSb8HFxRIXF5seBLNPoUq9B57Z 7tpLKnDxe7n5/Y6lTb+ndsBkobosy1y+fJmVK1fQunWb58bz2msyOl1mnp2dZbLOabPONRMTJb78 0oFjx2xIS5OQpMx0tdrM7+j1cO2amkqVtCbxNmiQ87dK1GqZFi0yyH4eksVgyLyjUrWq6Qls1aoZ LF6syXWtRqt33mHFihUEBNTAx8fHeAKidNsB412EH3/8kdDQ0BeGfZYsyzx48ID9+/ezf/9+k8+y Dw5ef/11fvnlF6ZPn463tzc+Pj4EBATkOvVJqZ07dtCrVy/Onv2Nq1evGtdu3N66laLVquFYpgwA zr6+OPv5cXv7dsq0b684zL0DB9CnpRmnmZRs2hQMBuL37cOzdeuXzvfzOPn4mIyobZyd0ScnmxVH qZAQbm3axL433uC1unUp3rAhnm3a4FCqlKWza7G00pOSuDB9Og/++1/0aWnGq9cGrWl/yqqrLGoH B7PKRzYYSL55E99n1ku4VKnCtRUrkA0Gs66c/12yXk/yjRvG9ThZitWpY3ZcSsvQElLv3sXxyUl1 liLPvFbKo1kzvN57j5NhYfgNHEjxBg1yhDk/ZQpXly0zvvb58EOqPLnDqaQMldR7Fjs3N+NFBhsn J+MUK0N6uqIwssFAys2bXJwzh4tz5pik9+zg4O+2Z0EQrCe3387I6/c0LMXqA4ws8fHxLFy4gG+W LKF9u3bs2buPy5cvMXr0KPbs3Wd2fJUGyBxoq+LBGZnXapp+JuUy1Uz9ZJ8pqUClgdcHy3h3fsGA QQZVLifXLyWPmWA7d+xg6NAh1KpVi0/Dw58fTR7xdOvmBMjs2JFImTIGtFooVcrN5Ps2NjmmIT9X yZKG5372vLw4OMi5rsEYMWIkvXr2oFXLEObNX0DIk5NhpduepVmzZsyePZsbN27g7e2tZDOe5FfC 1taWkJAQ6tWr99xwDg4O9OvXj9u3b3P58mUuXLjAvn376NatG5UqVVKcXnbTp09jxcpV7Ny1m08G fczuJ3PCr69aRaVnttm7Rw8uL1pkHDwoCXPr++8x6HTsa/h0gbxeqyXu//4vXwYY5qxbeB5bV1ca btzIo5gYEg4fJn7PHi7OmkXthQsp+YKF/AWZ1um+fUGSaLhuHQ6enhh0Onbktmj6JaZ+Ko1D7eBg 1cFFVl5UarXyHccLKC5DS5DlzKsh2bx02ckyyTduoHZ05PGlS7kG8fnwQ8p06GB8bef2dN+ruAyV 1ruSNvaCMJJKhcreniojR+Kd18UaS7RnQRBeeQX2OxifjR5F+LDhGAwyzs7OlChRgkqVKnPr1q2X is+hJJR/X+b87JyblHzTdIeYcgscst0Zd/bOXKCdnfYB6LNdkNe8Bil3nr6WDfD4Uv7saFu2asWu 3T+SkaFn+LBhLxWHVitx5oya3r11lCmTeVCNiTEdT6pUUL68ngsXTMvs4EFbVq5UfktbpYIKFfRE R5vGHxNjg69v7oOSYeHhyLLMj3v2EJxtDrS52+7q6kqDBg2MJ+nmcHd35/bt2ybvJSYmkp7tqp/B YECn0+Hp6Unjxo3p168fNWvW5OTJk2anl2XGzJlIkkRwixb8+OOPxvcb7diRebchm1LBwby1davi MLqHD0n46ScCpk3jre3bjX8BU6dy/+hRtLlMJysMZL2ejJQUXKtWxW/gQN7YtAmvdu24HhlZKNMy aLX8FR1Nufffx8HTEyBfpvVA5slfEW9v02lnwOPz53EyY1Btyfw4envneETy/SNHuLluneJ4rFmG APYeHqRkO77IBgOPLlzIGVDBCfSVpUtJvnGDRjt28NfZs1xftSpHGI27O87+/sY/jbv70yQUlKG1 692pQoXMpz9lo71/P8fvoygiBiGC8K9XIAOMqKgo3NyKERISgoeHB0lJSaSmphIXF0eZZ26/msOv t0zyrcz1EkYypNyFGxskZD08vgy3dkp4hjy9clQhVCZut8SdfRKGDEi8BscHqLiw4Gk8Jd+Uub1L IjkWDOlw8RsJQzomDLqnf7IMBv3T15hxsU+lUuHj40NoWBjHjx97qbLQaDLXSJw/n3l1OTZWxfz5 GooUkXnw4Ol2DRyoJSpKw759tqSmZg5K/vMfR+LjzWsa/fppiYy04+RJGwwGOH7chshIO/r3z33e //Hjxwjr0YPy5SuYzM9+mW1v1KgRf/zxBzExMSbvOzs7k5aWxuXLl0lOTiYhIYE/nzwRCaBhw4ac PXuWmJgY9Ho9CQkJLF++nD179hjD7Ny5k8jISJKfTAFITEwkISGBUs9Mp8krreyCghoSuWoV169f s/hjdOO2bMGmSBE827TB0cvL+OfZpg02zs7c/uEHi6anhEGnw6DVYtBqkWUZWa83vs66gntu4kRO 9+2L7uFDANISEki6cgVXM69mWystlUaDxt2dxIuZi6dS4uK4umwZNo6OxqduWVL5nj2J3bCBhz// jGww8ODUKWI3bMh8wo+FKSnDCr17c2vjRhIOHUKfmspf0dH8NnIkaffuKY5HaRlmfSdr2lRu+VHC o0ULbm3ezKNz50hPTOTSvHkYclmXZF+8OOmJidw/fBjtgwckXrlCSlyc8fM/z5zh0rx51JozB0cv L2rOnMn5qVN59Mz+Jy9KytCa9e7Tpw+3f/iBu7t2YcjIIPHKFU706MHvM2eaHVdeZSgIwqvP6lOk YmNjWbliuXEdhpOTE4OHDKF798xFq2PGjH3puG2dwa+PzIUFEh5NZFQ2oNdC6WaZA48fW6hABs8W MhW6Pz0webWUMWjh4hKJM+Mk7Ipmvpf9tzX8esuk3IbDYSrUDplPl3KvL5sMMnY1UaHPdrHnwnyJ C/MzT57f+M5AsWzrH5Wwt7cnIyPnegil5s5NYdQoR/7v/1zx9TUwe3YKHh4yY8c6IMvwwQdaevTQ kpwsMXKkI7dvqyhd2kCfPlqGDjVvQXBYmJb79yUGDXLk3r3MeCIiUunaNfcfw9Pr9dhrnl0l/5Q5 225vb0+TJk3Ys2cPlStXNi649vHxoWbNmqxdu5aMjAycnZ1p2bIlbk+mKgQEBJCens6BAwf4/vvv cXR0JCAgwOS3NZo3b8727duZO3cuOp0OR0dHqlSpkuP3N/JKKzu1Wk2aNn8WXN/6v/+jVEiI6aJd Mh8lWzokhFubN1OhT598Sft5dgcGok95usjowldfceGrrwBouH49xWrXplJ4ODEREfwUEkJGSgq2 rq6UCg7O/P2OQppWwOTJxEREcHvHDpzKl6f6xInYu7tzbsoUZFnGu3t3s+J7kXJduqB78IDfRo1C m5CAfalSVBk9Gq927SyWRhYlZViua1f0KSnEfPklqXfvYu/hgXf37vgOGGBWPHmVYbmuXdlRpYpJ /v43diz/G5t5nGi8axfO/v6KtstvwADS4uM50aMHkiThHRpKyWbNcqz3KN6wIV7t2vHzoEEY0tLQ lCzJ66NH4+jlRfrjx/wyeDD+H39M0erVM8M3aECFXr34ZdAg3tq2zfh457woKUNr1rvnu++iT0vj 4rx5nBkxAjs3N7zefRd/M/sFvLgMBUH4d5DIZUXAuHHjpPPnz0v379+XEhMTpQoVKkj3799X2dnZ qZOTk1UGg8HW0dHRNj093Q6wV6lURWRZdpZl2W379u1bcybz1N85YS5wMialdWKghHMFqDosf37M 7ccfdzNi+HDO/i8678D/MAHVqzFz1myaNWuW6+ev0rb7+5ku5Dz7v2jCPx3Kvn1P1xrd/+OBtbMl CIIgCMI/RF6Ls/WGnOeiY8bmftF+4oQJOd57790270mS9KckSYkGgyEZSLO1tdWlpKSkq1Sq9CJF ihh0Op3e3d3dcO3aNdnZ2Vl2d3eXq1SpIo8fPz5H4gW2BuOf5s9o2BGk4t6RzKlW9/8r8cdpCY+3 8i9ND49SpKamWu2RYtZy5swZUlNT8XjBc+5f1W2vWbMmDg4OxD95NKQgCIIgCMKrpsCeIvVP41Yt 84f5oqdJpP0h4eAB1UbIFK+bP3cvIHMKT+8PPqDPB71JSkqiVmAg69atz7f08lunjh04e/YsTk5O fPRRX6pWrfrcsK/atm/c9D0BAQEkJSWxdOmSHOtFBEEQBEEQXhVigGGGCt1kKnTLvwFFbkaP/ozR oz+zapr5JWvdjVKv0rZ36tgh70CCIAiCIAivADFFShAEQRAEQRAEixF3MAQhn126fCXPMM97pK0g CIIgCIKNzT/rlF3cwRAEQRAEQRAEwWJe+QHGsPBwBg7oryisXq/H38+Xb5cty+dcmRr08ccMCw+3 apqCMsePH8Pfz5eUbM/zF6wjv/rFsPBwBn388QvDpKSk4O/na/zbuGGDxfNhDnPy83f3Y69qmzfn WGANBdHGCuoY9ywlffCfyNLbdf78ebp3e5/AWjWp6O9Hndq1SX2ZX1YvJApbHxTyl9UHGPv376d9 +3Z07tSRpUuXGN9PTEykRYvm3Lh+XVE8K1YsN9k5P/u3YsVys/OmUqmYNGkyb775ptnfFZRJTk6m Tu3aBZ2NQic/2rMl/Fvry9HRkeiYc0THnKNo0aIFnR2z8lOY9mPWbD//tLZaEG2sMLUNIW/Dwj9F rVYTtWYNR48dZ8vWrWg0moLO1nP90/qgkL+sPqFryuRJzJkzFx9fX+rXq0uXLl1xcXFhQsR4wkLD 8C5fXlE8HTt2onnz5gBcvHiJ/v36snTpMnyf/KiZq2u2HbaU47cEcyVJEp06dzZvgwSzREdHYzDo CzobL2QwGFCprDv2Nqs95yK/8vxPqK/8UtgO5ErzU5j2Y9ZsP4rSUngssBZrt7HC1DZeVkHsnwuC Tqfj6tWrhA8bTqVKlS0ad4EeLwpZHxTyj9V76b179yjp4YGDgwNOTs4kJCSwd88e4u/dIzQsTHE8 Tk5OeHp64enpRQl3dwBKlCxpfM/JyckY1tbGhq8XLSKoQX1qB9ZixPBhpKWlGT+PiY42uVr8vNvH y5Yt5e2mTQioXo233nyDmTNnoNebd/DU6XR8MXYs9erWoV7dOkyZMhlZNn30rSzLfLtsGU0aN6Z6 taq0DAlm+XffYTAYTMIt/+47QoKDqV6tKo3eepPl332XIy5L5Pnj//yHL8eNY/q0abz3bhveaBjE 0KFDTG7VKsnz55+NpkdYKImJiSblbc6Pzr3/fldmzpiR62czZ86ge7f3FecnLi4Ofz9fbly/zuzZ s2hQvx7+fr58+unQ56b/119/ERIczOefW/bxuUrbc155PnjwAJUrVcxRpgkJCVSuVJHDhw4pzpOS +lLaVvNiqX6R2xSF3G7LSxLMnTOH+vXqUq9uHcaM+RytVmtWnkFZH1QiavVqWrd+h4Dq1WjapDHz 580zu58q3Y+Zm9bLtnlrth+l+5a8jgVQuOpUafnktZ9X0jaU7OeLKH9jAAAgAElEQVR1Oh2jR42i Zo0A6tWtw7y5c/ly3DgG9O9nZunk3QeV7J+1Wi1fjhvHGw2DqFb1dd5p1ZIff9ydIy0ldWGpeley b8krrcqVKlL19SrIssyA/v2M9RbcooUxjCWPcZbY9sLYB4WCZfU7GGXLluX8uXP4V6xIcnIS9vb2 TJ8+jZWrIpHyaWR76tQpypQpy46du4iNjaVnjzAqVarMB336APB61apEx5wDoFXLkFzjOHzoEEuX LGHtunVUqODDnTt36Nv3I/z9/WnT5l3Fefl22TL279/H6qg1lC1blrVr17B2zRpatAg2htm0cSML Fsxn0aKvqVuvHr/++iv9+n6ELl1Hv36ZJ0qRq1bxzTeLWbToa2rUrMm5mBj69euLra2tcaBmqTxr NBq2bNnM+IgJjBg5kj///JNWLUNYExVFnw8/VJzniAkTCQiowbRpUzl+4qRJ/Er5+fpx7fq1XD+7 euUK/hUrKs6Pl5cXDg4ORESMx8bGlrVr1+FWzA2dLj3X+FNTU+n70YdUqlSRCRMmKs6zJeWV58aN m1CmTBnWrVvLkCFPDyIbN27Ay8uLN99S/tPzSupLSTkrYal+odSJEyep4OPDnr37uHHjOh/26YNb UTfChw1THIeSPqjE2rVrmD17Fl/NmEGtWrW4evUagz7+Dxn6DIYO/VRxPEr2Y+am9XfavDXbj9J9 S17HgsJWp0rKR8l+XknbULKfX7lyBfv37yMycjV+/v4sWrSQXbt2UrduPcXblCWvPqhk/7xo0UL2 7dvL6qg1lCpVio0bNvDp0KHsP1ADDw8PQFldWKrelWyXkrTO/i+ax48fE9SgPt8tX0GdOnUATO46 WOoYZ6ltL2x9UCh4Vr+DERExgQUL5tO/X1/GR0xgypTJDBg4kNKlS+dbmi4uroQPG4abmxsBAQHU q1efc+fOGT+XJAmNRoNGo3nuIOfevXvY2NgYp6qULl2a7dt3mHWiDrBj5w7atm2Hn58fGo2GXr16 G3eEWZYv/47OXbrQICgItVpNnTp16NixE5s2bjSGiVwdSWhYGLUCA1GpVFSrXp2ePXuxZk2UxfMs SRLe3t689957ALi5uVErMJDz58+blWe1Wo2NbeaYNqu8zZ0i4Ofnx/VrmQOMY8eO8m6bNpw4fhyA y5cv4+/vrzg/AO7u7ly/fp1FX3+Nd/nyuLoWxf3JHYTs9Ho9QwYPxsXVlRkzZxXoLfoX5VmSJHr0 6MmG9evJyMgAMm+Hb9q4kW7dQ80axCupL6XlnBdL9QulHB0d+OSTwbi4uFC9egBt27Zjz549ZsWh pA8qsXz5cjp26kSTJk1xdS1KrVq1mDtvHjVq1DArHiX7MXPS+rtt3prtR+m+Ja9jQWGrUyXlo2Q/ r6RtKNnP79q1i3dat6ZqtWpoNBo++WQwDg4OZm1TFiV9MK/9c//+A9j6wza8vb3RaDR06NiR9PR0 LlzIfmzKuy4sVe9KtktJWnZ2dtjZ2QFga2trrDtbW9ts22WZY5yltr2w9UGh4Fn9DkZg7drGX3Te snkz+owMbGxs6NihA7Z2tgwLH0aghRcJ+fj6mOxUnZ2dSUlJNiuOFsHBfP/9Jhq99SZ16tQlqGEQ rVu3oVSpUmbFE3/3LuXKlTN5r2y21waDgZs3b9L3mTmXlStXZuXKFcbbn7E3bzJv7lzmzZ1rEi57 h7ZUngG8vMqYvHawdzCWoZI8W+qE3M/Pj5s3b6LX69m+bTtF3Yqyc9dOagUGcuvWLSr6VzQrP2q1 DY0bN8nz+dJjx47h6NEjHD5ytMCfRZ1Xnjt07MicObP5cfdu3mndmqNHj/Lw4UM6dLDsr4lbst4t 0S/MaWMVK1YyCV+uXDni4+8q/r7BYFDUBwGmTp3Cd99+a3z9QZ8+jBo1Gsg8ib954wa+vr4m36ld u47ivChlblr53eatud/I8qJjgTl1+iKWqlOl5WOt/TzAvfh4yrZuY3ytVqvx969odjqgrA/mta9L Skrkq+nTOXXqFGlpacb4tFodoKwuLFXvSrbLUmlZ6hhn6W1Xwhp9UCgcCuxMKT4+noULF/DNkiW0 b9eOPXv3cfnyJUaPHsWevfssmpZapf7bcbi6urJu/QZiYmI4euQI+/buZc7s2cxfsJCmTZsqjkeW ZfTPLIJSSaYH0eddYbK3tzfuNDQaDSNGjqJ79+75nucX5cmcPFuCr58f6enp3Lp1i0OHfmLFipV8 +GEfunXrjsFgwO/JHQxz8uNeIucdi2fptFoq+PgwZfJkZsyc+fc35G96UZ4dHBzo2KkTUVFRvNO6 NevXr+O999ri4uJi8XxYqt4t1S9yk9t8fhubnPsEOzvlBzCVSqWoDwL06fMh7ds/Hdy5ubkZ/y9J Emq1GmtMLzY3LWu0eWvtN7K86FhgTp2+iCXrVEn5WHM/bzAYTK6i/x1K++CL9nX9+vVDkiSi1qzF 09MTnU5H1derGD9XUheWqvcsL9ouS6ZliWOcpbddCWv0QaFwKLB5Hp+NHkX4sOEYDDLOzs6UKFGC SpUqc+vWrYLK0gvp9XpSUlKoWrUq/QcMYP2GjbRt25bVkavMisfDw4O4W3HG1waDgd9/v2B8rVKp 8Pb2NrktDXDhwgXKZ3vClo+PDzHR0SZh7t+/b7Igz1J5zovSPANI/L11NsWLF8fNzY1tP/xAOW9v /CtWpGTJkuzevYtSpUrh7OxsVn6UmjFzFnPmzGXv3j1s2pT79I3ExEQuXbpEYmLiS6VhSWFhPThz 5ldOnjjBgf37X3ru6ovqy5LlbKl+obHX5FhQeefunRzpXX/mcdixsTcpXdq8K75K+iBkTlHw9/c3 /mWfnqBSqShXrhxXLl8y+c7Ro0dZv26dWfnJi7lpKWnzebFW+8krLaWU1umLWKpOlZaPtfbzAMXd 3Ym7/bSf6vV6Ll78/aXi+rt9UKvVEhMdTdeu7+Pp6Qlklk12SuvCEvWeJa/tslQbs1TfseS2F5Y+ KBQOBTLAiIqKws2tGCEhIXh4eJCUlERqaipxcXGUKVMm7wgsTKfTodVq0Wq1yLJMhj7D5DXA5MmT 6N+/Hw8fPgTg/v0Erl69SuXKVV4UdQ7NW7Rgy5bNnDt3jsTERBbMn5/jCQo9evRk48YN/PLzzxgM Bk6fPs3GjRvo1au3MUzvDz5g27Yf2L17NxkZGVy5coXevXoye9YsYxhL5VkJJXmGzANUYmIiR44c 4cGDB1y5coXb2Q5YSvj6+rJly2aaN8t8rGvTpm/zw9atxrsX5uTHHD4+Pnz22edMiIjgypUrOT4/ cOAArd9pxYEDB146DUvx9PSkefPmDB06hMDAQOPaFHPlVV+WKmdL9QufCj7ExETz6NEjIPN3d35/ 5qRDlmXu3LlDVFRU5gnS77+zdetW2rz7dM56Vv/PGqzktk9Q0geV6N37AzZt2sThQ4dITU0lJjqa USNHkJCQYFZ+lOzHlKSVXV5tPi/Waj9K0lKisNWpkvJRsp9X0jaUaNy4Mdt+2MaNGzdIT09nwfz5 6HQ6s8oGlPXBvGg0Gtzd3bl08SIAt2/H8e2ypTg6OvLnnw+N4ZTUhaXqXcl2WSotS/UdS+UHClcf FAqe1adIxcbGsnLFcuM6DCcnJwYPGUL37t0AGDNmrLWzRJ3agSaj45kzZhgfhbp27ToCa9dm6NBP mThhAu+0aklKSgqurq60aBHMJ4MHm5VWv379ib8bT6+ePVGpJLp3D+Xtt5uZXHXt1LkzDx48YPRn o7mfkICHhwcjR42ibbt2xjBt2rxLWpqWBfPnMXLEcIoVK0brNm0YPHiIMYyl8qyEkjwDBAUF0bZd OwZ/Moi0tDRKlizJyFGj8fT0UpyWn58/p0+fplnzrAFGU2bPnkXLlq3Mzo+5unTtytGjRxky+BM2 ff9/2Nvb/6348lOPnj3ZvXs3X44f/9Jx5FVflipnS/WLzl268PPPp2nVMgS3YsVoUL8B7Tt04M7t 28YwWq2W4JAQYm/eoGFQA2RZptU77xgPzHq9nmpVXzfJ37gvvmDcF18AsH3HTuMTevLqg0p07tKF 5JQUIiLGc/fuXTw8POjePZR+/fublR8l+7G80srN32nz1mo/StJSorDVqZLyUbKfV9I2lOjXrz9x cXF07NAeBwcHQsPCaNjwDTIycn/y3vPk1QeVmjhpEhMiIti5cwfe3t5MmDgR9xIlmDplCrIs061b d0Vt3lL1rmS7LJWWpfqOpfIDhasPCgVPevJnYty4cdL58+el+/fvS4mJiVKFChWk+/fvq+zs7NTJ yckqg8Fg6+joaJuenm4H2KtUqiKyLDvLsuy2ffv2rS9KMOvJNoIg5K9t235g5owZ7D9wELX6769D EgRBkGXZZP5/71698PPz47PPPy/AXAnCqy+vh23oDTnvRo4Zm/tF+4kTJuR4771327wnSdKfkiQl GgyGZCDN1tZWl5KSkq5SqdKLFCli0Ol0end3d8O1a9dkZ2dn2d3dXa5SpYo8fvz4HIm/+j+HKQj/ MrIsExMTw7SpU/l40CAxuBAEwSJ+++03AqpX4+DBA+j1eo4fP8bJkydo0qRJQWdNEIRCpmCftykI gsWFhXbn4sVLdA/tTseOnQo6O4IgvCJq1KjBp+HhRIyP4I8/7lOqVCnGfvEFDYKCCjprgiAUMmKA IQivmNVRawo6C4IgvKJ69er9tx6WIQjCv4OYIiUIgiAIgiAIgsWIAYYgCIIgCIIgCBYjBhiCIAiC IAiCIFiMGGAIL2XQxx8zLDy8oLNhNXq9Hn8/X75dtizHZykpKfj7+Rr/Nm7Y8FJhXnXx8fH4+/kS Hx9f0FkRLCCwVk1GDB8GwJAhg6lXt06+pDMsPJxBH3/8t+N5Vfrgv23f+yLDwsMZOOD5v+FSWFmr 77zqxDGlcLP6AGP//v20b9+Ozp06snTpEuP7iYmJtGjRnBvXr1s7S4VScnIydRT++JGQ/1QqFZMm TebNN9/M8ZmjoyPRMeeIjjlH0aJFc/2+kjDWVpjaWHJyMhER42nc6C2qVK5E/Xp1GTPmc5KSkgo6 a8JzuLi44OLimvl/ZxdcXFxMPg+oXo0VK5abvLdixXICqlezWh6zK4x9UHixwrSPsqS8+o4lrY6M JCQ4mOrVqtK0SWPmz5uHwWAwO8yrmh8h/1j9KVJTJk9izpy5+Pj6Ur9eXbp06YqLiwsTIsYTFhqG d/ny1s5SoRQdHY3BoC/obAhPSJJEp86dn/u5RqPJMw4lYaypMLWxzz8bzYULvzN7zly8vb25fPky I4YPY0xiInPmzivo7FmcwWBApXrx9R0lYSyV1stwcXHB1TXzJMnV1RWXJ/8vzApbH3xV5FcbU7SP knL8VnChZ62+s3HjRqZPn8bUadOpVasWMdHRhId/ioOjAx9++JHiMK9qfoT8ZfU7GPfu3aOkhwcO Dg44OTmTkJDA3j17iL93j9CwMLPji1q9mtat3yGgejXjSFevf7pDkmWZb5cto0njxlSvVpWWIcEs /+4742j45MmThAQHM/7LcTQMCmLhwgXMmjWTJo0bMWLEcMVhsiz/7jvjyLvRW2+y/LvvkOWnP3D4 8X/+w5fjxjF92jTee7cNbzQMYujQIaSmphrDfP7ZaHqEhZKYmGhyS9/c24BarZYvx43jjYZBVKv6 Ou+0asmPP+42CaMkPzqdji/GjqVe3TrUq1uHKVMmm2yTEgcPHqBypYo5tiEhIYHKlSpy+NAhIO/6 gtynTJh7q/z997syc8aMXD+bOXMG3bu9D0BMdLRJHeQ2RcqadDodo0eNomaNAOrVrcO8uXP5ctw4 BvTvZxIur3ZoThvbunUr/n6+bN26Nd+269SpU7Rv356aNWvi5uZG3bp1mTxlCnXq1DUJl1d/t1Sb Vyqvco6Li8Pfz5cb168ze/YsGtSvh7+fL59+OtSsMEr6hZJ4sliiTl1cXHBxzbzy6uzijIuz+Vdh ldaFJMHcOXOoX68u9erWYcyYz9FqtcbPldS7EpZsP3m1Vci7/Vhi3wuZ06pGjhzB3DlzqFO7NgHV qzFq5EjS09PN2nYlbcxSZah0H2VrY8PXixYR1KA+tQNrMWL4MNLS0swqZ4Bly5bydtMmBFSvxltv vsHMmTPMri+l8Vii7yhx88YNPurbl1atWuHh4UGz5s1p0aIFx44eMyvMq5ofIX9ZfYBRtmxZzp87 x927d0lOTsLe3j5ztDp1GpKZVyLWrl3D7NmzCA8P5/CRI8yYOYt169Yyb95cY5hNGzeyYMF8Jk+e zJnfzhIxYSLz588zTs+ytbHh5s0bBATU4KsZX7H466957bXX+G75crZs3sy9e/cUhQGIXLWKb75Z zOTJk/nt7P9YsGAhS5cuIWr1amN+NBoNW7ZspmKlSmz9YRvbtu/g5IkTrImKMoaJmDCRiRMn4ezs bLylHx1zDg8PD7PKZ9Gihezbt5fVUWv4+Zdfef/9bnw6dKjJDlpJfr5dtoz9+/exOmoNh48cpVSp Uhw+fMisvDRu3IQyZcqwbt1ak/c3btyAl5cXb771FpB3fVmKn68f165fy/Wzq1eu4F+xIgCvV61q LP8yZcpYNA8vY+XKFezfv4/IyNUcPnIUvUHPrl07sbGxNYZR0g4t1cYsxdfXlx07dphMkQwKakj3 0FDjayX93VJtXgkl5ezl5YWDgwMREeO5cP4Ca9eu4/TPP/P552PMCqOkXyiJx5Kavt2MKlVeB6Ba 1Wo0aWr+rzkrrYsTJ04iI7Nn7z6WLlvGnh9/ZMH8+cbPldS7EpZqP0raqpL2Y4l9L4CdnR0HDxxA pVJx8KefiFy9mp9+Osg33yw2a9uVtDFLlaHSfdSpU6dITk5mx85dfPvdcvbs2WMSj5JyPnzoEEuX LGHpsmWc/V8069Zv4ODBg+zcucPi8YBl+o4Sw4YPZ9CgT0zeu3XrFu4l3M0K86rmR8hfVh9gRERM YMGC+fTv15fxEROYMmUyAwYOpHTp0mbHtXz5cjp26kSTJk1xdS1KrVq1mDtvHjVq1MgW5js6d+lC g6Ag1Go1derUoWPHTmzauNEYRq/X81ajRpQrVw6tVkv9evUpW7YcAPfuxSsOE7k6ktCwMGoFBqJS qahWvTo9e/ZizZqnOztJkvD29ua9994DwM3NjVqBgZw/f94YRq1WY2ObOXtNo9EY/8zVv/8Atv6w DW9vbzQaDR06diQ9PZ0LF56mpSQ/O3buoG3bdvj5+aHRaOjVq7fZJ6KSJNGjR082rF9PRkYGkHlb fdPGjXTrHmocXCqpL0vw8/Pj+rXMAcaxY0d5t00bThw/DsDly5fx9/c35jur/M0dAOeHXbt28U7r 1lStVg2NRsMnnwzGwcHBJIySdmhOG2vatCnbd+ykadOm+bZdkyZPwdnZiRYtmhMSHExExHh+/fVX kzBK+rul2rwSSsoZwN3dnevXr7Po66/xLl8eV9eiuLu7mxVGab9QkhZYpk579+5NnTqZi1MbBAXR o0dPs+NQWheOjg588slgXFxcqF49gLZt27Fnzx7j50rqXQlLtR8lbVVJ+7HEvjcrz46Ojgz65BOc nJwyy7BdO3bvfnpnQWkZ5tXGLFWGSvdRLi6uhA8bhpubGwEBAdSrV59z586ZVc737t3DxsYGV9fM tTmlS5dm+/YdtGnzrsXjAcv0nZexcOECLl26lOME3twwr2p+BMuy+hqMwNq12bjpewC2bN6MPiMD GxsbOnbogK2dLcPChxGoYFGXXq/n5o0b+Pr6mrxfu/bTpzEYDAZu3rxJ30qVTcJUrlyZlStXmEwv cHNzQ6fTAeDk7IRarQYgXZeuKIzBYCD25k3mzZ3LvLlPr1JBznm/Xl6mV8Id7B1ISUnOc5vNlZSU yFfTp3Pq1CnS0tKMc2S1Wp1Z+Ym/e5dy5cqZhCn7zGslOnTsyJw5s/lx927ead2ao0eP8vDhQzp0 6AAoqy9LzfP18/Pj5s2b6PV6tm/bTlG3ouzctZNagYHcunWLiv4VLZKOpd2Lj6ds6zbG12q1Gv9s eTWnHSrl7OyMs7Pzy2VYoTJlyhC1Zi23b8dx4sQJDhw4QLf3u/J+t26MG/elov4OlmvzeTGnnNVq Gxo3boKNzfN3ty8KY06/UJIWWKdOlVJSFxUrVjLp++XKlSM+/q7xtdJ6z4sl2o/SY5OS9mOpfS+A j4+PaTxlyxJ/1/wyzKuNWasPGrfL18fk4o+zs7MxHqXl3CI4mO+/30Sjt96kTp26BDUMonXrNpQq Vcqi8RQUWZb5avp01q9fx+JvluR6N15JmFc1P0L+sPoAI0t8fDwLFy7gmyVLaN+uHXv27uPy5UuM Hj2KPXv35fl9SZJQq9XkNR31eVed7e3tTQ5YSq5OvyiMSqVCo9EwYuQounfv/tLxWFK/fv2QJImo NWvx9PREp9NR9fUqZudHlmX0zyy0U0nmn+g7ODjQsVMnoqKieKd1a9avX8d777U1eYKG0vp6lrlP mPD18yM9PZ1bt25x6NBPrFixkg8/7EO3bt0xGAz4PbmDUdgYDAZsbW2f+7k57bAw8vT0omPHTnTs 2In169YxduwYevXqTZkyZRT1d0u1+byYW85Kbu+/KIw5/aKwTCVQq9XGu5VZtFptjhNTJXVhY6PO 8Z6d3dMTO6X1nhdLtB8lxyal7cdS+97c4zbdDnPK8EVtzFp9MItalbNtZFFazq6urqxbv4GYmBiO HjnCvr17mTN7NvMXLKRp06YWi6cg6HQ6wj/9lIsXf2f9ho05Br5Kw7yq+RHyT4H9DsZno0cRPmw4 BoOMs7MzJUqUoFKlyty6dUvR91UqFeXKlePK5Usm7x89epT169YZw3h7e+e43X7hwgXK58PTqnx8 fIiJjjZ57/79+y+1eFTi7+18tVotMdHRdO36Pp6enkDmdr8MDw8P4m7FGV8bDAZ+//3l4goL68GZ M79y8sQJDuzfb7KwX2l9aew1Jgs8Ae7cvWNWPooXL46bmxvbfviBct7e+FesSMmSJdm9exelSpUq NFd3n1Xc3Z2420/rQq/Xc/Hi7yZhlLZDpW0sMTGRS5cukZiY+JK5frFz584R2r0bf/75p8n7Vatl Ps40KSlJUX+3ZJtXwpL9/UXyYz+W33UKUKxYMW7HxZm8d/PGTUqWLGl2XNefeXx5bOxNSpfOvCps qXq3VDxK2iooaz+W3PfGxsaavL51K5ZSpTKnJhe2Mszyd4+DoKyc9Xo9KSkpVK1alf4DBrB+w0ba tm3L6shVFo/HmtLT0xk4cAD37sWzcdOmXE/UlYR5VfMj5K8CGWBERUXh5laMkJAQPDw8SEpKIjU1 lbi4OLNug/Xu/QGbNm3i8KFDpKamEhMdzaiRI0hISDCG6dGjJxs3buCXn3/GYDBw+vRpNm7cQK9e vS2+Xb0/+IBt235g9+7dZGRkcOXKFXr36snsWbPMjqu4uzuJiYkcOXKEBw8ecOXKFW7fjsv7i09o NBrc3d25dPEiALdvx/HtsqU4Ojry558PzcpL8xYt2LJlM+fOnSMxMZEF8+fneEqHUp6enjRv3pyh Q4cQGBhoXOuQRUl9+VTwISYmmkePHgGZv63y+0scxHx9fdmyZTPNmzUHoGnTt/lh61aTuxc6nQ6t VotWq0WWZTL0GSavAePrrEHPy4ZRonHjxmz7YRs3btwgPT2dBfPnG6ftZVHaDpW2sQMHDtD6nVYc OHBAcT7NUb58eWJjY/n4PwM5c+YMCQkJnD17lqlTJlO+fAUqPllwn1d/t2SbV8KS/T0vlt6P5Xed Arz77nts27aNPXt+5Nq1q2zZsoUdO7bTuUsXs+KRZZk7d+4QFRWVOaD+/Xe2bt1Km3cz57Urrfe8 +qAl24+SY5OS9mPJfW9CQgKRq1aRkZHBpUuX2LplC61atTKrDPNi6T74d4+DoKycJ0+eRP/+/Xj4 MDOP9+8ncPXqVSpXrmLxeJRKT0+nerWqhAQHv9STwyBz/cK5mBhmzpqNJKl4/Pgxjx8/NrmwoCRM YcyPUPhZfYpUbGwsK1csN67DcHJyYvCQIXTv3g2AMWPGKo6rc5cuJKekEBExnrt37+Lh4UH37qH0 6//0caWdOnfmwYMHjP5sNPcTEvDw8GDkqFG0bdfOshsGtGnzLmlpWhbMn8fIEcMpVqwYrdu0YfDg IWbHFRQURNt27Rj8ySDS0tIoWbIkI0eNxtPTS3EcEydNYkJEBDt37sDb25sJEyfiXqIEU6dMQZZl unVTNoWmX7/+xN+Np1fPnqhUEt27h/L2281y3EVQqkfPnuzevZsvx4/P8ZmS+urcpQs//3yaVi1D cCtWjAb1G9C+Qwfu3L5tVj78/Pw5ffo0zZpnDTCaMnv2LFq2bGUMU6d2oMkVqpkzZhgfb7t27Tpq 1KxJtaqvm8Q77osvGPfFFwBs37ETHx+fPMM8O9B6nn79+hMXF0fHDu1xcHAgNCyMhg3fICPj6Voh pe3QEm3MEhwdHYlas5Y5s2fz8X/+w8OHD3B1daVR48ZMnTbdOKVGSX+3VJtXwpL9PS/W3I9ZSr/+ /UlOSWbihAk8fPgQDw8P+vbrR1hYD7Pi0Wq1BIeEEHvzBg2DGiDLMq3eecdkcJVXvXfp0lVRH7RU +1HSVpW0H0vuexu+8QaxsbEENaiPVquldevWfPjR098VsNS2W7IPWmIfpaSchw79lIkTJvBOq5ak pKTg6upKixbBfDJ4sMXjUers2d9IS0ujT58+Lz2dLGp1FI8e/cXbzzylytnZmV9+PaM4TGHMj1D4 SU/+TIwbN046f/68dP/+fSkxMVGqUKGCdP/+fZWdnZ06OTlZZTAYbB0dHW3T09PtAHuVSlVElmVn WZbdtm/f/sIHqz87J1f499m27QdmzpjB/gMHjQvlBeVkWTbZwffu1Qs/Pz8++/zzAsxV3uLj43nr zTc4fORogT0OVxD+jYaFh5OSksyirxfnHVgoFBYuXEDU6gmuNUQAACAASURBVNX8dOgwdnZ2BZ2d Qpcf+PcdU/J6eIfekPPO0pixuV+0nzhhQo733nu3zXuSJP0pSVKiwWBIBtJsbW11KSkp6SqVKr1I kSIGnU6nd3d3N1y7dk12dnaW3d3d5SpVqsjjx4/PkXiBrcEQ/n1kWSYmJoZpU6fy8aBBYnDxEn77 7TcCqlfj4MED6PV6jh8/xsmTJ2jSJH+eoy4IgiBY33//+1969OhZaE7mC1t+hMKvwJ4iJfz7hIV2 5+LFS3QP7U7Hjp0KOjv/SDVq1ODT8HAixkfwxx/3KVWqFGO/+IIGQUEFnTVBEATBAtLT07l08SLz 5y8o6KwAhS8/wj+DGGAIVrM6ak1BZ+GV0KtX73x5SEF+8/Dw4NLlKwWdDUH415kxc2ZBZ0Ewg62t LSf/e6qgs2FU2PKTRRxTCjcxRUoQBEEQBEEQBIsRAwxBEARBEARBECxGDDAEQRAEQRAEQbCYf+wA w5AB+99VcWPj3/+lz5d1erjEr2NyT3/x119Tp3Yg/n6+dO1q3g9LFTadOnbA38+XOrUDWbp0SUFn RxAEQRAEQSjErD7A2L9/P+3bt6Nzp44mJ6uJiYm0aNGcG9evK4pHZQOVPpa5uEQiIyW/cvtyrl+/ xqxZM5k7bx4Xfr9I1D98cfO69Ru48PtFZs6azYyvviI2NragsyQIgiAIgiAUUlYfYEyZPImI8RGs XBXJgvnzefz4MQATIsYTFhqGd/nyiuPybC7jUBKuriq4uxi5uXrlKhqNhqCghqjV6kL3ew8Gg3nh s7bhrbfewtbWlqtXxVMbBEEQBEEQhNxZfYBx7949Snp44ODggJOTMwkJCezds4f4e/cIDQszLzIJ qgyWuRIpoX3w/GBXV0scaK9iRwMVe1uquLpagmy/OXh6mMT/pkicnytx6H0Ve4JV/DJaQp/2NIxB B/+bJLG7qYrdTVWcm2UaR3YZej0qVc6iPXLEhnr1XBg+3JHKlV356it7Jk50ICDAlYEDixjDabUS w4Y5UqWKK6VKFSUoyIVt23L+uM2yZRreeMMFT8+i1KzpyrRpDuj1Tz+/eVNFsWJuXL2qZtIkBypW LEqxYm589NHTtGQZFiywp0YNV0qXLkr9+i4sWmT/3EGIWq1Gn6HP/UNBEARBEAThX8/qA4yyZcty /tw57t69S3JyEvb29kyfPo2pU6chSebfiSheR6Z4oMzvX+f+3evrJC4vl6jxhYFWxwzUmWHgykqJ 6xuehldrIG6HhIsfNFproPF6A3+clriRLcyVSIm7P0k0XGqgxW4DDh6QcMy8/NrawvXragIDM1i8 OIVZs+wpXtzA998nsW6dHXfvZlbHjBn27Nxpy7Ztidy48YjevbV89FER7tx5Wl3Ll2uYNMmBsWNT iYl5xDffJLN8uR1TpzoYw5QrZ8DRUWbECAeio9Xs3JnI1at/MWVKqjHM6tUapk+3Z+7cZGJj/2LW rBSmTbNn3jx7s7ZNEARBEARBEKAABhgRERNYsGA+/fv1ZXzEBKZMmcyAgQMpXbr0S8dZ+ROZW9sk EnNZvnF9vUT5LjLFaoCkgqKvQ4X3ZdPF4RIUKQterTJvSdgVhWIBMo8uPg1y50eJMq1lnH1AZQcV usnYl8w9P48fPaJIkSK5fpaRAc2apVO+vB6tVuLNNzPw9s68I5A1wBg6NI1Dhx7j42NAo5EJDdWh 00F09NOpVosWaQgN1RIcnI6bm0zduhksX55M7doZJumVLClz5YqayMgkfHz0uLnJlChhMImnRw8t jRplYGMDQUEZhIbqWL1ak2v+HRwcePT4Ue4bLgiCIAiCIPzrWf2XvANr12bjpu8B2LJ5M/qMDGxs bOjYoQO2drYMCx9GYO3aZsXp4gueLWUuzJOoO/vpvCXZAMm34OJiiYuLTe82qJ6ZceRY2nS+k9oB k8XjqfegSBnT7xQpY/odWZa5fPkyK1euoHXrNs/N72uvyeh0mflxdpaxeVILOl3mv4mJEl9+6cCx YzakpUlIUmY6Wm3md/R6uHZNTaVKWpN4GzQwHVwAqNUyLVpkYGubMx8GQ+YdlapV00zer1o1g8WL NRgM8OxMr1bvvMOKFSsICKiBj4/PS911EgRBEARBEF5dVh9gZImPj2fhwgV8s2QJ7du1Y8/efVy+ fInRo0exZ+8+s+OrNEDmQFsVD87IvFYz8z1JBSoNvD5YxrvzcxZMZMnrPFnOHLCYfOWZk++dO3Yw dOgQatWqxafh4c9PKo+0unVzAmR27EikTBkDWi2UKuVm8n0bm8z1E0qULPn8Vd3Py4uDg5xjcAEw YsRIevXsQauWIcybv4CQkBBlmRAEQRAEQRD+FQrsdzA+Gz2K8GHDMRhknJ2dKVGiBJUqVebWrVsv FZ9DSSj/vsz52aab5OwNf503Dat9gMkCbiXsS0LK7aevZQM8vmR6dt6yVSt27f6RjAw9w4cNMy+B rLxpJc6cUdO7t44yZTIHBjExpuNAlQrKl9dz4YLpth48aMvKlblPbcqNSgUVKuiJjjaNPybGBl/f 3Aclw8LDkWWZH/fsITg4WHFagiAIgiAIwr9DgQwwoqKicHMrRkhICB4eHiQlJZGamkpcXBxlypTJ O4Ln8Ostk3wL7ux9euJfIVQmbrfEnX0ShgxIvAbHB6i4sMC8qT2lmsjc2i7x6HdIT4JLS6QcgxSV SoWPjw+hYWEcP37spbZBo8lcI3H+fOZ6i9hYFfPnayhSRObBg6d5HjhQS1SUhn37bElNzRyU/Oc/ jsTHm1el/fppiYy04+RJGwwGOH7chshIO/r3z30Edvz4McJ69KB8+QpiepQgCIIgCIKQg9WnSMXG xrJyxXLjOgwnJycGDxlC9+7dABgzZuxLx23rDH59ZC4skPBoIqOyAa+WMgYtXFwicWachF3RzPcq 9lc4v+gJvw9kUhPgxAAVSFC+s4xHIxm9LmdYe3t7MjJyrodQau7cFEaNcuT//s8VX18Ds2en4OEh M3asA7IMH3ygpUcPLcnJEiNHOnL7torSpQ306aNl6FDzbs2EhWm5f19i0CBH7t3LjCciIpWuXXPZ MECv12OvEU+YEgRBEARBEHJn9QFG2bJlc6yx6NWrN7169bZI/D6hMj6hpoOHsm1lyrZ9/oCi1sSc nz37ntoean4p89wfv8jmeRf269fP4OHDPwEoXdpg/D9g8v/g4HSCg02f1DR1agpTp5r+ZPmAAWkM GPDiAcWpU4/zzGt4eBrh4WYMTMSdC0EQBEEQBOE5CmwNxqvMw6MUqampnDlzpqCzYlFnzpwhNTUV Dw+Pgs6KIAiCIAiCUEgV2FOkXmUBAQH0/uAD+nzQm6SkJGoFBrJu3fqCztZL69SxA2fPnsXJyYmP PupL1apVCzpLgiAIgiAIQiElBhj5ZPTozxg9+rOCzoZFZK2XEQRBEARBEIS8iClSgiAIgiAIgiBY jBhgCIIgCIIgCIJgMWKAIQiCIAiCIAiCxYgBhiAIgiAIgiAIFmP1Acb+/ftp374dnTt1ZOnSJcb3 ExMTadGiOTeuX7d2lgRBEARBEARBsBCrP0VqyuRJzJkzFx9fX+rXq0uXLl1xcXFhQsR4wkLD8C5f 3tpZEgRBEARBEATBQqx+B+PevXuU9PDAwcEBJydnEhIS2LtnD/H37hEaFmbt7AiCIAiCIAiCYEFW v4NRtmxZzp87h3/FiiQnJ2Fvb8/06dNYuSoSSZKsnR1BEARBEARBECzI6gOMiIgJTJ06BZ1Ox/iI CUyZMpkBAwdSunRpa2dFEARBEARBEAQLs/oUqcDatdm46Xu2/rAN2WBAn5GBjY0NHTt04P33u/LL zz9bO0uCIAiCIAiCIFiI1e9gZImPj2fhwgV8s2QJ7du1Y8/efVy+fInRo0exZ+++gsqWIAiCIAiC IAh/Q4ENMD4bPYrwYcMxGGScnZ0pUaIEarWaW7duFVSWBEEQBEEQBEH4mwpkgBEVFYWbWzFCQkJI SkoiKSmJ1NRU4uLiKFOmTEFkSRAEQRAEQRAEC7D6ACM2NpaVK5azcdP3ADg5OTF4yBC6d+8GwJgx Y62dJUEQBEEQBEEQLKRAHlP77BqLXr1606tXb2tnRRAEQRAEQRAEC7P6U6QEQRAEQRAEQXh1iQGG IAiCIAiCIAj/z96dx0VV9Q8c/9xZGEAQMVFERHaXUFRww6dMU0HTEnMrl9RyfVo0l7Ty6RG3Mpdc s7RcEPcyc8lweR4zl7TyV6DmjgrKkrkgywwzc39/oCMjIHdwAH0679eLl869Z8753nPPXc7cc++1 G9HBEARBEARBEATBbkQHQxAEQRAEQRAEu6mw92AIgmAbd3f3ig5BEARBEIQKkJmZWdEh2ERcwRAE QRAEQRAEwW4e2w6G2Qh7nleRtFF6YLpf35c4Ou7BaexNNsG3TVWcW/Xw5S759FOahYcRHBRInz69 7RBdxenZ40WCgwJpFh7G0qWfl5i+qGU3mUzMnj2bn376qazDtStbl/1/ya9vv83RYcMUpZVNJrYG BHBu6dIyjqp8y3qcZBw4wNaAAIzZ2RUdSpn7+Z//5Ne33y7Vd2+eOMHBl15iZ+PGbA0MZGdYGKac HDtH+PhSUj9K0thrO33YfIzZ2WwNCLD8XVq//qHiKehh2qEgPKrKvYOxZ88eunePplfPHlYnWpmZ mXTs2IGkCxcU5aPSQL3XZU59LmF8xI6DkgpCJ8l4RMgPlc+FC+eZM2c28+bP5+Qfp4iLW2OnCCvG uvUbOPnHKWbPmcusjz/m0qVLxaYtbtnVajUdO3Zk7969GAyGB5an1+uZOnWqXZehtGWVtOy2bhe3 Tp3i1Lx5ZJ45U2yZStKcW7qUrQEBnJo7t6RFLOT88uVWB9z7/84vX25znpJKRej06Xg8/bTN332U yxL+9xwbPRpJpSJi7Vo6HjpEm2+/RaXTVXRYjwwl9aMkjb2204fNR+PszHMnTvDciRM4VKnyULEo YczKYmdYWJmX879M1GHFKvd7MGZMn8Ynn8wjIDCQli2a07t3HypXrsyUmMn079cfXz8/xXnV6iBz bpXEuVUSdYc/3Mm8XUlQJ/rh4zl39hw6nY6IiNZ2CMr+zGZQ2dBFVavVADz99NNotVrOnTuLj49P kWkftOwhISHs37+f/fv38+yzzxZbXkpKCrJcPu2ipLJKWnZbt4tTn3yC4do1bp87R9j8+UWWqSTN 5a+/xr1JE5K/+Ya6o0aBpPyqm0/Pnnh26ABA5qlTHBk6lBZffIFLYCCA9UFYab6ShE/vcrpSV55l PeJksxnJlo35MSmrrJgNBjLPnaPeuHFUrl/frnn/XepHcR3aazu1Qz7l2YG8kZAAJlO5lfe/SNRh xSr3DkZaWho1PD1xcnLCxcWV9PR0fjp8mNS0ND6a2d+2zCRo8JbMT6MkfHvK6J4oJpkEf3wqkbRJ AhlqtpNpOF5G5XAvzbnVEhe/lsi5Cg5VwL+vTEBfGe6cF5kN8Pt0iSt7JFRa8Oslo78OuenQfG7+ ieWNE/BDv3sHhidHyQQMsD7pPDpWQvcEaJwh47CE/i94oqlM4w9k1I7WcRtNJlRFHGj279cwdqwz Tz9tZNs2LYMH69HrJTZudKB1ayOLF2cBoNdLvPeeEzt2aLl+XcLPz8zEibl07Wr9y/+yZTpWrNBx 4YKK6tVl+vQxMHZsDnfOibl4UUWTJm4cPXqLdescWLVKR0aGRHS0gS++yC9LlmHRIkeWLdORni7h 42NmwAADw4fnFtkJUavVmIzFb/jFLTuAJElERUURGxtL8+bNcXV1LZRm8+bN/PzzzwC89957lunj x4/Hzc3N8vnAgQMcPXqUGzdu4OzsTOvWrYmIiEAqcEK8f/9+jhw5QmZmJs7OzjRu3Jj27dtb4lNa 1oOW3ZbtIufKFa7/+ittduzgPx06kJuWhmONGjanuZmYyO2zZ3lm5072denCtaNHeaJ58yJqvGga Fxc0Li4AGK5fB8CxenWcvb0LpVVptZxZtIgLq1ZhNhio8eyzNJo6FbVjfqO/kZDA/m7dLOkbTJhA wJAhhfI5t3QpSXFx6P/8E62bG7Wjo6k7ejTS3caqQHmWZdbrOT5tGqm7d2O4cYNKPj7UHTWKmlFR ivM40Ls3VcPDqT9uXKF5f8yaxV+//ELE2rUgy5xbtoyk1avR//knTt7e1OnVC79BgywnrNmXL7Pn mWdot3s3lzdv5tK6deivXcPrueeK7YQabtzgQK9eVA0PJ3T6dMXLpagsBTH/+vbbmPV6whctsuT9 69tvY8rKotlnnwHw88iR6KpVQ+3sTMaBAxiuXeOJZs0I/fBD1E5O+TEbDCTGxHB1504AvLt3z99x 2WhbcDDynZOWgkP/XPz9abtrl+LlKs26KIqSdaGkfhRRsFxK6kdJGqXbaVJsLBfXriXr0iV01arh HR1N8OuvW7ZTJfnYYztVSkk7/G3iRC5t2ADA1oAAy/QOBw7g6OmJ2WjkYJ8+VPL1pcmsWZb5R4YO xZSdTctVq2zqpJZUhyWt9z8PHybhX/+iWqtWpMbHU6dvX8x6PclbtvBE8+Y0mTVLUZq7zn/xBRfX rycnJQUHd3f8Bw3Cf/Bgyw9VStpzSXUolL1y72D4+Phw4vhxguvWJSvrNo6Ojsyc+RErV8VandQp Va2ZTLWw/A5E6PtFHyz+PCrh4ivz7Ddmbl+En95Q4eAG9d/IT39hncSZ5RLNZ5txbwQ3T8JPo1T5 HYne+WnOr5VI3ScR8ZmZyoFweqnElV0ST4TdK7NKfehy2AzA3heL3rjVOkjeLtHoXZkGb5kx3ID/ 9FCRtIFCnZHiaLVw4YKa0aNz6dIljz59KvHBBzl89dVtmjevzKRJOdSsaWbWLEd27NCydWsm3t4y q1Y5MGRIJX791YiXV36cy5frmDbNiSVLsmje3MiZM2oGDKiE0QjvvZc/FrZOHTPOzjLjxzuh1cKO HZlUrWomL+/e+lq9WsfMmY7Ext6mdWsjR45oeOklFwwGGDUqV9Fy2cLf3x8/Pz/27NlDtwIHj7te eOEFvL292blzJxMnTrRM12juNflDhw6xb98++vbti4+PDykpKcTGxqJWq2nZsiUAp0+f5ocffmDo 0KF4eHhw48YNVq1aRY0aNQgNDVVcVkls2S6SYmOp3b07uieeoFaXLiTFxVHvvvG7StJc/uornmjZ EpeAAKq3aUPy5s02dTBsce2nn3CuXZtndu4k6+JFDvfvT+V69Qh47TUAqoSE8NyJEwD8JzKyyDzS 9+3j7Gef0Xr9elwCAsi5coUjr72Ga3AwtZ5/XnEs5VnW6UWLSN29m4g1a3CqWZOL69fz66hRPPvf /yo+yLkGBXH7/Pki52WeOYNr3boAXNqwgdMLFtBsyRKeaNGCv375hSNDhmDOyyNw+HAAnGvXRu3s TMLkyag0GlqvX4+DuzvmvLwi8zfl5HDktdeoXK8ejQoMAVSyXErKUhKzEiqdjuTNm2k4ZQoNJkzA cP06/42MJGn1asvJ5LmlS/NjXruWSj4+JK1Zw8W4ODyLaQPF6ZyYSN6tW8S3aEHLFSvubTMFTujK Yl0UR8m6UFI/SihZLiX1oySNku304po1/DFnDk1mz6Zq06Zknj/PzyNHIptMlv2dknzssZ0qpaQd Npo6lSqhoZz88EM6Frjf8O4VFJVGQ9i8eezr2pUrO3bg1bkzF9eu5cbvv9Nm2zabOhdK6rCk9a7S aMhKSiJoxAg8O3bkyJAh1B8/npYrVvCfDh2oP26cojSONWpwYdUqzixZQrMlS3Bv0oSbiYkcGTIE SavFb8AASz2U1J5LqkOh7JX7ddiYmCksXLiA4cOGMjlmCjNmTGfEyJF4eXmVOs/6b8pc3iqRWczt G2pHqDtcRusK7iHg/ZzM1f/cO2m7sF7Cr7dM1cb5909UeRL8X5KtbiC/skuiVqRMlQagcoC6Iwpf cUDKn6dyeMCIEAkq+YB35/zOhEMVqBoqc/NU4aS3bt6kUqVKRWZjNEL79nn4+ZnQ6yWeesqIr2/+ L0JXr+av1tGjc9m37xYBAWZ0Opl+/QwYDJCQcO8X2MWLdfTrpycyMg93d5nmzY0sX55FeLjRqrwa NWTOnlUTG3ubgAAT7u4y1aubrfIZMEBPmzZGNBqIiDDSr5+B1auL3pidnJy4eetmMZX04GW/KzIy kl9//ZWMjIxC81QqlWVYkkajsfwVdPjwYVq2bEmdOnWQJAlvb28iIiKsbiC/desWarUaZ2dnAKpU qcKbb75p6VwoLaukZVe6XZhyc7m0aRN1Xn4ZAN8BA7i0bh3mAvejKEljzssj5dtv8b7TOat150Bl yrV/ZxBA6+ZG/XHjcHB3x71xY55o2ZKbx4/fSyBJqHQ6VDpdsT805KamImk0aO8MvXLy8qLNjh02 nfCXd1lBw4fz9NatVPL1RaXT4dOzJ+a8PG7eOeFRwjU4mKw7HYyMH39kX5cu/HnwIJDfwagcHAzA +S+/xKdPH6pFRCCp1TzRvDk+PXtafsW7y7FaNW6fP0/4kiVU8vNDW6UKOg+PQuXKJhO/vPkm2sqV aTJnjtVJi9LlKqkspTGXSJKo5Otrac8O7u64h4VZxXNl+3ZqR0fjGhSESqfDf9CgUp08qhwcUDk4 3Pv/nbak0mptXi6l6+JBFK0LBfWjhJLlUlI/StIo2U7PffklPr16UaNdO7RVqlC1aVPCFyzAvXFj m/Kxx3aqlJJ2KKnVlrqw1M19J8ZOtWrReOZMfp80iT8PH+bEjBk0nTsXXbVqNsWjpA6VrHfZZKJ6 mzZUqlMHs15PtZYtqVSnDpC/P1Wa5sKqVfgNGEDVsDAklYoqjRrhN3AgF+PiClRQye1ZSR0KZavc r2CEhYezcdNXAHyzeTMmoxGNRkOPF19E66Bl7JixhIWH25Rn5UCo1Unm5HzJMlzJan6wjFSgK1XJ B3K+zv+/bIasy3BqicSpJdY7n4JDqHLSoFaBq6WSCioHlW58v7OX9ffUTljdqC7LMmfOnGHlyhV0 6dK12HyeeELGYMiP2dVV5u457d3zyMxMiX//24kDBzTk5kpIUn65en3+d0wmOH9eTb16eqt8W7Wy 7lwAqNUyHTsaKbj/v8tszr+iEhJifXIaEmJkyRJdkfdqdH7uOVasWEFoaGMCAgIsO36lyw5YriJ8 //339OvX74Fp7yfLMteuXWPPnj3s2bPHal7BzsGTTz7JL7/8wsyZM/H19SUgIIDQ0NAihz4pVdSy K9ku2nfoQMqWLVRp2BDn2rUBcA0MxDUoiJRt26jdvTuAojRpe/diys21DAGo0a4dmM2k7t5NrS5d Sr1sxXEJCLDqdWtcXTFlZdmUR82oKC5v2sTuf/yDJ5o3p1rr1tTq2hWnmjXtHa7dysq7fZuTM2dy 7aefMOXmWk7SzXp9Cd+8xzUoiKyLF5FNJlK2bsWhShWubN9O1bAwsi9fxrVuXWSzmayLFwm8byx7 5QYNOL9ihdW4fkmjwbNtW1QlXGH7/b33yNi/n/YHDhRKq3S5HlSWLTErcbe936V2crJqYzlXr+J8 52Tmrkr3fbaHslgXD6J0XZRUPyWx9/p6WLLJRFZSkuWer7uqNmtmc1722E6Vsmc79GzfHu8XXuBw //4EjRxJtVatCqU5MWMG55Yts3wOeO01Gty50q6kDpWs97sc3N0tP2RpXFwsQ6wKXpV7UBrZbCb7 4kVOffIJpz75xKq8+zsHD9uehbJXYS/aS01NZdGihXz2+ed0j44mftduzpw5zcSJE4jftdvm/OqN kNnbTcW1YzJPNLGeJxUxZFp9p61KKlDp4Mm3ZHx7PaDDIIOqiJPrUilhJNiO7dsZPXoUTZs25e0x Y4rPpoR8Xn7ZBZDZvj2T2rXN6PVQs+a9l7VJEmg0yoch16hhLnZecbE4OclF3oMxfvw7DHxlAJ07 RTF/wUKi7pzoKl32u9q3b8/cuXNJSkrC19dXyWLciVdCq9USFRVFixYtik3n5OTEsGHDSElJ4cyZ M5w8eZLdu3fz8ssvU69ePcXlFVTcssODt4v2HTpwYdUq6t1XL74DBnBm8WJL50FJmstffYXZYGB3 63s30Zv0epK//rpMOhi23LdQHK2bG603buRmYiLpP/xAanw8p+bMIXzRImo84Gb/iizr6NChIEm0 XrcOp1q1MBsMbLfxpmDXoCDMeXlkX75M+n//S8tVq/hp8GB8+/ZFNptxvXMFo7iNUO3kVOjEz7F6 9RLLNev1uAQEcHzaNJrOmVPq5XpgWTbEbB1cEfuiknaIslzoe2V2QmzndfEgitdFKYYgK82jxPVV FiQJlVpdqvto7meP7VQxe7ZDWSYrKQm1szO3Tp8uMknAa69R+8UXLZ8dCr6wVWkdKl3vStrYA9JI KhUqR0cavPMOviX9aGiP9iyUqQp7VMW7EycwZuw4zGYZV1dXqlevTr169bl8+XKp8nOqAX4vyZyY W3iRsi5aN8Tsy+BU4Iqkq2/+DdoF6a+BqcAP8ronIPvKvc+yGW6dLpsG3qlzZ77b+T1Go4lxY8eW Kg+9XuLYMTWDBhmoXTt/Z5aYaN2fVKnAz8/EyZPWdfaf/2hZuVL5pUSVCvz9TSQkWOefmKghMLDo TsnYMWOQZZnv4+OJLDD21NZld3Nzo1WrVuy8c8OcLTw8PEhJSbGalpmZSV6BX1vMZjMGg4FatWrx zDPPMGzYMJo0acLhw4dtLu+u4pYdSt4u2mzfnn+1oYCakZE8vWWL5XNJaQx//UX6f/9L6Ecf8fS2 bZa/0A8/JOPHH9EXMeTsUSCbTBizs3ELCSFo5Ej+sWkT3tHRXIiNfSTLMuv13EhIoM5LL+FUqxZA qYZc6KpVw8HdneQtW6jk60vlunVx8vTkys6dONWsidbVFUmlopKvr/WwM+DWiRO42NDxLqjJ3LmE zZtHanw8lzZutPtyKY1Z7ehY6JfknCtXsJWjpyfZ7LvaXQAAIABJREFUBY4vstnMzZMnbc6nJGWx Lopjr3WhRHkul9J4nH19Cz2GO2P/fi6uW6c4n/KsQ7ChHSo4gT67dClZSUm02b6dG7/9xoVVqwql 0Xl44BocbPkrOARPSR2W93p38ffPf/pTAfqMjNK9Y0Z0QipUhXQw4uLicHevSlRUFJ6enty+fZuc nBySk5Opfd9lL1sEDZLJupx/v4SFDNlXIWmDhGyCW2fg8g6JWlH3euz+/WSSd0pc2S1hNkLmeTg4 QsXJhffyqfGUTMp3ElmXwJwHpz6TMN93L57ZcO9PlsFsuvcZG35kUalUBAQE0K9/fw4ePFCqutDp 8u+ROHEi/5fjS5dULFigo1IlmWvX7i3XyJF64uJ07N6tJScnv1Pyz386k5pqW9MYNkxPbKwDhw9r MJvh4EENsbEODB9e9Jj+gwcP0H/AAPz8/K3GxZZm2du0acOff/5JYmKi1XRXV1dyc3M5c+YMWVlZ pKenc/3O044AWrduzW+//UZiYiImk4n09HSWL19OfHy8Jc2OHTuIjY0l686l18zMTNLT06l531CZ kspSsuxltV3cL/mbb9BUqkStrl1x9va2/NXq2hWNqysp335rt7KUMhsMmPV6zHo9siwjm0yWz3d/ XTs+dSpHhw7F8NdfAOSmp3P77FncbPylsbzKUul06Dw8yDyVf4NVdnIy55YtQ+PsbHnqllKuQUEk b95seSxwjXbtSP7mm3tXLwC/V17h0oYN/PXzz8hmM9eOHOHShg35T18pJZfAQJ58/30SJ08m8+xZ uy+XkpjvnnDk3cy/byl1925ulaJj4NmxI5c3b+bm8ePkZWZyev58zGV0z1FZrIui2HNdKFFeywXK tlP/QYO4vHEj6fv2YcrJ4UZCAv/3zjvkpqUpzkdpHd79zt3OblHxKKG0HTpWq0ZeZiYZP/yA/to1 Ms+eJTs52TL/+rFjnJ4/n6affIKztzdNZs/mxIcfcvO+42BJlNRhea73gFdfJeXbb7n63XeYjUYy z57l0IAB/DF7ts15lVSHQtkq9yFSly5dYuWK5Zbx5i4uLrw1ahR9++bfkPr++5NKnbfWFYJelTm5 UMKzrYxKAyY9eLXP73h831EFMtTqKOPf994OwbuTjFkPpz6XOPaBhEOV/GkF360RNEgmOwV+6K9C 7ZT/dCmPlrJVJ+O7tipMBTrZJxdInFyQfwL5jy/NVC1w35kSjo6OGI2F74dQat68bCZMcObrr90I DDQzd242np4ykyY5IcsweLCeAQP0ZGVJvPOOMykpKry8zLz6qp7Ro2078PbvrycjQ+KNN5xJS8vP JyYmhz59in4ZnslkwlF3/13y99iy7I6OjrRt25b4+Hjq169vueE6ICCAJk2asHbtWoxGI66urnTq 1An3O5eIQ0NDycvLY+/evXz11Vc4OzsTGhpq9W6NDh06sG3bNubNm4fBYMDZ2ZkGDRoUev9GSWWV tOxluV3c7/LXX1MzKsr6hkryHyXrFRXF5c2b8X/1VbuVp8TOsDBMBd4cffLjjzn58ccAtF6/nqrh 4dQbM4bEmBj+GxWFMTsbrZsbNSMj89/f8YiWFTp9OokxMaRs346Lnx+Npk7F0cOD4zNmIMsyvn37 KsrHNSiIa0eO4NmxIwA1nn2WP+bMwatzZ0uaOr17Y7h2jf+bMAF9ejqONWvSYOJEvKOjbYr5fnX6 9CFj/35+eeMNntq8GbWjo92WS0nMdfr04a+jR/lPZCS6qlWp1qoVtXv0IPu+q48lCRoxgtzUVA4N GIAkSfj260eN9u3LZJx9Wa2LothrXShRnsulZDut06cPpuxsEv/9b3KuXsXR0xPfvn0JHDHCpnxK qsM6ffqwvUEDq/h+nzSJ3yfl75ef+e47q87+gyhth9Vat8Y7Opqf33gDc24uuho1eHLiRJy9vcm7 dYtf3nqL4Ndfp0qjRvnpW7XCf+BAfnnjDZ7eutXyCPGSKKnD8lzvtZ5/HlNuLqfmz+fY+PE4uLvj /fzzBNu474UH16FQ9iSKuCPggw8+kE6cOCFlZGRImZmZkr+/v5SRkaFycHBQZ2Vlqcxms9bZ2Vmb l5fnADiqVKpKsiy7yrLsvm3bti2Fi7nnYU6YK5yMVW0dGinh6g8hY8vmZW7ff7+T8ePG8dvvCSUn fsyENmrI7Dlzad++fZHz/87LXpyiOiuCIAiCIPzvy8zMfOB8k7nwuej7k4r+cXLqlCmFpr3wfNcX JEm6LklSptlszgJytVqtITs7O0+lUuVVqlTJbDAYTB4eHubz58/Lrq6usoeHh9ygQQN58uTJhQp/ vF8XWo6uJ8D2CBVp+/OHWmX8JPHnUQnPp8uuTE/PmuTk5HDs2LGyK6QCHDt2jJycHDwf8IjIv/Oy C4IgCIIgPM4q7ClSjxv3hvkv5kv4SCL3TwknT2g4XqZa87K5egH5Q3gGDR7Mq4MHcfv2bZqGhbFu 3foyK6+s9ezxIr/99hsuLi4MGTKUkJCQYtP+nZddEARBEAThcSY6GDbwf1nG/+Wy61AUZeLEd5k4 8d1yLbOs3L2/QKm/87ILgiAIgiA8rsQQKUEQBEEQBEEQ7EZcwRCEx0Rxj70VBEEQBOF/m0bzeJ2y iysYgiAIgiAIgiDYzf98B2PsmDGMHDFcUVqTyURwUCBfLFtWxlFZe+P11xk7Zky5lvmoOnjwAMFB gWQXeG55WRk7ZgxvvP56mZdjT7a054dhNBpp/2w71qyJK/OybHXixAn6vvwSYU2bUDc4iGbh4eSU 5i2vj4jyWqdKZWdnExwUaPnbuGFDmZdZUfve+z2O+wRbPCr1LNhOnCcIj5ty72Ds2bOH7t2j6dWz B0uXfm6ZnpmZSceOHUi6cEFRPitWLLc6CN7/t2LFcptjU6lUTJs2naeeesrm7wp/b1lZWTQLD39k 8nlYGo2Gt98ew8IFC4rt7NlrW7bV2DFvo1ariVuzhh8PHOSbLVvQ6XSW+Y9KHd71qMVTEmdnZxIS j5OQeJwqVaqUS5li31s+Hrd6fty2HXg8YxaEslDuA7pmTJ/GJ5/MIyAwkJYtmtO7dx8qV67MlJjJ 9O/XH18/P0X59OjRkw4dOgBw6tRphg8bytKlywgMCgTAza3AgVEq9C7BIkmSRM9evWxbIOGhmc1m VKrH+2JaQkICZrOpfPJR2J4fVqfOnVn2xTKWLV3Km2+9VWi+vbZlWxgMBs6dO8eYseOoV69+kWns tS6KUpq2+iitU6UKdtjKw//Cvvdx2I89bvVclttyWXkcYxaEslDue8O0tDRqeHri5OSEi4sr6enp 7IqPJzUtjX79+yvOx8XFhVq1vKlVy5vqHh4AVK9RwzLNxcXFklar0fDp4sVEtGpJeFhTxo8bS25u rmV+YkKC1dWP4i4fL1u2lGfbtSW0UUOefuofzJ49C5PJth2JwWDgX5Mm0aJ5M1o0b8aMGdORZetH 38qyzBfLltH2mWdo1DCETlGRLP/yS8xms1W65V9+SVRkJI0ahtDm6adY/uWXhfJ62JhfeqkPs2fN KnLe7Nmz6PvyS4pjTk5OJjgokKQLF5g7dw6tWrYgOCiQt98eXWz5N27cICoykvfeK5vH1UoSzPvk E1q2aE6L5s14//330Ov1lvlFDZm4f0jLe+9OZED/fmRmZlq1o9TUVJtiUZpPSe0ZlLWNkkiSxPjx 7/DFF8vIyMgoNN9e2zKAXq/n3x98wD9aR9Aw5Eme69yJ77/faZWmfr26hDzZAFmWGTF8mKV+Ijt2 tKRRWocl1U9p2mpRHrV1ChC3ejVdujxHaKOGtGv7DAvmz7d5P6Z0H1XS/kfJvvf1f/6Tf3/wATM/ +ogXnu/KP1pHMHr0KKthcQaDgYkTJtCkcSgtmjdj/rx5/PuDDxgxfJiNtVPyPkFJ21DSnkHZurDH ei/PY5yS9aWk/dhjv6r0+KVkfSlZLnvtf5ScJwjCo67cr2D4+Phw4vhxguvWJSvrNo6Ojsyc+REr V8UildGveEeOHKF2bR+27/iOS5cu8cqA/tSrV5/Br74KwJMhISQkHgegc6eoIvP4Yd8+ln7+OWvX rcPfP4ArV64wdOgQgoOD6dr1ecWxfLFsGXv27GZ13Bp8fHxYu3YNa9esoWPHSEuaTRs3snDhAhYv /pTmLVrw66+/MmzoEAx5BoYNyz+xjV21is8+W8LixZ/SuEkTjicmMmzYULRareXkzh4xBwUGcf7C +SLnnTt7luC6dRXH7O3tjZOTEzExk9FotKxduw73qu4YDHlF5p+Tk8PQIa9Rr15dpkyZqqyCbXTo 0GH8AwKI37WbpKQLvPbqq7hXcWfM2LGK84iZMpXQ0MZ89NGHHDx02DLd1l+BleZTUntW0jaUatmy Jc1btGD+/HmF1oE9t+XFixexe/cuVsetoWbNmmzcsIG3R49mz97Glree//Z7Ardu3SKiVUu+XL6C Zs2aAVj9aqykDpXUj61ttTiP2jpdu3YNc+fO4eNZs2jatCnnzp3njdf/idFkZPTotxXno2R7V7L/ UbLv1el0fPPNZibHTGH8O+9w/fp1OneKYk1cHK++9hoAK1euYM+e3cTGriYoOJjFixfx3Xc7aN68 heJluqukfYKStqGkPStZF/Za7+V5jFOyvpS0H3vsV5Uev5SsLyXLZa/9j5LzBEF41JX7FYyYmCks XLiA4cOGMjlmCjNmTGfEyJF4eXmVWZmVK7sxZuxY3N3dCQ0NpUWLlhw/ftwyX5IkdDodOp2u2BOj tLQ0NBqNZeiVl5cX27Ztt2nHC7B9x3a6dYsmKCgInU7HwIGDLDuwu5Yv/5JevXvTKiICtVpNs2bN 6NGjJ5s2brSkiV0dS7/+/WkaFoZKpaJho0a88spAq5ty7RFzUFAQF87n76APHPiR57t25dDBgwCc OXOG4OBgxTEDeHh4cOHCBRZ/+im+fn64uVXB484VqIJMJhOj3nqLym5uzJo9p8yGHjg7O/Hmm29R uXJlGjUKpVu3aOLj423KQ61Wo9Hm99XvtqPSDDFRmk9J7VlJ27DFuLHj+Pqrrzh37pzVdHtuy8OH j2DLt1vx9fVFp9PxYo8e5OXlcfLkCUsaBwcHHBwcANBqtZb60Wq1ljRK6lBp/Shtqw/yqK3T5cuX 06NnT9q2bYebWxWaNm3KvPnzady4sY35lLy9K9n/KNn3SpKEr68vL7zwAgDu7u40DQvjxIl7beO7 777juS5dCGnYEJ1Ox5tvvoWTk5NNy3SXkn1CSW1DSXtWsi7std7L8xinZH0paT/22K8qPX4pWV9K lste+x8l5wmC8Kgr9ysYYeHhlrcaf7N5MyajEY1GQ48XX0TroGXsmLGE2fkGqYDAAKudqqurK9nZ WTbl0TEykq++2kSbp5+iWbPmRLSOoEuXrtSsWdOmfFKvXqVOnTpW03wKfDabzVy8eJGh940vr1+/ PitXrrBcQr508SLz581j/rx5VukK7szsEXNQUBAXL17EZDKxbes2qrhXYcd3O2gaFsbly5epG1xX Ucx3OwhqtYZnnmlb4vOcJ016nx9/3M8P+38s02c/161bz6rzUqdOHVJTr5ZZefbwoPZsNpsVtQ1b BNetS9euzzPr45l8uuQzy3R7bsu3b2fy8cyZHDlyhNzcXMs60esNpYq5OLbUj9K2ag/lsU5NJhMX k5IIDAy0mh4e3symWJVu7/baZwJ4e9e2+uzk6GS1D09LTcWnS1fLZ7VaTXBwXZvLAWX7hJLaRknt Wcm6KItt+UHKa33Zcrx4WEqOX6B8/1NSOyyJ0nVa0nmCIDwOKuytHampqSxatJDPPv+c7tHRxO/a zZkzp5k4cQLxu3bbtSy1Sv3Qebi5ubFu/QYSExP5cf9+du/axSdz57Jg4SLatWunOB9ZljHddwOY SrLemRb3C5Ojo6Nlx6fT6Rj/zgT69u1bpjEHBgWRl5fH5cuX2bfvv6xYsZLXXnuVl1/ui9lsJujO L0BKYr7Lo3rJvwIb9Hr8AwKYMX06s2bPVhRraWg0hduGg8ODD973jzMvbw9qzyqVSlHbsNWo0aPp 2KE9P/98tNAJqT225WHDhiFJEnFr1lKrVi0MBgMhTzawW/x32Vo/StqqPZTHOpUkCbVajT2GcivZ 3u21z3xQeXeZzWarK1kPQ+k+4UFto6T2rGRdlNW2XJzyXF+2HC8ehtLjl9L9z8MO41a6TpWcJwjC o67CWuy7EycwZuw4zGYZV1dXqlevTr169bl8+XJFhfRAJpOJ7OxsQkJCGD5iBOs3bKRbt26sjl1l Uz6enp4kX062fDabzfzxx0nLZ5VKha+vr9VlV4CTJ0/iV+CpPAEBASQmJFilycjIsLrhzB4xV6tW DXd3d7Z++y11fH0JrluXGjVqsHPnd9SsWRNXV1fFMdti1uw5fPLJPHbtimfTpo0lf6GULtz3KNVL ly7i5XXvFzudo87qBk+AK1evFMpHwj73D9kjHyVtw1aenp4MGPAKH334YaF5D7st6/V6EhMS6NPn JWrVqgXkt53SKqkOy6J+HiYeJewRs0qlok6dOpw9c9pq+o8//sj6detsykfJ9m6vfaYS1Tw8SE65 t181mUycOvVHqfIqaZ9QEiXtWem6KM+2Wl7ry5bjxcNuO0qOX4/i/qek84SCMjMzOX36NJmZmaWO WRDKQoV0MOLi4nB3r0pUVBSenp7cvn2bnJwckpOTqV27dskZ2JnBYECv16PX65FlGaPJaPUZYPr0 aQwfPoy//voLgIyMdM6dO0f9+rb9ytqhY0e++WYzx48fJzMzk4ULFhR6WsyAAa+wceMGfvn5Z8xm M0ePHmXjxg0MHDjIkmbQ4MFs3fotO3fuxGg0cvbsWQYNfIW5c+ZY0tgr5sDAQL75ZjMd2uc/Frhd u2f5dssWy68/SmO2VUBAAO+++x5TYmI4e/as1by8vDwaNQwhKjKy1E/XkGWZK1euEBcXl39C8scf bNmyha7P3xtzHOAfQGJiAjdv3gTy3/3wRxEHn2oeHmRmZrJ//36uXbvG2bNnSSlwwqOUPfJR0jZK Y+iwYSQlXeS7776zTLPHtqzT6fDw8OD0qVMApKQk88WypTg7O3P9+l82x1lSHZZV/ZQ2HiXsFfOg QYPZtGkTP+zbR05ODokJCUx4Zzzp6emWNHf3fXc71kXtD5Vs70r2P0r2vUo888wzbP12K0lJSeTl 5bFwwQIMBtuH1ynZJ5REaXtWsi7std7L8xinhNLjhT22nZKOX4/i/kfJecJde/fupctzndm7d6/N sQpCWSr3IVKXLl1i5YrllrHbLi4uvDVqFH37vgzA++9PKu+QaBYeZvXrwexZsyyPtlu7dh1h4eGM Hv02U6dM4bnOncjOzsbNzY2OHSOLfD/AgwwbNpzUq6kMfOUVVCqJvn378eyz7a1+Je/ZqxfXrl1j 4rsTyUhPx9PTk3cmTKBbdLQlTdeuz5Obq2fhgvm8M34cVatWpUvXrrz11ihLGnvFHBQUzNGjR2nf 4e4Ouh1z586hU6fONsVcGr379OHHH39k1Ftvsumrr3F0dATgt9/+j9zcXF599dVSX7bW6/VERkVx 6WISrSNaIcsynZ97zuog16t3b37++SidO0XhXrUqrVq2ovuLL3IlJcUqr4iICLpFR/PWm2+Qm5tL jRo1eGfCRGrV8rYpJnvko6RtlEblypUZOXIkc2bPokOHDly5csVu2/LUadOYEhPDjh3b8fX1ZcrU qXhUr86HM2YgyzIvv6x8iEhJdVhW9VPaeJSwV8y9evcmKzubmJjJXL16FU9PT/r27cew4flP7jGZ TDQMedLqOx/861988K9/AbBt+w6Cg4MVbe9K9j9K9r1KDBs2nOTkZHq82B0nJyf69e9P69b/wGi0 7alfSvYJSihpzyWtC7Dfei/PY5wSSo8X9th2lBy/HrX9j5LzBEF41El3/qx88MEH0okTJ6SMjAwp MzNT8vf3lzIyMlQODg7qrKwsldls1jo7O2vz8vIcAEeVSlVJlmVXWZbdt23btuVBBRqNxrJaFuFv ZNGihcStXs1/9/1gebKQIAh/X7IsW/3YMGjgQIKCgnj3vfcqMCpBEAT7KOmBIyZz4au+708q+oe+ qVOmFJr2wvNdX5Ak6bokSZlmszkLyNVqtYbs7Ow8lUqVV6lSJbPBYDB5eHiYz58/L7u6usoeHh5y gwYN5MmTJxcqXNw1JDyWfvrpJwYMeEV0LgRB4P/+7/8IbdSQ//xnLyaTiYMHD3D48CHatm1b0aEJ giD8LVXYU6QEobTy8vI4feoUCxYsrOhQBEF4BDRu3Ji3x4whZnIMf/6ZQc2aNZn0r3/RKiKiokMT BEH4WxIdDOGxo9VqOfzTkYoOQxCER8jAgYMe6qESgiAIgv2IIVKCIAiCIAiCINiN6GAIgiAIgiAI gmA3ooMhCIIgCIIgCILdPLYdDLMR9jyvImmjfd6gXBpHx0n8+n7R5S/59FOahYcRHBRInz69yzky ++rZ40WCgwJpFh7G0qWfV3Q4giAIgiAIwiOs3DsYe/bsoXv3aHr17GF1spqZmUnHjh1IunBBUT4q DdR7XebU5xLG7LKKtnQuXDjPnDmzmTd/Pif/OEVc3JqKDumhrFu/gZN/nGL2nLnM+vhjLl26VNEh CYIgCIIgCI+ocu9gzJg+jZjJMaxcFcvCBQu4desWAFNiJtO/X398/fwU51Wrg4xTDTi3quKuYhTl 3Nlz6HQ6IiJao1arUavVFR2SFbPZtvR3l+Hpp59Gq9Vy7tzZsglMEARBEARBeOyVewcjLS2NGp6e ODk54eLiSnp6Orvi40lNS6Nf//62ZSZBg7dkzsZK6K8Vn+zcaom93VVsb6ViVycV51ZLUOCdg0fH Svw+Q+LEPIl9L6mIj1Txy0QJU+69NGYD/D5NYmc7FTvbqTg+xzqPgowmEypV4ardv19DixaVGTfO mfr13fj4Y0emTnUiNNSNkSMrWdLp9RJjxzrToIEbNWtWISKiMlu3Fn6h3LJlOv7xj8rUqlWFJk3c +OgjJ0yme/MvXlRRtao7586pmTbNibp1q1C1qjtDhtwrS5Zh4UJHGjd2w8urCi1bVmbxYsdiOyFq tRqT0VT0TEEQBEEQBOFvr9w7GD4+Ppw4fpyrV6+SlXUbR0dHZs78iA8//AhJsv1KRLVmMtXCZP74 tOjvXlgncWa5RON/mel8wEyzWWbOrpS4sOFeerUOkrdLVA6CNmvNPLPezJ9HJZIKpDkbK3H1vxKt l5rpuNOMkyekH7AtXq0WLlxQExZmZMmSbObMcaRaNTNffXWbdescuHo1f3XMmuXIjh1atm7NJCnp JoMG6RkypBJXrtxbXcuX65g2zYlJk3JITLzJZ59lsXy5Ax9+6GRJU6eOGWdnmfHjnUhIULNjRybn zt1gxowcS5rVq3XMnOnIvHlZXLp0gzlzsvnoI0fmz3e0adkEQRAEQRAEASqggxETM4WFCxcwfNhQ JsdMYcaM6YwYORIvL69S51n/TZnLWyUyi7h948J6Cb/eMlUbg6SCKk+C/0uy9c3hElTyAe/O+Zck HKpA1VCZm6fuJbnyvUTtLjKuAaByAP+XZRxrFB3PrZs3qVSpUpHzjEZo3z4PPz8Ter3EU08Z8fXN vyJwt4MxenQu+/bdIiDAjE4n06+fAYMBEhLuDbVavFhHv356IiPzcHeXad7cyPLlWYSHG63Kq1FD 5uxZNbGxtwkIMOHuLlO9utkqnwED9LRpY0SjgYgII/36GVi9Wldk/E5OTty8dbPoBRcEQRAEQRD+ 9sr9Td5h4eFs3PQVAN9s3ozJaESj0dDjxRfROmgZO2YsYeHhNuVZORBqdZI5OV+i+dx745ZkM2Rd hlNLJE4tsb7aoLpvxJGzl/V4J7UTVjeP56RBpdrW36lU2/o7sixz5swZVq5cQZcuXYuN94knZAyG /HhcXWU0d9aCwZD/b2amxL//7cSBAxpycyUkKb8cvT7/OyYTnD+vpl49vVW+rVpZdy4A1GqZjh2N aLWF4zCb86+ohITkWk0PCTGyZIkOsxnuH+nV+bnnWLFiBaGhjQkICCjVVSdBEARBEAThf1e5dzDu Sk1NZdGihXz2+ed0j44mftduzpw5zcSJE4jftdvm/OqNkNnbTcW1YzJPNMmfJqlApYMn35Lx7VXM DRN3lXSeLOd3WKy+ct/J947t2xk9ehRNmzbl7TFjii+qhLJeftkFkNm+PZPatc3o9VCzprvV9zWa /PsnlKhRo/i7uouLxclJLtS5ABg//h0GvjKAzp2imL9gIVFRUcqCEARBEARBEP4WKuw9GO9OnMCY seMwm2VcXV2pXr069erV5/Lly6XKz6kG+L0kc2Ku9SK5+sKNE9Zp9dewuoFbCccakJ1y77Nshlun rc/OO3XuzHc7v8doNDFu7FjbCrgbm17i2DE1gwYZqF07v2OQmGjdD1SpwM/PxMmT1sv6n/9oWbmy 6KFNRVGpwN/fREKCdf6JiRoCA4vulIwdMwZZlvk+Pp7IyEjFZQmCIAiCIAh/DxXSwYiLi8PdvSpR UVF4enpy+/ZtcnJySE5Opnbt2iVnUIygQTJZl+HKrnsn/v79ZJJ3SlzZLWE2QuZ5ODhCxcmFtg3t qdlW5vI2iZt/QN5tOP25VKiTolKpCAgIoF///hw8eKBUy6DT5d8jceJE/v0Wly6pWLBAR6VKMteu 3Yt55Eg9cXE6du/WkpOT3yn55z+dSU21bZUOG6YnNtaBw4c1mM1w8KCG2FgHhg8vugd28OAB+g8Y gJ+fvxgeJQiCIAiCIBRS7kOkLl26xMoVyy33Ybi4uPDWqFH07fsyAO+/P6nUeWtdIehVmZMLJTzb yqg04N1JxqyHU59LHPtAwqFK/rS6wxWOL7ojaLBMTjocGqECCfx6yXi2kTEZCqd1dHTEaCx8P4RS 8+ZlM2GCM19/7UZgoJm5c7Px9JSZNMkJWYZB6ilrAAAgAElEQVTBg/UMGKAnK0vinXecSUlR4eVl 5tVX9Ywebdulmf799WRkSLzxhjNpafn5xMTk0KdPEQsGmEwmHHXiCVOCIAiCIAhC0cq9g+Hj41Po HouBAwcxcOAgu+Qf0E8moJ9158Gnm4xPt+I7FE2nFp53/zS1IzT5t0yxL78ooLgf9lu2NPLXX9cB 8PIyW/4PWP0/MjKPyEjrJzV9+GE2H35o/cryESNyGTHiwR2KI0dulRjrmDG5jBljQ8dEXLkQBEEQ BEEQilFh92D8L/P0rElOTg7Hjh2r6FDs6tixY+Tk5ODp6VnRoQiCIAiCIAiPqAp7itT/stDQUAYN Hsyrgwdx+/ZtmoaFsW7d+ooOq9R69niR3377DRcXF4YMGUpISEhFhyQIgiAIgiA8okQHo4xMnPgu Eye+W9Fh2MXd+2UEQRAEQRAEoSRiiJQgCIIgCIIgCHYjOhiCIAiCIAiCINiN6GAIgiAIgiAIgmA3 j20Hw2QyMXv2bH766acKi2HNmjVs2LCh0HSz2cx7773H/v37KyAqQRAEQRAEQag45d7B2LNnD927 R9OrZw+WLv3cMj0zM5OOHTuQdOGConzUajUdO3Zk7969GAxFvxSuokiSRHR0NMHBwRUdCnq9nqlT p1Z0GIIgCIIgCMLfRLl3MGZMn0bM5BhWropl4YIF3LqV/yK4KTGT6d+vP75+forzCgkJwc3N7ZG7 UiBJEuHh4dSoUaOiQyElJQVZtu2t5YIgCIIgCIJQWuX+mNq0tDRqeHri5OSEi4sr6enp/HT4MKlp aXw0s79NeUmSRFRUFLGxsTRv3hxXV9ci0x04cICjR49y48YNnJ2dad26NREREUh33ki9Zs0aXFxc cHBw4OzZs2RlZeHr60v37t3RarUAGI1Gtm/fTmJiIgBNmjQpVE5KSgqLFy+2fI6KiuKpp56ySqOk rDVr1qDT6XBzc+Pw4cMYjUYaNmxIt27dUKvVAGzYsAGj0cjLL79syXvDhg0YDAb69esHwObNm/n5 558BeO+99yzpxo8fj5ubmw01LQiCIAiCIAjKlHsHw8fHhxPHjxNcty5ZWbdxdHRk5syPWLkq1nLC bwt/f3/8/PzYs2cP3bp1KzT/0KFD7Nu3j759++Lj40NKSgqxsbGo1WpatmwJgEaj4dixY7zwwgtE RUWRnZ3NJ598wuHDhy0dhB9//JGTJ08yZMgQqlatypEjRzhy5AgNGjSwlOXl5cXkyZMBmDdvXpHx KilLo9Hwxx9/0LJlS8aNG0dGRgarVq1i3759tGvXTnHdvPDCC3h7e7Nz504mTpxoFYMgCIIgCIIg lIVyHyIVEzOFhQsXMHzYUCbHTGHGjOmMGDkSLy+vUucZGRnJr7/+SkZGRqF5hw8fpmXLltSpUwdJ kvD29iYiIqLQzeHVqlWjcePGADg7O1OnTh2uXr1qmf/777/TpEkTqlevjkajISIigsqVK1vlIUkS Go2mxBP4ksoCcHBw4Nlnn0Wn0+Ht7U2TJk0sV0+UUqlUlised+MSnQtBEARBEAShLJX72WZYeLjl zdDfbN6MyWhEo9HQ48UX0TpoGTtmLGHh4TblWaNGDUJDQ/n+++8tw4MAZFnm2rVr7Nmzhz179lh9 5/4TbXd3d6vPWq3W6ubxmzdvUrVqVas0TzzxhE1xKi0LwMPDw+pz1apVuXnzZqnKEwRBEARBEITy UmE/Z6emprJo0UI++/xzukdHE79rN2fOnGbixAnE79ptc37t27dn7ty5JCUl4evrC+RfUdBqtURF RdGiRYuHjvn+m6VLM6TrYZRUnriZWxAEQRAEQahoFfYejHcnTmDM2HGYzTKurq5Ur16devXqc/ny 5VLl5+bmRqtWrdi5c6fVdA8PD1JSUqymZWZmkpeXZ1P+lStX5vr165bPsiyTmppaqliV+Ouvvwp9 rlKliuWzVqvFaDRapRFXOARBEARBEISKViEdjLi4ONzdqxIVFYWnpye3b98mJyeH5ORkateuXep8 27Rpw59//ml1r0Lr1q357bffSExMxGQykZ6ezvLly4mPj7cp7yeffJJjx45x5coVcnNz2bt3b6FO itFotPxB/gv37n629erCrVu3OHToECaTibS0NI4dO0ZISIhl/t2OU05ODgAnT54sdB8HgKurK7m5 uZw5c4asrCzS09OtOkqCIAiCIAiCYE/lPkTq0qVLrFyx3HIfhouLC2+NGkXfvvmPW33//UmlztvR 0ZG2bdsSHx9P/fr1UavVhIaGkpeXx969e/nqq69wdnYmNDSUZ5991qa827Rpw82bN/nyyy+RJImW LVtSv359q07GtGnTrO6liI+Pt3Rkhg4dSp06dRSXFxQUxF9//cWHH35IXl4eoaGhVo+8bdasGUlJ ScybNw9nZ2cCAgJo2rQpN27csMonICCAJk2asHbtWoxGI66urnTq1KnQfSCCIAiCIAiCYA/SnT8r H3zwgXTixAkpIyNDyszMlPz9/aWMjAyVg4ODOisrS2U2m7XOzs7avLw8B8BRpVJVkmXZVZZl923b tm15UIH3D+sRCrv/fRaCIAiCIAjC31dJTwE1mQuPlHl/UtE/2k+dMqXQtBee7/qCJEnXJUnKNJvN WUCuVqs1ZGdn56lUqrxKlSqZDQaDycPDw3z+/HnZ1dVV9vDwkBs0aCBPnjy5UOEVdg+GIAiCIAiC IAj/e0QHQxAEQRAEQRAEuxFvXXsE9erVq6JDEARBEARBEIRSEVcwBEEQBEEQBEGwG9HBEARBEARB EATBbkQHQxAEQRAEQRAEuxEdDDvKzs4mOCjQ8rdxw4aKDkkxk8lEcFAgXyxbVqrvjx0zhjdef/2B aR7n+hEEQRAEQRCUKfcOxp49e+jePZpePXuwdOnnlumZmZl07NiBpAsXFOd18OABgoMCuXjxYlmE ajNnZ2cSEo+TkHicKlWqlCqPAQP68+rgQUXOGzxoIK+8MuBhQiyWSqVi2rTpVi/zszd71I8gCIIg CILwaCv3DsaM6dOImRzDylWxLFywgFu3bgEwJWYy/fv1x9fPr7xDsiudTodOpyv196O7RXPw4EGu XbtmNf3atWscOnSI6OjuDxsiZrO50DRJkujZqxfBdes+dP4P8rD1IwiCIAiCIDzayr2DkZaWRg1P T5ycnHBxcSU9PZ1d8fGkpqXRr39/u5cnyzJfLFtG22eeoVHDEDpFRbL8yy8LnWTHrV5Nly7PEdqo Ie3aPsOC+fMxmUyW+Xq9nn9/8AH/aB1Bw5Anea5zJ77/fqfd442MisLBwYHvduywmr7zu+/Q6XRE RkYqjic5OZngoECSLlxg7tw5tGrZguCgQN5+e7QlTWJCgtWwpaKGSClddkmCeZ98QssWzWnRvBnv v/8eer3e5jpY/uWXREVG0qhhCG2eforlX36JLFu/JHLZsqU8264toY0a8vRT/2D27FlW6+uuLVu2 EBwUyJYtD3zBvCAIgiAIgmAn5f4eDB8fH04cP05w3bpkZd3G0dGRmTM/YuWqWCRJsnt5mzZuZOHC BSxe/CnNW7Tg119/ZdjQIRjyDAwbNhyAtWvXMHfuHD6eNYumTZty7tx53nj9nxhNRkaPfhuAxYsX sXv3LlbHraFmzZps3LCBt0ePZs/exnh6etotXmdnZyIjI9m69VurDtfWrd8SFdUJJycnxfF4e3vj 5ORETMxkNBota9euw72qOwZDniXfJ0NCSEg8DkDnTlFFxqR02Q8dOox/QADxu3aTlHSB1159Ffcq 7owZO1bx8seuWsVnny1h8eJPadykCccTExk2bChardZSHz/s28fSzz9n7bp1+PsHcOXKFYYOHUJw cDBduz6vuCxBEARBEATB/sr9CkZMzBQWLlzA8GFDmRwzhRkzpjNi5Ei8vLzKpLzly7+kV+/etIqI QK1W06xZM3r06MmmjRsLpFlOj549adu2HW5uVWjatCnz5s+ncePGljTDh49gy7db8fX1RafT8WKP HuTl5XHy5Am7x9wtOppjx46RnJwMQEpKCseOHSO6+73hUUrj8fDw4MKFCyz+9FN8/fxwc6uCh4eH Zb4kSZZhS8V18JSW5ezsxJtvvkXlypVp1CiUbt2iiY+Pt2nZY1fH0q9/f5qGhaFSqWjYqBGvvDKQ NWviLGnS0tLQaDS4ueXfx+Hl5cW2bduL7Fy0a9eObdt30K5dO5viEARBEARBEEqn3K9ghIWHs3HT VwB8s3kzJqMRjUZDjxdfROugZeyYsYSFh9ulLLPZzMWLFxlar77V9Pr167Ny5QrMZjOyLHMxKYnA wECrNOHhzaw+376dycczZ3LkyBFyc3NRqfL7Znq9wS6xFtSyZStq1qzJtq1bGT5iBNu3b8PLy4vm zZvbHI9areGZZ9qi0ZR+VSstq27depZ5AHXq1CE19aricsxmM5cuXmT+vHnMnzfPal7B+zY6Rkby 1VebaPP0UzRr1pyI1hF06dKVmjVrFsrT1dUVV1dXxTEIgiAIgiAID6fcOxh3paamsmjRQj77/HO6 R0cTv2s3Z86cZuLECcTv2m23cor7Vd7R0RGVSoXZbEatVnPfEP9Chg0bhiRJxK1ZS61atTAYDIQ8 2cBucRakUql4/vkX2LYtv4Oxbes2XujWzWpZbInHo7pHkdOVUlqWRqMuNM3BQfkN3SqVCp1Ox/h3 JtC3b99i07m5ubFu/QYSExP5cf9+du/axSdz57Jg4SJxpUIQBEEQBKGCVdh7MN6dOIExY8dhNsu4 urpSvXp16tWrz+XLl+1WhkqlwtfXlxMnrIfynDx5Er87T6tSqVTUqVOHs2dOW6X58ccfWb9uHZB/ k3NiQgJ9+rxErVq1LHmUpeju0Zw+fZof9u3jjz9O0q1btGVeecZjS1kX7nvE8KVLF/HyKnxV4UEC AgJITEiwmpaRkUFOTo7ls8lkIjs7m5CQEIaPGMH6DRvp1q0bq2NXFcovMzOT06dPk5mZaVMcgiAI giAIQulUSAcjLi4Od/eqREVF4enpye3bt8nJySE5OZnatWvbnF9aWhopKclWf3efEjVgwCts3LiB X37+GbPZzNGjR9m4cQMDB95718SgQYPZtGkTP+zbR05ODokJCUx4Zzzp6elA/vAcDw8PTp86BUBK SjJfLFuKs7Mz16//ZclHr9db/gCMJqPl8/1PQSqJv38ADRs1Yuq0qTRt2hRfX1/LPKXxKGEwGKxi vD9mpWXJssyVK1eIi4vDZDJx6o8/2LJlC12fv3dfhJL6GTR4MFu3fsvOnTsxGo2cPXuWQQNfYe6c OZZ8pk+fxvDhw/jrr/zyMzLSOXfuHPXrF76qsnfvXro815m9e/faVC+CIAiCIAhC6ZT7EKlLly6x csVyy30YLi4uvDVqFH37vgzA++9PsjnPfne+W9DPv/xK5cqV6dmrF9euXWPiuxPJSE/H09OTdyZM oFv0vSsCvXr3Jis7m5iYyf/P3n3HR1Emfhz/7iYQEgiBQGIiEHoREVFAFM4SEAhNqqCELkpQT3pR EAwgBBWUrnRBpCQKSMjR78RT4fxxohSP3mtEODa97P7+4FhZE8gGHxKJn/frta8XO/PsM8/Mw8B8 Z56Z0blz5xQUFKTw8G7qFxHhLDPh7bc1ftw4xcWtV4UKFTR+wgQFBAYqatIkORwOdenynB6odb9L G8aOGaOxY8ZIkmLXx6latWq5Wq8O7TsoMvIt9enTJ8u8nNrTtevNhxjdqH69ui5XB6a8956mvPee JGn58hWqW6+eW8tKTU1V87AwnTxxXI0aPiaHw6GWrVo5g1xmZqZb26dNm2eUkpKqmTOma8TwYfL3 91frNm00YMBA5+8GDRqsCePHq1XLFkpKSpKfn5+aNWuu1wYMyNX2BQAAgHmW/31cjB071rJ//35L fHy8xWazWSpVqmSJj4+3Fi5c2CMxMdFqt9sL+fj4FEpPTy8sqYjVai3qcDh8HQ5HydjY2Fu+cCAj I+NOrQsAAABQ4OT0sJ5Me9aRMqPfzP6k/YTx47NMa/tMm7YWi+WyxWKx2e32REkphQoVSktKSkq3 Wq3pRYsWtaelpWUGBATYjx496vD19XUEBAQ4atas6YiMjMyy8Hy7BwMAAABAwUPAAAAAAGAMAQMA AACAMQQMAAAAAMYQMAAAAAAYQ8AAAAAAYAwB4yb++uqrGjpkSH43w+mP1h4AAAAgO3keMLZu3aoO Hdqr87OdNG/eXOd0m82mZs2a6vixY3ndpD+9xMRE1a9XL7+bAQAAgAIgz9/kPWni2/rgg2mqXKWK Hm3wiLp0eU7FixfX+HGR6t6tuypUrJjXTfrT27Nnj+z2zPxuBgAAAAqAPL+CceHCBd0TFCRvb28V K+arixcvavOmTTp/4YK6de/udj07duxQWPPminxrrBo1bKhZs2Zq6tQpCn3qSQ0fPsxZzuFwaMH8 +Qp96inVfqCWWoQ116KFC2W3251l0tLSNObNN9Xgkfpq8Eh9TZo0UQ5H1jciLlq4UGHNm6v2A7X0 5BOPa9HChdmWW7t2rapVraK1a2/5UvObcqc97qyXJC375BO1bt1KD9Z+QI1Dn9KM6dOVmflrmBj1 xuvq0b2bbDabqlWt4vycP3/e7XXPyMhQ52c7uWx3SYro95J69OiepU0AAAAouPI8YISEhGj/vn06 d+6cEhMTVKRIEb3zzmRFRU2WxWJxu55Cnp46ceK4Hnywjt597119OGeOSpUqpYWLFmnN6tW6cOGC JCkmOlozZ87QxIkT9f3uHzRu/ATNmDHdZXjWgvnztXXrFn2y7FNt/+qfCg4O1vbtX7osb+mSJfro ow81ceJE7f7hR82cOUvz5s3Vsk8+MbNhbuBOe9xZr+XLP9X770/VkCFDtP2rr/TelKlasWK5pk+f 5iwzbvwETZjwtnx9fbVn7z7nJygoyO119/T01PsfTNPft23T3/72N0nSihXLtWfPHk2d+r6sVm71 AQAA+LPI8yO/cePGa+bMGYro95Iix43XpEkT1f/ll3Xvvffmuq7MzEw98eSTKl++vFJTU/Vog0cV ElJeknThwrUz8IsWLVTnLl30WMOG8vDwUP369dWp07OKiY521rM+br3atWuvqlWrysvLS7169XY5 wJakpZ8sVbfu3fVw3bqyWq16oHZt9ezZS59+uixLuxo3bqzY9XFq3LhxrtfJ3fa4s16LFi1Sp2ef VWhoY/n5ldDDDz+sadOnq06dOs4yHh4e8ix0baScl5eX85PbdS9TpowmRU3WmDff1I4dOzQ5KkpT pkxV6dKlb2sbAAAA4O6U5/dg1K1XT9Exn0mS1qxercyMDHl6eqpTx44qVLiQhg4Zqrq5uOG4ZMmS SktLkyQV8y0mDw8PSVJ6WrrsdrtOnDihl2rc5/Kb++67Tx9/vFh2u11Wq1Xnz51T+fLlXcqE3PDd brfr5IkTmj5tmqZPm+ZS7rcH45Lk6+srX19ft9fht9xpT07r5XA4dOL4cVWpUsWlTL169XPVltys +9NPP60dbduqV88e6t//ZT362GO5WhYAAADufnkeMK47f/68Zs2aqY/mzlWH9u21afMWHTp0UK+/ PlKbNm9xu56chlXdbH6RIkWcQ3ccDocyf3OTs9Xy68Udq9UqLy8vDR8xUuHh4W637Xbl1B4p5/Wy 2+3y8PBQNreI5Epu1t3hcOj4iePy8fHRwUMHf9+CAQAAcFfKt8Hxb7w+UkOGDpPd7pCvr68CAwNV o8Z9OnXqlLFlWK1WVahQQfv373eZ/tNPP6niDU+rCgoK0ulTp53f7Xa7/vOfn1x+U7lyZe3ds8dl Wnx8vJKTk7Ms12az6eDBg7LZbLfV7pza4856Wa1WlS9fXod/c6D/z3/+UytXrHCZZtGtQ5q76z5/ /jydOH5c62Jj9cPu3Vq6ZEkOawoAAICCJl8CxrJly1SypL/CwsIUFBSkhIQEJScn6/Tp0ypXrpzR ZfXo0VPR0au06//+T3a7Xd99952io1epV6/ezjJNmzXTmjWrtW/fPtlsNs2cMUMpKSku9fTu00fr 1n2hDRs2KCMjQ4cPH1bvXj31/tSpWZa5bds2tW7VUtu2bbutNrvTHnfWq3fvPoqJidH2L79UcnKy 9u7Zo5EjhuvixYsudZUOCJDNZtNXX32lS5cu6fDhwzpz5teA48667969WzNnzNDUqe+rTJmyeu+9 KXrnncnau3fvbW0DAAAA3J3yfIjUyZMn9fHiRc77MIoVK6YBAwcqPLyrJGn06DeNLu/Zzp116dIl vf7G64q/eFFBQUEaMXKk2rVv7yzTr1+Ezp87r149e8pqtSg8vJuaNHlaqampzjJt2jyjlJRUzZwx XSOGD5O/v79at2mjAQMGGm2vu+1xZ706d+mixKQkjRsXqXPnzikoKEjh4d3ULyLCZXkNGzZUu/bt NeC1vyolJUX33HOPRox8XWXKlHVr3a9evapBAwfo5Vde0QO1a0uSHn3sMfXs2UsDB7ymNWu/ULFi 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 gAEAAADAGAIGAAAAAGMIGAAAAACMIWAAAAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwhYAAAAAAw hoABAAAAwBgCBgAAAABjCBgAAAAAjCFgAAAAADCGgAEAAADAGAIGAAAAAGMIGAAAAACMIWAAAAAA MIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwhYAAAAAAwhoABAAAAwBgCBgAAAABjCBgAAAAAjCFgAAAA ADCGgAEAAADAGAIGAAAAAGMIGAAAAACMIWAAAAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwhYAAA AAAwhoABAAAAwBgCBgAAAABjCBgAAAAAjCFgAAAAADCGgAEAAADAGAIGAAAAAGMIGAAAAACMIWAA AAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwhYAAAAAAwhoABAAAAwBgCBgAAAABjCBgAAAAAjCFg AAAAADCGgAEAAADAGAIGAAAAAGMIGAAAAACMIWAAAAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwh YAAAAAAwhoABAAAAwBgCBgAAAABjCBgAAAAAjCFgAAAAADCGgAEAAADAGAIGAAAAAGMIGAAAAACM IWAAAAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwhYAAAAAAwhoABAAAAwBgCBgAAAABjCBgAAAAA jCFgAAAAADCGgAEAAADAGAIGAAAAAGMIGAAAAACMIWAAAAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAA AIwhYAAAAAAwhoABAAAAwBgCBgAAAABjCBgAAAAAjCFgAAAAADCGgAEAAADAGAIGAAAAAGMIGAAA AACMIWAAAAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwhYAAAAAAwhoABAAAAwBgCBgAAAABjCBgA AAAAjCFgAAAAADCGgAEAAADAGAIGAAAAAGMIGAAAAACMIWAAAAAAMIaAAQAAAMAYAgYAAAAAYwgY AAAAAIwhYAAAAAAwhoABAAAAwBgCBgAAAABjCBgAAAAAjCFgAAAAADCGgAEAAADAGAIGAAAAAGMI GAAAAACMIWAAAAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwhYAAAAAAwhoABAAAAwBgCBgAAAABj CBgAAAAAjCFgAAAAADCGgAEAAADAGAIGAAAAAGMIGAAAAACMIWAAAAAAMIaAAQAAAMAYAgYAAAAA YwgYAAAAAIwhYAAAAAAwhoABAAAAwBgCBgAAAABjCBgAAAAAjCFgAAAAADCGgAEAAADAGAIGAAAA AGMIGAAAAACMIWAAAAAABYyvr69b0+4EAgYAAABQwDz00ENZpj388MN5smzPPFkKAAAAgDzTpHFj WST9+/vvJUkPP/SQGoeG5smyCRgAAABAAePh4aGmTZuqadOmeb5shkgBAAAAMIaAAQAAAMAYAgYA AAAAYwgYAAAAAIwhYAAAAAAwhoABAAAAwBgCBgAAAABjCBgAAAAAjCFgAAAAADCGgAEAAADAGAIG AAAAAGMIGAAAAACMIWAAAAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwhYAAAAAAwhoABAAAAwBgC BgAAAABjCBgAAAAAjCFgAAAAADCGgAEAAADAGAIGAAAAAGMIGAAAAACMIWAAAAAAMIaAAQAAAMAY AgYAAAAAYwgYAAAAAIwhYAAAAAAwhoABAAAAwBgCBgAAAABjCBgAAAAAjCFgAAAAADCGgAEAAADA GAIGAAAAAGMIGAAAAACMIWAAAAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwhYAAAAAAwhoABAAAA wBgCBgAAAABjCBgAAAAAjCFgAAAAADCGgAEAAADAGAIGAAAAAGMIGAAAAACMIWAAAAAAMIaAAQAA AMAYAgYAAAAAYwgYAAAAAIwhYAAAAAAwhoABAAAAwBgCBgAAAABjCBgAAAAAjCFgAAAAADCGgAEA AADAGAIGAAAAAGMIGAAAAACMIWAAAAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwhYAAAAAAwhoAB AAAAwBgCBgAAAABjCBgAAAAAjCFgAAAAADCGgAEAAADAGAIGAAAAAGMIGAAAAACMIWAAAAAAMIaA AQAAAMAYAgYAAAAAYwgYAAAAAIwhYAAAAAAwhoABAAAAwBgCBgAAAABjCBgAAAAAjCFgAAAAADCG gAEAAADAGAIGAAAAAGMIGAAAAACMIWAAAAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwhYAAAAAAw hoABAAAAwBgCBgAAAABjCBgAAAAAjCFgAAAAADCGgAEAAADAGAIGAAAAAGMIGAAAAACMIWAAAAAA MIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwhYAAAAAAwhoABAAAAwBgCBgAAAABjCBgAAAAAjCFgAAAA ADCGgAEAAADAGAIGAAAAAGMIGAAAAACMIWAAAAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwhYAAA AAAwhoABAAAAwBgCBgAAAABjCBgAAAAAjCFgAAAAADCGgAEAAADAGAIGAAAAAGMIGAAAAACMIWAA AAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwhYAAAAAAwhoABAAAAwBgCBgAAAABjCBgAAAAAjCFg AAAAADCGgAEAAADAGAIGAAAAAGMIGAAAAACMIWAAAAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwh YAAAAAAwhoABAAAAwBgCBgAAAABjCBgAAAAAjCFgAAAAADCGgAEAAADAGAIGAAAAAGMIGAAAAACM IWAAAAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwhYAAAAAAwhoABAAAAwBgCBgAAAABjCBgAAAAA jCFgAAAAADCGgAEAAADAGAIGAAAAAGMIGAAAAACMIWAAAAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAA AIwhYAAAAAAwhoABAAAAwBgCBgAAAABjCBgAAAAAjCFgAAAAADCGgAEAAADAGAIGAAAAAGMIGAAA AACMIWAAAAAAMIaAAQAAAMAYAgYAAAAAYwgYAAAAAIwhYAAAAAAwxkjAsFgsDovF4jBRFwAAAIC7 F1cwAAAAABhDwAAAAABgDAEDAAAAgDEEDAAAAOBPzuQ91QQMAAAAAMbkKmBcunTJIUkeHh6O5ORk h9Vq5clRAAAAQAFitVodycnJDg8Pj9s61ucKBgAAAABjCBgAAAAAjCFgAAAAADDGrYCxb98+eXt7 c78FAAAA8Cdz/T5sd3EFAwAAAIAxOQYMX19frlwAAAAAf2Le3t6Offv2uZUNuIIBAAAAwJhsA0Zk ZKSjZs2ajoCAAK5eAAAAAHAKCAhw1KxZ0xEZGZltVvA0vUBfX1+dO3fupvMTEhJMLxIAAADAbQgO DjZep/GAce7cOR04cMB0tQAAAAAMmzJlivE6C9w9GC1atDBSJq+dOXNGoaGhatu2bX43xYidO3fq hRdeUNOmTRUWFqYuXbro6NGjua5n9+7dCg0NVd++fbPM27x5s0JDQ52f7Mr80RW0fr+V5ORkl/5a v379bZXJrT179igsLEyHDh363XXdaQcPHlTz5s21Z8+e/G7KHZGbvhg7dqzefvvtPGhV3vrss88U Hh6ujIyM/G7K75aZmanQ0FCtXLkyyzyT+3tB3y+AgihfA0aLFi0UExPjMi0mJibXAcDhcGjVqlX6 +eefVbJkSV26dEmfffZZrssUZCkpKQoLC8uyve+Ey5cva8yYMTp27Jg6dOigiIgItWvXTsWKFct1 XUFBQerZs6eeeeaZLPNq1aqlESNG6PnnnzfR7D+UvOwvk1auXKnQ0FAtWrQoyzxvb29t3LhRGzdu VPHixbP9vTtlciMpKUkTJkxQz549VbVq1WzLpKamqlevXho9evRtL2f16tXq2bOnwsLC1LVrVy1e vFh2uz3Xy6pWrZq6d++uiRMnKiUl5bbb80fkTl/caTExMS4HtL/9uLu/nT59WmFhYYqLi3OZvn79 eoWFhenMmTPZ/i4pKUlLly7Viy++KE9PTyUkJCg0NFRdu3aVw/HrMOb+/fsrNDRUycnJkqS+ffs6 29ikSRN17dpVH3zwga5cueJS9/Tp09WlSxc1bdpU7du315QpU5SUlJSrbTRt2rRst012/y9brVYN HTpU9evXzzLP5P5ekPcLoKAyPkQqP6SkpOjq1at68803FR8frzFjxuihhx5SamqqvLy83C5TkO3Y sUOpqal5sqwTJ04oLS1NVatWVf/+/X9XXUFBQerVq1e284KDgxUcHKzdu3dr+fLlv2s52bHb7bJa 8yeD52V/mbRx40bdf//92rRpk3r16iWLxeIyv3DhwjnW4U4Zd33++eeSpGeffTbLvKSkJP3www+a P3++fvnlF5UtW/a2lhEXF6ePPvpII0eO1P33368DBw7o7bffVpEiRfTcc8/lelmdO3fW6tWrtWbN GufvC4Jb9UVeadmypf7yl79Iko4ePapRo0YpKipK5cuXlyS3Q23ZsmXVt29fzZ49Ww0aNFCpUqX0 888/a86cOXrxxRdVpkyZbH+3bNkyBQcH68knn3SZbrPZtGfPHtWuXVsnT57MNqCEhYWpT58+ysjI 0IkTJzRr1iwdOXJEM2bMkCS9++67OnLkiMaMGaOyZcvq+PHjmjhxohISEjR27Fi3t5EklS9fXlFR US7Tsvu30GKxqFWrVjetx+T+XlD3C6Cg8pR0493flpsVzG+bN2/WxIkT9cYbb6hp06Yu87y9vdW3 b19dvnxZ3t7eqlChQpbhMu6UyUtXrlzR+PHjtWfPHpUrV05du3bNUiYzM1NLly5VXFycLl++LD8/ Pz3++ON66aWX5O3t7SwXGxurlStX6sKFCypdurSaNWum7t27y8PDQ5LUu3dvHT9+XJI0a9YszZo1 S5L03nvvqW7dus5lrVy5Ulu2bNHZs2dVvHhxtWvXTs8//7wsFouOHTum/v37y9PTU4sWLVJAQIDO nj2rPn36yGq1au7cubJYLOrWrZuzXYcOHVJoaKjz+8aNG1W4cGGlpqZq/vz52r59u65cuaLAwEB1 6dJFrVu3dpa93t/XVa5cWfPnz8/VNs7MzNTTTz8t6dpBoLe3t44dO6Y+ffronnvu0YoVKyRJ0dHR mj17tp599llVr15dixYt0rlz51SsWDGtXbvWre3jLnf6Paf+cqcvbvdg+fc4ePCgTpw4oUWLFqlv 377OA6b84nA49Pnnn6tz587y9Mx6LiU8PFz+/v569tlntWvXLufZ4tw6ffq0nn/+eT311FOSpICA AD3++OPatWuX80AoN8sqXLiw2rZtq5iYGHXp0iVXf7/+qHLqi/T0dM2YMUPbt2+XJDVr1szljP71 OlatWqU1a9bo8uXLCgoKUqtWrdSxY0eXg981a9Zo3bp1OnPmjPz9/dWsWTP16NFDVqtVPj4+8vHx kST997//lSSVKlVKQUFBWdoUHR2t2NhYXbhwQX5+furUqZM6derk7I8OHTpo+/btmjp1qt5++21N nTpVlSpVUvv27bPdBj///LM+++wzRUVFZenTRx55RBs3blTt2rX1t7/9TXXr1tU//vEPlzJFihRR QECApGsnV+x2u0aNGqX4+HgFBATohx9+UMeOHXX//fdLkh588EENHz5cp06dyr5TbsHT0zPbbXLd gQMHFBER4fweERGhLl265Ho5uVEQ9wugAHL+w11g7sH44YcfdOLECb377rvau3ev/vOf/9xWmbwy YcIE/fvf/9YDDzygVq1aafHixVnKTJ06VR9//LFKly6tF154QWXKlNGaNWsUGRnpLLNq1SpNmTJF Hh4e6tOnjwIDA/Xxxx/rww8/dJbp27ev6tSpI0lq0qSJRowYoREjRqhChQrOMrNnz9a8efMUHBys kSNHqn79+po3b54WLlwoSapYsaJeeeUVJSYm6p133pHdbtfkyZOVmpqqgQMHqmzZsipZsqRGjBjh PKgKDg52LmvEiBHOA4uPPvpIMTExqlixogYNGqTk5GRNmTJF+/btc7YnL4c/VaxYUZL07bffatKk SfL19VXr1q1dzjLmtH3c5U6/59Rf7vRFftiwYYPq1KmjkJAQNWjQQBs3bsyXdlx38OBBXb58WQ0a NMh2fnR0tBYsWKCwsLDftZyXXnpJPXv2dJl29uxZ+fv73/ayHn30UV26dOm27lv6I8qpL1auXKmv v/5aH3zwgVatWqXAwED961//cikTFxenJUuWaNiwYVq/fr0GDx6sxYsXO08USNIXX3yhBQsWqG/f voqOjtaoUaO0bt26bIfs3crnn3+uTz/9VMOGDVNcXJwiIyO1fPlyrVmzxlnGarVq+PDh2rVrlyIj I/Xvf/9bI0aMuOlVzwULFuihhx5y7ts3aty4sf7xj38oJSVFmzdvdl5luZXrB9jXl1ehQgX9/e9/ 1+nTp51l6tatq3bt2uVq3d1RrVo159CmO/H0mZspaPsFUJDdNUOkGjZsqIULFyowMDDb+Q8++KDz QHvatGkuZ/hzUyYvxMfHa9euXbJarRozZoz8/Pzk5+enCRMmOMtcunRJGzZskIeHhyZNmiQ/Pz+1 bt1a7du3186dO3Xx4kUFBATok08+kSSNGjVKVatWVcuWLTVjxgylpKTI4XDIYrGoUaNG2rFjh3bv 3q0aNWpkOchJSEjQ2rVr5enpqZEjR8rLy0sNGzbUjz/+qJiYGHXr1k1eXl5q06aNdu3apS+//FJD hw7Vjz/+qObNm6tZs2aSJB8fH4WFhWnXrl1asWKFSpQoke0BVdOmTdWoUSNVrlxZJUqU0JEjRxQT E6Mff/zRefbtTg9/ulGJEiUkXTsT3bZtWw0cOPC2tk9O3Ol3STn2l6Qc+yKvZWRkaOvWrc4hcU2a NNG7776r1157Ld+GIB49elQeHh4uQfpG2Z1JN2HJkiU6duyYRo0addvLqlKliqxWq44cOaLKlSub bmKey6kv/v73v6tZs2bO+Z06dXJePbwuOjparVq10sMPPyxJql27tlq2bKm4uDjnlcDo6Gi1bNlS jz32mCTp/vvv19ixY5WYmJir9q5evVrt27dXrVq1JEk1atRQx44dtXbtWpcrFGXLllWPHj00b968 Ww6NOnr0qLZs2aK5c+dmO79atWoKDAzUkiVLVLRoUdWoUeOmbXM4HDp58qQWLlyo2rVrq1SpUpKk YcOGKSoqSt27d1dISIjq1q2rJk2aOP9NNclisTiHNuXllYSCtl8ABdldEzCKFi3qPNN8M9cPZG4V HHIqM2fOHK1atcr5vXPnzr/7PoLfuv6ekJIlS8rPz0+SdN9997mUOXnypOx2u4KCgpxlihUrpoCA AJ07d06nT5+WxWKRzWaTxWJRpUqVJF0bQ3zjgY07Tpw4oczMTEnK9mbqc+fOOf/jHzp0qPbv36/v v/9ewcHBWQ7G3WGxWLR8+XIdOXJEKSkpzqep5PZmRFOuDyWTrg1P+q3cbJ9bcaffc8NEX5jy7bff KjU1VU888YQk6bHHHpPD4dDXX3+txo0b50ub/vvf/8rX1zfPDoAcDofmzp2rdevWaeLEib/rzK7V alXx4sWdw3judjn1xcWLF7McnN/43W6368yZM6pSpYpLmSpVquizzz5z3lB/5syZLPtibofp2e12 nT17VosWLcpy5SO7+wW+//57eXl56fvvv892yKN07apt06ZNb/l/WPPmzbVw4cKb3nMWGxurDRs2 KDMzU5mZmWrUqJHLPh8cHKxp06bp/Pnz+v777/XNN9/otdde0zPPPKMBAwa4sea/Onr0aJaTFbVq 1dLUqVNzVY9pBW2/AAqyfA0YVqs1y6P60tLSXA748lqXLl1czhhfPxC80272ZIzf/od8fVyyxWLJ 9ik1N/Pb8czZ8fHx0bvvvptl+o1XjS5duqSrV69Kkn755RfFx8erXLlybrcjIyNDI0aM0NWrVzV0 6FA9+OCDWr58eZansZh2ff3T09NvWqZEiRK37G93tk9u3azf3emv39sXJm3YsEHp6enq3Lmzc1pq aqo2bdqUbwFDyruzq+np6ZowYYKOHj2qWbNmOW8a/j3c+TtwN7lVXzgcjiz/nv22/M1+7+XlJavV KrvdLg8Pj9+93axWqwoXLqyIiIgcHx8dGxurAwcOaPbs2Ro4cKBiY2Nd7iWTrgWQH374QUuXLr1l XU2bNtV3332npk2bKi0tLcv80NBQ9ezZU1arVX5+fs57SX4rKChILVq0UIsWLRQbG6spU6aoU6dO N726kp1y5cpp/PjxLtOKFCni9u/vpIK2XwAFVb7eg1GiRAmdP3/eZdrp06dVunTpLGUTExN17Nix XF/qzi1/f39VrFjR+blxHLUp12+eu3z5si5fvixJ2r9/v0uZkJAQWa1WxcfHOw8ibTabfv75Z1ks FpUvX14BAQHy8fGRw+HQ4cOHJV17rviAAQM0ePBgl/B2/T/n7EJJhQoV5OHhoaSkJBUvXlw1a9ZU zZo1lZqaKqvV6rzqk56ernHjkSzhBAAAHKJJREFUxik9PV19+vRRWlqaxo8fn6vnuZ86dUpXr15V kSJF1KpVK5UtW1YXL16UZP4/Dg8PD2fb4+PjJemW993cbCiPu9vnugsXLmj//v26cOGCy3R3+v26 W/WXZKYvTLly5Yp27typ4cOHa/78+c7P8OHD9d133+mXX37J8zZJ104OXL169Y4fkGRkZOjNN9/U zz//rNmzZxsJF3a7XTabLc9OcNxpOfXF9Suz19ntdh05csT53Wq1qmzZslnen3H48GFnqLZarSpT pozzAQnX/d///Z9iY2Nz1d6QkJAsL4z95ZdfXJ7sdvHiRc2ZM0evvPKKKlWqpJdffllz5sxx/nsm Xfs37cMPP1THjh2dN2jfTKlSpTRlypSblitatKjKlCmj4ODgLOHi0KFDGjhwYJYz+9WrV5eU+6vD hQoVUkhIiMvn95xIMaWg7RdAQZavAePpp5/W1q1b9dVXX+nkyZPatGmTtm3bluUMkCR988036tOn j7755pt8aKlZgYGBevjhh2W32/XWW29pxYoVWV5UVKpUKYWFhSkjI0OjR49WTEyMRo8erYyMDIWG hsrf319Wq9V5E/SkSZMUHR2t0aNH68cff1RISIjLuO/rZ6/i4uK0du1arVmzxrktixYtqjZt2kiS Ro8erc8//1xTp07V4MGDNXfuXOdNhB9++KGOHj2qjh07qnv37mrdurUOHTp003HF2SldurQ8PT2V kpKizz//XLNnz3Ye/O/evVsHDx5UUlKSNmzYoA0bNjhv9LTZbM5pp06dcquM9OsQpGnTpmnt2rX6 4osvctFTytX2uS46OlqvvPKKoqOjXaa70+/X3aq/JDN9YcrmzZvl7e2tJk2aKCgoyPlp0qSJihYt qq1bt0q6dnXy+ke69mSu69+vH3i6U8ZdVapUUWZmZpYDzutSU1OVnJys5ORkZWZmym63O7/fGOwy MjIUFhamnj17ZtuGJUuW6MCBAxo9erQsFosSEhKUkJDgcjLE3WVdd/jwYdnt9ixDgu5WOfXF448/ rk2bNunQoUNKTEzUxx9/nOUxzR06dFBcXJz27Nkju92uH3/8UXFxcerUqZOzTKdOnRQXF6edO3cq NTVVBw4cUFRUlH7++edctbdz587asmWLvvzyS+djYYcOHeryJLt3331XNWvWVPPmzSVde4xszZo1 Xa5ybt26VefOnbvp0ClTypYtq7Nnz2rMmDHat2+fLl26pJ9++kmzZ89WuXLlchxenFvp6eku++Xt 7su53d8L2n4BFGT5OkQqPDxcycnJmjFjhq5cuaKAgAB17dr1po/5K0hGjRqlyMhI7d+/XwkJCRo0 aJCGDBnicgZ60KBBKlWqlOLi4vThhx/K399fXbp0UZ8+fZxlwsPD5ePjo5iYGM2dO1eBgYHq0aOH unfv7rK8du3a6dixY84ntXh5eSk8PFwNGzaUJL366qsKDg5WXFyc5s6dq5IlS6pTp07q3bu3LBaL du7cqdWrV6tcuXLOx/tGREToX//6l2JiYlSvXj098sgjOa63r6+vhg4dqoULF2ru3Ll69NFH9cEH H2j06NE6cOCAtm/frhYtWmjy5Mkuv7t48aJz2qBBg1S3bt0cy5QrV04DBw5UVFSU9u/fr/T0dA0b NkwRERG3HCqVnZy2j7vc6Xfp1v1lqi9M2bhxo5544oksNzJ7enrqySef1MaNG9WhQwfngdh177// vt5//31J0sKFCxUSEpJjmdwcKFWpUkX+/v7auXNntr978cUXszzCs2XLlpKkyZMnO7fh/v37lZqa qs6dO2fb12vWrJHNZstyEFm0aFHnmXN3l3Xdjh07VLp0aee9VXe7nPoiPDxc8fHxGjJkiKxWq9q2 batGjRq5DBVq1aqVrly5onfeeUe//PKLAgICFBER4XKvQOvWrZWcnKzp06c7H4TRrl27XB/gN2nS RKmpqfr4448VFRUlPz8/Pf300877I9atW6c9e/ZkuUdj8ODB6t27t2JjYxUWFqYFCxaoe/fuKlq0 aK6Wn1ve3t6aNm2aFixYoLFjx+rKlSvy9fVVgwYNNHLkSOMPNHjmmWdchnfOmzdP8+bNkyRNnz7d JXhdZ2J/L2j7BVCQ/fZ/S+f3sWPHWvbv32+Jj4+3XLx40Vq+fHnLxYsXPYoUKeJhsVg87XZ7ocKF Cxe22+3eHh4ePg6Hw9dut/uvWLFi7W8vLQNAfli2bJm++OILLVu27LYPspYsWaI1a9Zo5cqVKlSo kOEWZpWWlqauXbuqU6dOBeqFYib6An9eBXW/AP4IYmNj9d1337W1Wq2/WCwWW2ZmZpLVak1OS0tL s1qt6Q6HIyMlJSUzMDAw88SJE47AwEB7QECAo2bNmo7IyMgbLzcWvPdgAMBvXb8aGhMTc9t17N69 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 zP8DcVxAK2kcaZQAAAAASUVORK5CYII= --nextPart3262199.NWTHT7Wp6s-- --nextPart3591875.R4orCr9ueW Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part. Content-Transfer-Encoding: 7Bit -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE1/uTv8+wAU8hvYZOE7WYy8/T98EFAlylr5sACgkQE7WYy8/T 98FgbhAApS8ctB/bIvxCtLD5JjVlMpFXAcyTA2aK88qPoi7+x0XonEbn2pgRc4+1 hCHRGkiJxhyIHcd0+esIZ4umsz4flVut7BDXJuhy6ixyQeObcI/tpXwQRDBXa5qA LmTMNo+2DBbqI/89d+E7i5ePlsJ/gGShlTyH7TdBRpR+FyOZGgMMb9mbLZb/HotM F8rf2qzfflFZf+zMLjp3/l6cmWeLzGvKp/m5y/JdAL5lDEZtSE6X5jJZMo58axvn N+6zjxwM+JfB9IhCchHPPiE6h06U7/wP/lN7nMRmStpsrqSsbMl+Y1UmLBMEGTqe 7O+4/CHT5g62yv8fyNJcnxIUPP3qJNH2xefaM7c48W5RgFElsFutgysXPmUwTiYa +f/f9sBbGAjCQRJIbrhhIKD6PgNxGMbWX2C3YG7qmwByR++t2wfyKi6cD5I8++IU 3UUJrBxZK/67ay/KB4IraBksu9xhLioSBqHUjH8iA51FiV8OBx+7eLxkDY0NehTI nKp5mUWL0c10j++RcxHSL2b05jmWvfUcweSWgLQfUhD67tWodK6gswBRvT7gcLB0 GiFzcpTRkTe/Znr867+K6SMiglCDdaBl70N9aBPgYUcUvFtt8jk4gcHejjkO2rPg 5ER0iRYRzU5oqeUdrtCNOWBTeXLxy07AOAuEiTWxd0jLMZSJN38= =jrE9 -----END PGP SIGNATURE----- --nextPart3591875.R4orCr9ueW-- From unknown Sun Aug 17 10:22:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#35140: 12.1; Scan errors in doctex mode with ^^A-comments after braces Resent-From: Ikumi Keita Original-Sender: "Debbugs-submit" Resent-CC: bug-auctex@gnu.org Resent-Date: Tue, 07 May 2019 03:40:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 35140 X-GNU-PR-Package: auctex X-GNU-PR-Keywords: To: auctex-devel@gnu.org Cc: Markus Kohm , 35140@debbugs.gnu.org Received: via spool by 35140-submit@debbugs.gnu.org id=B35140.15572003817044 (code B ref 35140); Tue, 07 May 2019 03:40:02 +0000 Received: (at 35140) by debbugs.gnu.org; 7 May 2019 03:39:41 +0000 Received: from localhost ([127.0.0.1]:58032 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hNqxA-0001pX-AC for submit@debbugs.gnu.org; Mon, 06 May 2019 23:39:40 -0400 Received: from smtp1.inetd.co.jp ([210.129.88.11]:49436) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hNqx8-0001pL-In for 35140@debbugs.gnu.org; Mon, 06 May 2019 23:39:39 -0400 Received: from localhost (p112060-ipngn2101yosida.nagano.ocn.ne.jp [180.13.196.60]) by smtp1.inetd.co.jp (Postfix) with ESMTPA id C88B69F; Tue, 7 May 2019 12:39:35 +0900 (JST) From: Ikumi Keita In-reply-to: <1990475.NB1R35vEMU@komascript.de> References: <1990475.NB1R35vEMU@komascript.de> Comments: In-reply-to Markus Kohm message dated "Thu, 04 Apr 2019 09:17:47 +0200." X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 26.2 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Date: Tue, 07 May 2019 12:39:35 +0900 Message-ID: <25610.1557200375@localhost> X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Hi Markus and all developpers, >>>>> Markus Kohm writes: > The LaTeX package doc, that is usually used via class ltxdoc for the > documentation part of dtx-files, declares ^^A as comment character. > But auctex's doctex mode fails scanning for balanced {...} pairs, if > } is immediately followed by ^^A. You can test it, with this example file: The reason of this error is the syntax-table property put on the closing curly brace. In order to achieve different fontification on the docTeX documentation and the comment after ^^A, the function `font-latex-doctex-^^A' puts the "comment ender" syntax on the closing "}", which hides the proper syntax "closing paren paired with {" and thus leads to the reported error. Actually, `font-latex-doctex-^^A' is essentially just a copy of `doctex-font-lock-^^A' in `tex-mode.el', so the emacs built-in doctex-mode shares exactly the same problem with respect to the given test file at double-clicking. It was hard to me to resolve this problem keeping the closing "}" having "comment ender" syntax, so my proposal is to borrow an idea used at fontifying the verbatim-like environments. I.e, to shift the position of "comment ender" syntax 1 character rightward and put another "comment starter" syntax on the second, not the first, "^" of ^^A. The wrong fontification which the first "^" receives is overwrote afterwards by an additional entry in `font-latex-doctex-keywords'. See the attached patch. Strictly speaking, this patch sets the boundary of two different types of comments in "SOMETHING^^A" at wrong position, not between "G" and the first "^", but between the first and second "^". However, the treatment of comments of AUCTeX is rather regexp centric and slight in syntax, I expect this change doesn't bring serious bad side effects at editing docTeX documents such as filling and indenting. How do you think about this idea? Any comments are appreciated. Regards, Ikumi Keita > --- test.dtx --- > % \begin{macro}{\test}^^A This is an official dtx-comment > % This does not work. Try to double-click to the closing brace before the > % comment and you will get: |Scan error: "Unbalanced parantheses", 22, 22| > % \end{macro} > % > % \begin{macro}{\test}%^^A This is a workaround for an official dtx-comment > % This does work, but the \% after the closing brace is not wanted. > % \end{macro} > % \endinput > % Local Variables: > % mode: doctex > % TeX-master: t > % End: > --- end of file --- --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Improve-comment-syntax-handling-in-docTeX-mode.patch Content-Description: shift comment boundary >From af36beb67d385dcb9afbca107248d16e3be3e2b7 Mon Sep 17 00:00:00 2001 From: Ikumi Keita Date: Fri, 3 May 2019 14:59:50 +0900 Subject: [PATCH] Improve comment syntax handling in docTeX mode * font-latex.el (font-latex-set-syntactic-keywords): (font-latex-doctex-^^A): Assign comment ender syntax to the first "^" of ^^A, not its preceding character. Begin style b comment with the second "^". These fix bug#35140. (font-latex-doctex-keywords): Add an entry so as to give the correct fontification to the first "^" above. (font-latex-find-matching-close): Add comments. --- font-latex.el | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/font-latex.el b/font-latex.el index 486f39fe..cf84f261 100644 --- a/font-latex.el +++ b/font-latex.el @@ -1053,7 +1053,7 @@ have changed." (setq font-latex-doctex-syntactic-keywords (append font-latex-syntactic-keywords ;; For docTeX comment-in-doc. - `(("\\(\\^\\)\\^A" (1 (font-latex-doctex-^^A))))))) + '(("\\^\\(\\^\\)A" (1 (font-latex-doctex-^^A))))))) ;;; Syntactic fontification @@ -1464,6 +1464,10 @@ ignored during the search." ;; XXX: Do not look up syntax-table properties since they may ;; be misleading, e.g. in the case of "{foo}^^A" where the ;; closing brace gets a comment end syntax. + ;; (Comment added on May 2019): This particular example is no + ;; longer a problem with the modification on + ;; `font-latex-doctex-^^A'. Not sure there are other cases + ;; that we can not rely on syntax property. (parse-sexp-lookup-properties nil)) (or (condition-case nil @@ -2173,27 +2177,32 @@ END marks boundaries for searching for quotation ends." (defvar font-latex-doctex-keywords (append font-latex-keywords-2 - '(("^%<[^>]*>" (0 font-latex-doctex-preprocessor-face t))))) + '(("^%<[^>]*>" (0 font-latex-doctex-preprocessor-face t)) + ("\\(\\^\\)\\^A" (1 (get-text-property (match-end 1) 'face) t))))) ;; Copy and adaptation of `doctex-font-lock-^^A' in `tex-mode.el' of ;; CVS Emacs (March 2004) (defun font-latex-doctex-^^A () (if (eq (char-after (line-beginning-position)) ?\%) (progn + ;; Assign comment ender syntax to the first "^" of ^^A. It + ;; used to be assigned to the character just before the "^", + ;; but that sometimes caused trouble because the closing brace + ;; in "{foo}^^A" didn't get the close paren syntax. See + ;; comment in `font-latex-find-matching-close' and bug#35140. + ;; There is a hack in `font-latex-doctex-keywords' to restore + ;; the correct fontification of this "^". (put-text-property - (1- (match-beginning 1)) (match-beginning 1) 'syntax-table - (if (= (1+ (line-beginning-position)) (match-beginning 1)) - ;; The `%' is a single-char comment, which Emacs - ;; syntax-table can't deal with. We could turn it - ;; into a non-comment, or use `\n%' or `%^' as the comment. - ;; Instead, we include it in the ^^A comment. - (eval-when-compile (string-to-syntax "< b")) - (eval-when-compile (string-to-syntax ">")))) + (match-beginning 0) (match-beginning 1) 'syntax-table + (eval-when-compile (string-to-syntax ">"))) + ;; Make the EOL as the boundary of the style b comment which + ;; begins with ^^A. (let ((end (line-end-position))) (if (< end (point-max)) (put-text-property end (1+ end) 'syntax-table (eval-when-compile (string-to-syntax "> b"))))) + ;; Begin style b comment with the second "^" of ^^A. (eval-when-compile (string-to-syntax "< b"))))) ;; Copy and adaptation of `doctex-font-lock-syntactic-face-function' -- 2.21.0 --=-=-=-- From unknown Sun Aug 17 10:22:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#35140: 12.1; Scan errors in doctex mode with ^^A-comments after braces Resent-From: Ikumi Keita Original-Sender: "Debbugs-submit" Resent-CC: bug-auctex@gnu.org Resent-Date: Tue, 01 Mar 2022 09:35:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 35140 X-GNU-PR-Package: auctex X-GNU-PR-Keywords: To: 35140@debbugs.gnu.org Cc: Markus Kohm Received: via spool by 35140-submit@debbugs.gnu.org id=B35140.16461272978726 (code B ref 35140); Tue, 01 Mar 2022 09:35:01 +0000 Received: (at 35140) by debbugs.gnu.org; 1 Mar 2022 09:34:57 +0000 Received: from localhost ([127.0.0.1]:35446 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nOyuG-0002Gg-O6 for submit@debbugs.gnu.org; Tue, 01 Mar 2022 04:34:57 -0500 Received: from smtp1a.inetd.co.jp ([210.129.88.11]:33382) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nOyuE-0002GT-UC for 35140@debbugs.gnu.org; Tue, 01 Mar 2022 04:34:56 -0500 Received: from localhost (61-24-188-3.rev.home.ne.jp [61.24.188.3]) by smtp1a.inetd.co.jp (Postfix) with ESMTPA id E1C9D2DC; Tue, 1 Mar 2022 18:34:52 +0900 (JST) From: Ikumi Keita In-reply-to: <25610.1557200375@localhost> References: <1990475.NB1R35vEMU@komascript.de> <25610.1557200375@localhost> Comments: In-reply-to Ikumi Keita message dated "Tue, 07 May 2019 12:39:35 +0900." X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 27.2 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Date: Tue, 01 Mar 2022 18:34:51 +0900 Message-ID: <12115.1646127291@localhost> X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Hello Markus and all developpers, I'd like to discuss this issue again. After reconsideration, I came to think that there is little point in discriminating two kinds of comments, i.e. those after "%" and those after "^^A", as long as AUCTeX is concerned. It requires complicated operation in syntax propertization (`font-latex-doctex-^^A') whereas it calls for unwanted troubles like this bug#35140 and comments written in `font-latex-find-matching-close': ,---- | ;; XXX: Do not look up syntax-table properties since they may | ;; be misleading, e.g. in the case of "{foo}^^A" where the | ;; closing brace gets a comment end syntax. `---- Thus I'm inclined to an idea just to fontify "^^A" type comments with normal comment face, not bothering with changing its syntax. Attached is a patch that implements this idea. What do others think about this? Regards, Ikumi Keita #StandWithUkraine #StopWarInUkraine --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=patch Content-Description: tentative patch diff --git a/font-latex.el b/font-latex.el index 8b1fec60..1a83db08 100644 --- a/font-latex.el +++ b/font-latex.el @@ -1091,11 +1091,12 @@ have changed." (1 "|") (2 "|"))))) (when font-latex-syntactic-keywords-extra (nconc font-latex-syntactic-keywords font-latex-syntactic-keywords-extra)) - ;; Cater for docTeX mode. - (setq font-latex-doctex-syntactic-keywords - (append font-latex-syntactic-keywords - ;; For docTeX comment-in-doc. - '(("\\(\\^\\)\\^A" (1 (font-latex-doctex-^^A))))))) + ;; ;; Cater for docTeX mode. + ;; (setq font-latex-doctex-syntactic-keywords + ;; (append font-latex-syntactic-keywords + ;; ;; For docTeX comment-in-doc. + ;; '(("\\(\\^\\)\\^A" (1 (font-latex-doctex-^^A)))))) + ) ;;; Syntactic fontification @@ -1262,9 +1263,9 @@ triggers Font Lock to recognize the change." "The `syntax-propertize-function' for (La)TeX documents." (with-no-warnings (let ((font-lock-syntactic-keywords - (if (derived-mode-p 'doctex-mode) - font-latex-doctex-syntactic-keywords - font-latex-syntactic-keywords))) + ;; (if (derived-mode-p 'doctex-mode) + ;; font-latex-doctex-syntactic-keywords + font-latex-syntactic-keywords));) (font-lock-fontify-syntactic-keywords-region start end)))) ;;;###autoload @@ -2251,32 +2252,26 @@ set to french, and >>german<< (and 8-bit) are used if set to german." :group 'font-latex-highlighting-faces) (defvar font-latex-doctex-keywords - (append font-latex-keywords-2 + (append '((font-latex-doctex-match-^^A 0 font-lock-comment-face t)) + font-latex-keywords-2 '(("^%<[^>]*>" (0 font-latex-doctex-preprocessor-face t))))) -;; Copy and adaptation of `doctex-font-lock-^^A' in `tex-mode.el' of -;; CVS Emacs (March 2004) -(defun font-latex-doctex-^^A () - (if (eq (char-after (line-beginning-position)) ?\%) - (progn - (put-text-property - (1- (match-beginning 1)) (match-beginning 1) 'syntax-table - (if (= (1+ (line-beginning-position)) (match-beginning 1)) - ;; The `%' is a single-char comment, which Emacs - ;; syntax-table can't deal with. We could turn it - ;; into a non-comment, or use `\n%' or `%^' as the comment. - ;; Instead, we include it in the ^^A comment. - (eval-when-compile (string-to-syntax "< b")) - ;; FIXME: Those `eval-when-compile' shouldn't be needed any - ;; more since the byte-compiler will precompute those calls - ;; anyway (because `string-to-syntax' is marked as pure). - (eval-when-compile (string-to-syntax ">")))) - (let ((end (line-end-position))) - (if (< end (point-max)) - (put-text-property end (1+ end) 'syntax-table - (eval-when-compile - (string-to-syntax "> b"))))) - (eval-when-compile (string-to-syntax "< b"))))) +(defun font-latex-doctex-match-^^A (limit) + "In docTeX mode, match comment started by ^^A before LIMIT." + (catch 'found + (while (TeX-search-forward-unescaped "^^A" limit t) + (when (eq (char-after (line-beginning-position)) ?\%) + (forward-line 1) + ;; Adjust `font-latex--updated-region-end' if necessary. + (let ((p (point))) + (if (< font-latex--updated-region-end limit) + (setq font-latex--updated-region-end limit)) + (when (< font-latex--updated-region-end p) + (font-lock-unfontify-region + font-latex--updated-region-end p) + (setq font-latex--updated-region-end p)) + (set-match-data (list (match-beginning 0) p))) + (throw 'found t))))) ;; Copy and adaptation of `doctex-font-lock-syntactic-face-function' ;; in `tex-mode.el' of CVS Emacs (March 2004) --=-=-= Content-Type: text/plain >>>>> Ikumi Keita writes: >>>>> Markus Kohm writes: >> The LaTeX package doc, that is usually used via class ltxdoc for the >> documentation part of dtx-files, declares ^^A as comment character. >> But auctex's doctex mode fails scanning for balanced {...} pairs, if >> } is immediately followed by ^^A. You can test it, with this example file: > The reason of this error is the syntax-table property put on the closing > curly brace. In order to achieve different fontification on the docTeX > documentation and the comment after ^^A, the function > `font-latex-doctex-^^A' puts the "comment ender" syntax on the closing > "}", which hides the proper syntax "closing paren paired with {" and > thus leads to the reported error. > Actually, `font-latex-doctex-^^A' is essentially just a copy of > `doctex-font-lock-^^A' in `tex-mode.el', so the emacs built-in > doctex-mode shares exactly the same problem with respect to the given > test file at double-clicking. > It was hard to me to resolve this problem keeping the closing "}" having > "comment ender" syntax, so my proposal is to borrow an idea used at > fontifying the verbatim-like environments. I.e, to shift the position > of "comment ender" syntax 1 character rightward and put another "comment > starter" syntax on the second, not the first, "^" of ^^A. The wrong > fontification which the first "^" receives is overwrote afterwards by an > additional entry in `font-latex-doctex-keywords'. See the attached > patch. > Strictly speaking, this patch sets the boundary of two different types > of comments in "SOMETHING^^A" at wrong position, not between "G" and the > first "^", but between the first and second "^". However, the treatment > of comments of AUCTeX is rather regexp centric and slight in syntax, I > expect this change doesn't bring serious bad side effects at editing > docTeX documents such as filling and indenting. > How do you think about this idea? Any comments are appreciated. > Regards, > Ikumi Keita >> --- test.dtx --- >> % \begin{macro}{\test}^^A This is an official dtx-comment >> % This does not work. Try to double-click to the closing brace before the >> % comment and you will get: |Scan error: "Unbalanced parantheses", 22, 22| >> % \end{macro} >> % >> % \begin{macro}{\test}%^^A This is a workaround for an official dtx-comment >> % This does work, but the \% after the closing brace is not wanted. >> % \end{macro} >> % \endinput >> % Local Variables: >> % mode: doctex >> % TeX-master: t >> % End: >> --- end of file --- --=-=-=-- From unknown Sun Aug 17 10:22:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#35140: 12.1; Scan errors in doctex mode with ^^A-comments after braces Resent-From: Arash Esbati Original-Sender: "Debbugs-submit" Resent-CC: bug-auctex@gnu.org Resent-Date: Tue, 01 Mar 2022 11:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 35140 X-GNU-PR-Package: auctex X-GNU-PR-Keywords: To: Ikumi Keita Cc: Markus Kohm , 35140@debbugs.gnu.org Received: via spool by 35140-submit@debbugs.gnu.org id=B35140.164613559123587 (code B ref 35140); Tue, 01 Mar 2022 11:54:02 +0000 Received: (at 35140) by debbugs.gnu.org; 1 Mar 2022 11:53:11 +0000 Received: from localhost ([127.0.0.1]:35724 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nP142-00068N-Pf for submit@debbugs.gnu.org; Tue, 01 Mar 2022 06:53:11 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51962) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nP141-000689-6y for 35140@debbugs.gnu.org; Tue, 01 Mar 2022 06:53:09 -0500 Received: from [2001:470:142:3::e] (port=60828 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nP13s-0004vW-GV; Tue, 01 Mar 2022 06:53:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=ZBqHYKcsTrMy6uXMfOFFefuGBiH8bKnwSGXdqcOStJs=; b=Hd7N8n1XvggUqF+okvsB jL+dF16SnYBIOoA4wd/4K/zw7TYzn28BQ6Aj307ufr96kmdEkCQPhzJ5Mj8tftiq9gFZjZ0RNQGuO aL7ohnZ2x9mE3S21n+r2jwmA8Jd60bSatIlsc2zU5Qhowtd2PdUpbuqYtkctHabneLAtDWe+cyl8c EIpa68/9vFrp/4+A+0rhBMoUdUh4s55qHu9PEW6zfQigHeOCJvtEM5xl5cqy/hB+NbWLVsp600Esc dKGRdlgKlv0tQo2zDjgAkxqPB+c+51BVfujZc7Us0jqYWtCd4siqfTwufdwFwXxBwTDCnrXFN/XVz /UN5TN2l69LuNQ==; Received: from p5b326363.dip0.t-ipconnect.de ([91.50.99.99]:50263 helo=MUTANT) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nP13s-0000fd-2F; Tue, 01 Mar 2022 06:53:00 -0500 From: Arash Esbati References: <1990475.NB1R35vEMU@komascript.de> <25610.1557200375@localhost> <12115.1646127291@localhost> Date: Tue, 01 Mar 2022 12:52:39 +0100 In-Reply-To: <12115.1646127291@localhost> (Ikumi Keita's message of "Tue, 01 Mar 2022 18:34:51 +0900") Message-ID: <86pmn5j3eg.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi Keita, Ikumi Keita writes: > Thus I'm inclined to an idea just to fontify "^^A" type comments with > normal comment face, not bothering with changing its syntax. Attached is > a patch that implements this idea. > > What do others think about this? I don't think AUCTeX suffers if the syntax after "^^A" isn't change so we could do it. One other idea would be to raise this issue also on Emacs devel list since Emacs has the same issue as well or ping Stefan M. to have a look at this thread before we make a final decision. What do you think? > +(defun font-latex-doctex-match-^^A (limit) > + "In docTeX mode, match comment started by ^^A before LIMIT." > + (catch 'found > + (while (TeX-search-forward-unescaped "^^A" limit t) While we're at it, can we change this to: (while (TeX-re-search-forward-unescaped "\\^\\^[AX]" limit t) as well? doc v3 also accepts ^^X as comment starter. > + (when (eq (char-after (line-beginning-position)) ?\%) > + (forward-line 1) > + ;; Adjust `font-latex--updated-region-end' if necessary. > + (let ((p (point))) > + (if (< font-latex--updated-region-end limit) > + (setq font-latex--updated-region-end limit)) > + (when (< font-latex--updated-region-end p) > + (font-lock-unfontify-region > + font-latex--updated-region-end p) > + (setq font-latex--updated-region-end p)) > + (set-match-data (list (match-beginning 0) p))) > + (throw 'found t))))) > > ;; Copy and adaptation of `doctex-font-lock-syntactic-face-function' > ;; in `tex-mode.el' of CVS Emacs (March 2004) Best, Arash From unknown Sun Aug 17 10:22:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#35140: 12.1; Scan errors in doctex mode with ^^A-comments after braces Resent-From: Ikumi Keita Original-Sender: "Debbugs-submit" Resent-CC: bug-auctex@gnu.org Resent-Date: Tue, 01 Mar 2022 14:51:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 35140 X-GNU-PR-Package: auctex X-GNU-PR-Keywords: To: Arash Esbati Cc: Markus Kohm , 35140@debbugs.gnu.org Received: via spool by 35140-submit@debbugs.gnu.org id=B35140.164614623817006 (code B ref 35140); Tue, 01 Mar 2022 14:51:01 +0000 Received: (at 35140) by debbugs.gnu.org; 1 Mar 2022 14:50:38 +0000 Received: from localhost ([127.0.0.1]:36032 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nP3pm-0004QE-7E for submit@debbugs.gnu.org; Tue, 01 Mar 2022 09:50:38 -0500 Received: from smtp1a.inetd.co.jp ([210.129.88.11]:34066) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nP3pj-0004Q3-Pk for 35140@debbugs.gnu.org; Tue, 01 Mar 2022 09:50:36 -0500 Received: from localhost (61-24-188-3.rev.home.ne.jp [61.24.188.3]) by smtp1a.inetd.co.jp (Postfix) with ESMTPA id BF2682F0; Tue, 1 Mar 2022 23:50:33 +0900 (JST) From: Ikumi Keita In-reply-to: <86pmn5j3eg.fsf@gnu.org> References: <1990475.NB1R35vEMU@komascript.de> <25610.1557200375@localhost> <12115.1646127291@localhost> <86pmn5j3eg.fsf@gnu.org> Comments: In-reply-to Arash Esbati message dated "Tue, 01 Mar 2022 12:52:39 +0100." X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 27.2 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <24957.1646146233.1@localhost> Date: Tue, 01 Mar 2022 23:50:34 +0900 Message-ID: <24961.1646146234@localhost> X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Arash, thanks for your response. >>>>> Arash Esbati writes: > I don't think AUCTeX suffers if the syntax after "^^A" isn't change so > we could do it. One other idea would be to raise this issue also on > Emacs devel list since Emacs has the same issue as well or ping Stefan > M. to have a look at this thread before we make a final decision. What > do you think? That sounds nice. I'll do that tomorrow. >> +(defun font-latex-doctex-match-^^A (limit) >> + "In docTeX mode, match comment started by ^^A before LIMIT." >> + (catch 'found >> + (while (TeX-search-forward-unescaped "^^A" limit t) > While we're at it, can we change this to: > (while (TeX-re-search-forward-unescaped "\\^\\^[AX]" limit t) > as well? doc v3 also accepts ^^X as comment starter. Oh, I didn't know that. Then I have to modify there along your suggestion. Regards, Ikumi Keita #StandWithUkraine #StopWarInUkraine From unknown Sun Aug 17 10:22:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#35140: 12.1; Scan errors in doctex mode with ^^A-comments after braces Resent-From: Ikumi Keita Original-Sender: "Debbugs-submit" Resent-CC: bug-auctex@gnu.org Resent-Date: Wed, 02 Mar 2022 09:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 35140 X-GNU-PR-Package: auctex X-GNU-PR-Keywords: To: emacs-devel@gnu.org Cc: Markus Kohm , 35140@debbugs.gnu.org Received: via spool by 35140-submit@debbugs.gnu.org id=B35140.164621168522472 (code B ref 35140); Wed, 02 Mar 2022 09:02:02 +0000 Received: (at 35140) by debbugs.gnu.org; 2 Mar 2022 09:01:25 +0000 Received: from localhost ([127.0.0.1]:39066 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPKrM-0005qO-T0 for submit@debbugs.gnu.org; Wed, 02 Mar 2022 04:01:25 -0500 Received: from smtp1a.inetd.co.jp ([210.129.88.11]:37176) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPKrK-0005qE-CU for 35140@debbugs.gnu.org; Wed, 02 Mar 2022 04:01:23 -0500 Received: from localhost (61-24-188-3.rev.home.ne.jp [61.24.188.3]) by smtp1a.inetd.co.jp (Postfix) with ESMTPA id 881E82F0; Wed, 2 Mar 2022 18:01:20 +0900 (JST) From: Ikumi Keita In-reply-to: <24961.1646146234@localhost> References: <1990475.NB1R35vEMU@komascript.de> <25610.1557200375@localhost> <12115.1646127291@localhost> <86pmn5j3eg.fsf@gnu.org> <24961.1646146234@localhost> Comments: In-reply-to Ikumi Keita message dated "Tue, 01 Mar 2022 23:50:34 +0900." X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 27.2 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <26625.1646211678.1@localhost> Date: Wed, 02 Mar 2022 18:01:18 +0900 Message-ID: <26626.1646211678@localhost> X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Greetings, Emacs developers. I'd like to ask what to do with bug#35140. This was originally posted as AUCTeX bug, but the same issue applies for Emacs built-in tex-mode.el as well, as described below. That's the reason why I'm posting to emacs-devel. Please have a look at https://debbugs.gnu.org/cgi/bugreport.cgi?bug=35140#5 to see what this bug is. The reason of this error is the syntax-table property put on the closing curly brace. In order to achieve different fontification on the docTeX documentation and the comment after ^^A, the function `font-latex-doctex-^^A' puts the "comment ender" syntax on the closing "}", which hides the proper syntax "closing paren paired with {" and thus leads to the reported error. Actually, `font-latex-doctex-^^A' is essentially just a copy of `doctex-font-lock-^^A' in `tex-mode.el', so the Emacs built-in doctex-mode shares exactly the same problem with respect to the given test file at double-clicking. Are there any smart ways to address this issue? Regards, Ikumi Keita #StandWithUkraine #StopWarInUkraine From unknown Sun Aug 17 10:22:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#35140: 12.1; Scan errors in doctex mode with ^^A-comments after braces Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-auctex@gnu.org Resent-Date: Wed, 02 Mar 2022 14:01:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 35140 X-GNU-PR-Package: auctex X-GNU-PR-Keywords: To: Arash Esbati Cc: Ikumi Keita , Markus Kohm , 35140@debbugs.gnu.org Received: via spool by 35140-submit@debbugs.gnu.org id=B35140.164622962913404 (code B ref 35140); Wed, 02 Mar 2022 14:01:01 +0000 Received: (at 35140) by debbugs.gnu.org; 2 Mar 2022 14:00:29 +0000 Received: from localhost ([127.0.0.1]:39434 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPPWn-0003U8-DY for submit@debbugs.gnu.org; Wed, 02 Mar 2022 09:00:29 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:17135) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPPWl-0003To-7e for 35140@debbugs.gnu.org; Wed, 02 Mar 2022 09:00:28 -0500 Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 6B373441377; Wed, 2 Mar 2022 09:00:21 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 074D6441372; Wed, 2 Mar 2022 09:00:20 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1646229620; bh=JTZ6yg1PGDFvyI4GiTSfngMCLIx2nj/D7Ozv2B8WtbY=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=l/u06Bxlsn4Pr5keRxvTVqitjKa5gyJqoLm2xGkFmTp25SnwR3og+gKUbNOGowlig Kt5kU2QlkIVA+OXenq66BnbgH8V9iwbYtZyeNn0SU+1CBTVNxOJe+72ZH/W4GR+HFO 7eSCuEzlr/aMl5wnq38HxK2rFxVel1/0+cS+bnwamjnu0/bveC8A04kNmC636nWFA1 6VSM+TxnDk3FUFR660T36A2eD4BAG3FBL7/0BqfBMtL0lq2bUnfu2xOzDl+vhdRQn/ 5c3WGsCjNYPj98tItT/g7KV3wVmU3KYOFmEJLl4tV3Xl1beB/v/dHGJ8xp8SWkEFhh iqqGICSe3GjjQ== Received: from pastel (unknown [45.72.208.76]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id C890312020D; Wed, 2 Mar 2022 09:00:19 -0500 (EST) From: Stefan Monnier Message-ID: References: <1990475.NB1R35vEMU@komascript.de> <25610.1557200375@localhost> <12115.1646127291@localhost> <86pmn5j3eg.fsf@gnu.org> Date: Wed, 02 Mar 2022 09:00:16 -0500 In-Reply-To: <86pmn5j3eg.fsf@gnu.org> (Arash Esbati's message of "Tue, 01 Mar 2022 12:52:39 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL -0.070 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain T_SCC_BODY_TEXT_LINE -0.01 - X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) >> Thus I'm inclined to an idea just to fontify "^^A" type comments with >> normal comment face, not bothering with changing its syntax. Attached is >> a patch that implements this idea. >> >> What do others think about this? > > I don't think AUCTeX suffers if the syntax after "^^A" isn't change so > we could do it. One other idea would be to raise this issue also on > Emacs devel list since Emacs has the same issue as well or ping Stefan > M. to have a look at this thread before we make a final decision. What > do you think? I'm not sufficiently informed about DocTeX to know what's the right thing to do here. Changing the code so it only changes the face but without messing with syntax tables would definitely be simpler. But one thing catches my attention. If having the `}` marked as an end-of-comment "fails scanning for balanced {...} pairs" with the current setup, wouldn't the same kind of problem appear with # \begin{macro}^^A Funny, eh? ( if the `^^A.*` part isn't marked in the syntax as separate? In which operation does the "fails scanning for balanced {...} pairs" happen? Stefan PS: It would be nicer if AUCTeX could just use the tex-mode.el code rather the copy&paste it. From unknown Sun Aug 17 10:22:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#35140: 12.1; Scan errors in doctex mode with ^^A-comments after braces Resent-From: Ikumi Keita Original-Sender: "Debbugs-submit" Resent-CC: bug-auctex@gnu.org Resent-Date: Wed, 02 Mar 2022 14:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 35140 X-GNU-PR-Package: auctex X-GNU-PR-Keywords: To: Stefan Monnier Cc: Markus Kohm , 35140@debbugs.gnu.org Received: via spool by 35140-submit@debbugs.gnu.org id=B35140.164623248317821 (code B ref 35140); Wed, 02 Mar 2022 14:49:02 +0000 Received: (at 35140) by debbugs.gnu.org; 2 Mar 2022 14:48:03 +0000 Received: from localhost ([127.0.0.1]:39458 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPQGp-0004dN-J3 for submit@debbugs.gnu.org; Wed, 02 Mar 2022 09:48:03 -0500 Received: from smtp1a.inetd.co.jp ([210.129.88.11]:38444) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPQGn-0004cw-3c for 35140@debbugs.gnu.org; Wed, 02 Mar 2022 09:48:01 -0500 Received: from localhost (61-24-188-3.rev.home.ne.jp [61.24.188.3]) by smtp1a.inetd.co.jp (Postfix) with ESMTPA id AC51D2DA; Wed, 2 Mar 2022 23:47:58 +0900 (JST) From: Ikumi Keita In-reply-to: References: <1990475.NB1R35vEMU@komascript.de> <25610.1557200375@localhost> <12115.1646127291@localhost> <86pmn5j3eg.fsf@gnu.org> Comments: In-reply-to Stefan Monnier message dated "Wed, 02 Mar 2022 09:00:16 -0500." X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 27.2 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <30713.1646232475.1@localhost> Date: Wed, 02 Mar 2022 23:47:56 +0900 Message-ID: <30714.1646232476@localhost> X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello Stefan, thanks for your response. >>>>> Stefan Monnier writes: > In which operation does the "fails scanning for balanced {...} pairs" > happen? That's described in the example file test.dtx provided in the original post by Markus; double-clicking by mouse: --- test.dtx --- % \begin{macro}{\test}^^A This is an official dtx-comment % This does not work. Try to double-click to the closing brace before the % comment and you will get: |Scan error: "Unbalanced parantheses", 22, 22| % \end{macro} % % \begin{macro}{\test}%^^A This is a workaround for an official dtx-comment % This does work, but the \% after the closing brace is not wanted. % \end{macro} % \endinput % Local Variables: % mode: doctex % TeX-master: t % End: --- end of file --- > I'm not sufficiently informed about DocTeX to know what's the right > thing to do here. Changing the code so it only changes the face but > without messing with syntax tables would definitely be simpler. Agreed. > But one thing catches my attention. If having the `}` marked as an > end-of-comment "fails scanning for balanced {...} pairs" with the > current setup, wouldn't the same kind of problem appear with > # \begin{macro}^^A Funny, eh? ( > if the `^^A.*` part isn't marked in the syntax as separate? I'm not sure I understand what you are worring about. Could you ellaborate it? > PS: It would be nicer if AUCTeX could just use the tex-mode.el code > rather the copy&paste it. I think that we can do that for `font-latex-doctex-^^A' and `doctex-font-lock-^^A'. I guess AUCTeX needed separate function because of compatibility for older emacsen including xemacs. On the other hand, AUCTeX still needs its own function `font-latex-doctex-syntactic-face-function' different from `doctex-font-lock-syntactic-face-function' because we use different faces for its return value. Regards, Ikumi Keita From unknown Sun Aug 17 10:22:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#35140: 12.1; Scan errors in doctex mode with ^^A-comments after braces Resent-From: Stefan Monnier Original-Sender: "Debbugs-submit" Resent-CC: bug-auctex@gnu.org Resent-Date: Wed, 02 Mar 2022 18:16:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 35140 X-GNU-PR-Package: auctex X-GNU-PR-Keywords: To: Ikumi Keita Cc: Markus Kohm , 35140@debbugs.gnu.org Received: via spool by 35140-submit@debbugs.gnu.org id=B35140.16462449236867 (code B ref 35140); Wed, 02 Mar 2022 18:16:01 +0000 Received: (at 35140) by debbugs.gnu.org; 2 Mar 2022 18:15:23 +0000 Received: from localhost ([127.0.0.1]:40706 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPTVS-0001mh-TM for submit@debbugs.gnu.org; Wed, 02 Mar 2022 13:15:23 -0500 Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:3520) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPTVQ-0001mM-Ib for 35140@debbugs.gnu.org; Wed, 02 Mar 2022 13:15:21 -0500 Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 6F1C8805F9; Wed, 2 Mar 2022 13:15:14 -0500 (EST) Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id C5B02803E6; Wed, 2 Mar 2022 13:15:12 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1646244912; bh=K8/W8vdhq7CDvy+WpCRxJVbwnZBpJuG5W4iB6dSYnHU=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=Z0DeG2i9uO2SDCwJva+5RwiatAZoTUL9RxMSnNLscPg2luZEej6F6+UD1hjJEDNXt OYqx5YUkTDBl+W1vQInLNKYp7h0rFznLwdfzXeHP74QwIUU4uSMu0JcoWi3ZIVadY2 qBX0gnEx4mCkuv+bJ9xlufgu4Ql5dfdpZEYrofcj9PjdT1VhvAggu+Fkf9KZxMn6k/ TZc89rIskxJrg1nh6h0lM2mSnoJuaVsKiX5bkey3v1aF867bJ4Q77Ei9dlC1zwFQ97 SMAwWlUtkjRw3Bvr1xwWE/drgMpTlNdrwQlWMUkIsz2AtLXcjwNaEeeEV2wiTkIIFU TKTZtP2AdA5RA== Received: from alfajor (lechon.iro.umontreal.ca [132.204.27.242]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 9FD23120297; Wed, 2 Mar 2022 13:15:12 -0500 (EST) From: Stefan Monnier Message-ID: References: <1990475.NB1R35vEMU@komascript.de> <25610.1557200375@localhost> <12115.1646127291@localhost> <86pmn5j3eg.fsf@gnu.org> <30714.1646232476@localhost> Date: Wed, 02 Mar 2022 13:15:02 -0500 In-Reply-To: <30714.1646232476@localhost> (Ikumi Keita's message of "Wed, 02 Mar 2022 23:47:56 +0900") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-SPAM-INFO: Spam detection results: 0 ALL_TRUSTED -1 Passed through trusted hosts only via SMTP AWL 0.208 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's domain T_SCC_BODY_TEXT_LINE -0.01 - X-SPAM-LEVEL: X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Ikumi Keita [2022-03-02 23:47:56] wrote: > Hello Stefan, thanks for your response. >>>>>> Stefan Monnier writes: >> In which operation does the "fails scanning for balanced {...} pairs" >> happen? > > That's described in the example file test.dtx provided in the original > post by Markus; double-clicking by mouse: Duh! Sorry for being dense, I didn't actually read the example's text. Can't believe it was staring at me! > --- test.dtx --- > % \begin{macro}{\test}^^A This is an official dtx-comment > % This does not work. Try to double-click to the closing brace before the > % comment and you will get: |Scan error: "Unbalanced parantheses", 22, 22| > % \end{macro} So, IIUC the same kind of problem already happens "everywhere" in Emacs in slightly less trivial cases, such as %% \somemacro{some %% multiline arg} where double clicking on the braces will not do what we want (and will often signal that same "Unbalanced parantheses" error). This doesn't imply the OP's problem is negligible, of course, but I think it does reduce its severity. It also means that the approach you propose of only changing the `face` and not the syntax tables is probably good enough. > I think that we can do that for `font-latex-doctex-^^A' and > `doctex-font-lock-^^A'. I guess AUCTeX needed separate function because > of compatibility for older emacsen including xemacs. > > On the other hand, AUCTeX still needs its own function > `font-latex-doctex-syntactic-face-function' different from > `doctex-font-lock-syntactic-face-function' because we use different > faces for its return value. Indeed, practical issue tend to get in the way. BTW, I noticed in the patch that `font-latex.el` appears to still make use of `font-lock-syntactic-keywords`. This var has been obsolete since Emacs-24.1 and it's like to disappear in Emacs-29, so it would be good to fix this issue (maybe using `syntax-propertize-via-font-lock`). Stefan From unknown Sun Aug 17 10:22:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#35140: 12.1; Scan errors in doctex mode with ^^A-comments after braces Resent-From: Tassilo Horn Original-Sender: "Debbugs-submit" Resent-CC: bug-auctex@gnu.org Resent-Date: Wed, 02 Mar 2022 20:14:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 35140 X-GNU-PR-Package: auctex X-GNU-PR-Keywords: To: Stefan Monnier Cc: Ikumi Keita , Markus Kohm , 35140@debbugs.gnu.org Received: via spool by 35140-submit@debbugs.gnu.org id=B35140.164625202018573 (code B ref 35140); Wed, 02 Mar 2022 20:14:01 +0000 Received: (at 35140) by debbugs.gnu.org; 2 Mar 2022 20:13:40 +0000 Received: from localhost ([127.0.0.1]:40826 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPVLv-0004pV-ON for submit@debbugs.gnu.org; Wed, 02 Mar 2022 15:13:39 -0500 Received: from eggs.gnu.org ([209.51.188.92]:56270) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPVLt-0004pE-MR for 35140@debbugs.gnu.org; Wed, 02 Mar 2022 15:13:38 -0500 Received: from [2001:470:142:3::e] (port=36218 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nPVLm-0000lz-LE; Wed, 02 Mar 2022 15:13:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-reply-to:Date:Subject:To:From: References; bh=hk1PWpFi9csQ7bmqOYu4jyita6xo/M+Zz76UM4jVw6E=; b=ZpiRnNkPFFogcy mEeiQ9NS0p0e+fx4D3fsiiSusUrzjAU7gCuXo4lfZC/wGLq3b6pgV9/onefbPo5Q3bMG15jstTNDi QfaFfhAa7rtWXaBl1F3+Ezjl9sSZaDVt9ugQnF/eVtZsy1ScWi4L7ztRcUhg54CdwHcYUvldkJX8L r69e+5XvE0QzrKKRg6zjYbr5Lf9m7IbTA2KHTVYmlxwwI4/n+HJyof7isEnIE5NLYTz77/h5OFGSI ks0aT71uQMqwx5v4ROncWaRKq+CmRiUv+jAA6zOfB7c0k7y2TXzZ8ynuFItSB/kxsslwmBhV9+J60 4x9lC2rfiMAbA0OYDbZA==; Received: from auth2-smtp.messagingengine.com ([66.111.4.228]:48109) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nPVLm-0008HN-Ct; Wed, 02 Mar 2022 15:13:30 -0500 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailauth.nyi.internal (Postfix) with ESMTP id E3B6B27C005A; Wed, 2 Mar 2022 15:13:29 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Wed, 02 Mar 2022 15:13:29 -0500 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvvddruddtgedguddvlecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpehffgfhvffuffgjkfggtgesthdtredttdertdenucfhrhhomhepvfgrshhs ihhlohcujfhorhhnuceothhsughhsehgnhhurdhorhhgqeenucggtffrrghtthgvrhhnpe euieejtddufffgteekleeuteeuvdefvdehiedtudfghfduudetvdffvdfgheevgfenucff ohhmrghinhepghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh epmhgrihhlfhhrohhmpehthhhorhhnodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhi thihqdekieejfeekjeekgedqieefhedvleekqdhtshguhheppehgnhhurdhorhhgsehfrg hsthhmrghilhdrfhhm X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 2 Mar 2022 15:13:28 -0500 (EST) References: <1990475.NB1R35vEMU@komascript.de> <25610.1557200375@localhost> <12115.1646127291@localhost> <86pmn5j3eg.fsf@gnu.org> <30714.1646232476@localhost> User-agent: mu4e 1.7.9; emacs 29.0.50 From: Tassilo Horn Date: Wed, 02 Mar 2022 21:11:32 +0100 In-reply-to: Message-ID: <87r17k8656.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Stefan Monnier via bug-auctex via Bug reporting list for AUCTeX writes: > BTW, I noticed in the patch that `font-latex.el` appears to still make > use of `font-lock-syntactic-keywords`. This var has been obsolete > since Emacs-24.1 and it's like to disappear in Emacs-29, so it would > be good to fix this issue (maybe using > `syntax-propertize-via-font-lock`). Thanks for the heads-up, I've done that just now. https://git.savannah.gnu.org/cgit/auctex.git/commit/?id=ab3bfaf1033f0d6e0ecfe3172794a6363450b207 Bye, Tassilo From unknown Sun Aug 17 10:22:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#35140: 12.1; Scan errors in doctex mode with ^^A-comments after braces Resent-From: Ikumi Keita Original-Sender: "Debbugs-submit" Resent-CC: bug-auctex@gnu.org Resent-Date: Thu, 03 Mar 2022 07:06:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 35140 X-GNU-PR-Package: auctex X-GNU-PR-Keywords: To: Stefan Monnier Cc: Markus Kohm , 35140@debbugs.gnu.org Received: via spool by 35140-submit@debbugs.gnu.org id=B35140.164629115924636 (code B ref 35140); Thu, 03 Mar 2022 07:06:01 +0000 Received: (at 35140) by debbugs.gnu.org; 3 Mar 2022 07:05:59 +0000 Received: from localhost ([127.0.0.1]:41275 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPfXD-0006PH-Dj for submit@debbugs.gnu.org; Thu, 03 Mar 2022 02:05:59 -0500 Received: from smtp1a.inetd.co.jp ([210.129.88.11]:40742) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPfXB-0006P8-Sy for 35140@debbugs.gnu.org; Thu, 03 Mar 2022 02:05:58 -0500 Received: from localhost (61-24-188-3.rev.home.ne.jp [61.24.188.3]) by smtp1a.inetd.co.jp (Postfix) with ESMTPA id CC0342DA; Thu, 3 Mar 2022 16:05:55 +0900 (JST) From: Ikumi Keita In-reply-to: References: <1990475.NB1R35vEMU@komascript.de> <25610.1557200375@localhost> <12115.1646127291@localhost> <86pmn5j3eg.fsf@gnu.org> <30714.1646232476@localhost> Comments: In-reply-to Stefan Monnier message dated "Wed, 02 Mar 2022 13:15:02 -0500." X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 27.2 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <32733.1646291155.1@localhost> Date: Thu, 03 Mar 2022 16:05:55 +0900 Message-ID: <32734.1646291155@localhost> X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi Stefan, >>>>> Stefan Monnier writes: > It also means that the approach you propose of only changing the `face` > and not the syntax tables is probably good enough. Thanks, then I'll go that route. By the way, > So, IIUC the same kind of problem already happens "everywhere" in Emacs > in slightly less trivial cases, such as > %% \somemacro{some > %% multiline arg} > where double clicking on the braces will not do what we want (and will > often signal that same "Unbalanced parantheses" error). Surprisingly, it isn't the case. When I double-click on the right brace, emacs spans active region successfully between "{" and "}", both in latex-mode and doctex-mode buffer (at least for AUCTeX, I haven't tried in Emacs built-in tex mode.) Regards, Ikumi Keita #StandWithUkraine #StopWarInUkraine From unknown Sun Aug 17 10:22:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#35140: 12.1; Scan errors in doctex mode with ^^A-comments after braces Resent-From: Arash Esbati Original-Sender: "Debbugs-submit" Resent-CC: bug-auctex@gnu.org Resent-Date: Thu, 03 Mar 2022 08:24:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 35140 X-GNU-PR-Package: auctex X-GNU-PR-Keywords: To: Stefan Monnier Cc: Ikumi Keita , Markus Kohm , 35140@debbugs.gnu.org Received: via spool by 35140-submit@debbugs.gnu.org id=B35140.164629579931933 (code B ref 35140); Thu, 03 Mar 2022 08:24:01 +0000 Received: (at 35140) by debbugs.gnu.org; 3 Mar 2022 08:23:19 +0000 Received: from localhost ([127.0.0.1]:41374 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPgk3-0008Iz-7g for submit@debbugs.gnu.org; Thu, 03 Mar 2022 03:23:19 -0500 Received: from eggs.gnu.org ([209.51.188.92]:40166) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPgk1-0008Ik-P0 for 35140@debbugs.gnu.org; Thu, 03 Mar 2022 03:23:18 -0500 Received: from [2001:470:142:3::e] (port=46368 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nPgjv-0004mQ-So; Thu, 03 Mar 2022 03:23:11 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=R3yn1ocIFJPTHVc7vJqB2rr+4bbR1i3HQrjt5ZyYoYE=; b=rxFMw3qEDLUjpDLad5wz JKPyb8xumC3hZE44U3GEPhOpmc8puBkIlrhqAy+gJZbM015s/41xETSddoII+92e+sYtMaWyV1529 22f/4fxEjnk4Mu+qmzp65YyJsg1K1uqlLOSz/hG8XMES54oqthRjMs51Fbc1/3VpCUwSaSP5fybkY +atpLODGHNcqKmEOXWq+qcpXLtMWo+ztw4QMqawSEo2tU8yGYbe6UC0UQdgrLjmspjy0JTmX1pyCN oaEpIza6dK4johz2Q+2GJeuO4rengylZjy6Mf3JqY6gTh4KXiOC/YrAe/gXeBpv5fn82CcZwqpuzr 8A27dkzyVPh6Dw==; Received: from p5b326363.dip0.t-ipconnect.de ([91.50.99.99]:65256 helo=MUTANT) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nPgjs-0002YB-Sr; Thu, 03 Mar 2022 03:23:11 -0500 From: Arash Esbati References: <1990475.NB1R35vEMU@komascript.de> <25610.1557200375@localhost> <12115.1646127291@localhost> <86pmn5j3eg.fsf@gnu.org> Date: Thu, 03 Mar 2022 09:22:51 +0100 In-Reply-To: (Stefan Monnier's message of "Wed, 02 Mar 2022 09:00:16 -0500") Message-ID: <86lexrfns4.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Stefan Monnier writes: > I'm not sufficiently informed about DocTeX to know what's the right > thing to do here. Changing the code so it only changes the face but > without messing with syntax tables would definitely be simpler. Thanks for your comment. I'm not sure if you want to change this in tex-mode.el as well, but the current code of `doctex-syntax-propertize-rules' should be changed like this: --8<---------------cut here---------------start------------->8--- diff --git a/lisp/textmodes/tex-mode.el b/lisp/textmodes/tex-mode.el index ab94036d01..d43eb5f4cc 100644 --- a/lisp/textmodes/tex-mode.el +++ b/lisp/textmodes/tex-mode.el @@ -3019,7 +3019,7 @@ doctex-font-lock-syntactic-face-function (syntax-propertize-precompile-rules latex-syntax-propertize-rules ;; For DocTeX comment-in-doc. - ("\\(\\^\\)\\^A" (1 (doctex-font-lock-^^A)))))) + ("\\(\\^\\)\\^[AX]" (1 (doctex-font-lock-^^A)))))) (defvar doctex-font-lock-keywords (append tex-font-lock-keywords --8<---------------cut here---------------end--------------->8--- ^^X is also a comment starter beginning with doc.sty v3 (which will be part of next LaTeX release). Best, Arash From unknown Sun Aug 17 10:22:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#35140: 12.1; Scan errors in doctex mode with ^^A-comments after braces Resent-From: Arash Esbati Original-Sender: "Debbugs-submit" Resent-CC: bug-auctex@gnu.org Resent-Date: Thu, 03 Mar 2022 08:47:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 35140 X-GNU-PR-Package: auctex X-GNU-PR-Keywords: To: Tassilo Horn Cc: Ikumi Keita , Markus Kohm , Stefan Monnier , 35140@debbugs.gnu.org Received: via spool by 35140-submit@debbugs.gnu.org id=B35140.16462971771745 (code B ref 35140); Thu, 03 Mar 2022 08:47:01 +0000 Received: (at 35140) by debbugs.gnu.org; 3 Mar 2022 08:46:17 +0000 Received: from localhost ([127.0.0.1]:41427 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPh6G-0000S5-NO for submit@debbugs.gnu.org; Thu, 03 Mar 2022 03:46:16 -0500 Received: from eggs.gnu.org ([209.51.188.92]:45300) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPh6F-0000Ru-N3 for 35140@debbugs.gnu.org; Thu, 03 Mar 2022 03:46:16 -0500 Received: from [2001:470:142:3::e] (port=46582 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nPh68-0000G1-Kw; Thu, 03 Mar 2022 03:46:08 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=YqmQBDDwbpEykrnV40l9i5aJnqaoNKaoi+q+PoXQ3M4=; b=oFKxMdOGeIczn6CEZarr BVj4o3HMkVlCLZ9bV2nLFcjCjp9VYuwRXbUW+o/4DIB2ofRBrlvT4OuYUIkoAl8+mA2VH8NKn1acy RNW5G9XCp3TGogaCGI1gEkKLGCemsV3dZCgAz+l8E0fuuwhJ5Dfq2K2DXLw2iOLI5P7Qmq7CnthQj GJ+6uAoZalw8HjuSPB2CXrRnCibyzULnLyZiOJJzcPJlMN07rtIcnRJD8gUaxp3pQK4wURohVPtsz Dm5km3trxtXlhwwRxgrfry7DLxKAXlSdv+M+86TuyZPp6bhtEA8pX1Q0vjtJRaY34hSdFLkRNamq3 oBxUUt6KuxbXOQ==; Received: from p5b326363.dip0.t-ipconnect.de ([91.50.99.99]:65326 helo=MUTANT) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nPh67-00055v-8s; Thu, 03 Mar 2022 03:46:07 -0500 From: Arash Esbati References: <1990475.NB1R35vEMU@komascript.de> <25610.1557200375@localhost> <12115.1646127291@localhost> <86pmn5j3eg.fsf@gnu.org> <30714.1646232476@localhost> <87r17k8656.fsf@gnu.org> Date: Thu, 03 Mar 2022 09:45:32 +0100 In-Reply-To: <87r17k8656.fsf@gnu.org> (Tassilo Horn's message of "Wed, 02 Mar 2022 21:11:32 +0100") Message-ID: <86h78ffmqb.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi Tassilo, Tassilo Horn writes: > Thanks for the heads-up, I've done that just now. > > https://git.savannah.gnu.org/cgit/auctex.git/commit/?id=ab3bfaf1033f0d6e0ecfe3172794a6363450b207 Thanks for the quick fix. Have you also tried to run 'make' in the tests directory? I get errors for three files, e.g. font-latex-test.el: Test font-latex-three-dollars condition: (error "Font-lock trying to use keywords before setting them up") Test font-latex-unclosed-dollars condition: (error "Font-lock trying to use keywords before setting them up") It seems that calling `font-lock-ensure' after `LaTeX-mode' helps: --8<---------------cut here---------------start------------->8--- diff --git a/tests/latex/font-latex-test.el b/tests/latex/font-latex-test.el index 9cc7ac52..837f0b47 100644 --- a/tests/latex/font-latex-test.el +++ b/tests/latex/font-latex-test.el @@ -39,6 +39,7 @@ (insert "% $$$ $$$ $a$") (LaTeX-mode) + (font-lock-ensure) (goto-char (point-min)) (setq font-latex--updated-region-end (point-max)) (font-latex-match-dollar-math (point-max)))))) @@ -48,6 +49,7 @@ $a$") (let ((TeX-install-font-lock #'font-latex-setup)) (with-temp-buffer (LaTeX-mode) + (font-lock-ensure) (insert "a$") (goto-char (point-min)) --8<---------------cut here---------------end--------------->8--- Is this the course of action or something smarter? Best, Arash From unknown Sun Aug 17 10:22:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#35140: 12.1; Scan errors in doctex mode with ^^A-comments after braces Resent-From: Tassilo Horn Original-Sender: "Debbugs-submit" Resent-CC: bug-auctex@gnu.org Resent-Date: Thu, 03 Mar 2022 09:11:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 35140 X-GNU-PR-Package: auctex X-GNU-PR-Keywords: To: Arash Esbati Cc: Ikumi Keita , Markus Kohm , Stefan Monnier , 35140@debbugs.gnu.org Received: via spool by 35140-submit@debbugs.gnu.org id=B35140.16462986254136 (code B ref 35140); Thu, 03 Mar 2022 09:11:01 +0000 Received: (at 35140) by debbugs.gnu.org; 3 Mar 2022 09:10:25 +0000 Received: from localhost ([127.0.0.1]:41448 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPhTc-00014e-Va for submit@debbugs.gnu.org; Thu, 03 Mar 2022 04:10:25 -0500 Received: from eggs.gnu.org ([209.51.188.92]:49884) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nPhTb-00014S-BV for 35140@debbugs.gnu.org; Thu, 03 Mar 2022 04:10:23 -0500 Received: from [2001:470:142:3::e] (port=46872 helo=fencepost.gnu.org) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nPhTS-00067c-KV; Thu, 03 Mar 2022 04:10:16 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-reply-to:Date:Subject:To:From: References; bh=i7CSOZR1f1pvjVyoi/bo7CGYlWpmK1bxYQXOD+47HNI=; b=DRagSrEnIdcTWe p9a1gipntS4WIaXAxzHVL59OEY8yC0A0yXzgvx0uSYIctgPfbAAGdUCCPWi4XaJhrFd9JzxuXzVo0 ib70UH86+6dqE3tvfA+dNYIkT9c8i7D49y/HRdbZHfrm2NQC2gOuRHdzT3NkAJ3kvwGrtNr4Fuy1h AlsrABD5rfMJC9sYhFbpq1JwsNyzmQ27Pqy3CPWNrygbBVPLXXs/IA9nPlKj9rE6xE34DVtzP1Ziv qVxCsi6NJkzpesDIf9A9r1VIPlfHznM3++1huqFwILi8NVikGMLQ8Qgozxzwqp55T3qdmjcKSnaCv feyryJhPwLug43CoNwmw==; Received: from auth2-smtp.messagingengine.com ([66.111.4.228]:36543) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1nPhTH-0008ET-FJ; Thu, 03 Mar 2022 04:10:11 -0500 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailauth.nyi.internal (Postfix) with ESMTP id E0C7F27C0054; Thu, 3 Mar 2022 04:10:02 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Thu, 03 Mar 2022 04:10:02 -0500 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvvddruddtiecutefuodetggdotefrodftvfcurf hrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug hrpehffgfhvffuffgjkfggtgesthdtredttdertdenucfhrhhomhepvfgrshhsihhlohcu jfhorhhnuceothhsughhsehgnhhurdhorhhgqeenucggtffrrghtthgvrhhnpeeuieejtd dufffgteekleeuteeuvdefvdehiedtudfghfduudetvdffvdfgheevgfenucffohhmrghi nhepghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrih hlfhhrohhmpehthhhorhhnodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqdek ieejfeekjeekgedqieefhedvleekqdhtshguhheppehgnhhurdhorhhgsehfrghsthhmrg hilhdrfhhm X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 3 Mar 2022 04:10:01 -0500 (EST) References: <1990475.NB1R35vEMU@komascript.de> <25610.1557200375@localhost> <12115.1646127291@localhost> <86pmn5j3eg.fsf@gnu.org> <30714.1646232476@localhost> <87r17k8656.fsf@gnu.org> <86h78ffmqb.fsf@gnu.org> User-agent: mu4e 1.7.9; emacs 29.0.50 From: Tassilo Horn Date: Thu, 03 Mar 2022 10:09:26 +0100 In-reply-to: <86h78ffmqb.fsf@gnu.org> Message-ID: <875yovl7vb.fsf@gnu.org> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Arash Esbati writes: Hi Arash, >> Thanks for the heads-up, I've done that just now. >> >> https://git.savannah.gnu.org/cgit/auctex.git/commit/?id=ab3bfaf1033f0d6e0ecfe3172794a6363450b207 > > Thanks for the quick fix. Have you also tried to run 'make' in the > tests directory? I get errors for three files, e.g. font-latex-test.el: > > Test font-latex-three-dollars condition: > (error "Font-lock trying to use keywords before setting them up") > > Test font-latex-unclosed-dollars condition: > (error "Font-lock trying to use keywords before setting them up") > > It seems that calling `font-lock-ensure' after `LaTeX-mode' helps: See my proposed fix in Message-Id: 87a6e7laly.fsf@gnu.org. Bye, Tassilo From unknown Sun Aug 17 10:22:16 2025 X-Loop: help-debbugs@gnu.org Subject: bug#35140: 12.1; Scan errors in doctex mode with ^^A-comments after braces Resent-From: Ikumi Keita Original-Sender: "Debbugs-submit" Resent-CC: bug-auctex@gnu.org Resent-Date: Sat, 05 Mar 2022 08:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 35140 X-GNU-PR-Package: auctex X-GNU-PR-Keywords: To: 35140@debbugs.gnu.org Cc: Markus Kohm , Stefan Monnier Received: via spool by 35140-submit@debbugs.gnu.org id=B35140.164646718620154 (code B ref 35140); Sat, 05 Mar 2022 08:00:02 +0000 Received: (at 35140) by debbugs.gnu.org; 5 Mar 2022 07:59:46 +0000 Received: from localhost ([127.0.0.1]:47236 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nQPKL-0005F0-PN for submit@debbugs.gnu.org; Sat, 05 Mar 2022 02:59:45 -0500 Received: from smtp1a.inetd.co.jp ([210.129.88.11]:47096) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nQPKJ-0005Eo-II for 35140@debbugs.gnu.org; Sat, 05 Mar 2022 02:59:44 -0500 Received: from localhost (61-24-188-3.rev.home.ne.jp [61.24.188.3]) by smtp1a.inetd.co.jp (Postfix) with ESMTPA id 716562D7; Sat, 5 Mar 2022 16:59:41 +0900 (JST) From: Ikumi Keita In-reply-to: <32734.1646291155@localhost> References: <1990475.NB1R35vEMU@komascript.de> <25610.1557200375@localhost> <12115.1646127291@localhost> <86pmn5j3eg.fsf@gnu.org> <30714.1646232476@localhost> <32734.1646291155@localhost> Comments: In-reply-to Ikumi Keita message dated "Thu, 03 Mar 2022 16:05:55 +0900." X-Mailer: MH-E 8.6+git; nmh 1.7.1; GNU Emacs 27.2 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <53141.1646467181.1@localhost> Date: Sat, 05 Mar 2022 16:59:41 +0900 Message-ID: <53142.1646467181@localhost> X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) >>>>> Ikumi Keita writes: >>>>> Stefan Monnier writes: >> It also means that the approach you propose of only changing the `face` >> and not the syntax tables is probably good enough. > Thanks, then I'll go that route. Done. Markus, very sorry to have kept you waiting so long period! Regards, Ikumi Keita From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 05 03:00:16 2022 Received: (at control) by debbugs.gnu.org; 5 Mar 2022 08:00:16 +0000 Received: from localhost ([127.0.0.1]:47240 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nQPKp-0005Hw-WE for submit@debbugs.gnu.org; Sat, 05 Mar 2022 03:00:16 -0500 Received: from smtp1a.inetd.co.jp ([210.129.88.11]:47106) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1nQPKo-0005Ho-NU for control@debbugs.gnu.org; Sat, 05 Mar 2022 03:00:15 -0500 Received: from localhost (61-24-188-3.rev.home.ne.jp [61.24.188.3]) by smtp1a.inetd.co.jp (Postfix) with ESMTPA id CE5DE2D7 for ; Sat, 5 Mar 2022 17:00:13 +0900 (JST) To: control@debbugs.gnu.org From: Ikumi Keita Subject: control message for bug #35140 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <53157.1646467213.1@localhost> Date: Sat, 05 Mar 2022 17:00:14 +0900 Message-ID: <53158.1646467214@localhost> X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) close 35140 quit