hyb
2025-12-30 399ffc4d9829f70529d3b096fe4228f7496cc566
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
Ë
Wñúh‹uãóà—dZddlZddlZddlZddlZddlmZmZddlm    Z    ddl
m Z m Z m Z mZmZmZ    ddlZej$ej&ej(ej*dœZeed«xr ej0Zd    d
lmZmZmZmZm Z m!Z!m"Z"d Z#d Z$d Z%dZ&de'de(fd„Z)Gd„de«Z*Gd„de*«Z+Gd„de+«Z,Gd„de«Z-Gd„de-«Z.Gd„de-«Z/y#e$rdZdZYŒpwxYw)zFModule implementing low-level socket communication with MySQL servers.éN)ÚABCÚabstractmethod)Údeque)ÚAnyÚDequeÚListÚOptionalÚTupleÚUnion)ÚTLSv1úTLSv1.1úTLSv1.2úTLSv1.3Ú HAS_TLSv1_3Fé)ÚConnectionTimeoutErrorÚInterfaceErrorÚNotSupportedErrorÚOperationalErrorÚProgrammingErrorÚReadTimeoutErrorÚWriteTimeoutErroré2iÿÿÿééÚerrÚreturncóh—|js t|«Sd|j›d|j›S)z`Reformat the IOError error message.
 
    This function reformats the IOError error message.
    zErrno z: )ÚerrnoÚstrÚstrerror)rs úJH:\Change_password\venv_build\Lib\site-packages\mysql/connector/network.pyÚ _strioerrorr#Is.€ð
Ÿ9š9Œ3ˆs‹8ÐN¨F°3·9±9°+¸RÀÇ Á ¸~Ð*NÐNócó’—eZdZdZe        d dej
dededee    dee    ddf d    „«Z
edej
dede fd
„«Z y) Ú NetworkBrokeraPBroker class interface.
 
    The network object is a broker used as a delegate by a socket object. Whenever the
    socket wants to deliver or get packets to or from the MySQL server it needs to rely
    on its network broker (netbroker).
 
    The netbroker sends `payloads` and receives `packets`.
 
    A packet is a bytes sequence, it has a header and body (referred to as payload).
    The first `PACKET_HEADER_LENGTH` or `COMPRESSED_PACKET_HEADER_LENGTH`
    (as appropriate) bytes correspond to the `header`, the remaining ones represent the
    `payload`.
 
    The maximum payload length allowed to be sent per packet to the server is
    `MAX_PAYLOAD_LENGTH`. When  `send` is called with a payload whose length is greater
    than `MAX_PAYLOAD_LENGTH` the netbroker breaks it down into packets, so the caller
    of `send` can provide payloads of arbitrary length.
 
    Finally, data received by the netbroker comes directly from the server, expect to
    get a packet for each call to `recv`. The received packet contains a header and
    payload, the latter respecting `MAX_PAYLOAD_LENGTH`.
    NÚsockÚaddressÚpayloadÚ packet_numberÚcompressed_packet_numberrcó—y)aóSend `payload` to the MySQL server.
 
        If provided a payload whose length is greater than `MAX_PAYLOAD_LENGTH`, it is
        broken down into packets.
 
        Args:
            sock: Object holding the socket connection.
            address: Socket's location.
            payload: Packet's body to send.
            packet_number: Sequence id (packet ID) to attach to the header when sending
                           plain packets.
            compressed_packet_number: Same as `packet_number` but used when sending
                                      compressed packets.
 
        Raises:
            :class:`OperationalError`: If something goes wrong while sending packets to
                                       the MySQL server.
        N©)Úselfr'r(r)r*r+s      r"ÚsendzNetworkBroker.sendiór$có—y)a)Get the next available packet from the MySQL server.
 
        Args:
            sock: Object holding the socket connection.
            address: Socket's location.
 
        Returns:
            packet: A packet from the MySQL server.
 
        Raises:
            :class:`OperationalError`: If something goes wrong while receiving packets
                                       from the MySQL server.
            :class:`InterfaceError`: If something goes wrong while receiving packets
                                     from the MySQL server.
        Nr-)r.r'r(s   r"ÚrecvzNetworkBroker.recv…r0r$©NN) Ú__name__Ú
__module__Ú __qualname__Ú__doc__rÚsocketr Úbytesr    Úintr/Ú    bytearrayr2r-r$r"r&r&Qs–„ñð.ð (,Ø26ñ  àm‰mð ðð ðð     ð
  ‘}ð  ð #+¨3¡-ð  ð
