Ë
    èÿæi»j  ã                   óÂ  — d Z ddlmZ ddlmZ ddlZddlZddl	m
Z
mZ ddlmZ ddlmZmZmZ ddlmZ  ed	d
«      Ze
j*                  ZdZdZdZdZ G d„ de«      Zd„ Zed„ «       Z ee«      d„ «       Zed„ «       Zed„ «       Z ed„ «       Z!ed„ «       Z"ed„ «       Z#ed„ «       Z$ed„ «       Z%ed„ «       Z&ed„ «       Z'ed„ «       Z(ed„ «       Z)ed„ «       Z*ed „ «       Z+ed!„ «       Z,ed"„ «       Z-ed#„ «       Z.ed$„ «       Z/ed%„ «       Z0ed&„ «       Z1ed'„ «       Z2ed(„ «       Z3ed)„ «       Z4ed*„ «       Z5ed+„ «       Z6 G d,„ d-e«      Z7 ejp                  g d‘d‘d‘d‘d‘d‘d‘d‘d‘e7jr                  ‘e7jr                  ‘e7jr                  ‘e7jr                  ‘e7jr                  ‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘e7jr                  ‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘e7jt                  e7jv                  z  ‘e7jt                  e7jv                  z  ‘e7jt                  e7jv                  z  ‘e7jt                  e7jv                  z  ‘e7jt                  e7jv                  z  ‘e7jt                  e7jv                  z  ‘e7jt                  e7jv                  z  ‘e7jt                  e7jv                  z  ‘e7jt                  e7jv                  z  ‘e7jt                  e7jv                  z  ‘d‘d‘d‘d‘d‘d‘d‘e7jx                  e7jv                  z  ‘e7jx                  e7jv                  z  ‘e7jx                  e7jv                  z  ‘e7jx                  e7jv                  z  ‘e7jx                  e7jv                  z  ‘e7jx                  e7jv                  z  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘e7jx                  ‘d‘d‘d‘d‘d‘d‘e7jz                  e7jv                  z  ‘e7jz                  e7jv                  z  ‘e7jz                  e7jv                  z  ‘e7jz                  e7jv                  z  ‘e7jz                  e7jv                  z  ‘e7jz                  e7jv                  z  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘e7jz                  ‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘ej|                  ¬.«      Z? ejp                  g d/¢ej€                  ¬.«      ZA ejp                  g d0¢ej€                  ¬.«      ZB G d1„ d2e«      ZC ejp                  g d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘eCjˆ                  eCjŠ                  z  ‘eCjˆ                  ‘eCjˆ                  ‘eCjˆ                  eCjŒ                  z  ‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘eCjˆ                  ‘eCjˆ                  ‘eCjˆ                  ‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘eCjˆ                  ‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘d‘ej|                  ¬.«      ZGed3„ «       ZHed4„ «       ZIed5„ «       ZJed6„ «       ZKed7„ «       ZLed8„ «       ZMed9„ «       ZNed:„ «       ZOed;„ «       ZPed<„ «       ZQed=„ «       ZRed>„ «       ZSed?„ «       ZTy)@zý
This module contains support functions for more advanced unicode operations.
This is not a public API and is for Numba internal use only. Most of the
functions are relatively straightforward translations of the functions with the
same name in CPython.
é    )Ú
namedtuple)ÚIntEnumN)ÚtypesÚcgutils)Úimpl_ret_untracked)ÚoverloadÚ	intrinsicÚregister_jitable)ÚTypingErrorÚ
typerecordz%upper lower title decimal digit flagsé	   é
   é   é    c                   óH   — e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZy)Ú_PyUnicode_TyperecordMasksé   é   é   é   é   r   é@   é€   é   i   i   i   i   i    i @  N)Ú__name__Ú
__module__Ú__qualname__Ú
ALPHA_MASKÚDECIMAL_MASKÚ
DIGIT_MASKÚ
LOWER_MASKÚLINEBREAK_MASKÚ
SPACE_MASKÚ
TITLE_MASKÚ
UPPER_MASKÚXID_START_MASKÚXID_CONTINUE_MASKÚPRINTABLE_MASKÚNUMERIC_MASKÚCASE_IGNORABLE_MASKÚ
CASED_MASKÚEXTENDED_CASE_MASK© ó    úr/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/cpython/unicode_support.pyr   r   ;   sP   „ Ø€JØ€LØ€JØ€JØ€NØ€JØ€JØ€JØ€NØÐØ€NØ€LØ ÐØ€JØÑr.   r   c                 ó   — t        d«      ‚)Nz(Calling the Python definition is invalid)ÚRuntimeError©Úas    r/   Ú_PyUnicode_gettyperecordr4   M   s   € Ü
ÐAÓ
BÐBr.   c                 óZ  — t        |t        j                  «      st        d«      ‚d„ }t        j                  t        j
                  t        j
                  t        j
                  t        j                  t        j                  t        j                  gt        «      } |t        «      }||fS )z~
    Provides the binding to numba_gettyperecord, returns a `typerecord`
    namedtuple of properties from the codepoint.
    zcodepoint must be an integerc           
      óF  — | j                  t        j                  «      }| j                  t        «      }| j                  t        j                  «      }|j                  «       }| j                  t        j                  «      }|j                  «       }	| j                  t        j                  «      }
