From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/8431 Path: news.gmane.org!not-for-mail From: =?UTF-8?B?0KDRi9GB0Yw=?= Newsgroups: gmane.linux.lib.musl.general Subject: Re: Message localization [Was: Re: [musl] Adjustments to roadmap] Date: Tue, 1 Sep 2015 11:26:55 +0700 Message-ID: <20150901112655.5ec772d4@r2lynx> References: <20150828024347.GA7624@brightrain.aerifal.cx> <20150830121847.4c7aa488@r2lynx> <20150830053147.GL7833@brightrain.aerifal.cx> <20150831002108.69c832d1@r2lynx> <20150830192953.GQ7833@brightrain.aerifal.cx> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=MP_ISgSUlzc9Yxn4zXDTYVV1sN X-Trace: ger.gmane.org 1441081580 28611 80.91.229.3 (1 Sep 2015 04:26:20 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 1 Sep 2015 04:26:20 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-8443-gllmg-musl=m.gmane.org@lists.openwall.com Tue Sep 01 06:26:13 2015 Return-path: Envelope-to: gllmg-musl@m.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1ZWd9A-0001cb-N0 for gllmg-musl@m.gmane.org; Tue, 01 Sep 2015 06:26:12 +0200 Original-Received: (qmail 11900 invoked by uid 550); 1 Sep 2015 04:26:10 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 11882 invoked from network); 1 Sep 2015 04:26:09 -0000 X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,NO_RECEIVED, NO_RELAYS autolearn=ham autolearn_force=no version=3.4.0 In-Reply-To: <20150830192953.GQ7833@brightrain.aerifal.cx> X-Mailer: claws_mail Xref: news.gmane.org gmane.linux.lib.musl.general:8431 Archived-At: --MP_ISgSUlzc9Yxn4zXDTYVV1sN Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Sun, 30 Aug 2015 15:29:53 -0400 Rich Felker wrote: > On Mon, Aug 31, 2015 at 12:21:08AM +0700, =D0=A0=D1=8B=D1=81=D1=8C wrote: > > > > How about libc message localization, or MUSL_LOCPATH and msgfmt > > > > stuff? You wanted to translate musl messages some time ago and I > > > > even did sent a draft before question was abandoned. I also > > > > can't get it to work and I don't quite understand the > > > > requirements for it. > > >=20 > > > Yes, that would be great. Can you point me back at the message > > > with the draft? I'll take a look again and see if I can get it to > > > work. > > >=20 > > > Rich > >=20 > > Here it is: http://www.openwall.com/lists/musl/2015/03/17/3 (or > > "[musl] libintl: stubs or working functions?" Tue, 17 Mar 2015 > > 13:59:16 +0700) > >=20 > > I don't remember what did not work, I just get back to it again two > > days ago - recovered a file attached, compiled with msgfmt, set > > environment: > >=20 > > MUSL_LOCPATH=3D/tmp LC_ALL=3Dru_RU ./date > >=20 > > and it still prints in English. I had at the time file ru_RU in /tmp > > and strace confirmed musl mmaped that file. > >=20 > > I attach "date.c" test program I expected to work. > >=20 > > I probably messed up with msgfmt or something I do not remember now. >=20 > It works fine for me. I did: >=20 > $ msgfmt -o ru_RU ru_RU.po > $ gcc date.c > $ LC_ALL=3Dru_RU MUSL_LOCPATH=3D. ./a.out > =D0=92=D1=81=D0=BA =D0=90=D0=B2=D0=B3 30 15:24:44 2015 >=20 > Rich This is what I get when running musl 1.1.11 without patches (untouched): % MUSL_LOCPATH=3D/tmp/l LC_ALL=3Dru_RU ./lib/libc.so ../date Tue Sep 1 11:22:31 2015 I attached strace output as well as compiled ru_RU data. --MP_ISgSUlzc9Yxn4zXDTYVV1sN Content-Type: application/octet-stream; name=strace_locale.log Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=strace_locale.log NTUxICAgZXhlY3ZlKCIuL2xpYi9saWJjLnNvIiwgWyIuL2xpYi9saWJjLnNvIiwgIi4uL2RhdGUi XSwgWyJNVVNMX0xPQ1BBVEg9L3RtcC9sIiwgIkxDX0FMTD1ydV9SVSIsICJTSEVMTD0vYmluL2Jh c2giLCAiVEVSTT1yeHZ0LTI1NmNvbG9yIiwgIkhJU1RTSVpFPTEwMDAwIiwgIldJTkRPV0lEPTEw Njk1NDc1OCIsICJPTERQV0Q9L3RtcC9sIiwgIlVTRVI9bHlueCIsICJQQVRIPS9sb2NhbC9teWJp bjovbG9jYWwvbXliaW4vZzovYmluOi9sb2NhbC9iaW46L2xvY2FsL1gxMS9iaW46L2xvY2FsL3F0 NC9iaW46L2xvY2FsL3FlbXUvYmluIiwgIklOUFVUUkM9L2V0Yy9pbnB1dHJjIiwgIlBXRD0vdG1w L2wvbXVzbC0xLjEuMTEiLCAiUFMxPSUgIiwgIkhJU1RJR05PUkU9JjpbYmZdZzpleGl0IiwgIlNI TFZMPTEiLCAiQ09MT1JGR0JHPWRlZmF1bHQ7ZGVmYXVsdDswIiwgIkhPTUU9L3UvbHlueCIsICJM T0dOQU1FPWx5bngiLCAiVUlEPTEwMDAiLCAiRElTUExBWT06MC4wIiwgIkhJU1RUSU1FRk9STUFU PSVoLyVkIC0gJUg6JU06JVMgIiwgIkNPTE9SVEVSTT1yeHZ0LXhwbSIsICJfPS9iaW4vc3RyYWNl Il0pID0gMAo1NTEgICBzZXRfdGhyZWFkX2FyZWEoe2VudHJ5X251bWJlcjotMSAtPiAxMiwgYmFz ZV9hZGRyOjB4Zjc3MmI5MjQsIGxpbWl0OjEwNDg1NzUsIHNlZ18zMmJpdDoxLCBjb250ZW50czow LCByZWFkX2V4ZWNfb25seTowLCBsaW1pdF9pbl9wYWdlczoxLCBzZWdfbm90X3ByZXNlbnQ6MCwg dXNlYWJsZToxfSkgPSAwCjU1MSAgIHNldF90aWRfYWRkcmVzcygweGY3NzJiOTQwKSAgICAgICA9 IDU1MQo1NTEgICBvcGVuKCIuLi9kYXRlIiwgT19SRE9OTFl8T19MQVJHRUZJTEUpID0gMwo1NTEg ICByZWFkKDMsICJcMTc3RUxGXDFcMVwxXDBcMFwwXDBcMFwwXDBcMFwwXDJcMFwzXDBcMVwwXDBc MFwzMzRcMjAyXDRcMDEwNFwwXDBcMFwyNzRcNFwwXDBcMFwwXDBcMDAwNFwwIFwwXDZcMChcMFwy MFwwXHJcMFw2XDBcMFwwMDA0XDBcMFwwMDA0XDIwMFw0XDAxMDRcMjAwXDRcMTBcMzAwXDBcMFww XDMwMFwwXDBcMFw1XDBcMFwwXDRcMFwwXDBcM1wwXDBcMFwzNjRcMFwwXDBcMzY0XDIwMFw0XDEw XDM2NFwyMDBcNFwxMFxuXDBcMFwwXG5cMFwwXDBcNFwwXDBcMFwxXDBcMFwwXDFcMFwwXDBcMFww XDBcMFwwXDIwMFw0XDEwXDBcMjAwXDRcMTBcMjE3XDNcMFwwXDIxN1wzXDBcMFw1XDBcMFwwXDBc MjBcMFwwXDFcMCIuLi4sIDkzNikgPSA5MzYKNTUxICAgbW1hcDIoKSAgICAgICAgICAgICAgICAg ICAgICAgICAgID0gMHg4MDQ4MDAwCjU1MSAgIG1tYXAyKCkgICAgICAgICAgICAgICAgICAgICAg ICAgICA9IDB4ODA0OTAwMAo1NTEgICBjbG9zZSgzKSAgICAgICAgICAgICAgICAgICAgICAgICAg PSAwCjU1MSAgIG9wZW4oIi90bXAvbC9ydV9SVSIsIE9fUkRPTkxZfE9fTk9OQkxPQ0t8T19MQVJH RUZJTEV8T19DTE9FWEVDKSA9IDMKNTUxICAgZnN0YXQ2NCgzLCB7c3RfZGV2PW1ha2VkZXYoMCwg MTcpLCBzdF9pbm89MCwgc3RfbW9kZT0wMzY0NzUsIHN0X25saW5rPTE1Njc3LCBzdF91aWQ9Mzcy NTgsIHN0X2dpZD04MDcsIHN0X2Jsa3NpemU9MTAwMCwgc3RfYmxvY2tzPTEwMDAsIHN0X3NpemU9 MSwgc3RfYXRpbWU9MCwgc3RfbXRpbWU9MTk3MC8wMS8wMS0wNzowMDoxMCwgc3RfY3RpbWU9MH0p ID0gMAo1NTEgICBtbWFwMigpICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweGY3NjkyMDAw CjU1MSAgIGNsb3NlKDMpICAgICAgICAgICAgICAgICAgICAgICAgICA9IDAKNTUxICAgY2xvY2tf Z2V0dGltZShDTE9DS19SRUFMVElNRSwgezE0NDEwODEzODAsIDEwNDgxNDI0MH0pID0gMAo1NTEg ICBvcGVuKCIvZXRjL2xvY2FsdGltZSIsIE9fUkRPTkxZfE9fTk9OQkxPQ0t8T19MQVJHRUZJTEV8 T19DTE9FWEVDKSA9IDMKNTUxICAgZnN0YXQ2NCgzLCB7c3RfZGV2PW1ha2VkZXYoOCwgMiksIHN0 X2lubz0wLCBzdF9tb2RlPTAxMzQxMDAsIHN0X25saW5rPTYzMzQ2LCBzdF91aWQ9MTgxNDgsIHN0 X2dpZD0xMCwgc3RfYmxrc2l6ZT0wLCBzdF9ibG9ja3M9MCwgc3Rfc2l6ZT0xLCBzdF9hdGltZT0w LCBzdF9tdGltZT0xOTY1LzA2LzEwLTAzOjUxOjAwLCBzdF9jdGltZT0wfSkgPSAwCjU1MSAgIG1t YXAyKCkgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4Zjc2OTEwMDAKNTUxICAgY2xvc2Uo MykgICAgICAgICAgICAgICAgICAgICAgICAgID0gMAo1NTEgICBpb2N0bCgxLCBUSU9DR1dJTlNa LCB7d3Nfcm93PTQwLCB3c19jb2w9MTAwLCB3c194cGl4ZWw9ODAwLCB3c195cGl4ZWw9NTYwfSkg PSAwCjU1MSAgIHdyaXRldigxLCBbeyJUdWUgU2VwICAxIDExOjIzOjAwIDIwMTUiLCAyNH0sIHsi XG4iLCAxfV0sIDIpID0gMjUKNTUxICAgZXhpdF9ncm91cCgwKSAgICAgICAgICAgICAgICAgICAg ID0gPwo= --MP_ISgSUlzc9Yxn4zXDTYVV1sN Content-Type: application/octet-stream; name=ru_RU Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=ru_RU 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 9RgAAFEAAAA/GQAAHAAAAJEZAABLAAAArhkAAC8AAAD6GQAAKQAAACoaAAA3AAAAVBoAADYAAACM GgAAKgAAAMMaAAAXAAAA7hoAACQAAAAGGwAAPAAAACsbAAAuAAAAaBsAACgAAACXGwAAGgAAAMAb AAAVAAAA2xsAABMAAADxGwAAKAAAAAUcAAAhAAAALhwAAD8AAABQHAAAOAAAAJAcAAAvAAAAyRwA AEcAAAD5HAAAOQAAAEEdAAA4AAAAex0AACoAAAC0HQAAMwAAAN8dAAAmAAAAEx4AACYAAAA6HgAA LgAAAGEeAAA6AAAAkB4AADgAAADLHgAAOAAAAAQfAAAhAAAAPR8AADwAAABfHwAAMQAAAJwfAAAn AAAAzh8AACoAAAD2HwAAEwAAACEgAAA0AAAANSAAADsAAABqIAAAJwAAAKYgAAAfAAAAziAAACsA AADuIAAAMAAAABohAAAWAAAASyEAADIAAABiIQAAMAAAAJUhAAA9AAAAxiEAACUAAAAEIgAAMgAA ACoiAAA1AAAAXSIAACEAAACTIgAASQAAALUiAABYAAAA/yIAACAAAABYIwAAGwAAAHkjAAAdAAAA lSMAADIAAACzIwAAJQAAAOYjAABOAAAADCQAACIAAABbJAAAIAAAAH4kAABQAAAAnyQAADAAAADw JAAAJAAAACElAAAwAAAARiUAADcAAAB3JQAAHQAAAK8lAAAiAAAAzSUAADAAAADwJQAALQAAACEm AAAjAAAATyYAAB0AAABzJgAAEAAAAJEmAAAKAAAAoiYAAC0AAACtJgAAHwAAANsmAAAUAAAA+yYA ABUAAAAQJwAATQAAACYnAAAKAAAAdCcAADIAAAB/JwAAKwAAALInAAAyAAAA3icAABcAAAARKAAA GwAAACkoAAASAAAARSgAABcAAABYKAAANgAAAHAoAAASAAAApygAACoAAAC6KAAAFAAAAOUoAAA8 AAAA+igAADwAAAA3KQAAPAAAAHQpAABEAAAAsSkAADgAAAD2KQAALgAAAC8qAAA0AAAAXioAADAA AACTKgAALQAAAMQqAABEAAAA8ioAADYAAAA3KwAAU3VuAE1vbgBUdWUAV2VkAFRodQBGcmkAU2F0 AFN1bmRheQBNb25kYXkAVHVlc2RheQBXZWRuZXNkYXkAVGh1cnNkYXkARnJpZGF5AFNhdHVyZGF5 AEphbgBGZWIATWFyAEFwcgBNYXkASnVuAEp1bABBdWcAU2VwAE9jdABOb3YARGVjAEphbnVhcnkA RmVicnVhcnkATWFyY2gAQXByaWwATWF5AEp1bmUASnVseQBBdWd1c3QAU2VwdGVtYmVyAE9jdG9i ZXIATm92ZW1iZXIARGVjZW1iZXIAJW0vJWQvJXkAJUk6JU06JVMgJXAAXlt5WV0AXltuTl0AeWVz AG5vAElsbGVnYWwgYnl0ZSBzZXF1ZW5jZQBEb21haW4gZXJyb3IAUmVzdWx0IG5vdCByZXByZXNl bnRhYmxlAE5vdCBhIHR0eQBQZXJtaXNzaW9uIGRlbmllZABPcGVyYXRpb24gbm90IHBlcm1pdHRl ZABObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5AE5vIHN1Y2ggcHJvY2VzcwBGaWxlIGV4aXN0cwBW YWx1ZSB0b28gbGFyZ2UgZm9yIGRhdGEgdHlwZQBObyBzcGFjZSBsZWZ0IG9uIGRldmljZQBPdXQg b2YgbWVtb3J5AFJlc291cmNlIGJ1c3kASW50ZXJydXB0ZWQgc3lzdGVtIGNhbGwAUmVzb3VyY2Ug dGVtcG9yYXJpbHkgdW5hdmFpbGFibGUASW52YWxpZCBzZWVrAENyb3NzLWRldmljZSBsaW5rAFJl YWQtb25seSBmaWxlIHN5c3RlbQBEaXJlY3Rvcnkgbm90IGVtcHR5AENvbm5lY3Rpb24gcmVzZXQg YnkgcGVlcgBPcGVyYXRpb24gdGltZWQgb3V0AENvbm5lY3Rpb24gcmVmdXNlZABIb3N0IGlzIGRv d24ASG9zdCBpcyB1bnJlYWNoYWJsZQBBZGRyZXNzIGluIHVzZQBCcm9rZW4gcGlwZQBJL08gZXJy b3IATm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcwBCbG9jayBkZXZpY2UgcmVxdWlyZWQATm8gc3Vj aCBkZXZpY2UATm90IGEgZGlyZWN0b3J5AElzIGEgZGlyZWN0b3J5AFRleHQgZmlsZSBidXN5AEV4 ZWMgZm9ybWF0IGVycm9yAEludmFsaWQgYXJndW1lbnQAQXJndW1lbnQgbGlzdCB0b28gbG9uZwBT eW1ib2xpYyBsaW5rIGxvb3AARmlsZW5hbWUgdG9vIGxvbmcAVG9vIG1hbnkgb3BlbiBmaWxlcyBp biBzeXN0ZW0ATm8gZmlsZSBkZXNjcmlwdG9ycyBhdmFpbGFibGUAQmFkIGZpbGUgZGVzY3JpcHRv cgBObyBjaGlsZCBwcm9jZXNzAEJhZCBhZGRyZXNzAEZpbGUgdG9vIGxhcmdlAFRvbyBtYW55IGxp bmtzAE5vIGxvY2tzIGF2YWlsYWJsZQBSZXNvdXJjZSBkZWFkbG9jayB3b3VsZCBvY2N1cgBTdGF0 ZSBub3QgcmVjb3ZlcmFibGUAUHJldmlvdXMgb3duZXIgZGllZABPcGVyYXRpb24gY2FuY2VsZWQA RnVuY3Rpb24gbm90IGltcGxlbWVudGVkAE5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlAElkZW50 aWZpZXIgcmVtb3ZlZABEZXZpY2Ugbm90IGEgc3RyZWFtAE5vIGRhdGEgYXZhaWxhYmxlAERldmlj ZSB0aW1lb3V0AE91dCBvZiBzdHJlYW1zIHJlc291cmNlcwBMaW5rIGhhcyBiZWVuIHNldmVyZWQA UHJvdG9jb2wgZXJyb3IAQmFkIG1lc3NhZ2UARmlsZSBkZXNjcmlwdG9yIGluIGJhZCBzdGF0ZQBO b3QgYSBzb2NrZXQARGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZABNZXNzYWdlIHRvbyBsYXJn ZQBQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQAUHJvdG9jb2wgbm90IGF2YWlsYWJsZQBQ cm90b2NvbCBub3Qgc3VwcG9ydGVkAFNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQATm90IHN1cHBv cnRlZABQcm90b2NvbCBmYW1pbHkgbm90IHN1cHBvcnRlZABBZGRyZXNzIGZhbWlseSBub3Qgc3Vw cG9ydGVkIGJ5IHByb3RvY29sAEFkZHJlc3Mgbm90IGF2YWlsYWJsZQBOZXR3b3JrIGlzIGRvd24A TmV0d29yayB1bnJlYWNoYWJsZQBDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsAQ29ubmVjdGlv biBhYm9ydGVkAE5vIGJ1ZmZlciBzcGFjZSBhdmFpbGFibGUAU29ja2V0IGlzIGNvbm5lY3RlZABT b2NrZXQgbm90IGNvbm5lY3RlZABDYW5ub3Qgc2VuZCBhZnRlciBzb2NrZXQgc2h1dGRvd24AT3Bl cmF0aW9uIGFscmVhZHkgaW4gcHJvZ3Jlc3MAT3BlcmF0aW9uIGluIHByb2dyZXNzAFN0YWxlIGZp bGUgaGFuZGxlAFJlbW90ZSBJL08gZXJyb3IAUXVvdGEgZXhjZWVkZWQATm8gbWVkaXVtIGZvdW5k AFdyb25nIG1lZGl1bSB0eXBlAE5vIGVycm9yIGluZm9ybWF0aW9uAFVua25vd24gc2lnbmFsAEhh bmd1cABJbnRlcnJ1cHQAUXVpdABJbGxlZ2FsIGluc3RydWN0aW9uAFRyYWNlL2JyZWFrcG9pbnQg dHJhcABBYm9ydGVkAEJ1cyBlcnJvcgBBcml0aG1ldGljIGV4Y2VwdGlvbgBLaWxsZWQAVXNlciBk ZWZpbmVkIHNpZ25hbCAxAFNlZ21lbnRhdGlvbiBmYXVsdABVc2VyIGRlZmluZWQgc2lnbmFsIDIA QnJva2VuIHBpcGUAQWxhcm0gY2xvY2sAVGVybWluYXRlZABTdGFjayBmYXVsdABDaGlsZCBwcm9j ZXNzIHN0YXR1cwBDb250aW51ZWQAU3RvcHBlZCAoc2lnbmFsKQBTdG9wcGVkAFN0b3BwZWQgKHR0 eSBpbnB1dCkAU3RvcHBlZCAodHR5IG91dHB1dCkAVXJnZW50IEkvTyBjb25kaXRpb24AQ1BVIHRp bWUgbGltaXQgZXhjZWVkZWQARmlsZSBzaXplIGxpbWl0IGV4Y2VlZGVkAFZpcnR1YWwgdGltZXIg ZXhwaXJlZABQcm9maWxpbmcgdGltZXIgZXhwaXJlZABXaW5kb3cgY2hhbmdlZABJL08gcG9zc2li bGUAUG93ZXIgZmFpbHVyZQBCYWQgc3lzdGVtIGNhbGwA0JLRgdC6ANCf0L0A0JLRggDQodGAANCn 0YIA0J/RggDQodCxANCS0L7RgdC60YDQtdGB0LXQvdGM0LUA0J/QvtC90LXQtNC10LvRjNC90LjQ ugDQktGC0L7RgNC90LjQugDQodGA0LXQtNCwANCn0LXRgtCy0LXRgNCzANCf0Y/RgtC90LjRhtCw ANCh0YPQsdCx0L7RgtCwANCv0L3QsgDQpNC10LIA0JzQsNGAANCQ0L/RgADQnNCw0LkA0JjRjtC9 ANCY0Y7QuwDQkNCy0LMA0KHQtdC9ANCe0LrRggDQndC+0Y8A0JTQtdC6ANCv0L3QstCw0YDRjADQ pNC10LLRgNCw0LvRjADQnNCw0YDRggDQkNC/0YDQtdC70YwA0JzQsNC5ANCY0Y7QvdGMANCY0Y7Q u9GMANCQ0LLQs9GD0YHRggDQodC10L3RgtGP0LHRgNGMANCe0LrRgtGP0LHRgNGMANCd0L7Rj9Cx 0YDRjADQlNC10LrQsNCx0YDRjAAlZC4lbS4lWQAlSDolTTolUwBeW9C00JRdAF5b0L3QnV0A0LTQ sADQvdC10YIA0J3QtdC00L7Qv9GD0YHRgtC40LzQsNGPINC/0L7RgdC70LXQtNC+0LLQsNGC0LXQ u9GM0L3QvtGB0YLRjADQl9C90LDRh9C10L3QuNC1INCy0L3QtSDQvtCx0LvQsNGB0YLQuCDRhNGD 0L3QutGG0LjQuADQl9C90LDRh9C10L3QuNC1INC30LAg0L/RgNC10LTQtdC70LDQvNC4INC00L7Q v9GD0YHRgtC40LzRi9GFINCz0YDQsNC90LjRhgDQndC1INGC0LXQu9C10YLQsNC50L8A0J7RgtC6 0LDQt9Cw0L3QviDQsiDQtNC+0YHRgtGD0L/QtQDQntC/0LXRgNCw0YbQuNGPINC90LUg0L/QvtC3 0LLQvtC70Y/QtdGC0YHRjwDQndC10YIg0YLQsNC60L7Qs9C+INGE0LDQudC70LAg0LjQu9C4INC6 0LDRgtCw0LvQvtCz0LAA0J3QtdGCINGC0LDQutC+0LPQviDQv9GA0L7RhtC10YHRgdCwANCk0LDQ udC7INGB0YPRidC10YHRgtCy0YPQtdGCANCX0L3QsNGH0LXQvdC40LUg0LLRi9GF0L7QtNC40YIg 0LfQsCDRgNCw0LzQutC4INGC0LjQv9CwANCd0LAg0YPRgdGC0YDQvtC50YHRgtCy0LUg0LrQvtC9 0YfQuNC70L7RgdGMINC80LXRgdGC0L4A0J3QtdGCINGB0LLQvtCx0L7QtNC90L7QuSDQv9Cw0LzR j9GC0LgA0KDQtdGB0YPRgNGBINC30LDQvdGP0YIA0KHQuNGB0YLQtdC80L3Ri9C5INCy0YvQt9C+ 0LIg0L/RgNC10YDQstCw0L0A0KDQtdGB0YPRgNGBINCy0YDQtdC80LXQvdC90L4g0L3QtdC00L7R gdGC0YPQv9C10L0A0J3QtdCy0LXRgNC90L7QtSDQv9C+0LfQuNGG0LjQvtC90LjRgNC+0LLQsNC9 0LjQtQDQn9C10YDQtdC60YDRkdGB0YLQvdCw0Y8g0YHRgdGL0LvQutCwINC80LXQttC00YMg0YPR gdGC0YDQvtC50YHRgtCy0LDQvNC4ANCk0LDQudC70L7QstCw0Y8g0YHQuNGB0YLQtdC80LAg0LTQ vtGB0YLRg9C/0L3QsCDRgtC+0LvRjNC60L4g0LTQu9GPINGH0YLQtdC90LjRjwDQmtCw0YLQsNC7 0L7QsyDQvdC1INC/0YPRgdGCANCh0L7QtdC00LjQvdC10L3QuNC1INGA0LDQt9C+0YDQstCw0L3Q viDRg9C00LDQu9GR0L3QvdC+0Lkg0YHRgtC+0YDQvtC90L7QuQDQmNGB0YLQtdC60LvQviDQstGA 0LXQvNGPINC00LvRjyDQt9Cw0L/RgNC+0YHQsADQodC+0LXQtNC40L3QtdC90LjQtSDQvtGC0LLQ tdGA0LPQvdGD0YLQvgDQo9C00LDQu9GR0L3QvdCw0Y8g0YHQuNGB0YLQtdC80LAg0L3QtSDQvtGC 0LLQtdGH0LDQtdGCANCj0LTQsNC70ZHQvdC90LDRjyDRgdC40YHRgtC10LzQsCDQvdC10LTQvtGB 0YLRg9C/0L3QsADQkNC00YDQtdGBINGD0LbQtSDQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8A0J7Q sdGA0YvQsiDQutCw0L3QsNC70LAA0J7RiNC40LHQutCwINCy0LLQvtC00LAv0LLRi9Cy0L7QtNCw ANCd0LXRgiDRgtCw0LrQvtCz0L4g0YPRgdGC0YDQvtC50YHRgtCy0LAg0LjQu9C4INCw0LTRgNC1 0YHQsADQndGD0LbQvdC+INCx0LvQvtGH0L3QvtC1INGD0YHRgtGA0L7QudGB0YLQstC+ANCd0LXR giDRgtCw0LrQvtCz0L4g0YPRgdGC0YDQvtC50YHRgtCy0LAA0K3RgtC+INC90LUg0LrQsNGC0LDQ u9C+0LMA0K3RgtC+INC60LDRgtCw0LvQvtCzANCk0LDQudC7INC30LDQvdGP0YIA0J3QtSDQuNGB 0L/QvtC70L3Rj9C10LzRi9C5INGE0L7RgNC80LDRggDQndC10LLQtdGA0L3Ri9C5INC/0LDRgNCw 0LzQtdGC0YAA0KHQv9C40YHQvtC6INC/0LDRgNCw0LzQtdGC0YDQvtCyINGB0LvQuNGI0LrQvtC8 INC00LvQuNC90L3Ri9C5ANCm0LjQutC70LjRh9C10YHQutCw0Y8g0YHQuNC80LLQvtC70YzQvdCw 0Y8g0YHRgdGL0LvQutCwANCh0LvQuNGI0LrQvtC8INC00LvQuNC90L3QvtC1INC40LzRjyDRhNCw 0LnQu9CwANCe0YLQutGA0YvRgtC+INGB0LvQuNGI0LrQvtC8INC80L3QvtCz0L4g0YTQsNC50LvQ vtCyINCyINGB0LjRgdGC0LXQvNC1ANCR0L7Qu9GM0YjQtSDQvdC10YIg0LTQtdGB0LrRgNC40L/R gtC+0YDQvtCyINGE0LDQudC70L7QsgDQndC10L/RgNCw0LLQuNC70YzQvdGL0Lkg0LTQtdGB0LrR gNC40L/RgtC+0YAg0YTQsNC50LvQsADQndC10YIg0LTQvtGH0LXRgNC90LjRhSDQv9GA0L7RhtC1 0YHRgdC+0LIA0J3QtdC/0YDQsNCy0LjQu9GM0L3Ri9C5INCw0LTRgNC10YEg0LIg0L/QsNC80Y/R gtC4ANCk0LDQudC7INGB0LvQuNGI0LrQvtC8INC00LvQuNC90L3Ri9C5ANCh0LvQuNGI0LrQvtC8 INC80L3QvtCz0L4g0YHQstGP0LfQtdC5ANCd0LXRgiDQtNC+0YHRgtGD0L/QvdGL0YUg0LHQu9C+ 0LrQuNGA0L7QstC+0LoA0J/RgNC+0LjQt9C+0LnQtNGR0YIg0LLQt9Cw0LjQvNC90LDRjyDQsdC7 0L7QutC40YDQvtCy0LrQsADQodC+0YHRgtC+0Y/QvdC40LUg0L3QtdC70YzQt9GPINCy0L7RgdGB 0YLQsNC90L7QstC40YLRjADQn9GA0LXQtNGL0LTRg9GJ0LjQuSDQv9GA0L7RhtC10YHRgSDQt9Cw 0LLQtdGA0YjQuNC70YHRjwDQntC/0LXRgNCw0YbQuNGPINC+0YLQvNC10L3QtdC90LAA0KTRg9C9 0LrRhtC40L7QvdCw0LvRjNC90L7RgdGC0Ywg0L3QtSDRgNC10LDQu9C40LfQvtCy0LDQvdCwANCd 0LXRgiDRgdC+0L7QsdGJ0LXQvdC40Y8g0L3Rg9C20L3QvtCz0L4g0YLQuNC/0LAA0JjQtNC10L3R gtC40YTQuNC60LDRgtC+0YAg0YPQtNCw0LvRkdC9ANCd0LUg0L/QvtGC0L7Rh9C90L7QtSDRg9GB 0YLRgNC+0LnRgdGC0LLQvgDQndC10YIg0LTQsNC90L3Ri9GFANCi0LDQudC80LDRg9GCINC+0LbQ uNC00LDQvdC40Y8g0YPRgdGC0YDQvtC50YHRgtCy0LAA0J3QtdGCINGB0LLQvtCx0L7QtNC90YvR hSDQv9C+0YLQvtGH0L3Ri9GFINGA0LXRgdGD0YDRgdC+0LIA0KHQvtC10LTQuNC90LXQvdC40LUg 0YDQsNC30L7RgNCy0LDQvdC+ANCe0YjQuNCx0LrQsCDQv9GA0L7RgtC+0LrQvtC70LAA0J3QtdC/ 0YDQsNCy0LjQu9GM0L3QvtC1INGB0L7QvtCx0YnQtdC90LjQtQDQlNC10YHQutGA0LjQv9GC0L7R gCDRhNCw0LnQu9CwINC40YHQv9C+0YDRh9C10L0A0K3RgtC+INC90LUg0YHQvtC60LXRggDQotGA 0LXQsdGD0LXRgtGB0Y8g0LDQtNGA0LXRgSDQvdCw0LfQvdCw0YfQtdC90LjRjwDQodC+0L7QsdGJ 0LXQvdC40LUg0YHQu9C40YjQutC+0Lwg0LTQu9C40L3QvdC+0LUA0J3QtdC/0YDQsNCy0LjQu9GM 0L3Ri9C5INC/0YDQvtGC0L7QutC+0Lsg0LTQu9GPINGB0L7QutC10YLQsADQn9GA0L7RgtC+0LrQ vtC7INC90LXQtNC+0YHRgtGD0L/QtdC9ANCf0YDQvtGC0L7QutC+0Lsg0L3QtSDQv9C+0LTQtNC1 0YDQttC40LLQsNC10YLRgdGPANCi0LjQvyDRgdC+0LrQtdGC0LAg0L3QtSDQv9C+0LTQtNC10YDQ ttC40LLQsNC10YLRgdGPANCd0LUg0L/QvtC00LTQtdGA0LbQuNCy0LDQtdGC0YHRjwDQodC10LzQ tdC50YHRgtCy0L4g0L/RgNC+0YLQvtC60L7Qu9C+0LIg0L3QtSDQv9C+0LTQtNC10YDQttC40LLQ sNC10YLRgdGPANCh0LXQvNC10LnRgdGC0LLQviDQsNC00YDQtdGB0L7QsiDQvdC1INC/0L7QtNC0 0LXRgNC20LjQstCw0LXRgtGB0Y8g0L/RgNC+0YLQvtC60L7Qu9C+0LwA0JDQtNGA0LXRgSDQvdC1 INC00L7RgdGC0YPQv9C10L0A0KHQtdGC0Ywg0LLRi9C60LvRjtGH0LXQvdCwANCh0LXRgtGMINC9 0LXQtNC+0YHRgtGD0L/QvdCwANCh0L7QtdC00LjQvdC10L3QuNC1INGA0LDQt9C+0YDQstCw0L3Q viDRgdC10YLRjNGOANCh0L7QtdC00LjQvdC10L3QuNC1INC+0YLQvNC10L3QtdC90L4A0J3QtdC0 0L7RgdGC0LDRgtC+0YfQvdC+INC/0YDQvtC80LXQttGD0YLQvtGH0L3QvtCz0L4g0L/RgNC+0YHR gtGA0LDQvdGB0YLQstCwANCh0L7QutC10YIg0YPQttC1INGB0L7QtdC00LjQvdGR0L0A0KHQvtC6 0LXRgiDQvdC1INGB0L7QtdC00LjQvdGR0L0A0J7RgtC/0YDQsNCy0LrQsCDQvdC10LLQvtC30LzQ vtC20L3QsCDQv9GA0Lgg0LLRi9C60LvRjtGH0LXQvdC90L7QvCDRgdC+0LrQtdGC0LUA0J7Qv9C1 0YDQsNGG0LjRjyDRg9C20LUg0L/RgNC+0LjQt9Cy0L7QtNC40YLRgdGPANCe0L/QtdGA0LDRhtC4 0Y8g0LIg0L/RgNC+0YbQtdGB0YHQtQDQl9Cw0LLQuNGB0YjQuNC5INC00LXRgdC60YDQuNC/0YLQ vtGAINGE0LDQudC70LAA0KPQtNCw0LvRkdC90L3QsNGPINC+0YjQuNCx0LrQsCDQstCy0L7QtNCw L9Cy0YvQstC+0LTQsADQmtCy0L7RgtCwINC40YHRh9C10YDQv9Cw0L3QsADQndC1INC90LDQudC0 0LXQvSDQvdC+0YHQuNGC0LXQu9GMANCd0LXQv9GA0LDQstC40LvRjNC90YvQuSDRgtC40L8g0L3Q vtGB0LjRgtC10LvRjwDQndC10YIg0LjQvdGE0L7RgNC80LDRhtC40Lgg0L7QsSDQvtGI0LjQsdC6 0LUA0J3QtdC40LfQstC10YHRgtC90YvQuSDRgdC40LPQvdCw0LsA0J7QsdGA0YvQsiDRgtC10YDQ vNC40L3QsNC70LAA0J/RgNC10YDQstCw0L3QvgDQktGL0YXQvtC0ANCd0LXQtNC+0L/Rg9GB0YLQ uNC80LDRjyDQuNC90YHRgtGA0YPQutGG0LjRjwDQntGC0LvQsNC00L7Rh9C90LDRjyDRgtC+0YfQ utCwANCf0YDQtdC60YDQsNGJ0ZHQvdC+ANCe0YjQuNCx0LrQsCDRiNC40L3RiwDQmNGB0LrQu9GO 0YfQtdC90LjQtSDQsiDQvtC/0LXRgNCw0YbQuNC4INGBINC/0LvQsNCy0LDRjtGJ0LXQuSDQt9Cw 0L/Rj9GC0L7QuQDQo9Cx0LjRgtC+ANCf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjNGB0LrQuNC5INGB 0LjQs9C90LDQuyDihJYxANCe0YjQuNCx0LrQsCDRgdC10LPQvNC10L3RgtC40YDQvtCy0LDQvdC4 0Y8A0J/QvtC70YzQt9C+0LLQsNGC0LXQu9GM0YHQutC40Lkg0YHQuNCz0L3QsNC7IOKEljIA0J7Q sdGA0YvQsiDQutCw0L3QsNC70LAA0KHQuNCz0L3QsNC7INGC0LDQudC80LXRgNCwANCX0LDQstC1 0YDRiNC10L3QvgDQntGI0LjQsdC60LAg0YHRgtC10LrQsADQodC+0YHRgtC+0Y/QvdC40LUg0LTQ vtGH0LXRgNC90LXQs9C+INC/0YDQvtGG0LXRgdGB0LAA0J/RgNC+0LTQvtC70LbQtdC9ANCe0YHR gtCw0L3QvtCy0LvQtdC9ICjQv9C+INGB0LjQs9C90LDQu9GDKQDQntGB0YLQsNC90L7QstC70LXQ vQDQntGB0YLQsNC90L7QstC70LXQvSAo0L/QviDQstCy0L7QtNGDINGBINGC0LXRgNC80LjQvdCw 0LvQsCkA0J7RgdGC0LDQvdC+0LLQu9C10L0gKNC/0L4g0LLRi9Cy0L7QtNGDINCyINGC0LXRgNC8 0LjQvdCw0LspANCV0YHRgtGMINGB0YDQvtGH0L3Ri9C1INC00LDQvdC90YvQtSDQstCy0L7QtNCw L9Cy0YvQstC+0LTQsADQmNGB0YfQtdGA0L/QsNC9INC70LjQvNC40YIg0L3QsCDQv9GA0L7RhtC1 0YHRgdC+0YDQvdC+0LUg0LLRgNC10LzRjwDQmNGB0YfQtdGA0L/QsNC9INC70LjQvNC40YIg0L3Q sCDRgNCw0LfQvNC10YAg0YTQsNC50LvQsADQmNGB0YLRkdC6INCy0LjRgNGC0YPQsNC70YzQvdGL 0Lkg0YLQsNC50LzQtdGAANCY0YHRgtGR0Log0YLQsNC50LzQtdGAINC/0YDQvtGE0LjQu9C40YDQ vtCy0LDQvdC40Y8A0JjQt9C80LXQvdC40LvQvtGB0Ywg0L7QutC90L4g0YLQtdGA0LzQuNC90LDQ u9CwANCS0LLQvtC0L9Cy0YvQstC+0LQg0YHRgtCw0Lsg0LLQvtC30LzQvtC20LXQvQDQodC40YHR gtC10LzQsCDQv9C10YDQtdGI0LvQsCDQvdCwINGA0LXQt9C10YDQstC90L7QtSDQv9C40YLQsNC9 0LjQtQDQndC10L/RgNCw0LLQuNC70YzQvdGL0Lkg0YHQuNGB0YLQtdC80L3Ri9C5INCy0YvQt9C+ 0LIA --MP_ISgSUlzc9Yxn4zXDTYVV1sN--