ò óð ð6𠘟™ð °ð ¸ò óñ r$r&c óä—eZdZdZdd„Zdd„Zdej dededdfd    „Z    ddej d
e
de fd „Z         ddej ded ed e e
de e
ddf d„Zdej dede fd„Zy)ÚNetworkBrokerPlainú,Broker class for MySQL socket communication.rNcó—d|_y©Néÿÿÿÿ©Ú_pktnr©r.s r"Ú__init__zNetworkBrokerPlain.__init__›s    €Øˆ r$có2—|jdzdz|_y©zIncrement packet id.réNrBrDs r"Ú_set_next_pktnrz"NetworkBrokerPlain._set_next_pktnržs€à—{‘{ Q‘¨#Ñ-ˆ r$r'r(Úpktcó—    |j|«y#tjtf$r}t    d¬«|‚d}~wt
$r}t d|t|«f¬«|‚d}~wt$r}t d¬«|‚d}~wwxYw)z!Write packet to the comm channel.éÐ ©rNé©rÚvaluesiÖ)    Úsendallr8ÚtimeoutÚ TimeoutErrorrÚIOErrorrr#ÚAttributeError)r.r'r(rJrs     r"Ú    _send_pktzNetworkBrokerPlain._send_pkt¢sy€ð        8Ø L‰L˜Õ øÜ—‘¤ Ð-ò    9Ü#¨$Ô/°SÐ 8ûÜò    Ü"Ø G¬[¸Ó-=Ð#>ôàð ûôò    8Ü"¨Ô.°CÐ 7ûð    8ús*‚”A=­ :º A=ÁAÁ A=Á+ A8Á8A=Úsizecó —t|«}t|«}|r5|j||«}|dk(r|dkDr td¬«‚||d}||z}|rŒ5|S)z(Read `size` bytes from the comm channel.riÝrMN)r;Ú
memoryviewÚ    recv_intor)r.r'rWrJÚpkt_viewÚreads      r"Ú _recv_chunkzNetworkBrokerPlain._recv_chunk¯s_€ä˜‹oˆÜ˜c“?ˆÙØ—>‘> (¨DÓ1ˆDؐqŠy˜T AšXÜ$¨4Ô0Ð0Ø  ˆHØ D‰LˆDò ð ˆ
r$r)r*r+c
ó —|€|j«n||_t|«tk\rd}t    t|«tz«D]\}|j ||dt jd|j«z|||tzz«|j«|tz }Œ^||d}|j ||t jdt|««ddt jd|j«z|z«y)z¤Send payload to the MySQL server.
 
        If provided a payload whose length is greater than `MAX_PAYLOAD_LENGTH`, it is
        broken down into packets.
        Nróÿÿÿú<Bú<Ié)rIrCÚlenÚMAX_PAYLOAD_LENGTHÚrangerVÚstructÚpack)r.r'r(r)r*r+ÚoffsetÚ_s        r"r/zNetworkBrokerPlain.send»s€ð Ð  Ø ×  Ñ  Õ "à'ˆDŒKô ˆw‹<Ô-Ò -؈FÜœ3˜w›<Ô+=Ñ=Ó>ò
-à—‘ØØØ#Ü—k‘k $¨¯ © Ó4ñ5à˜f vÔ0BÑ'BÐCñDôð×$Ñ$Ô&ØÔ,Ñ,‘ð
-ð˜f˜gÐ&ˆGØ ‰Ø Ø Ü K‰K˜œc '›lÓ +¨A¨aÐ 0܏k‰k˜$ § ¡ Ó,ñ -àñ õ    
r$cón—    |j|t¬«}tjd|dddz«d|dc}|_||j||¬«zS#t
j tf$r}td|j¬«|‚d}~wt$r}td    |t|«f¬
«|‚d}~wwxYw) z+Receive `one` packet from the MySQL server.©rWrarrbórL)rÚmsgNrNrO) r]ÚPACKET_HEADER_LENGTHrfÚunpackrCr8rRrSrr!rTrr#)r.r'r(ÚheaderÚ payload_lenrs      r"r2zNetworkBrokerPlain.recvçsÁ€ð    à×%Ñ% dÔ1EÐ%ÓFˆFô— ‘ ˜d F¨1¨Q K°'Ñ$9Ó:¸1Ñ=ؐq‘    ð %ˆK˜œð ˜D×,Ñ,¨T¸ Ð,ÓDÑDÐ DøÜ—‘¤ Ð-ò    JÜ"¨°3·<±<Ô@ÀcÐ IûÜò    Ü"Ø G¬[¸Ó-=Ð#>ôàð ûð    ús$‚AAÁB4Á2B
B4ÂB/Â/B4©rN)rr3)r4r5r6r7rErIr8r r9rVr:r;r]r    r/r2r-r$r"r=r=˜sĄÙ6óó.ð 8˜fŸm™mð 8°cð 8Àð 8È$ó 8ñ
 § ¡ ð