|
j                  «       }t        j                  j                  ||||||	|	|g«      }t        j                  |j                  |d¬«      }t        j                  ||d¬«      }t        j                  ||d¬«      }t        j                  ||d¬«      }t        j                  ||d¬«      }t        j                  ||d¬«      }t        j                  ||
d¬«      }||||||g}|j                  ||d	   g|z   «       g }|D ]"  }|j!                  |j#                  |«      «       Œ$ | j%                  ||j&                  t)        |«      «      }t+        | ||j&                  |«      S )
NÚnumba_gettyperecord©ÚnameÚupperÚlowerÚtitleÚdecimalÚdigitÚflagsr   )Úget_value_typer   ÚvoidÚ_Py_UCS4ÚintcÚ
as_pointerÚucharÚushortÚllvmliteÚirÚFunctionTyper   Úget_or_insert_functionÚmoduleÚalloca_onceÚcallÚappendÚloadÚ
make_tupleÚreturn_typeÚtupler   )ÚcontextÚbuilderÚ	signatureÚargsÚll_voidÚ
ll_Py_UCS4Úll_intcÚll_intc_ptrÚll_ucharÚll_uchar_ptrÚ	ll_ushortÚll_ushort_ptrÚfntyÚfnr:   r;   r<   r=   r>   r?   ÚbyrefÚbufÚxÚress                           r/   Údetailsz$_gettyperecord_impl.<locals>.detailsZ   sÚ  € Ø×(Ñ(¬¯©Ó4ˆØ×+Ñ+¬HÓ5ˆ
Ø×(Ñ(¬¯©Ó4ˆØ×(Ñ(Ó*ˆØ×)Ñ)¬%¯+©+Ó6ˆØ×*Ñ*Ó,ˆØ×*Ñ*¬5¯<©<Ó8ˆ	Ø!×,Ñ,Ó.ˆÜ�{‰{×'Ñ'¨ØØØØØØØð2
ó ˆô ×+Ñ+Ø�N‰NØÐ,ô.ˆô ×#Ñ# G¨W¸7ÔCˆÜ×#Ñ# G¨W¸7ÔCˆÜ×#Ñ# G¨W¸7ÔCˆÜ×%Ñ% g¨x¸iÔHˆÜ×#Ñ# G¨X¸GÔDˆÜ×#Ñ# G¨Y¸WÔEˆà˜  w°°uÐ=ˆØ�‰�R˜$˜q™'˜ UÑ*Ô+ØˆÛˆAØ�J‰J�w—|‘| A“Õ'ð ð × Ñ  ¨)×*?Ñ*?ÄÀsÃÓLˆÜ! '¨7°I×4IÑ4IÈ3ÓOÐOr.   )
Ú
isinstancer   ÚIntegerr   Ú
NamedTuplerC   rE   rF   r   rB   )Ú	typingctxÚ	codepointre   ÚtuptyÚsigs        r/   Ú_gettyperecord_implrm   Q   sx   € ô �i¤§¡Ô/ÜÐ8Ó9Ð9ò#PôJ ×ÑœeŸj™j¬%¯*©*´e·j±jÄ%Ç+Á+Ü#Ÿk™k¬5¯<©<ð9Ü:DóF€Eá
”‹/€CØ�ˆ<Ðr.   c                 óŽ   ‡— t        | t        j                  «      rddlmŠ ˆfd„}|S t        | t        j
                  «      rd„ S y)zƒ
    Provides a _PyUnicode_gettyperecord binding, for convenience it will accept
    single character strings and code points.
    r   )Ú_get_code_pointc                 óx   •— t        | «      dkD  rd}t        |«      ‚ ‰| d«      }t        t        |«      «      }|S )Nr   z.gettyperecord takes a single unicode characterr   )ÚlenÚ
