zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
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
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
U
­ý°d ã@s^
dZddlmZmZmZmZddlmZddlmZ    ddl
m Z ddl Z ddlZddlZddlmZddlmZddlZdd    lmZmZmZmZmZmZddlmZdd
lm Z dd l!m"Z"dd l#m$Z$ej% &d ¡Z'ej% &d¡Z(e'dd„ƒZ)e'dd„ƒZ*e'dd„ƒZ+e'ej% ,dddg¡dd„ƒƒZ-ej% ,de.e/eeg¡ej% ,dddg¡dd„ƒƒZ0e'ej% ,dddg¡d d!„ƒƒZ1d"d#„Z2e'd$d%„ƒZ3e'd&d'„ƒZ4e'd(d)„ƒZ5ej% ,d*d+ddggd,fd-d.ddgid/fg¡d0d1„ƒZ6d2d3„Z7e'd4d5„ƒZ8e'd6d7„ƒZ9e'd8d9„ƒZ:e'd:d;„ƒZ;ej%j<d<d=ej% ,d>d?d@ggddggg¡dAdB„ƒƒZ=e'ej% ,d>ddgdCdDgg¡dEdF„ƒƒZ>e'ej% ,dGddgddgg¡dHdI„ƒƒZ?e'ej% ,dJdKdidLdig¡dMdN„ƒƒZ@dOdP„ZAe'ej% ,dQdRddgidRfdRddgidfddggdfg¡dSdT„ƒƒZBe'dUdV„ƒZCe'dWdX„ƒZDe'dYdZ„ƒZEej% ,dJidGd[ig¡d\d]„ƒZFej% ,d>d^e  Gd_d`g¡ddahg¡dbdc„ƒZHej% ,ddddg¡ej% ,dedfdgg¡dhdi„ƒƒZIej% ,ddddg¡ej% ,dedjg¡dkdl„ƒƒZJe'dmdn„ƒZKej% ,dodpdqg¡drds„ƒZLej% ,dodpdqg¡dtdu„ƒZMe'ej% ,dvdwd>dCgieedxd_dyƒgdCgdzfdwddd{œeed|gdCd}gd~fdd>dCd€gieedxd_dyƒedd‚dƒƒggdCd€gdzfddddgd{œeejNedxd_dyƒedd‚dƒƒfgdCd€gd„gd~fg¡d…d†„ƒƒZOe'd‡dˆ„ƒZPe'ej% ,dvd‰ddŠddgid‹œeedŒdd`dddƒdŽdgedŒdd`dddƒddggdŠdCd€gdzfd‘dddgddagd’œd‹œeed“dd”d•dƒed“dd”d–d—ƒd˜d™ged“dd”dšdƒed“dd”d•d—ƒd˜d›ged“dd”dœdƒed“dd”dšd—ƒd˜dged“dd”dœdƒed“dd”dœd–ƒd˜džged“dd”dŸdƒed“dd”dœd—ƒd˜dged“dd”d dƒed“dd”dŸd—ƒd˜dggd¡dRdd_gdzfg¡d¢d£„ƒƒZQe'ej% Rd¤¡d¥d¦„ƒƒZSe'ej% ,d§d¨d©dª„eTfd«g¡d¬d­„ƒƒZUe'ej% ,d§d¨d®dª„eTfd¯g¡d°d±„ƒƒZVe'd²d³„ƒZWe'd´dµ„ƒZXd¶d·„ZYej% ,d¸d¹edCdºd»gid¼d½fd¾edCd¿dÀdÁgid¼d½fg¡ej% ,d>ddg¡dÂdăƒZZdÄdńZ[e(ej% ,dÆdÇdÈdÉdÊdËdÌg¡dÍd΄ƒƒZ\e(ej% ,dÏdÐdedÑdd҃fdÓdedÑdd҃fdÔdedÑdd_ƒfg¡dÕdքƒƒZ]e(ej% ,dÏdÐdedÑdd҃fdÓdedÑdd҃fg¡d×d؄ƒƒZ^dÙdڄZ_dÛd܄Z`e(e e ƒej% ,dÝe.dރ¡ej% ,dKddg¡ej% ,dßdàdádâdãdädådæg¡dçd脃ƒƒƒƒZae(ej% ,déddêgd?d@gdëfddêgdd@gd@fddêgd?d@ggdëfddêgdd@ggd@fddêgd?dd@gid@fddêgd?d?d@gidëfddêgd?d@gd?gdëfdìdídîgdd?d@gdëfdìdídîgdìdîgdìd@gd@fg    ¡dïdð„ƒƒZbe(dñdò„ƒZce(dódô„ƒZde(ej% ,dõdöd÷ggdøfdùdöd÷gidùfg¡dúdû„ƒƒZee(düdý„ƒZfe(dþdÿ„ƒZgdd„Zhej% ,dejiddddejiddddg¡dd    „ƒZje(d
d „ƒZke(ej% ,d§d¨d dª„eTfd g¡dd„ƒƒZle(dd„ƒZmdd„Zndd„Zoe(ej% ,ddddggfddddgifg¡dd„ƒƒZpe(dd„ƒZqdS(zO
Tests date parsing functionality for all of the
parsers defined in parsers.py
é)ÚdateÚdatetimeÚ    timedeltaÚtimezone)ÚStringIO)Úparse)ÚgivenN)Úparsing)Úpy_parse_datetime_string)Ú    DataFrameÚ DatetimeIndexÚIndexÚ
MultiIndexÚSeriesÚ    Timestamp)ÚDATETIME_NO_TZ)Ú
date_range)Úread_csvZ pyarrow_xfailZ pyarrow_skipc    Csdd„}tdƒ}|jtd|dd|dd}dd    d
d d g}tjd d„|Dƒdd}tdddddgdddddgdddddgdœ|d}t ||¡dS)NcSs&| tj¡}| tj¡}tj|ddS©NÚs©Úunit©ÚastypeÚnpZfloat_Úint_ÚpdÚ to_timedelta©Útime©r ú^d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/io/parser/test_parse_dates.pyÚ__custom_date_parser0s  zCtest_read_csv_with_custom_date_parser.<locals>.__custom_date_parsera time e n h
        41047.00 -98573.7297 871458.0640 389.0089
        41048.00 -98573.7299 871458.0640 389.0089
        41049.00 -98573.7300 871458.0642 389.0088
        41050.00 -98573.7299 871458.0643 389.0088
        41051.00 -98573.7302 871458.0640 389.0086
        ú Please use 'date_format' insteadTr©Zdelim_whitespaceÚ parse_datesÚ date_parserÚ    index_coliW iX iY iZ i[ cSsg|]}tj|dd‘qS)rr)rr)Ú.0Úir r r!Ú
<listcomp>Hsz9test_read_csv_with_custom_date_parser.<locals>.<listcomp>©Únameg>èÙ¬ÛøÀgVŸ«­ÛøÀgáz®ÛøÀgù1æ®ÛøÀg¦›Ä D˜*Ag‰ÒÞ D˜*Agúíë D˜*AgóŽSt$Px@gGx $Px@gîëÀ9#Px@)ÚeÚnÚh©Úindex)rÚread_csv_check_warningsÚ FutureWarningrZTimedeltaIndexr ÚtmÚassert_frame_equal©Ú all_parsersr"ZtestdataÚresultrÚexpectedr r r!Ú%test_read_csv_with_custom_date_parser-s.ÿ    ù       ýú    r:c    Cshdd„}tdƒ}|jtd|dd|dd}td    d
d d d gdd}tddddddgi|d}t ||¡dS)NcSs&| tj¡}| tj¡}tj|ddSrrrr r r!r"Xs  zUtest_read_csv_with_custom_date_parser_parse_dates_false.<locals>.__custom_date_parserz‡time e
        41047.00 -93.77
        41048.00 -95.79
        41049.00 -98.73
        41050.00 -93.99
        41051.00 -97.72
        r#TFrr$gà
ä@g ä@g  ä@g@ ä@g` ä@r+r-gáz®GqWÀgÃõ(\òWÀg…ëQ¸®XÀgÂõ(\WÀg®GáznXÀr0)rr2r3rr r4r5r6r r r!Ú7test_read_csv_with_custom_date_parser_parse_dates_falseUs&ÿ    ù    þr;cCs\|}d}ttddddddƒdggddgd    }|jt|ƒd
d ddd gidd }t ||¡dS)Nz06-02-2013;13:00;1-000.215éÝééé rg…ëQ¸A@ÚDate©Úcolumnsú;ú-é)ÚsepÚ    thousandsr%Úheader)r rrrr4r5)r7ÚparserÚdatar9Údfr r r!Útest_separator_date_conflictxsÿ
ûrLÚ keep_date_colTFcCsÌd}|}dd„}d|ddgddgdœ|dd    d
d d d dddg    dœ}|jtdt|ƒf|Ž}ttdddddƒtdddddƒdddddddd d!g tdddd"dƒtdddddƒddd#d$d%d&dd d'g tdddd(dƒtdddd"dƒddd)d*d+d&d,d d!g tdddd(dƒtdddd(dƒddd)d-d.d/d0d d1g tdddd2dƒtdddd(dƒddd3d4d+d5d6d d7g tdddd8dƒtdddd2dƒddd9d:d+d5d;d d!g gd<d=dd    d
d d d dddg d>}|s²|jd    d
d gdd?}||j}t ||¡dS)@NáÌKORD,19990127, 19:00:00, 18:56:00, 0.8100, 2.8100, 7.2000, 0.0000, 280.0000
KORD,19990127, 20:00:00, 19:56:00, 0.0100, 2.2100, 7.2000, 0.0000, 260.0000
KORD,19990127, 21:00:00, 20:56:00, -0.5900, 2.2100, 5.7000, 0.0000, 280.0000
KORD,19990127, 21:00:00, 21:18:00, -0.9900, 2.0100, 3.6000, 0.0000, 270.0000
KORD,19990127, 22:00:00, 21:56:00, -0.5900, 1.7100, 5.1000, 0.0000, 290.0000
KORD,19990127, 23:00:00, 22:56:00, -0.5900, 1.7100, 4.6000, 0.0000, 280.0000
cWstjt |¡tdS)zË
        Test date parser.
 
        Parameters
        ----------
        date_cols : args
            The list of data columns to parse.
 
        Returns
        -------
        parsed : Series
        )rI)r    Ztry_parse_datesÚconcat_date_colsÚdu_parse)Ú    date_colsr r r!r&›s ÿz2test_multiple_date_col_custom.<locals>.date_parserrEr>é©ÚactualÚnominalÚX0ÚX1ÚX2ÚX3ÚX4ÚX5ÚX6ÚX7ÚX8)rHr&r%rMÚnamesúuse 'date_format' insteadéÏééréé8ÚKORDÚ19990127ú     19:00:00ú     18:56:00çìQ¸…ëé?ç{®Gáz@çÍÌÌÌÌÌ@çç€q@éú     20:00:00ú     19:56:00ç{®Gáz„?ç®Gáz®@ç@p@éú     21:00:00ú     20:56:00çáz®Gáâ¿çÍÌÌÌÌÌ@ú     21:18:00ç®Gáz®ï¿ç®Gáz@çÍÌÌÌÌÌ @çàp@éú     22:00:00ú     21:56:00ç\Âõ(\û?çffffff@ç r@éú     23:00:00ú     22:56:00çffffff@rTrUrA©Zaxis)    r2r3rr rÚdroprBr4r5)r7rMrJrIr&Úkwdsr8r9r r r!Útest_multiple_date_col_customŽsÖûýüõõõõõõ¾Qõ¯`