°Sð
Àó
ð"(,Ø26ñ *
àm‰mð*
ðð*
ðð    *
ð
  ‘}ð *
ð #+¨3¡-ð *
ð
ó*
ðX˜Ÿ™ð°ð¸ôr$r=c ó&‡—eZdZdZdˆfd„ Zedededeefd„«Z    dd„Z
d    e jd
e d eddfˆfd „ Z         dd    e jd
e ded eedeeddf ˆfd„ Zd    e jdededdfˆfd„ Zd    e jd
e defˆfd„ ZˆxZS)ÚNetworkBrokerCompressedr>rNcóN•—t‰|«d|_t«|_yr@)ÚsuperrEÚ_compressed_pktnrrÚ _queue_read)r.Ú    __class__s €r"rEz NetworkBrokerCompressed.__init__s ø€Ü ‰ÑÔØ!#ˆÔÜ-2«WˆÕr$r)Úpktnrcóž—g}t|«tk\rmd}tt|«tz«D]H}|jdt    j
d|«z|||tzz«|dzdz}|tz }ŒJ||d}|jt    j
dt|««ddt    j
d|«z|z«|S)    z2Prepare a payload for sending to the MySQL server.rr_r`rrHNrarb)rcrdreÚappendrfrg)r)rzÚpktsrhris     r"Ú_prepare_packetsz(NetworkBrokerCompressed._prepare_packetss݀ðˆô ˆw‹<Ô-Ò -؈FÜœ3˜w›<Ô+=Ñ=Ó>ò -à— ‘ Ø#Ü—k‘k $¨Ó.ñ/à˜f vÔ0BÑ'BÐCñDôð
 ™ cÑ)ØÔ,Ñ,‘ð -ð˜f˜gÐ&ˆGØ  ‰ Ü K‰K˜œc '›lÓ +¨A¨aÐ 0´6·;±;¸tÀUÓ3KÑ KÈgÑ Uô    
ðˆ r$có2—|jdzdz|_yrG)rwrDs r"Ú_set_next_compressed_pktnrz2NetworkBrokerCompressed._set_next_compressed_pktnrs€à"&×"8Ñ"8¸1Ñ"<ÀÑ!CˆÕr$r'r(rJcó"•—tj|«}tjdt    |««ddtjd|j
«ztjdt    |««ddz|z}t ‰||||«S)z1Compress packet and write it to the comm channel.rarrbr`)ÚzlibÚcompressrfrgrcrwrvrV)r.r'r(rJÚcompressed_pktrys     €r"rVz!NetworkBrokerCompressed._send_pkt#s‡ø€äŸ™ sÓ+ˆä K‰K˜œc .Ó1Ó 2°1°QÐ 7܏k‰k˜$ × 6Ñ 6Ó7ñ 8äk‰k˜$¤ C£Ó)¨!¨AÐ.ñ /ðñ ð     ô ‰wÑ   w°Ó4Ð4r$r*r+c
ó•—|€|j«n||_|€|j«n||_t    d«j |j ||j««}t|«ttz
k\rod}tt|«tz«D]8}|j|||||tz«|j«|tz }Œ:|j||||d«yt|«tkDr|j|||«yt‰    |-||tjdt|««ddtjd|j«ztjdd«ddz|z«y)z¼Send `payload` as compressed packets to the MySQL server.
 
        If provided a payload whose length is greater than `MAX_PAYLOAD_LENGTH`, it is
        broken down into packets.
        Nr$rrarbr`)rIrCr€rwr;Újoinr~rcrdrnrerVÚMIN_COMPRESS_LENGTHrvrfrg)
r.r'r(r)r*r+Ú payload_preprhrirys
         €r"r/zNetworkBrokerCompressed.send.svø€ð Ð  Ø ×  Ñ  Õ "à'ˆDŒKØ #Ð +Ø × +Ñ +Õ -à%=ˆDÔ "ä  “~×*Ñ*¨4×+@Ñ+@ÀÈ$Ï+É+Ó+VÓWˆ Ü ˆw‹<Ô-Ô0DÑDÒ DðˆFôœ3˜|Ó,Ô0BÑBÓCò -Ø—‘ؘ' <°¸ÔBTÑ9TÐ#Uôð×/Ñ/Ô1ØÔ,Ñ,‘ð  -ð N‰N˜4 ¨,°v°wÐ*?Õ @ô 7‹|Ô1Ò1à—‘˜t W¨lÕ;ô‘Ñ!ØØÜ—K‘K ¤c¨,Ó&7Ó8¸¸1Ð=Ü—k‘k $¨×(>Ñ(>Ó?ñ@ä—k‘k $¨Ó*¨1¨QÐ/ñ0ð#ñ#õr$Úcompressed_pllÚuncompressed_pllc󾕗t‰    |||¬«}|dk(r|nttj|««}d}|t |«krt jd|||tzdz
dz«d}t|zt |«|z
kDrt‰    ||t¬«}t jd|dddz«d|dt jd|dddz«d    c}|_
}t‰    |||¬«}||dk(r|ntj|«z }|jj|||tz|z«|t|zz }|t |«krŒy    y    )
z&Handle reading of a compressed packet.rkrrarrlrbrrN) rvr]r;r‚Ú
decompressrcrfrornÚCOMPRESSED_PACKET_HEADER_LENGTHrwrxr|)
r.r'r‰rŠr„rJrhÚpllrprys
         €r"Ú_recv_compressed_pktz,NetworkBrokerCompressed._recv_compressed_pktksø€ô™Ñ,¨T¸Ð,ÓGˆð  1Ò$ñ äœ4Ÿ?™?¨>Ó:Ó;ð     ð ˆØ”s˜3“xÓä—-‘-ؐc˜& 6Ô,@Ñ#@À1Ñ#DÐEÈÑOóàñˆCô$ cÑ)¬C°«H°vÑ,=Ò=ô™Ñ,¨TÔ8WÐ,ÓXô—M‘M $¨¨q°¨ °gÑ(=Ó>¸qÑAؘ1‘IÜ—M‘M $¨¨q°¨ °gÑ(=Ó>¸qÑAðð    Ø"ØÔ*Ø$ô "'¡Ñ!4°TÀÐ!4Ó!Oðà'¨1Ò,ñ#䟙¨Ó8ñð × Ñ × #Ñ # C¨°Ô:NÑ1NÐQTÑ1TÐ$UÔ VØ Ô*¨SÑ0Ñ 0ˆFð?”s˜3“xÖr$có•—|jss    t‰|    |t¬«}t    j
d|dddz«d|dt    j
d|dddz«d    c}|_}|j|||«|jsy
|jj«}|d|_|S#tjtf$r}td¬    «|‚d
}~wt$r}td |t|«f¬ «|‚d
}~wwxYw) z{Receive `one` or `several` packets from the MySQL server, enqueue them, and
        return the packet at the head.
        rkrarrbrlrrrLrMNrNrO)rxrvr]rrfrorwrr8rRrSrrTrr#ÚpopleftrC)    r.r'r(rpr‰rŠrrJrys            €r"r2zNetworkBrokerCompressed.recv›sø€ð×Òð ä™Ñ,¨TÔ8WÐ,ÓXô—M‘M $¨¨q°¨ °gÑ(=Ó>¸qÑAؘ1‘IÜ—M‘M $¨¨q°¨ °gÑ(=Ó>¸qÑAðð    Ø"ØÔ*Ø$ð ×)Ñ)¨$°Ð@PÔQð×ÒØà×Ñ×&Ñ&Ó(ˆØ˜!‘fˆŒ àˆ
øô—N‘N¤LÐ1ò <Ü&¨TÔ2¸Ð;ûÜò Ü&ب´¸SÓ1AÐ'Bôàðûð ús$A2B4Â4Dà Cà DÃ&C?Ã?Drrr3)r4r5r6r7rEÚ staticmethodr9r:rr~r€r8r rVr    r/rr;r2Ú __classcell__©rys@r"rtrtýsø„Ù6õ5ð
ð %ð°ð¸¸U¹ òóðó2Dð    5˜fŸm™mð    5°cð    5Àð    5È$õ    5ð (,Ø26ñ ;àm‰mð;ðð;ðð    ;ð
  ‘}ð ;ð #+¨3¡-ð ;ð
õ;ðz.1Ø—M‘Mð.1Ø36ð.1ØJMð.1à     õ.1ð`!˜Ÿ™ð!°ð!¸÷!ñ!r$rtcóP—eZdZdZdd„Zdd„Zdd„Zdd„Zdd„Zd    e    e
ddfd
„Z d e d e ddfd „Z                            d de    e de    e de    e de    ede    ede    ee de    ee de fd„Z            d!dede    e
de    e
de    e
ddf
d„Zd"de    e
defd„Zedd„«Zeede fd„««Zy)#Ú MySQLSocketzMySQL socket communication interface.
 
    Examples:
        Subclasses: network.MySQLTCPSocket and network.MySQLUnixSocket.
    rNcóL—d|_d|_d|_t«|_y)zsNetwork layer where transactions are made with plain (uncompressed) packets
        is enabled by default.
        N)r'Ú_connection_timeoutÚ server_hostr=Ú
