Re: Python stable ABI under Windows

RenĂ© Glockan <[email protected]> Wed, 22 May 2024 09:46:48 +0000
Newsgroups gmane.comp.programming.swig
Message-ID <AS8P190MB1910F09B3770058CECE4BBF9F4EB2@AS8P190MB1910.EURP190.PROD.OUTLOOK.COM>
--===============4126212394545209915==
Content-Language: de-DE
Content-Type: multipart/signed;
	protocol="application/x-pkcs7-signature";
	micalg=SHA1;
	boundary="----=_NextPart_000_0007_01DAAC3D.B9B106A0"

------=_NextPart_000_0007_01DAAC3D.B9B106A0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_001_0008_01DAAC3D.B9B12DB0"


------=_NextPart_001_0008_01DAAC3D.B9B12DB0
Content-Type: text/plain;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Hello,

=20

Thanks for the help. That was exactly my issue. I linked against =
python3.lib, but did not remove the linkage against python38.lib. =
Python38.lib won in the end.

Solution was to update my CMake installation to version 3.26+ as that =
version added support for the Python stable ABI and change my CMake code =
to the following:

find_package(Python REQUIRED COMPONENTS Development.SABIModule)

target_link_libraries(${PYTHON_WRAPPER_NAME} Python::SABIModule)

=20

With best regards

Ren=C3=A9 Glockan

=20

From: William S Fulton <[email protected]>=20
Sent: Wednesday, May 22, 2024 8:49 AM
To: Ren=C3=A9 Glockan <[email protected]>
Cc: [email protected]
Subject: Re: [Swig-user] Python stable ABI under Windows

=20

Probably worth looking closely at the Python docs on the stable ABI at =
https://docs.python.org/3/c-api/stable.html. It does say to not link =
against the versioned dll on Windows.

=20

William

=20

On Tue, 21 May 2024 at 21:40, Ren=C3=A9 Glockan <[email protected] =
<mailto:[email protected]> > wrote:

Hello,

I'm currently trying to get the python stable ABI to work in our =
project.
According to the documentation I only have to add=20
`target_compile_definitions(_${PYTHON_WRAPPER_NAME} PUBLIC
Py_LIMITED_API=3D0x03040000)`
to my existing CMake project. Under my ubuntu 20.04 test system this =
worked
and I could use any other Python version.
But under Windows (10) I'm still limited to the python version I used to
build it.
If I use any other python version I get the following error:
`ImportError: DLL load failed while importing _Pyswig_test: The =
specified
module could not be found.`
_Pyswig_test being the name of my test project. Everything is in the =
same
directory.
It did change something during compilation as it now links against
python.lib instead of the previous python38.lib.
Do I have to do something special to make the stable ABI work under =
Windows?

With best regards
Ren=C3=A9 Glockan

_______________________________________________
Swig-user mailing list
[email protected] <mailto:[email protected]> =

https://lists.sourceforge.net/lists/listinfo/swig-user


