Ë
    êñiÜ_  ã                   óX  — d dl m Z mZ d dlZd dlZd dlmZ d dlmZm	Z	 d dl
mZ d dlZd dlmZ d dlmZ d dlmZmZ d dlmZ d d	lmZ ej4                  j7                  d
ddg«      d„ «       Zd„ Zej4                  j=                  d«      d„ «       Zd„ Z ej4                  j7                  dd dd e!d«      dgfdd e!d«      dgfdddgfd dd e!d«      gfd ddgfdd e!d«      gfg«      d„ «       Z"ej4                  j7                  d
d„ d„ d„ d„ d„ g«      d„ «       Z#d„ Z$ej4                  j7                  d
g d ¢g d!¢d"œg d#¢g d!¢d"œ ejJ                  g d$¢«       ejJ                  g d#¢«       ejJ                  g d!¢«      d%œg«      d&„ «       Z&d'„ Z'd(„ Z(d)„ Z)d*„ Z*d+„ Z+ej4                  j7                  d
i d,g ig«      d-„ «       Z,dxd/„Z-dxd0„Z.d1„ Z/ej4                  j7                  d2d3d4g«      d5„ «       Z0d6„ Z1dxd7„Z2d8„ Z3d9„ Z4d:„ Z5d;„ Z6ej4                  j7                  d<g d=¢d>d?fg d=¢d@d?fg d=¢dAdBfg d=¢dCdBfg d=¢dDdEfg d=¢dFdEfg dG¢dHdIfg dG¢dJdIfg dK¢dLdMfg dK¢dNdMfg dO¢ ejn                  ejp                  ¬P«      dQfg dO¢dRdQf e dSdd«       e dSdd«      dgdTdUf e dSdd«       e dSdd«      dgdVdWf e dSddejr                  ¬X«       e dSddejr                  ¬X«      dgdYdZfg«      d
e:d[e;d\e;d.dfd]„«       Z<ej4                  j7                  d<g d^¢d>d?fg d^¢d@d?fg d^¢dAdBfg d^¢dCdBfg d^¢dDdEfg d^¢dFdEfg d_¢dHdIfg d_¢dJdIfg d`¢dLdMfg d`¢dNdMfg da¢ ejn                  ejp                  ¬P«      dQfg da¢dRdQf e dSdd«       e dSdd«       e dSddb«      gdTdUf e dSdd«       e dSdd«       e dSddb«      gdVdWf e dSddejr                  ¬X«       e dSddejr                  ¬X«       e dSddbejr                  ¬X«      gdYdZfg«      d
e:d[e;d\e;d.dfdc„«       Z=dxdd„Z>dxde„Z?df„ Z@ej4                  j7                  dg ej‚                  g dh¢di¬j«      ej„                  dkdldmfej†                  dkdldnff ej‚                   e dodd«       e dodd«       e doddb«      gdp¬j«      ejˆ                  dqdrdmfej†                  dqejŠ                  dmff ej‚                  g ds¢«      ejŒ                  dkejŒ                  dmfejŽ                  dkej�                  dmff ej‚                  g d^¢«      ej†                  dqejŠ                  dmfej†                  dqejŠ                  dmff ej‚                  g dt¢«      ej’                  dqej”                  dmfej’                  dqej”                  dmffg«      d
ej‚                  d\eKeeLe;e;f   dueKeeLe;e;f   d.dfdv„«       ZMdw„ ZNy)yé    )ÚdatetimeÚtimezoneN)ÚiNaT)Úis_ci_environmentÚis_platform_windows)Úpa_version_under22p0)ÚPandasColumn)ÚColumnNullTypeÚ	DtypeKind©Úfrom_dataframe)ÚArrowCTypesÚdata)ÚorderedT)Ú	unorderedFc                 óÂ  — t        j                  t        d«      dz  d¬«      t        j                  t        d«      dz  d¬«      dœ}t        j                  d|| d      i«      }t	        j
                  d	¬