_netbrokerrDs r"rEzMySQLSocket.__init__Æs%€ð
.2ˆŒ    Ø26ˆÔ Ø*.ˆÔÜ);Ó)=ˆr$có"—t«|_y)zIEnable network layer where transactions are made with compressed packets.N)rtršrDs r"Úswitch_to_compressed_modez%MySQLSocket.switch_to_compressed_modeÐs €ä1Ó3ˆr$c󶗠   |jjtj«|jj    «y#t
t f$rYywxYw)z'Shut down the socket before closing it.N)r'Úshutdownr8Ú    SHUT_RDWRÚcloserUÚOSErrorrDs r"ržzMySQLSocket.shutdownÔsD€ð    Ø I‰I× Ñ œv×/Ñ/Ô 0Ø I‰IO‰OÕ øÜ¤Ð(ò    Ù ð    ús‚AAÁAÁAcód—    |jj«y#ttf$rYywxYw)zClose the socket.N)r'r rUr¡rDs r"Úclose_connectionzMySQLSocket.close_connectionÜs,€ð    Ø I‰IO‰OÕ øÜ¤Ð(ò    Ù ð    ús ‚/®/có$—|j«y©N)ržrDs r"Ú__del__zMySQLSocket.__del__ãs €Ø  ‰ r$rRcób—||_|jr|jj|«yy)zSet the connection timeout.N)r˜r'Ú
settimeout)r.rRs  r"Úset_connection_timeoutz"MySQLSocket.set_connection_timeoutæs(€à#*ˆÔ Ø 9Š9Ø I‰I×  Ñ   Õ )ð r$Ú ssl_contextÚhostcó —|j€J‚|jjdk(r td«‚t€ t    d«‚    |j |j|¬«|_y#t $r}t    d«|‚d}~wtjtf$r(}td|jt|«f¬«|‚d}~wtj$r}tt|««|‚d}~wt$r}tt|««|‚d}~wwxYw)aUpgrade an existing connection to TLS.
 
        Args:
            ssl_context (ssl.SSLContext): The SSL Context to be used.
            host (str): Server host name.
 
        Returns:
            None.
 
        Raises:
            ProgrammingError: If the transport does not expose the socket instance.
            NotSupportedError: If Python installation has no SSL support.
        Nrz,SSL is not supported when using Unix socketsú&Python installation has no SSL support)Úserver_hostnamerNrO)r'ÚfamilyrÚsslrÚ wrap_socketÚ    NameErrorÚSSLErrorrTrr(r#ÚCertificateErrorr ÚNotImplementedError)r.rªr«rs    r"Ú switch_to_sslzMySQLSocket.switch_to_sslìsô€ðy‰yÐ$Ð$Ð$à 9‰9× Ñ ˜qÒ  Ü"Ð#QÓRÐ Rä ˆ;Ü#Ð$LÓMÐ Mð     4Ø#×/Ñ/°·    ±    È4Ð/ÓPˆDIøÜò    WÜ#Ð$LÓMÐSVÐ VûÜ— ‘ œgÐ&ò    Ü Ø D§L¡L´+¸cÓ2BÐ#Côàð ûô×#Ñ#ò    4Ü ¤ S£Ó*°Ð 3ûÜ"ò    4Ü ¤ S£Ó*°Ð 3ûð    4ús<Á"A(Á(    D Á1 A=Á=D Â#B<Â<D ÃC'Ã' D Ã3DÄD Ússl_caÚssl_certÚssl_keyÚssl_verify_certÚssl_verify_identityÚ tls_versionsÚtls_cipher_suitescóÖ—d}|js td¬«‚t€ td«‚|€g}|€g}    |r°|j    d¬«|d}t
