FW: Varchar parameter conversion

FW: Varchar parameter conversion

am 24.07.2007 13:44:30 von Sergey.Zubkovsky

This is a multi-part message in MIME format.

------_=_NextPart_001_01C7CDE7.FEEAE3C7
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable


Sorry, I forgot to attach the log file.

-----Original Message-----
From: pgsql-odbc-owner@postgresql.org
[mailto:pgsql-odbc-owner@postgresql.org] On Behalf Of Zubkovsky, Sergey
Sent: Tuesday, July 24, 2007 3:37 PM
To: Andrei Kovalevski
Cc: pgsql-odbc@postgresql.org
Subject: Re: [ODBC] Varchar parameter conversion

Hello,

Thank you for your answer!
But this is the same what I do exactly.

I have realized the stored procedure call with a varchar parameter value
which originally contained characters with the ASC-codes from 1 to 255.
For visualization purpose all these chars were separated by char '-'.

A log file was produced by the ODBC driver is attached.

Look at the "GetPartitionName_sp" stored procedure call.
I suppose that the first parameter was converted to UTF-8.
But I didn't do this conversion!


-----Original Message-----
From: Andrei Kovalevski [mailto:andyk@commandprompt.com]=20
Sent: Monday, July 23, 2007 6:41 PM
To: Zubkovsky, Sergey
Cc: pgsql-odbc@postgresql.org
Subject: Re: [ODBC] Varchar parameter conversion

Hello,

Try to use statements with parameters:
SQLBindParameters(stmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR,=20
query_length, 0, param_ptr, query_length, buff_ptr);
SQLExecDirect(stmt, "{call SomeProc(?}}");

Zubkovsky, Sergey wrote:
>
> Hello,
>
> My client program is developed on C++ & ODBC.
>
> It's a Windows Unicode application.
>
> I'm trying to pass a "varchar" parameter value to a user-defined=20
> stored procedure.
>
> Each character of this actual parameter value (which ASC code is=20
> greater than 127) is transformed into some two chars.
>
> This value is stored and bound as a non-Unicode string (traditional=20
> C-string) in the program.
>
> So, some conversion happens for these characters.
>
> It seems to me that it's the ODBC driver's intervention.
>
> Is that right?
>
> And how can I avoid this unwanted conversion?
>
> Additional environment info:
>
> OS: Windows XP SP2
>
> PostgreSQL version: "PostgreSQL 8.2.4 on i686-pc-mingw32, compiled by=20
> GCC gcc.exe (GCC) 3.4.2 (mingw-special)"
>
> ODBC driver version: PostgreSQL Unicode 8.02.04.00
>
> SHOW server_encoding;
>
> "SQL_ASCII"
>
> SHOW client_encoding;
>
> "SQL_ASCII"
>
> Thank you.
>


---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

http://archives.postgresql.org

------_=_NextPart_001_01C7CDE7.FEEAE3C7
Content-Type: application/octet-stream;
name="mylog_1168.log"
Content-Transfer-Encoding: base64
Content-Description: mylog_1168.log
Content-Disposition: attachment;
filename="mylog_1168.log"