«      5  |j                  «       j                  d«      }d d d «       j                  d   t        j                  k(  sJ ‚|j                  dk(  sJ ‚|j                  t        j                  dfk(  sJ ‚|j                  «       dk(  sJ ‚|j                   }|d   | d   k(  sJ ‚|d   du sJ ‚t#        |d   t$        «      sJ ‚t	        j&                  |d   j(                  t        j*                  g d¢«      «       t	        j
                  d	¬
«      5  t	        j,                  |t/        |j                  «       «      «       d d d «       y # 1 sw Y   �Œ/xY w# 1 sw Y   y xY w)NÚtestdataé   T)r   F)r   r   ÚAr   ÚInterchange©Úmatchéÿÿÿÿé   Ú
is_orderedÚis_dictionaryÚ
categories)ÚaÚdÚeÚsÚt)ÚpdÚCategoricalÚlistÚ	DataFrameÚtmÚassert_produces_warningÚ__dataframe__Úget_column_by_nameÚdtyper   ÚCATEGORICALÚ
null_countÚdescribe_nullr
   ÚUSE_SENTINELÚ
num_chunksÚdescribe_categoricalÚ
isinstancer	   Úassert_series_equalÚ_colÚSeriesÚassert_frame_equalr   )r   Údata_categoricalÚdfÚcolÚdesc_cats        úd/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/pandas/tests/interchange/test_impl.pyÚtest_categorical_dtyper<      s¸  € ô —>‘>¤$ zÓ"2°RÑ"7ÀÔFÜ—^‘^¤D¨Ó$4°rÑ$9À5ÔIñÐô 
�‰�sÐ-¨d°1©gÑ6Ð8Ó	9€Bä	×	#Ñ	#¨-Ô	8ñ 9Ø×ÑÓ ×3Ñ3°CÓ8ˆ÷9à�9‰9�Q‰<œ9×0Ñ0Ò0Ð0Ð0Ø�>‰>˜QÒÐÐØ×Ñ¤×!<Ñ!<¸bÐ AÒAÐAÐAØ�>‰>Ó˜qÒ Ð Ð Ø×'Ñ'€HØ�LÑ! T¨!¡WÒ,Ð,Ð,Ø�OÑ$¨Ñ,Ð,Ð,Ü�h˜|Ñ,¬lÔ;Ð;Ð;Ü×ÑØ�Ñ×#Ñ#¤R§Y¡YÒ/HÓ%Iôô 
×	#Ñ	#¨-Ô	8ñ FÜ
×Ñ˜b¤.°×1AÑ1AÓ1CÓ"DÔE÷Fð F÷9ñ 9ú÷Fð Fús   Á; GÆ.GÇGÇGc                  ó°  — t        j                  dd«      } g d¢}| j                  d| j                  |«      j	                  «       i«      }|j                  «       }t        j                  d¬«      5  t        |«      }d d d «       t        j                  |g d¢¬«      }t        j                  d|i«      }t        j                  |«       y # 1 sw Y   ŒPxY w)	NÚpyarrowú11.0.0)	ÚMonÚTuer@   ÚWedr@   ÚThuÚFriÚSatÚSunÚweekdayr   r   )r@   rA   rB   rC   rD   rE   rF   )r   )ÚpytestÚimportorskipÚtableÚarrayÚdictionary_encoder)   r'   r(   r   r#   r$   r&   r6   )ÚpaÚarrrJ   Úexchange_dfÚresultrG   Úexpecteds          r;   Útest_categorical_pyarrowrR   5   s±   € ä	×	Ñ	˜Y¨Ó	1€Bâ
I€CØ�H‰H�i §¡¨#£×!@Ñ!@Ó!BÐCÓD€EØ×%Ñ%Ó'€KÜ	×	#Ñ	#¨-Ô	8ñ -Ü Ó,ˆ÷-ä�n‰nØÒIô€Gô �|‰|˜Y¨Ð0Ó1€HÜ×Ñ˜& (Õ+÷-ð -ús   Á1CÃCzDignore:Constructing a Categorical with a dtype and values containingc                  óþ  — t        j                  dd«      } d g}| j                  d| j                  |d«      j	                  «       i«      }|j                  «       }t        j                  d¬«      5  t        j                  j                  j                  |«      }d d d «       t        j                  dt        j                  t        j                  g«      i«      }t        j                   |«       y # 1 sw Y   ŒYxY w)Nr>   r?   rN   Úfloat64r   r   )rH   rI   rJ   rK   rL   r)   r'   r(   r#   ÚapiÚinterchanger   r&   r$   ÚnpÚnanr6   ©rM   rN   rJ   rO   rP   rQ   s         r;   Útest_empty_categorical_pyarrowrZ   E   sÅ   € ô
 
×	Ñ	˜Y¨Ó	1€Bàˆ&€CØ�H‰H�e˜RŸX™X c¨9Ó5×GÑGÓIÐJÓK€EØ×%Ñ%Ó'€KÜ	×	#Ñ	#¨-Ô	8ñ @Ü—‘×#Ñ#×2Ñ2°;Ó?ˆ÷@ä�|‰|˜U¤B§N¡N´B·F±F°8Ó$<Ð=Ó>€HÜ×Ñ˜& (Õ+÷@ð @ús   Á1*C3Ã3C<c                  ó0  — t        j                  dd«      } ddg}| j                  d| j                  |d«      i«      }|j	                  «       }t        j                  d¬«      5  t        |«      }d d d «       t        j                  dddgi«      }t        j                  |«       t        j                  dd	¬
«      5  | j                  j                  | j                  j                  |«      |«      sJ ‚	 d d d «       y # 1 sw Y   Œ‘xY w# 1 sw Y   y xY w)Nr>   r?   r@   rA   rG   Úlarge_stringr   r   F©r   Úcheck_stacklevel)rH   rI   rJ   rK   r)   r'   r(   r   r#   r&   r6   ÚTableÚequalsrV   rY   s         r;   Útest_large_string_pyarrowra   U   sõ   € ä	×	Ñ	˜Y¨Ó	1€Bà�%ˆ.€CØ�H‰H�i §¡¨#¨~Ó!>Ð?Ó@€EØ×%Ñ%Ó'€KÜ	×	#Ñ	#¨-Ô	8ñ -Ü Ó,ˆ÷-ä�|‰|˜Y¨°¨Ð7Ó8€HÜ×Ñ˜& (Ô+ô 
×	#Ñ	#¨-È%Ô	Pñ MØ�x‰x�‰˜rŸ~™~×<Ñ<¸VÓDÀeÔLÐLÑL÷Mð M÷-ð -ú÷Mð Mús   Á$D Â>8DÄ D	ÄD)ÚoffsetÚlengthÚexpected_valuesçffffff
@rX   çÍÌÌÌÌÌ @r   é   c                 ó,  — t        j                  dd«      }g d¢}|j                  d|i«      j                  | |«      }|j	                  «       }t        j                  d¬«      5  t        |«      }d d d «       t        j                  d|i«      }t        j                  |«       t        j                  dd¬«      5  |j                  j                  |j                  j                  |«      |«      sJ ‚	 d d d «       y # 1 sw Y   Œ�xY w# 1 sw Y   y xY w)	Nr>   r?   )re   Nrf   rN   r   r   Fr]   )rH   rI   rJ   Úslicer)   r'   r(   r   r#   r&   r6   r_   r`   rV   )	rb   rc   rd   rM   rN   rJ   rO   rP   rQ   s	            r;   Útest_bitmasks_pyarrowrj   g   sð   € ô 
×	Ñ	˜Y¨Ó	1€Bâ
€CØ�H‰H�e˜S�\Ó"×(Ñ(¨°Ó8€EØ×%Ñ%Ó'€KÜ	×	#Ñ	#¨-Ô	8ñ -Ü Ó,ˆ÷-ä�|‰|˜U OÐ4Ó5€HÜ×Ñ˜& (Ô+ô 
×	#Ñ	#¨-È%Ô	Pñ MØ�x‰x�‰˜rŸ~™~×<Ñ<¸VÓDÀeÔLÐLÑL÷Mð M÷-ð -ú÷Mð Mús   Á$C>Â<8D
Ã>DÄ
Dc                  ó`   — t         j                  j                  d«      j                  dd«      S )Nrg   iœÿÿÿéd   ©rW   ÚrandomÚdefault_rngÚintegers© ó    r;   ú<lambda>rs   ‡   s"   € ”—	‘	×%Ñ% aÓ(×1Ñ1°$¸Ó<€ rr   c                  ó`   — t         j                  j                  d«      j                  dd«      S )Nrg   r   rl   rm   rq   rr   r;   rs   rs   ˆ   s"   € ”—	‘	×%Ñ% aÓ(×1Ñ1°!°SÓ9€ rr   c                  ó\   — t         j                  j                  d«      j                  «       S )Nrg   )rW   rn   ro   rq   rr   r;   rs   rs   ‰   s   € ”—	‘	×%Ñ% aÓ(×/Ñ/Ó1€ rr   c                  ób   — t         j                  j                  d«      j                  ddg«      S )Nrg   TF)rW   rn   ro   Úchoicerq   rr   r;   rs   rs   Š   s$   € ”—	‘	×%Ñ% aÓ(×/Ñ/°°u°Ó>€ rr   c                  ó,  — t        t        j                  j                  d«      j	                  dd«      t        j                  j                  d«      j	                  dd«      t        j                  j                  d«      j	                  dd«      ¬«      S )Nrg   il  i4  r   é   é   )ÚyearÚmonthÚday)r   rW   rn   ro   rp   rq   rr   r;   rs   rs   ‹   sh   € ”Ü—‘×&Ñ& qÓ)×2Ñ2°4¸Ó>Ü—)‘)×'Ñ'¨Ó*×3Ñ3°A°rÓ:Ü—	‘	×%Ñ% aÓ(×1Ñ1°!°RÓ8ô
€ rr   c           
      ó¸  ‡ — d\  }}t        |«      D ��ci c]9  }dt        ||dz  z
  |z  dz   «      › �t        |«      D �cg c]	  } ‰ «       ‘Œ c}“Œ; c}}Š t        j                  ‰ «      }t	        j
                  d¬«      5  |j                  «       }d d d «       j                  «       |k(  sJ ‚|j                  «       |k(  sJ ‚t        |j                  «       «      t        ‰ j                  «       «      k(  sJ ‚d}t        ˆ fd„|D «       «      }t	        j
                  d¬«      5  t        |j                  |«      «      }	t        |j                  |«      «      }