|}    tj |    «}
|dk(rŠd    |vr#|
xjtjzc_d
|vr#|
xjtjzc_d |vr8|
xjtjzc_ntj«}
||
_ |rtj|
_n-|rtj|
_ntj |
_|
j#«|r    |
j%|«|r    |
j+||«|r%|d    k(r |
j-dj/|««|
S#t&tj(f$r} td | ›«| ‚d} ~ wwxYw#t&tj(f$r} td | ›«| ‚d} ~ wwxYw#t0$r} td«| ‚d} ~ wt&t2tj4tj(f$r} tt7| ««| ‚d} ~ wwxYw)aÊBuild a SSLContext.
 
        Args:
            ssl_ca: Certificate authority, opptional.
            ssl_cert: SSL certificate, optional.
            ssl_key: Private key, optional.
            ssl_verify_cert: Verify the SSL certificate if `True`.
            ssl_verify_identity: Verify host identity if `True`.
            tls_versions: TLS protocol versions, optional.
            tls_cipher_suites: Set of steps that helps to establish a secure connection.
 
        Returns:
            ssl_context (ssl.SSLContext): An SSL Context ready be used.
 
        Raises:
            NotSupportedError: Python installation has no SSL support.
            InterfaceError: Socket undefined or invalid ssl data.
        NirMr­T)Úreverserrrr r zInvalid CA Certificate: zInvalid Certificate/Key: ú:)r'rr°rÚsortÚ TLS_VERSIONSÚ
