ó
    ““,j,  ã                   ó&   • S r SSKJr  S r SS jrg)zka clumsy attempt at a macro language to let the programmer execute code on the server (ex: determine 64bit)é   )Úis64bitc                 ó  • [        U[        [        45      (       a  U/nUS   n U S:X  a'  [        R                  " 5       (       a  X1S   4$  X1S   4$ U S:X  a  X2;  a  SSKnX4R                  5       4$ O°U S:X  a  SSKn X1S   UR                  5       -  4$ U S	:X  a*  SSK	n US   nX6R                  R                  US   U5      4$ U S
:X  a  SU;  d
  US   (       d  US4$ USU-  4$ U S:X  a7  SSK	nSSKnX6R                  R                  UR                  5       SUS   5      4$ [!        SU  35      e! [         a    US4s $ f = f! [         a    X5R                  5       4s $ f = f! [         a    Sn NÏf = f!   [!        SU  SU< 35      e= f)a]  allow the programmer to perform limited processing on the server by passing macro names and args

:new_key - the key name the macro will create
:args[0] - macro name
:args[1:] - any arguments
:code - the value of the keyword item
:kwargs - the connection keyword dictionary. ??key has been removed
--> the value to put in for kwargs['name'] = value
é    r   r   é   Ú ÚgetuserNÚgetnodeÚgetenvÚauto_securityÚuserzIntegrated Security=SSPIz'User ID=%(user)s; Password=%(password)sÚfind_temp_test_pathÚadodbapi_testzUnknown connect string macro=zError in macro processing Ú )Ú
isinstanceÚstrr   ÚPythonÚ
IndexErrorÚgetpassr   ÚplatformÚnodeÚosÚenvironÚgetÚtempfileÚpathÚjoinÚ
gettempdirÚ
ValueError)	Ú
macro_nameÚargsÚkwargsÚnew_keyr   r   r   Údfltr   s	            Ú­C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\adodbapi/process_connect_string.pyÚ
macro_callr%      sæ  € ô �$œœc˜
×#Ñ#àð
ˆð �1‰g€Gð6MØ˜Ó"Ü�~Š~×ÑØ Q¡Ð'Ð'ð'Ø"¨¡GÐ+Ð+ð
 ˜)Ó#àÓ$Ûà§¡Ó 1Ð1Ð1ð %ð
 ˜9Ó$Ûð0Ø Q¡¨(¯-©-«/Ñ 9Ð9Ð9ð ˜8Ó#ÛðØ˜A‘w�ð ŸJ™JŸN™N¨4°©7°DÓ9Ð9Ð9à˜?Ó*à˜fÓ$¨F°6¯NàÐ :Ð:Ð:ØÐEÈÑNÐNÐNð Ð/Ó/ãÛàŸG™GŸL™LØ×#Ñ#Ó% ¸¸Q¹óð ð ô Ð8¸¸ÐEÓFÐFøô[ "ó 'Ø" B˜;Ò&ð'ûô  ó 0Ø§¡£Ð/Ò/ð0ûô ó Ø’ðûð,MÜÐ5°j°\ÀÀ4Á(ÐKÓLÐLús•   ¥%E8 ÁD1 ÁE8 Á2E8 Á>E Â
E8 Â E& Â%E8 ÃE8 ÃE8 Ã&<E8 Ä#E8 Ä1EÄ?E8 ÅEÅE8 ÅE#Å E8 Å"E#Å#E8 Å&E5Å2E8 Å4E5Å5E8 Å8Fc                 ó$  •  U S   n[        U[        5      (       a  UR                  U5        OU(       a  X1S'    U S   n[        U[        5      (       a  XAS'   O@[        U[
        5      (       a  XAS'   O&[        U[        5      (       a  UR                  U5         U S   US'   U S	   US
'   U S   US'   SU;  a	   US   US'   U(       a`  [        UR                  5       5       HC  nUR                  S5      (       d  M  USS nUR                  U5      n[        XgU5      u  p‰X‘U'   ME     U$ ! [          a    Sn GN2f = f! [          a    Sn GNf = f! [          a     Nªf = f! [         a%     US
   US'    N´! [         a    [        S5      ef = ff = f)zäattempts to inject arguments into a connection string using Python "%" operator for strings

co: adodbapi connection object
args: positional parameters from the .connect() call
kvargs: keyword arguments from the .connect() call
r   NÚconnection_stringr   Útimeoutr   r   Úpasswordé   Úhosté   ÚdatabaseÚdsnz3Must define 'connection_string' for ado connectionsÚmacro_é   )r   r   ÚdictÚupdateÚintr   ÚKeyErrorÚ	TypeErrorÚlistÚkeysÚ
startswithÚpopr%   )
r    r!   Úexpand_macrosr.   Úa1Úkwargr   Ú
macro_coder"   Úrslts
             r$   Úprocessr?   N   sÃ  € ðØ�1‰gˆô �#”t×ÑØ�‰�cÕæ	Ø&)Ð"Ñ#ðØ�!‰Wˆô �"”c×ÑØˆyÒä	�Bœ×	Ñ	ØˆvŠä	�Bœ×	Ñ	Ø�‰�bÔðØ! !™WˆˆzÑØ˜a™ˆˆv‰Ø! !™WˆˆzÑð
  &Ó(ð	WØ*0°©-ˆFÐ&Ñ'ö Ü˜&Ÿ+™+›-Ö(ˆEØ×Ñ ×)Ó)Ø" 1 2˜Y�
Ø#ŸZ™ZØó�
ô !+Ø¨Fó!‘�ð #'�w“ñ )ð €Møôa ó Ø‹ðûô ó Ø‹ðûô ó Ùðûô ó 	WðWØ.4°V©n�Ð*Ó+øÜó WÜÐ UÓVÐVðWúð	WúsR   ‚D* ºD= ÂE Â9E  Ä*D:Ä9D:Ä=EÅEÅ
EÅEÅ 
FÅ+E5Å5FÆFN)F)Ú__doc__r   r   r%   r?   © ó    r$   Ú<module>rC      s   ðÙ qå òEMðR !&õ;rB   