------=_NextPart_001_0008_01DAAC3D.B9B12DB0
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta =
http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8"><meta =
name=3DGenerator content=3D"Microsoft Word 15 (filtered =
medium)"><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Aptos;}
@font-face
	{font-family:"Segoe UI";
	panose-1:2 11 5 2 4 2 4 2 2 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	font-size:12.0pt;
	font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
span.E-MailFormatvorlage18
	{mso-style-type:personal-reply;
	font-family:"Segoe UI",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:11.0pt;
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-GB link=3Dblue =
vlink=3Dpurple style=3D'word-wrap:break-word'><div =
class=3DWordSection1><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Segoe =
UI",sans-serif;mso-fareast-language:EN-US'>Hello,<o:p></o:p></span></p><p=
 class=3DMsoNormal><span style=3D'font-size:10.0pt;font-family:"Segoe =
UI",sans-serif;mso-fareast-language:EN-US'><o:p>&nbsp;</o:p></span></p><p=
 class=3DMsoNormal><span style=3D'font-size:10.0pt;font-family:"Segoe =
UI",sans-serif;mso-fareast-language:EN-US'>Thanks for the help. That was =
exactly my issue. I linked against python3.lib, but did not remove the =
linkage against python38.lib. Python38.lib won in the =
end.<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Segoe =
UI",sans-serif;mso-fareast-language:EN-US'>Solution was to update my =
CMake installation to version 3.26+ as that version added support for =
the Python stable ABI and change my CMake code to the =
following:<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Segoe =
UI",sans-serif;mso-fareast-language:EN-US'>find_package(Python REQUIRED =
COMPONENTS Development.SABIModule)<o:p></o:p></span></p><p =
class=3DMsoNormal><span style=3D'font-size:10.0pt;font-family:"Segoe =
UI",sans-serif;mso-fareast-language:EN-US'>target_link_libraries(${PYTHON=
_WRAPPER_NAME} Python::SABIModule)<o:p></o:p></span></p><p =
class=3DMsoNormal><span style=3D'font-size:10.0pt;font-family:"Segoe =
UI",sans-serif;mso-fareast-language:EN-US'><o:p>&nbsp;</o:p></span></p><d=
iv><p class=3DMsoNormal><span lang=3DNL =
style=3D'font-size:10.0pt;font-family:"Segoe =
UI",sans-serif;color:black'>With best regards<o:p></o:p></span></p><p =
class=3DMsoNormal><span lang=3DNL =
style=3D'font-size:10.0pt;font-family:"Segoe =
UI",sans-serif;color:black'>Ren=C3=A9 =
Glockan<o:p></o:p></span></p></div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Segoe =
UI",sans-serif;mso-fareast-language:EN-US'><o:p>&nbsp;</o:p></span></p><d=
iv style=3D'border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm =
4.0pt'><div><div style=3D'border:none;border-top:solid #E1E1E1 =
1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=3DMsoNormal><b><span =
style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span><=
/b><span style=3D'font-size:11.0pt;font-family:"Calibri",sans-serif'> =
William S Fulton &lt;[email protected]&gt; <br><b>Sent:</b> =
Wednesday, May 22, 2024 8:49 AM<br><b>To:</b> Ren=C3=A9 Glockan =
&lt;[email protected]&gt;<br><b>Cc:</b> =
[email protected]<br><b>Subject:</b> Re: [Swig-user] =
Python stable ABI under Windows<o:p></o:p></span></p></div></div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><div><p =
class=3DMsoNormal>Probably worth looking closely at the Python docs on =
the stable ABI at <a =
href=3D"https://docs.python.org/3/c-api/stable.html">https://docs.python.=
org/3/c-api/stable.html</a>. It does say to not link against the =
versioned dll on Windows.<o:p></o:p></p></div><div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p></div><div><p =
class=3DMsoNormal>William<o:p></o:p></p></div></div><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><div><div><p class=3DMsoNormal>On =
Tue, 21 May 2024 at 21:40, Ren=C3=A9 Glockan &lt;<a =
href=3D"mailto:[email protected]">[email protected]</a>&gt; =
wrote:<o:p></o:p></p></div><blockquote =
style=3D'border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm =
6.0pt;margin-left:4.8pt;margin-right:0cm'><p =
class=3DMsoNormal>Hello,<br><br>I'm currently trying to get the python =
stable ABI to work in our project.<br>According to the documentation I =
only have to add <br>`target_compile_definitions(_${PYTHON_WRAPPER_NAME} =
PUBLIC<br>Py_LIMITED_API=3D0x03040000)`<br>to my existing CMake project. =
Under my ubuntu 20.04 test system this worked<br>and I could use any =
other Python version.<br>But under Windows (10) I'm still limited to the =
python version I used to<br>build it.<br>If I use any other python =
version I get the following error:<br>`ImportError: DLL load failed =
while importing _Pyswig_test: The specified<br>module could not be =
found.`<br>_Pyswig_test being the name of my test project. Everything is =
in the same<br>directory.<br>It did change something during compilation =
as it now links against<br>python.lib instead of the previous =
python38.lib.<br>Do I have to do something special to make the stable =
ABI work under Windows?<br><br>With best regards<br>Ren=C3=A9 =
Glockan<br><br>_______________________________________________<br>Swig-us=
er mailing list<br><a href=3D"mailto:[email protected]" =
target=3D"_blank">[email protected]</a><br><a =
href=3D"https://lists.sourceforge.net/lists/listinfo/swig-user" =
target=3D"_blank">https://lists.sourceforge.net/lists/listinfo/swig-user<=
/a><o:p></o:p></p></blockquote></div></div></div></body></html>
------=_NextPart_001_0008_01DAAC3D.B9B12DB0--