d d d «       t	        j                   	
«       t#        |	j$                  d	   t        «      sJ ‚t#        |
j$                  d	   t        «      sJ ‚y c c}w c c}}w # 1 sw Y   �Œ2xY w# 1 sw Y   ŒvxY w)
N)é
   rz   r9   rg   r   r   r   )r   rg   c              3   óV   •K  — | ]   }t        ‰j                  «       «      |   –— Œ" y ­w©N)r%   Úkeys)Ú.0Úidxr   s     €r;   ú	<genexpr>z!test_dataframe.<locals>.<genexpr>£   s!   øè ø€ Ò<¨S”$�t—y‘y“{Ó# CÕ(Ñ<ùs   ƒ&)Ú_INTERCHANGE_PROTOCOL_BUFFERS)ÚrangeÚintr#   r&   r'   r(   r)   Únum_columnsÚnum_rowsr%   Úcolumn_namesr‚   Útupler   Úselect_columnsÚselect_columns_by_namer6   r2   Úattrs)r   ÚNCOLSÚNROWSÚiÚ_r8   Údf2ÚindicesÚnamesrP   rQ   s   `          r;   Útest_dataframer—   „   s«  ø€ ð �L€Eˆ5ô �u“÷àð Œc�1�u˜q‘y‘= EÑ)¨AÑ-Ó.Ð/Ð0Ä5ÈÃ<Ö2P¸a±4µ6Ò2PÑPó€Dô 
�‰�dÓ	€Bä	×	#Ñ	#¨-Ô	8ñ !Ø×ÑÓ ˆ÷!ð �?‰?Ó Ò%Ð%Ð%Ø�<‰<‹>˜UÒ"Ð"Ð"ä�× Ñ Ó"Ó#¤t¨D¯I©I«KÓ'8Ò8Ð8Ð8à€GÜÓ<°GÔ<Ó<€Eä	×	#Ñ	#¨-Ô	8ñ EÜ × 2Ñ 2°7Ó ;Ó<ˆÜ! #×"<Ñ"<¸UÓ"CÓDˆ÷Eô ×Ñ˜& (Ô+ä�f—l‘lÐ#BÑCÄTÔJÐJÐJÜ�h—n‘nÐ%DÑEÄtÔLÐLÑLùò- 3Qùó÷!ñ !ú÷Eð Eús/   •+F=Á F8ÁF=ÂGÄ&5GÆ8F=ÇGÇGc            
      óx  — t        j                  t        j                  g d¢«      t        j                  g d¢«      t        j                  g d¢«      dœ«      } t        j                  j                  d«      }| j                  D �ci c]  }||j                  dt        | «      ¬«      “Œ! }}|j                  «       D ]S  \  }}| j                  |j                  t        j                  t        | «      «      |d¬	«         }d | j                  ||f<   ŒU t        j                  d
¬«      5  | j!                  «       }d d d «       j#                  d«      j$                  |d   k(  sJ ‚|j#                  d«      j$                  |d   k(  sJ ‚|j#                  d«      j$                  |d   k(  sJ ‚y c c}w # 1 sw Y   ŒxxY w)N)ç      ð?ç       @g      @g      @ç        )ç      ø?ç      @ç      @g      @r   )r™   r›   r™   r™   r™   ©ÚxÚyÚzrg   r   )ÚlowÚhighF)ÚsizeÚreplacer   r   r    r¡   r¢   )r#   r&   rW   rK   rn   ro   Úcolumnsrp   ÚlenÚitemsÚindexrw   ÚarangeÚlocr'   r(   r)   r*   r-   )r8   Úrngr9   Ú	dict_nullÚ	num_nullsÚnull_idxr”   s          r;   Útest_missing_from_maskedr±   ®   s~  € Ü	�‰ä—‘Ò3Ó4Ü—‘Ò1Ó2Ü—‘Ò3Ó4ñ	
ó
€Bô �)‰)×
Ñ
 Ó
"€CØCEÇ:Á:ÖN¸C��c—l‘l q¬s°2«w�lÓ7Ñ7ÐN€IÐNØ#Ÿ/™/Ó+ò %‰ˆˆYØ—8‘8Ø�J‰J”r—y‘y¤ R£Ó)°	À5ˆJÓIñ
ˆð !%ˆ�‰ˆx˜ˆ}Òð	%ô 
×	#Ñ	#¨-Ô	8ñ !Ø×ÑÓ ˆ÷!ð ×!Ñ! #Ó&×1Ñ1°Y¸s±^ÒCÐCÐCØ×!Ñ! #Ó&×1Ñ1°Y¸s±^ÒCÐCÐCØ×!Ñ! #Ó&×1Ñ1°Y¸s±^ÒCÐCÑCùò O÷!ð !ús   Â$F+Ä(F0Æ0F9)rœ   r�   rž   )çffffff"@ç      %@çš™™™™™'@)r    r¡   )r   rg   r   )TTFrŸ   c                 ó  — t        j                  | «      }t        j                  d¬«      5  |j	                  «       }d d d «       |j
                  D ]"  }j                  |«      j                  dk(  rŒ"J ‚ y # 1 sw Y   Œ;xY w)Nr   r   r   )r#   r&   r'   r(   r)   r§   r*   r-   )r   r8   r”   Úcol_names       r;   Útest_mixed_datar·   Ç   sy   € ô 
�‰�dÓ	€BÜ	×	#Ñ	#¨-Ô	8ñ !Ø×ÑÓ ˆ÷!ð —J‘Jò @ˆØ×%Ñ% hÓ/×:Ñ:¸aÓ?Ð?Ð?ñ@÷!ð !ús   ¬A7Á7B c                  óŒ  — t        j                  t        j                  g d¢«      t        j                  g d¢«      t        j                  g d¢«      dœ«      } t	        j
                  d¬«      5  | j                  «       }d d d «       | j                  D ]"  }j                  |«      j                  dk(  rŒ"J ‚ y # 1 sw Y   Œ;xY w)N)TNFNT)Nrg   Nr   rg   )r²   r³   Nr´   NrŸ   r   r   rg   )