ValueErrorrm   rB   )r3   ÚmsgÚ
code_pointÚdataro   s       €r/   Úimplz gettyperecord_impl.<locals>.implŽ   s=   ø€ Ü�1‹v˜ŠzØF�Ü  “oÐ%Ù(¨¨AÓ.ˆJÜ&¤x°
Ó';Ó<ˆDØˆKr.   c                 ó*   — t        t        | «      «      S ©N)rm   rB   r2   s    r/   Ú<lambda>z$gettyperecord_impl.<locals>.<lambda>—   s   € Ô,¬X°a«[Ô9r.   N)rf   r   ÚUnicodeTypeÚnumba.cpython.unicodero   rg   )r3   rv   ro   s     @r/   Úgettyperecord_implr|   …   s=   ø€ ô �!”U×&Ñ&Ô'Ý9ô	ð ˆÜ�!”U—]‘]Ô#Ù9Ð9ð $r.   c                 óŒ   — t        |t        j                  «      st        d«      ‚d„ }t	        t        j
                  «      }||fS )zš
    Accessor function for the _PyUnicode_ExtendedCase array, binds to
    numba_get_PyUnicode_ExtendedCase which wraps the array and does the lookup
    zExpected an indexc                 ó  — | j                  t        «      }| j                  t        j                  «      }t        j
                  j                  ||g«      }t        j                  |j                  |d¬«      }|j                  ||d   g«      S )NÚ numba_get_PyUnicode_ExtendedCaser8   r   )r@   rB   r   rC   rG   rH   rI   r   rJ   rK   rM   )rS   rT   rU   rV   rX   rY   r_   r`   s           r/   re   z(_PyUnicode_ExtendedCase.<locals>.details¥   st   € Ø×+Ñ+¬HÓ5ˆ
Ø×(Ñ(¬¯©Ó4ˆÜ�{‰{×'Ñ'¨
°W°IÓ>ˆÜ×+Ñ+Ø�N‰NØÐ9ô;ˆð �|‰|˜B  a¡ 	Ó*Ð*r.   )rf   r   rg   r   rB   rC   )ri   Úindexre   rl   s       r/   Ú_PyUnicode_ExtendedCaser�   œ   s=   € ô �eœUŸ]™]Ô+ÜÐ-Ó.Ð.ò+ô ”5—:‘:Ó
€CØ�ˆ<Ðr.   c                 ó    — t        | «      }|j                  t        j                  z  rt	        |j
                  dz  «      S | |j
                  z   S )Néÿÿ  )r4   r?   r   r,   r�   r<   ©ÚchÚctypes     r/   Ú_PyUnicode_ToTitlecaser‡   ¶   sB   € ä$ RÓ(€EØ�‰Ô0×CÑCÒCÜ& u§{¡{°VÑ';Ó<Ð<Ø�—‘ÑÐr.   c                 óX   — t        | «      }|j                  t        j                  z  dk7  S ©Nr   )r4   r?   r   r$   r„   s     r/   Ú_PyUnicode_IsTitlecaserŠ   ¿   ó'   € ä$ RÓ(€EØ�;‰;Ô3×>Ñ>Ñ>À!ÑCÐCr.   c                 óX   — t        | «      }|j                  t        j                  z  dk7  S r‰   )r4   r?   r   r&   r„   s     r/   Ú_PyUnicode_IsXidStartr�   Æ   ó'   € ä$ RÓ(€EØ�;‰;Ô3×BÑBÑBÀaÑGÐGr.   c                 óX   — t        | «      }|j                  t        j                  z  dk7  S r‰   )r4   r?   r   r'   r„   s     r/   Ú_PyUnicode_IsXidContinuer�   Í   s'   € ä$ RÓ(€EØ�;‰;Ô3×EÑEÑEÈÑJÐJr.   c                 ól   — t        | «      }|j                  t        j                  z  r|j                  S y©Néÿÿÿÿ)r4   r?   r   r   r=   r„   s     r/   Ú_PyUnicode_ToDecimalDigitr”   Ó   s,   € ä$ RÓ(€EØ‡{�{Ô/×<Ñ<Ò<Ø�}‰}ÐØr.   c                 ól   — t        | «      }|j                  t        j                  z  r|j                  S yr’   )r4   r?   r   r    r>   r„   s     r/   Ú_PyUnicode_ToDigitr–   Ü   s,   € ä$ RÓ(€EØ‡{�{Ô/×:Ñ:Ò:Ø�{‰{ÐØr.   c                 óX   — t        | «      }|j                  t        j                  z  dk7  S r‰   )r4   r?   r   r)   r„   s     r/   Ú_PyUnicode_IsNumericr˜   å   s'   € ä$ RÓ(€EØ�;‰;Ô3×@Ñ@Ñ@ÀAÑEÐEr.   c                 óX   — t        | «      }|j                  t        j                  z  dk7  S r‰   )r4   r?   r   r(   r„   s     r/   Ú_PyUnicode_IsPrintablerš   ì   rŽ   r.   c                 óX   — t        | «      }|j                  t        j                  z  dk7  S r‰   )r4   r?   r   r!   r„   s     r/   Ú_PyUnicode_IsLowercaserœ   ó   r‹   r.   c                 óX   — t        | «      }|j                  t        j                  z  dk7  S r‰   )r4   r?   r   r%   r„   s     r/   Ú_PyUnicode_IsUppercaserž   ú   r‹   r.   c                 óX   — t        | «      }|j                  t        j                  z  dk7  S r‰   )r4   r?   r   r"   r„   s     r/   Ú_PyUnicode_IsLineBreakr       rŽ   r.   c                 ó   — t         ‚rx   ©ÚNotImplementedError©r…   s    r/   Ú_PyUnicode_ToUppercaser¥     ó   € ä
Ðr.   c                 ó   — t         ‚rx   r¢   r¤   s    r/   Ú_PyUnicode_ToLowercaser¨     r¦   r.   c                 óú   — t        | «      }|j                  t        j                  z  rA|j                  dz  }|j                  dz	  }t        |«      D ]  }t        ||z   «      ||<   Œ |S | |j                  z   |d<   y©Nrƒ   é   r   r   )r4   r?   r   r,   r;   Úranger�   ©r…   rd   r†   r€   ÚnÚis         r/   Ú_PyUnicode_ToLowerFullr°     óu   € ä$ RÓ(€EØ�‰Ô0×CÑCÒCØ—‘˜fÑ$ˆØ�K‰K˜2ÑˆÜ�q–ˆAÜ,¨U°Q©YÓ7ˆC�ŠFð àˆØ�%—+‘+Ñ€Cˆ�FØr.   c                 óú   — t        | «      }|j                  t        j                  z  rA|j                  dz  }|j                  dz	  }t        |«      D ]  }t        ||z   «      ||<   Œ |S | |j                  z   |d<   yrª   )r4   r?   r   r,   r<   r¬   r�   r­   s         r/   Ú_PyUnicode_ToTitleFullr³     r±   r.   c                 óú   — t        | «      }|j                  t        j                  z  rA|j                  dz  }|j                  dz	  }t        |«      D ]  }t        ||z   «      ||<   Œ |S | |j                  z   |d<   yrª   )r4   r?   r   r,   r:   r¬   r�   r­   s         r/   Ú_PyUnicode_ToUpperFullrµ   -  sw   € ä$ RÓ(€EØ�‰Ô0×CÑCÒCØ—‘˜fÑ$ˆØ�K‰K˜2ÑˆÜ�q–ˆAä,¨U°Q©YÓ7ˆC�ŠFð ð ˆØ�%—+‘+Ñ€Cˆ�FØr.   c                 ó:  — t        | «      }t        j                  }|j                  |z  rf|j                  dz	  dz  rT|j                  dz  |j                  dz	  z   }|j                  dz	  dz  }t        |«      D ]  }t        ||z   «      ||<   Œ |S t        | |«      S )Né   é   rƒ   r«   )r4   r   r,   r?   r;   r¬   r�   r°   )r…   rd   r†   Úextended_case_maskr€   r®   r¯   s          r/   Ú_PyUnicode_ToFoldedFullrº   <  s–   € ä$ RÓ(€EÜ3×FÑFÐØ‡{�{Ð'Ò'¨U¯[©[¸BÑ->À!Ò,CØ—‘˜vÑ%¨%¯+©+¸Ñ*;Ñ<ˆØ�[‰[˜BÑ !Ñ#ˆÜ�q–ˆAÜ,¨U°Q©YÓ7ˆC�ŠFð àˆÜ! " cÓ*Ð*r.   c                 óX   — t        | «      }|j                  t        j                  z  dk7  S r‰   )r4   r?   r   r+   r„   s     r/   Ú_PyUnicode_IsCasedr¼   J  r‹   r.   c                 óX   — t        | «      }|j                  t        j                  z  dk7  S r‰   )r4   r?   r   r*   r„   s     r/   Ú_PyUnicode_IsCaseIgnorabler¾   Q  s'   € ä$ RÓ(€EØ�;‰;Ô3×GÑGÑGÈ1ÑLÐLr.   c                 ó"   — t        | «      dk  ryy©Nr   r   )r–   r¤   s    r/   Ú_PyUnicode_IsDigitrÁ   X  s   € ä˜"Ó Ò!ØØr.   c                 ó"   — t        | «      dk  ryyrÀ   )r”   r¤   s    r/   Ú_PyUnicode_IsDecimalDigitrÃ   `  s   € ä  Ó$ qÒ(ØØr.   c                 óX   — t        | «      }|j                  t        j                  z  dk7  S r‰   )r4   r?   r   r#   r„   s     r/   Ú_PyUnicode_IsSpacerÅ   h  r‹   r.   c                 óX   — t        | «      }|j                  t        j                  z  dk7  S r‰   )r4   r?   r   r   r„   s     r/   Ú_PyUnicode_IsAlpharÇ   n  r‹   r.   c                   ó(   — e Zd ZdZdZdZdZdZdZdZ	y)	Ú_PY_CTFr   r   é   r   r¸   r   r   N)
r   r   r   ÚLOWERÚUPPERÚALPHAÚDIGITÚALNUMÚSPACEÚXDIGITr-   r.   r/   rÉ   rÉ   }  s%   „ Ø€EØ€EØ€EØ€EØ€EØ€EØ�Fr.   rÉ   )Údtype(   r   r   r   rÊ   r   é   é   r¸   r   r   r   é   é   r   é   é   r   é   é   é   r·   é   é   é   r«   é   é   é   é   é   é   é   r   é!   é"   é#   é$   é%   é&   é'   é(   é)   é*   é+   é,   é-   é.   é/   é0   é1   é2   é3   é4   é5   é6   é7   é8   é9   é:   é;   é<   é=   é>   é?   r   éa   éb   éc   éd   ée   éf   ég   éh   éi   éj   ék   él   ém   én   éo   ép   éq   ér   és   ét   éu   év   éw   éx   éy   éz   é[   é\   é]   é^   é_   é`   r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  é{   é|   é}   é~   é   r   é�   é‚   éƒ   é„   é…   é†   é‡   éˆ   é‰   éŠ   é‹   éŒ   é�   éŽ   é�   é�   é‘   é’   é“   é”   é•   é–   é—   é˜   é™   éš   é›   éœ   é�   éž   éŸ   é    é¡   é¢   é£   é¤   é¥   é¦   é§   é¨   é©   éª   é«   é¬   é­   é®   é¯   é°   é±   é²   é³   é´   éµ   é¶   é·   é¸   é¹   éº   é»   é¼   é½   é¾   é¿   éÀ   éÁ   éÂ   éÃ   éÄ   éÅ   éÆ   éÇ   éÈ   éÉ   éÊ   éË   éÌ   éÍ   éÎ   éÏ   éÐ   éÑ   éÒ   éÓ   éÔ   éÕ   éÖ   é×   éØ   éÙ   éÚ   éÛ   éÜ   éÝ   éÞ   éß   éà   éá   éâ   éã   éä   éå   éæ   éç   éè   éé   éê   éë   éì   éí   éî   éï   éð   éñ   éò   éó   éô   éõ   éö   é÷   éø   éù   éú   éû   éü   éý   éþ   éÿ   (   r   r   r   rÊ   r   rÓ   rÔ   r¸   r   r   r   rÕ   rÖ   r   r×   rØ   r   rÙ   rÚ   rÛ   r·   rÜ   rÝ   rÞ   r«   rß   rà   rá   râ   rã   rä   rå   r   ræ   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r   éA   éB   éC   éD   éE   éF   éG   éH   éI   éJ   éK   éL   éM   éN   éO   éP   éQ   éR   éS   éT   éU   éV   éW   éX   éY   éZ   r  r   r!  r"  r#  r$  r©  rª  r«  r¬  r­  r®  r¯  r°  r±  r²  r³  r´  rµ  r¶  r·  r¸  r¹  rº  r»  r¼  r½  r¾  r¿  rÀ  rÁ  rÂ  r%  r&  r'  r(  r)  r   r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  rf  rg  rh  ri  rj  rk  rl  rm  rn  ro  rp  rq  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r€  r�  r‚  rƒ  r„  r…  r†  r‡  rˆ  r‰  rŠ  r‹  rŒ  r�  rŽ  r�  r�  r‘  r’  r“  r”  r•  r–  r—  r˜  r™  rš  r›  rœ  r�  rž  rŸ  r   r¡  r¢  r£  r¤  r¥  r¦  r§  r¨  c                   ó   — e Zd ZdZdZdZy)Ú
_PY_CTF_LBr   r   r   N)r   r   r   Ú
LINE_BREAKÚ	LINE_FEEDÚCARRIAGE_RETURNr-   r.   r/   rÄ  rÄ  a  s   „ Ø€JØ€IØ�Or.   rÄ  c                 óX   — t        j                  | «      t        j                  d«      z  S )zk
    Equivalent to the CPython macro `Py_CHARMASK()`, masks off all but the
    lowest 256 bits of ch.
    r¨  )r   Úuint8r¤   s    r/   Ú_Py_CHARMASKrÊ  …  s    € ô �;‰;�r‹?œUŸ[™[¨Ó.Ñ.Ð.r.   c                 ó&   — t         t        | «         S )zw
    Equivalent to the CPython macro `Py_TOUPPER()` converts an ASCII range
    code point to the upper equivalent
    )Ú_Py_ctype_toupperrÊ  r¤   s    r/   Ú_Py_TOUPPERrÍ  �  ó   € ô œ\¨"Ó-Ñ.Ð.r.   c                 ó&   — t         t        | «         S )zw
    Equivalent to the CPython macro `Py_TOLOWER()` converts an ASCII range
    code point to the lower equivalent
    )Ú_Py_ctype_tolowerrÊ  r¤   s    r/   Ú_Py_TOLOWERrÑ  ›  rÎ  r.   c                 óH   — t         t        | «         t        j                  z  S )z8
    Equivalent to the CPython macro `Py_ISLOWER()`
    )Ú_Py_ctype_tablerÊ  rÉ   rË   r¤   s    r/   Ú_Py_ISLOWERrÔ  ¦  ó   € ô
 œ<¨Ó+Ñ,¬w¯}©}Ñ<Ð<r.   c                 óH   — t         t        | «         t        j                  z  S )z8
    Equivalent to the CPython macro `Py_ISUPPER()`
    )rÓ  rÊ  rÉ   rÌ   r¤   s    r/   Ú_Py_ISUPPERr×  °  rÕ  r.   c                 óH   — t         t        | «         t        j                  z  S )z8
    Equivalent to the CPython macro `Py_ISALPHA()`
    )rÓ  rÊ  rÉ   rÍ   r¤   s    r/   Ú_Py_ISALPHArÙ  º  rÕ  r.   c                 óH   — t         t        | «         t        j                  z  S )z8
    Equivalent to the CPython macro `Py_ISDIGIT()`
    )rÓ  rÊ  rÉ   rÎ   r¤   s    r/   Ú_Py_ISDIGITrÛ  Ä  rÕ  r.   c                 óH   — t         t        | «         t        j                  z  S )z9
    Equivalent to the CPython macro `Py_ISXDIGIT()`
    )rÓ  rÊ  rÉ   rÑ   r¤   s    r/   Ú_Py_ISXDIGITrÝ  Î  s   € ô
 œ<¨Ó+Ñ,¬w¯~©~Ñ=Ð=r.   c                 óH   — t         t        | «         t        j                  z  S )z8
    Equivalent to the CPython macro `Py_ISALNUM()`
    )rÓ  rÊ  rÉ   rÏ   r¤   s    r/   Ú_Py_ISALNUMrß  Ø  rÕ  r.   c                 óH   — t         t        | «         t        j                  z  S )z8
    Equivalent to the CPython macro `Py_ISSPACE()`
    )rÓ  rÊ  rÉ   rÐ   r¤   s    r/   Ú_Py_ISSPACErá  â  rÕ  r.   c                 óH   — t         t        | «         t        j                  z  S )z&Check if character is ASCII line break)Ú_Py_ctype_islinebreakrÊ  rÄ  rÅ  r¤   s    r/   Ú_Py_ISLINEBREAKrä  ê  s   € ô !¤¨bÓ!1Ñ2´Z×5JÑ5JÑJÐJr.   c                 óH   — t         t        | «         t        j                  z  S )z#Check if character is line feed `