------=_NextPart_000_0007_01DAAC3D.B9B106A0
Content-Type: application/pkcs7-signature;
	name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="smime.p7s"

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
fGVmcKfpItvuuzL6q7GGP6tIgbir8yrdN8cuC/ar31WtVCAUOreJRG3n6D+uiCEYjkdWlQDJ7GVu
VkcUTa0uJtLUi2zK8zMt+fCbjreGJoHnC56LDHwFpzx6+fCFkJyJZzl1EbFjsNQjLH3cHyt27QSt
uhHJB0kN4ygPLhEU0ray/3i4/lpTgCSsC0i6TjIxUeyq/rtELAvX+X2rjdpsqwjd80E9j/VBQVzG
zFHKDkQft2qAdlVpUeZM/ReA+7NU7rBKHTOTBnm5YRGs5A5bs93gsSVct9TTzfR7ngFUK4KQoeHK
Q43wQaQcB8DWMxajRUaPhExp/ZNXndPlb8skDDEtA5jCADlEeSKBbeTq/AtkJm78yp4aA0Ttf01N
6RGydr2GfXu7VD9RkEfHi/j/TizyCDCMGcEsRzWevatTpCKunwwhGSm9npvPhNyO0TVLIhCBG2Lt
wEvTK5AiSR8tIa6Rxd/x1kFUcg7eyjQQ9cmandVcFuTNJbHHqHFGrPhThReJqyQaOBgyJHPpVa74
gGMDb4Sw36CUtalT8Itq9VR55f9bnKJvIuH/QCllbG+OSGkxPoEbO4tY+lsvO2t9ayTwvPKN5Zrm
rHjL2IIrABcdeWoJLtZuds8w+9tZAgMBAAGjggFnMIIBYzAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
DgQWBBQJDL8qoh0EJAyy+UAKQcLPWnKqgDAfBgNVHSMEGDAWgBRbJXuWpGVRfrg588B4Zl7oOufw
7jAOBgNVHQ8BAf8EBAMCAQYwgf8GA1UdHwSB9zCB9DBHoEWgQ4ZBaHR0cDovL2NybC5zd2lzc3Np
Z24ubmV0LzVCMjU3Qjk2QTQ2NTUxN0VCODM5RjNDMDc4NjY1RUU4M0FFN0YwRUUwgaiggaWggaKG
gZ9sZGFwOi8vZGlyZWN0b3J5LnN3aXNzc2lnbi5uZXQvQ049NUIyNTdCOTZBNDY1NTE3RUI4MzlG
M0MwNzg2NjVFRTgzQUU3RjBFRSUyQ089U3dpc3NTaWduJTJDQz1DSD9jZXJ0aWZpY2F0ZVJldm9j
YXRpb25MaXN0P2Jhc2U/b2JqZWN0Q2xhc3M9Y1JMRGlzdHJpYnV0aW9uUG9pbnQwDQYJKoZIhvcN
AQELBQADggIBAAL46l3QisysCAM2VGb/CimG4VSDLDPox2yuEKlUgX8qLYgmraaoNCgPGQapneIC
lQQyZEwLyvnjfcMTW+iXQI534+OCgYetAWAHw8XhIP23MJc+uhxxdItfTaex/k58CXh6h1/xrKEl
EZfHLBGckOpyFj0CNam75SPYH1JAt9COXdojvDPpMv24dZ9Dvj1XS4dh3u2WyHB8frcT4QlAuxkC
Bw9r3R/SzA5aEhjkwbGcvr4rER7lmsXgoTWx5OGyYq7A6Gx8lof6YN4tiRwUQUA5onfvsBVbAT8e
zuYUqZy+gp+xYhffIkO1Mm+3BfwYytp6Q11ltSb+WkGhaXSX8UNRjdx/2VeEpx1R8oJtqw5806Pl
4MmVBG3yx5134qX4yMW5ZwZvbf3Gf26+xWrbBDbbMG9dvciZ/sRylsy5y3SLJKkTC3i1Bsr1iyYW
c5gdcZWd8/BS6WxVfgUiF9CJPGXtV4B3/NisvbNTjwd7WBN6sefJsPjjyaGR4nTOymgbshvElmCU
kNvlCLc+zIh9Z8BV/Chz3hw72s8PHLYI0jM++TySSKBacIgeEBeYenbdYEg+ckU+cGuM60h8WbVW
BRIUCkZNAjYJ0WxzIVIn2GvE0nKnTH7bNs7TPctc4u4b3fk6/U0T/w7OUrYWcTOgl8Vf9oIYF7U6
m5u2eKsb6/1aMIIG6DCCBNCgAwIBAgIUWVRbM8nz3CF4VKWnnMmjkU54CxkwDQYJKoZIhvcNAQEL
BQAwUzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEtMCsGA1UEAxMkU3dpc3NT
aWduIFJTQSBTTUlNRSBMQ1AgSUNBIDIwMjEgLSAyMB4XDTIzMDcxOTA4NTMxOVoXDTI2MDcxOTA4
NTMxOVowRjEkMCIGCSqGSIb3DQEJARYVcmVuZS5nbG9ja2FuQHZpZ2VtLmRlMR4wHAYDVQQDDBVy
ZW5lLmdsb2NrYW5AdmlnZW0uZGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDi2+ou
tEg9sE8CK62EuDjegSUC2H88w701Sr4/dwd/GSch5z0HbQo2fHALRaPPGkTjtLyj4JUlgzAfcNLp
PIgSczj0T/Mfb9s5Uuda+oXYZeChqg6naWC+Yquyj1p6yGWHYJKtAv6F/m3H79pSFc7qvprQCiEZ
bKdHSvCUmhOa/JVJYyJo6dO0Mfyqf99nz+/D+KZjHsnnAWVJ5UwIsl6s0j9wiemu6M9U/TZmYRf9
1SAHiMxzd+NzbHxNnb+02IymNm6AUM4uQWD5DwHWxx+MleuPqEOn0Pu1+YwMQaRHdY+dlKqZyabO
pvMrcdoPo8COHdYniXVjTJL3EuKyB5CZAgMBAAGjggK/MIICuzAgBgNVHREEGTAXgRVyZW5lLmds
b2NrYW5AdmlnZW0uZGUwDgYDVR0PAQH/BAQDAgSwMBMGA1UdJQQMMAoGCCsGAQUFBwMEMB0GA1Ud
DgQWBBT8iMBzg+M0KG4jW+nWXRPiBr1w3DAfBgNVHSMEGDAWgBT6VMCCpv6WvQTHX59fggw9w5VP
RzCB/wYDVR0fBIH3MIH0MEegRaBDhkFodHRwOi8vY3JsLnN3aXNzc2lnbi5uZXQvRkE1NEMwODJB
NkZFOTZCRDA0Qzc1RjlGNUY4MjBDM0RDMzk1NEY0NzCBqKCBpaCBooaBn2xkYXA6Ly9kaXJlY3Rv
cnkuc3dpc3NzaWduLm5ldC9DTj1GQTU0QzA4MkE2RkU5NkJEMDRDNzVGOUY1RjgyMEMzREMzOTU0
RjQ3JTJDTz1Td2lzc1NpZ24lMkNDPUNIP2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3Q/YmFzZT9v
YmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludDBnBgNVHSAEYDBeMFIGCGCFdAFZAgELMEYw
RAYIKwYBBQUHAgEWOGh0dHBzOi8vcmVwb3NpdG9yeS5zd2lzc3NpZ24uY29tL1N3aXNzU2lnbl9D
UFNfU01JTUUucGRmMAgGBgQAj3oBAzCBxgYIKwYBBQUHAQEEgbkwgbYwZAYIKwYBBQUHMAKGWGh0
dHA6Ly9zd2lzc3NpZ24ubmV0L2NnaS1iaW4vYXV0aG9yaXR5L2Rvd25sb2FkL0ZBNTRDMDgyQTZG
RTk2QkQwNEM3NUY5RjVGODIwQzNEQzM5NTRGNDcwTgYIKwYBBQUHMAGGQmh0dHA6Ly9vY3NwLnN3
aXNzc2lnbi5uZXQvRkE1NEMwODJBNkZFOTZCRDA0Qzc1RjlGNUY4MjBDM0RDMzk1NEY0NzANBgkq
hkiG9w0BAQsFAAOCAgEAQJEZ0sK8MoUGMiM6aghDQdHJnvN5p4SWb1RjSxVHdt49gg7LIIIh4ORN
hw0uVkAObTKrhs1CjR8XlwJ0jQGdBVASoMiSCPDF9kyANSiee51TPWAcPqYoDC9ihM+KF9VHKbbV
kgKeypZx3qBTuUjIkgazuoaTxllF6eA8cUcWcYLTLkPizC60zxSPAXfHob6H3clWuSUdZ3vLmIrY
8z4U3xdAJMNLw4kqIi4PlVicW0dVHKt/yMhnlJZuicloRAwuDnSeFeDRYwIDoOVDbhzo1ZHf0TO/
y3lkaV4G/ymZh4ILCDZ9Q4euBCweR5v/Zitqh3kdif/OIixkPZy7ywMLCxy4DiouNJqcQzb+nqqn
xi+Sspncrb9malvJxGZb6Ecx9AUdCtMgIUJmJ2CSE04wK517Hv4RSYP+Nvj8HQyEr02aPnwYv054
EzXpO+PYrsAZCbKf8CVmu6RDZfXUyCZrI3Poe4s0hiiy5sa5D71t+Mv35zR13SGGDX2jhrJsOxPq
rwsJYY4QpUa6s6UHxqcrC/pM/s98LZJR34V1Ngnx0iVq+Qk8niOX4OUk7x+/+3NZz7oX+Co81EzW
8+V85ED0PFRkgv1Jt6ahEf7/SQc+tZlqwCTZ0oEFHXTQ7TRVO889rkp7OCsba18hJBnGU46ALFD/
XNro1aQ4NNhNTmCX45cwggdHMIIFL6ADAgECAg8sWqnZVP2yq5atF7ZfjPQwDQYJKoZIhvcNAQEL
BQAwUzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEtMCsGA1UEAxMkU3dpc3NT
aWduIFJTQSBTTUlNRSBSb290IENBIDIwMjEgLSAxMB4XDTIxMDgwNDEyMTI1OVoXDTM2MDczMTEy
MTI1OVowUzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEtMCsGA1UEAxMkU3dp
c3NTaWduIFJTQSBTTUlNRSBMQ1AgSUNBIDIwMjEgLSAyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
MIICCgKCAgEAvQUZyNQNcT4DAxC0kxYA688j2sAHI7tRPDgS00B1w3JjeOsLJ3lfjVaIqdl9WUPR
iBd248dGi6vf4oiqPRLAnQjtQRDX3O9J4L8xUtaDnZn88poigGZVrBCUkKHMi5XQ1khdNyjfGu0Y
Jd9DwyFEQbwVpaSDgsYggFICqIBmAb5u2UWWddAXIHxlP4GtfY5YRiPcUifaQj473FjySqYkmxvr
NAkfzOHF2kDzvWRBWMSJ+4OKzSGAWGcIbCI3D5+TrQvf+6f9xf9qigPYH7yvwskNeHz1Tj1SWjxA
rnzLOPrUYYdnnaRseIq0E2lVfOYlVN8Iz6YvOEyIFJUcKlFpaI9efAOa+6RlTHCPvkpcqt67nbt9
fVo4gue5AIpFR68gvoMAuElAGJ9Aql//3AKcfvfZ5i1gJlpxnXmkZhzCQpiX18tw44vEp1boIHF2
xK55K+bJrNZMqecIg0e2FSJHU7oiR6Rdne1mf3eRDk+ygXUv5Ou/14E61MJFsCkdlZv9NG9Gac9z
eB4PRU6wT+dwNrnItnuy3970fIRSYo4btPMxrgpWOyoZ/tAQVOdGEjhNgZ2FrATnt+nXcNuO9HDP
4hrTDGk15wNK4ODLF/Uz9L1+IkKVmTMKjcKnGJNHsDKsuEQwGO8R+BlzZERk9pyZ4FEW0EtcIEnB
dTTM0Vvq0a0CAwEAAaOCAhYwggISMA4GA1UdDwEB/wQEAwIBBjATBgNVHSUEDDAKBggrBgEFBQcD
BDASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBT6VMCCpv6WvQTHX59fggw9w5VPRzAfBgNV
HSMEGDAWgBQJDL8qoh0EJAyy+UAKQcLPWnKqgDCB/wYDVR0fBIH3MIH0MEegRaBDhkFodHRwOi8v
Y3JsLnN3aXNzc2lnbi5uZXQvMDkwQ0JGMkFBMjFEMDQyNDBDQjJGOTQwMEE0MUMyQ0Y1QTcyQUE4
MDCBqKCBpaCBooaBn2xkYXA6Ly9kaXJlY3Rvcnkuc3dpc3NzaWduLm5ldC9DTj0wOTBDQkYyQUEy
MUQwNDI0MENCMkY5NDAwQTQxQzJDRjVBNzJBQTgwJTJDTz1Td2lzc1NpZ24lMkNDPUNIP2NlcnRp
ZmljYXRlUmV2b2NhdGlvbkxpc3Q/YmFzZT9vYmplY3RDbGFzcz1jUkxEaXN0cmlidXRpb25Qb2lu
dDAfBgNVHSAEGDAWMAoGCGCFdAFZAgELMAgGBgQAj3oBAzB0BggrBgEFBQcBAQRoMGYwZAYIKwYB
BQUHMAKGWGh0dHA6Ly9zd2lzc3NpZ24ubmV0L2NnaS1iaW4vYXV0aG9yaXR5L2Rvd25sb2FkLzA5
MENCRjJBQTIxRDA0MjQwQ0IyRjk0MDBBNDFDMkNGNUE3MkFBODAwDQYJKoZIhvcNAQELBQADggIB
AAcPHpcEhXoJluyBqRkzj8LTgtrc08AkIkQNlQvxFhinJJPANxfUPjNgPJVGFZUSibd9aQHs3F2j
+jhVtNyD4ol1O9EAOffJxqlMc845/K6RYWYAo+m4vDCXeTB+QtkUWBa4YkXn8eqaeNiy3NABSBdW
apGmGtb89BIEzi/VxN4p13t/bcDy6Ht63P3/IH6Xpv7NTSCZNms8MsWZ9tumEq0nnb8YXuy4jeoD
qr1O4caQvG12oiGFcuwyEl8BLfdNhnPjOEG4VH/MkPj4it0HsRiForrDjuOnJ+u93Rv9Sgs5mv9S
5afQ8WnlB5cY43nnq/9lrVlmTRYaCJ68aXCufKHWiWUTGUCcDZYzG+uoBm+TqXmpzdLLvd/0vRq2
YCajerKade9Ws3zLkM1ao/YMRcuusiHZa4WXG2v0IsQtngCcZuXzPz2YPVl2e9+xvIwG7LqERB9W
8bIJS88QCMG6GO7lcCIpumXInim+mMuJ+k86XqzZoVOVB4lGUicyEP6rvQdeHH4dAgCaNfae30b8
nhf6eyDQx9HHk1U6ubBfJBbTDNW8/tP7FjkzanYvJBjuyO4qLgt/leAw8eBdbBnGooBV7VKS5qJe
S7LPovTVxoFhXDxa3nsaC2gXXJAyYAZOszhylWMGXZ64NgqLyHr/7rpitFsgmu4sdfkg3LHdj18S
MYIDgzCCA38CAQEwazBTMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMS0wKwYD
VQQDEyRTd2lzc1NpZ24gUlNBIFNNSU1FIExDUCBJQ0EgMjAyMSAtIDICFFlUWzPJ89wheFSlp5zJ
o5FOeAsZMAkGBSsOAwIaBQCgggHtMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcN
AQkFMQ8XDTI0MDUyMjA5NDY0NlowIwYJKoZIhvcNAQkEMRYEFEdTFOgHZn5ap7aRcaE8962517i9
MHoGCSsGAQQBgjcQBDFtMGswUzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEt
MCsGA1UEAxMkU3dpc3NTaWduIFJTQSBTTUlNRSBMQ1AgSUNBIDIwMjEgLSAyAhRZVFszyfPcIXhU
paecyaORTngLGTB8BgsqhkiG9w0BCRACCzFtoGswUzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3
aXNzU2lnbiBBRzEtMCsGA1UEAxMkU3dpc3NTaWduIFJTQSBTTUlNRSBMQ1AgSUNBIDIwMjEgLSAy
AhRZVFszyfPcIXhUpaecyaORTngLGTCBkwYJKoZIhvcNAQkPMYGFMIGCMAsGCWCGSAFlAwQBKjAL
BglghkgBZQMEARYwCgYIKoZIhvcNAwcwCwYJYIZIAWUDBAECMA4GCCqGSIb3DQMCAgIAgDANBggq
hkiG9w0DAgIBQDAHBgUrDgMCGjALBglghkgBZQMEAgMwCwYJYIZIAWUDBAICMAsGCWCGSAFlAwQC
ATANBgkqhkiG9w0BAQEFAASCAQBPJhLW03mEmPkgr+gKtYOyQnGOzxNPSWXrTwia4x1PdoIBnLZb
RpkiSoZjBVLFRvUt3Wgh2aOSdnbFQ071iC3lgDLjUrl4z23I74/Qh02SxTo7zYwGxpXDG9Qc9IBO
ILGXFjhfagJAYnRqw/ZA6wmrvqvbhddHFk7LEDAiTYnCkKGOnNUri5a6CgmJUJm7Z59CWxWh6pYE
175ITjG+f2obip6WMM5uwOOW5re/Dr5QoOsARwuPweKxkXELjJ3g22QgW1YA3xP6HWLSSPWQanHJ
lhByhOS9Ia++KYqASUOFcy46WlQmARSaMGJAsj6D7k/h6u4ReJPHK2WVhW24T8uUAAAAAAAA

------=_NextPart_000_0007_01DAAC3D.B9B106A0--


--===============4126212394545209915==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============4126212394545209915==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Swig-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/swig-user

--===============4126212394545209915==--