r#   r&   rW   rK   r'   r(   r)   r§   r*   r-   )r8   r”   r¶   s      r;   Útest_mixed_missingr¹   Ü   s¥   € Ü	�‰ä—‘Ò9Ó:Ü—‘Ò/Ó0Ü—‘Ò7Ó8ñ	
ó
€Bô 
×	#Ñ	#¨-Ô	8ñ !Ø×ÑÓ ˆ÷!ð —J‘Jò @ˆØ×%Ñ% hÓ/×:Ñ:¸aÓ?Ð?Ð?ñ@÷!ð !ús   Á/B:Â:Cc                  óJ  — dddddt         j                  gi} | d   dgz   }t        j                  d|i«      }t	        j
                  d¬	«      5  |j                  «       j                  d«      }d d d «       j                  «       d
k(  sJ ‚|j                  dk(  sJ ‚|j                  d   t        j                  k(  sJ ‚|j                  t        j                  dfk(  sJ ‚|dd  }t	        j
                  d¬	«      5  |j                  «       j                  d«      }d d d «       |j                  «       dk(  sJ ‚|j                  dk(  sJ ‚|j                  d   t        j                  k(  sJ ‚|j                  t        j                  dfk(  sJ ‚y # 1 sw Y   �Œ xY w# 1 sw Y   Œ€xY w)Nzseparator datazabC|DeF,Hikz234,3245.67zgSaf,qWer|Grez
asd3,4sad|Ú r   r   r   é   r   r   é   )rW   rX   r#   r&   r'   r(   r)   r*   r¥   r-   r+   r   ÚSTRINGr.   r
   ÚUSE_BYTEMASK)Ústring_dataÚtest_str_datar8   r9   Ú	df_sliceds        r;   Útest_stringrÃ   ì   s’  € àØØØØÜ�F‰Fð
ð€Kð  Ð 0Ñ1°R°DÑ8€MÜ	�‰�s˜MÐ*Ó	+€BÜ	×	#Ñ	#¨-Ô	8ñ 9Ø×ÑÓ ×3Ñ3°CÓ8ˆ÷9ð �8‰8‹:˜Š?Ðˆ?Ø�>‰>˜QÒÐÐØ�9‰9�Q‰<œ9×+Ñ+Ò+Ð+Ð+Ø×Ñ¤×!<Ñ!<¸aÐ @Ò@Ð@Ð@à�1�2�€IÜ	×	#Ñ	#¨-Ô	8ñ @Ø×%Ñ%Ó'×:Ñ:¸3Ó?ˆ÷@à�8‰8‹:˜Š?Ðˆ?Ø�>‰>˜QÒÐÐØ�9‰9�Q‰<œ9×+Ñ+Ò+Ð+Ð+Ø×Ñ¤×!<Ñ!<¸aÐ @Ò@Ð@Ñ@÷9ñ 9ú÷@ð @ús   Á FÃ: FÆFÆF"c                  óB  — t        j                  dg d¢i«      } t        j                  d¬«      5  | j	                  «       j                  d«      }d d d «       t        j                  t        d¬«      5  j                   d d d «       y # 1 sw Y   Œ:xY w# 1 sw Y   y xY w)Nr   )r   r   r™   rq   r   r   znot supported yet)
r#   r&   r'   r(   r)   r*   rH   ÚraisesÚNotImplementedErrorr+   ©r8   r9   s     r;   Útest_nonstring_objectrÈ   	  sƒ   € Ü	�‰�sÒ.Ð/Ó	0€BÜ	×	#Ñ	#¨-Ô	8ñ 9Ø×ÑÓ ×3Ñ3°CÓ8ˆ÷9ä	�‰Ô*Ð2EÔ	Fñ Ø�	Š	÷ð ÷9ð 9ú÷ð ús   ° B	Á3BÂ	BÂBc                  ó–  — t        j                  dt        j                  d«      t         j                  gi«      } t	        j
                  d¬«      5  | j                  «       j                  d«      }d d d «       j                  «       dk(  sJ ‚|j                  dk(  sJ ‚|j                  d   t        j                  k(  sJ ‚|j                  t        j                  t         fk(  sJ ‚t	        j
                  d¬«      5  t	        j"                  | t%        | j                  «       «      «       d d d «       y # 1 sw Y   ŒÃxY w# 1 sw Y   y xY w)Nr   z
2022-01-01r   r   rg   r   r   )r#   r&   Ú	TimestampÚNaTr'   r(   r)   r*   r¥   r-   r+   r   ÚDATETIMEr.   r
   r/   r   r6   r   rÇ   s     r;   Útest_datetimerÍ     s  € Ü	�‰�sœRŸ\™\¨,Ó7¼¿¹Ð@ÐAÓ	B€BÜ	×	#Ñ	#¨-Ô	8ñ 9Ø×ÑÓ ×3Ñ3°CÓ8ˆ÷9ð �8‰8‹:˜Š?Ðˆ?Ø�>‰>˜QÒÐÐØ�9‰9�Q‰<œ9×-Ñ-Ò-Ð-Ð-Ø×Ñ¤×!<Ñ!<¼dÐ CÒCÐCÐCä	×	#Ñ	#¨-Ô	8ñ FÜ
×Ñ˜b¤.°×1AÑ1AÓ1CÓ"DÔE÷Fð F÷9ð 9ú÷Fð Fús   Á D3Ã<.D?Ä3D<Ä?Ec                  ó   — t        j                  dt        j                  g d¢«      i«      } t        j                  d¬«      5  | j                  «       j                  d«      }d d d «       t        j                  j                  «       d   d   «      }t        j                  g d¢d¬	«      }t        j                  ||«       y # 1 sw Y   ŒbxY w)
Nr   ©r   Úbr   r   r   r   r   )r   r   r   Úint8©r+   )r#   r&   r$   r'   r(   r)   r*   rW   Úfrom_dlpackÚget_buffersrK   Úassert_numpy_array_equal)r8   r9   rP   rQ   s       r;   Ú test_categorical_to_numpy_dlpackrÖ     s™   € ä	�‰�sœBŸN™Nª?Ó;Ð<Ó	=€BÜ	×	#Ñ	#¨-Ô	8ñ 9Ø×ÑÓ ×3Ñ3°CÓ8ˆ÷9ä�^‰^˜CŸO™OÓ-¨fÑ5°aÑ8Ó9€FÜ�x‰xš	¨Ô0€HÜ×Ñ ¨Õ1÷	9ð 9ús   Á CÃCr   c                 ó  — t        j                  dd«       ddlm} t	        j
                  | «      }t        j                  dd¬«      5   ||«      }d d d «       t        «      }t        j                  ||d¬«       y # 1 sw Y   Œ-xY w)	Nr>   ú14.0.0r   r   r   Fr]   )Úcheck_column_type)	rH   rI   Úpyarrow.interchanger   r#   r&   r'   r(   r6   )r   Úpa_from_dataframerQ   Úarrow_dfrP   s        r;   Útest_empty_pyarrowrÝ   )  sp   € ô ×Ñ˜	 8Ô,ÝGä�|‰|˜DÓ!€Hä	×	#Ñ	#¨-È%Ô	Pñ /Ù$ XÓ.ˆ÷/ä˜HÓ%€FÜ×Ñ˜& (¸eÖD÷/ð /ús   Á		A>Á>BÚreturnc                  óB  — t        j                  dd«      } | j                  g d¢g d¢g«      }dg}| j                  |g|¬«      }t        j                  t
        d¬«      5  t        j                  j                  j                  |d	¬
«       d d d «       y # 1 sw Y   y xY w)Nr>   rØ   )rg   rg   é   )rà   r½   rl   Ún_legs)r–   z@Cannot do zero copy conversion into multi-column DataFrame blockr   F©Ú
allow_copy)
rH   rI   Úchunked_arrayrJ   rÅ   ÚRuntimeErrorr#   rU   rV   r   )rM   rá   r–   rJ   s       r;   Útest_multi_chunk_pyarrowræ   7  sŽ   € Ü	×	Ñ	˜Y¨Ó	1€BØ×Ñšyª+Ð6Ó7€FØˆJ€EØ�H‰H�f�X UˆHÓ+€EÜ	�‰ÜØPô
ñ Cô 	�‰×Ñ×)Ñ)¨%¸EÐ)ÔB÷	C÷ Cñ Cús   Á ,BÂBc                  ó  — t        j                  dd«       t        j                  g d¢d¬«      } t        j                  | | gd¬«      j                  d«      }|j                  «       }t        j                  d	¬
«      5  t        j                  t        d¬
«      5  t        j                  j                  j                  |j                  d¬«      «       d d d «       d d d «       t        j                  d	¬
«      5  t        j                  j                  j                  |j                  d¬«      «      }d d d «       t        j                  dg d¢id¬«      }t        j                   |«       t        j                   ||«       t#        |d   j$                  j&                  j(                  «      dk(  sJ ‚t#        |d   j$                  j&                  j(                  «      dk(  sJ ‚y # 1 sw Y   �ŒxY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒÍxY w)Nr>   r?   ©r   rg   NúInt64[pyarrow]rÒ   T)Úignore_indexr   r   r   z:Found multi-chunk pyarrow array, but `allow_copy` is FalseFrâ   )r™   rš   Nr™   rš   NrT   rg   )rH   rI   r#   r5   ÚconcatÚto_frameÚcopyr'   r(   rÅ   rå   rU   rV   r   r)   r&   r6   r¨   rK   Ú	_pa_arrayÚchunks)Úserr8   Údf_origrP   rQ   s        r;   Útest_multi_chunk_columnrò   C  s¢  € Ü
×Ñ˜	 8Ô,Ü
�)‰)’LÐ(8Ô
9€CÜ	�‰�C˜�:¨DÔ	1×	:Ñ	:¸3Ó	?€BØ�g‰g‹i€Gä	×	#Ñ	#¨-Ô	8ñ RÜ�]‰]ÜØNô
ñ 	Rô �F‰F×Ñ×-Ñ-¨b×.>Ñ.>È%Ð.>Ó.PÔQ÷		R÷Rô 
×	#Ñ	#¨-Ô	8ñ VÜ—‘×#Ñ#×2Ñ2°2×3CÑ3CÈtÐ3CÓ3TÓUˆ÷Vô �|‰|˜SÒ"BÐCÈ9ÔU€HÜ×Ñ˜& (Ô+ô ×Ñ˜"˜gÔ&Üˆr�#‰w�}‰}×&Ñ&×-Ñ-Ó.°!Ò3Ð3Ð3Üˆw�s‰|×!Ñ!×+Ñ+×2Ñ2Ó3°qÒ8Ð8Ñ8÷	Rñ 	Rú÷Rñ Rú÷Vð Vús0   Á>G3Â:G&ÃG3Ã::H Ç&G0	Ç+G3Ç3G=È H	c                  óÄ  — t        j                  dd«       dddddddœ} t        j                  t	        di | ¤Žgdd¬«      j                  «       }t        j                  d	¬
«      5  |j                  «       }t        j                  j                  j                  |«      d   j                  «       }d d d «       t        j                  di | ¤Ž}|k(  sJ ‚y # 1 sw Y   Œ&xY w)Nr>   r?   iÐ  r   )r{   r|   r}   ÚhourÚminuteÚsecondútimestamp[ns][pyarrow]Úcol0)r+   Únamer   r   rq   )rH   rI   r#   r5   r   rì   r'   r(   r)   rU   rV   r   ÚitemrÊ   )Útimestamp_argsr8   ÚdfirP   rQ   s        r;   Útest_timestamp_ns_pyarrowrý   \  sÛ   € ä
×Ñ˜	 8Ô,àØØØØØñ€Nô 
�‰Ü	Ñ	#�NÑ	#Ð$Ø&Øô
÷ �hƒjð	 ô 
×	#Ñ	#¨-Ô	8ñ GØ×ÑÓ ˆÜ—‘×#Ñ#×2Ñ2°3Ó7¸Ñ?×DÑDÓFˆ÷Gô �|‰|Ñ-˜nÑ-€HØ�XÒÐÑ÷Gð Gús   Á&ACÃCÚtzÚUTCz
US/Pacificc                 óN  — t        j                  ddd¬«      j                  | «      j                  |«      }t        j                  d|i«      }t        j                  d¬«      5  t        j                  |t        |j                  «       «      «       d d d «       y # 1 sw Y   y xY w)Nz
2018-01-01r½   ÚD)ÚperiodsÚfreqÚts_tzr   r   )
r#   Ú
date_rangeÚtz_localizeÚas_unitr&   r'   r(   r6   r   r)   )rþ   ÚunitÚtz_datar8   s       r;   Útest_datetimetzdtyper
  u  sŠ   € ô 	�‰�l¨A°CÔ8×DÑDÀRÓH×PÑPÐQUÓVð ô 