`)rã  rÊ  rÄ  rÆ  r¤   s    r/   Ú_Py_ISLINEFEEDræ  ð  s   € ô !¤¨bÓ!1Ñ2´Z×5IÑ5IÑIÐIr.   c                 óH   — t         t        | «         t        j                  z  S )z)Check if character is carriage return ``)rã  rÊ  rÄ  rÇ  r¤   s    r/   Ú_Py_ISCARRIAGERETURNrè  ö  s   € ô !¤¨bÓ!1Ñ2´Z×5OÑ5OÑOÐOr.   )UÚ__doc__Úcollectionsr   Úenumr   Úllvmlite.irrG   ÚnumpyÚnpÚ
numba.corer   r   Únumba.core.imputilsr   Únumba.core.extendingr   r	   r
   Únumba.core.errorsr   r   Úuint32rB   Ú_Py_TABÚ_Py_LINEFEEDÚ_Py_CARRIAGE_RETURNÚ	_Py_SPACEr   r4   rm   r|   r�   r‡   rŠ   r�   r�   r”   r–   r˜   rš   rœ   rž   r    r¥   r¨   r°   r³   rµ   rº   r¼   r¾   rÁ   rÃ   rÅ   rÇ   rÉ   ÚarrayrÐ   rÎ   rÑ   rÌ   rË   rC   rÓ  rÉ  rÐ  rÌ  rÄ  rÅ  rÆ  rÇ  rã  rÊ  rÍ  rÑ  rÔ  r×  rÙ  rÛ  rÝ  rß  rá  rä  ræ  rè  r-   r.   r/   Ú<module>rù     s  ðñõ #Ý ã Û ç %Ý 4ç FÑ FÝ )ñ ˜Ø?óA€
ð
 �<‰<€ð6 €Ø€ØÐ Ø€	ô  ô  ò$Cð ñ0ó ð0ñf 
Ð
"Ó#ñ:ó $ð:ð, ñó ðð2 ñó ðð ñDó ðDð ñHó ðHð ñKó ðKð
 ñó ðð ñó ðð ñFó ðFð ñHó ðHð ñDó ðDð ñDó ðDð
 ñHó ðHð
 ñó ðð ñó ðð
 ñ	ó ð	ð ñ	ó ð	ð ñ
ó ð
ð ñ	+ó ð	+ð ñDó ðDð ñMó ðMð ñó ðð ñó ðð ñDó ðDð
 ñDó ðDôˆgô ð �"—(‘(ð IØðIàðIð ðIð ð	Ið
 ðIð ðIð ðIð ðIð ðIð ‡M�MðIð ‡M�MðIð ‡M�MðIð ‡M�MðIð ‡M�MðIð ðIð  ð!Ið" ð#Ið$ ð%Ið& ð'Ið( ð)Ið* ð+Ið, ð-Ið. ð/Ið0 ð1Ið2 ð3Ið4 ð5Ið6 ð7Ið8 ð9Ið: ð;Ið< ð=Ið> ð?Ið@ ðAIðB ‡M�MðCIðD ðEIðF ðGIðH ðIIðJ ðKIðL ðMIðN ðOIðP ðQIðR ðSIðT ðUIðV ðWIðX ðYIðZ ð[Ið\ ð]Ið^ ð_Ið` ðaIðb ‡M�M�G—N‘NÑ"ðcIðd ‡M�M�G—N‘NÑ"ðeIðf ‡M�M�G—N‘NÑ"ðgIðh ‡M�M�G—N‘NÑ"ðiIðj ‡M�M�G—N‘NÑ"ðkIðl ‡M�M�G—N‘NÑ"ðmIðn ‡M�M�G—N‘NÑ"ðoIðp ‡M�M�G—N‘NÑ"ðqIðr ‡M�M�G—N‘NÑ"ðsIðt ‡M�M�G—N‘NÑ"ðuIðv ðwIðx ðyIðz ð{Ið| ð}Ið~ ðIð@ ðAIðB ðCIðD ‡M�M�G—N‘NÑ"ðEIðF ‡M�M�G—N‘NÑ"ðGIðH ‡M�M�G—N‘NÑ"ðIIðJ ‡M�M�G—N‘NÑ"ðKIðL ‡M�M�G—N‘NÑ"ðMIðN ‡M�M�G—N‘NÑ"ðOIðP ‡M�MðQIðR ‡M�MðSIðT ‡M�MðUIðV ‡M�MðWIðX ‡M�MðYIðZ ‡M�Mð[Ið\ ‡M�Mð]Ið^ ‡M�Mð_Ið` ‡M�MðaIðb ‡M�MðcIðd ‡M�MðeIðf ‡M�MðgIðh ‡M�MðiIðj ‡M�MðkIðl ‡M�MðmIðn ‡M�MðoIðp ‡M�MðqIðr ‡M�MðsIðt ‡M�MðuIðv ‡M�MðwIðx ðyIðz ð{Ið| ð}Ið~ ðIð@ ðAIðB ðCIðD ‡M�M�G—N‘NÑ"ðEIðF ‡M�M�G—N‘NÑ"ðGIðH ‡M�M�G—N‘NÑ"ðIIðJ ‡M�M�G—N‘NÑ"ðKIðL ‡M�M�G—N‘NÑ"ðMIðN ‡M�M�G—N‘NÑ"ðOIðP ‡M�MðQIðR ‡M�MðSIðT ‡M�MðUIðV ‡M�MðWIðX ‡M�MðYIðZ ‡M�Mð[Ið\ ‡M�Mð]Ið^ ‡M�Mð_Ið` ‡M�MðaIðb ‡M�MðcIðd ‡M�MðeIðf ‡M�MðgIðh ‡M�MðiIðj ‡M�MðkIðl ‡M�MðmIðn ‡M�MðoIðp ‡M�MðqIðr ‡M�MðsIðt ‡M�MðuIðv ‡M�MðwIðx ðyIðz ð{Ið| ð}Ið~ ðIð@ ðAIðB ðCIðB 	ðCIðB ðCIðB ðCIðB ðCIðB ðCIðB ðCIðB ðCIðB ðCIðB  !ðCIðB #$ðCIðB &'ðCIðB )*ðCIðB ,-ðCIðB /0ðCIðB 23ðCIðD ðEIðD 	ðEIðD ðEIðD ðEIðD ðEIðD ðEIðD ðEIðD ðEIðD ðEIðD  !ðEIðD #$ðEIðD &'ðEIðD )*ðEIðD ,-ðEIðD /0ðEIðD 23ðEIðF ðGIðF 	ðGIðF ðGIðF ðGIðF ðGIðF ðGIðF ðGIðF ðGIðF ðGIðF  !ðGIðF #$ðGIðF &'ðGIðF )*ðGIðF ,-ðGIðF /0ðGIðF 23ðGIðH ðIIðH 	ðIIðH ðIIðH ðIIðH ðIIðH ðIIðH ðIIðH ðIIðH ðIIðH  !ðIIðH #$ðIIðH &'ðIIðH )*ðIIðH ,-ðIIðH /0ðIIðH 23ðIIðJ ðKIðJ 	ðKIðJ ðKIðJ ðKIðJ ðKIðJ ðKIðJ ðKIðJ ðKIðJ ðKIðJ  !ðKIðJ #$ðKIðJ &'ðKIðJ )*ðKIðJ ,-ðKIðJ /0ðKIðJ 23ðKIðL ðMIðL 	ðMIðL ðMIðL ðMIðL ðMIðL ðMIðL ðMIðL ðMIðL ðMIðL  !ðMIðL #$ðMIðL &'ðMIðL )*ðMIðL ,-ðMIðL /0ðMIðL 23ðMIðN ðOIðN 	ðOIðN ðOIðN ðOIðN ðOIðN ðOIðN ðOIðN ðOIðN ðOIðN  !ðOIðN #$ðOIðN &'ðOIðN )*ðOIðN ,-ðOIðN /0ðOIðN 23ðOIðP ðQIðP 	ðQIðP ðQIðP ðQIðP ðQIðP ðQIðP ðQIðP ðQIðP ðQIðP  !ðQIðP #$ðQIðP &'ðQIðP )*ðQIðP ,-ðQIðP /0ðQIðP 23ðQIðR 