WzM1ODAtMC4wMDFdY2FsbGluZyBnZXREU05kZWZhdWx0cwpbMzU4MC0wLjAw
MV1DQ19jb25uZWN0OiBlbnRlcmluZy4uLgpbMzU4MC0wLjAwMV1zc2xtb2Rl
PWRpc2FibGUKWzM1ODAtMC4wMDJdb3JpZ2luYWxfQ0NfY29ubmVjdDogZW50
ZXJpbmcuLi4KWzM1ODAtMC4wMDJdRHJpdmVyIFZlcnNpb249JzA4LjAyLjA0
MDAsMjAwNzA0MjcwMDAxJyBsaW5raW5nIHN0YXRpYyBNdWx0aXRocmVhZCBs
aWJyYXJ5ClszNTgwLTAuMDAzXW9yaWdpbmFsX0NDX2Nvbm5lY3Q6IERTTiA9
ICcnLCBzZXJ2ZXIgPSAnbG9jYWxob3N0JywgcG9ydCA9ICc1NDMyJywgZGF0
YWJhc2UgPSAnZmlsbGRiJywgdXNlcm5hbWUgPSAncG9zdGdyZXMnLCBwYXNz
d29yZD0neHh4eHgnClszNTgwLTAuMDA0XWNvbm5lY3RpbmcgdG8gdGhlIHNl
cnZlciBzb2NrZXQuLi4KWzM1ODAtMC4wMjJdKDApKG51bGwpIEVSUk5PPTAK
WzM1ODAtMC4wMjJdY29ubmVjdGlvbiB0byB0aGUgc2VydmVyIHNvY2tldCBz
dWNjZWVkZWQuClszNTgwLTAuMDIzXXN0YXJ0dXAgY2xpZW50X2VuY29kaW5n
PVVURjgKWzM1ODAtMC4wMjRdc2l6ZW9mIHN0YXJ0dXAgcGFja2V0ID0gMTAw
ClszNTgwLTAuMDI0XXNlbnQgdGhlIGF1dGhlbnRpY2F0aW9uIGJsb2NrIHN1
Y2Nlc3NmdWxseS4KWzM1ODAtMC4wMjVdZ29ubmEgZG8gYXV0aGVudGljYXRp
b24KWzM1ODAtMC4wMjVdcmVhZCAtMSwgZ2xvYmFsX3NvY2tldF9idWZmZXJz
aXplPTQwOTYKWzM1ODAtMC4wMjZdTGFzdGVycm9yPTEwMDM1ClszNTgwLTAu
MDM5XXJlYWQgMTMsIGdsb2JhbF9zb2NrZXRfYnVmZmVyc2l6ZT00MDk2Clsz
NTgwLTAuMDQwXWF1dGggZ290ICdSJwpbMzU4MC0wLjA0MF1hcmVxID0gNSBz
YWx0PTRiMjQ0NzBlMDAKWzM1ODAtMC4wNDBdaW4gQVVUSF9SRVFfTUQ1Clsz
NTgwLTAuMDQxXXJlYWQgLTEsIGdsb2JhbF9zb2NrZXRfYnVmZmVyc2l6ZT00
MDk2ClszNTgwLTAuMDQyXUxhc3RlcnJvcj0xMDAzNQpbMzU4MC0wLjA0NF1y
ZWFkIDI4NCwgZ2xvYmFsX3NvY2tldF9idWZmZXJzaXplPTQwOTYKWzM1ODAt
MC4wNDVdYXV0aCBnb3QgJ1InClszNTgwLTAuMDQ1XWFyZXEgPSAwIHNhbHQ9
MDAwMDAwMDAwMApbMzU4MC0wLjA0NV1hdXRoIGdvdCAnUycKWzM1ODAtMC4w
NDZdYXV0aCBnb3QgJ1MnClszNTgwLTAuMDQ2XWF1dGggZ290ICdTJwpbMzU4
MC0wLjA0Nl1hdXRoIGdvdCAnUycKWzM1ODAtMC4wNDZdYXV0aCBnb3QgJ1Mn
ClszNTgwLTAuMDQ3XWF1dGggZ290ICdTJwpbMzU4MC0wLjA0N11Hb3QgdGhl
IFBvc3RncmVTUUwgdmVyc2lvbiBzdHJpbmc6ICc4LjIuNCcKWzM1ODAtMC4w
NDddRXh0cmFjdGVkIFBvc3RncmVTUUwgdmVyc2lvbiBudW1iZXI6ICc4LjIn
ClszNTgwLTAuMDQ4XWF1dGggZ290ICdTJwpbMzU4MC0wLjA0OF1hdXRoIGdv
dCAnUycKWzM1ODAtMC4wNDldYXV0aCBnb3QgJ1MnClszNTgwLTAuMDQ5XWF1
dGggZ290ICdLJwpbMzU4MC0wLjA0OV1hdXRoIGdvdCAnWicKWzM1ODAtMC4w
NDldQ0Nfc2VuZF9zZXR0aW5nczogZW50ZXJpbmcuLi4KWzM1ODAtMC4wNTBd
UEdBUElfQWxsb2NTdG10OiBlbnRlcmluZy4uLgpbMzU4MC0wLjA1MV0qKioq
IFBHQVBJX0FsbG9jU3RtdDogaGRiYyA9IDAxOEQzRDMwLCBzdG10ID0gMDE4
RDk2QzgKWzM1ODAtMC4wNTJdQ0NfYWRkX3N0YXRlbWVudDogc2VsZj0wMThE
M0QzMCwgc3RtdD0wMThEOTZDOApbMzU4MC0wLjA1Ml1QR0FQSV9GcmVlU3Rt
dDogZW50ZXJpbmcuLi5oc3RtdD0wMThEOTZDOCwgZk9wdGlvbj0xClszNTgw
LTAuMDUyXVFSZXN1bHQ6IGVudGVyIERFU1RSVUNUT1IKWzM1ODAtMC4wNTNd
U0NfaW5pdF9SZXN1bHQoMThkOTZjOClbMzU4MC0wLjA1M11TQ19EZXN0cnVj
dG9yOiBzZWxmPTAxOEQ5NkM4LCBzZWxmLT5yZXN1bHQ9MDAwMDAwMDAsIHNl
bGYtPmhkYmM9MDE4RDNEMzAKWzM1ODAtMC4wNTRdQVBEX2ZyZWVfcGFyYW1z
OiAgRU5URVIsIHNlbGY9MDE4RDk3QzgKWzM1ODAtMC4wNTRdSVBEX2ZyZWVf
cGFyYW1zOiAgRU5URVIsIHNlbGY9MDE4RDk4MDgKWzM1ODAtMC4wNTRdUERB
VEFfZnJlZV9wYXJhbXM6ICBFTlRFUiwgc2VsZj0wMThEOTg2QwpbMzU4MC0w
LjA1NV1TQ19EZXN0cnVjdG9yOiBFWElUClszNTgwLTAuMDU1XUNDX2xvb2t1
cF9sbzogZW50ZXJpbmcuLi4KWzM1ODAtMC4wNTVdc2VuZF9xdWVyeSgpOiBj
b25uPTAxOEQzRDMwLCBxdWVyeT0nc2VsZWN0IG9pZCwgdHlwYmFzZXR5cGUg
ZnJvbSBwZ190eXBlIHdoZXJlIHR5cG5hbWUgPSAnbG8nJwpbMzU4MC0wLjA1
Nl1zZW5kX3F1ZXJ5OiBkb25lIHNlbmRpbmcgcXVlcnkgNjNieXRlcyBmbHVz
aGVkClszNTgwLTAuMDU3XWluIFFSX0NvbnN0cnVjdG9yClszNTgwLTAuMDU3
XWV4aXQgUVJfQ29uc3RydWN0b3IKWzM1ODAtMC4wNTddcmVhZCAtMSwgZ2xv
YmFsX3NvY2tldF9idWZmZXJzaXplPTQwOTYKWzM1ODAtMC4wNThdTGFzdGVy
cm9yPTEwMDM1ClszNTgwLTAuMDU5XXJlYWQgNzcsIGdsb2JhbF9zb2NrZXRf
YnVmZmVyc2l6ZT00MDk2ClszNTgwLTAuMDU5XXNlbmRfcXVlcnk6IGdvdCBp
ZCA9ICdUJwpbMzU4MC0wLjA2MF1RUl9mZXRjaF90dXBsZXM6IGN1cnNvciA9
ICcnLCBzZWxmLT5jdXJzb3I9MDAwMDAwMDAKWzM1ODAtMC4wNjBdbnVtX2Zp
ZWxkcyA9IDIKWzM1ODAtMC4wNjBdUkVBRElORyBBVFRUWVBNT0QKWzM1ODAt
MC4wNjFdQ0lfcmVhZF9maWVsZHM6IGZpZWxkbmFtZT0nb2lkJywgYWR0aWQ9
MjYsIGFkdHNpemU9NCwgYXR0dHlwbW9kPS0xIChyZWwsYXR0KT0oMTI0Nyw2
NTUzNCkKWzM1ODAtMC4wNjFdUkVBRElORyBBVFRUWVBNT0QKWzM1ODAtMC4w
NjJdQ0lfcmVhZF9maWVsZHM6IGZpZWxkbmFtZT0ndHlwYmFzZXR5cGUnLCBh
ZHRpZD0yNiwgYWR0c2l6ZT00LCBhdHR0eXBtb2Q9LTEgKHJlbCxhdHQpPSgx
MjQ3LDE5KQpbMzU4MC0wLjA2Ml1RUl9mZXRjaF90dXBsZXM6IHBhc3QgQ0lf
cmVhZF9maWVsZHM6IG51bV9maWVsZHMgPSAyClszNTgwLTAuMDYzXU1BTExP
QzogdHVwbGVfc2l6ZSA9IDEwMCwgc2l6ZSA9IDE2MDAKWzM1ODAtMC4wNjNd
UVJfbmV4dF90dXBsZTogaW5UdXBsZXMgPSB0cnVlLCBmYWxsaW5nIHRocm91
Z2g6IGZjb3VudCA9IDAsIGZldGNoX251bWJlciA9IDAKWzM1ODAtMC4wNjRd
ZW5kIG9mIHR1cGxlIGxpc3QgLS0gc2V0dGluZyBpblVzZSB0byBmYWxzZTog
dGhpcyA9IDAxOEQ5OTEwIFNFTEVDVApbMzU4MC0wLjA2NF1fUVJfbmV4dF90
dXBsZTogJ0MnIGZldGNoX3RvdGFsID0gMCAmIHRoaXNfZmV0Y2ggPSAwClsz
NTgwLTAuMDY1XVFSX25leHRfdHVwbGU6IGJhY2tlbmRfcm93cyA8IENBQ0hF
X1NJWkU6IGJyb3dzID0gMCwgY2FjaGVfc2l6ZSA9IDAKWzM1ODAtMC4wNjVd
UVJfbmV4dF90dXBsZTogcmVhY2hlZCBlb2Ygbm93ClszNTgwLTAuMDY2XV9R
Ul9uZXh0X3R1cGxlOiAnQyc6IERPTkUgKGZjb3VudCA9PSAwKQpbMzU4MC0w
LjA2Nl1zZW5kX3F1ZXJ5OiBnb3QgaWQgPSAnWicKWzM1ODAtMC4wNjZdUVJl
c3VsdDogZW50ZXIgREVTVFJVQ1RPUgpbMzU4MC0wLjA2N11RUmVzdWx0OiBp
biBRUl9jbG9zZV9yZXN1bHQKWzM1ODAtMC4wNjddUVJlc3VsdDogZnJlZSBt
ZW1vcnkgaW4sIGZjb3VudD0wClszNTgwLTAuMDY3XVFSZXN1bHQ6IGZyZWUg
bWVtb3J5IG91dApbMzU4MC0wLjA2OF1RUmVzdWx0OiBlbnRlciBERVNUUlVD
VE9SClszNTgwLTAuMDY4XVFSZXN1bHQ6IGV4aXQgY2xvc2VfcmVzdWx0Clsz
NTgwLTAuMDY4XVFSZXN1bHQ6IGV4aXQgREVTVFJVQ1RPUgpbMzU4MC0wLjA2
OF1Hb3QgdGhlIGxhcmdlIG9iamVjdCBvaWQ6IC05OTkKWzM1ODAtMC4wNjld
Q0NfbG9va3VwX2NoYXJhY3RlcnNldDogZW50ZXJpbmcuLi4KWzM1ODAtMC4w
NjldY29ubi0+dW5pY29kZT0xClszNTgwLTAuMDY5XUNDX2Nvbm5lY3Q6IHJl
dHVybmluZy4uLgpbMzU4MC0wLjA3MF1zekNvbm5TdHJPdXQgPSAnRFJJVkVS
PXtQb3N0Z3JlU1FMIFVuaWNvZGV9O0RBVEFCQVNFPWZpbGxkYjtTRVJWRVI9
bG9jYWxob3N0O1BPUlQ9NTQzMjtVSUQ9cG9zdGdyZXM7UFdEPXh4eHh4eHh4
O1NTTG1vZGU9ZGlzYWJsZTtSZWFkT25seT0wO1Byb3RvY29sPTcuNDtGYWtl
T2lkSW5kZXg9MDtTaG93T2lkQ29sdW1uPTA7Um93VmVyc2lvbmluZz0wO1No
b3dTeXN0ZW1UYWJsZXM9MDtDb25uU2V0dGluZ3M9O0ZldGNoPTEwMDtTb2Nr
ZXQ9NDA5NjtVbmtub3duU2l6ZXM9MDtNYXhWYXJjaGFyU2l6ZT04MDAwO01h
eExvbmdWYXJjaGFyU2l6ZT04MTkwO0RlYnVnPTE7Q29tbUxvZz0wO09wdGlt
aXplcj0xO0tzcW89MTtVc2VEZWNsYXJlRmV0Y2g9MDtUZXh0QXNMb25nVmFy
Y2hhcj0xO1Vua25vd25zQXNMb25nVmFyY2hhcj0wO0Jvb2xzQXNDaGFyPTA7
UGFyc2U9MDtDYW5jZWxBc0ZyZWVTdG10PTA7RXh0cmFTeXNUYWJsZVByZWZp
eGVzPWRkXzs7TEZDb252ZXJzaW9uPTE7VXBkYXRhYmxlQ3Vyc29ycz0xO0Rp
c2FsbG93UHJlbWF0dXJlPTA7VHJ1ZUlzTWludXMxPTA7Qkk9LTU7Qnl0ZWFB
c0xvbmdWYXJCaW5hcnk9MTtVc2VTZXJ2ZXJTaWRlUHJlcGFyZT0wO0xvd2Vy
Q2FzZUlkZW50aWZpZXI9MDtYYU9wdD0xJyBsZW49NjE1LDIwNDgKWzM1ODAt
MC4wNzRdUEdBUElfRHJpdmVyQ29ubmVjdDogcmV0dXJuaW5nIDAKWzM1ODAt
MC4wNzVdW1NRTEdldERpYWdSZWNXXVszNTgwLTAuMDc1XVBHQVBJX0dldERp
YWdSZWMgZW50ZXJpbmcgdHlwZT0yIHJlYz0xClszNTgwLTAuMDc1XSoqKiog
UEdBUElfQ29ubmVjdEVycm9yOiBoZGJjPTAxOEQzRDMwIDwwPgpbMzU4MC0w
LjA3Nl1lbnRlciBDQ19nZXRfZXJyb3IKWzM1ODAtMC4wNzZdZW50ZXIgQ0Nf
Y3JlYXRlX2Vycm9ybXNnClszNTgwLTAuMDc2XW1zZyA9ICcnClszNTgwLTAu
MDc2XWV4aXQgQ0NfY3JlYXRlX2Vycm9ybXNnClszNTgwLTAuMDc3XWV4aXQg
Q0NfZ2V0X2Vycm9yClszNTgwLTAuMDc3XUNDX0dldF9lcnJvciByZXR1cm5l
ZCBub3RoaW5nLgpbMzU4MC0wLjA3OF1QR0FQSV9HZXREaWFnUmVjIGV4aXRp
bmcgMTAwClszNTgwLTAuMDc4XVtTUUxHZXRGdW5jdGlvbnNdWzM1ODAtMC4w
NzhdW1NRTEdldEluZm9XKDMwKV1bMzU4MC0wLjA3OV1QR0FQSV9HZXRJbmZv
OiBlbnRlcmluZy4uLmZJbmZvVHlwZT0yMwpbMzU4MC0wLjA3OV1QR0FQSV9H
ZXRJbmZvOiBwPSc8TlVMTD4nLCBsZW49MiwgdmFsdWU9MiwgY2JNYXg9Mgpb
MzU4MC0wLjA4MF1bU1FMR2V0SW5mb1coMzApXVszNTgwLTAuMDgwXVBHQVBJ
X0dldEluZm86IGVudGVyaW5nLi4uZkluZm9UeXBlPTI0ClszNTgwLTAuMDgw
XVBHQVBJX0dldEluZm86IHA9JzxOVUxMPicsIGxlbj0yLCB2YWx1ZT0yLCBj
Yk1heD0yClszNTgwLTAuMTUzXVtTUUxTZXRDb25uZWN0QXR0clddWzM1ODAt
MC4xNTNdUEdBUElfU2V0Q29ubmVjdEF0dHIgZm9yIDAxOEQzRDMwOiAxMDIg
MDAwMDAwMDEKWzM1ODAtMC4xNTRdUEdBUElfU2V0Q29ubmVjdE9wdGlvbjog
ZW50ZXJpbmcgZk9wdGlvbiA9IDEwMiB2UGFyYW0gPSAxClszNTgwLTAuMjYx
XVtbU1FMQWxsb2NIYW5kbGVdXVszNTgwLTAuMjYxXVBHQVBJX0FsbG9jU3Rt
dDogZW50ZXJpbmcuLi4KWzM1ODAtMC4yNjFdKioqKiBQR0FQSV9BbGxvY1N0
bXQ6IGhkYmMgPSAwMThEM0QzMCwgc3RtdCA9IDAxOEQ5NkM4ClszNTgwLTAu
MjYyXUNDX2FkZF9zdGF0ZW1lbnQ6IHNlbGY9MDE4RDNEMzAsIHN0bXQ9MDE4
RDk2QzgKWzM1ODAtMC4yNjJdW1NRTEdldFN0bXRBdHRyV11bMzU4MC0wLjI2
M11QR0FQSV9HZXRTdG10QXR0ciBIYW5kbGU9MDE4RDk2QzggMTAwMTAKWzM1
ODAtMC4yNjNdW1NRTEdldFN0bXRBdHRyV11bMzU4MC0wLjI2M11QR0FQSV9H
ZXRTdG10QXR0ciBIYW5kbGU9MDE4RDk2QzggMTAwMTEKWzM1ODAtMC4yNjRd
W1NRTEdldFN0bXRBdHRyV11bMzU4MC0wLjI2NF1QR0FQSV9HZXRTdG10QXR0
ciBIYW5kbGU9MDE4RDk2QzggMTAwMTIKWzM1ODAtMC4yNjRdW1NRTEdldFN0
bXRBdHRyV11bMzU4MC0wLjI2NV1QR0FQSV9HZXRTdG10QXR0ciBIYW5kbGU9
MDE4RDk2QzggMTAwMTMKWzM1ODAtMC40MDNdW1NRTEJpbmRQYXJhbWV0ZXJd
WzM1ODAtMC40MDNdUEdBUElfQmluZFBhcmFtZXRlcjogZW50ZXJpbmcuLi4K
WzM1ODAtMC40MDNdZXh0ZW5kX3BhcmFtZXRlcl9iaW5kaW5nczogZW50ZXJp
bmcgLi4uIHNlbGY9MDE4RDk3QzgsIHBhcmFtZXRlcnNfYWxsb2NhdGVkPTAs
IG51bV9wYXJhbXM9MSwwMDAwMDAwMApbMzU4MC0wLjQwNF1leGl0IGV4dGVu
ZF9wYXJhbWV0ZXJfYmluZGluZ3M9MDE4RDlDQTgKWzM1ODAtMC40MDRdZXh0
ZW5kX2lwYXJhbWV0ZXJfYmluZGluZ3M6IGVudGVyaW5nIC4uLiBzZWxmPTAx
OEQ5ODA4LCBwYXJhbWV0ZXJzX2FsbG9jYXRlZD0wLCBudW1fcGFyYW1zPTEK
WzM1ODAtMC40MDVdZXhpdCBleHRlbmRfaXBhcmFtZXRlcl9iaW5kaW5ncz0w
MThEOUNDOApbMzU4MC0wLjQwNl1leHRlbmRfcHV0ZGF0YV9pbmZvOiBlbnRl
cmluZyAuLi4gc2VsZj0wMThEOTg2QywgcGFyYW1ldGVyc19hbGxvY2F0ZWQ9
MCwgbnVtX3BhcmFtcz0xClszNTgwLTAuNDA2XWV4aXQgZXh0ZW5kX3B1dGRh
dGFfaW5mbz0wMThEOUEyMApbMzU4MC0wLjQwN11QR0FQSV9CaW5kUGFyYW1l
dGVyOiBpcGFyPTAsIHBhcmFtVHlwZT0xLCBmQ1R5cGU9MSwgZlNxbFR5cGU9
MTIsIGNiQ29sRGVmPTQwOTYsIGliU2NhbGU9MCxbMzU4MC0wLjQwN11yZ2JW
YWx1ZT0wMDEyNzc1MSwgcGNiVmFsdWUgPSAwMDEyNzc0RCwgZGF0YV9hdF9l
eGVjID0gMApbMzU4MC0wLjUxMF1bU1FMQmluZFBhcmFtZXRlcl1bMzU4MC0w
LjUxMV1QR0FQSV9CaW5kUGFyYW1ldGVyOiBlbnRlcmluZy4uLgpbMzU4MC0w
LjUxMl1leHRlbmRfcGFyYW1ldGVyX2JpbmRpbmdzOiBlbnRlcmluZyAuLi4g
c2VsZj0wMThEOTdDOCwgcGFyYW1ldGVyc19hbGxvY2F0ZWQ9MSwgbnVtX3Bh
cmFtcz0yLDAxOEQ5Q0E4ClszNTgwLTAuNTEyXWV4aXQgZXh0ZW5kX3BhcmFt
ZXRlcl9iaW5kaW5ncz0wMThEOUNFOApbMzU4MC0wLjUxM11leHRlbmRfaXBh
cmFtZXRlcl9iaW5kaW5nczogZW50ZXJpbmcgLi4uIHNlbGY9MDE4RDk4MDgs
IHBhcmFtZXRlcnNfYWxsb2NhdGVkPTEsIG51bV9wYXJhbXM9MgpbMzU4MC0w
LjUxNF1leGl0IGV4dGVuZF9pcGFyYW1ldGVyX2JpbmRpbmdzPTAxOEQ5RDIw
ClszNTgwLTAuNTE0XWV4dGVuZF9wdXRkYXRhX2luZm86IGVudGVyaW5nIC4u
LiBzZWxmPTAxOEQ5ODZDLCBwYXJhbWV0ZXJzX2FsbG9jYXRlZD0xLCBudW1f
cGFyYW1zPTIKWzM1ODAtMC41MTVdZXhpdCBleHRlbmRfcHV0ZGF0YV9pbmZv
PTAxOEQ5Q0M4ClszNTgwLTAuNTE1XVBHQVBJX0JpbmRQYXJhbWV0ZXI6IGlw
YXI9MSwgcGFyYW1UeXBlPTEsIGZDVHlwZT0xLCBmU3FsVHlwZT0xLCBjYkNv
bERlZj0yMywgaWJTY2FsZT0wLFszNTgwLTAuNTE2XXJnYlZhbHVlPTAwMTI4
NzU2LCBwY2JWYWx1ZSA9IDAwMTI4NzUyLCBkYXRhX2F0X2V4ZWMgPSAwClsz
NTgwLTAuNjYxXVtTUUxCaW5kUGFyYW1ldGVyXVszNTgwLTAuNjYxXVBHQVBJ
X0JpbmRQYXJhbWV0ZXI6IGVudGVyaW5nLi4uClszNTgwLTAuNjYyXWV4dGVu
ZF9wYXJhbWV0ZXJfYmluZGluZ3M6IGVudGVyaW5nIC4uLiBzZWxmPTAxOEQ5
N0M4LCBwYXJhbWV0ZXJzX2FsbG9jYXRlZD0yLCBudW1fcGFyYW1zPTMsMDE4
RDlDRTgKWzM1ODAtMC42NjJdZXhpdCBleHRlbmRfcGFyYW1ldGVyX2JpbmRp
bmdzPTAxOEQ5RDU4ClszNTgwLTAuNjYzXWV4dGVuZF9pcGFyYW1ldGVyX2Jp
bmRpbmdzOiBlbnRlcmluZyAuLi4gc2VsZj0wMThEOTgwOCwgcGFyYW1ldGVy
c19hbGxvY2F0ZWQ9MiwgbnVtX3BhcmFtcz0zClszNTgwLTAuNjYzXWV4aXQg
ZXh0ZW5kX2lwYXJhbWV0ZXJfYmluZGluZ3M9MDE4RDlEQTgKWzM1ODAtMC42
NjNdZXh0ZW5kX3B1dGRhdGFfaW5mbzogZW50ZXJpbmcgLi4uIHNlbGY9MDE4
RDk4NkMsIHBhcmFtZXRlcnNfYWxsb2NhdGVkPTIsIG51bV9wYXJhbXM9Mwpb
MzU4MC0wLjY2NF1leGl0IGV4dGVuZF9wdXRkYXRhX2luZm89MDE4RDk2NjgK
WzM1ODAtMC42NjRdUEdBUElfQmluZFBhcmFtZXRlcjogaXBhcj0yLCBwYXJh
bVR5cGU9NCwgZkNUeXBlPTEsIGZTcWxUeXBlPTEyLCBjYkNvbERlZj0xMjcs
IGliU2NhbGU9MCxbMzU4MC0wLjY2NV1yZ2JWYWx1ZT0wMDEyODc3MiwgcGNi
VmFsdWUgPSAwMDEyODc2RSwgZGF0YV9hdF9leGVjID0gMApbMzU4MC0wLjc2
OV1bU1FMRXhlY0RpcmVjdFddWzM1ODAtMC43NjldUEdBUElfRXhlY0RpcmVj
dDogZW50ZXJpbmcuLi4xClszNTgwLTAuNzY5XVNDX3JlY3ljbGVfc3RhdGVt
ZW50OiBzZWxmPSAwMThEOTZDOApbMzU4MC0wLjc3MF0qKioqIFBHQVBJX0V4
ZWNEaXJlY3Q6IGhzdG10PTAxOEQ5NkM4LCBzdGF0ZW1lbnQ9J3tjYWxsICJH
ZXRQYXJ0aXRpb25OYW1lX3NwIiAoPyw/LD8pfScKWzM1ODAtMC43NzBdUEdB
UElfRXhlY0RpcmVjdDogY2FsbGluZyBQR0FQSV9FeGVjdXRlLi4uClszNTgw
LTAuNzcxXVBHQVBJX0V4ZWN1dGU6IGVudGVyaW5nLi4uMQpbMzU4MC0wLjc3
MV1QR0FQSV9FeGVjdXRlOiBjbGVhciBlcnJvcnMuLi4KWzM1ODAtMC43NzFd
UEdBUElfTnVtUGFyYW1zOiBlbnRlcmluZy4uLgpbMzU4MC0wLjc3Ml1TQ19z
Y2FuUXVlcnlBbmRDb3VudFBhcmFtczogZW50ZXJpbmcuLi4KWzM1ODAtMC43
NzJdcHJlcGFyZVBhcmFtZXRlcnMgMCBlbmQKWzM1ODAtMC43NzJdU0NfcmVj
eWNsZV9zdGF0ZW1lbnQ6IHNlbGY9IDAxOEQ5NkM4ClszNTgwLTAuNzczXUV4
ZWNfd2l0aF9wYXJhbWV0ZXJzX3Jlc29sdmVkOiBjb3B5aW5nIHN0YXRlbWVu
dCBwYXJhbXM6IHRyYW5zX3N0YXR1cz0xLCBsZW49MzYsIHN0bXQ9J3tjYWxs
ICJHZXRQYXJ0aXRpb25OYW1lX3NwIiAoPyw/LD8pfScKWzM1ODAtMC43NzRd
UmVzb2x2ZU9uZVBhcmFtOiBmcm9tKGZjVHlwZSk9MSwgdG8oZlNxbFR5cGUp
PTEyClszNTgwLTAuNzc0XWN2dF9udWxsX2RhdGVfc3RyaW5nPTAgcGd0eXBl
PTEwNDMgYnVmPTAxOERCMDk4ClszNTgwLTAuNzc1XVJlc29sdmVPbmVQYXJh
bTogZnJvbShmY1R5cGUpPTEsIHRvKGZTcWxUeXBlKT0xClszNTgwLTAuNzc1
XWN2dF9udWxsX2RhdGVfc3RyaW5nPTAgcGd0eXBlPTEwNDIgYnVmPTAxOEQ5
RTcwClszNTgwLTAuNzc2XSAgIHN0bXRfd2l0aF9wYXJhbXMgPSAnU0VMRUNU
ICogRlJPTSJHZXRQYXJ0aXRpb25OYW1lX3NwIiAoRSctLQEtAi0DLQQtBS0G
LQctCC0JLQotCy0MLQ0tDi0PLRAtES0SLRMtFC0VLRYtFy0YLRktGi0bLRwt
HS0eLR8tIC0hLSItIy0kLSUtJi0nJy0oLSktKi0rLSwtLS0uLS8tMC0xLTIt
My00LTUtNi03LTgtOS06LTstPC09LT4tPy1ALUEtQi1DLUQtRS1GLUctSC1J
LUotSy1MLU0tTi1PLVAtUS1SLVMtVC1VLVYtVy1YLVktWi1bLVxcLV0tXi1f
LWAtYS1iLWMtZC1lLWYtZy1oLWktai1rLWwtbS1uLW8tcC1xLXItcy10LXUt
di13LXgteS16LXstfC19LX4tfy3Qgi3Qgy3igJot0ZMt4oCeLeKApi3igKAt
4oChLeKCrC3igLAt0Ikt4oC5LdCKLdCMLdCLLdCPLdGSLeKAmC3igJkt4oCc
LeKAnS3igKIt4oCTLeKAlC3CmC3ihKIt0Zkt4oC6LdGaLdGcLdGbLdGfLcKg
LdCOLdGeLdCILcKkLdKQLcKmLcKnLdCBLcKpLdCELcKrLcKsLcKtLcKuLdCH
LcKwLcKxLdCGLdGWLdKRLcK1LcK2LcK3LdGRLeKEli3RlC3Cuy3RmC3QhS3R
lS3Rly3QkC3QkS3Qki3Qky3QlC3QlS3Qli3Qly3QmC3QmS3Qmi3Qmy3QnC3Q
nS3Qni3Qny3QoC3QoS3Qoi3Qoy3QpC3QpS3Qpi3Qpy3QqC3QqS3Qqi3Qqy3Q
rC3QrS3Qri3Qry3QsC3QsS3Qsi3Qsy3QtC3QtS3Qti3Qty3QuC3QuS3Qui3Q
uy3QvC3QvS3Qvi3Qvy3RgC3RgS3Rgi3Rgy3RhC3RhS3Rhi3Rhy3RiC3RiS3R
ii3Riy3RjC3RjS3Rji3Rjy0tLS0tLS0tJyxFJzIwMDctMDctMjMgMDY6MDA6
MDAuMDAwJyknClszNTgwLTAuNzgxXWFib3V0IHRvIGJlZ2luIFNDX2V4ZWN1
dGUKWzM1ODAtMC43ODFdICAgICAgaXQncyBOT1QgYSBzZWxlY3Qgc3RhdGVt
ZW50OiBzdG10PTAxOEQ5NkM4ClszNTgwLTAuNzgyXXNlbmRfcXVlcnkoKTog
Y29ubj0wMThEM0QzMCwgcXVlcnk9J1NFTEVDVCAqIEZST00iR2V0UGFydGl0
aW9uTmFtZV9zcCIgKEUnLS0BLQItAy0ELQUtBi0HLQgtCS0KLQstDC0NLQ4t
Dy0QLREtEi0TLRQtFS0WLRctGC0ZLRotGy0cLR0tHi0fLSAtIS0iLSMtJC0l
LSYtJyctKC0pLSotKy0sLS0tLi0vLTAtMS0yLTMtNC01LTYtNy04LTktOi07
LTwtPS0+LT8tQC1BLUItQy1ELUUtRi1HLUgtSS1KLUstTC1NLU4tTy1QLVEt
Ui1TLVQtVS1WLVctWC1ZLVotWy1cXC1dLV4tXy1gLWEtYi1jLWQtZS1mLWct
aC1pLWotay1sLW0tbi1vLXAtcS1yLXMtdC11LXYtdy14LXktei17LXwtfS1+
LX8t0IIt0IMt4oCaLdGTLeKAni3igKYt4oCgLeKAoS3igqwt4oCwLdCJLeKA
uS3Qii3QjC3Qiy3Qjy3Rki3igJgt4oCZLeKAnC3igJ0t4oCiLeKAky3igJQt
wpgt4oSiLdGZLeKAui3Rmi3RnC3Rmy3Rny3CoC3Qji3Rni3QiC3CpC3SkC3C
pi3Cpy3QgS3CqS3QhC3Cqy3CrC3CrS3Cri3Qhy3CsC3CsS3Qhi3Rli3SkS3C
tS3Cti3Cty3RkS3ihJYt0ZQtwrst0Zgt0IUt0ZUt0Zct0JAt0JEt0JIt0JMt
0JQt0JUt0JYt0Jct0Jgt0Jkt0Jot0Jst0Jwt0J0t0J4t0J8t0KAt0KEt0KIt
0KMt0KQt0KUt0KYt0Kct0Kgt0Kkt0Kot0Kst0Kwt0K0t0K4t0K8t0LAt0LEt
0LIt0LMt0LQt0LUt0LYt0Lct0Lgt0Lkt0Lot0Lst0Lwt0L0t0L4t0L8t0YAt
0YEt0YIt0YMt0YQt0YUt0YYt0Yct0Ygt0Ykt0Yot0Yst0Ywt0Y0t0Y4t0Y8t
LS0tLS0tLScsRScyMDA3LTA3LTIzIDA2OjAwOjAwLjAwMCcpJwpbMzU4MC0w
Ljc4OF1zZW5kX3F1ZXJ5OiBkb25lIHNlbmRpbmcgcXVlcnkgNzQwYnl0ZXMg
Zmx1c2hlZApbMzU4MC0wLjc4OF1pbiBRUl9Db25zdHJ1Y3RvcgpbMzU4MC0w
Ljc4OF1leGl0IFFSX0NvbnN0cnVjdG9yClszNTgwLTAuNzg4XXJlYWQgLTEs
IGdsb2JhbF9zb2NrZXRfYnVmZmVyc2l6ZT00MDk2ClszNTgwLTAuNzg5XUxh
c3RlcnJvcj0xMDAzNQpbMzU4MC0wLjc5MF1yZWFkIDc1MiwgZ2xvYmFsX3Nv
Y2tldF9idWZmZXJzaXplPTQwOTYKWzM1ODAtMC43OTFdc2VuZF9xdWVyeTog
Z290IGlkID0gJ1QnClszNTgwLTAuNzkxXVFSX2ZldGNoX3R1cGxlczogY3Vy
c29yID0gJycsIHNlbGYtPmN1cnNvcj0wMDAwMDAwMApbMzU4MC0wLjc5MV1u
dW1fZmllbGRzID0gMQpbMzU4MC0wLjc5MV1SRUFESU5HIEFUVFRZUE1PRApb
MzU4MC0wLjc5Ml1DSV9yZWFkX2ZpZWxkczogZmllbGRuYW1lPSdwYXJ0bmFt
ZScsIGFkdGlkPTEwNDMsIGFkdHNpemU9LTEsIGF0dHR5cG1vZD0tMSAocmVs
LGF0dCk9KDAsMCkKWzM1ODAtMC43OTJdUVJfZmV0Y2hfdHVwbGVzOiBwYXN0
IENJX3JlYWRfZmllbGRzOiBudW1fZmllbGRzID0gMQpbMzU4MC0wLjc5M11N
QUxMT0M6IHR1cGxlX3NpemUgPSAxMDAsIHNpemUgPSA4MDAKWzM1ODAtMC43
OTNdUVJfbmV4dF90dXBsZTogaW5UdXBsZXMgPSB0cnVlLCBmYWxsaW5nIHRo
cm91Z2g6IGZjb3VudCA9IDAsIGZldGNoX251bWJlciA9IDAKWzM1ODAtMC43
OTRdcXJlc3VsdDogbGVuPTY4OSwgYnVmZmVyPSdwYXJ0XygyMDA3LTA3LTIz
IDA2OjAwKV8tLQEtAi0DLQQtBS0GLQctCC0JLQotCy0MLQ0tDi0PLRAtES0S
LRMtFC0VLRYtFy0YLRktGi0bLRwtHS0eLR8tIC0hLSItIy0kLSUtJi0nLSgt
KS0qLSstLC0tLS4tLy0wLTEtMi0zLTQtNS02LTctOC05LTotOy08LT0tPi0/
LUAtQS1CLUMtRC1FLUYtRy1ILUktSi1LLUwtTS1OLU8tUC1RLVItUy1ULVUt
Vi1XLVgtWS1aLVstXC1dLV4tXy1gLWEtYi1jLWQtZS1mLWctaC1pLWotay1s
LW0tbi1vLXAtcS1yLXMtdC11LXYtdy14LXktei17LXwtfS1+LX8t0IIt0IMt
4oCaLdGTLeKAni3igKYt4oCgLeKAoS3igqwt4oCwLdCJLeKAuS3Qii3QjC3Q
iy3Qjy3Rki3igJgt4oCZLeKAnC3igJ0t4oCiLeKAky3igJQtwpgt4oSiLdGZ
LeKAui3Rmi3RnC3Rmy3Rny3CoC3Qji3Rni3QiC3CpC3SkC3Cpi3Cpy3QgS3C
qS3QhC3Cqy3CrC3CrS3Cri3Qhy3CsC3CsS3Qhi3Rli3SkS3CtS3Cti3Cty3R
kS3ihJYt0ZQtwrst0Zgt0IUt0ZUt0Zct0JAt0JEt0JIt0JMt0JQt0JUt0JYt
0Jct0Jgt0Jkt0Jot0Jst0Jwt0J0t0J4t0J8t0KAt0KEt0KIt0KMt0KQt0KUt
0KYt0Kct0Kgt0Kkt0Kot0Kst0Kwt0K0t0K4t0K8t0LAt0LEt0LIt0LMt0LQt
0LUt0LYt0Lct0Lgt0Lkt0Lot0Lst0Lwt0L0t0L4t0L8t0YAt0YEt0YIt0YMt
0YQt0YUt0YYt0Yct0Ygt0Ykt0Yot0Yst0Ywt0Y0t0Y4t0Y8tLS0tLS0tLScK
WzM1ODAtMC43OTldZW5kIG9mIHR1cGxlIGxpc3QgLS0gc2V0dGluZyBpblVz
ZSB0byBmYWxzZTogdGhpcyA9IDAxOEQ5OTEwIFNFTEVDVApbMzU4MC0wLjgw
MF1fUVJfbmV4dF90dXBsZTogJ0MnIGZldGNoX3RvdGFsID0gMSAmIHRoaXNf
ZmV0Y2ggPSAxClszNTgwLTAuODAxXVFSX25leHRfdHVwbGU6IGJhY2tlbmRf
cm93cyA8IENBQ0hFX1NJWkU6IGJyb3dzID0gMCwgY2FjaGVfc2l6ZSA9IDAK
WzM1ODAtMC44MDFdUVJfbmV4dF90dXBsZTogcmVhY2hlZCBlb2Ygbm93Clsz
NTgwLTAuODAxXXNlbmRfcXVlcnk6IGdvdCBpZCA9ICdaJwpbMzU4MC0wLjgw
Ml1leHRlbmRfY29sdW1uX2JpbmRpbmdzOiBlbnRlcmluZyAuLi4gc2VsZj0w
MThEOTc1MCwgYmluZGluZ3NfYWxsb2NhdGVkPTAsIG51bV9jb2x1bW5zPTEK
WzM1ODAtMC44MDNdZXhpdCBleHRlbmRfY29sdW1uX2JpbmRpbmdzPTAxOEQ5
Q0M4ClszNTgwLTAuODAzXVNDX3NldF9SZXN1bHQoMThkOTZjOCwgMThkOTkx
MClbMzU4MC0wLjgwM11RUmVzdWx0OiBlbnRlciBERVNUUlVDVE9SClszNTgw
LTAuODA0XWZldGNoX2N1cnNvcj0wLCAwMThEOTkxMC0+dG90YWxfcmVhZD0x
ClszNTgwLTAuODA0XSoqKiogU0NfZmV0Y2g6IG5vbi1jdXJzb3JfcmVzdWx0
ClszNTgwLTAuODA0XWV4dGVuZF9nZXRkYXRhX2luZm86IGVudGVyaW5nIC4u
LiBzZWxmPTAxOEQ5ODJDLCBnZGF0YV9hbGxvY2F0ZWQ9MCwgbnVtX2NvbHVt
bnM9MQpbMzU4MC0wLjgwNV1leGl0IGV4dGVuZF9nZGF0YV9pbmZvPTAxOEQ5
RjAwClszNTgwLTAuODA1XWZldGNoOiBjb2xzPTEsIGxmPTAsIG9wdHMgPSAw
MThEOTc1MCwgb3B0cy0+YmluZGluZ3MgPSAwMThEOUNDOCwgYnVmZmVyW10g
PSAwMDAwMDAwMApbMzU4MC0wLjgwNl1QR0FQSV9HZXREYXRhOiBlbnRlciwg
c3RtdD0wMThEOTZDOCBpY29sPTEKWzM1ODAtMC44MDZdICAgICBudW1fcm93
cyA9IDEKWzM1ODAtMC44MDddICAgICB2YWx1ZSA9ICdwYXJ0XygyMDA3LTA3
LTIzIDA2OjAwKV8tLQEtAi0DLQQtBS0GLQctCC0JLQotCy0MLQ0tDi0PLRAt
ES0SLRMtFC0VLRYtFy0YLRktGi0bLRwtHS0eLR8tIC0hLSItIy0kLSUtJi0n
LSgtKS0qLSstLC0tLS4tLy0wLTEtMi0zLTQtNS02LTctOC05LTotOy08LT0t
Pi0/LUAtQS1CLUMtRC1FLUYtRy1ILUktSi1LLUwtTS1OLU8tUC1RLVItUy1U
LVUtVi1XLVgtWS1aLVstXC1dLV4tXy1gLWEtYi1jLWQtZS1mLWctaC1pLWot
ay1sLW0tbi1vLXAtcS1yLXMtdC11LXYtdy14LXktei17LXwtfS1+LX8t0IIt
0IMt4oCaLdGTLeKAni3igKYt4oCgLeKAoS3igqwt4oCwLdCJLeKAuS3Qii3Q
jC3Qiy3Qjy3Rki3igJgt4oCZLeKAnC3igJ0t4oCiLeKAky3igJQtwpgt4oSi
LdGZLeKAui3Rmi3RnC3Rmy3Rny3CoC3Qji3Rni3QiC3CpC3SkC3Cpi3Cpy3Q
gS3CqS3QhC3Cqy3CrC3CrS3Cri3Qhy3CsC3CsS3Qhi3Rli3SkS3CtS3Cti3C
ty3RkS3ihJYt0ZQtwrst0Zgt0IUt0ZUt0Zct0JAt0JEt0JIt0JMt0JQt0JUt
0JYt0Jct0Jgt0Jkt0Jot0Jst0Jwt0J0t0J4t0J8t0KAt0KEt0KIt0KMt0KQt
0KUt0KYt0Kct0Kgt0Kkt0Kot0Kst0Kwt0K0t0K4t0K8t0LAt0LEt0LIt0LMt
0LQt0LUt0LYt0Lct0Lgt0Lkt0Lot0Lst0Lwt0L0t0L4t0L8t0YAt0YEt0YIt
0YMt0YQt0YUt0YYt0Yct0Ygt0Ykt0Yot0Yst0Ywt0Y0t0Y4t0Y8tLS0tLS0t
LScKWzM1ODAtMC44MTJdKioqKiBQR0FQSV9HZXREYXRhOiBpY29sID0gMCwg
dGFyZ2V0X3R5cGUgPSAxLCBmaWVsZF90eXBlID0gMTA0MywgdmFsdWUgPSAn
cGFydF8oMjAwNy0wNy0yMyAwNjowMClfLS0BLQItAy0ELQUtBi0HLQgtCS0K
LQstDC0NLQ4tDy0QLREtEi0TLRQtFS0WLRctGC0ZLRotGy0cLR0tHi0fLSAt
IS0iLSMtJC0lLSYtJy0oLSktKi0rLSwtLS0uLS8tMC0xLTItMy00LTUtNi03
LTgtOS06LTstPC09LT4tPy1ALUEtQi1DLUQtRS1GLUctSC1JLUotSy1MLU0t
Ti1PLVAtUS1SLVMtVC1VLVYtVy1YLVktWi1bLVwtXS1eLV8tYC1hLWItYy1k
LWUtZi1nLWgtaS1qLWstbC1tLW4tby1wLXEtci1zLXQtdS12LXcteC15LXot
ey18LX0tfi1/LdCCLdCDLeKAmi3Rky3igJ4t4oCmLeKAoC3igKEt4oKsLeKA
sC3QiS3igLkt0Iot0Iwt0Ist0I8t0ZIt4oCYLeKAmS3igJwt4oCdLeKAoi3i
gJMt4oCULcKYLeKEoi3RmS3igLot0Zot0Zwt0Zst0Z8twqAt0I4t0Z4t0Igt
wqQt0pAtwqYtwqct0IEtwqkt0IQtwqstwqwtwq0twq4t0IctwrAtwrEt0IYt
0ZYt0pEtwrUtwrYtwrct0ZEt4oSWLdGULcK7LdGYLdCFLdGVLdGXLdCQLdCR
LdCSLdCTLdCULdCVLdCWLdCXLdCYLdCZLdCaLdCbLdCcLdCdLdCeLdCfLdCg
LdChLdCiLdCjLdCkLdClLdCmLdCnLdCoLdCpLdCqLdCrLdCsLdCtLdCuLdCv
LdCwLdCxLdCyLdCzLdC0LdC1LdC2LdC3LdC4LdC5LdC6LdC7LdC8LdC9LdC+
LdC/LdGALdGBLdGCLdGDLdGELdGFLdGGLdGHLdGILdGJLdGKLdGLLdGMLdGN
LdGOLdGPLS0tLS0tLS0nClszNTgwLTAuODE3XWNvcHlfYW5kX2NvbnZlcnQ6
IGZpZWxkX3R5cGUgPSAxMDQzLCBmY3R5cGUgPSAxLCB2YWx1ZSA9ICdwYXJ0
XygyMDA3LTA3LTIzIDA2OjAwKV8tLQEtAi0DLQQtBS0GLQctCC0JLQotCy0M
LQ0tDi0PLRAtES0SLRMtFC0VLRYtFy0YLRktGi0bLRwtHS0eLR8tIC0hLSIt
Iy0kLSUtJi0nLSgtKS0qLSstLC0tLS4tLy0wLTEtMi0zLTQtNS02LTctOC05
LTotOy08LT0tPi0/LUAtQS1CLUMtRC1FLUYtRy1ILUktSi1LLUwtTS1OLU8t
UC1RLVItUy1ULVUtVi1XLVgtWS1aLVstXC1dLV4tXy1gLWEtYi1jLWQtZS1m
LWctaC1pLWotay1sLW0tbi1vLXAtcS1yLXMtdC11LXYtdy14LXktei17LXwt
fS1+LX8t0IIt0IMt4oCaLdGTLeKAni3igKYt4oCgLeKAoS3igqwt4oCwLdCJ
LeKAuS3Qii3QjC3Qiy3Qjy3Rki3igJgt4oCZLeKAnC3igJ0t4oCiLeKAky3i
gJQtwpgt4oSiLdGZLeKAui3Rmi3RnC3Rmy3Rny3CoC3Qji3Rni3QiC3CpC3S
kC3Cpi3Cpy3QgS3CqS3QhC3Cqy3CrC3CrS3Cri3Qhy3CsC3CsS3Qhi3Rli3S
kS3CtS3Cti3Cty3RkS3ihJYt0ZQtwrst0Zgt0IUt0ZUt0Zct0JAt0JEt0JIt
0JMt0JQt0JUt0JYt0Jct0Jgt0Jkt0Jot0Jst0Jwt0J0t0J4t0J8t0KAt0KEt
0KIt0KMt0KQt0KUt0KYt0Kct0Kgt0Kkt0Kot0Kst0Kwt0K0t0K4t0K8t0LAt
0LEt0LIt0LMt0LQt0LUt0LYt0Lct0Lgt0Lkt0Lot0Lst0Lwt0L0t0L4t0L8t
0YAt0YEt0YIt0YMt0YQt0YUt0YYt0Yct0Ygt0Ykt0Yot0Yst0Ywt0Y0t0Y4t
0Y8tLS0tLS0tLScsIGNiVmFsdWVNYXg9MTI3ClszNTgwLTAuODIzXURFRkFV
TFQ6IGxlbiA9IDU0NCwgcHRyID0gJ3BhcnRfKDIwMDctMDctMjMgMDY6MDAp
Xy0tAS0CLQMtBC0FLQYtBy0ILQktDQotCy0MLQ0tDi0PLRAtES0SLRMtFC0V
LRYtFy0YLRktGi0bLRwtHS0eLR8tIC0hLSItIy0kLSUtJi0nLSgtKS0qLSst
LC0tLS4tLy0wLTEtMi0zLTQtNS02LTctOC05LTotOy08LT0tPi0/LUAtQS1C
LUMtRC1FLUYtRy1ILUktSi1LLUwtTS1OLU8tUC1RLVItUy1ULVUtVi1XLVgt
WS1aLVstXC1dLV4tXy1gLWEtYi1jLWQtZS1mLWctaC1pLWotay1sLW0tbi1v
LXAtcS1yLXMtdC11LXYtdy14LXktei17LXwtfS1+LX8tgC2BLYItgy2ELYUt
hi2HLYgtiS2KLYstjC2NLY4tjy2QLZEtki2TLZQtlS2WLZctmC2ZLZotmy2c
LZ0tni2fLaAtoS2iLaMtpC2lLaYtpy2oLaktqi2rLawtrS2uLa8tsC2xLbIt
sy20LbUtti23LbgtuS26LbstvC29Lb4tvy3ALcEtwi3DLcQtxS3GLcctyC3J
Lcotyy3MLc0tzi3PLdAt0S3SLdMt1C3VLdYt1y3YLdkt2i3bLdwt3S3eLd8t
4C3hLeIt4y3kLeUt5i3nLegt6S3qLest7C3tLe4t7y3wLfEt8i3zLfQt9S32
Lfct+C35Lfot+y38Lf0t/i3/LS0tLS0tLS0nClszNTgwLTAuODI3XSAgICBT
UUxfQ19DSEFSLCBkZWZhdWx0OiBsZW4gPSA1NDQsIGNiVmFsdWVNYXggPSAx
MjcsIHJnYlZhbHVlQmluZFJvdyA9ICdwYXJ0XygyMDA3LTA3LTIzIDA2OjAw
KV8tLQEtAi0DLQQtBS0GLQctCC0JLQ0KLQstDC0NLQ4tDy0QLREtEi0TLRQt
FS0WLRctGC0ZLRotGy0cLR0tHi0fLSAtIS0iLSMtJC0lLSYtJy0oLSktKi0r
LSwtLS0uLS8tMC0xLTInClszNTgwLTAuODI5XVNUQVRFTUVOVCBXQVJOSU5H
OiBmdW5jPVBHQVBJX0dldERhdGEsIGRlc2M9JycsIGVycm51bT0tMiwgZXJy
bXNnPSdUaGUgYnVmZmVyIHdhcyB0b28gc21hbGwgZm9yIHRoZSBHZXREYXRh
LicKWzM1ODAtMC44MzBdcmV0dmFsPTEKWzM1ODAtMC44MzBdUEdBUElfRXhl
Y0RpcmVjdDogcmV0dXJuZWQgMSBmcm9tIFBHQVBJX0V4ZWN1dGUKWzM1ODAt
MC44MzBdW1NRTEdldERpYWdSZWNXXVszNTgwLTAuODMwXVBHQVBJX0dldERp
YWdSZWMgZW50ZXJpbmcgdHlwZT0zIHJlYz0xClszNTgwLTAuODMxXUVSX1Jl
dHVybkVycm9yOiBzdGF0dXMgPSAtMiwgbXNnID0gI1RoZSBidWZmZXIgd2Fz
IHRvbyBzbWFsbCBmb3IgdGhlIEdldERhdGEuIwpbMzU4MC0wLjgzMl0JICAg
ICBzelNxbFN0YXRlID0gJzAxMDA0JyxsZW49NDEsIHN6RXJyb3I9J1RoZSBi
dWZmZXIgd2FzIHRvbyBzbWFsbCBmb3IgdGhlIEdldERhdGEuJwpbMzU4MC0w
LjgzMl1QR0FQSV9HZXREaWFnUmVjIGV4aXRpbmcgMApbMzU4MC0wLjgzM11b
U1FMR2V0RGlhZ1JlY1ddWzM1ODAtMC44MzNdUEdBUElfR2V0RGlhZ1JlYyBl
bnRlcmluZyB0eXBlPTMgcmVjPTIKWzM1ODAtMC44MzNdRVJfUmV0dXJuRXJy
b3I6IHN0YXR1cyA9IC0yLCBtc2cgPSAjVGhlIGJ1ZmZlciB3YXMgdG9vIHNt
YWxsIGZvciB0aGUgR2V0RGF0YS4jClszNTgwLTAuODM0XVBHQVBJX0dldERp
YWdSZWMgZXhpdGluZyAxMDAKWzM1ODAtMC45MjddW1NRTE1vcmVSZXN1bHRz
XVszNTgwLTAuOTI3XVBHQVBJX01vcmVSZXN1bHRzOiBlbnRlcmluZy4uLgpb
MzU4MC0wLjkyN11QR0FQSV9GcmVlU3RtdDogZW50ZXJpbmcuLi5oc3RtdD0w
MThEOTZDOCwgZk9wdGlvbj0wClszNTgwLTAuOTI4XVNDX3JlY3ljbGVfc3Rh
dGVtZW50OiBzZWxmPSAwMThEOTZDOApbMzU4MC0wLjkyOF1RUmVzdWx0OiBl
bnRlciBERVNUUlVDVE9SClszNTgwLTAuOTI4XVFSZXN1bHQ6IGluIFFSX2Ns
b3NlX3Jlc3VsdApbMzU4MC0wLjkyOV1RUmVzdWx0OiBmcmVlIG1lbW9yeSBp
biwgZmNvdW50PTEKWzM1ODAtMC45MjldUVJlc3VsdDogZnJlZSBtZW1vcnkg
b3V0ClszNTgwLTAuOTI5XVFSZXN1bHQ6IGVudGVyIERFU1RSVUNUT1IKWzM1
ODAtMC45MzBdUVJlc3VsdDogZXhpdCBjbG9zZV9yZXN1bHQKWzM1ODAtMC45
MzBdUVJlc3VsdDogZXhpdCBERVNUUlVDVE9SClszNTgwLTAuOTMwXVNDX2lu
aXRfUmVzdWx0KDE4ZDk2YzgpWzM1ODAtMC45MzBdUERBVEFfZnJlZV9wYXJh
bXM6ICBFTlRFUiwgc2VsZj0wMThEOTg2QwpbMzU4MC0wLjkzMV1QREFUQV9m
cmVlX3BhcmFtczogIEVYSVQKWzM1ODAtMC45MzFdUEdBUElfTW9yZVJlc3Vs
dHM6IHJldHVybmluZyAxMDAKWzM1ODAtMS4wMzVdW1tTUUxGcmVlSGFuZGxl
XV1bMzU4MC0xLjAzNl1QR0FQSV9GcmVlU3RtdDogZW50ZXJpbmcuLi5oc3Rt
dD0wMThEOTZDOCwgZk9wdGlvbj0xClszNTgwLTEuMDM2XVFSZXN1bHQ6IGVu
dGVyIERFU1RSVUNUT1IKWzM1ODAtMS4wMzZdU0NfaW5pdF9SZXN1bHQoMThk
OTZjOClbMzU4MC0xLjAzN11TQ19EZXN0cnVjdG9yOiBzZWxmPTAxOEQ5NkM4
LCBzZWxmLT5yZXN1bHQ9MDAwMDAwMDAsIHNlbGYtPmhkYmM9MDE4RDNEMzAK
WzM1ODAtMS4wMzddcmVzZXRfYV9jb2x1bW5fYmluZGluZzogZW50ZXJpbmcg
Li4uIHNlbGY9MDE4RDk3NTAsIGJpbmRpbmdzX2FsbG9jYXRlZD0xLCBpY29s
PTEKWzM1ODAtMS4wMzhdQVBEX2ZyZWVfcGFyYW1zOiAgRU5URVIsIHNlbGY9
MDE4RDk3QzgKWzM1ODAtMS4wMzhdQVBEX2ZyZWVfcGFyYW1zOiAgRVhJVApb
MzU4MC0xLjAzOF1JUERfZnJlZV9wYXJhbXM6ICBFTlRFUiwgc2VsZj0wMThE
OTgwOApbMzU4MC0xLjAzOF1JUERfZnJlZV9wYXJhbXM6ICBFWElUClszNTgw
LTEuMDM4XVBEQVRBX2ZyZWVfcGFyYW1zOiAgRU5URVIsIHNlbGY9MDE4RDk4
NkMKWzM1ODAtMS4wMzldUERBVEFfZnJlZV9wYXJhbXM6ICBFWElUClszNTgw
LTEuMDM5XVNDX0Rlc3RydWN0b3I6IEVYSVQKWzM1ODAtMS4xNDhdW1NRTERp
c2Nvbm5lY3QgZm9yIDAxOEQzRDMwXVszNTgwLTEuMTQ4XVBHQVBJX0Rpc2Nv
bm5lY3Q6IGVudGVyaW5nLi4uCg==