rŒÚ    containerÚdimrEr>c    sLd}d‰t‡‡fdd„t|ƒDƒƒ}tjt|dt |¡W5QRXdS)Nz0not all elements from date_cols are numpy arraysrgc3s|]}ˆˆgƒVqdS©Nr )r(Ú_©rÚvaluer r!Ú    <genexpr>*sz,test_concat_date_col_fail.<locals>.<genexpr>©Úmatch)ÚtupleÚrangeÚpytestÚraisesÚ
ValueErrorr    rO)rrŽÚmsgrQr r‘r!Útest_concat_date_col_fail$s
rœcCs²d}|}dddgddgg|ddddd    d
d d d g    dœ}|jt|ƒf|Ž}ttdddddƒtdddddƒdddddddddg tdddddƒtdddddƒdddd d!d"ddd#g tdddd$dƒtdddddƒddd%d&d'd"d(ddg tdddd$dƒtdddd$dƒddd%d)d*d+d,dd-g tdddd.dƒtdddd$dƒddd/d0d'd1d2dd3g tdddd4dƒtdddd.dƒddd5d6d'd1d7ddg gd8d9ddddd    d
d d d g d:}|s¢|jdddgdd;}t ||¡dS)<NrNrEr>rRrVrWrXrYrZr[r\r]r^)rHr%rMr_rarbrcrrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rr€rr‚rƒr„r…r†r‡rˆZX1_X2ZX1_X3rAr‰)rrr rrŠr4r5)r7rMrJrIr‹r8r9r r r!Útest_multiple_date_col0sÄüõõõõõõ¾Qõ¯`rc Cs.d}|}ddgdddddddd    d
gd œ}|jt|ƒf|Ž}ttd dd ddƒtd dd ddƒtd dd ddƒtd dd ddƒtd dd ddƒgdd}tdddddddgdddddddgddd dd!ddgdd"d#d$d%dd&gdd'd d(d)dd*ggdddddd    d
g|d+}|jd,krt d-|d¡jj    |d<t
  ||¡dS).NazKORD,19990127 19:00:00, 18:56:00, 0.8100, 2.8100, 7.2000, 0.0000, 280.0000
KORD,19990127 20:00:00, 19:56:00, 0.0100, 2.2100, 7.2000, 0.0000, 260.0000
KORD,19990127 21:00:00, 20:56:00, -0.5900, 2.2100, 5.7000, 0.0000, 280.0000
KORD,19990127 21:00:00, 21:18:00, -0.9900, 2.0100, 3.6000, 0.0000, 270.0000
KORD,19990127 22:00:00, 21:56:00, -0.5900, 1.7100, 5.1000, 0.0000, 290.0000
rErVrWrXrYrZr[r\r])rHr%r'r_rarbrcrrorurr+rfrirjrkrlrmrnrqrrrsrtrwrxryrzr{r|r}r~rr‚rƒr„©rBr1Úpyarrowú
1970-01-01) rrr rr ÚenginerÚ to_datetimeÚdtrr4r5)r7rJrIr‹r8r1r9r r r!Útest_date_col_as_index_colªs<üûø
û÷ r¤c Cs8d}ddgddgdœ}|}d|tjdœ}|jtdt|ƒf|Ž}ttddd    d
d ƒtddd    d d ƒddgtddd    dd ƒtddd    d
d ƒddgtddd    dd ƒtddd    dd ƒddgtddd    dd ƒtddd    dd ƒddgtddd    dd ƒtddd    dd ƒddgtddd    dd ƒtddd    dd ƒddggddd dgd}||j}t     ||¡dS)NúÿKORD,19990127, 19:00:00, 18:56:00, 0.8100
KORD,19990127, 20:00:00, 19:56:00, 0.0100
KORD,19990127, 21:00:00, 20:56:00, -0.5900
KORD,19990127, 21:00:00, 21:18:00, -0.9900
KORD,19990127, 22:00:00, 21:56:00, -0.5900
KORD,19990127, 23:00:00, 22:56:00, -0.5900rEr>rRrS©rHr%r&r`rarbrcrrdrerfrjrorrrurxr{rr…rTrUérA)
rr¢r2r3rr rrBr4r5)r7rJr%rIr‹r8r9r r r!Ú test_multiple_date_cols_int_castØsVÿýÿÿ""üüüüë
ã#
r¨c    Cs~|}d}|jtdt|ƒddggdtd}ttdƒddddtjdgtdƒdd    ddtjdggd
d d d dddgd}t ||¡dS)Nz]05/31/2012,15:30:00.029,1306.25,1,E,0,,1306.25
05/31/2012,15:30:00.029,1306.25,8,E,0,,1306.25r`rrE)r%rHr&z05/31/2012, 15:30:00.029gi”@ÚEéZ0_1r>rRr§ér=érA)    r2r3rrr rÚnanr4r5©r7rIrJr8r9r r r!Ú&test_multiple_date_col_timestamp_parses>úù
ùöër¯cCs|}d}|jt|ƒdddgid}ttddddd    ƒd
d d d dddgtddddd    ƒd
ddddddgtddddd    ƒd
ddddddgtddddd    ƒd
ddddddgtddddd    ƒd
d dd!d"dd#gtdddd$d    ƒd
d%dd!d&ddggdd'd(d)d*d+d,d-gd.}t ||¡dS)/Na ID,date,NominalTime,ActualTime,TDew,TAir,Windspeed,Precip,WindDir
KORD,19990127, 19:00:00, 18:56:00, 0.8100, 2.8100, 7.2000, 0.0000, 280.0000
KORD,19990127, 20:00:00, 19:56:00, 0.0100, 2.2100, 7.2000, 0.0000, 260.0000
KORD,19990127, 21:00:00, 20:56:00, -0.5900, 2.2100, 5.7000, 0.0000, 280.0000
KORD,19990127, 21:00:00, 21:18:00, -0.9900, 2.0100, 3.6000, 0.0000, 270.0000
KORD,19990127, 22:00:00, 21:56:00, -0.5900, 1.7100, 5.1000, 0.0000, 290.0000
KORD,19990127, 23:00:00, 22:56:00, -0.5900, 1.7100, 4.6000, 0.0000, 280.0000rUrEr>©r%rarbrcrrfrirjrkrlrmrnrorqrrrsrtrurwrxryrzr{r|r}r~rrr‚rƒr„r…r‡rˆÚIDÚ
ActualTimeÚTDewÚTAirÚ    WindspeedÚPrecipÚWindDirrA)rrr rr4r5r®r r r!Ú#test_multiple_date_cols_with_header=sŒ    ø ø ø ø ø øÍ?øÁJr¸zdata,parse_dates,msgzSdate_NominalTime,date,NominalTime
KORD1,19990127, 19:00:00
KORD2,19990127, 20:00:00z0New date column already in dict date_NominalTimezCID,date,nominalTime
KORD,19990127, 19:00:00
KORD,19990127, 20:00:00r±zDate column ID already in dictc    Cs4|}tjt|d|jt|ƒ|dW5QRXdS)Nr”r°)r˜r™ršrr)r7rJr%r›rIr r r!Ú%test_multiple_date_col_name_collision—sr¹cCs†|}d}|jtdt|ƒddgdd„d}tdddd    d
d d d dd ddg gddddddddddddg ttdƒgddd }t ||¡dS)!Nz¶posix_timestamp,elapsed,sys,user,queries,query_time,rows,accountid,userid,contactid,level,silo,method
1343103150,0.062353,0,4,6,0.01690,3,12345,1,-1,3,invoice_InvoiceResource,search
r`rcSst t|ƒ¡Sr)rÚutcfromtimestampÚint©Úxr r r!Ú<lambda>Ãóz*test_date_parser_int_bug.<locals>.<lambda>)r'r%r&go»ì¯?r§r=gX¨5Í;N‘?rRi90rEéÿÿÿÿZinvoice_InvoiceResourceÚsearchÚelapsedÚsysÚuserZqueriesZ
query_timeÚrowsZ    accountidZuseridZ    contactidÚlevelZsiloÚmethodz2012-07-24 04:12:30Zposix_timestampr+rž)r2r3rr r rr4r5r®r r r!Útest_date_parser_int_bug³sTÿúôÿôá!rÈc    Cs~|}tttjdddtdƒdœƒƒ}tj|jdd…dd…f<t d¡.}|     |¡|j
|d    d
gd }t  ||¡W5QRXdS) Né
Úfloat64©ÚdtypeZ20010101)ÚAÚBrRr=z__nat_parse_.csvrrΩr'r%) r ÚdictrZarangerr­Zilocr4Z ensure_cleanZto_csvrr5)r7rIrKÚpathr8r r r!Útest_nat_parseésÿ 
rÒcCsbd}|}|jtdt|ƒdd„d}|jt|ƒdd}t ||¡|jt|ƒdd    }t ||¡dS)
Nú3A,B,C
20090101,a,1,2
20090102,b,3,4
20090103,c,4,5
r`cSs t |d¡S)Nú%Y%m%d)rÚstrptimer¼r r r!r¾r¿z(test_csv_custom_parser.<locals>.<lambda>)r&Tr°rÔ)Ú date_format)r2r3rrr4r5©r7rJrIr8r9r r r!Útest_csv_custom_parserùsü rØcCs>d}|}|jt|ƒdd}|jt|ƒddd}t ||¡dS)NrÓTr°rrÏ©rrr4r5r×r r r!Ú#test_parse_dates_implicit_first_col s
rÚcCsnd}|}|jt|ƒddgd}tttdddƒddd}tdd    d
gd dd gd d dgdœ|d}t ||¡dS)Nz8date,A,B,C
20090101,a,1,2
20090102,b,3,4
20090103,c,4,5
rrÏz1/1/2009rR)Zperiods)r,ÚfreqÚaÚbÚcrEr§r>r«)rÍrÎÚCr0)rrr Úlistrr r4r5)r7rJrIr8r1r9r r r!Útest_parse_dates_stringsÿÿráz#yearfirst is not surfaced in read_*©Úreasonr%rrc
CsŒd}|}|jtdt|ƒd|d}ttddddddƒtdd    d
dd dƒtdd dd ddƒgtdd}tdd dgd    ddgdœ|d}t ||¡dS)Nz>date,time,B,C
090131,0010,1,2
090228,1020,3,4
090331,0830,5,6
úCould not infer formatrrÏéÙrEérÉr>érorRrªéÚ    date_time©rÌr,r«r§r=©rÎrßr0)    r2Ú UserWarningrr rÚobjectr r4r5)r7r%rJrIr8r1r9r r r!Útest_yy_format_with_year_first1s&ûýù    rîrÜrÞcCsfd}|}ttdddƒgdgtdddƒgdœƒ}| ddg¡}|jt|ƒd    dg|d
d }t ||¡dS) Nza,b,c
01/01/2010,1,15/02/2010éÚrEr>é©rÜrÝrÞrÜrÝrT)r'r%Údayfirst)r rÚ    set_indexrrr4r5)r7r%rJrIr9r8r r r!Útest_parse_dates_column_listNs ÿÿrôr'c CsØd}|}tjtdddƒtdddƒtdddƒfdgddgd    }|dd
gkrT| d
d¡}td ddgd dd gdd dgd ddgd dd gdd dgd ddgd dd gdd dgg    dddg|d}|jtdt|ƒ|dd}t     ||¡dS)NzÅindex1,index2,A,B,C
20090101,one,a,1,2
20090101,two,b,3,4
20090101,three,c,4,5
20090102,one,a,1,2
20090102,two,b,3,4
20090102,three,c,4,5
20090103,one,a,1,2
20090103,two,b,3,4
20090103,three,c,4,5
rårEr>rR)ZoneZtwoZthreeZindex1Úindex2©r_rrÜrÝr§rÞr«rÍrÎrßržräTrÏ)
rZ from_productrZ    swaplevelr r2rìrr4r5)r7r'rJrIr1r9r8r r r!Útest_multi_index_parse_dates_s@  þû      ÷ óûr÷ÚkwargsròZ    day_firstc sò|}d}dˆkrž|jtdt|ƒdddg‡fdd„d    d    d
d gd     }ttd ddƒtd ddƒtd ddƒgdd}tdddgdtjdgdœ|ddgd}t     ||¡nPd}t
j t |d8|jtdt|ƒdddg‡fdd„d    gd    d
d gd    W5QRXdS)Nz:foo,bar,baz
31/01/2010,1,2
01/02/2010,1,NA
02/02/2010,1,2
ròr`rÚQÚNTUcs t|fˆŽSr©rP©Úd©rør r!r¾¢r¿z5test_parse_dates_custom_euro_format.<locals>.<lambda>rTZNA)r_r&rHr'r%Ú    na_valuesrïrErær>r+)rùrú©r1rBz.got an unexpected keyword argument 'day_first'r”cs t|fˆŽSrrûrürþr r!r¾ºr¿)r_r&Zskiprowsr'r%rÿ) r2r3rr rr rr­r4r5r˜r™Ú    TypeError)r7rørIrJrKZ    exp_indexr9r›r rþr!Ú#test_parse_dates_custom_euro_format“sJ
÷  þý
÷rcCst|}d}|jt|ƒddd}tddgittdƒgdd    d
}t ||¡|jd krZtj    }nt
j    }|j j |kspt ‚dS) NzDate,x
2012-06-13T01:39:00Z,0.5rTrÏr½gà?z2012-06-13 01:39:00+00:00r@r+r0rŸ)rrr r rr4r5r¡ÚpytzÚutcrr1ÚtzÚAssertionError)r7ÚrequestrIrJr8r9Z expected_tzr r r!Útest_parse_tz_awareÂsÿ 
rzparse_dates,index_colrUcCs|}d}ttdddddƒddd    d
d d d gtdddddƒddddd d dgtdddddƒdddddd d gtdddddƒdddddd dgtdddddƒd d!dd"d#d d$gtdddd%dƒd&d'dd"d(d d ggd)d*d+d,d-d.d/d0gd1}| d)¡}t|tƒsôd2|j_|jt|ƒ||d3}t     
||¡dS)4Na
ID,date,NominalTime,ActualTime,TDew,TAir,Windspeed,Precip,WindDir
KORD1,19990127, 19:00:00, 18:56:00, 0.8100, 2.8100, 7.2000, 0.0000, 280.0000
KORD2,19990127, 20:00:00, 19:56:00, 0.0100, 2.2100, 7.2000, 0.0000, 260.0000
KORD3,19990127, 21:00:00, 20:56:00, -0.5900, 2.2100, 5.7000, 0.0000, 280.0000
KORD4,19990127, 21:00:00, 21:18:00, -0.9900, 2.0100, 3.6000, 0.0000, 270.0000
KORD5,19990127, 22:00:00, 21:56:00, -0.5900, 1.7100, 5.1000, 0.0000, 290.0000
KORD6,19990127, 23:00:00, 22:56:00, -0.5900, 1.7100, 4.6000, 0.0000, 280.0000
rarErbrcrZKORD1rirjrkrlrmrnroZKORD2rqrrrsrtruZKORD3rwrxryZKORD4rzr{r|r}r~rZKORD5rr‚rƒr„r…ZKORD6r‡rˆrUr±r²r³r´rµr¶r·rAZdate_NominalTime©r%r') r rróÚ
isinstancerÐr1r,rrr4r5)r7r%r'rIrJr9r8r r r!Útest_multiple_date_cols_indexÓsš    ø ø ø ø ø øÍ?øÁJ
 