�‰ôSI€ð\ �B—H‘Hò !ðB 
�‰ôC!Ð ðL �B—H‘Hò !ðB 
�‰ôC!Ð ôH�ô ð !˜Ÿ™ð "Øð"Øð"Ø
ð"Øð"Øð"Øð"Øð"Øð"Øð"Ø ð"à×Ñ˜J×0Ñ0Ñ0ð"ð ×Ñð"ð ×Ñð	"ð
 ×Ñ˜J×6Ñ6Ñ6ð"ð ð"ð 	ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð  !ð"ð #$ð"ð &'ð"ð )*ð"ð ,-ð"ð ×Ñð"ð ×Ñð"ð ×Ñð"ð ð"ð 	ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð  !ð"ð #$ð"ð &'ð"ð )*ð"ð ,-ð"ð /0ð"ð 23ð"ð 56ð"ð ð"ð 	ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð  !ð"ð #$ð"ð &'ð"ð )*ð"ð ,-ð"ð /0ð"ð 23ð"ð 56ð"ð ð"ð 	ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð  !ð"ð #$ð"ð &'ð"ð )*ð"ð ,-ð"ð /0ð"ð 23ð"ð 56ð"ð ð"ð 	ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð  !ð"ð #$ð"ð &'ð"ð )*ð"ð ,-ð"ð /0ð"ð 23ð"ð 56ð"ð ð"ð 	ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð  !ð"ð #$ð"ð &'ð"ð )*ð"ð ,-ð"ð /0ð"ð 23ð"ð 56ð"ð ð"ð 	ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð ð"ð  !ð"ð #$ð"ð &'ð"ð )*ð"ð ,-ð"ð /0ð"ð 23ð"ð 56ð"ð  ×Ñð!"ð" ð#"ð" 	ð#"ð" ð#"ð" ð#"ð" ð#"ð" ð#"ð" ð#"ð" ð#"ð" ð#"ð"  !ð#"ð" #$ð#"ð" &'ð#"ð" )*ð#"ð" ,-ð#"ð" /0ð#"ð" 23ð#"ð" 56ð#"ð$ ð%"ð$ 	ð%"ð$ ð%"ð$ ð%"ð$ ð%"ð$ ð%"ð$ ð%"ð$ ð%"ð$ ð%"ð$  !ð%"ð$ #$ð%"ð$ &'ð%"ð$ )*ð%"ð$ ,-ð%"ð$ /0ð%"ð$ 23ð%"ð$ 56ð%"ð& ð'"ð& 	ð'"ð& ð'"ð& ð'"ð& ð'"ð& ð'"ð& ð'"ð& ð'"ð& ð'"ð&  !ð'"ð& #$ð'"ð& &'ð'"ð& )*ð'"ð& ,-ð'"ð& /0ð'"ð& 23ð'"ð& 56ð'"ð( ð)"ð( 	ð)"ð( ð)"ð( ð)"ð( ð)"ð( ð)"ð( ð)"ð( ð)"ð( ð)"ð(  !ð)"ð( #$ð)"ð( &'ð)"ð( )*ð)"ð( ,-ð)"ð( /0ð)"ð( 23ð)"ð( 56ð)"ð* ð+"ð* 	ð+"ð* ð+"ð* ð+"ð* ð+"ð* ð+"ð* ð+"ð* ð+"ð* ð+"ð*  !ð+"ð* #$ð+"ð* &'ð+"ð* )*ð+"ð* ,-ð+"ð* /0ð+"ð* 23ð+"ð* 56ð+"ð, ð-"ð, 	ð-"ð, ð-"ð, ð-"ð, ð-"ð, ð-"ð, ð-"ð, ð-"ð, ð-"ð,  !ð-"ð, #$ð-"ð, &'ð-"ð, )*ð-"ð, ,-ð-"ð, /0ð-"ð, 23ð-"ð, 56ð-"ð. ð/"ð. 	ð/"ð. ð/"ð. ð/"ð. ð/"ð. ð/"ð. ð/"ð. ð/"ð. ð/"ð.  !ð/"ð. #$ð/"ð. &'ð/"ð. )*ð/"ð. ,-ð/"ð. /0ð/"ð. 23ð/"ð. 56ð/"ð0 ð1"ð0 	ð1"ð0 ð1"ð2 
�‰ô3Ð ð< ñ/ó ð/ð ñ/ó ð/ð ñ/ó ð/ð ñ=ó ð=ð ñ=ó ð=ð ñ=ó ð=ð ñ=ó ð=ð ñ>ó ð>ð ñ=ó ð=ð ñ=ó ð=ð ñKó ðKð
 ñJó ðJð
 ñPó ñPr.   