------_=_NextPart_001_01C7CDE7.FEEAE3C7
Content-Type: text/plain
Content-Disposition: inline
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable


---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at

http://www.postgresql.org/about/donate

------_=_NextPart_001_01C7CDE7.FEEAE3C7--

Re: FW: Varchar parameter conversion

am 24.07.2007 15:48:59 von Andrei Kovalevski

Hello,

I'm not so sure what is going on, unicode version of driver should=20
provide internal conversion to UTF-8, but value in log file doesn't look=20
as a valid UTF-8 string:
-!-"-#-$-%-&-''-(-)-*-+-,---.-/-0-1-2-3-4-5-6-7-8-9-:-;-<-=3D->-?-@-A-B-C=
-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z-[-\\-]-^-_-`- a-b-c-d-e-f-g=
-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-z-{-|-}-~-=7F-Р=E2 €š-Р=
ѓ-‚-Сâ€=9C-„ -вЂ=
¦-вЂ=20
-‡-в‚Â-‰ -Рâ€=
°-вЂâ„=96-РЉ-РЊ-Р=E 2€¹-Р=
Џ-Сâ€=99-‘-вЂ℠=A2-в=D0=
‚Ñ=9A-”-•-†â€=9C-=D0=
²Ð‚”-˜-в„Ñ=9E-С â„=A2-=D0=
²Ð‚Ñ=94-Сљ-Сњ-Сâ€=BA-=D 0¡Ñ=9F-=D0=
’
-РЋ-Сћ-Рâ‚-В¤-=D0= A2ђ-В=
¦-В§-РЃ-В©-Рâ€=9 E-В«=
-В¬-В­-В®-Рâ€=A1-=D0= 92°-В=
±-Рâ€=A0-Сâ€=93-Тâ€=98-=D0=9 2µ-В=
¶-В·-Сâ€=98-в„– -Сâ€=
=9D-В»-ј-Рâ€=A6-Сâ€=A 2-Сâ€=
=94-Рђ-Рâ€=98-Рâ€=99-Р=E2=8 0=9C-Р=E2=
€-Рâ€=A2-Рâ€=93-Рâ€=94-=D0=A 0˜-Р=
â„=A2-Рљ-Рâ€=BA-Рњ-Р=D 1=9C-Р=D1=
=9B-Рџ-Р=20
-РЎ-Рў-РЈ-Р¤-Р= D2=90-Р=C2=
=A6-Р§-РЁ-Р©-РЄ-=D0= A0«-Р=
¬-Р­-Р®-РЇ-Р°-= D0 Â=B1-=D0=
 Ð=86-Рі-Рґ-Рµ-Р=C2=B 6-Р·=
-Рё-Рâ„=96-Рє-Р»-=D0= A0ј-Р=
Ѕ-Рѕ-Рї-СЂ-СЃ-= D0¡â€š=
-Сѓ-Сâ€=9E-Сâ€=A6-Сâ€=A 0-Сâ€=
=A1-Сâ‚-С‰-СЉ-С=E2=8 0=B9-С=D0=
=8A-СЌ-СЋ-СЏ--------

It looks like you are passing wide string as the first parameter. You=20
can post here your code, where you prepare this string before placing it=20
into the inbound buffer. More simple way to confirm this version -=20
replace SQL_C_CHAR with SQL_C_WCHAR in SQLBindParameters.

And of course you can try other PostgreSQL ODBC drivers, for example:
https://projects.commandprompt.com/public/odbcng/wiki/Downlo ads

Zubkovsky, Sergey wrote:
> Sorry, I forgot to attach the log file.
>
> -----Original Message-----
> From: pgsql-odbc-owner@postgresql.org
> [mailto:pgsql-odbc-owner@postgresql.org] On Behalf Of Zubkovsky, Sergey
> Sent: Tuesday, July 24, 2007 3:37 PM
> To: Andrei Kovalevski
> Cc: pgsql-odbc@postgresql.org
> Subject: Re: [ODBC] Varchar parameter conversion
>
> Hello,
>
> Thank you for your answer!
> But this is the same what I do exactly.
>
> I have realized the stored procedure call with a varchar parameter valu=
e
> which originally contained characters with the ASC-codes from 1 to 255.
> For visualization purpose all these chars were separated by char '-'.
>
> A log file was produced by the ODBC driver is attached.
>
> Look at the "GetPartitionName_sp" stored procedure call.
> I suppose that the first parameter was converted to UTF-8.
> But I didn't do this conversion!
>
>
> -----Original Message-----
> From: Andrei Kovalevski [mailto:andyk@commandprompt.com]=20
> Sent: Monday, July 23, 2007 6:41 PM
> To: Zubkovsky, Sergey
> Cc: pgsql-odbc@postgresql.org
> Subject: Re: [ODBC] Varchar parameter conversion
>
> Hello,
>
> Try to use statements with parameters:
> SQLBindParameters(stmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR,=20
> query_length, 0, param_ptr, query_length, buff_ptr);
> SQLExecDirect(stmt, "{call SomeProc(?}}");
>
> Zubkovsky, Sergey wrote:
> =20
>> Hello,
>>
>> My client program is developed on C++ & ODBC.
>>
>> It's a Windows Unicode application.
>>
>> I'm trying to pass a "varchar" parameter value to a user-defined=20
>> stored procedure.
>>
>> Each character of this actual parameter value (which ASC code is=20
>> greater than 127) is transformed into some two chars.
>>
>> This value is stored and bound as a non-Unicode string (traditional=20
>> C-string) in the program.
>>
>> So, some conversion happens for these characters.
>>
>> It seems to me that it's the ODBC driver's intervention.
>>
>> Is that right?
>>
>> And how can I avoid this unwanted conversion?
>>
>> Additional environment info:
>>
>> OS: Windows XP SP2
>>
>> PostgreSQL version: "PostgreSQL 8.2.4 on i686-pc-mingw32, compiled by=20
>> GCC gcc.exe (GCC) 3.4.2 (mingw-special)"
>>
>> ODBC driver version: PostgreSQL Unicode 8.02.04.00
>>
>> SHOW server_encoding;
>>
>> "SQL_ASCII"
>>
>> SHOW client_encoding;
>>
>> "SQL_ASCII"
>>
>> Thank you.
>> =20
Andrei.

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend