From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com [IPv6:2a00:1450:4864:20::342]) by sourceware.org (Postfix) with ESMTPS id 333F83857C78; Tue, 1 Dec 2020 22:36:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 333F83857C78 Received: by mail-wm1-x342.google.com with SMTP id a6so8265599wmc.2; Tue, 01 Dec 2020 14:36:23 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=u2zrMKzNOJ/uhX3KbupR0FzM3u8csW8zf9z5a6odoeM=; b=SgCCdsKEkNq69A8Ax7DSmJkPtMdQ+PYmJ7Oql1pTdcScQfp7HJ+wxfVRH9HyX1k73Z aO6x5Zuym8TFJE4wMKbWC3D6qq+M3jTfudeZsG9sflEnDS0TFaiILIkxuhbswZ+P0PSm hKkmEROmHR17NGuMbkpwc8jrO5P9GG0n+X6Xq4r8xDNlhUcZ6hA2RT6eadn61roW6e+I nTWTXcFDjZOVAeR/tPgkBx2r1ub0ZOc9MxhvvsquhbplX3KA+1UdEdSDmXK6zv5CNj+v vD1InoWthPFU+7WDEWM1/g/Boz6y0IObOWq7lkUiUdxSaSMOoU9qKvdUS4h89EUv4S2u f5bw== X-Gm-Message-State: AOAM532xcfrr2IdmPuKDlwHFHkm7yUy1LJ0ZN/7SATxZNBDbO1CO/Ctz zPtk7DzBP9cAlyGsTNAfJfIQzIkioBWUBv+L3HE= X-Google-Smtp-Source: ABdhPJx1wH+JA/hvqw/IjJQhx6rLANJg3yXLCKgGANKKI7fMCCBRPBl3uT0IhXVT71agrGHQtLZown+cDFkMbWgs7A8= X-Received: by 2002:a1c:f203:: with SMTP id s3mr4853721wmc.14.1606862182055; Tue, 01 Dec 2020 14:36:22 -0800 (PST) MIME-Version: 1.0 References: <20201111215001.GA231697@redhat.com> <20201130213029.GA10782@ibm-toto.the-meissners.org> <20201201151011.GA2761400@redhat.com> <20201201160430.GL2309743@redhat.com> <20201201191042.GB7198@ibm-toto.the-meissners.org> <20201201222501.GA18971@ibm-toto.the-meissners.org> In-Reply-To: <20201201222501.GA18971@ibm-toto.the-meissners.org> From: Jonathan Wakely Date: Tue, 1 Dec 2020 22:36:10 +0000 Message-ID: Subject: Re: [PATCH] libstdc++: Add C++ runtime support for new 128-bit long double format To: Michael Meissner , Jonathan Wakely , Jonathan Wakely , "libstdc++" , gcc-patches , Bill Schmidt , David Edelsohn , Segher Boessenkool , Peter Berner Content-Type: multipart/mixed; boundary="000000000000911e1e05b56ec1c9" X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, KAM_MANYTO, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Dec 2020 22:36:24 -0000 --000000000000911e1e05b56ec1c9 Content-Type: text/plain; charset="UTF-8" On Tue, 1 Dec 2020 at 22:25, Michael Meissner wrote: > > On Tue, Dec 01, 2020 at 09:10:30PM +0000, Jonathan Wakely wrote: > > On Tue, 1 Dec 2020 at 19:13, Michael Meissner via Libstdc++ > > wrote: > > > > > > On Tue, Dec 01, 2020 at 04:04:30PM +0000, Jonathan Wakely wrote: > > > > On 01/12/20 15:10 +0000, Jonathan Wakely wrote: > > > > >On 30/11/20 16:30 -0500, Michael Meissner via Libstdc++ wrote: > > > > >>Jonathan, could you send a fresh set of patches (or at least replacements)? I > > > > >>tried installing the patches on a master branch I checked out this morning, and > > > > >>I got two rejects: > > > > > > > > > >I don't understand why those chunks failed, but I'll rebase and send a > > > > >new patch ASAP. > > > > > > > > Here's the rebased patch, with regenerated autoconf files and a fix > > > > for the header. I'd changed it since sending > > > > the previous patch, and broke the "there's more than one long double" > > > > case (i.e. the _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT case). > > > > > > Unfortunately this patch DOES NOT work at all. > > > > > > If I build a compiler with the configure option: > > > --with-long-double-format=ieee > > > > > > And I compile this simple program: > > > > > > #include > > > > > > int main(int argc, char *argv[], char *envp[]) > > > { > > > std::cout << "Hello World!\n"; > > > return 0; > > > } > > > > > > I get all of these errors: > > > > It works fine for me (see below). I think your symptoms are due to > > using a glibc that doesn't support the new long double, and so > > libstdc++ support for it is also disabled. You need at least glibc > > 2.32 for the libstdc++ changes to be enabled. > > I am using the Advance Toolchain which includes GLIBC 2.32, which has the > necessary support. I will include the config.log as an attachment. I see the problem. The patch I sent doesn't include the regenerated files, as is normal for patches posted to the mailing lists. You need to run autoconf-2.69's autoreconf in the libstdc++-v3 source tree to regenerate configure, Makefile.in etc. Without doing that you're just running the same configure script as is on current trunk, and that doesn't even try looking for IEEE128 support in glibc, and so the new code in libstdc++ doesn't get enabled. I've attached a complete patch including those generated files, and I've also pushed the branch to refs/users/redi/heads/ieee128-squash in the gcc.gnu.org Git repo. That branch includes your patch for PR libgcc/97543 which is required for some of the libstdc++ changes to work properly. --000000000000911e1e05b56ec1c9 Content-Type: application/x-bzip; name="patch.txt.bz2" Content-Disposition: attachment; filename="patch.txt.bz2" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ki6k79og0 QlpoOTFBWSZTWerfy1UAlU9/gH/8IAB////////f/7////5gYp948p7zQPtnfb09N7ao9OjvntPm 3by7Hnfe96eR6ME97utr53M7dSp9u5lzti7bWyYofd8+Tm7dPdPdjuz554Ny7MN0VdSc9qrPPifc bLz7N3vZh21JFAtj526N9LsNtmG3328hUKLs4b5eeKyNRSFKD6xKqPrJEevTp5Pdtzvee9ninSzO pte3c1cbZYhXs3yMqN3cEstrU15Pkee93bOr5tOb3drrjqhXrKL3muMikBVu7q+30HCle2tNKPdx cGLNg7WDdjQK0Gvoeve1ClgFprHLLa7vqHrueeDSUUadOKgqm2Z8JIggJpppoAIBMIynkAjCNJpP QmZI9Q0mxQekMBKEYgggjEIm0QaptpR+k0eim1HqGg0Bp6gANAAAkIiTRMU2pT2kyNPIptJ6YajQ 1NpNNA0aMoYm1PRGBoJsgSn6pRSNNBpTwUPIRo0DRoGnqAaaB6QAAAAAAiSICAQBBo0BNMptTE9E U9kxTJ5RoTxCZo1PTJGIAqKIQmIjBAIJ6m00GQEaBNo9UZTYiNGnppMmmTTIHSif2V9pSEnKWW4W CKsiB8CVllnFY9KvUBgAAAAAAAAAADbQ1mLAAABbWOK3eOLjjbKpbsQgQUp0UQINtsiBSUNIhQSE B/MCDzlmIRtjJCNwSYlYlTIRoklYriZZbW2xvGy2y0lMyZjQ2Lx+Dwd1eX5wXX7GEf3kTPrf0P9O iSCmGjGc0CsX9H+uP/thx8qY/l2fmMe4SZ34EvT+2bO0b1fHCS/Lx+H9EmunaMVZQZwUZU/b+trr ldoBjys/Rvz54THM/4Xf/bq/2OskxV/CJ/v/WXqs/3/91H9aYf8f2nnWz920zFkIdrDao9TdBUk8 GaZ0f2OjIX7eIXfera7IuF0a2boGJXLM1LDMUnS0Nm8v7heWOR/VZ2mf/ZPM00vXgJHg+14aGzVy cJ84beTGMn8Hx5Y00vwP/283DZeauuJlPyjKL+5jOc1WQ/aSPScx7Oobj0M3QZ7Mt6yGjqlKYzu6 GZI9lO+zqe6zvh1U7N7z/vEuSkuvi2fI1+h7NeecWbtzNqMxWZFKlhQH7XtwnCop0UFJOjoevRGv IF6E6F9etCfls9cInLES7ud4jlViSCTIXQMIUykS4cpcbsFp81BX2XYFtWHOPE9pLL+/NfGW9E7t HU7sWjd+N7QpG4+ulKtuGnxsMoqGZBDcdv5c7hPJSUT8mvRlAgYeR8EX2xLcg6DQ/48WroUkFr6u /cVqZZpNCSFHnwiAuDtrYHZPc+9gp9rrRwzU6uiM5ct5tiZRQmRgBFkbmdiOWF7GS8lD/63a2BHN 2FiqKlRaMzc9Wbs7UZcv7rYEFVB8r461dl3M1phHGwL1KnpU8wHUDDZ8GT2eRs1Hae90tXHhqOh5 6tS1L9BkEBV4dzHhEgmLMgHeK4DCrvN/u4KnJgGqcezK2Y57PZg3TKvUQ65auchiXu2lbYhYgQ5b 7wmjNAN5tuPAnfHxL480aqysgwXFVEDrMhH4WlRUUGcVf6evcTbdZlxe4bmbT/DvzZpSTMDMzJMM hNiG3oLwcW29DmsRbEuOuzlrRhW/Jzws+n1oBJCmM3pfBjI7lLKlg2lBiDGUwNBdGHi65TQXEyxW MchZl7MuSfA5TVVMjwKqXUcMxmTSYsysnZ2QwxsrGWDVkdIUT0fCWSoWhOOhbP0TZ1OB0eunKRfQ Fg3+infVzdmZkYkMqKoxbowdz9/E71uzQXMuzfAig8a5llr+w5yz3a/CPyG7LSLM0FFiaimGLWqE JJNnLy7es3pkm1PM4JxJRmVcSeNMKqtDoDajp7dqTIjnjLHLnRuRkRTa6OcxXWeowov3o1iGI36c UfTWdpIXMozy/Tt6rcp1o+MxpH4yii3MVnSDY4jmmCGYQzIpYRcYBed9PTnuan0fx2Ko2ZnozszN Ll7Dpje7G26nB7IPubW5/mS0b9mjXqbXkMJrzMbqzVy0OlDJau8Oz2VnUJCs34NwOgSyDLAtC1LT 17mM18vl03PP7Q2/9+Qeso8gUewLkqeOEDwg3FnZ2s8nQMy2QiQ83ttz+nz9ZQaO6M6rBTuOR+kY 649XWgiZb8H5fsiu5hAVFGQmUnNCLIVUBOfdM/UL3NT0+/+2Pl9J+K2kKdFSVMSe6XsEyUetXGUB mZjqa/o56oti3kHUwUwcyt6YFMNbW+fOZ6suros78ctOTkplZktr9IxjHT/H7eFX3MaqOf+cTWWP m99DwDkyvwPZPyh3G817umpUt0N1iv3l2ji6ax5SZOwxEdyDOzYNUb4SxMwBFOtACRVD6UZIqeaC 22YMs6YCSwuasssy2zz3xl6LLjNra2za4FixBJSuNzRZwJaYLTLNXLGMmMrWaMjDK5ZIwiwYsGIw CkoIWI2CwDStkCqoWVKKFSxhMyUZlSRVSVUkyMUq2yUpJhVFoSaBKDIA0JSCgg5SA2USKAmwYhMB hhd22/Dxhl90Hq9AjUs9SiUiFUUEDBPRBbRBm6bhyxATJLymMAq208C4E4fDnLK4mrDES4wqqph7 CbKVKy5qxYNt022yiSXLFhCEKGqaCfmzT44shGfXx4y964fiHgH/PMH4QjeMk6JCfXu51JwNIb2X 8oh9AiBJlBRTG30/y9refp+LS/lGLUS+uNXja6Ris7iH6kcjCBMMqP8z5D4HyHWHcC+wWhdQsAUQ XZRVSqrp4mIly0rPzP70+YjwH2Df7OuOf3LJpn3EhdbkhZLRerEIdcD1sgLIxXVDzAZ0tIO8dGeQ ET6C/FCyLrPMaD6MiWHeLykx/1rAz3GVEFS2azLvmSc/ZSTTGEiHuzfNaj0jDMw18+2HRq2vpRHC Au/xsfSw1u+tpcXMEqIH5rKwww0YZF5ko4ytksbbDGIYkOtml2UO4o3PVO73kb+Qztgp6FBe1HwB w84xjGM7g+cbC4IwFPyeIwXtsoW0BiNDZRaB4BkMASie8Hz4pRasWsGaYk5os2VpqfkT5zgn6Lys nzhyJ/+hNmHmX6vP6Bc2X1O3bw/4bk1t0dHCT8r0WUUy54NCc6m7dWNuqXsfLBV707rPbduhnaO1 AjEdVV+k9X4L6TRQHTwOW34wLfAHJ8wiSPxuHYk2RyloN6QbbTZ5RnFDhRme1iIeGyZ2lp4B94ww VJdwxsRghvmw9mvyWlSIwiM+V/kWFoidKM0TeYn19qOCPm+YnT7R3YI/gj/ajQI/+0YC7AkOBBhx L+MFxPPV9i6Lqc/l4Fevkz2ptarqoUVYowMncN+rmpJVkCF80qfYhfL248svQiB9YTK0HgBaCYSS wckMH7i0M693s4HNv93D0S4UxJI4sikk5ChCpqJ1Qe0pZQgtalGKKLS0NKkOMRatVqVZkpaREkb7 EJHihCTH9kfjK73a4cHo10fBHuQP9vwSpQepHoF2dp8gC0SnFHajleB66xxv6s8bi4JiTob4jMM7 O65klEvhaVHs97felunSegRaZ0eSHvaTBwhZXypEpPqoSJnw03nR8f/C6RcTDQX8c505wmBYTJIl h/4Vhf9V/JRNzlkmaV1niSdViejejtQE2idR9qfBXINiuiVOzz3skuvTuuTS+X+6c3BMvWrigftE 5dCblC5yVtDqIbtN9CyhwJjakySqS1sF5wD/lN6csy+Yo0dPtPkQPoLiMe06RJj0DCiMQW85XHHi fiRoJk1QORL+8BxrXrKHxYAch9YtUyqxmtpbesz+sh5PKOm+d12MKKrxWXxMTE00YrLD1sOwbVxF NLyuFqkFHQwljBWuVmyl9s1f6Tk02LxhCBoQMj5CQSn1rYtZKUJysERW9Z3zW2zUokTkmihDVAjD B0lALslgZIBRFhFk3wbj2ORpDM2Bz245bjZlWHpKcitKNMwgzBcViwsUNNNUKI0IuzjwUfj4GmHM 5TFhwqFsc34v6ZSgPlwNgjMKIDCjAbDM+72KKDTDfzOin32yqyI6Nzpe1154vXdfAbNpsLnOOeLX T1dfh9j1vFl5Mt7HR2dO57PeCAAAAAAKAwAAEkkkk+8sHDywzO4oMxefHOdgebelsJU5rcs+UIVF 5QJYQKETqiiTZboRlRhH463RXkc9qO+ldlnzyxwC4wsj+vI4skUc+mEaQD/NDcKxKVMbuvJUNMZl Mu33Ny9vzV6V5vR0+66ufL63bHjHZeVy++Ndl1joa1rkHQ0cjloNGjly4aNbcccc6vXOzinv6N4c Agxu5RWUVhGOHBdpiWIikYMIBBCvnBjNP3xx8q31ouyzYRs9Hz69CnXyJHxprc9HYW3nbo+YMvID qp0RgdUF6Y/Ga8bbgv81qFZvJlpHfr1yaJHeh+BXkNMCAQYKKyEAprA4FdSZicDEo4E0aIexwPKL iLY3BiehC5mWy61NuwiPUsEoZ0ywZBMBU1MMK8dQiRSo6Lh2hzTyHz3SMxQeAgvGQxmshA89ypAk Ge9oKgUT5h1uWto54b+mtoxPkA8qHjuUkrNv7e7VT2cowkbdLgo6HEGDWsIRv33R2EaXzVDkKvzR t3oaozl6gjmpywJq+Sgrig2Ctqle7pFws+Dbz3zd3aevfyasnxnBt/rwHo48RbCJ8soQYM36J8Rx DcWMyjf6grcYamBIR/AquLK08spjGjvQT369s2bckZEbnVHhrNPjlUbToPuXVSlxYRcZakRumraR KXDh6tnmpU8drZUQt0HzhuDx0Qp0ozb1FiiuxESDiWjoOeBlOLm7gOlL7657HiuZYj2p7zmtqLlV +Z7MRel1HickNLunIho4y8A3xeCYUmpgW+K17vR4wA1GQZ4wiJ5NDpopNjo+kgdGd0s2JQfd27pn KXAgdE2Ka0QRmJQSBBnSvVObtKFrK6Olw77FL0weXaziF+xImvvz8LtOcNRBDwFBVQr8h3+fQc+P w3IKkYnNW8hzytcHtNcHqWdC/dx6Cpy3ttt88kJISQkmh3hEL1BH0xvh35u65RNEaofDzwFieaWk DHtsIlpaMKQEJvBBBAopAUKjIPju9fnCpML5nEX0sHQXfP6ypCVhRmKeG16CddfoVOYRMbLRSoce VCa+XdUhDK+mWSdbIflzRDi6yUM6KsF4kkkmVWS1i3EhpDtZJoChAsqrsaWUrZG/J7kTJtPphCDU CRNBveUzo5FrG6m21yTJKH7U8QuuWnUQ9ZIINgRO7kTX1LrtRWz4jIbzsHt6/Nmc2NEKp4eF+WMC eOSu93Q7k0N5KIimNTCz0pdxVGrsRksjkPWSt2a/ToX4w3ZgdidguCdVYi5d+Z2p+VMB3GnUU+kz XTqeu5FWTXSWpVUa0Iy8kNymgGWF9MZc2+qnm9boG/CD7s8gpZqIfTFrcTHC+/zjd5mpZPTgjaUq 9qPo+vwaXN6gnnIB5zknU9Ekb+ipJCBmQ/MMfo8TeidBDu3JJ027OlLpcaTYnBIr4pIspE23ZCwh VTvslK8V9FAu9aNILQ/Cglr0TsIm9kXJW5fdHyhSTe2b9yeHjVCq82ON8BR2FvwjBptyCU7oSg56 vBCc5GuKwpa3VIxhzwD3nUYqkRVlOlDoz5bYlAKStoN2wv4BlxZEacCESGiav62RajxRb3VxRMpq y5m0qyLZznVYo+by0IwqV16x9wReqyhqi5RX9Q1Cv5IQn2OdS7+tq+jeh3+tD5EM0krGhXwEXIoR BEfcakunt6t4aRpKzADiBEkXdYburb7xXYZGrYXnB+Rjr6pSGIOTJNvAeKkOhF7CzmbiXnS+dBpH wYjEkf5A4RTEOQg02jzxVEEG09tdJI+gRxVH4AxdyDdeE88iXT7pw/yNhvKD+x8QrDDvYiumz+Mx /AcYPUVFWJ96/l6T7468q0ng8vH1yi96lj5nY7lJ1naUB/mEkkjLwboNty6JXGYqSyzC+on8Lb+V /S3ZZXOe1vk3Li41aBDEZhwtWMAZRKpEPmXuBqrQWMMne9YbKLduDUZATENpbWkhtUmDFUGzBIVI iyG5xW20wlZptlqZkltttZq1mriZxcbZsstAABJaz/ltXvHA/caHBwMJ/AZVgIowpIwhag8JU3FE 8KSqkqbYxhOKmTwXXe9lCpUMhocKbEOyh1DNBA0GQZE1DAChnlKoCwRafzOUQ+lF8tRE8hVuYjPx sFWfGWMmmt1N6f5JZZKgqXVTLc9fyfC8I6V2muBrFl1TKSwpYJQ8rgKksn6XnvkTcn0Fb+8+78fP HRD63S2TI/MbYV+eJxjMqzr92IfJT2xkxSj6WWqRv+CXzMBSIlszIm+5qjYhUwFzgGgio+uJIBIK WgC5fdo/HhIJX5HIQD9IRYawtZPazZ9Kh9crPMUwCVrDMcwrwHSifmbzsiUUlhCVdKEfpeEiwMF+ xB+UfEwyANbSjPGZ2XLQm4t5QmMBUrVU3yGWf4wc53xjJGFV4Ng4NbddbcYxbwalUdfcvRvk4Ody BBVEgUoCus0tTuydMI/NCbkcSc0ROgUZITM2yf6Z0YqCnZV8bunztQxzte1njb8oVZy9UGQgPp66 ur6v/NhwQ2bNqGshj9JRlOwTeRE2/PbKztMbASsAtGGYlC9Zif5lj/X9/tsDQsBcwgHA/Sm1Kv63 c93vguwcDzER1UdES6vfI9kwVLYDhGOOkxthynpGGHd2be3CHdx/jP+XDs5uXOa+v2PnLXIG0u3r OWb6nAawZoEAdFC30dAiGooNtaOHI40mo137g4aCGfJfdbgURNRFFNOeDhlt9oLeC4U2F/BrL9qY ROiir2oq2lc7Tsr2fhItavzo7qrvhBCVUJYzpw3NqbVtEZtM4dLT82vw8z63ROZOw9ft/qT6r3GE w1mT1ae9YZLaifceQaYXnrd0YmUk+wTqHz0uX6TchqP5Y+eHg/jW1+5oMiBPtX+5UQGumf0JJGJC vhQVLAp2zBAR+VSgUlApzoqn7gJYgKNwUS6qsAMVgqwEihAIsVQiBJwsqCULBROr1fsJ5pK/Nf1u znPUI+gesv5jCDgSgZMnBqlMfw+6zp7/DnthDTU3ASom5XAGBGDJ292bwqLAtzwoKwCaNl57hVGk p70xYHavRDYBQuYwvs7FQjDbp741mlX/BoWVdw+FOHBGpGVEUTR5/IMhQO8SfEoEH51Dp9p+g9Zi szroOtc1inTiFbHVfEGyebwEdBGgbTst2OjfLy1x5aeUE97QTr3oewEMjRuuCysvtKSLflsJgV4o qs3qORGovD4FJ9wRIhYaBjkFzVfZ/B2c+Uvrr6KozIsfcVlaPErBeHUciYi1KKUpelrFbwtLzFJu rxZxKLaJtA7u7FJrRFShcLKUuUstZhoaa2LxWlKPF2sKOzRMPWLRa1VvF6tSHWXoVHVRpL1iLTNo tdpIayrea0tWHsgxWVo5MqQyRdm7J8ip8qulXU+eQjviwg+5PoZjCQxZFPYUJdbgpcFLApEir2M6 IoG5FDR4vZMwZIaTok/CkMth6T6Sd3XOy2qo6CNfS+cwxTWpw9W6DLtifuJwfWVU1nSsymJKk1Fh HaSO8mgxHjzCJqgvr/h2L0Aa9UOlfOoeuwXJyh9VhlnC3CkpXmCuJyOvwHVq9hJ5i0Blmjm4/Ooi dfFMlzMmGuVHR8VrTsuUbGjoc7mJMBFj7x66OSC1POthi1yTKT7cXLJPx5G+wXdYvgT3pklJEtUn vrGeOjt9OzPPwzmTTfumpRN7DOKgSaAlYh0eum2dNGLkPu7IG2K0WGhqkl/RZEZ+c5uy//5b6OfY R+rwbtobfpqlTGlO/n2TnTOnJZCFs63nZ7+YMayVsUE4KTIGqLiwJJBfX+lPDsbvMoQ66CQkZAkK Dv4bdvPpVVgWzS0z7vo8eJaVVqAtJmGCFm/7MUhwhS1mKQ0hXAvtFlXQlZvdzKPFCSmFCqwsqRDa iqooKXRMe1DWNNnDpqhOpTSpkqKDckIQ2pDqs2/REGQkBkRkB37OHGbeJw3U7ZkXMzcai2WWWdaG hcPNtoY2x38jG2hvmEtv5OtIYCjn8vbUgSJPrpJEqv52bMSSQbBKiNocukqQyveIAYSoJjFMpDAg xwEqMqSMqlJAiVECNMosWD7E0Teh8Sg3D7GVhWGZWatKW4/TXvn2dPdeFsrWxNrXvh63xV8Ws2Jw UabPWJxjF4W971ve973/FofUH2HwPwn4x3pj344A6gj4qjVPvSvCSx3D7VlUZkn5TyIycI3p3Rk2 6nU8DwOQ4R275LvTKzv1er8uSSJJJJJJJJJJJJJJJJJJJIiJJJIiSSSSSKqqqqqqqqqrk7I5xOEJ vR/Mj0xl88bDcfPFJ32SFlJaFoHWjKjttR5kcRd20Dw2kJn7xMP5OJOxO1hfrFA+/8AnWfg3wbFN aPrSKivlmdcShsCMI6agiCn14IFriiJ/rS3yT3TrF2viyv6YNapnFmBEN67vlnyfzSvtIo7S2NUO KfeesA51ED5g9pPng5Z4WfTa3VfDsZvtkUNqtdVmNO1mI7WPWy6ate4MlQMWM40qWP6fJC5IoxKA uz2l8MrZobmHnCLs1w05yclOeyYzvRe/NES04AnQCgwg6zMN1i4R4CRzw6M6ar80Hx65j/sG+pvi YFHtLBZqjq6eblWAPj89IGYgw4noKQ1VCCu0FQ2nKG7bt10xqVKnTa3I/G8PATiTbLssPeUZlStp CtMQJkp1Vjjyo37SG24nMFzs1cN29JpBsN7BFQYsi2lKUsKKUtWJvb8W2y2SbDfII6wAaIRP+osI 0UQaGxFzEcBddthIDOMEb7jrZJYCnoKambm56NEWKcgATyCxKE9U2rSQBIT0Iv2WDXW+rMKY+KjU VlwCCyGgbGGby44446qU44+XM8WtAfDqgBsG222a4ADRy7hRyTWiq/Tvg9PHIa6XZs+VAYanQhBP Ell6es1gEwPeFJdBJLeMJBvxyPtL68aASQPVtvXc4JhZRfHemi2fcWiwfK/l1jgvHstKtSDRXfda Ubrtui+SeR6DOlBK8UVUxjNjQidkGBgzfKyp372C1lFSLzOieWY0teHLQ1bQy2roZe+ZUrmrUo+t mWWFOm1a8Fcpin0IYrXZm4LibcvDTdAsqclhAE3xUDjzUCa6wnPxuiCuSHDCxsuYV6jIE0IDsE0S /TA2xnTEJaKIQxe3C+VWojZLkZrGFxnFvE7ra2x3MIn3IbsHcKXPDycQzrGcVpojyhbnaUnoab21 IZBaJd23xSEIjk03FJabiG53jw+b54nla1WWz/G/q03pNunNr9umNdUx5Uzxv4ww2Xhhhcds673l 82pq+lvKnTHLM40XjpxxybTjJA3R1jlxc0QA4iSEXUynhOhhW5L8Ma6652Nxm07a4ceddYlZcU2p CMC3bLjiA+yjLCKwGJsHIyk2eiEK90dMxyVbys1DyUJyCRC+Piqi3x9keh+U7eNnKqoq77RpyjWd 7cM2wCILFmnRqLpnyqTaZSlXbpTo5ZleleV60rvh9IK4nMVAE9AICCoqBbu5eUceGW9Dvz7+Oxnd lZmbeFLuFvoGKG2aNb0Q3ODbslLMWYwdg0Q3VxMUYwtEqysWnt4Qr8++HWOvllPDFrddjOa6G8a4 7Xtw3juzFNzexpO+w9yykmmnKBZmcmnLgvDd0M1YJZgQx4Zvfj94FS2nXjjtpPRBlRBDEa86o6op HXJx1NIDjXlTRy/RqhEdbzd9ZTqtVB9F69dmZw4xOVqhEMHWj7eAEaqjAzG1zoFAXXkiCD11fWLb 6cFl70Squ+dofatdKXeldd+3TPTTvXOduqB5HBDPpouhkxvxi89USnUELqaKHyx3BWr4tgJOws7L HVG90axKGRJGdidvXbZUz6aqF6uacNuWTjkrjXtw2pbExXwW1d1zpSmSuemu9cUbFK2Xn1wtdddm VV1ptqWzffWvWMZ061bhjOaDa2vPKlLX0WLLRrbKd44AG+/LELxxu2+BDB01u3cpvz21uVFFFFFF FFkkkkkkkkkkklJJJJJJSS7Xasu917nkMuN3LO644SQ6JMABjfAecI5oTfHGECLvjMACoAreF5TV 1rXnZXqWUXW21Z4VtOdpZzLOd+NWrbdcd2mm7p455IDfHp379+IA8ICiH8ogPYEAQ5nnhuPa/bbV dOnK3Pvt2ERAMLavZDLM3BA3J1y61d9+7SO16QZpNMXt3zizmenWz5bkpHNtMbbGbtZdNm7Y3RbW iluPdwqmi545FALT+A10ffHTH8HHXTwQD7c0ID93zElsMI7HxbbHZti+FF8TcUAIG2gwwwyVVVbC qqqqqxEhh9fq+7HqIyRIG4IoR6LJfcKQW+/jxsZQAa112QOloJ3apQi3yLWpZIoeMnb8fyKPjyID 2nwhjIZL0I6eP7ARuGD6689kw3x4GFZeV8klhj5WQxNkYYTIqyYXHIh03UaBwh2jq2jIQhZ1CImN XJbGQQYbKkJI216yb4e9eJKF4M4W981/qRzHO4i4ZEM7NAbGI7TGAMlqcx2ervyRnYyCgpg5A73l CZ9oETDKPPpdaGx8/ZBFjD92U0Qis1m7JCEGvzuzMxKpRm+KkW8OP4fVqx3ZSb9M7YSlWzczYQq7 mY86jzSrRsWZx57m2MWOqmFeCNMIBoRaAxhUOixYlnp7quKzi9u2xeEL21bJEu1FBaY/iwmrYf9E QRwpYTMOdxoEv3gjif2yMyeQptHVFqIuQYkKIqKEuPztWUyw5dyqu7TWeMpoWE4aseYIsClhEyoc AJAD3sqOCJgRc1OgNAwS4Dh1T4iNUU1BX7Fgqf4RFqMRqioCrIqleK1hkV/hGoBEvSJiGZFId4LR 9NjRtqO03Bmq5gfqVMAO7sd2oEmINAaJqVPP5zROJE0aKykPsANiKYhV17scNwb9PEnhGeFtq/j2 51C0RprD3/PqxYNGcQLCw7AMFpsbbbaZZ7KuBtIjLa2ZdfRdiSDd0DFIMXTV2qNKD3RvDUoVtuVX hWWyZzhISSJiTDOC4BDQh5Ai5dqv8B8CP+SP+iNCP8kb5iwbKhRiQWyABBgCm+RP7ZCSiRoH4xgR Q0q0tkLapVx7sW5TJoiWRIqklRJ9Nwn2otJFlV44/dJlYUZz9kiTJ/oSf3SB/f/jyb2PdxJ2yJ/g VEI4vM5HKEIoCfzULqrr+v+KRKTIAM0vA/ggHgjMHI6JlJB5ZG0RNxkSRy3DhB+Ez7P/Hs+EhCcQ sgivLcGSgfyFW4jEiEUeAr/EA/xtkCCxFIoEFsKC4KrZijzQ3c0WCRIMD6wP70oV9gqbYqIbTqAC B/iobg7GKKYqtJdYK8OhzeJ0yaiEe+QrlJK/zJTQVsJiIFJLKAcBvDs7qTy80jAjJJJJCea9iSo2 MhWHkRWiB1wEEaOridN7WSjar7sQCkNsA36cK8Aoru1zTolBOcmpry2bMFRIMCejjmk/jYToHxvO 3tkJCo+8hzVgj1mHw2HtsNC2jAUCBP4TH3/h+a1rWzBwQeEJNxrIRUkZJGIwFiMAJFJJD1A4B10X Be8/6Dzdf59VO/UqisyyMy82ccAAG5mZbbJJJJJJJAAAAAAAAKUkkl17ZbJJJLcr3PcAxJAAB9oK NA8f3vj89VVenuNrIZznNVVZy2sgfZpp8Gy7utbDu7vWta1cgHetaUpT6SxARERSlKQQQBaZtazu 7u7u7u7u7u+51D40QD3h2TvBET2B7hAeKdbKnVELXz0AvCB5SGiUPsz579pHMIVCPE/IJTqer73A nGZjUgeKHN2OUkk6o2k9O8kybe2iOZsBzLCRVkIYoUi0WKaIkEDavBH3BZaUbpSgYqBMSwXRouoa BdAwR8h5g7jl0Sg5zzgYYC/G6HJHkiBpsIbUWylZJSk52QT40nWoZzCGVJgkoi0g3TOf7f60Amgd vyo74LYS6hKDtDcoFnSmgNyEHvyJjATEmk5RQqg0e/Lo6gDv1RSSCs00IDObvDYlMCEC+csR1EQT vHyK7lQAgsC6uIc6p8CixBbE8iS31bwWvSKs8AIAHhQxSlRNVwEdS5ok+rOoMOMFDb8yL6xQiuCT 4wcIzyJ2IpvPj12WsfHIL8HhEwADIRt60OA/Q+48qYG9Mhfca/cb32Az7P3QYhsdqJ9eyIf3vobk Q3IhuUPClP6GWBHikfv1YhYWRBx0H7bbatVZVW8abzpzOQqQfyHc5oFbiA6CuzvDuD2iFKoRIChC jyDgh/Gn0xKzF/y+VpE80QkfRHcboiVI9vsRL8qTMJI/xpwexE8NJ9J0sSKgR5zE9gCK/ECPyWzR rbabkaujSNFwOoKPnMEcEdgu4LI2R5lN56wzTYLyUIfpDJG6i2FuhC4XRui57giOKH7AowRwVDYC g4A2zJRgjSMRiPTid7Xtkkb5CpB2lCTwA/m/fOJD8V+Wi4jz5JZNFV29huBRTFEew4AYxGyxcUFH I/IoBIDD2ZgP4/WZqLYyVZsZZUTlDjGpg0gVHHEiBxkyHwUUIGQ/61lYxHANkGYMjD0f1Xs6pqkT iiagugrZMxdLAtC+ksoHcI2EaxOCPNbzo/KPnGkc1Mg6hGl1XDmF2iOZcFFNBGKuKqAUUIEBegRo TzJsV2KG9RwCI7Lp+rxqgBsaS0bykEw5m00JJLAmTR7BIBGDCQeHgHLqRdEegR9avMmg9YnBVrOK 2TZcZgna1HNND+f4PvGB9LWf4NdiTcicBHCMxkR00k1DdSDDG+gWKgsqDjtGjUJp+3VJx8yCfgis pI3U3wVJnm8ECjAtYSgcecgzyyUhQeCkKESN2kbo4o0qH3owV5eBKMIC550AEsqTfHSbu0vQQmhB o0MgmSBAi4mIGcEhIjBG6MR1R7w4BwWJB6yTudUsQZd0OoTownNiUg4O14hL7PzrzWcl46NUNkDu AwQdNlUVStZzLbZbFUr4jPlJ3Ih3JBtEGn7PE/Xpotb5eAFLFKcDgQ4AxGEhhBo0RW2IkliQYbLk WjC6vB3MImRJMJZgFlniyWZ48JB+NP3MMC5OxuZh4pBFb2Tluco1yENHJHyKMRpaEdER1TRM02li x8QLoCOhdO0RzCwIPXiQUgRKXN+RuSdEbhpKnY4yKXsMGJFLgwmCVMFYJUwVvy/jz4K3QhokqQ7V UovP7pIASD+JhILpuRPaodHcqAEdBAejoTZkC5rgmT8aWVApMfq2K/LM0fjiOQDqPIhSHf6YRPlM QseENBfSLF7Qb4OrfE1SZicdk/WFU98QcKCyTO5EwiZg8MkQ0goiSYESTlHKQy60d0na3R5ecBP+ 5+w+If6nEDxB7oa+33Z9eVD0bTefCKx9yH2FiF1jQb/qPl3z5XzKq238+nHjIT/IqlClSJ4PJcT5 RjIXH2jnaXjGyk3Cd/zV2B9R7/zuBevb/TUfqyvMDof9OnJ0k8zaJ4liNB/YpjP7DreQruRHtqTi QlfObun9a7eU88trbJJUSpLBDLBfxOOEJVSoWDRLdTIyQgpAurGLbJ9r9DghktskWxaUioiySPy7 OuyDT2ySX6F5Et3XCpjBgUllMoluWVbGbS1kmZRpTLGWGUslKTLGWNUEGSUrEsqVYtv6Wx+g+ptK LLLKlkk6x9aT7pJjZs6U5isvyufb0OEkBYa2G7slIEzsnwUJYSFzlkJN6TqOBVUZ6GHblK2R40Xl lOSjWUS1RGKMRiNCSyJVaojBi2rbRKqKVEsSlnuDh8nHh5Wg7npiCSAQGqYqZTJIJl57cSk3gAAA AAQAQAADcsvTsWZ0Pj327mrINixSl/r/3sNoyLoRQKGMSKBqrMazUDAmxvQ5s44mIRCQkmD/0WMj xX68xFT+UQfFEHW3vQdAcuWkQjfpIflPVebMw16ztJgkLIND0uzwzrceta+pDGBf0AF7y+vTBo/T pVfFYBiyzAxnoEFFUH9gyVf1qp6M99eHbZMkNbjKJtuqUpS++eHQk/r/J4z4ZDq6H93SN4+d/pb1 DxCiUSlKLClW2KUWECEk9HaHJGwINwQaR8W96uZ6jcel0NgQPxdSBuNoj5jj8kqqUKWImCPlRpwg OBDceldm6lyOhECIn74UhBXs7CJyJJN0PUvtXA0QaKSqhktjGcTVELxOsecB0IHqd5zWGyRC5937 tuiSIJIMwG6tgOXuMAsMCBIfvongHh43BcIJprP4TNINNDqy3hG4q7bsLMoXssEulASSo+/UpIKs A6dZQ1A9oQygTrlf0RoG7UpWgQ7FYHGSThQb4MjaFROhE6SaFvnOUEaEc7cIJydCPp/V9K9cQpPo DpHjh/GJ+KSSJm0nnx7EuTAWx7m9+GbTXaJ/DtJNHVGsPf6rKqqVUW21VhrxxwVaClp/iCbhgcYK hkBtL/EYgZyE2bcALAOIsEdOAW2ZpaSkcReCpkyu8quq7MDEJCG9WZxWXYzonPVTESMBMkwIJkP4 1btAZx/rRnErW7CWJYCSQCMDAwMbW5ZtWKxViJ3sttT9F1ZmVNyyHOdGBy++3BiysQW0wDpSaPCM 3CZBdgCvDQEvABMMhA9iMOWK/yiQPGaRN9fWjmQbQmZP9e9P93QnZF1dIJXGOnA1MNkJgMqYQq2C kipMiuosBZinETEH4JEbGwiwz1N0dRKgUVJCMFLCEABGBEYGNrjhMolJUSotWrV39jx4a7u10RGi x0uOYmdXjttVbbK8bDDTCdyO91st7eQgb+Y3b8B5FNibo1xqiB7oHPEH96bNq71OMNS0EWNK55kn dZIqWJmbak5m8lLk00m0p6w5jkjmNQdMg8muU+j13NqQFewXDA1SYE4gRjjH4mqrXOyM6G0ylRz6 NdvurMnMI9pfyCTCGL5tXxfLZDYGtH2o1IEyOQhv3pUg4baTaMGcQbPK+7dL/xYMH83HEmGPzPeM YyrLH9FuWMW4fB2EPJKvkftqSWi1IkRkRD0cN46i86Pa+I9UAUyP6pm4989+hvYF6mKKBVOD6fNc 9nXt3VoxORGdKHBXCOKQTDSFCKBu10PNCEi9Y95LYzgCP5/lSdCPAPGxLZtZGngsAsabQswOtQQ3 DzH9bAi7vMTdwfU2DfXNzT1npaadRv4Gid0SucQ3omE5p5w4+CG2TAzFDX+XhxW2cLfVc4xlrEge VyJLFgqxD2X4vs6O1VhBdtCPVNkAOgxwFZ1uwdrc7MSki0UmGS6kM7wVeYYIgHoAnfDAzVisPvpP LBCFkmwC3Waa78k5jUQNq6YyCTEpWokQ0O0YZyuVNgtGgcyLZ0Bs+EkpNC/Myw8MfH21CVUkG+Zo wguJEDeHIXwAatCZwc2unOeshmGCF2h0yhhExaQHDijAXkGMHGXSJQlgSpVkbZbwnSsJy0uDwSJ3 usP2aQaRBsNLDOMMJHBHDhiBNidLjBM8tUi1SSJoLsTQOAdQcXIBQMTcGqQCetJA2B/UAkkcRDqZ gE68Pf82PZ+b3lwEQ/MAdPnVgCT6I8fhd597/Ctrfj0xe195xj1v8AP2jyQOPlQ6O8ujX1Uiqcgi gez0ybGqkp3mGjyiaRQ6vJOnsuC9pmgFuvssYJG3BHxAdvyHb4N8BTPRaIqJ5RDxuOAv0j9cEcvA ib4kJ4SOitLEllpSlMUiVYkYOlFwhVRWRGUTzvKXh0QeX8+D7Yj0WvYLTQEF8FE1RQCmm40SQItI FiYOPZLLC1I+6yMWC1O0ivg6OfV7zYriJGZwWokQnspKCEsLV7Jj8cLhtGjPOi8t8Zch1gokTcp2 cYiMgBIkgBeC6546JsLp3b+8nduyWDpCCqqqgAnn5z3fL7OfHfl67K1N8Tnt27k51jSwutZv2yhL DnW52HyoSDKD5kQSEGfFYSNwJG28GGGDDDzJtzkniOIl8jDAsJSTUCZWKA6CKlyB2OXN08/joyda MkBCCewCPmI4NLR8Pqvt5lYYfPoAXNb8PkIhCCsjIJIyCEIK3/7UhQlV38ue2Gd+btBxR6RYNRA3 7fLn15a/DNpMwSWF0ALsGzApEXxaa1hxPj1y1Jeugc2JITqgPrJIM+SUqWtLEnohGR3EkKTOgmOw uC1TjXu5Jy6UPXLBlJemCpiJZD7xjkLonkKP1XBboW2Ag+J32Xww/ji0RIBpbBiY2k02PyLsdMvo +JuBRkkZklYw3StPAim2YQ+W8iNWAMyj3RHt/ZgoOHmEttdKdR/mUXIbx2BVLQVFlQoLCMJMFD67 Gqknx2Sd8UttvN72ZFpatbawhFA0bI3oSNznuW27QCy14McOQmkT1ljr6o0ZaR5pkeeQsPwfgj0L aurql6RoUkIERW0YNCQS8UMDr0t87hrIy9yQ1nI8mMJ1wbT7BUjRXWsqPunsCqFQpWuDPQG0CTck S6cr2IQLECfMTjYysNAOCEyYgFmKSqKwSlEwRQa7bjReyCplIaQZToaDNorLVy0Fq9FYxvLBCKXs UrwC65NlgT0EnCMR2TMgcBqHg6YLG7YSUkRty9nm8rqu2m32er1UR1euiMfHUhI/a8kkoAZ/WJSu hpCZoGLM1cfiMr6ey+HHr1H/R7mkAHkiideXVZXqh1f+V5sJbb0KajAPQoeMYj1UlSSIru5d5c0N ck6eOlnj3Nro462UtttiMxkSshLc8N6t4crbbPb28aJmCRKz9NuVuBQQhTUlDH9YQRf95lVKaATv OGrjtToeKUnplc2iZET0iYAps2eaubECRKFwBB+gFNl9V1B9xOrqzPGX2oyK9ok0CYjZlzixmN0q ng9DG9H2qtWx79Xdz0aRaaVew1bElPzRSitqws+6vmzh76koy/O42qaDLFLjaIGEiKDKaXW2xDMh DMqUXBlv2y0spi1FE8TxY+6VUNYeQErW1zP0E8Ec0zBKxzCgdMCprsTESJEumQS+v6tuHHHBJyTt OXCOnQsGiNCku1OITcGGBl2W0CuqCZd+oKiIlMF/yuW+9KqaDdEtvV2K7RdaALiWVgOAKRDOghIj lxC2lxIX5g1m+FC3bpDZpbIiXwyaEuAXzU8EtCsNUGuVkwEDJWRorNTHqXteSJiVtpJtsG2A6Jim 4XIxWFk2W0qnd6FNaMW5KF0M5mtKFuiPjFex6aEj0NeBvXKmGGNP4rIwl8ILCwCiI4mETVALPneI qwq1QvuhdUFus4UVp0WymVSKjZFDQTZ9QuZ45upUNc8ULDdpCUQLlLmDZLBFFSSoSBolNG9mOeIh FDPGDoZkdwRuKMzEOBBKYImcMcLjatkhYS7swc9c7QWYQnP6LqF1cQYIBkLjmlDJCEjMhBJDonRj h5O9yQCg70kPq18/jq3x3xorot8Xqor7Y0xGsf12zqzYY6Bka2EyZDJC4utowS1qMoIo0RooQFQZ WNG4DjGNtttxCciRMY+0zv2Q1ILIT7XnM+xtPebRMRrqkoE2xTshR5MPIljtx7Ovk+UZ3sFFDJ2B hY18N8ZH6+Qh9gxLx44oFYksxzwSOWItCh9h4DDBPgDq27oMT9RJl/5ur9kWMJlDh2PQGkeAWiFr ZAHFE0bZ62uEcVBSiOVcYxCJqus6EZRnhZSYFQoSooroFHHL0Q9gqWUtzhbbKEl8Ovs7IyvyAlSM crLMjlyigZEOjt1iTpbC0kS6IPj825fwwBaPNPRNOtFHQDtey/d0CAX09vXcBmOQAnluJIKsUhGI oZQDcNA/WfEAZHcwhxe7ctJ4Bwfz31H9nw9g11Wyvrf6v2vdGla1ia+x8zv9cWdbrsne+xOQnTzm CKPLJDoiQZpEsaprg/ccj0pGY97L50aY7IVZbV7VtSqS1EwpqAlrfsD/BX5lDb5zc4njBITm6pBw GQu+0H6+oM/Mr06i6YPVsHaSSHSBytqnDA7S5iWawHLzPXYpz9BmXTKZDSXzDA1uEsZWFuYUgnOg GK0ArAiIhkkyM5fdjBGZGrSKJ1/DJ5J7Fid5ux/CJnymTDCuzdzGzMVbqjGAJAIcK5ftMFY8rdSs Xj0p0wzois/dOVqo63ZFVIj7Ylb32ogDFwOrBMWzXH7yZJggbzYKF6TPfd3vAVe2aESNw3DU4nts Yq3pYxFRUWClhUuElYi2SRUiktKWEOqkxBzTYD4S1wMYlQSRUmiOIm5Mn9UA9lSlg9FMcEHpNxI4 dU6kHl4u+5JM3DnIrIuswcbD8Tsz+uPwt1VNj8v8wzmBPIG5CHikn6LIk6osHGg7gpakPl+H5fpy UwAxGFEipJGKEgSQhHERo3gxjBKjlIrn30SikhgimO371a4LIXwY4YAUdV1mbpSL/l8qCedrD5PP jO6VXy+VD5Imur5Se3OJIA0FM8B6chuEJjtbyDU7kUhUxIEJ4ljQJZq8fsWHSA9fN1ddX+zlN/TM dokG4CqV4lqoM9jF1QJGM316k8ly/EY+I0GWicK6pEjRBxCPHMRVU9KePBKeAfZJtJCN03GqtlLI /I8pgjMsVwqnu93T++35T9O6b08A8ETp0n30dFdVJFsJxi5wYxkCQ3hMwWCWCQiveb6yur3ha0vd zA9KbRTvBLDjwgTOVt5ziOYrbb/DG+ZYeWjFgS0k0pNhYay1/SYiegVzWxug7oo6bom5qr9XrzpF PnTD/PZ/sxkOpRt5PRmE52b0Oyzad5NUgkiAJeD3WcNDgBXhBSldEz1D+w7YnJGwLIcv9hwJ4h0x Y0khOTuTkn7Dg6a8DlCF+vi77+SoZFzWJVYxJioRjIEiSkfpvKAKYXpQmv7cslVKAIIo2IIEN/mK 88ny1UlfGXeePvHZ+mP4RHzaiUCNosigSIUO4dynASXUygRIJP1YlrpkLShg2qzBgMJIpEaEOxpM EmQYWPEPIq4hgNC0LTkzoA9Se5X5gy8lCfbEH1FUn6fB0KG0T6xTcsAAulKqb4bDgoYHnV+Mo/OJ FIQsUgm+BULuFVLvi+4slzM4sbAtUshyGytgwcMVaT62IFhcEx9QnGWHospafdu28Mebdv1jyMhw V60sIMwHXRRX3aUhI/AS0t6fT2ehyQ0BoPAmgkk8wNYqGgoBVIM+6Xn4DyYtt+49G20AaiSPIMKA 1pOA+WCPFO4l1fIYgxXRxQTL3z3o/TH0zvkxtJCVCxHIE19AzExHGgg7fK+4OWYBtFfEeNHgPoie 8FxhJzZWhnKTAmUwkzO1dydI7pusVSjMmduzPk1qiwwoKKMwJvMF/tBSKbxCIIRIzUpaICBAVeg5 jfTr586KEsn5ae2KGB4rVqQhCsrqIyCmNK0uBNmoD3geWkCw5HinJ6sFVOAifHxtgvd5ChPPCEV9 OFEBJPaQASiTjSNG1Xqp57omwToOhW6MkjAiJAgRIKxWIEGDJBcBU8+2Shr+ySFAn1ooGqj48/x6 ip53zf3+AfcjgBs7oySEUWSUWejGAtqVLKpeXZEp5WGGz1R3o4a7b/hjVO99Ojett3Hls5hoQ4B9 ohyR8hyV0EjZO9WSXzUmYmEZKI5efvI2icVSkpTnEgayPWvz0mfKbxZtNouvmJvcCEWQksl0AtJi HVIlLUiLUgxY0di/1YRgpEV5jpixu48pJspOj7BYjRy7+3i6j4UaolqR4MWDdrGwgn0EgWaxDvHz QJNzpk1jEcpkyeCWQ0zQtqVQpjHREKqaE4NtpMkAkRR1rKwNSzAu4iJjkJiAlorjhSO1IKhndMyn 6pnF5g6U13SDuXjlMJOE0OQYPgTdPDRKNhVN9JSsOngly1O42XSQWJcfWiHlGkxNC3ACPSWeQoXt fG36CRuFZMkHZQu0dWb+aoCb4s8VBaFiClJDyUP9RZoY/PlWMDGJhFtFikCCSLFSCKxilkmLAYwF bYMVSRnCQwnU7bmMBwKOsduHKhrNMQMiECiL0LahvANggbwWYimSmsDGlDqBaV6D1dSIjOK+JZuW 1TQxnkh0TSLB0VPAlA+T+3PRR80+cQwS+ZchWpnctuVuJYeQAODzCSlgBUohkUpQv90UyDsD4KmX pA8oq69vm60tLPBLREi9L9yQIzb7KlrTdNezzynDnfX7PlhXqLPRXlu3nTlZ2htjbkRihLmN6oS9 9iFvTCbg/86SBam5MWQWHijlhD2I5ZweaKqy1P93PTvnVbw9MYr0WWKf0eTig2SeaDa4AsOk9aut mYamqVMnMhMp7x+Fz6PwR+CnCyb8JjqBM5RE09gRgTXqFQdgSxVFYgGBvuC44RNUTvFyogOcVx9w BQJQLjwXoGIA3TGlVJfB9SdiDzvMvtKWsWslCHGk+c2kvTRWDsYD7BHcqgG6AaiRWotRAzI0wyZE y8O9Kwii5ViKGv0/swB0Lm5ctYi34icyuRQNld3vpsld74DD4Csfgw0VVVVfbCdTKrGbqVsVjbDR VVVVsibMqra232PqyPFOcIOZRPL4LbDSJE7tJBoR3g7l292vUvnCl9W46zZ/pta3vuLFLBbJEXHU BwtjosAiNWKcbAx2GAVaO9WWJOy6ZUlGsNKt4UMO2YemW0ZLLERDI1WtuNMvLcxrrmRioqjUWSNE lhuQXJCzW8aQoW6PqyCwmeAFOsDauCJ5N1JZbNkHviQY4g5mUDpNyZFxdN+GGxVkRAoVsA3IAWWh KSxIrUd7JEJGP8kocAUuiDhksRaShsipIsiyK7PSbSwiwGCSy+khYwK7FlW5s7m1nOenAFM9qxlo BK6laIQ2WQSlSKqWrItorFjKZiwiIskyxVRmMp2NEZnNtxJSIwG7RCSBSQ4SXRsY/apnRmecHkj+ UM3I6OJmUJydGKFkSifoQLnqHboBOLxsCe00VsqpE4g3MCCi3ESCpFINwpS0RKkipJFJGCCWLLSR bqSUjyhg3HaKgX2o5x2OQxaxPjJh8RWLm22394T05tMpq4YBUZBkdttt5BCzTaPe8aUSbAkE+jVO hW2pD2Q4q85IjHgs8/xeV8EKapaK+oAh3YXwl0gkCLaemXihYj4m1rOYJZVvrRYZE9ifo0/HJJJJ JJJCsD5VLzYQ3MuiTo3JBXUdjskmiN8VCD7ICZHpH5v8oFQiGOzVFO8HUnBXnTbvH7EHcc/QLZiK e+QIQkHZgPQ3Bbo65q7wXjSrtKzBgiffFhBBDU6VZE54NRYz9ppQnREDoghwSKj/z7RdUcjTnAho KoXATbABOtVE2CYJ3xeTtBcUETIgyKceoXoAGkXbBOKep9Sqrimu9HCPe5RKsLrFWpYphf52INFh aE8aQWr1VUBUWr7GbKREDpzqdkV7KDkulFaDpMQsGAe/VoaYl4ioO4D2IgdCqjj1HhoSyjdECtih wdzCd4eiPUAXBPYAfQihkP7Yr4Aw63mflE/inkRUMjgAcIZHhV17NE86j7QytE3C4cxXDxtCbE7G EMhayShd9/AtGPTSuR6viDp/X7/71smuInuOgUNr0BRQPJDwxV3HuGsQJpMHKOrEuh3xI4xZBwD9 axhR3ctXFSDfyzJTNELhBUbxQNjcpCYZKrTXRzg19ADjRA9J+0+RBF4pn4jd+238NfJGbnL+lJxT qV5t9wDK85goDqkSJ6EwFt09aRwlEkhPAYe5HzDU8cEE/ZFVMV0V4BjfV8UcN7EbVYLUtVSUNQCC 8DWhtMEfG0toxI4xEpqjGWIiXKKiTFXO25KzalW7W5ueLJpQjJgSBJJFLwKhHIyVkUjshkqYwoIB AbY8izdJNDYyUYskoEkoBYSVLiEhQxNsRITERUqKVGqAtGfvifIl0RTBXAfkH14Au4xLptTGoNyH OUSDTTervREzMYJrImjcXpsxVkLEiRMbFNiK2khYQqGyqQCkl7pA9T6t4fQGgqIeM0V513BzJq7t wtj8MU50+NXnr/a55vN5PWXMgjr4/BZIw6SB6D9ZUr7bG9TmDnTwoSNTrTsQCwK9d/Mt+NYk8nt4 N4+Q5MkmZLYtHmiWGHHBtZmhuFTucAWzzc1JYvuOsxM0HgkDYEFaJJI1Qh0/dlYXBFbrgtktTCqc AlSiy6IzlpExmSOsastdMIppqQSbAIVgD2X46zm6Cd+AHLEsWzlUPAEFBgNOlkqkas1NGSDNuNrA OfMeGj85jYjBaNkiOTQtCMorJSKZnDmMjROYxKWW2Y0hoxFDWgs4tW7FpNvhpopTGmsRbExDhmVI YZjDNtG1R7rvdrq9iq9JaWcc9aMraQFxrPeaop1QUCw18TaQ2L0MWpyC4JtIycQ/KIZaWBLfim24 5wCQk3WiVcVPlym9I7hmhsbGODgxwaY6DSJpGY6BgdEdQxCaKnQ4ufLs12FCROgraZlKiVV7CgWD x1Z6Y0jsBBOGnbYlC0mkU3JmsYpcoxlliznC9TfyMsG+d56a6i2ZlYHUax1SJxh8llJmu5HFo0Er yyFIyFaYSxSzaQLGkWWSTBLEGiSpD9xhwE8xJhNDaJTsVUrW6VISESyYoFCBhBIjoJbbATMW2SYo F8HIGYGTc4ipkkVxcULp+L7Ab3zw3emhN2CtRzg2FCwlUsZdvj2KKMjDDCiijDCijMKMLCjCixzW d3LoZZ39xpE1TYNgCLmxWEEEwptaoO6WMYUpkxV2mgaNlkmCZVJgxUmEkaTQYN+mJMZBPUMHAsRh 58cn6lISQhR7IkgvOB8gqp6fw2eNDi72yhmdfXXdpw57EkkpEkhJiWKVVSpRRRYVZUKFCqAqVSrF kklkqVSrFgMRquI8JMWCqS0LLKkje8NSDwhFrtd9YHjBMAOCWRyMOa28IWGL4YlGVRR9l8T09SfG oZsL9TkMWWhLnxUYCxhFRLX9qFcGN5RgGK5a5RCyefEW8mKYZ45ibQrEFJT0dr2TKkIRVYmUFRAe owiQoxglr19lLOgwzVxAw+DYmREWiZL3sCEVLASr4hERHRNxUNUN9sUvIl9s2hB0NUFlLMk3zR51 oQaK11Q0u9mMPd0NDEzSFaYQl4QyYrQJQV61Vdm7VNhurUlaJSqcW5gNBsbTOzCNbfQojgtQUBSy jKDuDAyyqQ6F7ZQzeUg3ITNu56ZJV5EmARGYDGDaY2ECQZAwihvS4+hAEuZy0KVWyiIEcl2BMgzY DjWTsuKzFhiCUCblugJS1pu6bubnGcXnueUkgSQuNduS3LLdkt4SSBVVtb04KlVXTpUkzwsvg9Q1 N0bzgUpSlKZM24wYikKkNxG4JgmmtuoMoNAY4pqYaLaq2xtJ0DkI2b26kmjBMCilKUpSlJSlKUpS mNtzDcjaGI2IuDgSQhJtXalk1PB0aoWI/iS15bUlCT0o6ecykBQnEskZrEdmIYFiSyhmSWSIwMRg OiKzHOsaOFsGF0NRBPbEfEjY5l+IM5knOFxdoooY8DROpDx7sxo2aq4gEmxIMVhVPPS29jTPxFpa Wx1znOPZsOqrMKkQoyTOISAK3utffFDzxE9dJrgPQ4arqgjsZCPChckl1MD0+Cucefsx1JrSJ6KT vW2+xVktQlJC0W0SggtCUwMRdt+TSNyTx+/ncpxeuvGo3UhanTJxE1U+F/TEcEcgcAFA5oanY25k 6OazCQidP1fB6i53IC7zeoKQvYM8BUQ1CJFCAh0xQ4ZBqsNIc7R1ATo6hc5exNmPBb7u7O85YljM ueXijg5hBkzFFsjEoTIEu16EpUzFsjQeQE2ZDqkBBzdiOuFIMCdRFCg7pezRRekcExgMRt1tJMSD rtn8v3/s1uNv0Y8Ii2fsNFQfn7Ua5DuRUNFfAjbqQ7BQZAiPlVEDE//ULHAE7By5GKhkuomG3I6D KsWFq2SvZhjYPvqRIq/iWQN7yfVzkMo5oeSP0Io2J1nzZSeNHXu7+qOyWJmOqWRKYVDmoTWJ0U4n Q8NLU8cnyFVJX3FlNBY59L/kRlw3B2pKgyDKWyA+glEYVMwNZ8/0xr5JOmjqtF7wIp6RPcoiUYRv 3JaDtWuI9Yz1BsDYwe2FhNqZfKtMHEOaDM0DcO+h/biLTdHMHO2afUB+UJ7vCYPhK4WfaGCUzVpP 0dJQ+nabkZGEAZEkIrvWigSfWntVQoCACEALjkKHdm96vaRKFxIp57OqBYcbZLI7qPLsYPTSPJvt QkmShpuwA4JgmaKeGfVhR1H5F/7pINkofZJIbsyHcFRlNoVJIwfDJbFFeeI0RVQ3B1KCmw530emu apQnhhRmLcNs9tuvC+dV25uMbMmEaUyTQbWMk9AlVSI0ZEUKqJIQGkCNkS22iJoLU5wrxtOMgWxB /THSOx82XCeBE5ldW5XdgijoJwT8mSG2yeJetF0+mCRPUH2WH0oU0QYH7qpC3roGUfUIWgPOROPw Lg0J/UDQaCfkHzlEb3sVsLqbR72MpVTrmq3aqDMQNH52rBs90TGL73z2B7C7LN3QB5ErG8rhw9R/ 2LuSKcKEh1b+Wqg= --000000000000911e1e05b56ec1c9--