ÿr cCs`|}d}ttdddddƒddd    d
d d d gtdddddƒddddd d dgtdddddƒdddddd d gtdddddƒdddddd dgtdddddƒdddddd d gtdddd!dƒdd"ddd#d d ggd$d%d&d'd(d)d*d+gd,}| d$¡}|jt|ƒd$dd-gid$d-d.}t|ƒ}W5QRXt |d|dd-…¡t |d|d-d/…¡t |d-|d/d…¡dS)0NáõID,date,nominalTime,actualTime,A,B,C,D,E
KORD,19990127, 19:00:00, 18:56:00, 0.8100, 2.8100, 7.2000, 0.0000, 280.0000
KORD,19990127, 20:00:00, 19:56:00, 0.0100, 2.2100, 7.2000, 0.0000, 260.0000
KORD,19990127, 21:00:00, 20:56:00, -0.5900, 2.2100, 5.7000, 0.0000, 280.0000
KORD,19990127, 21:00:00, 21:18:00, -0.9900, 2.0100, 3.6000, 0.0000, 270.0000
KORD,19990127, 22:00:00, 21:56:00, -0.5900, 1.7100, 5.1000, 0.0000, 290.0000
KORD,19990127, 23:00:00, 22:56:00, -0.5900, 1.7100, 4.6000, 0.0000, 280.0000
rarErbrcrrfrirjrkrlrmrnrorqrrrsrtrurwrxryrzr{r|r}r~rrr‚rƒr„r…r‡rˆrUr±Z
actualTimerÍrÎrßÚDr©rAr>)r%r'Ú    chunksizer§)r rrórrràr4r5)r7rIrJr9ÚreaderÚchunksr r r!Útest_multiple_date_cols_chunked8s
ø ø ø ø ø øÍ>ÁA
 
ürcCsP|}d}|jt|ƒdddgidd}|jt|ƒddddgid}t ||¡dS)    Nr rUrEr>r    rZ nominalTimerÏrÙ)r7rIrJZ with_indicesZ
with_namesr r r!Ú)test_multiple_date_col_named_index_compat•s
 
ÿ
ýrcCs`|}d}|jt|ƒddgdddgid}|jt|ƒdddgid}| ddg¡}t ||¡dS)Nr rUr±rEr>rÏr°)rrrór4r5r®r r r!Ú,test_multiple_date_col_multiple_index_compat­s    
ÿrrßc    CsD|}d}d}tjt|d |jt|ƒfddi|—ŽW5QRXdS)NúSOnly booleans, lists, and dictionaries are accepted for the 'parse_dates' parameterúA,B,C
    1,2,2003-11-1r”r%rß©r˜r™rrr)r7rørIr›rJr r r!Ú*test_read_with_parse_dates_scalar_non_boolÂs ÿr©rEr§r«rRc    Cs<|}d}d}tjt|d|jt|ƒddW5QRXdS)Nrrr”rr°r)r7r%rIr›rJr r r!Ú'test_read_with_parse_dates_invalid_typeÑs ÿrÚ cache_datesr’r­Úc    CsP|}t|›ddƒ}|jdkr*|s*t}nd}|j|d|dddgdg|ddS©Nz,