�‰�w Ð(Ó	)€BÜ	×	#Ñ	#¨-Ô	8ñ FÜ
×Ñ˜b¤.°×1AÑ1AÓ1CÓ"DÔE÷F÷ Fñ Fús   Á$.BÂB$c           	      ót  — t        j                  dd«      }dd lm} t	        «       rLt        «       rBt        r<t         j                  j                  |j                  d¬«      }| j                  |«       |j                  t        ddd«      d t        ddd«      g«      }|j                  |d	«      }|j                  d
|i«      }|j                  «       }t!        j"                  d¬«      5  t%        |«      }d d d «       t'        j(                  g d¢d
gd¬«      }t!        j*                  |«       y # 1 sw Y   Œ;xY w)Nr>   r?   r   z_TODO: Set ARROW_TIMEZONE_DATABASE environment variable on CI to path to the tzdata for pyarrow.)rÅ   Úreasonéä  r   rg   úAsia/KathmandurN   r   r   )z2020-01-01 00:00:00+05:45rË   z2020-01-02 00:00:00+05:45zdatetime64[us, Asia/Kathmandu])r§   r+   )rH   rI   Úpyarrow.computeÚcomputer   r   r   ÚmarkÚxfailÚArrowInvalidÚapplymarkerrK   r   Úassume_timezonerJ   r)   r'   r(   r   r#   r&   r6   )	ÚrequestrM   Úpcr  rN   rJ   rO   rP   rQ   s	            r;   Ú)test_interchange_from_non_pandas_tz_awarer  €  s  € ä	×	Ñ	˜Y¨Ó	1€BÝ äÔÔ!2Ô!4Õ9MÜ�{‰{× Ñ Ø—?‘?ð;ð !ó 
ˆð 	×Ñ˜DÔ!à
�(‰(”H˜T 1 aÓ(¨$´¸¸qÀ!Ó0DÐEÓ
F€CØ
×
Ñ
˜SÐ"2Ó
3€CØ�H‰H�e˜S�\Ó"€EØ×%Ñ%Ó'€KÜ	×	#Ñ	#¨-Ô	8ñ -Ü Ó,ˆ÷-ô �|‰|ÚIØ�Ø.ô€Hô
 ×Ñ˜( FÕ+÷-ð -ús   Ã(D.Ä.D7c                 ó~  ‡‡‡— t        j                  d¬«      5  t        j                  dddgi«      j	                  «       }|j	                  «       Šd d d «       ‰j                  d«      Š‰j                  «       Š‰d   }|d   }t        j                  dt        j                  |d	   f}|d
   |f‰d<   ˆfd„‰_        ˆfd„‰_        | j                  dˆfd„«       t        j                  d¬«      5  t        j                  j                  j                  |«       d d d «       y # 1 sw Y   ŒÖxY w# 1 sw Y   y xY w)Nr   r   r   ÚfooÚbarr   r   é   é   r   c                  ó   •— ‰ S r�   rq   )Úbufferss   €r;   rs   z?test_interchange_from_corrected_buffer_dtypes.<locals>.<lambda>®  s   ø€  € rr   c                 ó   •— ‰S r�   rq   )r“   Úcolumns    €r;   rs   z?test_interchange_from_corrected_buffer_dtypes.<locals>.<lambda>¯  s   ø€ ¨v€ rr   r)   c                 ó   •— ‰S r�   rq   )rã   rV   s    €r;   rs   z?test_interchange_from_corrected_buffer_dtypes.<locals>.<lambda>°  s   ø€ À€ rr   )r'   r(   r#   r&   r)   r*   rÔ   r   ÚUINTr   ÚUINT8ÚsetattrrU   rV   r   )Úmonkeypatchr8   Úbuffers_dataÚbuffer_dtyper  r!  rV   s       @@@r;   Ú-test_interchange_from_corrected_buffer_dtypesr)  ž  s  ú€ ä	×	#Ñ	#¨-Ô	8ñ )Ü�\‰\˜3 ¨ Ð/Ó0×>Ñ>Ó@ˆØ×&Ñ&Ó(ˆ÷)ð ×+Ñ+¨CÓ0€FØ× Ñ Ó"€GØ˜6‘?€LØ ‘?€Lä�‰Ø	Ü×ÑØ�Q‰ð	€Lð $ A‘¨Ð5€GˆF�OÛ(€FÔÛ%5€KÔ"Ø×Ñ˜˜OÓ-KÔLÜ	×	#Ñ	#¨-Ô	8ñ .Ü
�‰×Ñ×)Ñ)¨"Ô-÷.ð .÷#)ð )ú÷".ð .ús   š8D'Ã4*D3Ä'D0Ä3D<c                  ó2  — t        j                  dg it        ¬«      } t        j                  d¬«      5  | j                  «       }t         j                  j                  j                  |«      }d d d «       t        j                  | «       y # 1 sw Y   Œ xY w)Nr   rÒ   r   r   )
r#   r&   Ústrr'   r(   r)   rU   rV   r   r6   )r8   r”   rP   s      r;   Útest_empty_string_columnr,  µ  ss   € ä	�‰�s˜B�i¤sÔ	+€BÜ	×	#Ñ	#¨-Ô	8ñ 8Ø×ÑÓ ˆÜ—‘×#Ñ#×2Ñ2°3Ó7ˆ÷8ô ×Ñ˜"˜fÕ%÷8ð 8ús   ´:BÂBc                  óˆ  — t        j                  d«       t        j                  ddgid¬«      } t	        j
                  dd¬«      5  t        j                  j                  j                  | j                  «       «      }d d d «       t        j                  ddgid	¬«      }t	        j                  |«       y # 1 sw Y   Œ:xY w)
