Re: SQL Server 2019: CHAR(N) using UTF-8 is seen as SQL_NVARCHAR by SQLDescribeCol()
Frediano Ziglio <[email protected]> Thu, 28 Feb 2019 18:03:35 +0000
| Newsgroups | gmane.comp.db.tds.freetds |
|---|---|
| Message-ID | <CAHt6W4fmFoOzEfLj5q4ZF=eSSnpRFkBaRgco7bOiX3XFPhuEYw@mail.gmail.com> |
RmluZSwgaXQncyB0aGUgbm90IHN0aWxsIGRvY3VtZW50ZWQgZXh0ZW5zaW9uIDEwLiBJZiBzZXQg dG8gMSAoMSBieXRlKQpkYXRhIGFyZSByZXR1cm5lZCBhcyBVVEYtOC4KSSBkb24ndCBrbm93IHdo YXQgZXh0ZW5zaW9uIDkgaXMgYnV0IDEwIGlzIGVub3VnaC4KVGhlIGNvbGxhdGlvbiBoYXMgYSB3 ZWlyZCBiaXQgc2V0IGlmIHRoZSBlbmNvZGluZyBpcyBVVEYtOC4KCkZyZWRpYW5vCgpJbCBnaW9y bm8gZ2lvIDI4IGZlYiAyMDE5IGFsbGUgb3JlIDE0OjIyIEZyZWRpYW5vIFppZ2xpbwo8ZnJlZGR5 NzdAZ21haWwuY29tPiBoYSBzY3JpdHRvOgo+Cj4gSGksCj4gICAgdGhlcmUgc2VlbXMgdG8gYmUg MiBuZXcgImZlYXR1cmUiIChpdCdzIGxpa2UgY2FwYWJpbGl0aWVzIGZvciBURFMKPiA3LjQpLCA5 IGFuZCAxMCwgdGhlIHJlbGF0aXZlIGFjayB2YWx1ZXMgYXJlIDB4MDEwMSBhbmQgMHgwMSwgY2xp ZW50IGlzCj4gc2VuZGluZyAweDAxIGZvciBib3RoLgo+IEN1cnJlbnRseSBub3QgZG9jdW1lbnRl ZCBpbiBURFMgcHJvdG9jb2wgc3BlY2lmaWNhdGlvbgo+IChodHRwczovL2RvY3MubWljcm9zb2Z0 LmNvbS9lbi11cy9vcGVuc3BlY3Mvd2luZG93c19wcm90b2NvbHMvbXMtdGRzL2I0NmE1ODFhLTM5 ZGUtNDc0NS1iMDc2LWVjNGRiYjdkMTNlYykuCj4gVGhlIHByb3RvY29sIHZlcnNpb24gaXMgc3Rp bGwgNy40Lgo+IEkgc3VwcG9zZSBJIGNhbiB0cnkgdG8gc2VuZCB0aGVzZSBmZWF0dXJlIGV4dGVu c2lvbnMgYW5kIHNlZSB3aGF0Cj4gaGFwcGVucywgaWYgc2VydmVyIGNoYW5nZXMgdGhlIGVuY29k aW5nLgo+Cj4gRnJlZGlhbm8KPgo+IElsIGdpb3JubyBnaW8gMjggZmViIDIwMTkgYWxsZSBvcmUg MTA6NTYgRnJlZGlhbm8gWmlnbGlvCj4gPGZyZWRkeTc3QGdtYWlsLmNvbT4gaGEgc2NyaXR0bzoK PiA+Cj4gPiBIaSwKPiA+ICAgc28sIGluc3RhbGxlZCBhIHNxbCAyMDE5IGFuZCB0cmllZCBzb21l IHF1ZXJpZXMuCj4gPiBVc2luZyB0aGUgZHJpdmVyIHByb3ZpZGVkIGluc2lkZSB0aGUgZG9ja2Vy IGltYWdlIHRoZSAiYWJjIiBpcwo+ID4gcmV0dXJuZWQgYXMgImFiYyAgICAgICAiLCBzbwo+ID4g dGhlIENIQVIoMTApIGFyZSByZXR1cm5lZCBlbmNvZGVkIGluIFVURi04IGFuZCB0aGUgIjEwIiBp cyBqdXN0IHRoZQo+ID4gbnVtYmVyIG9mIGJ5dGVzLgo+ID4gTm93LCB3aHkgdGhlIHNlcnZlciBk ZWNpZGVkIHRvIHJldHVybiBVVEYtOCBhbmQgbm90IGNvbnZlcnQgdG8gTlZBUkNIQVIgKHdoaWNo Cj4gPiBtYWtlIHNlbnNlIHRvIG1lIGZvciBvbGQgY2xpZW50cykgaXQncyB0aGUgaXNzdWUuIE1h eWJlIHRoZXkgYnVtcCB0aGUKPiA+IHByb3RvY29sIHZlcnNpb24sCj4gPiBtYXliZSB0aGV5IGFy ZSB1c2luZyBzb21lIG90aGVyIGZsYWdzL3ZlcnNpb24gKGxpa2UgY2xpZW50IHZlcnNpb24KPiA+ IHBhc3NlcyB0aHJvdWdoCj4gPiB0aGUgcHJlLWxvZ2luKS4gVW5mb3J0dW5hdGVseSB0aGUgbG9n aW4gaXMgZW5jcnlwdGVkIHNvIEknbGwgaGF2ZSB0bwo+ID4gZGlnIGEgYml0IG1vcmUgKHdlbGws Cj4gPiBqdXN0IHF1ZXN0aW9uIG9mIHNldHVwIGFuZCB1c2UgdGhlIGJvdW5jZSB1dGlsaXR5LCBu b3Qgc3VyZSBpZiBpdAo+ID4gc3VwcG9ydHMgcHJlLWxvZ2luKS4KPiA+Cj4gPiBGcmVkaWFubwo+ ID4KPiA+IElsIGdpb3JubyBnaW8gMjggZmViIDIwMTkgYWxsZSBvcmUgMTA6NTAgU2ViYXN0aWVu IEZMQUVTQ0gKPiA+IDxzZkA0anMuY29tPiBoYSBzY3JpdHRvOgo+ID4gPgo+ID4gPiBIZWxsbyBD cmFpZywKPiA+ID4KPiA+ID4gSSBkb24ndCB0aGluayBzbzogQW4gT0RCQyBwcm9ncmFtIHNob3Vs ZCBiZSBhYmxlIHRvIHByb3Blcmx5IGlkZW50aWZ5Cj4gPiA+IChhcyBtdWNoIGFzIHBvc3NpYmxl KSB0aGUgb3JpZ2luYWwgZGF0YWJhc2UgdHlwZSB1c2VkIGZvciBhIGNvbHVtbi4KPiA+ID4KPiA+ ID4gV2UgbXVzdCBhbHNvIGRpc3Rpbmd1aXNoIHRoZSBjb25jZXB0IG9mICJ2YXJpYWJsZSBsZW5n dGgiIHJlZ2FyZGluZyB0aGUKPiA+ID4gbnVtYmVyIG9mIGJ5dGVzIHVzZWQgdG8gZW5jb2RlIGNo YXJhY3RlcnMsIHZlcnN1cyB0aGUgYWN0dWFsIGxlbmd0aCBvZgo+ID4gPiB0aGUgc3RyaW5nIGlu IGNoYXJhY3RlciB1bml0cy4KPiA+ID4KPiA+ID4gUGx1cyB0aGUgZmFjdCB0aGF0IFtOXUNIQVIg Y29sdW1ucyBjYW4gYmUgYmxhbmstcGFkZGVkLCB3aGlsZSBbTl1WQVJDSEFSCj4gPiA+IGNvbHVt bnMgYXJlIG5vdCBhbmQgc3RvcmUgdGhlIGFjdHVhbCBudW1iZXIgb2YgdHJhaWxpbmcgd2hpdGUg c3BhY2VzIG9mCj4gPiA+IHRoZSBzdHJpbmcsIHRyeSBmb3IgZXg6Cj4gPiA+Cj4gPiA+IGNyZWF0 ZSB0YWJsZSB0YWIxICggYzEgY2hhcigxMCksIGMyIHZhcmNoYXIoMTApICkKPiA+ID4gaW5zZXJ0 IGludG8gdGFiMSB2YWx1ZXMgKCAnYWJjJywgJ2FiYyAgJyApCj4gPiA+IHNlbGVjdCAnWycrYzEr J10nLCAnWycrYzIrJ10nIGZyb20gdGFiMQo+ID4gPgo+ID4gPiBZb3Ugd2lsbCBzZWU6Cj4gPiA+ Cj4gPiA+IFthYmMgICAgICAgXSBbYWJjICBdCj4gPiA+Cj4gPiA+IChjaGVjayBTRVQgQU5TSV9Q QURESU5HIE9OL09GRikKPiA+ID4KPiA+ID4gLi4uCj4gPiA+Cj4gPiA+IFVURi04IGlzIGEgdmFy aWFibGUtd2lkdGggZW5jb2Rpbmc6Cj4gPiA+Cj4gPiA+IGEgID0+IG5lZWRzIDEgYnl0ZQo+ID4g PiDDqSAgPT4gbmVlZHMgMiBieXRlcwo+ID4gPiDmnKggPT4gbmVlZHMgMyBieXRlcwo+ID4gPiAu Li4gZXRjICh0aGVyZSBjYW4gYmUgbW9yZSB0aGFuIDMgYnl0ZXMpCj4gPiA+Cj4gPiA+IEluIHRo YXQgY29udGV4dCwgb25lIGNhbiBzZWUgYSAidmFyaWFibGUgbGVuZ3RoIiBpbiBieXRlIHVuaXRz Li4uCj4gPiA+Cj4gPiA+IEJ1dCB3aGVuIGNvdW50aW5nIGluIGNoYXJhY3RlcnMsICdhw6nmnKgn IGlzIDMgY2hhcmFjdGVycywgbm8gbWF0dGVyIHRoZQo+ID4gPiBlbmNvZGluZyB1c2VkIHRvIHN0 b3JlIHRoaXMgc3RyaW5nLgo+ID4gPgo+ID4gPiBZb3UgaGF2ZSBhbHNvIHRoZSBjb25jZXB0IG9m IGJ5dGUtbGVuZ3RoIHNlbWFudGljcyB2ZXJzdXMgY2hhci1sZW5ndGgKPiA+ID4gc2VtYW50aWNz OiBXaGVuIGNyZWF0aW5nIGEgQ0hBUigxMCkgaXMgdGhpcyAxMCBieXRlcyBvciAxMCBjaGFyYWN0 ZXJzPwo+ID4gPiBEZXBlbmRpbmcgb24gdGhlIGRhdGFiYXNlIGJyYW5kLCBpdCdzIGJ5dGVzIChT UUwgU2VydmVyKSwgY2hhcmFjdGVycwo+ID4gPiAoUG9zdGdyZVNRTCksIG9yIGl0IGNhbiBldmVu IGJlIGEgbWl4IGFuZCBzcGVjaWZpZWQgZXhwbGljaXRseSAobGlrZQo+ID4gPiBpbiBPcmFjbGUg REIpLgo+ID4gPgo+ID4gPiBOb3RlOiBZb3UgaGF2ZSB0aGVuIGFsc28gdGhlIGNvbmNlcHQgb2Yg IndpZHRoIiBvciAibnVtYmVyIG9mIGNvbHVtbnMiOgo+ID4gPiBBIGxhdGluIGNoYXJhY3RlciB0 YWtlcyBvbmUgY29sdW1uLCB3aGlsZSBhbiBBc2lhbiBsb2dvZ3JhbSB0YWtlcyAyLgo+ID4gPiBT ZWUgd2N3aWR0aCgpIGZvciBtb3JlIGRldGFpbHMuCj4gPiA+Cj4gPiA+IC4uLgo+ID4gPgo+ID4g PiBJbiBTUUwgU2VydmVyLCBOQ0hBUiBhbmQgTlZBUkNIQVIgY2FuIHN0b3JlIFVURi0xNiB3aGVu IHRoZSBTQyBtb2RpZmllcgo+ID4gPiBpcyB1c2VkIGluIHRoZSBkYXRhYmFzZSBjb2xsYXRpb24g KHRoZXkgc3RvcmUgVUNTLTIgd2hlbiBubyBTQyBpcyB1c2VkKQo+ID4gPgo+ID4gPiBJbiBVVEYt MTYsIGEgZmlyc3QgcmFuZ2Ugb2YgY2hhcmFjdGVycyBhcmUgZW5jb2RlZCBvbiAyIGJ5dGVzLCBi dXQgeW91Cj4gPiA+IGNhbiBoYXZlICJzdXJyb2dhdGUgcGFpcnMiIGVuY29kZWQgb24gNCBieXRl cyAodHdvIDE2LWJpdCBjb2RlIHVuaXRzKS4KPiA+ID4KPiA+ID4gSW4geW91ciBsb2dpYywgdGhl IE5DSEFSL1VURi0xNiB0eXBlIGNvdWxkIGFsc28gYmUgY29uc2lkZXJlZCBhcyBhCj4gPiA+ICJ2 YXJpYWJsZSBsZW5ndGgiIHR5cGUgYW5kIFNRTERlY3JpYmVDb2woKSBjb3VsZCByZXR1cm4gU1FM X1dWQVJDSEFSCj4gPiA+IGluc3RlYWQgb2YgU1FMX1dDSEFSLi4uIEl0IG11c3Qgbm90IGFuZCBk b2VzIG5vdC4KPiA+ID4KPiA+ID4gQ2hlZXJzLAo+ID4gPiBTZWIKPiA+ID4KPiA+ID4KPiA+ID4g T24gMi8yNy8xOSA0OjMyIFBNLCBDcmFpZyBKYWNrc29uIHdyb3RlOgo+ID4gPiA+IEkgZG9uJ3Qg a25vdyBhbnl0aGluZyBhYm91dCBTUUwgU2VydmVyIDIwMTksIGJ1dCBpZiB0aGV5IGFkZGVkIHRo ZSBvcHRpb24KPiA+ID4gPiB0byBhbGxvdyBVVEYtOCBlbmNvZGluZyBvZiBjaGFyYWN0ZXIgc3Ry aW5ncywgaXQgd291bGQgc2VlbSBuYXR1cmFsIHRoYXQKPiA+ID4gPiBzYWlkIHN0cmluZ3Mgd291 bGQgYmUgdmFyaWFibGUtbGVuZ3RoLCBldmVuIGlmIGRlY2xhcmVkIENIQVIobikuIFN0cmluZ3MK PiA+ID4gPiBlbmNvZGVkIGluIFVURi04IGFyZSBpbmhlcmVudGx5IHZhcmlhYmxlIGxlbmd0aC4K PiA+ID4gPgo+ID4gPiA+IENyYWlnIEphY2tzb24KPiA+ID4gPgo+ID4gPiA+IE9uIFdlZCwgRmVi IDI3LCAyMDE5IGF0IDEwOjI3IEFNIFNlYmFzdGllbiBGTEFFU0NIIDxzZkA0anMuY29tPiB3cm90 ZToKPiA+ID4gPgo+ID4gPiA+PiBIaSwKPiA+ID4gPj4KPiA+ID4gPj4gSnVzdCB0cmllZCB3aXRo IFREUyA3LjQsIGl0IGRpZCBub3QgaGVscC4KPiA+ID4gPj4KPiA+ID4gPj4gSSBoYXZlIHRlc3Rl ZCB0aGUgTVMgT0RCQyBkcml2ZXIgMTcuMy4xLjEsIGl0IHdvcmtzIGFzIGV4cGVjdGVkCj4gPiA+ ID4+ICggSSBnZXQgMS9TUUxfQ0hBUiBmcm9tIFNRTERlc2NyaWJlQ29sKCkgKQo+ID4gPiA+Pgo+ ID4gPiA+PiBZb3UgbWF5IGtub3cgdGhhdCBpdCdzIHZlcnkgZWFzeSB0byBzZXR1cCBhbiBTUUwg U2VydmVyIDIwMTkgd2l0aAo+ID4gPiA+PiBkb2NrZXIsIGRvIHlvdT8KPiA+ID4gPj4KPiA+ID4g Pj4gQ2hlZXJzLAo+ID4gPiA+PiBTZWIKPiA+ID4gPj4KPiA+ID4gPj4gT24gMi8yNy8xOSAzOjA4 IFBNLCBGcmVkaWFubyBaaWdsaW8gd3JvdGU6Cj4gPiA+ID4+PiBIaSwKPiA+ID4gPj4+ICAgICBJ IHdvdWxkIHRyeSB0byB1c2UgVERTIDcuNCwgbm90IDcuMy4KPiA+ID4gPj4+IEFsc28gSSB3b3Vs ZCB0cnkgdG8gdXNlIE1pY3Jvc29mdCBPREJDIGRyaXZlciBhbmQgYSBuZXR3b3JrIGFuYWx5emVy Cj4gPiA+ID4+PiAobGlrZSB3aXJlc2hhcmspLgo+ID4gPiA+Pj4KPiA+ID4gPj4+IFJlZ2FyZHMs Cj4gPiA+ID4+PiAgICAgRnJlZGlhbm8KPiA+ID4gPj4+Cj4gPiA+ID4+PiBJbCBnaW9ybm8gbWFy IDI2IGZlYiAyMDE5IGFsbGUgb3JlIDExOjI2IFNlYmFzdGllbiBGTEFFU0NICj4gPiA+ID4+PiA8 c2ZANGpzLmNvbT4gaGEgc2NyaXR0bzoKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+IFRlc3RpbmcgRnJl ZVREUyAxLjFyYzMgd2l0aCBTUUwgU2VydmVyIDIwMTk6Cj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiBJ IGdldCBhbiB1bmV4cGVjdGVkIFNRTCB0eXBlIGNvZGUgd2l0aCBhIENIQVIoMTApIGNvbHVtbiwg d2hlbiB0aGUKPiA+ID4gPj4+PiBkYXRhYmFzZSBjb2xsYXRpb24gaXMgdXNpbmcgVVRGLTguCj4g PiA+ID4+Pj4KPiA+ID4gPj4+PiBJbnN0ZWFkIG9mIFNRTF9DSEFSIChvciBTUUxfV0NIQVIpLCBJ IGdldCBTUUxfV1ZBUkNIQVIuCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiBJIGhhdmUgY3JlYXRlZCBh IGRhdGFiYXNlIHdpdGggdGhpcyBjb2xsYXRpb246Cj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiAgICAg IExhdGluMV9HZW5lcmFsXzEwMF9DSV9BU19TQ19VVEY4Cj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiBU aGVuIGNyZWF0ZWQgYSB0YWJsZSBsaWtlIHRoaXM6Cj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiAgICAg IENSRUFURSBUQUJMRSBteXRhYjEgKCBjb2wxIENIQVIoMTApICkKPiA+ID4gPj4+Pgo+ID4gPiA+ Pj4+IGFuZCBpbnNlcnRlZCBhIHJvdzoKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+ICAgICAgSU5TRVJU IElOVE8gbXl0YWIxIFZBTFVFUyAoICdhYmMnICkKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+IFRoZW4g aW4gdGhlIE9EQkMgcHJvZ3JhbToKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+ICAgICAgU1FMRXhlY0Rp cmVjdCguLiJTRUxFQ1QgKiBGUk9NIG15dGFiMSIuLikKPiA+ID4gPj4+PiAgICAgIFNRTERlc2Ny aWJDb2woLi4uKQo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4gQ2hlY2sgdGhlIFREU0RVTVAgdHJhY2Ug aW4gYXR0YWNobWVudCAoZnJlZXRkcy0yMDE5LTEubG9nKQo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4g dG9rZW4uYzoxNTQxOnRkczdfZ2V0X2RhdGFfaW5mbzoKPiA+ID4gPj4+PiAgICAgICAgICAgIGNv bG5hbWUgPSBjb2wxCj4gPiA+ID4+Pj4gICAgICAgICAgICB0eXBlID0gMzkgKHZhcmNoYXIpCj4g PiA+ID4+Pj4gICAgICAgICAgICBzZXJ2ZXIncyB0eXBlID0gMjMxICh4IFVDUy0yIHZhcmNoYXIp ICAgICAgICAgICA8LS0gMjMxID8KPiA+ID4gPj4+PiAgICAgICAgICAgIGNvbHVtbl92YXJpbnRf c2l6ZSA9IDIKPiA+ID4gPj4+PiAgICAgICAgICAgIGNvbHVtbl9zaXplID0gMjAgKDIwIG9uIHNl cnZlcikKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4gVGhlIHNhbWUgcHJvZ3JhbSwg Y29ubmVjdGluZyB0byBTUUwgU2VydmVyIDIwMTcgKHdlcmUgREIgY29sbGF0aW9uIGlzCj4gPiA+ ID4+IExhdGluMQo+ID4gPiA+Pj4+IHdpdGhvdXQgVVRGLTgpOgo+ID4gPiA+Pj4+Cj4gPiA+ID4+ Pj4KPiA+ID4gPj4+PiB0b2tlbi5jOjE1NDE6dGRzN19nZXRfZGF0YV9pbmZvOgo+ID4gPiA+Pj4+ ICAgICAgICAgICAgY29sbmFtZSA9IGNvbDEKPiA+ID4gPj4+PiAgICAgICAgICAgIHR5cGUgPSA0 NyAoY2hhcikKPiA+ID4gPj4+PiAgICAgICAgICAgIHNlcnZlcidzIHR5cGUgPSAxNzUgKHhjaGFy KSAgICAgICAgICA8LS0gMTc1Cj4gPiA+ID4+Pj4gICAgICAgICAgICBjb2x1bW5fdmFyaW50X3Np emUgPSAyCj4gPiA+ID4+Pj4gICAgICAgICAgICBjb2x1bW5fc2l6ZSA9IDEwICgxMCBvbiBzZXJ2 ZXIpCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiBXaXRoIFNRTCBTZXJ2ZXIgMjAxOSwgd2hlbiB1c2lu ZyBhbm90aGVyIGNvbGxhdGlvbiAobm9uLVVURi04KQo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4gICAg ICAgQ1JFQVRFIFRBQkxFIG15dGFiMiAoIGNvbDEgQ0hBUigxMCkgQ09MTEFURSBMYXRpbjFfR2Vu ZXJhbF9DSV9BUyApCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiBJIGdldCB0aGUgZXhwZWN0ZWQgdGRz IHR5cGUgY29kZS4uLgo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4gU2ViCj4gPiA+ID4+Pj4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4gPj4+PiBGcmVl VERTIG1haWxpbmcgbGlzdAo+ID4gPiA+Pj4+IEZyZWVURFNAbGlzdHMuaWJpYmxpby5vcmcKPiA+ ID4gPj4+PiBodHRwczovL2xpc3RzLmliaWJsaW8ub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZXRk cwo+ID4gPiA+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiA+ID4gPj4+IEZyZWVURFMgbWFpbGluZyBsaXN0Cj4gPiA+ID4+PiBGcmVlVERTQGxpc3Rz LmliaWJsaW8ub3JnCj4gPiA+ID4+PiBodHRwczovL2xpc3RzLmliaWJsaW8ub3JnL21haWxtYW4v bGlzdGluZm8vZnJlZXRkcwo+ID4gPiA+Pj4KPiA+ID4gPj4KPiA+ID4gPj4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4gPj4gRnJlZVREUyBtYWls aW5nIGxpc3QKPiA+ID4gPj4gRnJlZVREU0BsaXN0cy5pYmlibGlvLm9yZwo+ID4gPiA+PiBodHRw czovL2xpc3RzLmliaWJsaW8ub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZXRkcwo+ID4gPiA+Pgo+ ID4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g PiA+ID4gRnJlZVREUyBtYWlsaW5nIGxpc3QKPiA+ID4gPiBGcmVlVERTQGxpc3RzLmliaWJsaW8u b3JnCj4gPiA+ID4gaHR0cHM6Ly9saXN0cy5pYmlibGlvLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Zy ZWV0ZHMKPiA+ID4gPgo+ID4gPgo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+ID4gPiBGcmVlVERTIG1haWxpbmcgbGlzdAo+ID4gPiBGcmVlVERT QGxpc3RzLmliaWJsaW8ub3JnCj4gPiA+IGh0dHBzOi8vbGlzdHMuaWJpYmxpby5vcmcvbWFpbG1h bi9saXN0aW5mby9mcmVldGRzCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkZyZWVURFMgbWFpbGluZyBsaXN0CkZyZWVURFNAbGlzdHMuaWJpYmxpby5vcmcK aHR0cHM6Ly9saXN0cy5pYmlibGlvLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWV0ZHMK