iPÃrŸräÚfooÚbar)rHr_r%r©rr¡rìr2©r7rr’rIrÚwarnr r r!Útest_bad_date_parseßsùr"Ú0c    CsV|}t|›ddƒ}|jdkr&d}n|r0d}nt}|j|d|dddgdg|ddSrrr r r r!Ú test_bad_date_parse_with_warningüs 
ùr$cCsT|}d}|jt|ƒdgdd}ttdddƒdgtjdggddgd    }t ||¡dS)
NúDate,test
2012-01-01,1
,2r@F)r%Z    na_filteriÜrEr>ÚtestrA)rrr rrÚNaTr4r5r®r r r!Útest_parse_dates_empty_stringsÿr(rr2Zread_table_check_warningscCs,|}d}t||ƒtdt|ƒdgddddS)Nr%z2The argument 'infer_datetime_format' is deprecatedr@Tú,)r%Zinfer_datetime_formatrF)Úgetattrr3r)r7rrIrJr r r!Ú.test_parse_dates_infer_datetime_format_warning(súr+c
CsN|}d}d}tjt|d*t||ƒtdt|ƒdgtjdddW5QRXdS)    Nr%z/Cannot use both 'date_parser' and 'date_format'r”r`r@ZISO8601r))r%r&rÖrF)r˜r™rr*r3rrr¢)r7rrIrJr›r r r!Ú,test_parse_dates_date_parser_and_date_format:sùr,zdata,kwargs,expectedz a
04.15.2016iàrðrAr    z
2016-04-15r+rza,b
04.15.2016,09.16.2013rÝr<é    éröcCs.|}|jt|ƒfddi|—Ž}t ||¡dS)NrGÚ.rÙ©r7rJrør9rIr8r r r!Ú%test_parse_dates_no_convert_thousandsNs#r1cCs‚d}|}|jtdt|ƒddgdddgitjd}tdddd    ddƒd
d gtddd dddƒd dgg}t|dddgd}t ||¡dS)NzUD,T,A,B
date, time,a,b
2001-01-05, 09:00:00, 0.0, 10.
2001-01-06, 00:00:00, 1.0, 11.
r`rrErér¦éÑr«r-rmç$@r=çð?ç&@)rÍrÜ)rÎrÝrA)    r2r3rrr¢rr r4r5)r7rJrIr8Ú expected_datar9r r r!Ú,test_parse_date_time_multi_level_column_namews
ú
þr7zKdate,time,a,b
2001-01-05, 10:00:00, 0.0, 10.
2001-01-05, 00:00:00, 1., 11.
ré©rHr%r2rÉrmr4r5r¥rSrarbrcrdrerfrjrorrrurxr{rr…rTcCs>|}|jtdt|ƒfdtji|—Ž}||j}t ||¡dS)Nr`r&)r2r3rrr¢rBr4r5r0r r r!Útest_parse_date_time‘sJýüû
r9z+ignore:elementwise comparison:FutureWarningc    Csj|}d}|jtdt|ƒdddddgitjd}ttddd    ƒd
gtdddƒd ggdd gd }t ||¡dS)Nú-year,month,day,a
2001,01,10,10.
2001,02,1,11.r`rZymdrEr>r¦r2rÉr3r5rÜrA)    r2r3rrr¢r rr4r5r®r r r!Útest_parse_date_fieldsës ú    þr;)Úkeyr’r!r&cCstj|ddS)Nú%Y %m %d %H %M %S©Úformat©rr¢r¼r r r!r¾r¿r¾)rÖr=Nc
CsŠ|}d}|j|dt|ƒfdddddddd    gid
œ||i—Ž}ttd dd    d ddƒd dgtd dd    d ddƒddggdddgd}t ||¡dS)NzZyear,month,day,hour,minute,second,a,b
2001,01,05,10,00,0,0.0,10.
2001,01,5,10,0,00,1.,11.
r`rÚymdHMSrEr>rRr§r«r8r2rÉrmr3r4r5rÜrÝrA©r2rr rr4r5©r7r<r’r!rIrJr8r9r r r!Útest_parse_date_all_fieldss& ýûúþûrDcCstj|ddS)Nú%Y %m %d %H %M %S.%fr>r@r¼r r r!r¾,r¿)rÖrENc Cs’|}d}|j|dt|ƒfdddddddd    gid
œ||i—Ž}ttd dd    d ddd dddgtd dd    d ddddddggdddgd}t ||¡dS)Nzgyear,month,day,hour,minute,second,a,b
2001,01,05,10,00,0.123456,0.0,10.
2001,01,5,10,0,0.500000,1.,11.
r`rrArEr>rRr§r«r8r2rÉi@â)Ú microsecondrmr3i ¡r4r5rÜrÝrArBrCr r r!Ú test_datetime_fractional_seconds&s& ýûúþûrGcCs†|}d}dd„}|jtdt|ƒddddgi|d}ttd    ddƒd
d gtd    d dƒdd ggdddgd}|d d¡|d<t ||¡dS)Nr:cSsdd„t||ƒDƒS)NcSs&g|]\}}tt|ƒt|ƒdd‘qS)rE)ÚyearÚmonthÚday)rr»)r(ÚyÚmr r r!r*Qsz8test_generic.<locals>.parse_function.<locals>.<listcomp>)Úzip)ÚyyÚmmr r r!Úparse_functionPsz$test_generic.<locals>.parse_functionr`rZymrEr¦r2rÉr3r>r5rJrÜrAúdatetime64[ns])r2r3rr rrr4r5)r7rIrJrPr8r9r r r!Ú test_genericKs"
ú"þrRcCsˆ|}d}dd„}|jtdt|ƒ|dddgiddgd    }tjd
gd d d }tddgd itj|dddggddgdd}t     ||¡dS)Nzxdate,time,prn,rxstatus
2013-11-03,19:00:00,126,00E80000
2013-11-03,19:00:00,23,00E80000
2013-11-03,19:00:00,13,00E80000
cSsHz|d|}Wn(tk
r8dd„t||ƒDƒ}YnXtj|ddS)NÚTcSsg|]\}}t ||¡‘qSr )rÚcombine)r(rýÚtr r r!r*sszNtest_date_parser_resolution_if_not_ns.<locals>.date_parser.<locals>.<listcomp>ú datetime64[s]rË)rrMrÚarray)r£rZarrr r r!r&ns
z:test_date_parser_resolution_if_not_ns.<locals>.date_parserr`rrrZprn)r&r%r'z2013-11-03T19:00:00rRrVrËZrxstatusZ00E80000é~r…r?rö)rJr1)
r2r3rrrWr rZ from_arraysr4r5)r7rIrJr&r8Z    datetimesr9r r r!Ú%test_date_parser_resolution_if_not_nscs(
ú      þþrYcCsR|}d}|jt|ƒdgd}ddgddgddgg}t|d    dgd
}t ||¡dS) Nz+case,opdate
7,10/18/2006
7,10/18/2008
621, Zopdater°r¬z
10/18/2006z
10/18/2008imú ZcaserA©rrr r4r5©r7rIrJr8r6r9r r r!Ú(test_parse_date_column_with_empty_stringŠs r]z data,expectedz"a
135217135789158401
1352171357E+5l0„ l H®bêkrÊrËz%a
99999999999
123456789012345
1234E+0lÿgí]ly_ "AiÒcCs&|}|jt|ƒ|d}t ||¡dS)Nr°rÙ)r7rJr9r%rIr8r r r!Útest_parse_date_float•sr^c
Csn|}d}|jt|ƒdgd}tttdddttddƒd    ƒdd
}|d d d d d gd œ}t|ƒ}t     ||¡dS)Nzìdt,val
              2018-01-04 09:01:00+09:00,23350
              2018-01-04 09:02:00+09:00,23400
              2018-01-04 09:03:00+09:00,23400
              2018-01-04 09:04:00+09:00,23400
              2018-01-04 09:05:00+09:00,23400r£r°z2018-01-04 09:01:00z2018-01-04 09:05:00Z1mini)Úminutes)ÚstartÚendrÛr)rÛi6[ih[)r£Úval)
