From: "Lewis" Received: from [72.86.41.184] (account lgrosenthal@2rosenthals.com HELO [192.168.201.140]) by 2rosenthals.com (CommuniGate Pro SMTP 5.4.10) with ESMTPSA id 2273893 for lswitcher-dev@2rosenthals.com; Sat, 14 Aug 2021 23:04:41 -0400 Subject: Re: [lswitcher-dev] lSwitcher-2-93-0-RC_6.wpi To: lSwitcher Developers Mailing List References: Message-ID: <61188446.5000302@2rosenthals.com> Date: Sat, 14 Aug 2021 23:04:38 -0400 User-Agent: Mozilla/5.0 (OS/2; Warp 4.5; rv:38.0) Gecko/20100101 Firefox/38.0 SeaMonkey/2.35 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------090404060203020202050900" This is a multi-part message in MIME format. --------------090404060203020202050900 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi... On 08/14/21 04:04 pm, Gregg Young wrote: > On Sat, 14 Aug 2021 20:59:39 +0100 Alfredo Fernández Díaz wrote: >> Hi Gregg, >> >> On 2021/08/14 18:57, Gregg Young wrote: >>> It also changes the codepage to 1208. Hopefully this will fix the bad >>> characters on >>> install to a Russian system Alfred reported on the AN testers site. >> If you mean change the codepage in the WarpIN script, I tried that on >> my own and it breaks even more things so please hold off it for now -- >> I didn't get round to following up on the testers list yet, sorry about >> that. > I already did this in RC_6 and now see the problem. The problem you originally had was since the codepage was not set in the lSwitcher wis it defaulted to the system page which in your case was 866. > > The problem with using code page 1208 is it needs a unicode aware font. WanSans isn't. RC 6a should work on a Russian system. Thanks > Changing the codepage isn't enough. The content needs to be converted to UTF-8 (it was still CP850). I extracted the script and ran it through iconv: iconv -f 850 -t UTF-8 lSwitcher-2-93-0-RC_6.wis > lSwitcher-2-93-0-RC_6a.wis This gave me a UTF-8 script, which properly renders Ulrich's name and which then matches what's in the WarpIN db (no error report of missing XWP). WarpSans is perfectly capable of rendering " ö", BTW. Remember the way this UTF-8 conversion works: WarpIN reads a UTF-8 script and converts to the system codepage. Using UTF-8 allows us to include language strings which would otherwise be from multiple codepages (and would thus not render properly). The tougher ones are DBCS, however, but they're not impossible (see TIMESET for examples). Strings which appear in REXX and used to dynamically swap into the script output are also entered in UTF-8. the resulting strings (UTF-8) are then likewise converted to system codepage when variables are expanded in the script. UTF-8 WIS, attached. --------------090404060203020202050900 Content-Type: text/plain; charset=UTF-8; name="lSwitcher-2-93-0-RC_6a.wis" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="lSwitcher-2-93-0-RC_6a.wis" PFdBUlBJTiBWRVJTSU9OPSIxLjAuMjQiDQpDT0RFUEFHRT0xMjA4Pg0KDQo8SEVBRD4NCg0K PCEtLSBGaW5kIERMTCBkaXJlY3RvcnkuIEVudmlyb25tZW50ICJvc2RpciIgd2hlbiBpdCBl eGlzdHMsIG9yID86XE9TMlxBUFBTXERMTCBvdGhlcndpc2UtLT4NCjxSRVhYIE5BTUU9Ikhv b2tQYXRoIj4NCiAgQ2FsbCBSeEZ1bmNBZGQgJ1N5c0xvYWRGdW5jcycsICdSZXh4VXRpbCcs ICdTeXNMb2FkRnVuY3MnDQogIENhbGwgU3lzTG9hZEZ1bmNzDQogIEhQYXRoPXZhbHVlKCdv c2RpcicsLCdPUzJFTlZJUk9OTUVOVCcpDQogIElmICcnPUhQYXRoIHRoZW4gSFBhdGg9Jz86 XE9TMlxBUFBTJw0KICByZXR1cm4gSFBhdGgnXERMTCcNCjwvUkVYWD4NCg0KPCEtLSBGaW5k IFgoZSlDZW50ZXIgZGlyZWN0b3J5LS0+DQo8UkVYWCBOQU1FPSJnZXRYQ2VudGVyRGlyIj4N CiAgQ2FsbCBSeEZ1bmNBZGQgJ1N5c0xvYWRGdW5jcycsICdSZXh4VXRpbCcsICdTeXNMb2Fk RnVuY3MnDQogIENhbGwgU3lzTG9hZEZ1bmNzDQogIFhDTG9jPVN5c0luaSgsJ1hXb3JrcGxh Y2UnLCdYRm9sZGVyUGF0aCcpDQogIFhDTG9jPWxlZnQoWENMb2MsIGxlbmd0aChYQ0xvYykt MSkNCiAgcmV0dXJuIFhDTG9jJ1xwbHVnaW5zXHhjZW50ZXInDQo8L1JFWFg+DQoNCjwhLS0g Tm90ZSB0aGF0IHRoZSBQQUNLQUdFSUQgZGF0YSBoYXMgYmVlbiB0cnVuY2F0ZWQsIHRvIGFs bG93IHRoZSBidWlsZCBzY3JpcHQgdG8gYWRkIHRoZSBuZXcgaW5mb3JtYXRpb24gLS0+DQoN CjxQQ0sgSU5ERVg9MQ0KICAgICBQQUNLQUdFSUQ9Ik5ldGxhYnNcbFN3aXRjaGVyXEhvb2tc Mlw5M1wwXDAiDQogICAgIFRBUkdFVD0iPSgiSG9va1BhdGgiKSINCiAgICAgVElUTEU9ImxT d2l0Y2hlciBIb29rIg0KICAgICBTRUxFQ1QNCiAgICAgTk9ERVNFTEVDVA0KICAgICBMT05H RklMRU5BTUVTDQogICAgIEtJTExQUk9DRVNTPSJsc3dob29rLmRsbCINCiAgICANCiAgICAg PlRoaXMgcGFja2FnZSBjb250YWlucyB0aGUgbFN3aXRjaGVyIGhvb2sgdXRpbGl0eS4NCg0K VGhpcyBtdXN0IGJlIGluc3RhbGxlZCBpbiBvcmRlciBmb3IgbFN3aXRjaGVyIHRvDQpmdW5j dGlvbi4NCg0KQWxsIG90aGVyIGNvcGllcywgaW4gTElCUEFUSCwgd2lsbCBiZSByZW1vdmVk Lg0KICAgICA8L1BDSz4NCg0KPFBDSyBJTkRFWD0yDQogICAgIFBBQ0tBR0VJRD0iTmV0bGFi c1xsU3dpdGNoZXJcQ29tbW9uXDJcOTNcMFwwIg0KICAgICBUQVJHRVQ9IiQoV0FSUElOX0RF RkFVTFRUT09MU1BBVEgpXGxTd2l0Y2hlciINCiAgICAgQkFTRQ0KICAgICBUSVRMRT0ibFN3 aXRjaGVyIENvbW1vbiINCiAgICAgU0VMRUNUDQogICAgIE5PREVTRUxFQ1QNCiAgICAgTE9O R0ZJTEVOQU1FUw0KICAgICBSRVFVSVJFUz0xDQogICAgIENSRUFURU9CSkVDVD0iV1BGb2xk ZXJ8bFN3aXRjaGVyfDxXUF9ERVNLVE9QPnxPQkpFQ1RJRD08TFNXSVRDSEVSX0ZPTERFUj4i DQogICAgIENSRUFURU9CSkVDVD0iV1BQcm9ncmFtfGxTd2l0Y2hlciBVc2VyIEd1aWRlfDxM U1dJVENIRVJfRk9MREVSPnxFWEVOQU1FPVZJRVcuRVhFO1BBUkFNRVRFUlM9JCgyKVxsc3dp dGNoLkhMUDtPQkpFQ1RJRD08TFNXSVRDSEVSSEVMUD47Ig0KICAgICBDUkVBVEVPQkpFQ1Q9 IldQUHJvZ3JhbXxNYW51YWwgZGVsIHVzdWFyaW8gZGUgbFN3aXRjaGVyfDxMU1dJVENIRVJf Rk9MREVSPnxFWEVOQU1FPVZJRVcuRVhFO1BBUkFNRVRFUlM9JCgyKVxsc3dpdGNoX2VzLkhM UDtPQkpFQ1RJRD08TFNXSVRDSEVSSEVMUEVTPjsiDQogICAgIENSRUFURU9CSkVDVD0iV1BQ cm9ncmFtfFJlYWQgbWV8PExTV0lUQ0hFUl9GT0xERVI+fEVYRU5BTUU9RS5FWEU7UEFSQU1F VEVSUz0kKDIpXFJlYWRtZTtPQkpFQ1RJRD08TFNXSVRDSEVSUkVBRE1FPjsiDQogICAgIENS RUFURU9CSkVDVD0iV1BQcm9ncmFtfEzDqWFtZXw8TFNXSVRDSEVSX0ZPTERFUj58RVhFTkFN RT1FLkVYRTtQQVJBTUVURVJTPSQoMilcUmVhZG1lLmVzO09CSkVDVElEPTxMU1dJVENIRVJS RUFETUVFUz47Ig0KICAgICBDUkVBVEVPQkpFQ1Q9IldQUHJvZ3JhbXxIaXN0b3J5fDxMU1dJ VENIRVJfRk9MREVSPnxFWEVOQU1FPUUuRVhFO1BBUkFNRVRFUlM9JCgyKVxoaXN0b3J5O09C SkVDVElEPTxMU1dJVENIRVJISVNUT1JZPjsiDQogICAgIENSRUFURU9CSkVDVD0iV1BQcm9n cmFtfEdOVSBQdWJsaWMgTGljZW5zZXw8TFNXSVRDSEVSX0ZPTERFUj58RVhFTkFNRT1FLkVY RTtQQVJBTUVURVJTPSQoMilcY29weWluZztPQkpFQ1RJRD08TFNXSVRDSEVSTElDRU5TRT47 Ig0KICAgICBDTEVBUlBST0ZJTEU9IlVTRVJcbFN3aXRjaGVyIg0KICAgICBFWEVDVVRFPSJS ZW1vdmVfdW53YW50ZWRfTFNXSE9PSy5ETExfZmlsZXMifCQoMilcTnVrZUxTV0ZpbGVzLmNt ZCBMSUJQQVRIIExTV0hPT0suRExMICI9KCJIb29rUGF0aCIpIg0KICAgICBFWEVDVVRFPSJS ZW1vdmVfdW53YW50ZWRfTFNXSE9PSy5TWU1fZmlsZXMifCQoMilcTnVrZUxTV0ZpbGVzLmNt ZCBMSUJQQVRIIExTV0hPT0suc3ltICI9KCJIb29rUGF0aCIpIg0KICAgICBFWEVDVVRFPSJS ZW1vdmVfdW53YW50ZWRfTFNXSE9PSy5NQVBfZmlsZXMifCQoMilcTnVrZUxTV0ZpbGVzLmNt ZCBMSUJQQVRIIExTV0hPT0subWFwICI9KCJIb29rUGF0aCIpIg0KICAgICBFWEVDVVRFPSJS ZW1vdmVfdW53YW50ZWRfTFNXSE9PSy5YUVNfZmlsZXMifCQoMilcTnVrZUxTV0ZpbGVzLmNt ZCBMSUJQQVRIIExTV0hPT0sueHFzICI9KCJIb29rUGF0aCIpIg0KICAgICBFWEVDVVRFPSJS ZW1vdmVfdW53YW50ZWRfTFNXSE9PSy5NQVAtSUJNX2ZpbGVzInwkKDIpXE51a2VMU1dGaWxl cy5jbWQgTElCUEFUSCBMU1dIT09LLm1hcC1pYm0gIj0oIkhvb2tQYXRoIikiDQogICAgIERF RVhFQ1VURT0kKDIpXE51a2VMU1dGaWxlcyBMSUJQQVRIIExTV0hPT0suRExMDQogICAgIERF RVhFQ1VURT0kKDIpXE51a2VMU1dGaWxlcyBMSUJQQVRIIExTV0hPT0suc3ltDQogICAgIERF RVhFQ1VURT0kKDIpXE51a2VMU1dGaWxlcyBMSUJQQVRIIExTV0hPT0subWFwDQogICAgIERF RVhFQ1VURT0kKDIpXE51a2VMU1dGaWxlcyBMSUJQQVRIIExTV0hPT0sueHFzDQogICAgIERF RVhFQ1VURT0kKDIpXE51a2VMU1dGaWxlcyBMSUJQQVRIIExTV0hPT0subWFwLWlibQ0KICAg ICA+Q29udGFpbnMgdGhlIGNvbW1vbiBsU3dpdGNoZXIgc3VwcG9ydCBmaWxlcy4NCiAgICAg PC9QQ0s+DQoNCjxQQ0sgSU5ERVg9Mw0KICAgICBQQUNLQUdFSUQ9Ik5ldGxhYnNcbFN3aXRj aGVyXFRhc2tiYXJcMlw5M1wwXDAiDQogICAgIFRBUkdFVD0iJChXQVJQSU5fREVGQVVMVFRP T0xTUEFUSClcbFN3aXRjaGVyIg0KICAgICBUSVRMRT0ibFN3aXRjaGVyIFRhc2tiYXIiDQog ICAgIFJFUVVJUkVTPTENCiAgICAgUkVRVUlSRVM9Mg0KICAgICBDUkVBVEVPQkpFQ1Q9IldQ UHJvZ3JhbXxsU3dpdGNoZXJ8PExTV0lUQ0hFUl9GT0xERVI+fEVYRU5BTUU9JCgzKVxsc3dp dGNoLmV4ZTtPQkpFQ1RJRD08TFNXSVRDSEVSPiINCiAgICAgTE9OR0ZJTEVOQU1FUw0KICAg ICA+Q29udGFpbnMgdGhlIGxTd2l0Y2hlciBUYXNrYmFyLg0KDQpJZiB5b3UgYWxzbyBpbnN0 YWxsIHRoZSBXaWRnZXQgdGhpcyBUYXNrYmFyIHdpbGwgbm90IHN0YXJ0DQp3aGVuIFhDZW50 ZXIgaXMgb3Blbi4NClNlZSB0aGUgaW5jbHVkZWQgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBk ZXRhaWxzLg0KICAgICA8L1BDSz4NCiAgICAgDQo8UENLIElOREVYPTQNCiAgICAgUEFDS0FH RUlEPSJOZXRsYWJzXGxTd2l0Y2hlclxXaWRnZXRcMlw5M1wwXDAiDQogICAgIFRBUkdFVD0i PSgiZ2V0WENlbnRlcmRpciIpIg0KICAgICBUSVRMRT0ibFN3aXRjaGVyIFdpZGdldCBmb3Ig WChlKUNlbnRlciINCiAgICAgUkVRVUlSRVM9MQ0KICAgICBSRVFVSVJFUz0yDQogICAgIFJF UVVJUkVTPSJVbHJpY2ggTcO2bGxlclxYV29ya3BsYWNlXEtlcm5lbFwxXDBcMSINCiAgICAg TE9OR0ZJTEVOQU1FUw0KICAgICA+Q29udGFpbnMgdGhlIGxTd2l0Y2hlciBXaWRnZXQgZm9y IFgoZSlDZW50ZXIuDQogDQpJdCByZXF1aXJlcyBYKGUpQ2VudGVyIHRvIGJlIGluc3RhbGxl ZCANCmJlZm9yZSBpbnN0YWxsaW5nIHRoZSBXaWRnZXQuDQoNCklmIHlvdSBhbHNvIGluc3Rh bGwgdGhlIFRhc2tiYXIgaXQgKFRhc2tiYXIpIHdpbGwgbm90IHN0YXJ0DQp3aGVuIFhDZW50 ZXIgaXMgb3Blbi4gRG8gbm90IGluc3RhbGwgdGhpcyBwYWNrYWdlDQppZiB5b3UgcGxhbiB0 byB1c2UgdGhlIGxTd2l0Y2hlciBUYXNrYmFyIHBhY2thZ2UNClNlZSB0aGUgaW5jbHVkZWQg ZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLg0KICAgICA8L1BDSz4NCg0KPFBDSyBJ TkRFWD01DQogICAgIFBBQ0tBR0VJRD0iTmV0bGFic1xsU3dpdGNoZXJcRG9zVFNSXDJcOTNc MFwwIg0KICAgICBUQVJHRVQ9Ij86XE9TMlxNRE9TXExTV0RPUyINCiAgICAgVElUTEU9ImxT d2l0Y2hlciBET1MgVFNSIg0KICAgICBSRVFVSVJFUz0xDQogICAgIFJFUVVJUkVTPTINCiAg ICAgPkNvbnRhaW5zIHRoZSBET1MgbFN3aXRjaGVyIFRTUg0KKFRlcm1pbmF0ZSBTdGF5IFJl c2lkZW50KSB1dGlsaXR5Lg0KICANClRvIGVuYWJsZSB1c2Ugb2YgdGhlIGxTd2l0Y2hlciB0 ZXh0IG1vZGUgdGFzaw0KTGlzdCwgdGhpcyBtdXN0IGJlIGxvYWRlZCBpbiBlYWNoIERPUyBm dWxsIHNjcmVlbg0Kc2Vzc2lvbiBvciBhZGRlZCB0byBBVVRPRVhFQy5CQVQgKE5PVCBkb25l DQpkdXJpbmcgaW5zdGFsbCkuIFNlZSB0aGUgaW5jbHVkZWQgZG9jdW1lbnRhdGlvbg0KZm9y IG1vcmUgZGV0YWlscy4NCiANClRoaXMgaXMgb25seSBuZWVkZWQgZm9yIERPUyBmdWxsIHNj cmVlbiBzZXNzaW9ucy4NCiAgICAgPC9QQ0s+DQoNCjwvSEVBRD4NCg0KPEJPRFk+DQoNCjxQ QUdFIElOREVYPTEgVFlQRT1SRUFETUU+DQo8TkVYVEJVVFRPTiBUQVJHRVQ9Mj5+TmV4dDwv TkVYVEJVVFRPTj4NCjxURVhUPk5PVEU6ICBBIHNwZWNpYWwgdGhhbmtzIHRvIEFuZHJlaSBM b3MgZm9yIG9yaWdpbmFsbHkgZGV2ZWxvcGluZyB0aGlzIHByb2dyYW0gYXMgb3BlbiBzb3Vy Y2Ugc29mdHdhcmUuIFRoYW5rcyBhbHNvIGdvZXMgdG8gb3RoZXJzIHdobyBoYXZlIHdvcmtl ZCB0byBpbXByb3ZlIGFuZCBlbmhhbmNlIHRoaXMgZ3JlYXQgcHJvZ3JhbS48L1RFWFQ+DQo8 UkVBRE1FIEZPUk1BVD1QTEFJTiBFWFRSQUNURlJPTVBDSz0iMiI+cmVhZG1lPC9SRUFETUU+ DQo8L1BBR0U+DQoNCjxQQUdFIElOREVYPTIgVFlQRT1SRUFETUU+DQo8TkVYVEJVVFRPTiBU QVJHRVQ9Mz5+SSBhZ3JlZTwvTkVYVEJVVFRPTj4NCjxURVhUPmxTd2l0Y2hlciBMaWNlbnNl OiBCeSBwcmVzc2luZyB0aGUgIkkgYWdyZWUiIGJ1dHRvbiwgeW91IGFncmVlIHRvIGFsbCB0 ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgbGljZW5zZSBhZ3JlZW1lbnQgYmVsb3cuPC9U RVhUPg0KPFJFQURNRSBFWFRSQUNURlJPTVBDSz0iMiI+Y29weWluZzwvUkVBRE1FPg0KPC9Q QUdFPg0KDQo8UEFHRSBJTkRFWD0zIFRZUEU9UkVBRE1FPg0KPE5FWFRCVVRUT04gVEFSR0VU PTQ+fk5leHQ8L05FWFRCVVRUT04+DQo8VEVYVD5BIG5vdGUgb2Ygd2FybmluZyBhYm91dCBp bnN0YWxsaW5nIGlmIHByZXZpb3VzIHZlcnNpb25zIGFyZSBpbnN0YWxsZWQuDQpZb3Ugc2hv dWxkIHVuaW5zdGFsbCBhbnkgcHJlIDIuOTAgdmVyc2lvbnMgb2YgbFN3aXRjaGVyIGJlZm9y ZSBpbnN0YWxsaW5nIHRoaXMgcGFja2FnZS48L1RFWFQ+DQo8UkVBRE1FIEZPUk1BVD1IVE1M Pg0KPFA+V2h5IHVuaW5zdGFsbDoNCjxPTD4NCiAgPExJPlRoZSBob29rIGFuZCByZXNvdXJj ZSBmaWxlcyBoYXZlIGNoYW5nZWQgYW5kIGFyZSB2ZXJzaW9uIHNwZWNpZmljLg0KICA8TEk+ QW4gb2xkIFdpZGdldCBpbnN0YWxsIHdpbGwgcHJldmVudCB0aGUgVGFza2JhciBmcm9tIHJ1 bm5pbmcgaWYgWChlKUNlbnRlciBpcyBvcGVuLg0KICA8TEk+QW4gb2xkIFRhc2tiYXIgSWNv biBtYXkgc3RpbGwgYmUgcHJlc2VudCBhbmQgbWlnaHQgZmFpbCBvciBleGhpYml0IHN0cmFu Z2UgYmVoYXZpb3IuDQogIDxMST5WZXJzaW9ucyBwcmlvciB0byAyLjgwIHdlcmUgaW5zdGFs bGVkIG1hbnVhbGx5Lg0KICA8TEk+VGhlIHN0cnVjdHVyZSBvZiB0aGlzIFdQSSBwYWNrYWdl IGNoYW5nZWQgaW4gdmVyc2lvbiAyLjkwIGFuZCB3aWxsIG5vdCBvdmVyd3JpdGUvcmVtb3Zl IGZpbGVzIGZyb20gcHJlIDIuOTAgaW5zdGFsbHMuDQo8L09MPg0KDQo8UD5JZiB5b3UgcGxh biBvbiByZW1vdmluZyBsYW5ndWFnZSBETEwocykgbWFudWFsbHk6DQo8T0w+DQogIDxMST5P cGVuIHRoZSBQcm9wZXJ0aWVzIG5vdGVib29rIChUYXNrYmFyIG9yIFdpZGdldCkuDQogIDxM ST5HbyB0byB0aGUgTWlzY2VsbGFuZW91cyB0YWIuDQogIDxMST5DaGFuZ2UgTGFuZ3VhZ2Ug dG8gdGhlIGxhbmd1YWdlIHlvdSBkZXNpcmUsIGFuZCBzYXZlIHNldHRpbmdzLg0KICA8TEk+ Q2xvc2UgdGhlIFByb3BlcnRpZXMgbm90ZWJvb2suDQogIDxMST5EZWxldGUgdW51c2VkIGxh bmd1YWdlIERMTChzKSBhcyBkZXNpcmVkLg0KPC9PTD4NCjwvUkVBRE1FPg0KPC9QQUdFPg0K DQo8UEFHRSBJTkRFWD00IFRZUEU9UkVBRE1FPg0KPE5FWFRCVVRUT04gVEFSR0VUPTU+fk5l eHQ8L05FWFRCVVRUT04+DQo8VEVYVD5JbnN0YWxsaW5nIHRoZSBUYXNrYmFyIGFuZCB0aGUg V2lkZ2V0IHRvZ2V0aGVyLCBhbmQgdGhlIERPUyBUU1IuPC9URVhUPg0KPFJFQURNRSBGT1JN QVQ9SFRNTD4NCjxQPldoaWxlIHlvdSBjYW4gaW5zdGFsbCBib3RoIHRoZSBUYXNrYmFyIGFu ZCANCnRoZSBYKGUpQ2VudGVyIFdpZGdldCBhdCB0aGUgc2FtZSB0aW1lLCBETyBOT1QgDQph dHRlbXB0IHRvIHJ1biB0aGUgVGFza2JhciBhbmQgdGhlIA0KWChlKUNlbnRlciBXaWRnZXQg YXQgdGhlIHNhbWUgdGltZS4gU2ltcGx5IGhhdmluZw0KWChlKUNlbnRlciBvcGVuIHdpdGgg dGhlIFdpZGdldCBpbnN0YWxsZWQgd2lsbA0KcHJldmVudCB0aGUgVGFza2JhciBmcm9tIHJ1 bm5pbmcgaWYgDQpYKGUpQ2VudGVyIGlzIG9wZW4uDQoNCjxQPiBUaGUgRE9TIFRTUiBpcyBv bmx5IHVzZWZ1bCBmb3IgZnVsbCBzY3JlZW4NCkRPUyBzZXNzaW9ucy4gVGhlIGluc3RhbGxl ciBkb2Vzbid0IGFkZCBpdCB0bw0KQVVUT0VYRUMuQkFULg0KDQo8UD5TZWUgdGhlIGRvY3Vt ZW50YXRpb24gZm9yIG1vcmUgZGV0YWlscy4NCjwvUkVBRE1FPg0KPC9QQUdFPg0KDQo8UEFH RSBJTkRFWD01IFRZUEU9Q09OVEFJTkVSPg0KPE5FWFRCVVRUT04gVEFSR0VUPTY+fk5leHQ8 L05FWFRCVVRUT04+DQo8VEVYVD5TZWxlY3QgeW91ciBpbnN0YWxsYXRpb24gZGlyZWN0b3J5 LjwvVEVYVD4NCjwvUEFHRT4NCg0KPFBBR0UgSU5ERVg9NiBUWVBFPUNPTkZJR1VSRT4NCjxO RVhUQlVUVE9OIFRBUkdFVD0wPkl+bnN0YWxsPC9ORVhUQlVUVE9OPg0KPFRFWFQ+UGxlYXNl IHNlbGVjdC9kZXNlbGVjdCB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIG9wdGlvbihzKS48 L1RFWFQ+DQo8L1BBR0U+DQoNCjwvQk9EWT4NCjwvV0FSUElOPg0KDQo= --------------090404060203020202050900--