Nr>   r   r    úlarge_string[pyarrow]rÒ   r   Fr]   r+  )rH   rI   r#   r&   r'   r(   rU   rV   r   r)   r6   )r8   rP   rQ   s      r;   Útest_large_stringr/  ¾  s™   € ä
×Ñ˜	Ô"Ü	�‰�s˜S˜E�lÐ*AÔ	B€Bä	×	#Ñ	#¨-È%Ô	Pñ GÜ—‘×#Ñ#×2Ñ2°2×3CÑ3CÓ3EÓFˆ÷Gä�|‰|˜S 3 %˜L°Ô6€HÜ×Ñ˜& (Õ+÷Gð Gús   Á8B8Â8Cc                  óô   — t        j                  g d¢d¬«      j                  «       } t        j                  d¬«      5  | j                  «       j                  «       }d d d «       dgk(  sJ ‚y # 1 sw Y   ŒxY w)N©r   rg   r  r   )rù   r   r   Ú0)r#   r5   rì   r'   r(   r)   r‹   )r8   r–   s     r;   Útest_non_str_namesr3  É  sc   € ä	�‰’9 1Ô	%×	.Ñ	.Ó	0€BÜ	×	#Ñ	#¨-Ô	8ñ 2Ø× Ñ Ó"×/Ñ/Ó1ˆ÷2à�S�EŠ>Ð‰>÷2ð 2ús   ¾A.Á.A7c                  ó¾  — t        j                  g d¢g d¢dœ«      } t        j                  d¬«      5  | j	                  «       }d d d «       t        j                  d¬«      5  t        j                  t        d¬«      5  t         j                  j                  j                  d¬«       d d d «       d d d «       y # 1 sw Y   ŒxxY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w)	Nr1  ©rà   r½   r¼   )r2  r   r   r   a&  Expected a Series, got a DataFrame. This likely happened because you called __dataframe__ on a DataFrame which, after converting column names to string, resulted in duplicated names: Index\(\['0', '0'\], dtype='(str|object)'\). Please rename these columns before using the interchange protocol.Frâ   )r#   r&   r'   r(   r)   rH   rÅ   Ú	TypeErrorrU   rV   r   )r8   rü   s     r;   Útest_non_str_names_w_duplicatesr7  Ñ  s¿   € ä	�‰šIª)Ñ4Ó	5€BÜ	×	#Ñ	#¨-Ô	8ñ !Ø×ÑÓ ˆ÷!ä	×	#Ñ	#¨-Ô	8ñ EÜ�]‰]Üð(ô	
ñ 
	Eô �F‰F×Ñ×-Ñ-¨c¸eÐ-ÔD÷
	E÷Eð E÷!ð !ú÷
	Eð 
	Eú÷Eð Eús/   ³B;Á"CÁ>,CÂ*CÂ;CÃC	ÃCÃC)r   r+   Úexpected_dtyperè   ÚInt64Úint64ré   ÚInt8rÑ   zInt8[pyarrow]ÚUInt64Úuint64zUInt64[pyarrow])r™   ç      @NÚFloat32Úfloat32zFloat32[pyarrow])TFNÚbooleanÚboolzboolean[pyarrow])úmuch adoÚaboutN)Úna_valuer\   zstring[pyarrow]r  r÷   ztimestamp[ns]ztimestamp[us][pyarrow]ztimestamp[us])Útzinfoz&timestamp[us, Asia/Kathmandu][pyarrow]ú timestamp[us, tz=Asia/Kathmandu]r+   r8  c                 óî  — t        j                  dd«      }dd lm} |dk(  r|j	                  dd«      }t        j                  d| i|¬«      }t        j                  d	¬