rrr ràrrrr r4r5)r7rIrJr8Zdtir6r9r r r!Útest_parse_timezone®s" üÿ÷ rcÚ date_stringz
32/32/2019z
02/30/2019z
13/13/2019z13/2019z
a3/11/2018z
10/11/2o17cCs<|}td|gidd}|jt|ƒddgd}t ||¡dS)NrrírËr8©r rrr4r5)r7rdrIr9r8r r r!Ú!test_invalid_parse_delimited_dateÊsýrfzdate_string,dayfirst,expectedz
13/02/2019iãr?z
02/13/2019z
04/02/2019cCs>|}td|gidd}|jt|ƒd|dgd}t ||¡dS)NrrQrË©rHròr%re)r7rdròr9rIr8r r r!Ú)test_parse_delimited_date_swap_no_warningÚsÿrhcCsF|}td|gidd}d}|jt|t|ƒd|dgd}t ||¡dS)NrrQrËúzParsing dates in .* format when dayfirst=.* was specified. Pass `dayfirst=.*` or specify a format to silence this warning.rg)r r2rìrr4r5)r7rdròr9rIÚ warning_msgr8r r r!Ú+test_parse_delimited_date_swap_with_warningñs ÿúrkc    Cs0tjtddt ddddg¡W5QRXdS)Nz_^time data "31/05/2000" doesn\'t match format "%m/%d/%Y", at position 1. You might want to try:r”z
01/01/2000z
31/05/2000z
31/05/2001z
01/02/2000)r˜r™ršrr¢r r r r!Ú6test_parse_multiple_delimited_dates_with_swap_warningss
ýrlc
KsLd\}}z||f|Ž}Wn*tk
rB}z t|ƒ}W5d}~XYnX||fS)N)NN)ršÚstr)Úcallrdrør›r8Zerr r r!Ú!_helper_hypothesis_delimited_dates roÚ    delimiterz -./rÖz%d %m %Yz%m %d %Yú%m %Yz%Y %m %dz%y %m %drÔz%y%m%dc
Cs„|dkr&|dkr&|j tjjdd¡| | d|¡¡}tt||d\}}tt    |t
dddƒ|dd    \}}    ||kstt ‚||    ks€t ‚dS)
Nrqr/zRparse_datetime_string cannot reliably tell whether e.g. %m.%Y is a float or a daterârZ)ròrEF)ÚdefaultròZ    yearfirst) ÚnodeZ
add_markerr˜ÚmarkÚxfailÚstrftimeÚreplaceror
rPrr)
rrÖròrpZ test_datetimerdZexcept_out_dateutilr8Zexcept_in_dateutilr9r r r!Útest_hypothesis_delimited_date$s* ÿÿÿ
 