SSLContextÚoptionsÚ OP_NO_TLSv1_2Ú OP_NO_TLSv1_1Ú OP_NO_TLSv1Úcreate_default_contextÚcheck_hostnameÚ CERT_REQUIREDÚ verify_modeÚ CERT_OPTIONALÚ    CERT_NONEÚload_default_certsÚload_verify_locationsrTr³Úload_cert_chainÚ set_ciphersr†r²rµr´r ) r.r·r¸r¹rºr»r¼r½Ú tls_versionÚ ssl_protocolÚcontextrs             r"Úbuild_ssl_contextzMySQLSocket.build_ssl_contexts>€ð8&*ˆ àyŠyÜ  tÔ,Ð ,ä ˆ;Ü#Ð$LÓMÐ Mà Р؈Là Ð $Ø "Ð ð6    4ÙØ×!Ñ!¨$Ð!Ô/Ø*¨1™o Ü+¨KÑ8 ÜŸ.™.¨Ó6à )Ò+Ø ¨ Ñ4ØŸš¬3×+<Ñ+<Ñ<Ø ¨ Ñ4ØŸš¬3×+<Ñ+<Ñ<Ø lÑ2ØŸš¬3¯?©?Ñ:žô×4Ñ4Ó6à%8ˆGÔ "áÜ&)×&7Ñ&7Õ#Ù$Ü&)×&7Ñ&7Õ#ä&)§m¡mÔ#à × &Ñ &Ô (áðTØ×1Ñ1°&Ô9ñðUØ×+Ñ+¨H°gÔ>ñ ! [°IÒ%=Ø×#Ñ# C§H¡HÐ->Ó$?Ô@àˆNøô ¤§¡Ð.òTÜ(Ð+CÀCÀ5Ð)IÓJÐPSÐSûðTûô
 ¤§¡Ð.òUÜ(Ð+DÀSÀEÐ)JÓKÐQTÐTûðUûôò    WÜ#Ð$LÓMÐSVÐ Vûä Ü Ü ×  Ñ  Ü L‰Lð    
ò    4ô !¤ S£Ó*°Ð 3ûð     4úslµD$H    ÅF)Å+H    Å.GÆ(H    Æ)GÇGÇGÇH    ÇHÇ2HÈHÈH    È        I(È HÈ0I(ÉI#É#I(r)r*r+Ú write_timeoutcó—    |js4|j(|jj|r t|«nd«|j
j |j|j|||¬«y#t$r
}Yd}~ŒCd}~wwxYw)atSend `payload` to the MySQL server.
 
        NOTE: if `payload` is an instance of `bytearray`, then `payload` might be
        changed by this method - `bytearray` is similar to passing a variable by
        reference.
 
        If you're sure you won't read `payload` after invoking `send()`,
        then you can use `bytearray.` Otherwise, you must use `bytes`.
        N)r*r+)r˜r'r¨Úfloatr¡ršr/r()r.r)r*r+rÖris      r"r/zMySQLSocket.sendrsz€ð     à×,Ò,°·±Ð1Fà—    ‘    ×$Ñ$¹]¤U¨=Ô%9ÐPTÔUð     ‰×ÑØ I‰IØ L‰LØ Ø'Ø%=ð     õ    