«      5  |j                  |j                  «       «      d   }d d d «       j                  |k(  sJ ‚|d   j                  «       | d   k(  sJ ‚|d   j                  «       | d   k(  sJ ‚|d   j                  «       �J ‚y # 1 sw Y   ŒfxY w©Nr>   rØ   r   rG  Úusr  r   rÒ   r   r   r   rg   ©rH   rI   rÚ   rV   Ú	timestampr#   r&   r'   r(   r   r)   ÚtypeÚas_py©r   r+   r8  rM   Úpair8   rP   s          r;   Ú(test_pandas_nullable_with_missing_valuesrQ  ä  sì   € ôb 
×	Ñ	˜Y¨Ó	1€BÝ%àÐ;Ò;ØŸ™ dÐ,<Ó=ˆä	�‰�s˜D�k¨Ô	/€BÜ	×	#Ñ	#¨-Ô	8ñ =Ø×#Ñ# B×$4Ñ$4Ó$6Ó7¸Ñ<ˆ÷=à�;‰;˜.Ò(Ð(Ð(Ø�!‰9�?‰?Ó  Q¡Ò'Ð'Ð'Ø�!‰9�?‰?Ó  Q¡Ò'Ð'Ð'Ø�!‰9�?‰?ÓÐ$Ð$Ñ$÷=ð =ús   Á##C+Ã+C4r1  )r™   r>  g      @)TFF)rC  rD  Únothingr  c                 óú  — t        j                  dd«      }dd lm} |dk(  r|j	                  dd«      }t        j                  d| i|¬«      }t        j                  d	¬
«      5  |j                  |j                  «       «      d   }d d d «       j                  |k(  sJ ‚|d   j                  «       | d   k(  sJ ‚|d   j                  «       | d   k(  sJ ‚|d   j                  «       | d   k(  sJ ‚y # 1 sw Y   ŒlxY wrI  rK  rO  s          r;   Ú+test_pandas_nullable_without_missing_valuesrT  $  sò   € ôh 
×	Ñ	˜Y¨Ó	1€BÝ%àÐ;Ò;ØŸ™ dÐ,<Ó=ˆä	�‰�s˜D�k¨Ô	/€BÜ	×	#Ñ	#¨-Ô	8ñ =Ø×#Ñ# B×$4Ñ$4Ó$6Ó7¸Ñ<ˆ÷=à�;‰;˜.Ò(Ð(Ð(Ø�!‰9�?‰?Ó  Q¡Ò'Ð'Ð'Ø�!‰9�?‰?Ó  Q¡Ò'Ð'Ð'Ø�!‰9�?‰?Ó  Q¡Ò'Ð'Ñ'÷=ð =ús   Á##C1Ã1C:c                  ó"  — t        j                  dd«       t        j                  ddgid¬«      } t	        j
                  d¬«      5  | j                  «       j                  d«      j                  «       d	   }d d d «       �J ‚y # 1 sw Y   ŒxY w)
Nr>   r?   r   r    r.  rÒ   r   r   Úvalidity)	rH   rI   r#   r&   r'   r(   r)   r*   rÔ   )r8   rP   s     r;   Útest_string_validity_bufferrW  g  s�   € ä
×Ñ˜	 8Ô,Ü	�‰�s˜S˜E�lÐ*AÔ	B€BÜ	×	#Ñ	#¨-Ô	8ñ VØ×!Ñ!Ó#×6Ñ6°sÓ;×GÑGÓIÈ*ÑUˆ÷Vàˆ>Ð‰>÷Vð Vús   Á1BÂBc                  ó€  — t        j                  dd«       t        j                  ddd gid¬«      } t	        j
                  d¬«      5  | j                  «       j                  d«      j                  «       d	   }d d d «       €J ‚|d
   }t        j                  d
t        j                  df}||k(  sJ ‚y # 1 sw Y   Œ<xY w)Nr>   r?   r   r    r.  rÒ   r   r   rV  r   ú=)rH   rI   r#   r&   r'   r(   r)   r*   rÔ   r   ÚBOOLr   )r8   rV  rP   rQ   s       r;   Ú&test_string_validity_buffer_no_missingr[  p  sµ   € ä
×Ñ˜	 8Ô,Ü	�‰�s˜S $˜KÐ(Ð0GÔ	H€BÜ	×	#Ñ	#¨-Ô	8ñ XØ×#Ñ#Ó%×8Ñ8¸Ó=×IÑIÓKÈJÑWˆ÷XàÐÐÐØ�a‰[€FÜ—‘ ¤;×#3Ñ#3°SÐ9€HØ�XÒÐÑ÷Xð Xús   Á1B4Â4B=c                  ó`  — t        j                  dg id¬«      } t        j                  d¬«      5  | j	                  «       }t         j
                  j                  j                  |d¬«      }d d d «       t        j                  dg id¬«      }t        j                  |«       y # 1 sw Y   Œ9xY w)Nr   rÑ   rÒ   r   r   Frâ   )	r#   r&   r'   r(   r)   rU   rV   r   r6   )r8   rü   rP   rQ   s       r;   Útest_empty_dataframer]  |  s�   € ä	�‰�s˜B�i vÔ	.€BÜ	×	#Ñ	#¨-Ô	8ñ JØ×ÑÓ ˆÜ—‘×#Ñ#×2Ñ2°3À5Ð2ÓIˆ÷Jô �|‰|˜S "˜I¨VÔ4€HÜ×Ñ˜& (Õ+÷	Jð Jús   °<B$Â$B-)r   r8  Úexpected_buffer_dtyperÏ   ÚcategoryrÒ   r  ÚcrY  ú|iæ  zM8[ns]é@   ztsn:)r   ÚbcN)rœ   rg   r  r^  c                 ó"  — t        j                  d| i«      }t        j                  d¬«      5  |j	                  «       }d d d «       j                  d«      }|j                  |k(  sJ ‚|j                  «       d   d   |k(  sJ ‚y # 1 sw Y   ŒGxY w)Nr   r   r   r   )r#   r&   r'   r(   r)   r*   r+   rÔ   )r   r8  r^  r8   rü   r9   s         r;   Útest_buffer_dtype_categoricalre  †  sŠ   € ôN 
�‰�v˜t�nÓ	%€BÜ	×	#Ñ	#¨-Ô	8ñ !Ø×ÑÓ ˆ÷!à
×
 Ñ
  Ó
(€CØ�9‰9˜Ò&Ð&Ð&Ø�?‰?Ó˜VÑ$ QÑ'Ð+@Ò@Ð@Ñ@÷	!ð !ús   ®BÂBc                  óÒ   — t        j                  dd«      } dddgg d¢gi}| j                  |«      }t        |«      }t	        j
                  |«      }t        j                  ||«       y )Nr>   rØ   r   r   rg   r5  )rH   rI   rJ   r   r#   r&   r'   r6   )rM   r   ÚtblrP   rQ   s        r;   Útest_from_dataframe_list_dtyperh  µ  s\   € Ü	×	Ñ	˜Y¨Ó	1€BØ�1�a�&š)Ð$Ð%€DØ