û
 rxz)names, usecols, parse_dates, missing_colsrbz
date, timeZdate1Ztime1Z temperaturec    CsJ|}tdƒ}d|›d}tjt|d|j|d|||dW5QRXdS)Nz%date,time,val
2020-01-31,04:20:32,32
z+Missing column provided to 'parse_dates': 'ú'r”r))rFr_Úusecolsr%)rr˜r™ršr)r7r_rzr%Z missing_colsrIÚcontentr›r r r!Ú&test_missing_parse_dates_column_raisesGs ÿr|cCsL|}tdƒ}|jtd|dgdgd}tdddgiddgd    }t ||¡dS)
Nzx,y
1,2rärÎ)r%r_rKÚ2r½Ú1r0)rr2rìr r4r5r®r r r!Útest_date_parser_and_nameshsûrcCsF|}d}|jt|ƒdgddgd}ttdƒdgdœƒ}t ||¡dS)    Nza,b
1,2
2019-12-31,6©rÜr~rrE©r%rHú
2019-12-31r=)r€©rÝr}©rrr rr4r5r®r r r!Ú#test_date_parser_multiindex_columnsxs
r…zparse_spec, col_namer€rƒ)Úa_bZ1_2)rr~cCsF|}d}|jt|ƒ|ddgd}t|tdƒddgiƒ}t ||¡dS)Nza,b,c
1,2,3
2019-12,-31,6rrErr‚)rÞÚ3r=r„)r7Z
parse_specZcol_namerIrJr8r9r r r!Ú0test_date_parser_multiindex_columns_combine_colsƒs    ýrˆcCsTd}|}|jtdt|ƒdgddgdd}tddgtd    ƒgdd
œƒ}t ||¡dS) Nz2A,B,C
    1,3,20-09-01-01
    2,4,20-09-01-01
    rärEr>rD)r%rzrGrRr§z20-09-2001 01:00:00rë)r2rìrr rr4r5r×r r r!Ú"test_date_parser_usecols_thousands™súr‰cCsP|}d}|jt|ƒddgidd}tdƒtdƒg}t||dœƒ}t ||¡dS)    NzA