øôò    ä ûð    ús‚AA7Á7    B
ÂB
Ú read_timeoutcó—    |js4|j(|jj|r t|«nd«|j
j |j|j«S#t$r
}Yd}~Œ>d}~wwxYw)z.Get packet from the MySQL server comm channel.N)r˜r'r¨rØr¡ršr2r()r.rÙris   r"r2zMySQLSocket.recv’sj€ð    à×,Ò,°·±Ð1Fà—    ‘    ×$Ñ$¹L¤U¨<Ô%8ÈdÔSð‰×#Ñ# D§I¡I¨t¯|©|Ó<Ð<øôò    ä ûð    ús‚AA2Á2    BÂBcó—y)zOpen the socket.Nr-rDs r"Úopen_connectionzMySQLSocket.open_connectionžr0r$có—y)zGet the location of the socket.Nr-rDs r"r(zMySQLSocket.address¢r0r$rr)NNNFFNN)NNNr¥)r4r5r6r7rErœržr£r¦r    r:r©rr r¶ÚboolrrÕr9r/r;r2rrÜÚpropertyr(r-r$r"r–r–¿s‡„ñó >ó4óóóð*¨h°s©mð*Àó*ð "4¨ð"4°Cð"4¸Dó"4ðL!%Ø"&Ø!%Ø*/Ø.3Ø,0Ø15ñ`4à˜‘ ð`4ð˜3‘-ð`4ð˜#‘ð    `4ð
" $™ð `4ð & d™^ð `4ð˜t C™yÑ)ð`4ð$ D¨¡IÑ.ð`4ð
ó`4ðJ(,Ø26Ø'+ñ 
àð
ð  ‘}ð
ð#+¨3¡-ð    
ð
  ‘}ð 
ð
ó 
ñ@
= ¨#¡ð
=¸)ó
=ðòóððØð.˜ò.óóñ.r$r–có`‡—eZdZdZd deddfˆfd„ Zedefd„«Zd d„Zde    d    e    ddfd
„Z
ˆxZ S) ÚMySQLUnixSocketzpMySQL socket class using UNIX sockets.
 
    Opens a connection through the UNIX socket of the MySQL Server.
    Ú unix_socketrNcó>•—t‰|«||_||_yr¥)rvrErâÚ_address)r.rârys  €r"rEzMySQLUnixSocket.__init__®sø€Ü ‰ÑÔØ +ˆÔØ(ˆ r$có—|jSr¥©rärDs r"r(zMySQLUnixSocket.address³ó €à}‰}Ðr$có0—    tjtjtj«|_|jj    |j
«|jj |j«y#tjtf$r(}td|jt|«f¬«|‚d}~wt$r(}td|jt|«f¬«|‚d}~wt$r}tt!|««|‚d}~wwxYw)NiÒrO)r8ÚAF_UNIXÚ SOCK_STREAMr'r¨r˜ÚconnectrârRrSrr(r#rTrÚ    Exceptionr )r.rs  r"rÜzMySQLUnixSocket.open_connection·så€ð    4ÜŸ ™ ä—‘Ü×"Ñ"óˆDŒIð
I‰I×  Ñ   ×!9Ñ!9Ô :Ø I‰I× Ñ ˜d×.Ñ.Õ /øÜ—‘¤ Ð-ò    Ü(Øà—L‘LÜ Ó$ðôð ð  ûôò    Ü Ø D§L¡L´+¸cÓ2BÐ#Côàð ûôò    4Ü ¤ S£Ó*°Ð 3ûð    4ús0‚BBÂDÂ#Cà Dà #C/Ã/ DÃ;DÄDÚargsÚkwargscó8—tjdt«y)zSwitch the socket to use SSL.z2SSL is disabled when using unix socket connectionsN)ÚwarningsÚwarnÚWarning)r.rírîs   r"r¶zMySQLUnixSocket.switch_to_sslÏs€ô     ‰ Ø @Ü õ    
r$)z/tmp/mysql.sockrr) r4r5r6r7r rErßr(rÜrr¶r“r”s@r"rárá¨sXø„ññ
) Cð)Àõ)ð
ð˜òóðó4ð0
Øð
Ø$'ð
à     ÷
r$rác    óZ‡—eZdZdZ            d
dedededdfˆfd„ Zedefd„«Z    d d    „Z
ˆxZ S) ÚMySQLTCPSocketzYMySQL socket class using TCP/IP.
 
    Opens a TCP/IP connection to the MySQL Server.
    r«ÚportÚ
