Re: master: Improve receiving some C strings from foreign function on 64-bit Unicode
Stas Boukarev <[email protected]> Wed, 10 Jun 2026 06:21:21 +0300
| Newsgroups | gmane.lisp.steel-bank.cvs,gmane.lisp.steel-bank.devel |
|---|---|
| Message-ID | <CAF63=12yM73L+9Xu-u3big9nfNKeuRCm3TeMO2ZNk_ADPT8Jnw@mail.gmail.com> |
Tm90IGNoZWNraW5nIGZvciB0aGUgOHRoIGJpdCBpcyBhIHF1ZXN0aW9uLiBBIGN1c3RvbSBTSU1E IHJvdXRpbmUKd291bGQgcHJvdmlkZSBhc2NpaS1jaGVja2luZyBiYXNpY2FsbHkgZm9yIGZyZWUg KGFuZCBldmVuIGZvciA6dXRmOCksCmFsdGhvdWdoIGl0J3MgaGFyZGVyIHRvIGtlZXAgdXAgd2l0 aCB3ZWxsIG9wdGltaXplZCBtZW1jcHkgKGJ1dAp0aGV5J3JlIGFsbCBpbiBhc3NlbWJseSBhbnl3 YXksIG5vdCBpbXBvc3NpYmxlIHRvIGNvcHkgdGhlIHNhbWUKYXBwcm9hY2hlcykuClRoZSBidWZm ZXJpbmcgZXh0ZXJuYWwgZm9ybWF0cyBkbyBoYXZlIFNCLVZNOjpTSU1ELUNPUFktVVRGOC1UTy1C QVNFLVNUUklORy4KCk9uIFdlZCwgSnVuIDEwLCAyMDI2IGF0IDY6MDnigK9BTSBzbnVnbGFzIHZp YSBTYmNsLWNvbW1pdHMKPHNiY2wtY29tbWl0c0BsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+IHdyb3Rl Ogo+Cj4gVGhlIGJyYW5jaCAibWFzdGVyIiBoYXMgYmVlbiB1cGRhdGVkIGluIFNCQ0w6Cj4gICAg ICAgIHZpYSAgMDA3NDYzYTk3YWY5ZTExYjRlYTJjNDE5MTdiZjI4MzhiMzcxZTljMCAoY29tbWl0 KQo+ICAgICAgIGZyb20gIDJkZjNmODA3MWJmY2Y4NTcyMTEwNGU1OGVmYWQ2ZDM4ZTljMmI5MTIg KGNvbW1pdCkKPgo+IC0gTG9nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gY29tbWl0IDAwNzQ2M2E5N2FmOWUxMWI0ZWEy YzQxOTE3YmYyODM4YjM3MWU5YzAKPiBBdXRob3I6IERvdWdsYXMgS2F0em1hbiA8ZG91Z2tAZ29v Z2xlLmNvbT4KPiBEYXRlOiAgIFR1ZSBKdW4gOSAyMjo1Nzo1NyAyMDI2IC0wNDAwCj4KPiAgICAg SW1wcm92ZSByZWNlaXZpbmcgc29tZSBDIHN0cmluZ3MgZnJvbSBmb3JlaWduIGZ1bmN0aW9uIG9u IDY0LWJpdCBVbmljb2RlCj4KPiAgICAgSWYgdGhlIHN0cmluZydzIEVGIGlzIDpBU0NJSSBhbmQg dGhlIGRlc2lyZWQgZWxlbWVudC10eXBlIGlzIEJBU0UtQ0hBUiB0aGVuIGp1c3QgbWVtY3B5Lgo+ IC0tLQo+ICBzcmMvY29kZS9jLWNhbGwubGlzcCAgICAgICAgICAgfCAzMyArKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0KPiAgc3JjL2NvZGUvbWlzYy1hbGllbnMubGlzcCAgICAgIHwg IDggLS0tLS0tLS0KPiAgc3JjL2NvZGUvdGFyZ2V0LWFsaWVuZXZhbC5saXNwIHwgIDkgKysrKysr KysrCj4gIHNyYy9jb2RlL3RhcmdldC1jLWNhbGwubGlzcCAgICB8ICA4ICsrKysrKysrCj4gIHNy Yy9jb2xkL2V4cG9ydHMubGlzcCAgICAgICAgICB8ICAyICstCj4gIHNyYy9jb21waWxlci9mbmRi Lmxpc3AgICAgICAgICB8ICAyICsrCj4gIHRlc3RzL2FsaWVuY2FsbC5wdXJlLmxpc3AgICAgICB8 IDE2ICsrKysrKysrKysrKysrKysKPiAgNyBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCsp LCAxOCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9zcmMvY29kZS9jLWNhbGwubGlzcCBi L3NyYy9jb2RlL2MtY2FsbC5saXNwCj4gaW5kZXggMmQzNDNkMWFjLi42N2MxMzA1NzYgMTAwNjQ0 Cj4gLS0tIGEvc3JjL2NvZGUvYy1jYWxsLmxpc3AKPiArKysgYi9zcmMvY29kZS9jLWNhbGwubGlz cAo+IEBAIC04Myw2ICs4Myw4IEBACj4gICAgICAgICAgIDpkYXR1bSBuaWwpKQo+Cj4gIChkZWZp bmUtYWxpZW4tdHlwZS1tZXRob2QgKGMtc3RyaW5nIDpuYXR1cmFsaXplLWdlbikgKHR5cGUgYWxp ZW4pCj4gKyAgOzsgUG90ZW50aWFsbHkgdGhlIFNBRkVUWSBwb2xpY3kgY291bGQgaW5mbHVlbmNl IHdoZXRoZXIgdG8gZWxpZGUKPiArICA7OyB0aGUgbnVsbCBjaGVjayBvbiBzdHJpbmdzIHdob3Nl IGFsaWVuIHR5cGUgc2F5cyBub24tbnVsbGFibGUuCj4gICAgYChpZiAoemVyb3AgKHNhcC1pbnQg LGFsaWVuKSkKPiAgICAgICAgICwoaWYgKGFsaWVuLWMtc3RyaW5nLXR5cGUtbm90LW51bGwgdHlw ZSkKPiAgICAgICAgICAgICAgYChudWxsLWVycm9yICcsdHlwZSkKPiBAQCAtOTEsMTkgKzkzLDMy IEBACj4gICAgICAgICA7OyBjb252ZXJzaW9uLCBvciB3aGV0aGVyIHdlIGNhbiBqdXN0IGRvIGEg Y2hlYXAgYnl0ZS1ieS1ieXRlCj4gICAgICAgICA7OyBjb3B5IG9mIHRoZSBjLXN0cmluZyBkYXRh Lgo+ICAgICAgICAgOzsKPiAtICAgICAgIDs7IE9uIFNCLVVOSUNPREUgd2UgY2FuIG5ldmVyIGRv IHRoZSBjaGVhcCBjb3B5LCBldmVuIGlmIHRoZQo+IC0gICAgICAgOzsgZXh0ZXJuYWwgZm9ybWF0 IGFuZCBlbGVtZW50LXR5cGUgYXJlIHN1aXRhYmxlLCBzaW5jZQo+ICsgICAgICAgOzsgT24gU0It VU5JQ09ERSB0aGUgY2hlYXAgY29weSBpcyBwb3NzaWJsZSBmb3IgZXh0ZXJuYWwtZm9ybWF0IDpB U0NJSQo+ICsgICAgICAgOzsgYW5kIGNvcHlpbmcgdG8gYSBiYXNlLXN0cmluZy4gT3RoZXJ3aXNl IGl0IGlzbid0IHNpbmNlCj4gICAgICAgICA7OyBzaW1wbGUtYmFzZS1zdHJpbmdzIG1heSBub3Qg Y29udGFpbiBJU08tODg1OS0xIGNoYXJhY3RlcnMuCj4gICAgICAgICA7OyBJZiB3ZSBuZWVkIHRv IGNoZWNrIGZvciBub24tYXNjaWkgZGF0YSBpbiB0aGUgaW5wdXQsIHdlCj4gICAgICAgICA7OyBt aWdodCBhcyB3ZWxsIGdvIHRocm91Z2ggdGhlIHVzdWFsIGV4dGVybmFsLWZvcm1hdCBtYWNoaW5l cnkKPiAgICAgICAgIDs7IGluc3RlYWQgb2YgcmV3cml0aW5nIGFub3RoZXIgdmVyc2lvbiBvZiBp dC4KPiAtICAgICAgICwoaWYgIytzYi11bmljb2RlIHQKPiAtICAgICAgICAgICAgIy1zYi11bmlj b2RlIChjLXN0cmluZy1uZWVkcy1jb252ZXJzaW9uLXAgdHlwZSkKPiAtICAgICAgICAgICAgYChj LXN0cmluZy10by1zdHJpbmcgLGFsaWVuCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChjLXN0cmluZy1leHRlcm5hbC1mb3JtYXQgLHR5cGUpCj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChhbGllbi1jLXN0cmluZy10eXBlLWVsZW1lbnQtdHlwZQo+IC0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLHR5cGUpKQo+IC0gICAgICAgICAgICBgKCVu YXR1cmFsaXplLWMtc3RyaW5nICxhbGllbikpKSkKPiArICAgICAgICwobGV0ICgoY29udiBgKGMt c3RyaW5nLXRvLXN0cmluZwo+ICsgICAgICAgICAgICAgICAgICAgICAgLGFsaWVuCj4gKyAgICAg ICAgICAgICAgICAgICAgICAoYy1zdHJpbmctZXh0ZXJuYWwtZm9ybWF0ICx0eXBlKQo+ICsgICAg ICAgICAgICAgICAgICAgICAgJywoYWxpZW4tYy1zdHJpbmctdHlwZS1lbGVtZW50LXR5cGUgdHlw ZSkpKSkKPiArICAgICAgICAgICMtc2ItdW5pY29kZQo+ICsgICAgICAgICAgKGlmIChjLXN0cmlu Zy1uZWVkcy1jb252ZXJzaW9uLXAgdHlwZSkgY29udiBgKCVuYXR1cmFsaXplLWMtc3RyaW5nICxh bGllbikpCj4gKyAgICAgICAgICAjK3NiLXVuaWNvZGUKPiArICAgICAgICAgIChpZiAob3IgKG5l cSAoYWxpZW4tYy1zdHJpbmctdHlwZS1leHRlcm5hbC1mb3JtYXQgdHlwZSkgOmFzY2lpKQo+ICsg ICAgICAgICAgICAgICAgICAobmVxIChhbGllbi1jLXN0cmluZy10eXBlLWVsZW1lbnQtdHlwZSB0 eXBlKSAnYmFzZS1jaGFyKQo+ICsgICAgICAgICAgICAgICAgICAgOzsgdGhpcyB0ZXN0IG1pZ2h0 IGJlIHVubmVjZXNzYXJ5IGJ1dCBpZiB5b3UncmUgYXNraW5nIGZvciBtYXhpbXVtCj4gKyAgICAg ICAgICAgICAgICAgICA7OyBzYWZldHkgdGhlbiB3ZSBzaG91bGQgY2hlY2sgZm9yIG5vbi1BU0NJ SSBjaGFyYWN0ZXJzCj4gKyAgICAgICAgICAgICAgICAgICAoc2ItYzo6cG9saWN5IHNiLWM6Oipw b2xpY3kqICg9IHNhZmV0eSAzKSkpCj4gKyAgICAgICAgICAgICAgY29udgo+ICsgICAgICAgICAg ICAgIDs7IGVsc2UgImNoZWFwIGJ5dGUtYnktYnl0ZSBjb3B5Igo+ICsgICAgICAgICAgICAgICMt NjQtYml0IGAoJW5hdHVyYWxpemUtYy1zdHJpbmcgLGFsaWVuKQo+ICsgICAgICAgICAgICAgIDs7 IGV2ZW4gYmV0dGVyOiBhdm9pZCBTQVAgY29uc2luZy4gVGhlIENQVSBhbmQgT1MgYXNzdXJlIHRo YXQgdXMgdGhhdAo+ICsgICAgICAgICAgICAgIDs7IHVzZXJzcGFjZSBjYW4ndCBoYXZlIGJpdCA2 MyBvbiBmb3IgdHdvIHBvcHVsYXIgYXJjaGl0ZWN0dXJlcy4KPiArICAgICAgICAgICAgICAjKzY0 LWJpdAo+ICsgICAgICAgICAgICAgIGAoJW5hdHVyYWxpemUtYmFzZS1zdHJpbmcvd29yZCAjKyhv ciBhcm02NCB4ODYtNjQpICh0aGUgZml4bnVtIChzYXAtaW50ICxhbGllbikpCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMtKG9yIGFybTY0IHg4Ni02NCkg KHNhcC1pbnQgLGFsaWVuKSkpKSkpCj4KPiAgKGRlZmluZS1hbGllbi10eXBlLW1ldGhvZCAoYy1z dHJpbmcgOmRlcG9ydC1nZW4pICh0eXBlIHZhbHVlKQo+ICAgIDs7IFRoaXMgU0FQIHRha2luZyBp cyBzYWZlIGFzIERFUE9SVCBjYWxsZXJzIHBpbiB0aGUgVkFMVUUgd2hlbgo+IGRpZmYgLS1naXQg YS9zcmMvY29kZS9taXNjLWFsaWVucy5saXNwIGIvc3JjL2NvZGUvbWlzYy1hbGllbnMubGlzcAo+ IGluZGV4IDQ5NjIwMDI2ZS4uNmM4ZDczMTM5IDEwMDY0NAo+IC0tLSBhL3NyYy9jb2RlL21pc2Mt YWxpZW5zLmxpc3AKPiArKysgYi9zcmMvY29kZS9taXNjLWFsaWVucy5saXNwCj4gQEAgLTY5LDE0 ICs2OSw2IEBACj4gICAgKGRlc3Qgc3lzdGVtLWFyZWEtcG9pbnRlcikKPiAgICAoc3JjIHN5c3Rl bS1hcmVhLXBvaW50ZXIpCj4gICAgKG4gc2ItdW5peDo6c2l6ZS10KSkKPiAtOzs7IFRoZSBvdmVy aGVhZCBvZiBMaXNwIG1heSBtYWtlIHRoZSBkaXN0aW5jdGlvbiBiZXR3ZWVuIG1lbW1vdmUoKSBh bmQgbWVtY3B5KCkKPiAtOzs7IGlycmVsZXZhbnQsIGJ1dCB3ZSBtYXkgYXMgd2VsbCBwcm9taXNl IHRoYXQgdGhlIHJhbmdlcyBkb24ndCBvdmVybGFwIHdoZW4gb25lCj4gLTs7OyBvZiB0aGVtIGlz IGEgZnJlc2hseSBjb25zZWQgc3RyaW5nLCBmb3IgZXhhbXBsZS4KPiAtKGRlY2xhaW0gKGlubGlu ZSBtZW1jcHkpKQo+IC0oZGVmaW5lLWFsaWVuLXJvdXRpbmUgKCJtZW1jcHkiIG1lbWNweSkgc3lz dGVtLWFyZWEtcG9pbnRlcgo+IC0gIChkZXN0IHN5c3RlbS1hcmVhLXBvaW50ZXIpCj4gLSAgKHNy YyBzeXN0ZW0tYXJlYS1wb2ludGVyKQo+IC0gIChuIHNiLXVuaXg6OnNpemUtdCkpCj4KPiAgKGRl ZnVuIGNvcHktdWI4LXRvLXN5c3RlbS1hcmVhIChzcmMgc3JjLW9mZnNldCBkc3QgZHN0LW9mZnNl dCBsZW5ndGgpCj4gICAgKHdpdGgtcGlubmVkLW9iamVjdHMgKHNyYykKPiBkaWZmIC0tZ2l0IGEv c3JjL2NvZGUvdGFyZ2V0LWFsaWVuZXZhbC5saXNwIGIvc3JjL2NvZGUvdGFyZ2V0LWFsaWVuZXZh bC5saXNwCj4gaW5kZXggZGNlOTZkMjZiLi5iMmZhMjU5M2UgMTAwNjQ0Cj4gLS0tIGEvc3JjL2Nv ZGUvdGFyZ2V0LWFsaWVuZXZhbC5saXNwCj4gKysrIGIvc3JjL2NvZGUvdGFyZ2V0LWFsaWVuZXZh bC5saXNwCj4gQEAgLTk2MywzICs5NjMsMTIgQEAgc3BlY2lmaWVzIHRoZSB3YXkgdGhhdCB0aGUg YXJndW1lbnQgaXMgcGFzc2VkLgo+ICAgICAgICAgICAgICAgICAoZXJyb3IgIihTVFJVQ1QgflMp IGhhcyB1bmV4cGVjdGVkIHNpemUiIHRhZykpKSkpCj4gICAgICAoY2hlY2stc2l6ZSAnc2ItdW5p eDo6dGltZXNwZWMpCj4gICAgICAoY2hlY2stc2l6ZSAnc2ItdW5peDo6dGltZXZhbCkpKQo+ICsK PiArOzs7IFRoZSBvdmVyaGVhZCBvZiBMaXNwIG1heSBtYWtlIHRoZSBkaXN0aW5jdGlvbiBiZXR3 ZWVuIG1lbW1vdmUoKSBhbmQgbWVtY3B5KCkKPiArOzs7IGlycmVsZXZhbnQsIGJ1dCB3ZSBtYXkg YXMgd2VsbCBwcm9taXNlIHRoYXQgdGhlIHJhbmdlcyBkb24ndCBvdmVybGFwIHdoZW4gb25lCj4g Kzs7OyBvZiB0aGVtIGlzIGEgZnJlc2hseSBjb25zZWQgc3RyaW5nLCBmb3IgZXhhbXBsZS4KPiAr KGRlY2xhaW0gKGlubGluZSBzYi1pbXBsOjptZW1jcHkpKQo+ICsoZGVmaW5lLWFsaWVuLXJvdXRp bmUgKCJtZW1jcHkiIHNiLWltcGw6Om1lbWNweSkgc3lzdGVtLWFyZWEtcG9pbnRlcgo+ICsgIChk ZXN0IHN5c3RlbS1hcmVhLXBvaW50ZXIpCj4gKyAgKHNyYyBzeXN0ZW0tYXJlYS1wb2ludGVyKQo+ ICsgIChuIHNiLXVuaXg6OnNpemUtdCkpCj4gZGlmZiAtLWdpdCBhL3NyYy9jb2RlL3RhcmdldC1j LWNhbGwubGlzcCBiL3NyYy9jb2RlL3RhcmdldC1jLWNhbGwubGlzcAo+IGluZGV4IGMyNDM1NTE5 MS4uYzUxNzY2M2VkIDEwMDY0NAo+IC0tLSBhL3NyYy9jb2RlL3RhcmdldC1jLWNhbGwubGlzcAo+ ICsrKyBiL3NyYy9jb2RlL3RhcmdldC1jLWNhbGwubGlzcAo+IEBAIC03MCwzICs3MCwxMSBAQAo+ ICAgICAgOzsgQ09QWS1VQjggcGlucyB0aGUgbGlzcCBzdHJpbmcsIG5vIG5lZWQgdG8gZG8gaXQg aGVyZQo+ICAgICAgKHNiLWtlcm5lbDpjb3B5LXViOC1mcm9tLXN5c3RlbS1hcmVhIHNhcCAwIHJl c3VsdCAwIGxlbmd0aCkKPiAgICAgIHJlc3VsdCkpCj4gKwo+ICsoZGVmdW4gJW5hdHVyYWxpemUt YmFzZS1zdHJpbmcvd29yZCAod29yZCkKPiArICAoZGVjbGFyZSAodHlwZSBzYi12bTp3b3JkIHdv cmQpKQo+ICsgIChsZXQqICgobGVuZ3RoIChhbGllbi1mdW5jYWxsIChleHRlcm4tYWxpZW4gInN0 cmxlbiIgKGZ1bmN0aW9uIHNpemUtdCB1bnNpZ25lZCkpIHdvcmQpKQo+ICsgICAgICAgICAocmVz dWx0IChtYWtlLXN0cmluZyBsZW5ndGggOmVsZW1lbnQtdHlwZSAnYmFzZS1jaGFyKSkpCj4gKyAg ICAod2l0aC1waW5uZWQtb2JqZWN0cyAocmVzdWx0KQo+ICsgICAgICAoc2ItaW1wbDo6bWVtY3B5 ICh2ZWN0b3Itc2FwIHJlc3VsdCkgKGludC1zYXAgd29yZCkgbGVuZ3RoKSkKPiArICAgIHJlc3Vs dCkpCj4gZGlmZiAtLWdpdCBhL3NyYy9jb2xkL2V4cG9ydHMubGlzcCBiL3NyYy9jb2xkL2V4cG9y dHMubGlzcAo+IGluZGV4IGNmMGY4YjU2NC4uMzQ3NzAwMDZiIDEwMDY0NAo+IC0tLSBhL3NyYy9j b2xkL2V4cG9ydHMubGlzcAo+ICsrKyBiL3NyYy9jb2xkL2V4cG9ydHMubGlzcAo+IEBAIC0xMDEy LDcgKzEwMTIsNyBAQCBMaXNwIGV4dGVuc2lvbiBwcm9wb3NhbCBieSBEYXZpZCBOLiBHcmF5IikK PiAgICAgICAgICAgICAiJUNBU1QiCj4gICAgICAgICAgICAgIiVERVJFRi1BRERSIiAiJUhFQVAt QUxJRU4iICIlSEVBUC1BTElFTi1BRERSIgo+ICAgICAgICAgICAgICIlTE9DQUwtQUxJRU4tQURE UiIgIiVMT0NBTC1BTElFTi1GT1JDRUQtVE8tTUVNT1JZLVAiICIlU0FQLUFMSUVOIgo+IC0gICAg ICAgICAgICIlTkFUVVJBTElaRS1DLVNUUklORyIKPiArICAgICAgICAgICAiJU5BVFVSQUxJWkUt Qy1TVFJJTkciICIlTkFUVVJBTElaRS1CQVNFLVNUUklORy9XT1JEIgo+ICAgICAgICAgICAgICIl U0VULURFUkVGIiAiJVNFVC1IRUFQLUFMSUVOIiAiJVNFVC1MT0NBTC1BTElFTiIgIiVTRVQtU0xP VCIKPiAgICAgICAgICAgICAiJVNMT1QtQUREUiIgIipTQVZFRC1GUCoiICIqVkFMVUVTLVRZUEUt T0tBWSoiCj4gICAgICAgICAgICAgIipBTElFTi1UWVBFLUhBU0hTRVRTKiIKPiBkaWZmIC0tZ2l0 IGEvc3JjL2NvbXBpbGVyL2ZuZGIubGlzcCBiL3NyYy9jb21waWxlci9mbmRiLmxpc3AKPiBpbmRl eCA2OWE3ZjRiZTMuLjYyMmQyN2EwOCAxMDA2NDQKPiAtLS0gYS9zcmMvY29tcGlsZXIvZm5kYi5s aXNwCj4gKysrIGIvc3JjL2NvbXBpbGVyL2ZuZGIubGlzcAo+IEBAIC0yMzk3LDYgKzIzOTcsOCBA QAo+ICA7Ozs7IEFMSUVOIGFuZCBjYWxsLW91dC10by1DIHN0dWZmCj4KPiAgKGRlZmtub3duICVh bGllbi1mdW5jYWxsICgob3Igc3RyaW5nIHN5c3RlbS1hcmVhLXBvaW50ZXIpIGFsaWVuLXR5cGUg JnJlc3QgdCkgKikKPiArIys2NC1iaXQKPiArKGRlZmtub3duIHNiLWFsaWVuLWludGVybmFsczol bmF0dXJhbGl6ZS1iYXNlLXN0cmluZy93b3JkIChzYi12bTp3b3JkKSBzaW1wbGUtYmFzZS1zdHJp bmcpCj4KPiAgOzsgVXNlZCBieSBXSVRILVBJTk5FRC1PQkpFQ1RTCj4gIChkZWZrbm93biBzYi12 bTo6dG91Y2gtb2JqZWN0ICh0KSAodmFsdWVzKQo+IGRpZmYgLS1naXQgYS90ZXN0cy9hbGllbmNh bGwucHVyZS5saXNwIGIvdGVzdHMvYWxpZW5jYWxsLnB1cmUubGlzcAo+IGluZGV4IDY4ZDY1MTY3 MS4uODRkM2JmMTlmIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2FsaWVuY2FsbC5wdXJlLmxpc3AKPiAr KysgYi90ZXN0cy9hbGllbmNhbGwucHVyZS5saXNwCj4gQEAgLTM5LDMgKzM5LDE5IEBACj4gICAg ICA7OyAgICA1M0Y5RkY1OCAgICAgICAgIExEUiBSOSwgI3gxMDAxQTEwMDQ4ICAgICA7IHByaW50 Zgo+ICAgICAgOzsgMikgNjAwMjNGRDYgICAgICAgICBCTFIgUjkKPiAgICAgICMrYXJtNjQgKGFz c2VydCAoPSAobG9vcCBmb3IgbGluZSBpbiBsaW5lcyBjb3VudCAoc2VhcmNoICJCTFIiIGxpbmUp KSAyKSkpKQo+ICsKPiArKGxvY2FsbHkKPiArKGRlY2xhcmUgKG9wdGltaXplIChzYi1jOjphbGll bi1mdW5jYWxsLXNhdmVzLWZwLWFuZC1wYyAwKSkpCj4gKyhkZWZpbmUtYWxpZW4tcm91dGluZSBz dHJlcnJvciAoYy1zdHJpbmcgOmV4dGVybmFsLWZvcm1hdCA6YXNjaWkgOmVsZW1lbnQtdHlwZSBi YXNlLWNoYXIpCj4gKyAgKGUgaW50KSkpCj4gKwo+ICsod2l0aC10ZXN0ICg6bmFtZSA6cmV0dXJu LWMtc3RyaW5nLW9wdGltaXplciA6c2tpcHBlZC1vbiAoOm5vdCA6eDg2LTY0KSkKPiArICA7OyBj aGVjayB0aGF0IHRoZSB0aGluZyBhY3R1YWxseSB3b3Jrcwo+ICsgIChhc3NlcnQgKHBsdXNwIChs ZW5ndGggKHN0cmVycm9yIHNiLXVuaXg6ZWJhZGYpKSkpCj4gKyAgKGxldCAoKGxpbmVzIChjdHU6 ZGlzYXNzZW1ibHktbGluZXMgIydzdHJlcnJvcikpKQo+ICsgICAgOzsgc2hvdWxkIHRhaWwtY2Fs bCB0aGUgbmF0dXJhbGl6ZSBmdW5jdGlvbgo+ICsgICAgKGFzc2VydCAobG9vcCBmb3IgbGluZSBp biBsaW5lcwo+ICsgICAgICAgICAgICAgICAgICB0aGVyZWlzIChhbmQgKHNlYXJjaCAiSk1QIiBs aW5lKSAoc2VhcmNoICIlTkFUVVJBTElaRS1CQVNFLVNUUklORy9XT1JEIiBsaW5lKSkpKQo+ICsg ICAgOzsgbm8gYWxsb2MtdHJhbXAgKG5vIFNBUCBjb25zaW5nKSwgbm9yIEJJR05VTSBjb25zaW5n Cj4gKyAgICAoYXNzZXJ0IChsb29wIGZvciBsaW5lIGluIGxpbmVzCj4gKyAgICAgICAgICAgICAg ICAgIG5ldmVyIChvciAoc2VhcmNoICJBTExPQyIgbGluZSkgKHNlYXJjaCAiQklHTlVNIiBsaW5l KSkpKSkpCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Cj4KPiBob29rcy9wb3N0LXJlY2VpdmUKPiAtLQo+ IFNCQ0wKPgo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiBTYmNsLWNvbW1pdHMgbWFpbGluZyBsaXN0Cj4gU2JjbC1jb21taXRzQGxpc3RzLnNvdXJj ZWZvcmdlLm5ldAo+IGh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZv L3NiY2wtY29tbWl0cwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClNiY2wtY29tbWl0cyBtYWlsaW5nIGxpc3QKU2JjbC1jb21taXRzQGxpc3RzLnNvdXJj ZWZvcmdlLm5ldApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5mby9z YmNsLWNvbW1pdHMK