20150908
20150909
rrÍT)r%rMz
2015-09-08z
2015-09-09)rrÍ)rrrr r4r5r\r r r!Ú&test_parse_dates_and_keep_orgin_column®sÿrŠc    Csúd}tddgdddd}d}tt|ƒdgddd    j}t ||¡tjt|d
tt|ƒdgd dd    j}W5QRXt ||¡d }td dgddd}tt|ƒdgddd    j}t ||¡tjt|d
tt|ƒdgd dd    j}W5QRXt ||¡dS)Nzdate
31/12/2014
10/03/2011z
2014-12-31z
2011-03-10rQr©rÌrÛr,riT)r%ròr'r”Fzdate
31/12/2014
03/30/2011z
31/12/2014z
03/30/2011rírê)    r rrr1r4Úassert_index_equalÚassert_produces_warningrìr )Úinputr9rjZres1Zres2Zres5Zres6r r r!Útest_dayfirst_warnings¾sRÿÿÿ ÿ ÿ ÿrzdate_string, dayfirstz    31/1/2014zsecond date is single-digit)Úidz    1/31/2014zfirst date is single-digitc    Csbd|›}tdgdddd}d}tjt|dtt|ƒdgd|dj}W5QRXt ||¡dS)    Nzdate
z
2014-01-31rQrr‹rir”)r%r'rò)r r4rrìrrr1rŒ)rdròÚ initial_valuer9rjÚresr r r!Ú&test_dayfirst_warnings_no_leading_zeroîs"
ÿÿür“cCsB|}d}|jt|ƒdgd}tddddœdgd    }t ||¡dS)
Nza,b,c
1970-01-01,2,3,4rÜr°r}rRr§rñr r0r[r®r r r!Ú test_infer_first_column_as_indexsþr”cCstj|ddS)Nú%Y-%m-%dr>r@r¼r r r!r¾"r¿)rÖr•NcCsl|}d}|j|dt|ƒfdddgidgdœ||i—Ž}tdtdƒtjtdƒtjtd    ƒgiƒ}t ||¡dS)
Nz*Test
2012-10-01
0
2015-05-15
#
2017-09-09
r`ZTestú#r#)rÿr%z
2012-10-01z
2015-05-15z
2017-09-09)r2rr rrr'r4r5rCr r r!Ú&test_replace_nans_before_parsing_datess.
ý
ûúûÿÿ r—cCsV|}d}|jt|ƒddgd}tdgtdƒgdœƒ}|d d¡|d<t ||¡dS)    Nza,b
1,2019-12-31
ÚstringrÝ)rÌr%r~r‚©rÜrÝrÜ)rrr rrr4r5r®r r r!Ú!test_parse_dates_and_string_dtypeFs ršcCs€|}d}|jdkr*tddgddd}d}ntdd    gd
dd}t}d }|j||t|ƒd d d}tdddgi|d}t ||¡dS)Nz7a,b
27.03.2003 14:55:00.000,1
03.08.2003 15:20:00.000,2rŸz27.03.2003 14:55:00.000z03.08.2003 15:20:00.000rírÜrêz2003-03-27 14:55:00z2003-08-03 15:20:00rQz1when dayfirst=False \(the default\) was specifiedTrr    rÝrEr>r0)    r¡r r rìr2rr r4r5)r7rIrJZexpected_indexr!r›r8r9r r r!Útest_parse_dot_separated_datesSs2
ýýÿr›cCs\|}d}|jt|ƒdddœddgd}ttdƒtd    ƒgtdƒtd    ƒgdœƒ}t ||¡dS)
Nú/a,b
2019-12-31,31-12-2019
2020-12-31,31-12-2020r•z%d-%m-%Yr™rÜrÝ©rÖr%r‚ú
2020-12-31r„r®r r r!Útest_parse_dates_dict_formatosýþÿrŸzkey, parse_datesr†rc    Cs^|}d}t d¡|jt|ƒ|di|d}W5QRXt|tdƒtdƒgiƒ}t ||¡dS)Nza,b
31-,12-2019
31-,12-2020z    %d- %m-%Yrr‚rž)r4rrrr rr5)r7r<r%rIrJr8r9r r r!Ú(test_parse_dates_dict_format_two_columns„s ÿÿÿr cCsZ|}d}|jt|ƒddiddd}tddd    gittd
ƒtd ƒgdd d }t ||¡dS)NrœrÜr•Tr)rÖr%r'rÝz
31-12-2019z
31-12-2020r‚ržr+r0)rrr r rr4r5r®r r r!Ú"test_parse_dates_dict_format_index›sÿÿür¡)rÚ__doc__rrrrÚiorZdateutil.parserrrPZ
hypothesisrÚnumpyrr˜rZpandas._libs.tslibsr    Zpandas._libs.tslibs.parsingr
Zpandasrr r r rrrZpandas._testingZ_testingr4Zpandas._testing._hypothesisrZpandas.core.indexes.datetimesrZpandas.io.parsersrrtZ usefixturesZ xfail_pyarrowZ skip_pyarrowr:r;rLZ parametrizerŒràr–rœrr¤r¨r¯r¸r¹rÈrÒrØrÚrárurîrôr÷rrr rrrrrWrr"r$r(r+r,Ú from_tuplesr1r7r9Úfilterwarningsr;r3rDrGrRrYr]r^rcrfrhrkrlrorxr|rr…rˆr‰rŠrÚparamr“r”r—ršr›rŸr r¡r r r r!Ú<module>s°            
'
"
 
 x.
<
'
Yú    
ú÷þ
6
 
 
 
    2 -*þ `
\
 
 
 
 
ÿ
ÿ
ýý
ÿý ÿüýîþ  
þûùüüüüüüá&
ÙöðþH 
 ýúþ ýúþ 
 
& þþûþ  þ úþ üþ          þü÷þ 
 
 
 þþ 
 
 0ýýúþ þþ   "ÿ