force_ipv6rNcór•—t‰|«||_||_||_d|_|›d|›|_y)NrrÀ)rvrEr™Ú server_portröÚ_familyrä)r.r«rõrörys    €r"rEzMySQLTCPSocket.__init__ßs@ø€ô     ‰ÑÔØ $ˆÔØ $ˆÔØ *ˆŒØˆŒ Ø $˜v Q t fÐ-ˆ r$có—|jSr¥rærDs r"r(zMySQLTCPSocket.addressìrçr$c    óJ—d}    tj|j|jdtjtj
«}|D]B}|j r|dtjk(r|}n|dtjk(sŒ@|}n|j r|d€td|j›«‚|d€|d}|\|_ }}}}    tj|j||«|_ |jj|j«|jj!|«y#t$r3}td|j|jt|«f¬«|‚d}~wwxYw#tj"t$f$r3}t'd|j|jt|«f¬«|‚d}~wt$r3}td|j|jt|«f¬«|‚d}~wt($r}tt+|««|‚d}~wwxYw)z/Open the TCP/IP connection to the MySQL server.)NNNNNrNzNo IPv6 address found for iÓrO)r8Ú getaddrinfor™rørêÚSOL_TCPröÚAF_INET6ÚAF_INETrrTr#rùr'r¨r˜rërRrSrrìr )    r.ÚaddrinfoÚ    addrinfosÚinforÚsocktypeÚprotoriÚsockaddrs             r"rÜzMySQLTCPSocket.open_connectionðs€ð +ð     ð    Ü×*Ñ*Ø× Ñ Ø× Ñ ØÜ×"Ñ"Ü—‘ó ˆIð"ò Ø—?’? t¨A¡w´&·/±/Ò'AØ#HÙØ˜‘7œfŸn™nÓ,Ø#HÙð  ðŠ 8¨A¡;Ð#6Ü$Ð'AÀ$×BRÑBRÐASÐ%TÓUÐUؘ‰{Ð"Ø$ Q™<ð8@Ñ4ˆŒx ¨¨8ð    4ÜŸ ™  d§l¡l°H¸eÓDˆDŒIØ I‰I×  Ñ   ×!9Ñ!9Ô :Ø I‰I× Ñ ˜hÕ 'øôò    Ü ØØ×(Ñ(¨$×*:Ñ*:¼KÈÓ<LÐMôðð ûð    ûô—‘¤ Ð-ò    Ü(Øà×$Ñ$Ø×$Ñ$Ü Ó$ðôðð ûôò    Ü ØØ×(Ñ(¨$×*:Ñ*:¼KÈÓ<LÐMôðð ûôò    4Ü ¤ S£Ó*°Ð 3ûð    4úsO„B
D<Â8D<ÃA&E;Ä<    E8Å.E3Å3E8Å;H"Æ.GÇ H"Ç.G<Ç< H"ÈHÈH")z    127.0.0.1iê Frr) r4r5r6r7r r:rÞrErßr(rÜr“r”s@r"rôrôÙs^ø„ñð ØØ ñ     .àð .ðð .ðð     .ð
 
õ .ðð˜òóð÷;4r$rô)0r7r8rfrðr‚ÚabcrrÚ collectionsrÚtypingrrrr    r
r r°ÚPROTOCOL_TLSv1ÚPROTOCOL_TLSv1_1ÚPROTOCOL_TLSv1_2Ú PROTOCOL_TLSrÂÚhasattrrÚTLS_V1_3_SUPPORTEDÚ ImportErrorÚerrorsrrrrrrrr‡rdrnrrTr r#r&r=rtr–rárôr-r$r"ú<module>rs&ðñ:MóÛ ÛÛ ç#Ýß;×;ð Ûð×#Ñ#Ø×'Ñ'Ø×'Ñ'Ø×#Ñ#ñ    €Lñ !  mÓ4ÒH¸¿¹Ð÷ ÷ñðÐØÐØÐØ"#ÐðOWðO óOôD CôD ôNb˜ôbôJÐ0ôôDf.#ôf.ôR.
kô.
ôbR4[õR4øðKòàÐØ
‚Cðús²A
C!Ã!    C-Ã,C-