�(‰(�4‹.€CÜ˜CÓ €FÜ�|‰|˜DÓ!€HÜ×Ñ˜& (Õ+rr   )rÞ   N)Or   r   ÚnumpyrW   rH   Úpandas._libs.tslibsr   Úpandas.compatr   r   Úpandas.compat.pyarrowr   Úpandasr#   Úpandas._testingÚ_testingr'   Úpandas.core.interchange.columnr	   Ú*pandas.core.interchange.dataframe_protocolr
   r   Ú&pandas.core.interchange.from_dataframer   Úpandas.core.interchange.utilsr   r  Úparametrizer<   rR   ÚfilterwarningsrZ   ra   Úfloatrj   r—   r±   rK   r·   r¹   rÃ   rÈ   rÍ   rÖ   rÝ   ræ   rò   rý   r
  r  r)  r,  r/  r3  r7  ÚStringDtyperX   Úutcr%   r+  rQ  rT  rW  r[  r]  r5   r,   ÚINTrÌ   ÚINT64r¾   r#  r$  ÚFLOATÚFLOAT64rŒ   rˆ   re  rh  rq   rr   r;   ú<module>r}     sy  ð÷ó
 Û å $÷õ 7ã Ý Ý 7÷õ BÝ 5ð ‡�×Ñ˜Ð"3Ð5IÐ!JÓKñFó LðFò2,ð  ‡�×ÑØJóñ
,óð
,òMð$ ‡�×ÑØ+à	
ˆD�3™˜e› cÐ*Ð+Ø	
ˆD‘5˜“< Ð%Ð&Ø	
ˆD�3�%ÐØ	
ˆA�‘U˜5“\Ð"Ð#Ø	
ˆA�ˆuˆØ	
ˆA‘�e“ˆ~Ððó
ñMó
ðMð$ ‡�×ÑØ
á<Ù9Ù1Ù>ñ	
ð
óñMóðMò8Dð2 ‡�×ÑØ
âÒ$5Ñ6ÚÒ/Ñ0à�—‘Ò-Ó.Ø�—‘š)Ó$Ø�—‘Ò+Ó,ñ	
ðóñ@óð@ò@ò Aò:òFò2ð ‡�×Ñ˜ " s¨B i Ó1ñ
Eó 2ð
Eó	Có9ò2ð2 ‡�×Ñ˜  |Ð4Ó5ñFó 6ðFò,ó<.ò.&ò,òòEð& ‡�×ÑØ'â	�w Ð(Ú	Ð'¨Ð1Ú	�v˜vÐ&Ú	�¨Ð/âØØð	
ò ØØð	
ò
 
˜I yÐ1Ú	Ð.°	Ð:Ú	˜i¨Ð0Ú	Ð0°&Ð9Ú	$ n b§n¡n¸b¿f¹fÔ&EÀ~ÐVÚ	$Ð&7¸ÐHá�d˜A˜qÓ!¡8¨D°!°QÓ#7¸Ð>Ø$Øð	
ñ �d˜A˜qÓ!¡8¨D°!°QÓ#7¸Ð>Ø$Øð	
ñ ˜˜q !¨H¯L©LÔ9Ù˜˜q !¨H¯L©LÔ9Øðð
 5Ø.ð	
ð?(ó+ðX%Ø
ð%Øð%Ø,/ð%à	ò%óY+ðX%ð( ‡�×ÑØ'â	�G˜WÐ%Ú	Ð$ gÐ.Ú	�F˜FÐ#Ú	�O VÐ,âØØð	
ò ØØð	
ò
 
˜9 iÐ0Ú	Ð-¨yÐ9Ú	˜y¨&Ð1Ú	Ð1°6Ð:â,ØˆB�N‰N B§F¡FÔ+Øð	
ò
 
*Ð+<¸nÐMá�d˜A˜qÓ!¡8¨D°!°QÓ#7¹À$ÈÈ1Ó9MÐNØ$Øð	
ñ �d˜A˜qÓ!¡8¨D°!°QÓ#7¹À$ÈÈ1Ó9MÐNØ$Øð	
ñ ˜˜q !¨H¯L©LÔ9Ù˜˜q !¨H¯L©LÔ9Ù˜˜q !¨H¯L©LÔ9ðð
 5Ø.ð	
ðG,ó/ð`(Ø
ð(Øð(Ø,/ð(à	ò(óa/ð`(ó&ó	ò,ð ‡�×ÑØ7ð ˆB�I‰I’o¨ZÔ8Ø×"Ñ" A s¨CÐ0Ø�]‰]˜A˜s CÐ(ð	
ð ˆB�I‰IÙ˜$  1Ó%¡x°°a¸Ó';¹XÀdÈAÈqÓ=QÐRØôð ×Ñ  V¨SÐ1Ø�]‰]˜B × 1Ñ 1°3Ð7ð	
ð ˆB�I‰IÒ'Ó(Ø×Ñ˜q +×"4Ñ"4°cÐ:Ø�^‰^˜Q × 1Ñ 1°3Ð7ð	
ð ˆB�I‰I’iÓ Ø�]‰]˜B × 1Ñ 1°3Ð7Ø�]‰]˜B × 1Ñ 1°3Ð7ð	
ð ˆB�I‰I’kÓ"Ø�_‰_˜b +×"5Ñ"5°sÐ;Ø�_‰_˜b +×"5Ñ"5°sÐ;ð	
ð1ó ðBAØ
�)‰)ðAà˜) S¨#¨sÐ2Ñ3ðAð ! ¨C°°cÐ!9Ñ:ðAð 
ò	AóC ðBAó,rr   