§
    'ê[fä& ã                   ó”  — d dl Z d dlZd dlZd dlmZ d dlmZ g d¢Z G d„ de¦  «        Z	 G d„ de¦  «        Z
 G d„ d	e¦  «        Z G d
„ de¦  «        Z G d„ de j        ¦  «        Z e¦   «                              ej        ¦  «         eZeez  Zeez  ez  Zed eeiZeez  ez  ez  ez  e z  Z!ee"z  e#z  e$z  e%z  e&z  ez  Z' e(ej)        ¦  «        Z* e(ej+        ¦  «        Z,e*e,z  Z- e(ej.        ¦  «        Z/ e(ej0        ¦  «        Z1 e(d¦  «         e(dg¦  «        z  Z2e- e(d¦  «        z  Z3e- e(d¦  «        z  Z4dZ5 ej6        ¦   «         Z7e7dz  Z8de8z  dz
  Z9eeeee"ee#ee e$eeee%e&dœZ:ee"z  Z;d Z<ee"z  Z=ee=z  Z>d d ed e"e"e=e=iZ?ddddœZ@dZA G d„ d¦  «        ZB eB¦   «         ZC eDeA E                    ¦   «         ¦  «        D ]\  ZFZG eHeCeGeF¦  «         Œdød„ZId„ ZJd„ ZKd „ ZLd!„ ZMd"„ ZNd#„ ZOd$„ ZPdùd&„ZQd'„ ZRd(„ ZSd)„ ZTd*„ ZUd+„ ZVd,„ ZWd-„ ZXd.d/d0d1œZYd2„ ZZd3„ Z[d4„ Z\d5„ Z]d6„ Z^d7„ Z_d8„ Z`d9„ Zad:„ Zbd;„ Zcd<„ Zdd=„ Zed>„ Zfd?„ Zgd@„ ZhdA„ ZidB„ ZjdC„ ZkdD„ ZldE„ ZmdF„ ZndG„ ZodH„ ZpdI„ ZqdJ„ ZrdK„ ZsdL„ ZtdM„ ZudúdN„ZvdO„ ZwdP„ ZxdQ„ ZydR„ ZzdS„ Z{dT„ Z|dU„ Z}dV„ Z~dW„ ZdX„ Z€dY„ Z�dZ„ Z‚d[„ Zƒd\„ Z„d]„ Z…d^„ Z†d_„ Z‡d`„ Zˆda„ Z‰db„ ZŠdc„ Z‹dd„ ZŒde„ Z�df„ ZŽ e�dg E                    ¦   «         ¦  «        Z� e�dh E                    ¦   «         ¦  «        Z‘dûdi„Z’dj„ Z“dk„ Z”dl„ Z•dm„ Z–dnZ—dZ˜dZ™dZšdZ›doZœdpdqdrœZ�e<de"dsede=dtiZždu„ ZŸ G dv„ dw¦  «        Z  G dx„ dye ¦  «        Z¡ G dz„ d{e ¦  «        Z¢ G d|„ d}e¢¦  «        Z£ G d~„ de¢¦  «        Z¤ G d€„ d�e ¦  «        Z¥ G d‚„ dƒe¡¦  «        Z¦ G d„„ d…e ¦  «        Z§ G d†„ d‡e ¦  «        Z¨ G dˆ„ d‰e ¦  «        Z© G dŠ„ d‹e ¦  «        Zª G dŒ„ d�e ¦  «        Z« G dŽ„ d�e¡¦  «        Z¬ G d�„ d‘e¡¦  «        Z­ G d’„ d“e¡¦  «        Z® G d”„ d•e¡¦  «        Z¯ G d–„ d—e¯¦  «        Z° G d˜„ d™e¡¦  «        Z± G dš„ d›e¡¦  «        Z² G dœ„ d�e²¦  «        Z³ G dž„ dŸe¡¦  «        Z´ G d „ d¡e¡¦  «        Zµ G d¢„ d£e ¦  «        Z¶ G d¤„ d¥e ¦  «        Z· G d¦„ d§¦  «        Z¸ G d¨„ d©e ¦  «        Z¹ G dª„ d«e¹¦  «        Zº G d¬„ d­e ¦  «        Z» G d®„ d¯e¡¦  «        Z¼ G d°„ d±e¹¦  «        Z½ G d²„ d³e ¦  «        Z¾ G d´„ dµe ¦  «        Z¿ G d¶„ d·e ¦  «        ZÀ G d¸„ d¹e ¦  «        ZÁ G dº„ d»e¡¦  «        ZÂ G d¼„ d½e ¦  «        ZÃ G d¾„ d¿e ¦  «        ZÄ G dÀ„ dÁe¡¦  «        ZÅ G dÂ„ dÃe ¦  «        ZÆ G dÄ„ dÅe ¦  «        ZÇ G dÆ„ dÇeÇ¦  «        ZÈ G dÈ„ dÉeÇ¦  «        ZÉ G dÊ„ dËeÇ¦  «        ZÊ G dÌ„ dÍeÇ¦  «        ZË G dÎ„ dÏe¡¦  «        ZÌ G dÐ„ dÑe¡¦  «        ZÍ G dÒ„ dÓeÍ¦  «        ZÎ G dÔ„ dÕe¡¦  «        ZÏ G dÖ„ d×e¡¦  «        ZÐ G dØ„ dÙe ¦  «        ZÑ G dÚ„ dÛeÑ¦  «        ZÒ G dÜ„ dÝe§¦  «        ZÓ G dÞ„ dß¦  «        ZÔ G dà„ dá¦  «        ZÕdâ„ ZÖdã„ Z× G dä„ då¦  «        ZØ ejÙ        ¦   «         ZÚi ZÛeÚ Ü                    ¦   «         D ]w\  ZÝ\  ZÞZßeÛ à                    eÞdi f¦  «        \  ZáZâ eãeáeÝeä¬æ¦  «        ZáeáeâfeÛeÞ<   eß Ü                    ¦   «         D ]*\  ZåZæ eãeâ à                    eæd¦  «        eåeä¬æ¦  «        eâeæ<   Œ+ŒxdçdèdédêdëdìdídîœZç e’ddïdð¦  «         e’ddïd%¦  «         e’ddñdð¦  «         e’ddòdð¦  «         e’ddòd%¦  «         e’ddódð¦  «         e’ddód%¦  «        dôœZè eÏ¦   «          e¦¦   «          e¦d%¦  «         e¼¦   «          eÐ¦   «          e´¦   «          e±¦   «         dõœZé eêeé¦  «        Zëeë                      e¬¦   «          e¬d%¦  «         e®¦   «          e­¦   «         döœ¦  «          eµ¦   «          eµ¦   «          eÂ¦   «          eÌ¦   «         d÷œZìdS )üé    N)Údefaultdict)%ÚAÚASCIIÚBÚ	BESTMATCHÚDÚDEBUGÚEÚENHANCEMATCHÚFÚFULLCASEÚIÚ
IGNORECASEÚLÚLOCALEÚMÚ	MULTILINEÚPÚPOSIXÚRÚREVERSEÚSÚDOTALLÚTÚTEMPLATEÚUÚUNICODEÚV0ÚVERSION0ÚV1ÚVERSION1ÚWÚWORDÚXÚVERBOSEÚerrorÚScannerÚ	RegexFlagc                   ó   — e Zd ZdZdd„ZdS )r&   a‰  Exception raised for invalid regular expressions.

    Attributes:

        msg: The unformatted error message
        pattern: The regular expression pattern
        pos: The position in the pattern where compilation failed, or None
        lineno: The line number where compilation failed, unless pos is None
        colno: The column number where compilation failed, unless pos is None
    Nc                 ó–  — t          |t          ¦  «        rdnd}|| _        || _        || _        |�}|�{|                     |d|¦  «        dz   | _        ||                     |d|¦  «        z
  | _        d 	                    ||¦  «        }||v r#|d 	                    | j        | j        ¦  «        z  }t                               | |¦  «         d S )NÚ
ó   
r   é   z{} at position {}z (line {}, column {}))Ú
isinstanceÚstrÚmsgÚpatternÚposÚcountÚlinenoÚrfindÚcolnoÚformatÚ	ExceptionÚ__init__)ÚselfÚmessager1   r2   Únewlines        úE/var/www/piapp/venv/lib/python3.11/site-packages/regex/_regex_core.pyr9   zerror.__init__*   sÕ   € Ý$ W­cÑ2Ô2Ð=�$�$¸ˆØˆŒØˆŒØˆŒØÐ 3 ?Ø!Ÿ-š-¨°°CÑ8Ô8¸1Ñ<ˆDŒKØ˜wŸ}š}¨W°a¸Ñ=Ô=Ñ=ˆDŒJà)×0Ò0°¸#Ñ>Ô>ˆGà˜'Ð!Ð!ØÐ2×9Ò9¸$¼+Ø”*ñô ñ �õ 	×Ò˜4 Ñ)Ô)Ð)Ð)Ð)ó    )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r9   © r>   r=   r&   r&      s2   € € € € € ð	ð 	ð*ð *ð *ð *ð *ð *r>   r&   c                   ó   — e Zd ZdS )Ú_UnscopedFlagSetN©r?   r@   rA   rC   r>   r=   rE   rE   =   ó   € € € € € Ø€Dr>   rE   c                   ó   — e Zd ZdS )Ú
ParseErrorNrF   rC   r>   r=   rI   rI   A   rG   r>   rI   c                   ó   — e Zd ZdS )Ú_FirstSetErrorNrF   rC   r>   r=   rK   rK   E   rG   r>   rK   c                   óª   — e Zd ZdxZZdxZZdxZZdxZ	Z
dxZZdxZZdxZZdxZZd	xZZd
xZZdxZZdxZZdxZZdxZZdxZZ dxZ!Z"dxZ#Z$d„ Z%e&j'        Z'dS )r(   é€   i   i   i €  i @  é   é   é   i   i   é   é    i    é   i   é@   r-   c                 óz  — | j         �
d| j         z  S | j        }g }|dk     }|r| }| j        D ]4}||j        z  r(||j         z  }|                     d|j         z  ¦  «         Œ5|r"|                     t	          |¦  «        ¦  «         d                     |¦  «        }|rt          |¦  «        dk    rd|z  }nd|z  }|S )Nzregex.%sr   Ú|r-   z~(%s)z~%s)Ú_name_Ú_value_Ú	__class__ÚappendÚhexÚjoinÚlen)r:   ÚvalueÚmembersÚnegativeÚmÚress         r=   Ú__repr__zRegexFlag.__repr__]   sæ   € ØŒ;Ð"Ø ¤Ñ+Ð+à”ˆØˆØ˜1’9ˆàð 	Ø�FˆEà”ð 	6ð 	6ˆAØ�q”yÑ ð 6Ø˜!œ)˜Ñ#�Ø—’˜z¨A¬HÑ4Ñ5Ô5Ð5øàð 	'Ø�NŠN�3˜u™:œ:Ñ&Ô&Ð&à�hŠh�wÑÔˆàð 	"Ý�7‰|Œ|˜aÒÐØ ‘m��à˜c‘k�àˆ
r>   N)(r?   r@   rA   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   rc   ÚobjectÚ__str__rC   r>   r=   r(   r(   I   sÐ   € € € € € ØÐ€AˆØÐ€Aˆ	ØÐ€AˆØÐ€AˆàÐ€AˆØÐ€Aˆ
ØÐ€AˆØÐ€Aˆ	ØÐ€AˆØÐ€AˆØÐ€AˆØÐ€AˆØÐ€BˆØÐ€BˆØÐ€AˆØÐ€AˆØÐ€Aˆðð ð ð: Œn€G€G€Gr>   r(   z()|?*+{^$.[\#Ú z -z &_-.)ú||ú~~ú&&ú--rP   r-   )ÚaÚbÚeÚfÚir   ra   ÚpÚrÚsÚur   r    ÚwÚxrN   rO   )ru   rs   r   aæ  
FAILURE
SUCCESS
ANY
ANY_ALL
ANY_ALL_REV
ANY_REV
ANY_U
ANY_U_REV
ATOMIC
BOUNDARY
BRANCH
CALL_REF
CHARACTER
CHARACTER_IGN
CHARACTER_IGN_REV
CHARACTER_REV
CONDITIONAL
DEFAULT_BOUNDARY
DEFAULT_END_OF_WORD
DEFAULT_START_OF_WORD
END
END_OF_LINE
END_OF_LINE_U
END_OF_STRING
END_OF_STRING_LINE
END_OF_STRING_LINE_U
END_OF_WORD
FUZZY
GRAPHEME_BOUNDARY
GREEDY_REPEAT
GROUP
GROUP_CALL
GROUP_EXISTS
KEEP
LAZY_REPEAT
LOOKAROUND
NEXT
PROPERTY
PROPERTY_IGN
PROPERTY_IGN_REV
PROPERTY_REV
PRUNE
RANGE
RANGE_IGN
RANGE_IGN_REV
RANGE_REV
REF_GROUP
REF_GROUP_FLD
REF_GROUP_FLD_REV
REF_GROUP_IGN
REF_GROUP_IGN_REV
REF_GROUP_REV
SEARCH_ANCHOR
SET_DIFF
SET_DIFF_IGN
SET_DIFF_IGN_REV
SET_DIFF_REV
SET_INTER
SET_INTER_IGN
SET_INTER_IGN_REV
SET_INTER_REV
SET_SYM_DIFF
SET_SYM_DIFF_IGN
SET_SYM_DIFF_IGN_REV
SET_SYM_DIFF_REV
SET_UNION
SET_UNION_IGN
SET_UNION_IGN_REV
SET_UNION_REV
SKIP
START_OF_LINE
START_OF_LINE_U
START_OF_STRING
START_OF_WORD
STRING
STRING_FLD
STRING_FLD_REV
STRING_IGN
STRING_IGN_REV
STRING_REV
FUZZY_EXT
c                   ó   — e Zd ZdS )Ú	NamespaceNrF   rC   r>   r=   rw   rw     rG   r>   rw   é   c                 ó  — t          |                      ¦   «         ¦  «        }t          |¦  «        |z
  }|dk     rdS ||z  |z   }ddl}t	          |d¦  «        sdS |                     ||¦  «        D ]}		 | |	= Œ# t          $ r Y Œw xY w|                     ¦   «          i }
t          | ¦  «        D ]3\  }}}}}}|||||||f<   	 |||f         |
||f<   Œ$# t          $ r Y Œ0w xY w|                     ¦   «          |                     |
¦  «         dS )aC  Make room in the given cache.

    Args:
        cache_dict: The cache dictionary to modify.
        args_dict: The dictionary of named list args used by patterns.
        max_length: Maximum # of entries in cache_dict before it is shrunk.
        divisor: Cache will shrink to max_length - 1/divisor*max_length items.
    r   NÚsample)	ÚtupleÚkeysr]   ÚrandomÚhasattrrz   ÚKeyErrorÚclearÚupdate)Ú
cache_dictÚ	args_dictÚlocale_sensitiveÚ
max_lengthÚdivisorÚ
cache_keysÚoverageÚnumber_to_tossr}   Ú
doomed_keyÚsensitivity_dictr1   Úpattern_typeÚflagsÚargsÚdefault_versionÚlocales                    r=   Ú_shrink_cacher‘     s~  € õ �z—’Ñ(Ô(Ñ)Ô)€JÝ�*‰oŒo 
Ñ*€GØ�‚{€{ð 	ˆà 7Ñ*¨WÑ4€Nð €M€M€MÝ�6˜8Ñ$Ô$ð ð 	ˆà—m’m J°Ñ?Ô?ð ð ˆ
ð	Ø˜:Ð&Ð&øÝð 	ð 	ð 	àˆDð	øøøð
 ‡O‚OÑÔÐØÐÝGLÈZÑGXÔGXð ð ÑCˆ�˜u d¨O¸VØKOˆ	�'˜<¨°ÀÐGÑHð	Ø6FÀ|ÐU\ÐG\Ô6]Ð˜\¨7Ð2Ñ3Ð3øÝð 	ð 	ð 	ØˆDð	øøøð ×ÒÑÔÐØ×ÒÐ,Ñ-Ô-Ð-Ð-Ð-s$   Á3A7Á7
BÂBÃ CÃ
CÃCc                 ój   — | j         }|t          z  dk    r
|| j        z  }t          j        ||¦  «        S )zFolds the case of a string.r   )r�   Ú_ALL_ENCODINGSÚguess_encodingÚ_regexÚ	fold_case)ÚinfoÚstringr�   s      r=   Ú
_fold_caser™   ?  s9   € àŒJ€EØ•Ñ 1Ò$Ð$Ø�Ô$Ñ$ˆåÔ˜E 6Ñ*Ô*Ð*r>   c                 óX   — t          t          j        | j        |¦  «        ¦  «        dk    S ©z$Checks whether a character is cased.r-   )r]   r•   Úget_all_casesr�   )r—   Úchars     r=   Ú
is_cased_irž   G  s$   € å�vÔ# D¤J°Ñ5Ô5Ñ6Ô6¸Ò:Ð:r>   c                 óN   — t          t          j        | |¦  «        ¦  «        dk    S r›   )r]   r•   rœ   )r�   r�   s     r=   Ú
is_cased_fr    K  s"   € å�vÔ# E¨4Ñ0Ô0Ñ1Ô1°AÒ5Ð5r>   c                 óŽ   — t          | j        t          z  ¦  «        }t          | ||¦  «        }|sg S |                     |¦  «        S )z&Compiles the firstset for the pattern.)Úboolr�   r   Ú_check_firstsetÚcompile)r—   ÚfsÚreverses      r=   Ú_compile_firstsetr§   O  sH   € å�4”:¥Ñ'Ñ(Ô(€GÝ	˜˜w¨Ñ	+Ô	+€BØð Øˆ	ð �:Š:�gÑÔÐr>   c                 ó¤  — |rd|v rdS t          ¦   «         }t          }|D ]Y}t          |t          ¦  «        r
|j        s dS ||j        z  }|                     |                     t          ¬¦  «        ¦  «         ŒZ|t          t          z  k    rdS t          | t          |¦  «        |t           z  d¬¦  «        }|                     | |d¬¦  «        }|S )z$Checks the firstset for the pattern.N©Ú
case_flagsT©rª   Ú	zerowidth©Úin_set)ÚsetÚNOCASEr.   Ú	CharacterÚpositiverª   ÚaddÚ
with_flagsr   r   ÚSetUnionÚlistÚoptimise)r—   r¦   r¥   r_   rª   ro   s         r=   r£   r£   Y  sæ   € àð �˜��Øˆtõ ‰eŒe€GÝ€JØð 5ð 5ˆÝ�a�Ñ#Ô#ð 	¨A¬Jð 	Ø�4�4ð 	�a”lÑ"ˆ
Ø�Š�A—L’L­F�LÑ3Ô3Ñ4Ô4Ð4Ð4à•h¥Ñ+Ò,Ð,Øˆtõ 
�$�˜W™œ°*Å¸yÑ2HØð
ñ 
ô 
€Bà	�Š�T˜7¨4ˆÑ	0Ô	0€Bà€Ir>   c                 ó>   — g }| D ]}|                      |¦  «         Œ|S )z(Flattens the code from a list of tuples.)Úextend)ÚcodeÚ	flat_codeÚcs      r=   Ú_flatten_coder½   x  s3   € à€IØð ð ˆØ×Ò˜ÑÔÐÐàÐr>   c                 óX   — | j         t          z  }| j         t          z  r|t           z  }|S )zMakes the case flags.)r�   Ú
CASE_FLAGSr   r   )r—   r�   s     r=   Úmake_case_flagsrÀ   €  s0   € àŒJ�Ñ#€Eð „z•EÑð Ø•(�Ñˆà€Lr>   Fc                 ó`   — |rt          |¦  «        S t          |t          | ¦  «        ¬¦  «        S )zMakes a character literal.r©   )r±   rÀ   )r—   r^   r®   s      r=   Úmake_characterrÂ   Š  s3   € àð  å˜ÑÔÐå�U¥°tÑ'<Ô'<Ð=Ñ=Ô=Ð=r>   c                 óB   — t          | ||t          | ¦  «        ¬¦  «        S )zMakes a group reference.r©   )ÚRefGrouprÀ   )r—   ÚnameÚpositions      r=   Úmake_ref_grouprÇ   ’  s!   € å�D˜$ µ_ÀTÑ5JÔ5JÐKÑKÔKÐKr>   c                 ó@   — t          | |t          | ¦  «        ¬¦  «        S )zMakes a string set.r©   )Ú	StringSetrÀ   )r—   rÅ   s     r=   Úmake_string_setrÊ   –  s   € å�T˜4­O¸DÑ,AÔ,AÐBÑBÔBÐBr>   c                 óP   — |r|S |                      t          | ¦  «        ¬¦  «        S )zMakes a property.r©   )r´   rÀ   )r—   Úpropr®   s      r=   Úmake_propertyrÍ   š  s+   € àð Øˆà�?Š?¥o°dÑ&;Ô&;ˆ?Ñ<Ô<Ð<r>   c                 ó  — t          | |¦  «        g}|                      d¦  «        r8|                     t          | |¦  «        ¦  «         |                      d¦  «        °8t          |¦  «        dk    r|d         S t	          |¦  «        S )zParses a pattern, eg. 'a|b|c'.rV   r-   r   )Úparse_sequenceÚmatchrZ   r]   ÚBranch)Úsourcer—   Úbranchess      r=   Ú_parse_patternrÔ   ¡  s…   € å˜v tÑ,Ô,Ð-€HØ
�,Š,�sÑ
Ô
ð 6Ø�Š� v¨tÑ4Ô4Ñ5Ô5Ð5ð �,Š,�sÑ
Ô
ð 6õ ˆ8�}„}˜ÒÐØ˜Œ{ÐÝ�(ÑÔÐr>   c           	      óÐ  — dg}t          |¦  «        }	 | j        }|                      ¦   «         }|t          v �ra|dv r	|| _        �n‡|dk    r&|                     t          | |d¦  «        ¦  «         �nY|dk    r:t          | |¦  «        }|€t          |¦  «        }�n0|                     |¦  «         �n|dk    r‡|j        t          z  r#|                     t          ¦   «         ¦  «         �ná|j        t          z  r#|                     t          ¦   «         ¦  «         �n¯|                     t          ¦   «         ¦  «         �nŒ|dk    r%|                     t          | |¦  «        ¦  «         �na|d	k    r‡|j        t          z  rU|j        t          z  r#|                     t          ¦   «         ¦  «         �n|                     t!          ¦   «         ¦  «         �n÷|                     t#          ¦   «         ¦  «         �nÔ|d
k    r¹|j        t          z  rU|j        t          z  r#|                     t%          ¦   «         ¦  «         �n�|                     t'          ¦   «         ¦  «         �nj|j        t          z  r#|                     t)          ¦   «         ¦  «         �n8|                     t+          ¦   «         ¦  «         �n|dv r®t-          | ||¦  «        }|r+t/          | ||||||¦  «         |                     d¦  «         nÓt1          | |||¦  «        }|r*t3          | |||||¦  «         |                     d¦  «         n•|                     t5          t7          |¦  «        |¬¦  «        ¦  «         nc|                     t5          t7          |¦  «        |¬¦  «        ¦  «         n1|                     t5          t7          |¦  «        |¬¦  «        ¦  «         �Œ¹d„ |D ¦   «         }t9          |¦  «        S )zParses a sequence, eg. 'abc'.NTz)|ú\Fú(ú.ú[ú^ú$z?*+{r©   c                 ó   — g | ]}|®|‘ŒS ©NrC   )Ú.0Úitems     r=   ú
<listcomp>z"parse_sequence.<locals>.<listcomp>ü  s   € Ð>Ð>Ð>˜¨TÐ-=�Ð-=Ð-=Ð-=r>   )rÀ   r2   ÚgetÚSPECIAL_CHARSrZ   Úparse_escapeÚparse_parenr�   r   ÚAnyAllr#   ÚAnyUÚAnyÚ	parse_setr   ÚStartOfLineUÚStartOfLineÚStartOfStringÚ
EndOfLineUÚ	EndOfLineÚEndOfStringLineUÚEndOfStringLineÚparse_quantifierÚapply_quantifierÚparse_fuzzyÚapply_constraintr±   ÚordÚSequence)	rÒ   r—   Úsequencerª   Ú	saved_posÚchÚelementÚcountsÚconstraintss	            r=   rÏ   rÏ   «  sÄ  € àˆv€HÝ  Ñ&Ô&€JðKGØ”Jˆ	Ø�ZŠZ‰\Œ\ˆØ•ÐÑØ�Tˆzˆzà&�”
ÙØ�t’�à—’¥¨V°T¸5Ñ AÔ AÑBÔBÐBÑBØ�s’�å% f¨dÑ3Ô3�Ø�?Ý!0°Ñ!6Ô!6�J‘Jà—O’O GÑ,Ô,Ð,Ñ,Ø�s’�à”:¥Ñ&ð +Ø—O’O¥F¡H¤HÑ-Ô-Ð-Ñ-Ø”Z¥$Ñ&ð +Ø—O’O¥D¡F¤FÑ+Ô+Ð+Ñ+à—O’O¥C¡E¤EÑ*Ô*Ð*Ñ*Ø�s’�à—’¥	¨&°$Ñ 7Ô 7Ñ8Ô8Ð8Ñ8Ø�s’�à”:¥	Ñ)ð 5Ø”z¥DÑ(ð 7Ø Ÿš­©¬Ñ7Ô7Ð7Ñ7à Ÿš­©¬Ñ6Ô6Ð6Ñ6à—O’O¥M¡O¤OÑ4Ô4Ð4Ñ4Ø�s’�à”:¥	Ñ)ð 	;Ø”z¥DÑ(ð 5Ø Ÿš­
©¬Ñ5Ô5Ð5Ñ5à Ÿš­	©¬Ñ4Ô4Ð4Ñ4à”z¥DÑ(ð ;Ø ŸšÕ(8Ñ(:Ô(:Ñ;Ô;Ð;Ñ;à Ÿš­Ñ(9Ô(9Ñ:Ô:Ð:Ñ:Ø�v��å)¨&°$¸Ñ;Ô;�Øð 2å$ V¨T°6¸:ÀrØ ñ+ô +ð +à—O’O DÑ)Ô)Ð)Ð)õ #.¨f°d¸BÀ
Ñ"KÔ"K�KØ"ð 2å(¨°°{ÀJØ# Xñ/ô /ð /à Ÿš¨Ñ-Ô-Ð-Ð-ð !Ÿš­	µ#°b±'´'Ø%/ð)1ñ )1ô )1ñ 2ô 2ð 2ð 2ð —’¥	­#¨b©'¬'¸jÐ IÑ IÔ IÑJÔJÐJÐJð �OŠO�I¥c¨"¡g¤g¸*ÐEÑEÔEÑFÔFÐFñWKGðZ ?Ð> Ð>Ñ>Ô>€HÝ�HÑÔÐr>   c                 ó  — |                      ¦   «         }|€.|rt          d| j        |¦  «        ‚t          d| j        |¦  «        ‚t          |t          t
          t          f¦  «        rt          d| j        |¦  «        ‚|\  }}	| j        }|                      ¦   «         }|dk    rt
          }
n|dk    rt          }
n|| _        t          }
| 	                    ¦   «         s|dk    s|	dk    r |
|||	¦  «        }| 
                    |¦  «         d S )Nzmultiple repeatznothing to repeatú?ú+r-   )Úpopr&   r˜   r.   ÚGreedyRepeatÚ
LazyRepeatÚPossessiveRepeatr2   rá   Úis_emptyrZ   )rÒ   r—   rú   rª   rø   r÷   rö   rù   Ú	min_countÚ	max_countÚrepeateds              r=   rñ   rñ   ÿ  s  € à�lŠl‰nŒn€GØ€Øð 	EÝÐ)¨6¬=¸)ÑDÔDÐDÝÐ'¨¬¸	ÑBÔBÐBå�'�L­*Õ6FÐGÑHÔHð AÝÐ% v¤}°iÑ@Ô@Ð@à!Ñ€IˆyØ”
€IØ	�Š‰Œ€BØ	ˆS‚y€yåˆˆØ	ˆsŠˆå#ˆˆð ˆŒ
Ýˆð ×ÒÑÔð : 9°¢> >°YÀ!²^°^Ø�(˜7 I¨yÑ9Ô9ˆà‡O‚O�GÑÔÐÐÐr>   c                 ó0  — |                      ¦   «         }|€t          d| j        |¦  «        ‚t          |t          ¦  «        r1t          |j        |¦  «        |_        |                     |¦  «         d S |                     t          ||¦  «        ¦  «         d S )Nznothing for fuzzy constraint)rÿ   r&   r˜   r.   ÚGroupÚFuzzyÚ
subpatternrZ   )rÒ   r—   rû   rª   r÷   rö   rù   s          r=   ró   ró     sŒ   € à�lŠl‰nŒn€GØ€ÝÐ2°F´MÀ9ÑMÔMÐMõ �'�5Ñ!Ô!ð 5Ý" 7Ô#5°{ÑCÔCˆÔØ�Š˜Ñ Ô Ð Ð Ð à�Š�˜g {Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4r>   )r   r-   ©r   N©r-   N)rý   Ú*rþ   c                 ót   — t                                |¦  «        }|r|S |dk    rt          | ¦  «        }|r|S dS )zParses a quantifier.ú{N)Ú_QUANTIFIERSrá   Úparse_limited_quantifier)rÒ   r—   rø   Úqrú   s        r=   rð   rð   /  sJ   € å×Ò˜ÑÔ€AØð àˆà	ˆS‚y€yå)¨&Ñ1Ô1ˆØð 	ØˆMàˆ4r>   c                 ó    — | duo
| t           k    S )z,Checks whether a count is above the maximum.N©Ú	UNLIMITED)r3   s    r=   Úis_above_limitr  >  s   € à˜ÐÐ3 ­)Ò!3Ð3r>   c                 óà  — | j         }t          | ¦  «        }|                      d¦  «        r4t          | ¦  «        }t          |pd¦  «        }|rt          |¦  «        nd}n|s	|| _         dS t          |¦  «        x}}|                      d¦  «        s	|| _         dS t	          |¦  «        st	          |¦  «        rt          d| j        |¦  «        ‚|�||k    rt          d| j        |¦  «        ‚||fS )zParses a limited quantifier.ú,r   Nú}zrepeat count too bigz"min repeat greater than max repeat)r2   Úparse_countrÐ   Úintr  r&   r˜   )rÒ   r÷   r  r  s       r=   r  r  B  s  € à”
€IÝ˜FÑ#Ô#€IØ‡|‚|�CÑÔð /Ý Ñ'Ô'ˆ	õ ˜	˜ QÑ'Ô'ˆ	Ø&/Ð9•C˜	‘N”N�N°Tˆ	ˆ	àð 	Ø"ˆFŒJØ�4å # I¡¤Ð.ˆ	�Ià�<Š<˜ÑÔð ØˆŒ
Øˆtå�iÑ Ô ð F¥N°9Ñ$=Ô$=ð FÝÐ*¨F¬M¸9ÑEÔEÐEàÐ ¨YÒ!6Ð!6ÝÐ8¸&¼-Ø
ñô ð 	ð �iÐÐr>   c                 ó¢  — | j         }|dk    rdS i }	 t          | |¦  «         |                      d¦  «        r%t          | |¦  «         |                      d¦  «        °%n# t          $ r || _         Y dS w xY w|                      d¦  «        rt	          | ||¦  «        |d<   |                      d¦  «        st          d| j        | j         ¦  «        ‚|S )z#Parses a fuzzy setting, if present.r  Nr  ú:Útestr  z
expected })r2   Úparse_fuzzy_itemrÐ   rI   Úparse_fuzzy_testr&   r˜   )rÒ   r—   rø   rª   r÷   rû   s         r=   rò   rò   `  sò   € à”
€Ià	ˆS‚y€yØˆtà€KðÝ˜ Ñ-Ô-Ð-Ø�lŠl˜3ÑÔð 	2Ý˜V [Ñ1Ô1Ð1ð �lŠl˜3ÑÔð 	2øøåð ð ð ØˆŒ
Øˆtˆtðøøøð ‡|‚|�CÑÔð IÝ.¨v°t¸ZÑHÔHˆ�FÑà�<Š<˜ÑÔð =Ý�L &¤-°´Ñ<Ô<Ð<àÐs   “A
A ÁA3Á2A3c                 ó†   — | j         }	 t          | |¦  «         dS # t          $ r || _         t          | |¦  «         Y dS w xY w)zParses a fuzzy setting item.N)r2   Úparse_cost_constraintrI   Úparse_cost_equation)rÒ   rû   r÷   s      r=   r  r  x  s_   € à”
€Ið1Ý˜f kÑ2Ô2Ð2Ð2Ð2øÝð 1ð 1ð 1ØˆŒ
å˜F KÑ0Ô0Ð0Ð0Ð0Ð0ð1øøøs   ‰ ›!A ¿A c                 óî  — | j         }|                      ¦   «         }|t          v rkt          | ||¦  «        }t	          | ¦  «        }|€d||<   dS | j         }t          | ¦  «        }|s|dz  }|dk     rt          d| j        |¦  «        ‚d|f||<   dS |t          v rÐ|| _         | j         }t          | ¦  «        }t	          | ¦  «        }	|	€t          ¦   «         ‚t          | ||                      ¦   «         ¦  «        }t	          | ¦  «        }|€t          ¦   «         ‚| j         }t          | ¦  «        }|	s|dz  }|s|dz  }d|cxk    r|k    sn t          d| j        |¦  «        ‚||f||<   dS t          ¦   «         ‚)zParses a cost constraint.Nr  r-   r   úbad fuzzy cost limit)
r2   rá   ÚALPHAÚparse_constraintÚparse_fuzzy_compareÚparse_cost_limitr&   r˜   ÚDIGITSrI   )
rÒ   rû   r÷   rø   Ú
constraintÚmax_incÚcost_posÚmax_costÚmin_costÚmin_incs
             r=   r"  r"  ‚  s±  € à”
€IØ	�Š‰Œ€BØ	�U€{€{å% f¨k¸2Ñ>Ô>ˆ
å% fÑ-Ô-ˆàˆ?à&-ˆK˜
Ñ#Ð#Ð#ð ”zˆHÝ'¨Ñ/Ô/ˆHð ð Ø˜A‘�à˜!Š|ˆ|ÝÐ2°F´MÀ8ÑLÔLÐLà&'¨ kˆK˜
Ñ#Ð#Ð#Ø	�vˆˆàˆŒ
ð ”:ˆÝ# FÑ+Ô+ˆå% fÑ-Ô-ˆØˆ?Ý‘,”,Ðå% f¨k¸6¿:º:¹<¼<ÑHÔHˆ
å% fÑ-Ô-ˆØˆ?Ý‘,”,Ðð ”:ˆÝ# FÑ+Ô+ˆð ð 	Ø˜‰MˆHØð 	Ø˜‰MˆHà�HÐ(Ð(Ò(Ð( Ò(Ð(Ð(Ð(ÝÐ.°´¸xÑHÔHÐHà"*¨HÐ"4ˆ�JÑÐÐå‰lŒlÐr>   c                 óš   — | j         }t          | ¦  «        }	 t          |¦  «        S # t          $ r Y nw xY wt	          d| j        |¦  «        ‚)zParses a cost limit.r%  )r2   r  r  Ú
ValueErrorr&   r˜   )rÒ   r-  Údigitss      r=   r)  r)  ¿  s^   € àŒz€HÝ˜Ñ Ô €FðÝ�6‰{Œ{ÐøÝð ð ð Øˆðøøøõ Ð&¨¬°xÑ
@Ô
@Ð@s   ˜' §
4³4c                 óN   — |dvrt          ¦   «         ‚||v rt          ¦   «         ‚|S )zParses a constraint.Údeis)rI   )rÒ   rû   rø   s      r=   r'  r'  Ë  s1   € à	�ÐÐÝ‰lŒlÐà	ˆ[ÐÐÝ‰lŒlÐà€Ir>   c                 ób   — |                       d¦  «        rdS |                       d¦  «        rdS dS )zParses a cost comparator.z<=TÚ<FN©rÐ   ©rÒ   s    r=   r(  r(  Õ  s9   € à‡|‚|�DÑÔð ØˆtØ	�Š�cÑ	Ô	ð Øˆuàˆtr>   c                 ó¶  — d|v rt          d| j        | j        ¦  «        ‚i }t          | |¦  «         |                      d¦  «        r%t          | |¦  «         |                      d¦  «        °%t          | ¦  «        }|€t          ¦   «         ‚t          t          | ¦  «        ¦  «        }|s|dz  }|dk     rt          d| j        | j        ¦  «        ‚||d<   ||d<   dS )	zParses a cost equation.Úcostzmore than one cost equationrþ   Nr-   r   r%  Úmax)	r&   r˜   r2   Úparse_cost_termrÐ   r(  rI   r  r  )rÒ   rû   r;  r,  r.  s        r=   r#  r#  Þ  sð   € à�ÐÐÝÐ1°6´=À&Ä*ÑMÔMÐMà€Då�F˜DÑ!Ô!Ð!Ø
�,Š,�sÑ
Ô
ð &Ý˜ Ñ%Ô%Ð%ð �,Š,�sÑ
Ô
ð &õ " &Ñ)Ô)€GØ€Ý‰lŒlÐå•;˜vÑ&Ô&Ñ'Ô'€Hàð Ø�A‰ˆà�!‚|€|ÝÐ*¨F¬M¸6¼:ÑFÔFÐFà€Dˆ�Kà€K�ÑÐÐr>   c                 óÖ   — t          | ¦  «        }|                      ¦   «         }|dvrt          ¦   «         ‚||v rt          d| j        | j        ¦  «        ‚t          |pd¦  «        ||<   dS )zParses a cost equation term.Údiszrepeated fuzzy costr-   N)r  rá   rI   r&   r˜   r2   r  )rÒ   r;  Úcoeffrø   s       r=   r=  r=  ù  sf   € å˜ÑÔ€EØ	�Š‰Œ€BØ	�€€Ý‰lŒlÐà	ˆT€z€zÝÐ)¨6¬=¸&¼*ÑEÔEÐEå�5�:˜A‰Œ€Dˆ�H€H€Hr>   c                 óØ  — | j         }|                      ¦   «         }|t          v r‘|dk    rt          | |d¦  «        S |dk    rH|j        t
          z  rt          ¦   «         S |j        t          z  rt          ¦   «         S t          ¦   «         S |dk    rt          | |¦  «        S t          d| j        |¦  «        ‚|rt          t          |¦  «        |¬¦  «        S t          d| j        |¦  «        ‚)NrÖ   FrØ   rÙ   zexpected character setr©   )r2   rá   râ   rã   r�   r   rå   r#   ræ   rç   rè   r&   r˜   r±   rô   )rÒ   r—   rª   r÷   rø   s        r=   r   r     sã   € Ø”
€IØ	�Š‰Œ€BØ	�]ÐÐØ�Š:ˆ:å ¨¨eÑ4Ô4Ð4Ø�3ŠYˆYàŒz�FÑ"ð Ý‘x”x�Ø”�dÑ"ð Ý‘v”v�å‘u”u�Ø�3ŠYˆYå˜V TÑ*Ô*Ð*åÐ0°&´-ÀÑKÔKÐKØ	ð Hå�˜R™œ¨ZÐ8Ñ8Ô8Ð8åÐ,¨f¬m¸YÑGÔGÐGr>   c                 ó6   — |                       t          ¦  «        S )z0Parses a quantifier's count, which can be empty.)Ú	get_whiler*  r9  s    r=   r  r    s   € à×Ò�FÑ#Ô#Ð#r>   c                 ó4  — | j         }|                      d¦  «        }|dk    �r| j         }|                      d¦  «        }|dk    �r| j         }|                      ¦   «         }|dv rt          | |d|dk    ¦  «        S || _         t          | ¦  «        }|                     |¦  «        }|                      d¦  «         |j        }	 t          | |¦  «        }	|                      d¦  «         ||_        t          |j        t          z  ¦  «        | _
        n-# ||_        t          |j        t          z  ¦  «        | _
        w xY w|                     ¦   «          t          |||	¦  «        S |dv rt          | |d|dk    ¦  «        S |d	k    rt          | |¦  «        S |d
k    rt          | ¦  «        S |dk    rt          | |¦  «        S |dk    rt!          | |¦  «        S |dk    rt#          | |¦  «        S |dk    sd|cxk    rdk    rn nt%          | |||¦  «        S |dk    rt'          | ||¦  «        S || _         t)          | |¦  «        S |dk    r�| j         }|                      t-          d¦  «        d¬¦  «        }
|
dd…                              ¦   «         rIt0                               |
¦  «        }|st3          d| j        |¦  «        ‚|                      d¦  «         |S || _         |                     ¦   «         }|j        }	 t          | |¦  «        }	|                      d¦  «         ||_        t          |j        t          z  ¦  «        | _
        n-# ||_        t          |j        t          z  ¦  «        | _
        w xY w|                     ¦   «          t          |||	¦  «        S )z[Parses a parenthesised subpattern or a flag. Returns FLAGS if it's an
    inline flag.
    Trý   r7  ©Ú=ú!rF  Ú>ú)Fr   ú#r×   rV   r   Ú0Ú9ú&r  ú)>©ÚincludeNr-   zunknown verb)r2   rá   Úparse_lookaroundÚ
parse_nameÚ
open_groupÚexpectr�   rÔ   r¢   r%   Úignore_spaceÚclose_groupr  Úparse_extensionÚparse_commentÚparse_conditionalÚparse_atomicÚparse_commonÚparse_call_groupÚparse_call_named_groupÚparse_flags_subpatternrC  r¯   ÚisalphaÚVERBSr&   r˜   )rÒ   r—   r÷   rø   Úsaved_pos_2Úsaved_pos_3rÅ   ÚgroupÚsaved_flagsr
  ÚwordÚverbs               r=   rä   rä   #  sª  € ð ”
€IØ	�Š�DÑ	Ô	€BØ	ˆS‚y�yà”jˆØ�ZŠZ˜ÑÔˆØ�Š9‰9à œ*ˆKØ—’‘”ˆBØ�ZÐÐå'¨°°d¸BÀ#ºIÑFÔFÐFð %ˆFŒJÝ˜fÑ%Ô%ˆDØ—O’O DÑ)Ô)ˆEØ�MŠM˜#ÑÔÐØœ*ˆKðAÝ+¨F°DÑ9Ô9�
Ø—’˜cÑ"Ô"Ð"à(�”
Ý&*¨4¬:½Ñ+?Ñ&@Ô&@�Ô#Ð#øð )�”
Ý&*¨4¬:½Ñ+?Ñ&@Ô&@�Ô#Ð@Ð@Ð@Ð@à×ÒÑÔÐÝ˜˜u jÑ1Ô1Ð1Ø�ÐÐå# F¨D°%¸¸sºÑCÔCÐCØ�Š9ˆ9å" 6¨4Ñ0Ô0Ð0Ø�Š9ˆ9å  Ñ(Ô(Ð(Ø�Š9ˆ9å$ V¨TÑ2Ô2Ð2Ø�Š9ˆ9å ¨Ñ-Ô-Ð-Ø�Š9ˆ9å ¨Ñ-Ô-Ð-Ø�Š9ˆ9˜˜rÐ(Ð(Ò(Ð( SÒ(Ð(Ð(Ð(Ð(å# F¨D°"°kÑBÔBÐBØ�Š9ˆ9å)¨&°$¸ÑDÔDÐDð !ˆŒ
Ý% f¨dÑ3Ô3Ð3à	ˆS‚y€yà”jˆØ×Ò¥ D¡	¤	°5ÐÑ9Ô9ˆØ��1�Œ:×ÒÑÔð 	Ý—9’9˜T‘?”?ˆDØð HÝ˜N¨F¬M¸;ÑGÔGÐGà�MŠM˜#ÑÔÐàˆKð €F„JØ�OŠOÑÔ€EØ”*€Kð9Ý# F¨DÑ1Ô1ˆ
Ø�Š�cÑÔÐà ˆŒ
Ý" 4¤:µÑ#7Ñ8Ô8ˆÔÐøð !ˆŒ
Ý" 4¤:µÑ#7Ñ8Ô8ˆÔÐ8Ð8Ð8Ð8à×ÒÑÔÐå��u˜jÑ)Ô)Ð)s   Ã%D Ä*D<Ë:%M Í*M2c                 óJ  — | j         }|                      ¦   «         }|dk    rát          | ¦  «        }|                     |¦  «        }|                      d¦  «         |j        }	 t          | |¦  «        }|                      d¦  «         ||_        t          |j        t          z  ¦  «        | _	        n-# ||_        t          |j        t          z  ¦  «        | _	        w xY w| 
                    ¦   «          t          |||¦  «        S |dk    rbt          | d¬¦  «        }|                      d¦  «         |                     |¦  «        rt          d| j        |¦  «        ‚t          |||¦  «        S |dk    s|dk    rt!          | ||¦  «        S || _         t          d	| j        |¦  «        ‚)
zParses a Python extension.r7  rH  rI  rF  T)Úallow_numericúcannot refer to an open grouprM  úunknown extension)r2   rá   rR  rS  rT  r�   rÔ   r¢   r%   rU  rV  r  Úis_open_groupr&   r˜   rÇ   r]  )rÒ   r—   r÷   rø   rÅ   rc  rd  r
  s           r=   rW  rW  }  s   € à”
€IØ	�Š‰Œ€BØ	ˆS‚y€yå˜&Ñ!Ô!ˆØ—’ Ñ%Ô%ˆØ�Š�cÑÔÐØ”jˆð	=Ý'¨°Ñ5Ô5ˆJØ�MŠM˜#ÑÔÐà$ˆDŒJÝ"& t¤zµGÑ';Ñ"<Ô"<ˆFÔÐøð %ˆDŒJÝ"& t¤zµGÑ';Ñ"<Ô"<ˆFÔÐ<Ð<Ð<Ð<à×ÒÑÔÐå�T˜5 *Ñ-Ô-Ð-Ø	ˆS‚y€yå˜&°Ð5Ñ5Ô5ˆØ�Š�cÑÔÐØ×Ò˜dÑ#Ô#ð 	ÝÐ7¸¼Øñô ð õ ˜d D¨)Ñ4Ô4Ð4Ø	ˆS‚y€y�B˜#’I�Iå% f¨d°IÑ>Ô>Ð>à€F„JÝ
Ð# V¤]°IÑ
>Ô
>Ð>s   Á#%B1 Â1*Cc                 óÂ   — 	 | j         }|                      d¦  «        }|r|dk    rn|dk    r|                      d¦  «        }ŒA|| _         |                      d¦  «         dS )zParses a comment.TrI  rÖ   N)r2   rá   rT  )rÒ   r÷   r¼   s      r=   rX  rX  ¡  sq   € ð!Ø”Jˆ	Ø�JŠJ�tÑÔˆàð 	�A˜’H�HØà�Š9ˆ9Ø—
’
˜4Ñ Ô ˆAð!ð €F„JØ
‡M‚M�#ÑÔÐàˆ4r>   c                 ó*  — |j         }	 t          | |¦  «        }|                      d¦  «         ||_         t          |j         t          z  ¦  «        | _        n-# ||_         t          |j         t          z  ¦  «        | _        w xY wt          |||¦  «        S )zParses a lookaround.rI  )r�   rÔ   rT  r¢   r%   rU  Ú
LookAround)rÒ   r—   Úbehindr²   rd  r
  s         r=   rQ  rQ  ²  s�   € à”*€Kð9Ý# F¨DÑ1Ô1ˆ
Ø�Š�cÑÔÐà ˆŒ
Ý" 4¤:µÑ#7Ñ8Ô8ˆÔÐøð !ˆŒ
Ý" 4¤:µÑ#7Ñ8Ô8ˆÔÐ8Ð8Ð8Ð8å�f˜h¨
Ñ3Ô3Ð3ó   ‰%A Á*Bc                 ó¤  — |j         }| j        }|                      ¦   «         }|dk    r„|                      ¦   «         }|dv rt          | |d|dk    ¦  «        S |dk    r.|                      ¦   «         }|dv rt          | |d|dk    ¦  «        S || _        t	          d| j        | j        ¦  «        ‚|| _        	 t          | d¦  «        }|                      d¦  «         t          | |¦  «        }|  	                    d	¦  «        rt          | |¦  «        }nt          ¦   «         }|                      d¦  «         ||_         t          |j         t          z  ¦  «        | _        n-# ||_         t          |j         t          z  ¦  «        | _        w xY w|                     ¦   «         r"|                     ¦   «         rt          ¦   «         S t          |||||¦  «        S )
z Parses a conditional subpattern.rý   rE  FrF  r7  Tzexpected lookaround conditionalrI  rV   )r�   r2   rá   Úparse_lookaround_conditionalr&   r˜   rR  rT  rÏ   rÐ   rõ   r¢   r%   rU  r  ÚConditional)rÒ   r—   rd  r÷   rø   rc  Ú
yes_branchÚ	no_branchs           r=   rY  rY  ¾  sÔ  € à”*€KØ”
€IØ	�Š‰Œ€BØ	ˆS‚y€yà�ZŠZ‰\Œ\ˆØ�ÐÐå/°¸¸eÀRÈ3ÂYÑOÔOÐOØ�Š9ˆ9à—’‘”ˆBØ�ZÐÐå3°F¸DÀ$ÈØòIñ ô ð ð ˆŒ
ÝÐ5°v´}Ø
Œ*ñô ð 	ð €F„Jð9Ý˜6 4Ñ(Ô(ˆØ�Š�cÑÔÐÝ# F¨DÑ1Ô1ˆ
Ø�<Š<˜ÑÔð 	#Ý& v¨tÑ4Ô4ˆIˆIå ™
œ
ˆIà�Š�cÑÔÐà ˆŒ
Ý" 4¤:µÑ#7Ñ8Ô8ˆÔÐøð !ˆŒ
Ý" 4¤:µÑ#7Ñ8Ô8ˆÔÐ8Ð8Ð8Ð8à×ÒÑÔð  ×!3Ò!3Ñ!5Ô!5ð Ý‰zŒzÐå�t˜U J°	¸9ÑEÔEÐEs   Â5A>E Å*Fc                 óà  — |j         }	 t          | |¦  «        }|                      d¦  «         ||_         t          |j         t          z  ¦  «        | _        n-# ||_         t          |j         t          z  ¦  «        | _        w xY wt          | |¦  «        }|                      d¦  «        rt          | |¦  «        }nt          ¦   «         }|                      d¦  «         t          |||||¦  «        S )NrI  rV   )
r�   rÔ   rT  r¢   r%   rU  rÏ   rÐ   rõ   ÚLookAroundConditional)rÒ   r—   ro  r²   rd  r
  rt  ru  s           r=   rr  rr  é  sé   € Ø”*€Kð9Ý# F¨DÑ1Ô1ˆ
Ø�Š�cÑÔÐà ˆŒ
Ý" 4¤:µÑ#7Ñ8Ô8ˆÔÐøð !ˆŒ
Ý" 4¤:µÑ#7Ñ8Ô8ˆÔÐ8Ð8Ð8Ð8å ¨Ñ-Ô-€JØ‡|‚|�CÑÔð Ý" 6¨4Ñ0Ô0ˆ	ˆ	å‘J”Jˆ	à
‡M‚M�#ÑÔÐå  ¨°:¸zØñô ð rp  c                 ó&  — |j         }	 t          | |¦  «        }|                      d¦  «         ||_         t          |j         t          z  ¦  «        | _        n-# ||_         t          |j         t          z  ¦  «        | _        w xY wt          |¦  «        S )zParses an atomic subpattern.rI  )r�   rÔ   rT  r¢   r%   rU  ÚAtomic)rÒ   r—   rd  r
  s       r=   rZ  rZ  ý  s‹   € à”*€Kð9Ý# F¨DÑ1Ô1ˆ
Ø�Š�cÑÔÐà ˆŒ
Ý" 4¤:µÑ#7Ñ8Ô8ˆÔÐøð !ˆŒ
Ý" 4¤:µÑ#7Ñ8Ô8ˆÔÐ8Ð8Ð8Ð8å�*ÑÔÐrp  c                 óž  — |j         }t          | |¦  «        g}|j         }|                      d¦  «        rT||_         |                     t          | |¦  «        ¦  «         t	          ||j         ¦  «        }|                      d¦  «        °T||_         |                      d¦  «         t          |¦  «        dk    r|d         S t          |¦  «        S )zParses a common groups branch.rV   rI  r-   r   )Úgroup_countrÏ   rÐ   rZ   r<  rT  r]   rÑ   )rÒ   r—   Úinitial_group_countrÓ   Úfinal_group_counts        r=   r[  r[  	  sÑ   € ð Ô*ÐÝ˜v tÑ,Ô,Ð-€HØÔ(ÐØ
�,Š,�sÑ
Ô
ð EØ.ˆÔØ�Š� v¨tÑ4Ô4Ñ5Ô5Ð5ÝÐ 1°4Ô3CÑDÔDÐð �,Š,�sÑ
Ô
ð Eð
 )€DÔØ
‡M‚M�#ÑÔÐå
ˆ8�}„}˜ÒÐØ˜Œ{ÐÝ�(ÑÔÐr>   c                 óš   — |dk    rd}n||                       t          ¦  «        z   }|                      d¦  «         t          |||¦  «        S )zParses a call to a group.r   rK  rI  )rC  r*  rT  Ú	CallGroup)rÒ   r—   rø   r2   rc  s        r=   r\  r\    sN   € à	ˆS‚y€yØˆˆà�V×%Ò%¥fÑ-Ô-Ñ-ˆà
‡M‚M�#ÑÔÐå�T˜5 #Ñ&Ô&Ð&r>   c                 ól   — t          | ¦  «        }|                      d¦  «         t          |||¦  «        S )zParses a call to a named group.rI  )rR  rT  r  )rÒ   r—   r2   rc  s       r=   r]  r]  &  s3   € å�vÑÔ€EØ
‡M‚M�#ÑÔÐå�T˜5 #Ñ&Ô&Ð&r>   c                 óÎ   — d}	 	 | j         }|                      ¦   «         }|dk    r||                      ¦   «         z  }|t          |         z  }ŒI# t          $ r
 || _         Y nw xY w|S )zParses a set of inline flags.r   TÚV)r2   rá   ÚREGEX_FLAGSr   )rÒ   r�   r÷   rø   s       r=   Úparse_flag_setr„  -  s‚   € à€Eðð	%Øœ
ˆIØ—’‘”ˆBØ�SŠyˆyØ�f—j’j‘l”lÑ"�Ø•[ ”_Ñ$ˆEð	%øõ ð ð ð ØˆŒ
ˆ
ˆ
ðøøøð €Ls   „A
A ÁA"Á!A"c                 óÒ   — t          | ¦  «        }|                      d¦  «        r-t          | ¦  «        }|st          d| j        | j        ¦  «        ‚nd}|t
          z  rd|_        ||fS )z!Parses flags being turned on/off.Ú-z$bad inline flags: no flags after '-'r   T)r„  rÐ   r&   r˜   r2   r   Úinline_locale©rÒ   r—   Úflags_onÚ	flags_offs       r=   Úparse_flagsr‹  =  s‚   € å˜fÑ%Ô%€HØ‡|‚|�CÑÔð Ý" 6Ñ*Ô*ˆ	Øð 	ÝÐ>ÀÄØŒjñô ð ð	ð ˆ	à•&Ñð "à!ˆÔà�YÐÐr>   c                 ót  — |j         }|j         |z  | z  |_         t          |j         t          z  ¦  «        | _        	 t	          | |¦  «        }|                      d¦  «         ||_         t          |j         t          z  ¦  «        | _        n-# ||_         t          |j         t          z  ¦  «        | _        w xY w|S )z&Parses a subpattern with scoped flags.rI  )r�   r¢   r%   rU  rÔ   rT  )rÒ   r—   r‰  rŠ  rd  r
  s         r=   Úparse_subpatternr�  N  s¯   € à”*€KØ”*˜xÑ'¨I¨:Ñ5€D„JÝ˜tœz­GÑ3Ñ4Ô4€FÔð9Ý# F¨DÑ1Ô1ˆ
Ø�Š�cÑÔÐà ˆŒ
Ý" 4¤:µÑ#7Ñ8Ô8ˆÔÐøð !ˆŒ
Ý" 4¤:µÑ#7Ñ8Ô8ˆÔÐ8Ð8Ð8Ð8àÐs   ½%B Â*B5c                 ó  — t          | |¦  «        \  }}|t          z  rt          d| j        | j        ¦  «        ‚||z  rt          d| j        | j        ¦  «        ‚||j         z  t          z  }|r$|xj        |z  c_        t          |j        ¦  «        ‚|t           z  }|                      d¦  «        rt          | |||¦  «        S |                      d¦  «        rt          | |||¦  «         dS t          d| j        | j        ¦  «        ‚)zÆParses a flags subpattern. It could be inline flags or a subpattern
    possibly with local flags. If it's a subpattern, then that's returned;
    if it's a inline flags, then None is returned.
    z-bad inline flags: cannot turn off global flagz(bad inline flags: flag turned on and offr  rI  Nrj  )
r‹  ÚGLOBAL_FLAGSr&   r˜   r2   Úglobal_flagsrE   rÐ   r�  Úparse_positional_flags)rÒ   r—   r‰  rŠ  Únew_global_flagss        r=   r^  r^  \  s3  € õ
 & f¨dÑ3Ô3Ñ€Hˆià•<Ñð %ÝÐCØ
Œ-˜œñ%ô %ð 	%ð �)Ñð ÝÐ>ÀÄØ
Œ*ñô ð 	ð ! DÔ$5Ð#5Ñ5½ÑEÐØð 2ØÐÔÐ-Ñ-ÐÔõ ˜tÔ0Ñ1Ô1Ð1ð •�Ñ€Hà‡|‚|�CÑÔð CÝ ¨¨h¸	ÑBÔBÐBà‡|‚|�CÑÔð Ý˜v t¨X°yÑAÔAÐAØˆtå
Ð# V¤]°F´JÑ
?Ô
?Ð?r>   c                 ón   — |j         |z  | z  |_         t          |j         t          z  ¦  «        | _        dS )zParses positional flags.N)r�   r¢   r%   rU  rˆ  s       r=   r‘  r‘    s4   € à”*˜xÑ'¨I¨:Ñ5€D„JÝ˜tœz­GÑ3Ñ4Ô4€FÔÐÐr>   c                 ó|  — |                       t          d¦  «        d¬¦  «        }|st          d| j        | j        ¦  «        ‚|                     ¦   «         r7|rdnd}|rt          |¦  «        |k     rt          d| j        | j        ¦  «        ‚n/|                     ¦   «         st          d| j        | j        ¦  «        ‚|S )zParses a name.rN  FrO  zmissing group namer   r-   zbad character in group name)rC  r¯   r&   r˜   r2   Úisdigitr  Úisidentifier)rÒ   rh  Úallow_group_0rÅ   Ú	min_groups        r=   rR  rR  „  sÔ   € à×Ò�C ™IœI¨uÐÑ5Ô5€Dàð EÝÐ(¨&¬-¸¼ÑDÔDÐDà‡|‚|�~„~ð Ø&Ð-�A�A¨Aˆ	Øð 	¥ D¡	¤	¨IÒ 5Ð 5ÝÐ5°v´}ØŒjñô ð ð !6ð × Ò Ñ"Ô"ð 	ÝÐ5°v´}ØŒjñô ð ð €Kr>   c                 ó4   — t          d„ | D ¦   «         ¦  «        S )z!Checks whether a string is octal.c              3   ó(   K  — | ]}|t           v V — Œd S rÝ   )Ú
OCT_DIGITS©rÞ   rø   s     r=   ú	<genexpr>zis_octal.<locals>.<genexpr>™  ó'   è è € Ð1Ð1 Bˆr•ZÐÐ1Ð1Ð1Ð1Ð1Ð1r>   ©Úall©r˜   s    r=   Úis_octalr¢  —  ó   € åÐ1Ð1¨&Ð1Ñ1Ô1Ñ1Ô1Ð1r>   c                 ó4   — t          d„ | D ¦   «         ¦  «        S )z#Checks whether a string is decimal.c              3   ó(   K  — | ]}|t           v V — Œd S rÝ   )r*  rœ  s     r=   r�  zis_decimal.<locals>.<genexpr>�  s&   è è € Ð-Ð- ˆr•Vˆ|Ð-Ð-Ð-Ð-Ð-Ð-r>   rŸ  r¡  s    r=   Ú
is_decimalr¦  ›  s   € åÐ-Ð- fÐ-Ñ-Ô-Ñ-Ô-Ð-r>   c                 ó4   — t          d„ | D ¦   «         ¦  «        S )z'Checks whether a string is hexadecimal.c              3   ó(   K  — | ]}|t           v V — Œd S rÝ   )Ú
HEX_DIGITSrœ  s     r=   r�  z!is_hexadecimal.<locals>.<genexpr>¡  rž  r>   rŸ  r¡  s    r=   Úis_hexadecimalrª  Ÿ  r£  r>   c           
      ób  — | j         }d| _         |                      ¦   «         }|| _         |st          d| j        | j        ¦  «        ‚|t
          v rt          | ||t
          |         ||¦  «        S |dk    rO|sM| j        }	 t          | |¦  «        S # t          $ r
 || _        Y nw xY wt          |t          |¦  «        |¦  «        S |dk    r|st          ¦   «         S |dk    r|st          | |¦  «        S |dk    rt          | ||¦  «        S |dv rt          | ||dk    |¦  «        S |d	k    rr|spg d
¢}|j        t          k    r|                     g d¢¦  «         t#          t%          t'          ddg¦  «        t)          |d„ |D ¦   «         ¦  «        g¦  «        ¦  «        S |dk    r|st+          ¦   «         S |t,          v r¾|sH|j        t0          z  rt2                               |¦  «        }nt4                               |¦  «        }|r|S t6                               |¦  «        }|r|S t8                               |¦  «        }|rt;          t          |¦  «        ¦  «        S t          d|z  | j        | j        ¦  «        ‚|t<          v rt?          | |||¦  «        S t          |t          |¦  «        |¦  «        S )zParses an escape sequence.Fúbad escape (end of pattern)ÚgÚGr   ÚNÚpPrp   r   )é
   é   é   é   )é…   i(   i)   r´  r±  c                 ó,   — g | ]}t          |¦  «        ‘ŒS rC   ©r±   ©rÞ   r¼   s     r=   rà   z parse_escape.<locals>.<listcomp>Ë  s6   € ð Dð Dð DØõ ENÈaÁLÄLð Dð Dð Dr>   r$   úbad escape \%s) rU  rá   r&   r˜   r2   ÚHEX_ESCAPESÚparse_hex_escapeÚparse_group_refrÂ   rô   ÚSearchAnchorÚparse_string_setÚparse_named_charÚparse_propertyr”   r   r¹   ry  rÑ   ÚStringrµ   ÚGraphemer&  r�   r#   ÚWORD_POSITION_ESCAPESÚPOSITION_ESCAPESÚCHARSET_ESCAPESÚCHARACTER_ESCAPESr±   r*  Úparse_numeric_escape)rÒ   r—   r®   Úsaved_ignorerø   r÷   Úcharsetr^   s           r=   rã   rã   £  sö  € àÔ&€LØ€FÔØ	�Š‰Œ€BØ&€FÔØð NåÐ1°6´=À&Ä*ÑMÔMÐMØ	�[ÐÐå ¨¨bµ+¸b´/À6È2ÑNÔNÐNØ	ˆsŠˆ˜6ˆà”Jˆ	ð	#Ý" 6¨4Ñ0Ô0Ð0øÝð 	#ð 	#ð 	#à"ˆFŒJˆJˆJð	#øøøõ ˜d¥C¨¡G¤G¨VÑ4Ô4Ð4Ø	ˆsŠˆ˜6ˆå‰~Œ~ÐØ	ˆsŠˆ˜6ˆå ¨Ñ-Ô-Ð-Ø	ˆsŠˆå ¨¨fÑ5Ô5Ð5Ø	ˆtˆˆå˜f d¨B°#ªI°vÑ>Ô>Ð>Ø	ˆsŠˆ˜6ˆà*Ð*Ð*ˆØÔ¥'Ò)Ð)Ø�NŠNÐ1Ð1Ð1Ñ2Ô2Ð2å•f�f d¨D \Ñ2Ô2µH¸Tð Dð DØðDñ Dô Dñ 5ô 5ð ñ ô ñ  ô  ð 	 à	ˆsŠˆ˜6ˆå‰zŒzÐØ	�uˆˆð ð 	ØŒz�DÑ ð 1Ý-×1Ò1°"Ñ5Ô5��å(×,Ò,¨RÑ0Ô0�àð Ø�å×#Ò# BÑ'Ô'ˆØð 	ØˆLå!×%Ò% bÑ)Ô)ˆØð 	)Ý�S ™ZœZÑ(Ô(Ð(åÐ%¨Ñ*¨F¬M¸6¼:ÑFÔFÐFØ	�vˆˆå# F¨D°"°fÑ=Ô=Ð=õ ˜d¥C¨¡G¤G¨VÑ4Ô4Ð4s   Á?B ÂB#Â"B#c                 ó.  — |s|dk    rt          | ||g|¦  «        S |}| j        }|                      ¦   «         }|t          v rˆ||z  }| j        }|                      ¦   «         }t	          |¦  «        rY|t
          v rP|j        t          z  }|t          k    s|t          k    rd}nd}t          ||z   d¦  «        |z  }t          ||¦  «        S || _        |                     |¦  «        rt          d| j        | j        ¦  «        ‚t          ||| j        ¦  «        S )z!Parses a numeric escape sequence.rK  éÿ   éÿ  rP   ri  )Úparse_octal_escaper2   rá   r*  r¢  r›  r�   r“   r   r   r  rÂ   rk  r&   r˜   rÇ   )	rÒ   r—   rø   r®   r3  r÷   ÚencodingÚ
octal_maskr^   s	            r=   rÇ  rÇ  ì  s#  € àð >��s’�å! &¨$°°°fÑ=Ô=Ð=ð €FØ”
€IØ	�Š‰Œ€BØ	�V€|€|à�"‰ˆØ”Jˆ	Ø�ZŠZ‰\Œ\ˆÝ�FÑÔð 		/ ¥jÐ 0Ð 0à”z¥NÑ2ˆHØ�5Ò Ð  HµÒ$6Ð$6Ø!�
�
à"�
å˜ ™ QÑ'Ô'¨*Ñ4ˆEÝ! $¨Ñ.Ô.Ð.ð €F„JØ×Ò˜&Ñ!Ô!ð PÝÐ3°V´]ÀFÄJÑOÔOÐOå˜$ ¨¬
Ñ3Ô3Ð3r>   c                 ód  — | j         }|                      ¦   «         }t          |¦  «        dk     rU|t          v rL|                     |¦  «         | j         }|                      ¦   «         }t          |¦  «        dk     r	|t          v °L|| _         	 t          d                     |¦  «        d¦  «        }t          |||¦  «        S # t          $ re |d         t          v r1t          dd                     |¦  «        z  | j
        | j         ¦  «        ‚t          d|d         z  | j
        | j         ¦  «        ‚w xY w)z Parses an octal escape sequence.é   rf   rP   r   zincomplete escape \%sr¹  )r2   rá   r]   r›  rZ   r  r\   rÂ   r2  r&   r˜   )rÒ   r—   r3  r®   r÷   rø   r^   s          r=   rÍ  rÍ    s)  € à”
€IØ	�Š‰Œ€BÝ
ˆf‰+Œ+˜Š/ˆ/˜b¥JÐ.Ð.Ø�Š�bÑÔÐØ”Jˆ	Ø�ZŠZ‰\Œ\ˆõ ˆf‰+Œ+˜Š/ˆ/˜b¥JÐ.Ð.ð
 €F„Jð	Ý�B—G’G˜F‘O”O QÑ'Ô'ˆÝ˜d E¨6Ñ2Ô2Ð2øÝð ð ð Ø�!Œ9�
Ð"Ð"ÝÐ0°2·7²7¸6±?´?ÑBØŒm˜VœZñ)ô )ð )õ Ð)¨F°1¬IÑ5°v´}ØŒjñô ð ðøøøs   Â3C  Ã A/D/c                 óì  — | j         }g }t          |¦  «        D ]b}|                      ¦   «         }	|	t          vr.t	          d|›d                     |¦  «        ›�| j        |¦  «        ‚|                     |	¦  «         Œc	 t          d                     |¦  «        d¦  «        }
|
dk     rt          ||
|¦  «        S n# t          $ r Y nw xY wt	          d|›d                     |¦  «        ›�| j        |¦  «        ‚)zParses a hex escape sequence.úincomplete escape \rf   rQ   i   zbad hex escape \)r2   Úrangerá   r©  r&   r\   r˜   rZ   r  rÂ   r2  )rÒ   r—   ÚescÚexpected_lenr®   Útyper÷   r3  ro   rø   r^   s              r=   r»  r»  "  s  € à”
€IØ€FÝ�<Ñ Ô ð ð ˆØ�ZŠZ‰\Œ\ˆØ•ZÐÐÝ�%°d°d¸B¿GºGÀF¹O¼O¸OÐLØŒm˜Yñ(ô (ð (à�Š�bÑÔÐÐð7Ý�B—G’G˜F‘O”O RÑ(Ô(ˆð �8ÒÐÝ! $¨¨vÑ6Ô6Ð6ð øõ ð ð ð Øˆðøøøõ ˆ%¨3¨3°·²¸±´°Ð@Ø„m�Yñ ô  ð  s   Á=#B8 Â8
CÃCc                 ó  — |                       d¦  «         | j        }t          | d¦  «        }|                       d¦  «         |                     |¦  «        rt	          d| j        | j        ¦  «        ‚t          |||¦  «        S )zParses a group reference.r7  TrH  ri  )rT  r2   rR  rk  r&   r˜   rÇ   )rÒ   r—   r÷   rÅ   s       r=   r¼  r¼  9  s|   € à
‡M‚M�#ÑÔÐØ”
€IÝ�f˜dÑ#Ô#€DØ
‡M‚M�#ÑÔÐØ×Ò˜$ÑÔð PÝÐ3°V´]ÀFÄJÑOÔOÐOå˜$  iÑ0Ô0Ð0r>   c                 óâ   — |                       d¦  «         t          | d¦  «        }|                       d¦  «         |�	||j        vrt          d| j        | j        ¦  «        ‚t          ||¦  «        S )zParses a string set reference.r7  TrH  Nzundefined named list)rT  rR  Úkwargsr&   r˜   r2   rÊ   )rÒ   r—   rÅ   s      r=   r¾  r¾  D  sm   € à
‡M‚M�#ÑÔÐÝ�f˜dÑ#Ô#€DØ
‡M‚M�#ÑÔÐØ€|�t 4¤;Ð.Ð.ÝÐ*¨F¬M¸6¼:ÑFÔFÐFå˜4 Ñ&Ô&Ð&r>   c                 óž  — | j         }|                      d¦  «        r�|                      t          d¬¦  «        }|                      d¦  «        r\	 t	          j        |¦  «        }t          |t          |¦  «        |¦  «        S # t          $ r t          d| j
        | j         ¦  «        ‚w xY w|| _         t          |t          d¦  «        |¦  «        S )zParses a named character.r  T)Úkeep_spacesr  úundefined character namer¯  )r2   rÐ   rC  ÚNAMED_CHAR_PARTÚunicodedataÚlookuprÂ   rô   r   r&   r˜   )rÒ   r—   r®   r÷   rÅ   r^   s         r=   r¿  r¿  N  sÐ   € à”
€IØ‡|‚|�CÑÔð Ø×Ò¥¸TÐÑBÔBˆØ�<Š<˜ÑÔð 	ðÝ#Ô*¨4Ñ0Ô0�Ý% d­C°©J¬J¸Ñ?Ô?Ð?øÝð ð ð ÝÐ6¸¼Ø”*ñô ð ðøøøð €F„JÝ˜$¥ C¡¤¨&Ñ1Ô1Ð1s   Á1B Â&B'c                 ó´  — | j         }|                      ¦   «         }|dk    rd|                      d¦  «        }t          | ¦  «        \  }}|                      d¦  «        r't	          ||||k    | ¦  «        }	t          ||	|¦  «        S n)|r'|dv r#t	          d||| ¦  «        }	t          ||	|¦  «        S || _         |rdnd}t          |t          |¦  «        |¦  «        S )zParses a Unicode property.r  rÚ   r  ÚCLMNPSZNrp   r   )r2   rá   rÐ   Úparse_property_nameÚlookup_propertyrÍ   rÂ   rô   )
rÒ   r—   r²   r®   r÷   rø   ÚnegateÚ	prop_namerÅ   rÌ   s
             r=   rÀ  rÀ  ^  sê   € à”
€IØ	�Š‰Œ€BØ	ˆS‚y€yØ—’˜cÑ"Ô"ˆÝ-¨fÑ5Ô5‰ˆ	�4Ø�<Š<˜ÑÔð 	5å" 9¨d°HÀÒ4FÈÑOÔOˆDÝ   t¨VÑ4Ô4Ð4ð	5ð 
ð 1��i��å˜t R¨°6Ñ:Ô:ˆÝ˜T 4¨Ñ0Ô0Ð0ð €F„JØÐ	!ˆˆ˜c€BÝ˜$¥ B¡¤¨Ñ0Ô0Ð0r>   c                 ó,  — |                       t          ¦  «        }| j        }|                      ¦   «         }|rQ|dv rM|}|                       t          t          d¦  «        z  ¦  «                             ¦   «         }|r| j        }nd|}}nd}|| _        ||fS )z/Parses a property name, which may be qualified.z:=z &_-./N)rC  ÚPROPERTY_NAME_PARTr2   rá   ÚALNUMr¯   Ústrip)rÒ   rÅ   r÷   rø   ræ  s        r=   rã  rã  s  s�   € à×ÒÕ.Ñ/Ô/€DØ”
€Ià	�Š‰Œ€BØ	ð ˆb�DˆjˆjØˆ	Ø×Ò¥­¨H©¬Ñ 5Ñ6Ô6×<Ò<Ñ>Ô>ˆàð 	.àœ
ˆIˆIð # I�tˆIˆIàˆ	à€F„JØ�dˆ?Ðr>   c                 óÞ  — |j         t          z  pt          }| j        }d| _        |                      d¦  «        }	 |t
          k    rt          | |¦  «        }nt          | |¦  «        }|                      d¦  «        st          d| j	        | j
        ¦  «        ‚	 || _        n# || _        w xY w|r|                     |j         ¬¦  «        }|                     t          |¦  «        ¬¦  «        }|S )zParses a character set.FrÚ   ú]ú	missing ]©r²   r©   )r�   Ú_ALL_VERSIONSÚDEFAULT_VERSIONrU  rÐ   r   Úparse_set_imp_unionÚparse_set_unionr&   r˜   r2   r´   r²   rÀ   )rÒ   r—   ÚversionrÈ  rå  rß   s         r=   rè   rè   ‰  sö   € àŒz�MÑ)Ð=­o€GàÔ&€LØ€FÔà�\Š\˜#ÑÔ€Fð	+Ø•hÒÐÝ& v¨tÑ4Ô4ˆDˆDå" 6¨4Ñ0Ô0ˆDà�|Š|˜CÑ Ô ð 	@Ý˜ V¤]°F´JÑ?Ô?Ð?ð	@ð +ˆÔÐø˜lˆÔÐ*Ð*Ð*Ð*àð ;Ø�Š¨D¬MÐ(9ˆÑ:Ô:ˆà�?Š?¥o°dÑ&;Ô&;ˆ?Ñ<Ô<€Dà€Ks   »AB  Â 	B)c                 ó  — t          | |¦  «        g}|                      d¦  «        r8|                     t          | |¦  «        ¦  «         |                      d¦  «        °8t          |¦  «        dk    r|d         S t	          ||¦  «        S )zParses a set union ([x||y]).rg   r-   r   )Úparse_set_symm_diffrÐ   rZ   r]   rµ   ©rÒ   r—   Úitemss      r=   rò  rò  £  s…   € å  ¨Ñ.Ô.Ð/€EØ
�,Š,�tÑ
Ô
ð 8Ø�ŠÕ(¨°Ñ6Ô6Ñ7Ô7Ð7ð �,Š,�tÑ
Ô
ð 8õ ˆ5�z„z�Q‚€Ø�QŒxˆÝ�D˜%Ñ Ô Ð r>   c                 ó  — t          | |¦  «        g}|                      d¦  «        r8|                     t          | |¦  «        ¦  «         |                      d¦  «        °8t          |¦  «        dk    r|d         S t	          ||¦  «        S )z+Parses a set symmetric difference ([x~~y]).rh   r-   r   )Úparse_set_interrÐ   rZ   r]   Ú
SetSymDiffrö  s      r=   rõ  rõ  ­  s„   € å˜V TÑ*Ô*Ð+€EØ
�,Š,�tÑ
Ô
ð 4Ø�Š•_ V¨TÑ2Ô2Ñ3Ô3Ð3ð �,Š,�tÑ
Ô
ð 4õ ˆ5�z„z�Q‚€Ø�QŒxˆÝ�d˜EÑ"Ô"Ð"r>   c                 ó  — t          | |¦  «        g}|                      d¦  «        r8|                     t          | |¦  «        ¦  «         |                      d¦  «        °8t          |¦  «        dk    r|d         S t	          ||¦  «        S )z#Parses a set intersection ([x&&y]).ri   r-   r   )Úparse_set_diffrÐ   rZ   r]   ÚSetInterrö  s      r=   rù  rù  ·  s„   € å˜F DÑ)Ô)Ð*€EØ
�,Š,�tÑ
Ô
ð 3Ø�Š•^ F¨DÑ1Ô1Ñ2Ô2Ð2ð �,Š,�tÑ
Ô
ð 3õ ˆ5�z„z�Q‚€Ø�QŒxˆÝ�D˜%Ñ Ô Ð r>   c                 ó  — t          | |¦  «        g}|                      d¦  «        r8|                     t          | |¦  «        ¦  «         |                      d¦  «        °8t          |¦  «        dk    r|d         S t	          ||¦  «        S )z!Parses a set difference ([x--y]).rj   r-   r   )rñ  rÐ   rZ   r]   ÚSetDiffrö  s      r=   rü  rü  Á  s…   € å  ¨Ñ.Ô.Ð/€EØ
�,Š,�tÑ
Ô
ð 8Ø�ŠÕ(¨°Ñ6Ô6Ñ7Ô7Ð7ð �,Š,�tÑ
Ô
ð 8õ ˆ5�z„z�Q‚€Ø�QŒxˆÝ�4˜ÑÔÐr>   c                 ó   ‡ — |j         t          z  pt          }t          ‰ |¦  «        g}	 ‰ j        }‰                      d¦  «        r|‰ _        nW|t          k    r(t          ˆ fd„t          D ¦   «         ¦  «        r|‰ _        n$| 	                    t          ‰ |¦  «        ¦  «         Œ{t          |¦  «        dk    r|d         S t          ||¦  «        S )z#Parses a set implicit union ([xy]).Trì  c              3   óB   •K  — | ]}‰                      |¦  «        V — Œd S rÝ   r8  )rÞ   ÚoprÒ   s     €r=   r�  z&parse_set_imp_union.<locals>.<genexpr>×  s/   øè è € Ð&JÐ&J¸B v§|¢|°BÑ'7Ô'7Ð&JÐ&JÐ&JÐ&JÐ&JÐ&Jr>   r-   r   )r�   rï  rð  Úparse_set_memberr2   rÐ   r!   ÚanyÚSET_OPSrZ   r]   rµ   )rÒ   r—   ró  r÷  r÷   s   `    r=   rñ  rñ  Ë  sÓ   ø€ àŒz�MÑ)Ð=­o€Gå˜f dÑ+Ô+Ð,€Eð5Ø”Jˆ	Ø�<Š<˜ÑÔð 	à"ˆFŒJØà•hÒÐ¥3Ð&JÐ&JÐ&JÐ&JÅ'Ð&JÑ&JÔ&JÑ#JÔ#JÐà"ˆFŒJØà�ŠÕ% f¨dÑ3Ô3Ñ4Ô4Ð4ð5õ ˆ5�z„z�Q‚€Ø�QŒxˆÝ�D˜%Ñ Ô Ð r>   c           	      ó  — t          | |¦  «        }| j        }t          |t          ¦  «        r|j        r|                      d¦  «        s|S |j        t          z  pt          }| j        }|t          k    r|                      d¦  «        r	|| _        |S |                      d¦  «        r3|| _        t          ||t          t          d¦  «        ¦  «        g¦  «        S t          | |¦  «        }t          |t          ¦  «        r|j        s-t          ||t          t          d¦  «        ¦  «        |g¦  «        S |j        |j        k    rt          d| j        | j        ¦  «        ‚|j        |j        k    r|S t          |j        |j        ¦  «        S )z#Parses a member in a character set.r†  rì  zbad character range)Úparse_set_itemr2   r.   r±   r²   rÐ   r�   rï  rð  r!   rµ   rô   r^   r&   r˜   ÚRange)rÒ   r—   ÚstartÚ
saved_pos1ró  Ú
saved_pos2Úends          r=   r  r  â  sw  € õ ˜6 4Ñ(Ô(€EØ”€JÝ�u�iÑ(Ô(ð °´ð Ø‡l‚l�3ÑÔðð ˆàŒz�MÑ)Ð=­o€Gð ”€JØ•(ÒÐ˜vŸ|š|¨CÑ0Ô0Ðð  ˆŒ
Øˆà‡|‚|�CÑÔð <ð  ˆŒ
Ý˜˜u¥iµ°C±´Ñ&9Ô&9Ð:Ñ;Ô;Ð;õ ˜ Ñ
&Ô
&€CÝ�c�9Ñ%Ô%ð A¨S¬\ð Aå˜˜u¥iµ°C±´Ñ&9Ô&9¸3Ð?Ñ@Ô@Ð@ð „{�S”YÒÐÝÐ)¨6¬=¸&¼*ÑEÔEÐEà„{�c”iÒÐØˆå�”˜cœiÑ(Ô(Ð(r>   c                 óÆ  — |j         t          z  pt          }|                      d¦  «        rt	          | |d¦  «        S | j        }|                      d¦  «        r(	 t          | |¦  «        S # t          $ r
 || _        Y nw xY w|t          k    rŠ|                      d¦  «        ru|                      d¦  «        }t          | |¦  «        }|                      d¦  «        st          d| j        | j        ¦  «        ‚|r|                     |j         ¬¦  «        }|S |                      ¦   «         }|st          d	| j        | j        ¦  «        ‚t          t!          |¦  «        ¦  «        S )
z"Parses an item in a character set.rÖ   Tz[:rÙ   rÚ   rì  rí  rî  zunterminated character set)r�   rï  rð  rÐ   rã   r2   Úparse_posix_classrI   r!   rò  r&   r˜   r´   r²   rá   r±   rô   )rÒ   r—   ró  r÷   rå  rß   rø   s          r=   r  r    s`  € àŒz�MÑ)Ð=­o€Gà‡|‚|�DÑÔð 0å˜F D¨$Ñ/Ô/Ð/à”
€IØ‡|‚|�DÑÔð #ð	#Ý$ V¨TÑ2Ô2Ð2øÝð 	#ð 	#ð 	#à"ˆFŒJˆJˆJð	#øøøð •(ÒÐ˜vŸ|š|¨CÑ0Ô0Ðð —’˜cÑ"Ô"ˆÝ˜v tÑ,Ô,ˆà�|Š|˜CÑ Ô ð 	@Ý˜ V¤]°F´JÑ?Ô?Ð?àð 	?Ø—?’?°´Ð,=�?Ñ>Ô>ˆDàˆà	�Š‰Œ€BØð MÝÐ0°&´-ÀÄÑLÔLÐLå•S˜‘W”WÑÔÐs   ÁA* Á*A>Á=A>c                 óÀ   — |                       d¦  «        }t          | ¦  «        \  }}|                       d¦  «        st          ¦   «         ‚t          ||| | d¬¦  «        S )zParses a POSIX character class.rÚ   z:]T)Úposix)rÐ   rã  rI   rä  )rÒ   r—   rå  ræ  rÅ   s        r=   r  r  1  s]   € à�\Š\˜#ÑÔ€FÝ)¨&Ñ1Ô1�O€IˆtØ�<Š<˜ÑÔð Ý‰lŒlÐå˜9 d°¨J¸ÀdÐKÑKÔKÐKr>   c                 ó–   — t          | ¦  «        }| |z
  }t          |¦  «        dk     r|dfS t          d|z  ¦  «        \  }}||z  |z   |fS )z$Converts a float to a rational pair.g-Cëâ6?r-   g      ð?)r  ÚabsÚfloat_to_rational)ÚfltÚint_partr&   ÚdenÚnums        r=   r  r  :  sZ   € å�3‰xŒx€HØ�(‰N€EÝ
ˆ5�z„z�FÒÐØ˜ˆ{Ðå   u¡Ñ-Ô-�H€Cˆà�c‰>˜CÑ Ð$Ð$r>   c                 ó  — | dd…         dk    r| d         | dd…         } }nd}|                       d¦  «        }t          |¦  «        dk    r<t          t          |d         ¦  «        t          |d         ¦  «        z  ¦  «        \  }}nGt          |¦  «        dk    r&t          t          |d         ¦  «        ¦  «        \  }}nt	          ¦   «         ‚d                     |||¦  «        }|                     d	¦  «        r
|dd
…         S |S )z<Converts a numeric string to a rational string, if possible.Nr-   r†  r   rf   ú/rN   z{}{}/{}z/1éþÿÿÿ)Úsplitr]   r  Úfloatr2  r7   Úendswith)ÚnumericÚsignÚpartsr  r  Úresults         r=   Únumeric_to_rationalr"  E  sñ   € à��!�„}˜ÒÐØ œ
 G¨A¨C¨C¤Mˆgˆˆàˆà�MŠM˜#ÑÔ€EÝ
ˆ5�z„z�Q‚€Ý$¥U¨5°¬8¡_¤_µu¸UÀ1¼X±´Ñ%FÑGÔG‰ˆˆSˆSÝ	ˆU‰Œ�qŠˆÝ$¥U¨5°¬8¡_¤_Ñ5Ô5‰ˆˆSˆSå‰lŒlÐà×Ò˜d C¨Ñ-Ô-€FØ‡‚�tÑÔð Ø�t˜�tŒ}Ðà€Mr>   c                 óØ   — 	 t          d                     | ¦  «        ¦  «        S # t          t          f$ r4 d                     d„ | D ¦   «         ¦  «                             ¦   «         cY S w xY w)z&Standardises a property or value name.rf   c              3   ó"   K  — | ]
}|d v¯|V — ŒdS )z_- NrC   rœ  s     r=   r�  z#standardise_name.<locals>.<genexpr>_  s&   è è € Ð<Ð<˜b¨B°e¨O¨O�r¨O¨O¨O¨OÐ<Ð<r>   )r"  r\   r2  ÚZeroDivisionErrorÚupper)rÅ   s    r=   Ústandardise_namer'  Z  sx   € ðEÝ" 2§7¢7¨4¡=¤=Ñ1Ô1Ð1øÝÕ)Ð*ð Eð Eð EØ�wŠwÐ<Ð< DÐ<Ñ<Ô<Ñ<Ô<×BÒBÑDÔDÐDÐDÐDðEøøøs   ‚!$ ¤AA)Á(A)zALNUM DIGIT PUNCT XDIGITzYES Y NO N TRUE T FALSE Fc                 óN  — | rt          | ¦  «        nd} t          |¦  «        }| |fdk    rdd| }}} |r"| s |                     ¦   «         t          v rd|z   }| r¦t                               | ¦  «        }|s,|st          d¦  «        ‚t          d|j        |j        ¦  «        ‚|\  }}|                     |¦  «        }|€,|st          d¦  «        ‚t          d|j        |j        ¦  «        ‚t          |dz  |z  |¦  «        S d	D ]N} t                               | ¦  «        \  }}|                     |¦  «        }|�t          |dz  |z  |¦  «        c S ŒOt                               |¦  «        }|rG|\  }}t          |¦  «        t          k    rt          |dz  d
z  |¦  «        S t          |dz  | ¦  «        S |                     d¦  «        rCt                               |dd…         ¦  «        }|r|\  }}d|v rt          |dz  d
z  |¦  «        S dD ]n\  }	} |                     |	¦  «        rTt                               | ¦  «        \  }}|                     |dd…         ¦  «        }|�t          |dz  |z  |¦  «        c S Œo|st          d¦  «        ‚t          d|j        |j        ¦  «        ‚)zLooks up a property.N)ÚGENERALCATEGORYÚASSIGNEDr)  Ú
UNASSIGNEDr   zunknown propertyzunknown property valuerQ   )ÚGCÚSCRIPTÚBLOCKr-   ÚISrN   ÚYES))r/  r-  )ÚINr.  )r'  r&  Ú_POSIX_CLASSESÚ
PROPERTIESrá   r&   r˜   r2   ÚPropertyr¯   Ú_BINARY_VALUESÚ
startswith)
Úpropertyr^   r²   rÒ   r  rÌ   Úprop_idÚ
value_dictÚval_idÚprefixs
             r=   rä  rä  e  s  € ð .6Ð?Õ Ñ)Ô)Ð)¸4€HÝ˜UÑ#Ô#€Eà�%ÐÐ;Ò;Ð;Ø$5°|ÈÀ\˜�%ˆàð  �Xð   %§+¢+¡-¤-µ>Ð"AÐ"AØ˜%‘ˆàð <å�~Š~˜hÑ'Ô'ˆØð 	GØð 0ÝÐ.Ñ/Ô/Ð/åÐ*¨F¬M¸6¼:ÑFÔFÐFà"Ñˆ�Ø—’ Ñ&Ô&ˆØˆ>Øð 6ÝÐ4Ñ5Ô5Ð5åÐ0°&´-ÀÄÑLÔLÐLå˜ B™¨&Ñ0°(Ñ;Ô;Ð;ð .ð @ð @ˆÝ(Ÿnšn¨XÑ6Ô6Ñˆ�Ø—’ Ñ&Ô&ˆØÐÝ˜W¨™]¨fÑ4°hÑ?Ô?Ð?Ð?Ð?ð õ �>Š>˜%Ñ Ô €DØð 5Ø"Ñˆ�Ýˆz‰?Œ?�nÒ,Ð,Ý˜W¨™]¨aÑ/°Ñ:Ô:Ð:å˜ 2™¨8 |Ñ4Ô4Ð4ð ×Ò˜ÑÔð ?Ý�~Š~˜e A C CœkÑ*Ô*ˆØð 	?Ø"&ÑˆG�ZØ˜
Ð"Ð"Ý ¨B¡°!Ñ 3°XÑ>Ô>Ð>ð @ð Dð DÑˆ�Ø×Ò˜FÑ#Ô#ð 	DÝ",§.¢.°Ñ":Ô":ÑˆG�ZØ—^’^ E¨!¨#¨#¤KÑ0Ô0ˆFØÐ!Ý ¨B¡°&Ñ 8¸(ÑCÔCÐCÐCÐCøð ð (ÝÐ&Ñ'Ô'Ð'å
Ð" F¤M°6´:Ñ
>Ô
>Ð>r>   c                 óž  — |                       ¦   «         }|t          v r³t                                |¦  «        }|rdt          |¦  «        gfS |t          v r'|dk    s|rdt          | t          |         |¦  «        gfS |dk    rdt          | |¦  «        gfS |dk    r|rt          | ¦  «        }|�d|gfS t          d|z  | j	        | j
        ¦  «        ‚t          | j        t          ¦  «        rd}nd	}|d
k    ro|}t          |¦  «        dk     rD| j
        }|                       ¦   «         }|t          vr|| _
        n||z  }t          |¦  «        dk     °Ddt!          |d¦  «        |z  gfS |t"          v rŒ|}| j
        }|                       ¦   «         }|t"          v rM||z  }| j
        }|                       ¦   «         }|r+t%          ||z   ¦  «        rdt!          ||z   d¦  «        |z  gfS || _
        dt!          |¦  «        gfS |dk    rdt          d¦  «        gfS |st          d| j	        | j
        ¦  «        ‚dt          d¦  «        t          |¦  «        gfS )z0Compiles a replacement template escape sequence.Fru   r­  Tr¯  Nr¹  rË  rÌ  rK  rÑ  rP   rÖ   r¬  )rá   r&  rÆ  rô   rº  Úparse_repl_hex_escapeÚcompile_repl_groupÚparse_repl_named_charr&   r˜   r2   r.   ÚsepÚbytesr]   r›  r  r*  r¢  )rÒ   r1   Ú
is_unicoderø   r^   rÏ  r3  r÷   s           r=   Ú_compile_replacementrC  «  s�  € à	�Š‰Œ€BØ	�U€{€{å!×%Ò% bÑ)Ô)ˆØð 	'Ø�3˜u™:œ:˜,Ð&Ð&à•ÐÐ "¨¢) )¨z )àÕ0°½ÀR¼È"ÑMÔMÐNÐNÐNà�Š9ˆ9àÕ,¨V°WÑ=Ô=Ð>Ð>Ð>à�Š9ˆ9˜ˆ9å)¨&Ñ1Ô1ˆEØÐ Ø˜u˜g�~Ð%åÐ%¨Ñ*¨F¬M¸6¼:ÑFÔFÐFå�&”*�eÑ$Ô$ð Øˆ
ˆ
àˆ
à	ˆS‚y€yàˆÝ�&‰kŒk˜AŠoˆoØœ
ˆIØ—’‘”ˆBØ�Ð#Ð#Ø&�”
ØØ�b‰LˆFõ �&‰kŒk˜AŠoˆoð •s˜6 1‘~”~¨
Ñ2Ð3Ð3Ð3à	�V€|€|ð ˆØ”Jˆ	Ø�ZŠZ‰\Œ\ˆØ•ˆ<ˆ<Ø�b‰LˆFØœ
ˆIØ—’‘”ˆBØð A•h˜v¨™{Ñ+Ô+ð Aà�s 6¨B¡;°Ñ2Ô2°ZÑ?Ð@Ð@Ð@ð ˆŒ
Ø•c˜&‘k”k�]Ð"Ð"à	ˆT‚z€zà•s˜4‘y”y�kÐ!Ð!àð NåÐ1°6´=À&Ä*ÑMÔMÐMð •3�t‘9”9�c "™gœgÐ&Ð&Ð&r>   c                 ó:  — g }t          |¦  «        D ]g}|                      ¦   «         }|t          vr3t          d|›d                     |¦  «        ›�| j        | j        ¦  «        ‚|                     |¦  «         Œht          d                     |¦  «        d¦  «        S )z5Parses a hex escape sequence in a replacement string.rÓ  rf   rQ   )	rÔ  rá   r©  r&   r\   r˜   r2   rZ   r  )rÒ   rÖ  r×  r3  ro   rø   s         r=   r=  r=  ó  s—   € à€FÝ�<Ñ Ô ð ð ˆØ�ZŠZ‰\Œ\ˆØ•ZÐÐÝ�%°d°d¸B¿GºGÀF¹O¼O¸OÐLØŒm˜VœZñ)ô )ð )à�Š�bÑÔÐÐåˆr�wŠw�v‰Œ Ñ#Ô#Ð#r>   c                 ód  — | j         }|                      d¦  «        rŒ|                      t          t	          d¦  «        z  ¦  «        }|                      d¦  «        rM	 t          j        |¦  «        }t          |¦  «        S # t          $ r t          d| j
        | j         ¦  «        ‚w xY w|| _         dS )z1Parses a named character in a replacement string.r  Ú r  rÝ  N)r2   rÐ   rC  r&  r¯   rß  rà  rô   r   r&   r˜   )rÒ   r÷   rÅ   r^   s       r=   r?  r?  ÿ  s·   € à”
€IØ‡|‚|�CÑÔð 	Ø×Ò¥­¨C©¬Ñ 0Ñ1Ô1ˆà�<Š<˜ÑÔð 	ðÝ#Ô*¨4Ñ0Ô0�Ý˜5‘z”zÐ!øÝð ð ð ÝÐ6¸¼Ø”*ñô ð ðøøøð €F„JØˆ4s   Á"B  Â &B&c                 óv  — |                       d¦  «         t          | dd¦  «        }|                       d¦  «         |                     ¦   «         r@t          |¦  «        }d|cxk    r|j        k    sn t          d| j        | j        ¦  «        ‚|S 	 |j        |         S # t          $ r t          d¦  «        ‚w xY w)z0Compiles a replacement template group reference.r7  TrH  r   úinvalid group referenceúunknown group)rT  rR  r•  r  Úgroupsr&   r˜   r2   Ú
groupindexr   Ú
IndexError)rÒ   r1   rÅ   Úindexs       r=   r>  r>    sË   € à
‡M‚M�#ÑÔÐÝ�f˜d DÑ)Ô)€Dà
‡M‚M�#ÑÔÐØ‡|‚|�~„~ð Ý�D‘	”	ˆØ�EÐ+Ð+Ò+Ð+˜Wœ^Ò+Ð+Ð+Ð+ÝÐ1°6´=À&Ä*ÑMÔMÐMàˆð*ØÔ! $Ô'Ð'øÝð *ð *ð *Ý˜Ñ)Ô)Ð)ð*øøøs   ÂB ÂB8z  rQ   z	NON-MATCHÚMATCH©FTz SIMPLE_IGNORE_CASEz FULL_IGNORE_CASEc                 óV   — t          | ¦  «        dk    r| d         S t          | ¦  «        S ©Nr-   r   )r]   rõ   ©r÷  s    r=   Úmake_sequencerS  0  s&   € Ý
ˆ5�z„z�Q‚€Ø�QŒxˆÝ�E‰?Œ?Ðr>   c                   óx   — e Zd Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú	RegexBasec                 ó   — | j         | _        d S rÝ   )rY   Ú_key©r:   s    r=   r9   zRegexBase.__init__7  s   € Ø”NˆŒ	ˆ	ˆ	r>   Nc                 ó  — |€| j         }nt          |¦  «        }|€| j        }nt          |t          z           }|€| j        }nt          |¦  «        }|| j         k    r|| j        k    r|| j        k    r| S |                      |||¦  «        S rÝ   )r²   r¢   rª   ÚCASE_FLAGS_COMBINATIONSr¿   r¬   Úrebuild©r:   r²   rª   r¬   s       r=   r´   zRegexBase.with_flags:  s•   € ØÐØ”}ˆHˆHå˜H‘~”~ˆHØÐØœˆJˆJå0°½jÑ1HÔIˆJØÐØœˆIˆIå˜Y™œˆIà˜œÒ%Ð%¨*¸¼Ò*GÐ*GØ
�t”~Ò
%Ð
%ØˆKà�|Š|˜H j°)Ñ<Ô<Ð<r>   c                 ó   — d S rÝ   rC   ©r:   r1   r¦   Úfuzzys       r=   Ú
fix_groupszRegexBase.fix_groupsN  s   € Øˆr>   c                 ó   — | S rÝ   rC   ©r:   r—   r¦   s      r=   r·   zRegexBase.optimiseQ  ó   € Øˆr>   c                 ó   — | S rÝ   rC   ©r:   r—   s     r=   Úpack_characterszRegexBase.pack_charactersT  rc  r>   c                 ó   — | S rÝ   rC   rX  s    r=   Úremove_captureszRegexBase.remove_capturesW  rc  r>   c                 ó   — dS ©NTrC   rX  s    r=   Ú	is_atomiczRegexBase.is_atomicZ  ó   € Øˆtr>   c                 ó   — dS rj  rC   rX  s    r=   Úcan_be_affixzRegexBase.can_be_affix]  rl  r>   c                 ó   — dS ©NFrC   rX  s    r=   Úcontains_groupzRegexBase.contains_group`  ó   € Øˆur>   c                 ó   — t          ¦   «         ‚rÝ   )rK   ©r:   r¦   s     r=   Úget_firstsetzRegexBase.get_firstsetc  s   € ÝÑÔÐr>   c                 ó   — dS rp  rC   rX  s    r=   Úhas_simple_startzRegexBase.has_simple_startf  rr  r>   Fc                 ó.   — |                       ||¦  «        S rÝ   )Ú_compile©r:   r¦   r_  s      r=   r¤   zRegexBase.compilei  s   € Ø�}Š}˜W eÑ,Ô,Ð,r>   c                 ó   — dS rp  rC   rX  s    r=   r  zRegexBase.is_emptyl  rr  r>   c                 ó*   — t          | j        ¦  «        S rÝ   )ÚhashrW  rX  s    r=   Ú__hash__zRegexBase.__hash__o  s   € Ý�D”I‰ŒÐr>   c                 ó^   — t          | ¦  «        t          |¦  «        u o| j        |j        k    S rÝ   )r×  rW  ©r:   Úothers     r=   Ú__eq__zRegexBase.__eq__r  s'   € Ý�D‰zŒz�T %™[œ[Ð(ÐD¨T¬Y¸%¼*Ò-DÐDr>   c                 ó.   — |                       |¦  «         S rÝ   )r‚  r€  s     r=   Ú__ne__zRegexBase.__ne__u  s   € Ø—;’;˜uÑ%Ô%Ð%Ð%r>   c                 ó.   — |                       ¦   «         d fS rÝ   ©Ú	max_widthrt  s     r=   Úget_required_stringzRegexBase.get_required_stringx  ó   € Ø�~Š~ÑÔ Ð%Ð%r>   )NNN©FF)r?   r@   rA   r9   r´   r`  r·   rf  rh  rk  rn  rq  ru  rw  r¤   r  r~  r‚  r„  rˆ  rC   r>   r=   rU  rU  6  s   € € € € € ð#ð #ð #ð=ð =ð =ð =ð(ð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð-ð -ð -ð -ðð ð ðð ð ðEð Eð Eð&ð &ð &ð&ð &ð &ð &ð &r>   rU  c                   ó.   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ ZdS )	ÚZeroWidthBaseTc                 óˆ   — t                                | ¦  «         t          |¦  «        | _        | j        | j        f| _        d S rÝ   )rU  r9   r¢   r²   rY   rW  )r:   r²   s     r=   r9   zZeroWidthBase.__init__}  s7   € Ý×Ò˜4Ñ Ô Ð Ý˜X™œˆŒà”N D¤MÐ1ˆŒ	ˆ	ˆ	r>   c                 ó"   — t          d g¦  «        S rÝ   ©r¯   rt  s     r=   ru  zZeroWidthBase.get_firstsetƒ  ó   € Ý�D�6‰{Œ{Ðr>   c                 ól   — d}| j         r
|t          z  }|r
|t          z  }|r
|t          z  }| j        |fgS ©Nr   )r²   ÚPOSITIVE_OPÚFUZZY_OPÚ
REVERSE_OPÚ_opcode©r:   r¦   r_  r�   s       r=   ry  zZeroWidthBase._compile†  sO   € ØˆØŒ=ð 	!Ø•[Ñ ˆEØð 	Ø•XÑˆEØð 	 Ø•ZÑˆEØ”˜uÐ%Ð&Ð&r>   c                 óˆ   — t          d                     t          |z  | j        t          | j                 ¦  «        ¦  «         d S )Nz{}{} {})Úprintr7   ÚINDENTÚ_op_nameÚPOS_TEXTr²   ©r:   Úindentr¦   s      r=   ÚdumpzZeroWidthBase.dump�  sD   € Ýˆi×Ò�v¨™°´Ý
�4”=Ô
!ñ#ô #ñ 	$ô 	$ð 	$ð 	$ð 	$r>   c                 ó   — dS r’  rC   rX  s    r=   r‡  zZeroWidthBase.max_width”  ó   € Øˆqr>   N©T)r?   r@   rA   r9   ru  ry  rŸ  r‡  rC   r>   r=   rŒ  rŒ  |  sd   € € € € € ð2ð 2ð 2ð 2ðð ð ð'ð 'ð 'ð$ð $ð $ðð ð ð ð r>   rŒ  c                   óH   — e Zd Zej        ej        dœZdZd„ Zd„ Z	d„ Z
d„ ZdS )rç   rO  ÚANYc                 ó   — dS rj  rC   rX  s    r=   rw  zAny.has_simple_start›  rl  r>   c                 ó>   — d}|r
|t           z  }| j        |         |fgS r’  )r”  r–  r—  s       r=   ry  zAny._compilež  s.   € ØˆØð 	Ø•XÑˆEØ”˜gÔ&¨Ð.Ð/Ð/r>   c                 óf   — t          d                     t          |z  | j        ¦  «        ¦  «         d S )Nú{}{})r™  r7   rš  r›  r�  s      r=   rŸ  zAny.dump¤  s*   € Ýˆf�mŠm�F V™O¨T¬]Ñ;Ô;Ñ<Ô<Ð<Ð<Ð<r>   c                 ó   — dS ©Nr-   rC   rX  s    r=   r‡  zAny.max_width§  r¡  r>   N)r?   r@   rA   ÚOPr¤  ÚANY_REVr–  r›  rw  ry  rŸ  r‡  rC   r>   r=   rç   rç   —  sf   € € € € € Ø”f B¤JÐ/Ð/€GØ€Hðð ð ð0ð 0ð 0ð=ð =ð =ðð ð ð ð r>   rç   c                   ó0   — e Zd Zej        ej        dœZdZdS )rå   rO  ÚANY_ALLN)r?   r@   rA   r«  r®  ÚANY_ALL_REVr–  r›  rC   r>   r=   rå   rå   ª  s$   € € € € € Ø”j¨¬Ð7Ð7€GØ€H€H€Hr>   rå   c                   ó0   — e Zd Zej        ej        dœZdZdS )ræ   rO  ÚANY_UN)r?   r@   rA   r«  r±  Ú	ANY_U_REVr–  r›  rC   r>   r=   ræ   ræ   ®  s$   € € € € € Ø”h b¤lÐ3Ð3€GØ€H€H€Hr>   ræ   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dS )ry  c                 óH   — t                                | ¦  «         || _        d S rÝ   )rU  r9   r
  )r:   r
  s     r=   r9   zAtomic.__init__³  s!   € Ý×Ò˜4Ñ Ô Ð Ø$ˆŒˆˆr>   c                 ó>   — | j                              |||¦  «         d S rÝ   ©r
  r`  r^  s       r=   r`  zAtomic.fix_groups·  ó"   € ØŒ×"Ò" 7¨G°UÑ;Ô;Ð;Ð;Ð;r>   c                 ó†   — | j                              ||¦  «        | _         | j                              ¦   «         r| j         S | S rÝ   )r
  r·   r  rb  s      r=   r·   zAtomic.optimiseº  s>   € Øœ/×2Ò2°4¸ÑAÔAˆŒàŒ?×#Ò#Ñ%Ô%ð 	#Ø”?Ð"Øˆr>   c                 óD   — | j                              |¦  «        | _         | S rÝ   ©r
  rf  re  s     r=   rf  zAtomic.pack_charactersÁ  ó   € Øœ/×9Ò9¸$Ñ?Ô?ˆŒØˆr>   c                 óB   — | j                              ¦   «         | _         | S rÝ   ©r
  rh  rX  s    r=   rh  zAtomic.remove_capturesÅ  ó   € Øœ/×9Ò9Ñ;Ô;ˆŒØˆr>   c                 ó4   — | j                              ¦   «         S rÝ   ©r
  rn  rX  s    r=   rn  zAtomic.can_be_affixÉ  ó   € ØŒ×+Ò+Ñ-Ô-Ð-r>   c                 ó4   — | j                              ¦   «         S rÝ   ©r
  rq  rX  s    r=   rq  zAtomic.contains_groupÌ  ó   € ØŒ×-Ò-Ñ/Ô/Ð/r>   c                 ó6   — | j                              |¦  «        S rÝ   ©r
  ru  rt  s     r=   ru  zAtomic.get_firstsetÏ  ó   € ØŒ×+Ò+¨GÑ4Ô4Ð4r>   c                 ó4   — | j                              ¦   «         S rÝ   ©r
  rw  rX  s    r=   rw  zAtomic.has_simple_startÒ  ó   € ØŒ×/Ò/Ñ1Ô1Ð1r>   c                 ót   — t           j        fg| j                             ||¦  «        z   t           j        fgz   S rÝ   )r«  ÚATOMICr
  r¤   ÚENDrz  s      r=   ry  zAtomic._compileÕ  s5   € Ý”)�� $¤/×"9Ò"9¸'À5Ñ"IÔ"IÑIÝŒFˆ:ˆ,ñð 	r>   c                 ó–   — t          d                     t          |z  ¦  «        ¦  «         | j                             |dz   |¦  «         d S )Nú{}ATOMICr-   )r™  r7   rš  r
  rŸ  r�  s      r=   rŸ  zAtomic.dumpÙ  sD   € Ýˆj×Ò¥¨¡Ñ0Ô0Ñ1Ô1Ð1ØŒ×Ò˜V a™Z¨Ñ1Ô1Ð1Ð1Ð1r>   c                 ó4   — | j                              ¦   «         S rÝ   ©r
  r  rX  s    r=   r  zAtomic.is_emptyÝ  ó   € ØŒ×'Ò'Ñ)Ô)Ð)r>   c                 ó^   — t          | ¦  «        t          |¦  «        u o| j        |j        k    S rÝ   )r×  r
  r€  s     r=   r‚  zAtomic.__eq__à  s/   € Ý�T‘
”
�d 5™kœkÐ)ð ¨d¬oØ
Ô
ò/ð 	r>   c                 ó4   — | j                              ¦   «         S rÝ   ©r
  r‡  rX  s    r=   r‡  zAtomic.max_widthä  ó   € ØŒ×(Ò(Ñ*Ô*Ð*r>   c                 ó6   — | j                              |¦  «        S rÝ   ©r
  rˆ  rt  s     r=   rˆ  zAtomic.get_required_stringç  ó   € ØŒ×2Ò2°7Ñ;Ô;Ð;r>   N)r?   r@   rA   r9   r`  r·   rf  rh  rn  rq  ru  rw  ry  rŸ  r  r‚  r‡  rˆ  rC   r>   r=   ry  ry  ²  sõ   € € € € € ð%ð %ð %ð<ð <ð <ðð ð ðð ð ðð ð ð.ð .ð .ð0ð 0ð 0ð5ð 5ð 5ð2ð 2ð 2ðð ð ð2ð 2ð 2ð*ð *ð *ðð ð ð+ð +ð +ð<ð <ð <ð <ð <r>   ry  c                   ó    — e Zd Zej        ZdZdS )ÚBoundaryÚBOUNDARYN)r?   r@   rA   r«  rÜ  r–  r›  rC   r>   r=   rÛ  rÛ  ê  s   € € € € € ØŒk€GØ€H€H€Hr>   rÛ  c                   óp  — 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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d„ Zd„ Zd„ ZdS )rÑ   c                 óH   — t                                | ¦  «         || _        d S rÝ   )rU  r9   rÓ   )r:   rÓ   s     r=   r9   zBranch.__init__ï  s!   € Ý×Ò˜4Ñ Ô Ð Ø ˆŒˆˆr>   c                 óH   — | j         D ]}|                     |||¦  «         Œd S rÝ   )rÓ   r`  )r:   r1   r¦   r_  rl   s        r=   r`  zBranch.fix_groupsó  s6   € Ø”ð 	2ð 	2ˆAØ�LŠL˜ '¨5Ñ1Ô1Ð1Ð1ð	2ð 	2r>   c                 ó:  — | j         st          g ¦  «        S t                               ||| j         ¦  «        }|r!t                               ||¦  «        \  }}g }n t                               ||¦  «        \  }}g }t                               |||¦  «        }t          |¦  «        dk    r\t          |¦  «        g}|r|sG|                      |||¦  «        }|r.|r| 	                    |¦  «         n| 
                    d|¦  «         n|}t          ||z   |z   ¦  «        S rQ  )rÓ   rõ   rÑ   Ú_flatten_branchesÚ_split_common_suffixÚ_split_common_prefixÚ_reduce_to_setr]   Ú_add_precheckrZ   ÚinsertrS  )r:   r—   r¦   rÓ   Úsuffixr;  rö   Úfirstsets           r=   r·   zBranch.optimise÷  s4  € ØŒ}ð 	 Ý˜B‘<”<Ðõ ×+Ò+¨D°'¸4¼=ÑIÔIˆð ð 	Ý%×:Ò:¸4ÀÑJÔJÑˆF�HØˆFˆFå%×:Ò:¸4ÀÑJÔJÑˆF�HØˆFõ ×(Ò(¨¨w¸ÑAÔAˆåˆx‰=Œ=˜1ÒÐÝ˜xÑ(Ô(Ð)ˆHàð 5 ð 5à×-Ò-¨d°G¸XÑFÔF�àð 5Øð 5Ø Ÿš¨Ñ1Ô1Ð1Ð1à Ÿš¨¨8Ñ4Ô4Ð4øàˆHå˜V hÑ.°Ñ7Ñ8Ô8Ð8r>   c                 ó  — t          ¦   «         }|rdnd}|D ]K}t          |¦  «        t          u r1|j        t          k    r!|                     |j        |         ¦  «         ŒI d S |sd S t          ||d„ |D ¦   «         ¦  «        S )Néÿÿÿÿr   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rC   r·  r¸  s     r=   rà   z(Branch._add_precheck.<locals>.<listcomp>'  s   € Ð.MÐ.MÐ.MÀ­y¸©|¬|Ð.MÐ.MÐ.Mr>   )r¯   r×  ÚLiteralrª   r°   r³   Ú
charactersr£   )r:   r—   r¦   rÓ   rÉ  r2   Úbranchs          r=   rå  zBranch._add_precheck  s˜   € Ý‘%”%ˆØÐ"ˆbˆb ˆàð 	ð 	ˆFÝ�F‰|Œ|�wÐ&Ð&¨6Ô+<ÅÒ+FÐ+FØ—’˜FÔ-¨cÔ2Ñ3Ô3Ð3Ð3à��àð 	Ø�4å˜t WÐ.MÐ.MÀWÐ.MÑ.MÔ.MÑNÔNÐNr>   c                 ó8   ‡— ˆfd„| j         D ¦   «         | _         | S )Nc                 ó:   •— g | ]}|                      ‰¦  «        ‘ŒS rC   )rf  )rÞ   rl   r—   s     €r=   rà   z*Branch.pack_characters.<locals>.<listcomp>*  s'   ø€ ÐHÐHÐH°Q˜×*Ò*¨4Ñ0Ô0ÐHÐHÐHr>   ©rÓ   re  s    `r=   rf  zBranch.pack_characters)  s%   ø€ ØHÐHÐHÐH¸$¼-ÐHÑHÔHˆŒØˆr>   c                 ó2   — d„ | j         D ¦   «         | _         | S )Nc                 ó6   — g | ]}|                      ¦   «         ‘ŒS rC   ©rh  ©rÞ   rl   s     r=   rà   z*Branch.remove_captures.<locals>.<listcomp>.  s$   € ÐDÐDÐD°˜×*Ò*Ñ,Ô,ÐDÐDÐDr>   rñ  rX  s    r=   rh  zBranch.remove_captures-  s   € ØDÐD°d´mÐDÑDÔDˆŒØˆr>   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó>   K  — | ]}|                      ¦   «         V — Œd S rÝ   ©rk  rõ  s     r=   r�  z#Branch.is_atomic.<locals>.<genexpr>2  ó*   è è € Ð8Ð8 Q�1—;’;‘=”=Ð8Ð8Ð8Ð8Ð8Ð8r>   ©r   rÓ   rX  s    r=   rk  zBranch.is_atomic1  ó!   € ÝÐ8Ð8¨$¬-Ð8Ñ8Ô8Ñ8Ô8Ð8r>   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó>   K  — | ]}|                      ¦   «         V — Œd S rÝ   )rn  rõ  s     r=   r�  z&Branch.can_be_affix.<locals>.<genexpr>5  s,   è è € Ð;Ð;¨�1—>’>Ñ#Ô#Ð;Ð;Ð;Ð;Ð;Ð;r>   rú  rX  s    r=   rn  zBranch.can_be_affix4  s!   € ÝÐ;Ð;¨T¬]Ð;Ñ;Ô;Ñ;Ô;Ð;r>   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó>   K  — | ]}|                      ¦   «         V — Œd S rÝ   ©rq  rõ  s     r=   r�  z(Branch.contains_group.<locals>.<genexpr>8  s.   è è € Ð=Ð=¨!�1×#Ò#Ñ%Ô%Ð=Ð=Ð=Ð=Ð=Ð=r>   )r  rÓ   rX  s    r=   rq  zBranch.contains_group7  s!   € ÝÐ=Ð=¨t¬}Ð=Ñ=Ô=Ñ=Ô=Ð=r>   c                 ó†   — t          ¦   «         }| j        D ]}||                     |¦  «        z  }Œ|pt          d g¦  «        S rÝ   )r¯   rÓ   ru  )r:   r¦   r¥   rl   s       r=   ru  zBranch.get_firstset:  sG   € Ý‰UŒUˆØ”ð 	*ð 	*ˆAØ�!—.’. Ñ)Ô)Ñ)ˆBˆBàÐ •S˜$˜‘[”[Ð r>   c                 óú   — | j         sg S t          j        fg}| j         D ]K}|                     |                     ||¦  «        ¦  «         |                     t          j        f¦  «         ŒLt          j        f|d<   |S ©Nrê  )rÓ   r«  ÚBRANCHr¹   r¤   rZ   ÚNEXTrÍ  )r:   r¦   r_  rº   rl   s        r=   ry  zBranch._compileA  sx   € ØŒ}ð 	ØˆIå”�ˆˆØ”ð 	%ð 	%ˆAØ�KŠK˜Ÿ	š	 '¨5Ñ1Ô1Ñ2Ô2Ð2Ø�KŠK�œ˜Ñ$Ô$Ð$Ð$å”F�:ˆˆR‰àˆr>   c                 óL  — t          d                     t          |z  ¦  «        ¦  «         | j        d                              |dz   |¦  «         | j        dd …         D ]E}t          d                     t          |z  ¦  «        ¦  «         |                     |dz   |¦  «         ŒFd S )Nz{}BRANCHr   r-   ú{}OR)r™  r7   rš  rÓ   rŸ  )r:   rž  r¦   rl   s       r=   rŸ  zBranch.dumpN  s    € Ýˆj×Ò¥¨¡Ñ0Ô0Ñ1Ô1Ð1ØŒ�aÔ×Ò˜f q™j¨'Ñ2Ô2Ð2Ø”˜q˜s˜sÔ$ð 	(ð 	(ˆAÝ�&—-’-¥¨¡Ñ0Ô0Ñ1Ô1Ð1Ø�FŠF�6˜A‘:˜wÑ'Ô'Ð'Ð'ð	(ð 	(r>   c                 óÊ   — g }|D ]]}|                      | |¦  «        }t          |t          ¦  «        r|                     |j        ¦  «         ŒH|                     |¦  «         Œ^|S rÝ   )r·   r.   rÑ   r¹   rÓ   rZ   )r—   r¦   rÓ   Únew_branchesrl   s        r=   rá  zBranch._flatten_branchesU  ss   € ð ˆØð 	'ð 	'ˆAØ—
’
˜4 Ñ)Ô)ˆAÝ˜!�VÑ$Ô$ð 'Ø×#Ò# A¤JÑ/Ô/Ð/Ð/à×#Ò# AÑ&Ô&Ð&Ð&àÐr>   c                 ó(  ‡‡	‡
— g }|D ]H}t          |t          ¦  «        r|                     |j        ¦  «         Œ2|                     |g¦  «         ŒIt	          d„ |D ¦   «         ¦  «        }|d         Š
dŠ	|}‰	|k     rw‰
‰	                              ¦   «         r]t          ˆ	ˆ
fd„|D ¦   «         ¦  «        rA‰	dz  Š	‰	|k     r6‰
‰	                              ¦   «         rt          ˆ	ˆ
fd„|D ¦   «         ¦  «        °A‰	Š| j        t          z  rI‰	Š‰dk    rAt          ˆfd„|D ¦   «         ¦  «        s&‰dz  Š‰dk    rt          ˆfd„|D ¦   «         ¦  «        ¯&‰dk    rg |fS g }|D ],}|                     t          |‰d …         ¦  «        ¦  «         Œ-‰
d ‰…         |fS )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S rÝ   ©r]   ©rÞ   rk   s     r=   r�  z.Branch._split_common_prefix.<locals>.<genexpr>n  ó(   è è € Ð5Ð5 1�˜A™œÐ5Ð5Ð5Ð5Ð5Ð5r>   r   c              3   ó<   •K  — | ]}|‰         ‰‰         k    V — Œd S rÝ   rC   )rÞ   rk   r2   r;  s     €€r=   r�  z.Branch._split_common_prefix.<locals>.<genexpr>t  óR   øè è € ð C-ð C-Øð DEÀSÄ6Ø
�Œ+òDð C-ð C-ð C-ð C-ð C-ð C-r>   r-   c              3   óN   •K  — | ]}t                                |‰¦  «        V — Œ d S rÝ   )rÑ   Ú
_can_split©rÞ   rk   r3   s     €r=   r�  z.Branch._split_common_prefix.<locals>.<genexpr>}  sC   øè è € ð (ð (È­×(9Ò(9¸!¸UÑ(CÔ(Cð (ð (ð (ð (ð (ð (r>   ©
r.   rõ   rZ   r÷  Úminrn  r   r�   r   rS  )r—   rÓ   Úalternativesrl   r  Úend_posr	  rk   r3   r2   r;  s           @@@r=   rã  zBranch._split_common_prefixb  se  øøø€ ð ˆØð 	)ð 	)ˆAÝ˜!�XÑ&Ô&ð )Ø×#Ò# A¤GÑ,Ô,Ð,Ð,à×#Ò# Q CÑ(Ô(Ð(Ð(õ Ð5Ð5¨Ð5Ñ5Ô5Ñ5Ô5ˆ	ð ˜a”ˆØˆØˆØ�GŠmˆm  s¤× 8Ò 8Ñ :Ô :ˆm½sð C-ð C-ð C-ð C-ð C-Ø+ðC-ñ C-ô C-ñ @-ô @-ˆmà�1‰HˆCð �GŠmˆm  s¤× 8Ò 8Ñ :Ô :ˆm½sð C-ð C-ð C-ð C-ð C-Ø+ðC-ñ C-ô C-ñ @-ô @-ˆmð ˆàŒ:�Ñð 	ð ˆEØ˜!’)�)¥Cð (ð (ð (ð (Øð(ñ (ô (ñ %ô %�)à˜‘
�ð ˜!’)�)¥Cð (ð (ð (ð (Øð(ñ (ô (ñ %ô %�)ð
 �AŠ:ˆ:Ø�x�<Ðð ˆØð 	<ð 	<ˆAØ×Ò¥¨a°°°¬kÑ :Ô :Ñ;Ô;Ð;Ð;à�w˜�wÔ Ð-Ð-r>   c                 ó4  ‡‡	‡
— g }|D ]H}t          |t          ¦  «        r|                     |j        ¦  «         Œ2|                     |g¦  «         ŒIt	          d„ |D ¦   «         ¦  «        }|d         Š
dŠ	d|z
  }‰	|k    rw‰
‰	                              ¦   «         r]t          ˆ	ˆ
fd„|D ¦   «         ¦  «        rA‰	dz  Š	‰	|k    r6‰
‰	                              ¦   «         rt          ˆ	ˆ
fd„|D ¦   «         ¦  «        °Ad‰	z
  Š| j        t          z  rG‰dk    rAt          ˆfd„|D ¦   «         ¦  «        s&‰dz  Š‰dk    rt          ˆfd„|D ¦   «         ¦  «        ¯&‰dk    rg |fS g }|D ]-}|                     t          |d ‰ …         ¦  «        ¦  «         Œ.‰
‰ d …         |fS )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S rÝ   r  r  s     r=   r�  z.Branch._split_common_suffix.<locals>.<genexpr>˜  r  r>   r   rê  c              3   ó<   •K  — | ]}|‰         ‰‰         k    V — Œd S rÝ   rC   )rÞ   rk   r2   rç  s     €€r=   r�  z.Branch._split_common_suffix.<locals>.<genexpr>ž  r  r>   r-   c              3   óN   •K  — | ]}t                                |‰¦  «        V — Œ d S rÝ   )rÑ   Ú_can_split_revr  s     €r=   r�  z.Branch._split_common_suffix.<locals>.<genexpr>¦  sC   øè è € ð (ð (ÈA­×(=Ò(=¸aÀÑ(GÔ(Gð (ð (ð (ð (ð (ð (r>   r  )r—   rÓ   r  rl   r  r  r	  rk   r3   r2   rç  s           @@@r=   râ  zBranch._split_common_suffixŒ  sl  øøø€ ð ˆØð 	)ð 	)ˆAÝ˜!�XÑ&Ô&ð )Ø×#Ò# A¤GÑ,Ô,Ð,Ð,à×#Ò# Q CÑ(Ô(Ð(Ð(õ Ð5Ð5¨Ð5Ñ5Ô5Ñ5Ô5ˆ	ð ˜a”ˆØˆØ�y‘.ˆØ�GŠmˆm  s¤× 8Ò 8Ñ :Ô :ˆm½sð C-ð C-ð C-ð C-ð C-Ø+ðC-ñ C-ô C-ñ @-ô @-ˆmà�1‰HˆCð �GŠmˆm  s¤× 8Ò 8Ñ :Ô :ˆm½sð C-ð C-ð C-ð C-ð C-Ø+ðC-ñ C-ô C-ñ @-ô @-ˆmð �S‘ˆàŒ:�Ñð 	ð ˜!’)�)¥Cð (ð (ð (ð (Øð(ñ (ô (ñ %ô %�)à˜‘
�ð ˜!’)�)¥Cð (ð (ð (ð (Øð(ñ (ô (ñ %ô %�)ð
 �AŠ:ˆ:Ø�x�<Ðð ˆØð 	=ð 	=ˆAØ×Ò¥¨a°°E°6°¬lÑ ;Ô ;Ñ<Ô<Ð<Ð<à�u�f�h�hÔ  ,Ð.Ð.r>   c                 óô  — t                                | |dz
  ¦  «        sdS t                                | |¦  «        sdS t                                | |dz
  |dz   …         ¦  «        rdS t                                | |dz   ¦  «        r*t                                | |dz
  |dz   …         ¦  «        rdS t                                | |dz
  ¦  «        r*t                                | |dz
  |dz   …         ¦  «        rdS dS )Nr-   TFrN   )rÑ   Ú_is_full_caseÚ
_is_folded)r÷  r3   s     r=   r  zBranch._can_splitµ  s  € õ ×#Ò# E¨5°1©9Ñ5Ô5ð 	Ø�4å×#Ò# E¨5Ñ1Ô1ð 	Ø�4õ ×Ò˜U 5¨1¡9¨u°q©yÐ#8Ô9Ñ:Ô:ð 	Ø�5õ × Ò  ¨°©	Ñ2Ô2ð 	Ý
×
Ò
˜E %¨!¡)¨e°a©iÐ"7Ô8Ñ
9Ô
9ð	à�5õ × Ò  ¨°©	Ñ2Ô2ð 	Ý
×
Ò
˜E %¨!¡)¨e°a©iÐ"7Ô8Ñ
9Ô
9ð	à�5àˆtr>   c                 óN  — t          | ¦  «        }t                               | ||z
  ¦  «        sdS t                               | ||z
  dz
  ¦  «        sdS t                               | ||z
  dz
  ||z
  dz   …         ¦  «        rdS t                               | ||z
  dz   ¦  «        r0t                               | ||z
  dz
  ||z
  dz   …         ¦  «        rdS t                               | ||z
  dz
  ¦  «        r0t                               | ||z
  dz
  ||z
  dz   …         ¦  «        rdS dS )NTr-   FrN   )r]   rÑ   r  r  )r÷  r3   r  s      r=   r  zBranch._can_split_revÎ  s?  € å�%‰jŒjˆõ ×#Ò# E¨3°©;Ñ7Ô7ð 	Ø�4å×#Ò# E¨3°©;¸©?Ñ;Ô;ð 	Ø�4õ ×Ò˜U 3¨¡;°¡?°S¸5±[À1±_Ð#DÔEÑFÔFð 	Ø�5õ × Ò  ¨¨e©°a©Ñ8Ô8ð 	Ý
×
Ò
˜E #¨¡+°¡/°C¸%±KÀ!±OÐ"CÔDÑ
EÔ
Eð	à�5õ × Ò  ¨¨e©°a©Ñ8Ô8ð 	Ý
×
Ò
˜E #¨¡+°¡/°C¸%±KÀ!±OÐ"CÔDÑ
EÔ
Eð	à�5àˆtr>   c                 óø  — t          t          ¦  «        }i }g }|D �]@}t                               |¦  «        rJ||j                                      |g¦  «         |                     |j        t          |¦  «        ¦  «         Œgt          |t          ¦  «        r‘|j
        rŠt                               |j
        d         ¦  «        re||j
        d         j                                      |j
        ¦  «         |                     |j
        d         j        t          |¦  «        ¦  «         �Œt                               | ||||¦  «         |                     |¦  «         �ŒBt                               | |||¦  «         |S r’  )r   r¶   rÑ   Ú_is_simple_characterr^   rZ   Ú
setdefaultr]   r.   rõ   r÷  Ú_flush_char_prefix)r—   r¦   rÓ   ÚprefixedÚorderr	  rl   s          r=   Ú_merge_common_prefixeszBranch._merge_common_prefixesé  s_  € õ
 �tÑ$Ô$ˆØˆØˆØð 	'ñ 	'ˆAÝ×*Ò*¨1Ñ-Ô-ð 'à˜œÔ!×(Ò(¨!¨Ñ-Ô-Ð-Ø× Ò  ¤­#¨e©*¬*Ñ5Ô5Ð5Ð5Ý˜Q¥Ñ)Ô)ð 	'¨a¬gð 	'Ý×)Ò)¨!¬'°!¬*Ñ5Ô5ð	'ð ˜œ œÔ)Ô*×1Ò1°!´'Ñ:Ô:Ð:Ø× Ò  ¤¨¤Ô!1µ3°u±:´:Ñ>Ô>Ð>Ñ>å×)Ò)¨$°¸À5Øñ ô  ð  ð ×#Ò# AÑ&Ô&Ð&Ñ&å×!Ò! $¨°%¸ÑFÔFÐFàÐr>   c                 óJ   — t          | t          ¦  «        o| j        o| j         S rÝ   )r.   r±   r²   rª   ©r¼   s    r=   r"  zBranch._is_simple_character	  s#   € å˜!�YÑ'Ô'ÐK¨A¬JÐK¸q¼|Ð;KÐKr>   c                 óâ  — g }t          ¦   «         }t          }|D ]¶}t          |t          t          t
          f¦  «        r_|j        |k    r%t                               | ||||¦  «         |j        }| 	                    | 
                    t          ¬¦  «        ¦  «         Œƒt                               | ||||¦  «         |                     |¦  «         Œ·t                               | ||||¦  «         |S )Nr©   )r¯   r°   r.   r±   r4  ÚSetBaserª   rÑ   Ú_flush_set_membersr³   r´   rZ   )r—   r¦   rÓ   r	  r÷  rª   rl   s          r=   rä  zBranch._reduce_to_set		  s  € ð ˆÝ‘”ˆÝˆ
Øð 	'ð 	'ˆAÝ˜!�i­µ7Ð;Ñ<Ô<ð 'à”< :Ò-Ð-å×-Ò-¨d°G¸UÀJØ"ñ$ô $ð $ð "#¤�Jà—	’	˜!Ÿ,š,µ&˜,Ñ9Ô9Ñ:Ô:Ð:Ð:å×)Ò)¨$°¸À
Øñ ô  ð  ð ×#Ò# AÑ&Ô&Ð&Ð&å×!Ò! $¨°¸
Ø
ñ	ô 	ð 	ð Ðr>   c           	      ó´  ‡— |sd S t          |                     ¦   «         ˆfd„¬¦  «        D �]\  }}t          |¦  «        dk    r)|                     t	          |d         ¦  «        ¦  «         ŒBg }d}|D ]e}	t          |	¦  «        dk    r+|                     t	          |	dd …         ¦  «        ¦  «         Œ@|s#|                     t          ¦   «         ¦  «         d}Œft          t          |¦  «        t          |¦  «        g¦  «        }
|                     |
                     | |¦  «        ¦  «         �Œ| 	                    ¦   «          ‰ 	                    ¦   «          d S )Nc                 ó    •— ‰| d                  S r’  rC   )Úpairr&  s    €r=   ú<lambda>z+Branch._flush_char_prefix.<locals>.<lambda>+	  s   ø€ Ø
��Q”Œ.ð r>   ©Úkeyr-   r   FT)
Úsortedr÷  r]   rZ   rS  rõ   r±   rÑ   r·   r€   )r—   r¦   r%  r&  r	  r^   rÓ   ÚsubbranchesÚoptionalrl   rö   s      `       r=   r$  zBranch._flush_char_prefix%	  si  ø€ ð ð 	ØˆFå% h§n¢nÑ&6Ô&6ð =ð =ð =ð =ð  ñ  ô  ð 	Fñ 	F‰OˆE�8å�8‰}Œ} Ò!Ð!Ø×#Ò#¥M°(¸1´+Ñ$>Ô$>Ñ?Ô?Ð?Ð?à �Ø �Ø!ð (ð (�AÝ˜1‘v”v ’z�zØ#×*Ò*­=¸¸1¸3¸3¼Ñ+AÔ+AÑBÔBÐBÐBØ%ð (Ø#×*Ò*­8©:¬:Ñ6Ô6Ð6Ø#'˜øå#¥Y¨uÑ%5Ô%5µv¸kÑ7JÔ7JÐ$KÑLÔL�Ø×#Ò# H×$5Ò$5°d¸GÑ$DÔ$DÑEÔEÐEÑEà�ŠÑÔÐØ�Š‰Œˆˆˆr>   c                 ó<  — |sd S t          |¦  «        dk    rt          |¦  «        d         }n1t          | t          |¦  «        ¦  «                             | |¦  «        }|                     |                     |¬¦  «        ¦  «         |                     ¦   «          d S )Nr-   r   r©   )r]   r¶   rµ   r·   rZ   r´   r€   )r—   r¦   r÷  rª   r	  rß   s         r=   r,  zBranch._flush_set_members?	  s‰   € ð ð 	ØˆFåˆu‰:Œ:˜Š?ˆ?Ý˜‘;”;˜q”>ˆDˆDå˜D¥$ u¡+¤+Ñ.Ô.×7Ò7¸¸gÑFÔFˆDà×Ò˜DŸOšO°z˜OÑBÔBÑCÔCÐCà�Š‰Œˆˆˆr>   c                 ó¶   — d|cxk    rt          | ¦  «        k     sn dS | |         }t          |t          ¦  «        o|j        o|j        t
          z  t
          k    S )Nr   F)r]   r.   r±   r²   rª   ÚFULLIGNORECASE)r÷  ro   rß   s      r=   r  zBranch._is_full_caseN	  se   € à�AÐ"Ð"Ò"Ð"�˜E™
œ
Ò"Ð"Ð"Ð"Ø�5à�QŒxˆÝ˜4¥Ñ+Ô+ð ?°´ð ?ØŒ?�^Ñ+µÒ
>ð	@r>   c                 ój  — t          | ¦  «        dk     rdS | D ](}t          |t          ¦  «        r|j        r|j        s dS Œ)d                     d„ | D ¦   «         ¦  «        }t          j        t          |¦  «        }t          j	        ¦   «         }|D ]#}|t          j        t          |¦  «        k    r dS Œ$dS )NrN   Frf   c              3   ó>   K  — | ]}t          |j        ¦  «        V — Œd S rÝ   )Úchrr^   ©rÞ   ro   s     r=   r�  z$Branch._is_folded.<locals>.<genexpr>a	  s*   è è € Ð5Ð5¨!�˜QœW™œÐ5Ð5Ð5Ð5Ð5Ð5r>   T)
r]   r.   r±   r²   rª   r\   r•   r–   ÚFULL_CASE_FOLDINGÚget_expand_on_folding)r÷  ro   ÚfoldedÚexpanding_charsr¼   s        r=   r  zBranch._is_foldedW	  s×   € åˆu‰:Œ:˜Š>ˆ>Ø�5àð 	ð 	ˆAÝ˜q¥)Ñ,Ô,ð °A´Jð ØŒlðà�u�uðð —’Ð5Ð5¨uÐ5Ñ5Ô5Ñ5Ô5ˆÝÔ!Õ"3°VÑ<Ô<ˆõ !Ô6Ñ8Ô8ˆà ð 	ð 	ˆAØ�Ô)Õ*;¸QÑ?Ô?Ò?Ð?Ø�t�tð @ð ˆur>   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó>   K  — | ]}|                      ¦   «         V — Œd S rÝ   ©r  rõ  s     r=   r�  z"Branch.is_empty.<locals>.<genexpr>n	  s*   è è € Ð7Ð7 A�1—:’:‘<”<Ð7Ð7Ð7Ð7Ð7Ð7r>   rú  rX  s    r=   r  zBranch.is_emptym	  s!   € ÝÐ7Ð7¨¬Ð7Ñ7Ô7Ñ7Ô7Ð7r>   c                 ó^   — t          | ¦  «        t          |¦  «        u o| j        |j        k    S rÝ   )r×  rÓ   r€  s     r=   r‚  zBranch.__eq__p	  s'   € Ý�D‰zŒz�T %™[œ[Ð(ÐL¨T¬]¸e¼nÒ-LÐLr>   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó>   K  — | ]}|                      ¦   «         V — Œd S rÝ   r†  rõ  s     r=   r�  z#Branch.max_width.<locals>.<genexpr>t	  rù  r>   )r<  rÓ   rX  s    r=   r‡  zBranch.max_widths	  rû  r>   N)r?   r@   rA   r9   r`  r·   rå  rf  rh  rk  rn  rq  ru  ry  rŸ  Ústaticmethodrá  rã  râ  r  r  r'  r"  rä  r$  r,  r  r  r  r‚  r‡  rC   r>   r=   rÑ   rÑ   î  sH  € € € € € ð!ð !ð !ð2ð 2ð 2ð!9ð !9ð !9ðFOð Oð Oðð ð ðð ð ð9ð 9ð 9ð<ð <ð <ð>ð >ð >ð!ð !ð !ðð ð ð(ð (ð (ð ð
ð 
ñ „\ð
ð ð'.ð '.ñ „\ð'.ðR ð&/ð &/ñ „\ð&/ðP ðð ñ „\ðð0 ðð ñ „\ðð4 ðð ñ „\ðð6 ðLð Lñ „\ðLð ðð ñ „\ðð6 ðð ñ „\ðð2 ðð ñ „\ðð ð@ð @ñ „\ð@ð ðð ñ „\ðð*8ð 8ð 8ðMð Mð Mð9ð 9ð 9ð 9ð 9r>   rÑ   c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
r  c                 óŠ   — t                                | ¦  «         || _        || _        || _        | j        | j        f| _        d S rÝ   )rU  r9   r—   rc  rÆ   rY   rW  )r:   r—   rc  rÆ   s       r=   r9   zCallGroup.__init__w	  s?   € Ý×Ò˜4Ñ Ô Ð ØˆŒ	ØˆŒ
Ø ˆŒà”N D¤JÐ.ˆŒ	ˆ	ˆ	r>   c                 ó*  — 	 t          | j        ¦  «        | _        nR# t          $ rE 	 | j        j        | j                 | _        n$# t
          $ r t          d|| j        ¦  «        ‚w xY wY nw xY wd| j        cxk    r| j        j        k    sn t          d|| j        ¦  «        ‚| j        dk    r1| j        j	        | j                 dk    rt          d|| j        ¦  «        ‚| j        j
                             | ||f¦  «         | j        | j        f| _        d S )NrH  r   rI  r-   zambiguous group reference)r  rc  r2  r—   Úgroup_indexr   r&   rÆ   r{  Úopen_group_countÚgroup_callsrZ   rY   rW  r^  s       r=   r`  zCallGroup.fix_groups	  s4  € ð	OÝ˜TœZ™œˆDŒJˆJøÝð 	Oð 	Oð 	OðOØ!œYÔ2°4´:Ô>�”
�
øÝð Oð Oð OÝÐ5°wÀÄÑNÔNÐNðOøøøð �
ð	Oøøøð �D”JÐ7Ð7Ò7Ð7 $¤)Ô"7Ò7Ð7Ð7Ð7Ý˜¨°$´-Ñ@Ô@Ð@àŒ:˜Š>ˆ>˜dœiÔ8¸¼ÔDÀqÒHÐHÝÐ3°W¸d¼mÑLÔLÐLàŒ	Ô×$Ò$ d¨G°UÐ%;Ñ<Ô<Ð<à”N D¤JÐ.ˆŒ	ˆ	ˆ	ó&   ‚ œ
A+§AÁA+Á!A%Á%A+Á*A+c                 ó8   — t          dt          | j        ¦  «        ‚©Nzgroup reference not allowed©r&   r1   rÆ   rX  s    r=   rh  zCallGroup.remove_captures’	  ó   € ÝÐ1µ7¸D¼MÑJÔJÐJr>   c                 ó*   — t           j        | j        fgS rÝ   )r«  Ú
GROUP_CALLÚcall_refrz  s      r=   ry  zCallGroup._compile•	  s   € Ý” ¤Ð.Ð/Ð/r>   c                 óf   — t          d                     t          |z  | j        ¦  «        ¦  «         d S )Nz{}GROUP_CALL {})r™  r7   rš  rc  r�  s      r=   rŸ  zCallGroup.dump˜	  s-   € ÝÐ×&Ò&¥v°¡¸¼
ÑCÔCÑDÔDÐDÐDÐDr>   c                 ó^   — t          | ¦  «        t          |¦  «        u o| j        |j        k    S rÝ   )r×  rc  r€  s     r=   r‚  zCallGroup.__eq__›	  ó'   € Ý�D‰zŒz�T %™[œ[Ð(ÐF¨T¬Z¸5¼;Ò-FÐFr>   c                 ó   — t           S rÝ   r  rX  s    r=   r‡  zCallGroup.max_widthž	  ó   € ÝÐr>   c                 ó   — d | _         d S rÝ   ©r—   rX  s    r=   Ú__del__zCallGroup.__del__¡	  ó   € ØˆŒ	ˆ	ˆ	r>   N)r?   r@   rA   r9   r`  rh  ry  rŸ  r‚  r‡  r]  rC   r>   r=   r  r  v	  s•   € € € € € ð/ð /ð /ð/ð /ð /ð&Kð Kð Kð0ð 0ð 0ðEð Eð EðGð Gð Gðð ð ðð ð ð ð r>   r  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚCallRefc                 ó"   — || _         || _        d S rÝ   )ÚrefÚparsed)r:   rb  rc  s      r=   r9   zCallRef.__init__¥	  s   € ØˆŒØˆŒˆˆr>   c                 ó€   — t           j        | j        fg| j                             ||¦  «        z   t           j        fgz   S rÝ   )r«  ÚCALL_REFrb  rc  ry  rÍ  rz  s      r=   ry  zCallRef._compile©	  sB   € Ý”+˜tœxÐ(Ð)¨D¬K×,@Ò,@ÀØ
ñ-ô -ñ Ý”V�J�<ñ ð 	!r>   N©r?   r@   rA   r9   ry  rC   r>   r=   r`  r`  ¤	  s2   € € € € € ðð ð ð!ð !ð !ð !ð !r>   r`  c                   óè   — e Zd Zedfej        edfej        edfej        e	dfej        edfej
        edfej        edfej
        e	dfej        iZdedfd„Zd„ Zdd„Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ ZdS )r±   FTc                 óÚ  — t                                | ¦  «         || _        t          |¦  «        | _        t
          |         | _        t          |¦  «        | _        | j        rJ| j        t          z  t          k    r2t          j
        t          t          | j        ¦  «        ¦  «        | _        nt          | j        ¦  «        | _        | j        | j        | j        | j        | j        f| _        d S rÝ   )rU  r9   r^   r¢   r²   rZ  rª   r¬   r8  r•   r–   r=  r;  r?  rY   rW  ©r:   r^   r²   rª   r¬   s        r=   r9   zCharacter.__init__´	  s´   € å×Ò˜4Ñ Ô Ð ØˆŒ
Ý˜X™œˆŒÝ1°*Ô=ˆŒÝ˜i™œˆŒàŒMð 	*˜tœµÑ?Ý
òð å Ô*Õ+<½cÀ$Ä*¹o¼oÑNÔNˆDŒKˆKå˜dœj™/œ/ˆDŒKà”^ T¤Z°´Ø
Œ/˜4œ>ð+ˆŒ	ˆ	ˆ	r>   c                 ó0   — t          | j        |||¦  «        S rÝ   )r±   r^   r\  s       r=   r[  zCharacter.rebuildÅ	  s   € Ý˜œ X¨z¸9ÑEÔEÐEr>   c                 ó   — | S rÝ   rC   ©r:   r—   r¦   r®   s       r=   r·   zCharacter.optimiseÈ	  rc  r>   c                 ó"   — t          | g¦  «        S rÝ   r�  rt  s     r=   ru  zCharacter.get_firstsetË	  r�  r>   c                 ó   — dS rj  rC   rX  s    r=   rw  zCharacter.has_simple_startÎ	  rl  r>   c                 óx  — d}| j         r
|t          z  }| j        r
|t          z  }|r
|t          z  }t          | j        | j        |f         || j        g¦  «        }t          | j
        ¦  «        dk    r4t          |t          d„ | j
        D ¦   «         | j        ¬¦  «        g¦  «        }|                     ||¦  «        S )Nr   r-   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rC   ©rô   r¸  s     r=   rà   z&Character._compile.<locals>.<listcomp>ß	  s   € Ð(EÐ(EÐ(E°A­¨Q©¬Ð(EÐ(EÐ(Er>   r©   )r²   r“  r¬   ÚZEROWIDTH_OPr”  ÚPrecompiledCoder–  rª   r^   r]   r?  rÑ   rÁ  r¤   )r:   r¦   r_  r�   rº   s        r=   ry  zCharacter._compileÑ	  sØ   € ØˆØŒ=ð 	!Ø•[Ñ ˆEØŒ>ð 	"Ø•\Ñ!ˆEØð 	Ø•XÑˆEå ¤¨T¬_¸gÐ-EÔ FÈØ
Œ*ð ñ ô ˆõ ˆtŒ{ÑÔ˜aÒÐå˜4¥Ð(EÐ(E¸¼Ð(EÑ(EÔ(EØœð"*ñ "*ô "*ð +ñ ,ô ,ˆDð �|Š|˜G UÑ+Ô+Ð+r>   c           	      ó  — t          t          | j        ¦  «        ¦  «                             d¦  «        }t	          d                     t          |z  t          | j                 |t          | j
                 ¦  «        ¦  «         d S )NÚbuz{}CHARACTER {} {}{})Úasciir;  r^   Úlstripr™  r7   rš  rœ  r²   Ú	CASE_TEXTrª   ©r:   rž  r¦   Údisplays       r=   rŸ  zCharacter.dumpä	  sv   € Ý�˜DœJ™œÑ(Ô(×/Ò/°Ñ5Ô5ˆÝÐ#×*Ò*­6°F©?Ý
�4”=Ô
! 7­I°d´oÔ,FñHô Hñ 	Iô 	Ið 	Ið 	Ið 	Ir>   c                 ó*   — || j         k    | j        k    S rÝ   )r^   r²   ©r:   rø   s     r=   ÚmatcheszCharacter.matchesé	  s   € Ø�d”jÒ  T¤]Ò2Ð2r>   c                 ó*   — t          | j        ¦  «        S rÝ   )r]   r?  rX  s    r=   r‡  zCharacter.max_widthì	  s   € Ý�4”;ÑÔÐr>   c                 ób   — | j         sdS t          d„ | j        D ¦   «         ¦  «        | _        d| fS )Nr  c              3   ó4   K  — | ]}t          |¦  «        V — Œd S rÝ   rq  r¸  s     r=   r�  z0Character.get_required_string.<locals>.<genexpr>ó	  s(   è è € Ð&CÐ&C°!¥s¨1¡v¤vÐ&CÐ&CÐ&CÐ&CÐ&CÐ&Cr>   r   )r²   r{   r?  Úfolded_charactersrt  s     r=   rˆ  zCharacter.get_required_stringï	  s;   € ØŒ}ð 	Ø�7å!&Ð&CÐ&C°t´{Ð&CÑ&CÔ&CÑ!CÔ!CˆÔà�$ˆwˆr>   N©F)r?   r@   rA   r°   r«  Ú	CHARACTERr   ÚCHARACTER_IGNr   r8  ÚCHARACTER_REVÚCHARACTER_IGN_REVr–  r9   r[  r·   ru  rw  ry  rŸ  r}  r‡  rˆ  rC   r>   r=   r±   r±   ­	  s3  € € € € € Ø˜ˆ ¤¨z¸5Ð.AØÔ˜ 5Ð)¨2¬<¸.Øð:ØÔ ¨ °Ô0@À:Ø
ðCØÔ! H¨dÐ#3°RÔ5EØ�tÐ˜bÔ2ð	4€Gð (,¸Øð+ð +ð +ð +ð"Fð Fð Fðð ð ð ðð ð ðð ð ð,ð ,ð ,ð&Ið Ið Ið
3ð 3ð 3ð ð  ð  ðð ð ð ð r>   r±   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dS )rs  c                 ó€   — t                                | ¦  «         || _        || _        || _        || _        || _        d S rÝ   )rU  r9   r—   rc  Úyes_itemÚno_itemrÆ   )r:   r—   rc  r‰  rŠ  rÆ   s         r=   r9   zConditional.__init__ø	  s=   € Ý×Ò˜4Ñ Ô Ð ØˆŒ	ØˆŒ
Ø ˆŒØˆŒØ ˆŒˆˆr>   c                 óâ  — 	 t          | j        ¦  «        | _        ng# t          $ rZ 	 | j        j        | j                 | _        n9# t
          $ r, | j        dk    rd| _        nt          d|| j        ¦  «        ‚Y nw xY wY nw xY wd| j        cxk    r| j        j        k    sn t          d|| j        ¦  «        ‚| j	         
                    |||¦  «         | j         
                    |||¦  «         d S )NÚDEFINEr   rI  rH  )r  rc  r2  r—   rK  r   r&   rÆ   r{  r‰  r`  rŠ  r^  s       r=   r`  zConditional.fix_groups 
  s  € ð	IÝ˜TœZ™œˆDŒJˆJøÝð 		Ið 		Ið 		IðIØ!œYÔ2°4´:Ô>�”
�
øÝð Ið Ið IØ”: Ò)Ð)ð "#�D”J�Jå °¸$¼-ÑHÔHÐHð �Jð	Iøøøøøð		Iøøøð �D”JÐ7Ð7Ò7Ð7 $¤)Ô"7Ò7Ð7Ð7Ð7ÝÐ1°7¸D¼MÑJÔJÐJàŒ× Ò  ¨'°5Ñ9Ô9Ð9ØŒ×Ò ¨°%Ñ8Ô8Ð8Ð8Ð8s2   ‚ œ
B §AÁB Á3A:Á7B Á9A:Á:B Á?B c                 ó¨   — | j                              ||¦  «        }| j                             ||¦  «        }t          || j        ||| j        ¦  «        S rÝ   )r‰  r·   rŠ  rs  rc  rÆ   )r:   r—   r¦   r‰  rŠ  s        r=   r·   zConditional.optimise
  sJ   € Ø”=×)Ò)¨$°Ñ8Ô8ˆØ”,×'Ò'¨¨gÑ6Ô6ˆå˜4 ¤¨X°wÀÄÑNÔNÐNr>   c                 ó‚   — | j                              |¦  «        | _         | j                             |¦  «        | _        | S rÝ   )r‰  rf  rŠ  re  s     r=   rf  zConditional.pack_characters
  s5   € Øœ×5Ò5°dÑ;Ô;ˆŒØ”|×3Ò3°DÑ9Ô9ˆŒØˆr>   c                 ó~   — | j                              ¦   «         | _         | j                             ¦   «         | _        d S rÝ   )r‰  rh  rŠ  rX  s    r=   rh  zConditional.remove_captures
  s0   € Øœ×5Ò5Ñ7Ô7ˆŒØ”|×3Ò3Ñ5Ô5ˆŒˆˆr>   c                 óf   — | j                              ¦   «         o| j                             ¦   «         S rÝ   )r‰  rk  rŠ  rX  s    r=   rk  zConditional.is_atomic#
  s)   € ØŒ}×&Ò&Ñ(Ô(ÐE¨T¬\×-CÒ-CÑ-EÔ-EÐEr>   c                 óf   — | j                              ¦   «         o| j                             ¦   «         S rÝ   )r‰  rn  rŠ  rX  s    r=   rn  zConditional.can_be_affix&
  s)   € ØŒ}×)Ò)Ñ+Ô+ÐK°´×0IÒ0IÑ0KÔ0KÐKr>   c                 óf   — | j                              ¦   «         p| j                             ¦   «         S rÝ   )r‰  rq  rŠ  rX  s    r=   rq  zConditional.contains_group)
  s)   € ØŒ}×+Ò+Ñ-Ô-ÐN°´×1LÒ1LÑ1NÔ1NÐNr>   c                 ól   — | j                              |¦  «        | j                             |¦  «        z  S rÝ   )r‰  ru  rŠ  rt  s     r=   ru  zConditional.get_firstset,
  s2   € Ø”×*Ò*¨7Ñ3Ô3Ø
Œ,×
#Ò
# GÑ
,Ô
,ñ-ð 	.r>   c                 ón  — t           j        | j        fg}|                     | j                             ||¦  «        ¦  «         | j                             ||¦  «        }|r5|                     t           j        f¦  «         |                     |¦  «         |                     t           j	        f¦  «         |S rÝ   )
r«  ÚGROUP_EXISTSrc  r¹   r‰  r¤   rŠ  rZ   r  rÍ  ©r:   r¦   r_  rº   Úadd_codes        r=   ry  zConditional._compile0
  s™   € Ý” $¤*Ð-Ð.ˆØ�Š�D”M×)Ò)¨'°5Ñ9Ô9Ñ:Ô:Ð:Ø”<×'Ò'¨°Ñ7Ô7ˆØð 	"Ø�KŠK�œ˜Ñ$Ô$Ð$Ø�KŠK˜Ñ!Ô!Ð!à�Š•R”V�JÑÔÐàˆr>   c                 óh  — t          d                     t          |z  | j        ¦  «        ¦  «         | j                             |dz   |¦  «         | j                             ¦   «         sJt          d                     t          |z  ¦  «        ¦  «         | j                             |dz   |¦  «         d S d S )Nz{}GROUP_EXISTS {}r-   r  )r™  r7   rš  rc  r‰  rŸ  rŠ  r  r�  s      r=   rŸ  zConditional.dump<
  s£   € ÝÐ!×(Ò(­°&©¸$¼*ÑEÔEÑFÔFÐFØŒ×Ò˜6 A™: wÑ/Ô/Ð/ØŒ|×$Ò$Ñ&Ô&ð 	3Ý�&—-’-¥¨¡Ñ0Ô0Ñ1Ô1Ð1ØŒL×Ò˜f q™j¨'Ñ2Ô2Ð2Ð2Ð2ð	3ð 	3r>   c                 óf   — | j                              ¦   «         o| j                             ¦   «         S rÝ   )r‰  r  rŠ  rX  s    r=   r  zConditional.is_emptyC
  s)   € ØŒ}×%Ò%Ñ'Ô'ÐC¨D¬L×,AÒ,AÑ,CÔ,CÐCr>   c                 ó’   — t          | ¦  «        t          |¦  «        u o)| j        | j        | j        f|j        |j        |j        fk    S rÝ   )r×  rc  r‰  rŠ  r€  s     r=   r‚  zConditional.__eq__F
  sJ   € Ý�D‰zŒz�T %™[œ[Ð(ð H¨d¬j¸$¼-Ø
Œ,ð.Ø!œK¨¬¸¼ÐGò.Hð 	Hr>   c                 ó~   — t          | j                             ¦   «         | j                             ¦   «         ¦  «        S rÝ   ©r<  r‰  r‡  rŠ  rX  s    r=   r‡  zConditional.max_widthJ
  ó.   € Ý�4”=×*Ò*Ñ,Ô,¨d¬l×.DÒ.DÑ.FÔ.FÑGÔGÐGr>   c                 ó   — d | _         d S rÝ   r\  rX  s    r=   r]  zConditional.__del__M
  r^  r>   N)r?   r@   rA   r9   r`  r·   rf  rh  rk  rn  rq  ru  ry  rŸ  r  r‚  r‡  r]  rC   r>   r=   rs  rs  ÷	  s
  € € € € € ð!ð !ð !ð9ð 9ð 9ð(Oð Oð Oðð ð ð
6ð 6ð 6ðFð Fð FðLð Lð LðOð Oð Oð.ð .ð .ð
ð 
ð 
ð3ð 3ð 3ðDð Dð DðHð Hð HðHð Hð Hðð ð ð ð r>   rs  c                   ó    — e Zd Zej        ZdZdS )ÚDefaultBoundaryÚDEFAULT_BOUNDARYN)r?   r@   rA   r«  r¡  r–  r›  rC   r>   r=   r   r   P
  s   € € € € € ØÔ!€GØ!€H€H€Hr>   r   c                   ó    — e Zd Zej        ZdZdS )ÚDefaultEndOfWordÚDEFAULT_END_OF_WORDN)r?   r@   rA   r«  r¤  r–  r›  rC   r>   r=   r£  r£  T
  s   € € € € € ØÔ$€GØ$€H€H€Hr>   r£  c                   ó    — e Zd Zej        ZdZdS )ÚDefaultStartOfWordÚDEFAULT_START_OF_WORDN)r?   r@   rA   r«  r§  r–  r›  rC   r>   r=   r¦  r¦  X
  s   € € € € € ØÔ&€GØ&€H€H€Hr>   r¦  c                   ó    — e Zd Zej        ZdZdS )rí   ÚEND_OF_LINEN)r?   r@   rA   r«  r©  r–  r›  rC   r>   r=   rí   rí   \
  ó   € € € € € ØŒn€GØ€H€H€Hr>   rí   c                   ó    — e Zd Zej        ZdZdS )rì   ÚEND_OF_LINE_UN)r?   r@   rA   r«  r¬  r–  r›  rC   r>   r=   rì   rì   `
  ó   € € € € € ØÔ€GØ€H€H€Hr>   rì   c                   ó    — e Zd Zej        ZdZdS )ÚEndOfStringÚEND_OF_STRINGN)r?   r@   rA   r«  r°  r–  r›  rC   r>   r=   r¯  r¯  d
  r­  r>   r¯  c                   ó    — e Zd Zej        ZdZdS )rï   ÚEND_OF_STRING_LINEN)r?   r@   rA   r«  r²  r–  r›  rC   r>   r=   rï   rï   h
  s   € € € € € ØÔ#€GØ#€H€H€Hr>   rï   c                   ó    — e Zd Zej        ZdZdS )rî   ÚEND_OF_STRING_LINE_UN)r?   r@   rA   r«  r´  r–  r›  rC   r>   r=   rî   rî   l
  s   € € € € € ØÔ%€GØ%€H€H€Hr>   rî   c                   ó    — e Zd Zej        ZdZdS )Ú	EndOfWordÚEND_OF_WORDN)r?   r@   rA   r«  r·  r–  r›  rC   r>   r=   r¶  r¶  p
  rª  r>   r¶  c                   ó   — e Zd ZdZd„ ZdS )ÚFailureÚFAILUREc                 ó   — t           j        fgS rÝ   )r«  rº  rz  s      r=   ry  zFailure._compilew
  s   € Ý”�ÐÐr>   N©r?   r@   rA   r›  ry  rC   r>   r=   r¹  r¹  t
  s(   € € € € € Ø€Hð ð  ð  ð  ð  r>   r¹  c                   óX   — e Zd Zd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S )r	  Nc                 ó  — t                                | ¦  «         |€i }|| _        || _        d|v r%dD ]"}||d         v r|                     |d¦  «         Œ#t          |¦  «        t          d¦  «        z  rdD ]}|                     |d¦  «         ŒndD ]}|                     |d¦  «         Œ|                     dd¦  «         d|v r#dD ]}|d                              |d¦  «         Œd S ddd|d         d         dœ|d<   d S )	Nr;  r?  r  )r   r   rm   r   r-   )Údro   rr   r<  )rU  r9   r
  rû   r#  r¯   )r:   r
  rû   rm   s       r=   r9   zFuzzy.__init__{
  sp  € Ý×Ò˜4Ñ Ô Ð ØÐØˆKØ$ˆŒØ&ˆÔð �[Ð Ð Øð 9ð 9�Ø˜ FÔ+Ð+Ð+Ø×*Ò*¨1¨iÑ8Ô8Ð8øõ ˆ{ÑÔ�c %™jœjÑ(ð 	5Øð 2ð 2�Ø×&Ò& q¨&Ñ1Ô1Ð1Ð1ð2ð ð 5ð 5�Ø×&Ò& q¨)Ñ4Ô4Ð4Ð4ð 	×Ò˜s IÑ.Ô.Ð.ð �[Ð Ð Øð 5ð 5�Ø˜FÔ#×.Ò.¨q°!Ñ4Ô4Ð4Ð4ð5ð 5ð )*°¸Ø˜#Ô˜qÔ!ð##ð ##ˆK˜ÑÐÐr>   c                 ó>   — | j                              ||d¦  «         d S rj  r¶  r^  s       r=   r`  zFuzzy.fix_groupsž
  s"   € ØŒ×"Ò" 7¨G°TÑ:Ô:Ð:Ð:Ð:r>   c                 óD   — | j                              |¦  «        | _         | S rÝ   rº  re  s     r=   rf  zFuzzy.pack_characters¡
  r»  r>   c                 óB   — | j                              ¦   «         | _         | S rÝ   r½  rX  s    r=   rh  zFuzzy.remove_captures¥
  r¾  r>   c                 ó4   — | j                              ¦   «         S rÝ   ©r
  rk  rX  s    r=   rk  zFuzzy.is_atomic©
  rÖ  r>   c                 ó4   — | j                              ¦   «         S rÝ   rÃ  rX  s    r=   rq  zFuzzy.contains_group¬
  rÄ  r>   c                 ó4  — g }dD ]T}| j         |         }|                     |d         ¦  «         |                     |d         €t          n|d         ¦  «         ŒUdD ](}|                     | j         d         |         ¦  «         Œ)| j         d         d         }|                     |€t          n|¦  «         d}|r
|t          z  }| j                              d¦  «        }|rpt
          j        |ft          |¦  «        z   g|                     |d¦  «        z   t
          j	        fgz   | j
                             |d¦  «        z   t
          j        fgz   S t
          j        |ft          |¦  «        z   g| j
                             |d¦  «        z   t
          j        fgz   S )	NÚdiser   r-   r?  r;  r<  r  T)rû   rZ   r  r•  rá   r«  Ú	FUZZY_EXTr{   r¤   r  r
  rÍ  ÚFUZZY)r:   r¦   r_  Ú	argumentsrm   Úvr�   r  s           r=   ry  zFuzzy._compile¯
  s¶  € àˆ	Øð 	Bð 	BˆAØÔ  Ô#ˆAØ×Ò˜Q˜qœTÑ"Ô"Ð"Ø×Ò¨!¨A¬$¨,�Y˜Y¸A¸a¼DÑAÔAÐAÐAð ð 	:ð 	:ˆAØ×Ò˜TÔ-¨fÔ5°aÔ8Ñ9Ô9Ð9Ð9ð Ô˜VÔ$ UÔ+ˆØ×Ò a i�˜°QÑ7Ô7Ð7àˆØð 	 Ø•ZÑˆEàÔ×#Ò# FÑ+Ô+ˆàð 	DÝ”l EÐ*­U°9Ñ-=Ô-=Ñ=Ð>Ø�lŠl˜7 DÑ)Ô)ñ*Ý.0¬g¨Z¨Lñ9àŒo×%Ò% g¨tÑ4Ô4ñ5å9;¼¸	°{ñCð Dõ ”(˜EÐ"¥U¨9Ñ%5Ô%5Ñ5Ð6Ø
Œ/×
!Ò
! '¨4Ñ
0Ô
0ñ1Ý57´V°I°;ñ?ð 	@r>   c                 óÎ   — |                       ¦   «         }|rd|z   }t          d                     t          |z  |¦  «        ¦  «         | j                             |dz   |¦  «         d S )NrF  z	{}FUZZY{}r-   )Ú_constraints_to_stringr™  r7   rš  r
  rŸ  )r:   rž  r¦   rû   s       r=   rŸ  z
Fuzzy.dumpÍ
  si   € Ø×1Ò1Ñ3Ô3ˆØð 	,Ø Ñ+ˆKÝˆk× Ò ¥¨&¡°+Ñ>Ô>Ñ?Ô?Ð?ØŒ×Ò˜V a™Z¨Ñ1Ô1Ð1Ð1Ð1r>   c                 ó4   — | j                              ¦   «         S rÝ   rÑ  rX  s    r=   r  zFuzzy.is_emptyÔ
  rÒ  r>   c                 ó~   — t          | ¦  «        t          |¦  «        u o| j        |j        k    o| j        |j        k    S rÝ   )r×  r
  rû   r€  s     r=   r‚  zFuzzy.__eq__×
  sE   € Ý�T‘
”
�d 5™kœkÐ)ð E¨d¬oØ
Ô
ò/ð EØ#Ô/°5Ô3DÒDð	Fr>   c                 ó   — t           S rÝ   r  rX  s    r=   r‡  zFuzzy.max_widthÛ
  rZ  r>   c                 óN  — g }dD ]j}| j         |         \  }}|dk    rŒd}|dk    rd                     |¦  «        }||z  }|�|d                     |¦  «        z  }|                     |¦  «         Œkg }dD ]D}| j         d         |         }|dk    r)|                     d                     ||¦  «        ¦  «         ŒE| j         d         d         }|�D|dk    r>d	                     d
                     |¦  «        |¦  «        }|                     |¦  «         d                     |¦  «        S )NÚidsr   rf   z{}<=z<={}r;  r¨  r<  z{}<={}rþ   r  )rû   r7   rZ   r\   )	r:   rû   rÅ   r  r<  Úconr;  r@  Úlimits	            r=   rÍ  zFuzzy._constraints_to_stringÞ
  s@  € Øˆàð 	$ð 	$ˆDØÔ'¨Ô-‰HˆC�Ø�aŠxˆxØàˆCà�QŠwˆwØ—m’m CÑ(Ô(�à�4‰KˆCàˆØ�v—}’} SÑ)Ô)Ñ)�à×Ò˜sÑ#Ô#Ð#Ð#àˆØð 	8ð 	8ˆDØÔ$ VÔ,¨TÔ2ˆEØ�qŠyˆyØ—’˜FŸMšM¨%°Ñ6Ô6Ñ7Ô7Ð7øàÔ  Ô(¨Ô/ˆØÐ ¨¢ Ø—?’? 3§8¢8¨D¡>¤>°5Ñ9Ô9ˆDØ×Ò˜tÑ$Ô$Ð$à�xŠx˜Ñ$Ô$Ð$r>   rÝ   )r?   r@   rA   r9   r`  rf  rh  rk  rq  ry  rŸ  r  r‚  r‡  rÍ  rC   r>   r=   r	  r	  z
  sÔ   € € € € € ð!#ð !#ð !#ð !#ðF;ð ;ð ;ðð ð ðð ð ð+ð +ð +ð0ð 0ð 0ð@ð @ð @ð<2ð 2ð 2ð*ð *ð *ðFð Fð Fðð ð ð%ð %ð %ð %ð %r>   r	  c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )rÂ  c           	      ó¸   — t          t          t          t          ¦   «         dd ¦  «        t	          ¦   «         g¦  «        ¦  «        }|                     ||¦  «        S rª  )ry  rõ   r  rå   ÚGraphemeBoundaryr¤   )r:   r¦   r_  Úgrapheme_matchers       r=   ry  zGrapheme._compile   sX   € õ "¥(­Jµv±x´xÀÀDÑ,IÔ,IÝ
Ñ
Ô
ð,ñ #ô #ñ  ô  Ðð  ×'Ò'¨°Ñ7Ô7Ð7r>   c                 óZ   — t          d                     t          |z  ¦  «        ¦  «         d S )Nz
{}GRAPHEME)r™  r7   rš  r�  s      r=   rŸ  zGrapheme.dump  s(   € Ýˆl×!Ò!¥&¨6¡/Ñ2Ô2Ñ3Ô3Ð3Ð3Ð3r>   c                 ó   — t           S rÝ   r  rX  s    r=   r‡  zGrapheme.max_width  rZ  r>   N)r?   r@   rA   ry  rŸ  r‡  rC   r>   r=   rÂ  rÂ  ÿ
  sA   € € € € € ð8ð 8ð 8ð4ð 4ð 4ðð ð ð ð r>   rÂ  c                   ó   — e Zd Zd„ ZdS )r×  c                 ó    — t           j        dfgS rª  )r«  ÚGRAPHEME_BOUNDARYrz  s      r=   r¤   zGraphemeBoundary.compile  s   € ÝÔ% qÐ)Ð*Ð*r>   N)r?   r@   rA   r¤   rC   r>   r=   r×  r×    s#   € € € € € ð+ð +ð +ð +ð +r>   r×  c                   óz   — e Zd Zej        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dS )r   ÚGREEDY_REPEATc                 ód   — t                                | ¦  «         || _        || _        || _        d S rÝ   )rU  r9   r
  r  r  )r:   r
  r  r  s       r=   r9   zGreedyRepeat.__init__  s/   € Ý×Ò˜4Ñ Ô Ð Ø$ˆŒØ"ˆŒØ"ˆŒˆˆr>   c                 ó>   — | j                              |||¦  «         d S rÝ   r¶  r^  s       r=   r`  zGreedyRepeat.fix_groups  r·  r>   c                 ó€   — | j                              ||¦  «        } t          | ¦  «        || j        | j        ¦  «        S rÝ   )r
  r·   r×  r  r  ©r:   r—   r¦   r
  s       r=   r·   zGreedyRepeat.optimise  s7   € Ø”_×-Ò-¨d°GÑ<Ô<ˆ
à�t�D‰zŒz˜* d¤n°d´nÑEÔEÐEr>   c                 óD   — | j                              |¦  «        | _         | S rÝ   rº  re  s     r=   rf  zGreedyRepeat.pack_characters$  r»  r>   c                 óB   — | j                              ¦   «         | _         | S rÝ   r½  rX  s    r=   rh  zGreedyRepeat.remove_captures(  r¾  r>   c                 óT   — | j         | j        k    o| j                             ¦   «         S rÝ   )r  r  r
  rk  rX  s    r=   rk  zGreedyRepeat.is_atomic,  s$   € ØŒ~ ¤Ò/ÐO°D´O×4MÒ4MÑ4OÔ4OÐOr>   c                 ó   — dS rp  rC   rX  s    r=   rn  zGreedyRepeat.can_be_affix/  rr  r>   c                 ó4   — | j                              ¦   «         S rÝ   rÃ  rX  s    r=   rq  zGreedyRepeat.contains_group2  rÄ  r>   c                 óz   — | j                              |¦  «        }| j        dk    r|                     d ¦  «         |S r’  )r
  ru  r  r³   )r:   r¦   r¥   s      r=   ru  zGreedyRepeat.get_firstset5  s8   € ØŒ_×)Ò)¨'Ñ2Ô2ˆØŒ>˜QÒÐØ�FŠF�4‰LŒLˆLàˆ	r>   c                 ó  — | j         | j        g}| j        €|                     t          ¦  «         n|                     | j        ¦  «         | j                             ||¦  «        }|sg S t          |¦  «        g|z   t          j	        fgz   S rÝ   )
r–  r  r  rZ   r  r
  r¤   r{   r«  rÍ  )r:   r¦   r_  Úrepeatr
  s        r=   ry  zGreedyRepeat._compile<  sƒ   € Ø”, ¤Ð/ˆØŒ>Ð!Ø�MŠM�)Ñ$Ô$Ð$Ð$à�MŠM˜$œ.Ñ)Ô)Ð)à”_×,Ò,¨W°eÑ<Ô<ˆ
Øð 	ØˆIå�v‘”� *Ñ,µ´°
¨|Ñ;Ð<r>   c                 óÒ   — | j         €d}n| j         }t          d                     t          |z  | j        | j        |¦  «        ¦  «         | j                             |dz   |¦  «         d S )NÚINFú
{}{} {} {}r-   )r  r™  r7   rš  r›  r  r
  rŸ  ©r:   rž  r¦   rÔ  s       r=   rŸ  zGreedyRepeat.dumpI  sq   € ØŒ>Ð!ØˆEˆEà”NˆEÝˆl×!Ò!¥&¨6¡/°4´=Ø
Œ.˜%ñ!ô !ñ 	"ô 	"ð 	"ð 	Œ×Ò˜V a™Z¨Ñ1Ô1Ð1Ð1Ð1r>   c                 ó4   — | j                              ¦   «         S rÝ   rÑ  rX  s    r=   r  zGreedyRepeat.is_emptyS  rÒ  r>   c                 ó’   — t          | ¦  «        t          |¦  «        u o)| j        | j        | j        f|j        |j        |j        fk    S rÝ   )r×  r
  r  r  r€  s     r=   r‚  zGreedyRepeat.__eq__V  sK   € Ý�D‰zŒz�T %™[œ[Ð(ð ¨d¬o¸t¼~Ø
Œ.ð.Ø#Ô.°´Ø
Œ/ðò.ð 	r>   c                 ó`   — | j         €t          S | j                             ¦   «         | j         z  S rÝ   )r  r  r
  r‡  rX  s    r=   r‡  zGreedyRepeat.max_width[  s+   € ØŒ>Ð!ÝÐàŒ×(Ò(Ñ*Ô*¨T¬^Ñ;Ð;r>   c                 óT  — | j         €t          n| j         }| j        dk    r3| j                             ¦   «         |z  }t          |t          ¦  «        d fS | j                             |¦  «        \  }}|r||fS | j                             ¦   «         |z  }t          |t          ¦  «        d fS r’  )r  r  r  r
  r‡  r  rˆ  )r:   r¦   r  rt   ÚofsÚreqs         r=   rˆ  z GreedyRepeat.get_required_stringa  s¥   € Ø!%¤Ð!7•I�I¸T¼^ˆ	ØŒ>˜QÒÐØ”×)Ò)Ñ+Ô+¨iÑ7ˆAÝ�q�)Ñ$Ô$ dÐ*Ð*à”?×6Ò6°wÑ?Ô?‰ˆˆSØð 	Ø˜�8ˆOàŒO×%Ò%Ñ'Ô'¨)Ñ3ˆÝ�1•iÑ Ô  $Ð&Ð&r>   N)r?   r@   rA   r«  rß  r–  r›  r9   r`  r·   rf  rh  rk  rn  rq  ru  ry  rŸ  r  r‚  r‡  rˆ  rC   r>   r=   r   r     s  € € € € € ØÔ€GØ€Hð#ð #ð #ð<ð <ð <ðFð Fð Fð
ð ð ðð ð ðPð Pð Pðð ð ð0ð 0ð 0ðð ð ð=ð =ð =ð2ð 2ð 2ð*ð *ð *ðð ð ð
<ð <ð <ð'ð 'ð 'ð 'ð 'r>   r   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )r  c                 ó   — dS rj  rC   rX  s    r=   rk  zPossessiveRepeat.is_atomico  rl  r>   c                 óH  — | j                              ||¦  «        }|sg S | j        | j        g}| j        €|                     t          ¦  «         n|                     | j        ¦  «         t          j        ft          |¦  «        g|z   t          j
        ft          j
        fgz   S rÝ   )r
  r¤   r–  r  r  rZ   r  r«  rÌ  r{   rÍ  )r:   r¦   r_  r
  rë  s        r=   ry  zPossessiveRepeat._compiler  s˜   € Ø”_×,Ò,¨W°eÑ<Ô<ˆ
Øð 	ØˆIà”, ¤Ð/ˆØŒ>Ð!Ø�MŠM�)Ñ$Ô$Ð$Ð$à�MŠM˜$œ.Ñ)Ô)Ð)å”)�¥ f¡¤Ð.°Ñ;ÅÄ¸zÝŒ6ˆ*ð?ñ ð 	r>   c                 ó,  — t          d                     t          |z  ¦  «        ¦  «         | j        €d}n| j        }t          d                     t          |dz   z  | j        | j        |¦  «        ¦  «         | j                             |dz   |¦  «         d S )NrÏ  rí  rî  r-   rN   )r™  r7   rš  r  r›  r  r
  rŸ  rï  s       r=   rŸ  zPossessiveRepeat.dump€  s–   € Ýˆj×Ò¥¨¡Ñ0Ô0Ñ1Ô1Ð1àŒ>Ð!ØˆEˆEà”NˆEÝˆl×!Ò!¥&¨F°Q©JÑ"7¸¼Ø
Œ.˜%ñ!ô !ñ 	"ô 	"ð 	"ð 	Œ×Ò˜V a™Z¨Ñ1Ô1Ð1Ð1Ð1r>   N)r?   r@   rA   rk  ry  rŸ  rC   r>   r=   r  r  n  sA   € € € € € ðð ð ðð ð ð
2ð 
2ð 
2ð 
2ð 
2r>   r  c                   ón   — 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d„ ZdS )r  c                 ór   — t                                | ¦  «         || _        || _        || _        d | _        d S rÝ   )rU  r9   r—   rc  r
  rU  )r:   r—   rc  r
  s       r=   r9   zGroup.__init__�  s6   € Ý×Ò˜4Ñ Ô Ð ØˆŒ	ØˆŒ
Ø$ˆŒàˆŒˆˆr>   c                 ól   — | ||f| j         j        | j        <   | j                             |||¦  «         d S rÝ   )r—   Údefined_groupsrc  r
  r`  r^  s       r=   r`  zGroup.fix_groups•  s:   € Ø04°g¸uÐ/EˆŒ	Ô  ¤Ñ,ØŒ×"Ò" 7¨G°UÑ;Ô;Ð;Ð;Ð;r>   c                 ón   — | j                              ||¦  «        }t          | j        | j        |¦  «        S rÝ   )r
  r·   r  r—   rc  rã  s       r=   r·   zGroup.optimise™  s/   € Ø”_×-Ò-¨d°GÑ<Ô<ˆ
å�T”Y ¤
¨JÑ7Ô7Ð7r>   c                 óD   — | j                              |¦  «        | _         | S rÝ   rº  re  s     r=   rf  zGroup.pack_charactersž  r»  r>   c                 ó4   — | j                              ¦   «         S rÝ   r½  rX  s    r=   rh  zGroup.remove_captures¢  ó   € ØŒ×.Ò.Ñ0Ô0Ð0r>   c                 ó4   — | j                              ¦   «         S rÝ   rÄ  rX  s    r=   rk  zGroup.is_atomic¥  rÖ  r>   c                 ó   — dS rp  rC   rX  s    r=   rn  zGroup.can_be_affix¨  rr  r>   c                 ó   — dS rj  rC   rX  s    r=   rq  zGroup.contains_group«  rl  r>   c                 ó6   — | j                              |¦  «        S rÝ   rÆ  rt  s     r=   ru  zGroup.get_firstset®  rÇ  r>   c                 ó4   — | j                              ¦   «         S rÝ   rÉ  rX  s    r=   rw  zGroup.has_simple_start±  rÊ  r>   c                 ó¬  — g }| j         x}}|dk     r!| j        j        |         }| j        j        |z
  }| j         ||f}| j        j                             |¦  «        }|�|t          j        |fgz  }|t          j        t          | ¦  «        ||fgz  }|| j
                             ||¦  «        z  }|t          j        fgz  }|�|t          j        fgz  }|S r’  )rc  r—   Úprivate_groupsr{  Ú	call_refsrá   r«  re  ÚGROUPr  r
  r¤   rÍ  )r:   r¦   r_  rº   Úpublic_groupÚprivate_groupr2  rb  s           r=   ry  zGroup._compile´  sã   € Øˆà'+¤zÐ1ˆ�}Ø˜1ÒÐØœ9Ô3°MÔBˆLØ œIÔ1°MÑAˆMàŒj˜' 5Ð(ˆØŒiÔ!×%Ò% cÑ*Ô*ˆØˆ?Ø•b”k 3Ð'Ð(Ñ(ˆDà•"”(�C G Ñ,Ô,¨m¸\ÐJÐKÑKˆØ�”×'Ò'¨°Ñ7Ô7Ñ7ˆØ•"”&��Ñˆàˆ?Ø•b”f�Z�LÑ ˆDàˆr>   c                 óÌ   — | j         }|dk     rt          |         }t          d                     t          |z  |¦  «        ¦  «         | j                             |dz   |¦  «         d S )Nr   z
{}GROUP {}r-   )rc  r  r™  r7   rš  r
  rŸ  )r:   rž  r¦   rc  s       r=   rŸ  z
Group.dumpÊ  s`   € Ø”
ˆØ�1Š9ˆ9Ý" 5Ô)ˆEÝˆl×!Ò!¥&¨6¡/°5Ñ9Ô9Ñ:Ô:Ð:ØŒ×Ò˜V a™Z¨Ñ1Ô1Ð1Ð1Ð1r>   c                 óz   — t          | ¦  «        t          |¦  «        u o| j        | j        f|j        |j        fk    S rÝ   )r×  rc  r
  r€  s     r=   r‚  zGroup.__eq__Ñ  s=   € Ý�T‘
”
�d 5™kœkÐ)ð *¨t¬z¸4¼?Ð.KØŒ;˜Ô(Ð
)ò/*ð 	+r>   c                 ó4   — | j                              ¦   «         S rÝ   rÕ  rX  s    r=   r‡  zGroup.max_widthÕ  rÖ  r>   c                 ó6   — | j                              |¦  «        S rÝ   rØ  rt  s     r=   rˆ  zGroup.get_required_stringØ  rÙ  r>   c                 ó   — d | _         d S rÝ   r\  rX  s    r=   r]  zGroup.__del__Û  r^  r>   N)r?   r@   rA   r9   r`  r·   rf  rh  rk  rn  rq  ru  rw  ry  rŸ  r‚  r‡  rˆ  r]  rC   r>   r=   r  r  Œ  s  € € € € € ðð ð ð<ð <ð <ð8ð 8ð 8ð
ð ð ð1ð 1ð 1ð+ð +ð +ðð ð ðð ð ð5ð 5ð 5ð2ð 2ð 2ðð ð ð,2ð 2ð 2ð+ð +ð +ð+ð +ð +ð<ð <ð <ðð ð ð ð r>   r  c                   ó    — e Zd Zej        ZdZdS )ÚKeepÚKEEPN)r?   r@   rA   r«  r  r–  r›  rC   r>   r=   r  r  Þ  s   € € € € € ØŒg€GØ€H€H€Hr>   r  c                   ó    — e Zd Zej        ZdZdS )r  ÚLAZY_REPEATN)r?   r@   rA   r«  r  r–  r›  rC   r>   r=   r  r  â  rª  r>   r  c                   ól   — e Zd Zdd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S )rn  ÚAHEADÚBEHINDrO  c                 ó˜   — t                                | ¦  «         t          |¦  «        | _        t          |¦  «        | _        || _        d S rÝ   )rU  r9   r¢   ro  r²   r
  )r:   ro  r²   r
  s       r=   r9   zLookAround.__init__é  s;   € Ý×Ò˜4Ñ Ô Ð Ý˜6‘l”lˆŒÝ˜X™œˆŒØ$ˆŒˆˆr>   c                 óH   — | j                              || j        |¦  «         d S rÝ   )r
  r`  ro  r^  s       r=   r`  zLookAround.fix_groupsï  s$   € ØŒ×"Ò" 7¨D¬K¸Ñ?Ô?Ð?Ð?Ð?r>   c                 ó²   — | j                              || j        ¦  «        }| j        r|                     ¦   «         r|S t          | j        | j        |¦  «        S rÝ   )r
  r·   ro  r²   r  rn  rã  s       r=   r·   zLookAround.optimiseò  sT   € Ø”_×-Ò-¨d°D´KÑ@Ô@ˆ
ØŒ=ð 	˜Z×0Ò0Ñ2Ô2ð 	ØÐå˜$œ+ t¤}°jÑAÔAÐAr>   c                 óD   — | j                              |¦  «        | _         | S rÝ   rº  re  s     r=   rf  zLookAround.pack_charactersù  r»  r>   c                 ó4   — | j                              ¦   «         S rÝ   r½  rX  s    r=   rh  zLookAround.remove_capturesý  r  r>   c                 ó4   — | j                              ¦   «         S rÝ   rÄ  rX  s    r=   rk  zLookAround.is_atomic   rÖ  r>   c                 ó4   — | j                              ¦   «         S rÝ   rÀ  rX  s    r=   rn  zLookAround.can_be_affix  rÁ  r>   c                 ó4   — | j                              ¦   «         S rÝ   rÃ  rX  s    r=   rq  zLookAround.contains_group  rÄ  r>   c                 óz   — | j         r%| j        |k    r| j                             |¦  «        S t	          d g¦  «        S rÝ   )r²   ro  r
  ru  r¯   rt  s     r=   ru  zLookAround.get_firstset	  s<   € ØŒ=ð 	9˜Tœ[¨GÒ3Ð3Ø”?×/Ò/°Ñ8Ô8Ð8å�D�6‰{Œ{Ðr>   c                 óü   — d}| j         r
|t          z  }|r
|t          z  }|r
|t          z  }t          j        |t          | j         ¦  «        fg| j         	                    | j        ¦  «        z   t          j
        fgz   S r’  )r²   r“  r”  r•  r«  Ú
LOOKAROUNDr  ro  r
  r¤   rÍ  r—  s       r=   ry  zLookAround._compile  s‡   € ØˆØŒ=ð 	!Ø•[Ñ ˆEØð 	Ø•XÑˆEØð 	 Ø•ZÑˆEå”- ­°´¨OÑ(<Ô(<Ð=Ð>Ø
Œ/×
!Ò
! $¤+Ñ
.Ô
.ñ/Ý35´6°*°ñ>ð 	?r>   c                 óä   — t          d                     t          |z  | j        | j                 t
          | j                 ¦  «        ¦  «         | j                             |dz   | j        ¦  «         d S )Nz{}LOOK{} {}r-   )	r™  r7   rš  Ú	_dir_textro  rœ  r²   r
  rŸ  r�  s      r=   rŸ  zLookAround.dump  sj   € Ýˆm×"Ò"¥6¨F¡?Ø
Œ.˜œÔ
%¥x°´Ô'>ñ@ô @ñ 	Aô 	Að 	AàŒ×Ò˜V a™Z¨¬Ñ5Ô5Ð5Ð5Ð5r>   c                 óB   — | j         o| j                             ¦   «         S rÝ   )r²   r
  r  rX  s    r=   r  zLookAround.is_empty   s   € ØŒ}Ð; ¤×!9Ò!9Ñ!;Ô!;Ð;r>   c                 ó’   — t          | ¦  «        t          |¦  «        u o)| j        | j        | j        f|j        |j        |j        fk    S rÝ   )r×  ro  r²   r
  r€  s     r=   r‚  zLookAround.__eq__#  sK   € Ý�D‰zŒz�T %™[œ[Ð(ð O¨d¬k¸4¼=Ø
Œ/ð.Ø$œ|¨U¬^¸UÔ=MÐNò.Oð 	Or>   c                 ó   — dS r’  rC   rX  s    r=   r‡  zLookAround.max_width'  r¡  r>   N)r?   r@   rA   r&  r9   r`  r·   rf  rh  rk  rn  rq  ru  ry  rŸ  r  r‚  r‡  rC   r>   r=   rn  rn  æ  sü   € € € € € Ø xÐ0Ð0€Ið%ð %ð %ð@ð @ð @ðBð Bð Bðð ð ð1ð 1ð 1ð+ð +ð +ð.ð .ð .ð0ð 0ð 0ðð ð ð
?ð 
?ð 
?ð6ð 6ð 6ð
<ð <ð <ðOð Oð Oðð ð ð ð r>   rn  c                   ól   — e Zd Zdd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S )rw  r  r  rO  c                 ó´   — t                                | ¦  «         t          |¦  «        | _        t          |¦  «        | _        || _        || _        || _        d S rÝ   )rU  r9   r¢   ro  r²   r
  r‰  rŠ  )r:   ro  r²   r
  r‰  rŠ  s         r=   r9   zLookAroundConditional.__init__-  sI   € Ý×Ò˜4Ñ Ô Ð Ý˜6‘l”lˆŒÝ˜X™œˆŒØ$ˆŒØ ˆŒØˆŒˆˆr>   c                 ó®   — | j                              |||¦  «         | j                             |||¦  «         | j                             |||¦  «         d S rÝ   )r
  r`  r‰  rŠ  r^  s       r=   r`  z LookAroundConditional.fix_groups5  sV   € ØŒ×"Ò" 7¨G°UÑ;Ô;Ð;ØŒ× Ò  ¨'°5Ñ9Ô9Ð9ØŒ×Ò ¨°%Ñ8Ô8Ð8Ð8Ð8r>   c                 óü   — | j                              || j        ¦  «        }| j                             || j        ¦  «        }| j                             || j        ¦  «        }t          | j        | j        |||¦  «        S rÝ   )r
  r·   ro  r‰  rŠ  rw  r²   )r:   r—   r¦   r
  r‰  rŠ  s         r=   r·   zLookAroundConditional.optimise:  sn   € Ø”_×-Ò-¨d°D´KÑ@Ô@ˆ
Ø”=×)Ò)¨$°´Ñ<Ô<ˆØ”,×'Ò'¨¨d¬kÑ:Ô:ˆå$ T¤[°$´-ÀØ
�Gñô ð 	r>   c                 óÀ   — | j                              |¦  «        | _         | j                             |¦  «        | _        | j                             |¦  «        | _        | S rÝ   )r
  rf  r‰  rŠ  re  s     r=   rf  z%LookAroundConditional.pack_charactersB  sL   € Øœ/×9Ò9¸$Ñ?Ô?ˆŒØœ×5Ò5°dÑ;Ô;ˆŒØ”|×3Ò3°DÑ9Ô9ˆŒØˆr>   c                 óº   — | j                              ¦   «         | _         | j                             ¦   «         | _        | j                             ¦   «         | _        d S rÝ   )r
  rh  r‰  rŠ  rX  s    r=   rh  z%LookAroundConditional.remove_capturesH  sE   € Øœ/×9Ò9Ñ;Ô;ˆŒØœ×5Ò5Ñ7Ô7ˆŒØ”|×3Ò3Ñ5Ô5ˆŒˆˆr>   c                 ó˜   — | j                              ¦   «         o1| j                             ¦   «         o| j                             ¦   «         S rÝ   )r
  rk  r‰  rŠ  rX  s    r=   rk  zLookAroundConditional.is_atomicM  sC   € Ø”×)Ò)Ñ+Ô+ð #°´×0GÒ0GÑ0IÔ0Ið #Ø
Œ,×
 Ò
 Ñ
"Ô
"ð	$r>   c                 ó˜   — | j                              ¦   «         o1| j                             ¦   «         o| j                             ¦   «         S rÝ   )r
  rn  r‰  rŠ  rX  s    r=   rn  z"LookAroundConditional.can_be_affixQ  sC   € Ø”×,Ò,Ñ.Ô.ð *°4´=×3MÒ3MÑ3OÔ3Oð *ØŒl×'Ò'Ñ)Ô)ð	+r>   c                 ó˜   — | j                              ¦   «         p1| j                             ¦   «         p| j                             ¦   «         S rÝ   )r
  rq  r‰  rŠ  rX  s    r=   rq  z$LookAroundConditional.contains_groupU  sG   € Ø”×.Ò.Ñ0Ô0ð JØ
Œ-×
&Ò
&Ñ
(Ô
(ðJØ,0¬L×,GÒ,GÑ,IÔ,Ið	Kr>   c                 óV  — t           j        t          | j        ¦  «        t          | j         ¦  «        fg}|                     | j                             | j        |¦  «        ¦  «         |                     t           j	        f¦  «         |                     | j
                             ||¦  «        ¦  «         | j                             ||¦  «        }|r5|                     t           j	        f¦  «         |                     |¦  «         |                     t           j        f¦  «         |S rÝ   )r«  ÚCONDITIONALr  r²   ro  r¹   r
  r¤   rZ   r  r‰  rŠ  rÍ  r–  s        r=   ry  zLookAroundConditional._compileY  së   € Ý”¥ T¤]Ñ!3Ô!3µS¸T¼[¸Ñ5IÔ5IÐJÐKˆØ�Š�D”O×+Ò+¨D¬K¸Ñ?Ô?Ñ@Ô@Ð@Ø�Š•R”W�KÑ Ô Ð Ø�Š�D”M×)Ò)¨'°5Ñ9Ô9Ñ:Ô:Ð:Ø”<×'Ò'¨°Ñ7Ô7ˆØð 	"Ø�KŠK�œ˜Ñ$Ô$Ð$Ø�KŠK˜Ñ!Ô!Ð!à�Š•R”V�JÑÔÐàˆr>   c                 ó:  — t          d                     t          |z  | j        | j                 t
          | j                 ¦  «        ¦  «         | j                             |dz   | j        ¦  «         t          d                     t          |z  ¦  «        ¦  «         | j	                             |dz   |¦  «         | j
                             ¦   «         sJt          d                     t          |z  ¦  «        ¦  «         | j
                             |dz   |¦  «         d S d S )Nz{}CONDITIONAL {} {}r-   z{}EITHERr  )r™  r7   rš  r&  ro  rœ  r²   r
  rŸ  r‰  rŠ  r  r�  s      r=   rŸ  zLookAroundConditional.dumpg  s  € ÝÐ#×*Ò*­6°F©?Ø
Œ.˜œÔ
%¥x°´Ô'>ñ@ô @ñ 	Aô 	Að 	AàŒ×Ò˜V a™Z¨¬Ñ5Ô5Ð5Ýˆj×Ò¥¨¡Ñ0Ô0Ñ1Ô1Ð1ØŒ×Ò˜6 A™: wÑ/Ô/Ð/ØŒ|×$Ò$Ñ&Ô&ð 	3Ý�&—-’-¥¨¡Ñ0Ô0Ñ1Ô1Ð1ØŒL×Ò˜f q™j¨'Ñ2Ô2Ð2Ð2Ð2ð	3ð 	3r>   c                 ó˜   — | j                              ¦   «         r| j                             ¦   «         p| j                             ¦   «         S rÝ   )r
  r  r‰  rŠ  rX  s    r=   r  zLookAroundConditional.is_emptyq  sA   € Ø”×(Ò(Ñ*Ô*ÐG¨t¬}×/EÒ/EÑ/GÔ/Gð "Ø
Œ,×
Ò
Ñ
!Ô
!ð	#r>   c                 ó’   — t          | ¦  «        t          |¦  «        u o)| j        | j        | j        f|j        |j        |j        fk    S rÝ   )r×  r
  r‰  rŠ  r€  s     r=   r‚  zLookAroundConditional.__eq__u  sK   € Ý�D‰zŒz�T %™[œ[Ð(ð M¨d¬o¸t¼}Ø
Œ,ð.Ø!Ô,¨e¬n¸e¼mÐLò.Mð 	Mr>   c                 ó~   — t          | j                             ¦   «         | j                             ¦   «         ¦  «        S rÝ   rœ  rX  s    r=   r‡  zLookAroundConditional.max_widthy  r�  r>   c                 ó.   — |                       ¦   «         d fS rÝ   r†  rt  s     r=   rˆ  z)LookAroundConditional.get_required_string|  r‰  r>   N)r?   r@   rA   r&  r9   r`  r·   rf  rh  rk  rn  rq  ry  rŸ  r  r‚  r‡  rˆ  rC   r>   r=   rw  rw  *  sü   € € € € € Ø xÐ0Ð0€Iðð ð ð9ð 9ð 9ð
ð ð ðð ð ð6ð 6ð 6ð
$ð $ð $ð+ð +ð +ðKð Kð Kðð ð ð3ð 3ð 3ð#ð #ð #ðMð Mð MðHð Hð Hð&ð &ð &ð &ð &r>   rw  c                   ó   — e Zd Zd„ Zd„ ZdS )rs  c                 ó   — || _         d S rÝ   )rº   )r:   rº   s     r=   r9   zPrecompiledCode.__init__€  r^  r>   c                 ó,   — t          | j        ¦  «        gS rÝ   )r{   rº   rz  s      r=   ry  zPrecompiledCode._compileƒ  s   € Ý�d”iÑ Ô Ð!Ð!r>   Nrf  rC   r>   r=   rs  rs    s2   € € € € € ðð ð ð"ð "ð "ð "ð "r>   rs  c                   óâ   — e Zd Zedfej        edfej        edfej        e	dfej        edfej
        edfej        edfej
        e	dfej        iZdedfd„Zd„ Zdd„Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ ZdS )r4  FTc                 ó  — t                                | ¦  «         || _        t          |¦  «        | _        t
          |         | _        t          |¦  «        | _        | j        | j        | j        | j        | j        f| _	        d S rÝ   )
rU  r9   r^   r¢   r²   rZ  rª   r¬   rY   rW  ri  s        r=   r9   zProperty.__init__�  sf   € å×Ò˜4Ñ Ô Ð ØˆŒ
Ý˜X™œˆŒÝ1°*Ô=ˆŒÝ˜i™œˆŒà”^ T¤Z°´Ø
Œ/˜4œ>ð+ˆŒ	ˆ	ˆ	r>   c                 ó0   — t          | j        |||¦  «        S rÝ   )r4  r^   r\  s       r=   r[  zProperty.rebuild˜  s   € Ý˜œ
 H¨j¸)ÑDÔDÐDr>   c                 ó   — | S rÝ   rC   rl  s       r=   r·   zProperty.optimise›  rc  r>   c                 ó"   — t          | g¦  «        S rÝ   r�  rt  s     r=   ru  zProperty.get_firstsetž  r�  r>   c                 ó   — dS rj  rC   rX  s    r=   rw  zProperty.has_simple_start¡  rl  r>   c                 óœ   — d}| j         r
|t          z  }| j        r
|t          z  }|r
|t          z  }| j        | j        |f         || j        fgS r’  )r²   r“  r¬   rr  r”  r–  rª   r^   r—  s       r=   ry  zProperty._compile¤  sa   € ØˆØŒ=ð 	!Ø•[Ñ ˆEØŒ>ð 	"Ø•\Ñ!ˆEØð 	Ø•XÑˆEØ”˜dœo¨wÐ6Ô7¸ÀÄ
ÐKÐLÐLr>   c           
      ó  — t           | j        dz	           }|d         |d         | j        dz           }}t          d                     t          |z  t
          | j                 ||t          | j                 ¦  «        ¦  «         d S )NrQ   r   r-   iÿÿ  z{}PROPERTY {} {}:{}{})	ÚPROPERTY_NAMESr^   r™  r7   rš  rœ  r²   rx  rª   )r:   rž  r¦   rÌ   rÅ   r^   s         r=   rŸ  zProperty.dump®  sƒ   € Ý˜dœj¨BÑ.Ô/ˆØ˜1”g˜t Aœw t¤z°FÑ':Ô;ˆeˆÝÐ%×,Ò,­V°f©_Ý
�4”=Ô
! 4¨µ	¸$¼/Ô0JñLô Lñ 	Mô 	Mð 	Mð 	Mð 	Mr>   c                 óH   — t          j        | j        |¦  «        | j        k    S rÝ   )r•   Úhas_property_valuer^   r²   r|  s     r=   r}  zProperty.matches´  s   € ÝÔ(¨¬°RÑ8Ô8¸D¼MÒIÐIr>   c                 ó   — dS rª  rC   rX  s    r=   r‡  zProperty.max_width·  r¡  r>   Nr‚  )r?   r@   rA   r°   r«  ÚPROPERTYr   ÚPROPERTY_IGNr   r8  ÚPROPERTY_REVÚPROPERTY_IGN_REVr–  r9   r[  r·   ru  rw  ry  rŸ  r}  r‡  rC   r>   r=   r4  r4  †  s"  € € € € € Ø˜ˆ ¤¨j¸%Ð-@Ø„o˜ %Ð(¨"¬+¸ÈÐ7NØ„o˜ �~ r¤¸ÀTÐ8JØÔ˜H dÐ+¨R¬_¸~Ø
ð?ØÔ ð	"€Gð (,¸Øð	+ð 	+ð 	+ð 	+ðEð Eð Eðð ð ð ðð ð ðð ð ðMð Mð MðMð Mð MðJð Jð Jðð ð ð ð r>   r4  c                   ó   — e Zd ZdZd„ ZdS )ÚPruneÚPRUNEc                 ó   — t           j        fgS rÝ   )r«  rO  rz  s      r=   ry  zPrune._compile½  s   € Ý”�ˆ~Ðr>   Nr¼  rC   r>   r=   rN  rN  º  s(   € € € € € Ø€Hðð ð ð ð r>   rN  c                   óÚ   — e Zd Zedfej        edfej        edfej        e	dfej        edfej
        edfej        edfej
        e	dfej        iZdZdedfd„Zd„ Zdd„Zd„ Zd„ Zd	„ Zd
„ ZdS )r  FTÚRANGEc                 ó   — t                                | ¦  «         || _        || _        t	          |¦  «        | _        t          |         | _        t	          |¦  «        | _        | j	        | j        | j        | j        | j        | j        f| _
        d S rÝ   )rU  r9   Úlowerr&  r¢   r²   rZ  rª   r¬   rY   rW  )r:   rT  r&  r²   rª   r¬   s         r=   r9   zRange.__init__Ç  sq   € å×Ò˜4Ñ Ô Ð ØˆŒ
ØˆŒ
Ý˜X™œˆŒÝ1°*Ô=ˆŒÝ˜i™œˆŒà”^ T¤Z°´¸T¼]Ø
Œ/˜4œ>ð+ˆŒ	ˆ	ˆ	r>   c                 ó<   — t          | j        | j        |||¦  «        S rÝ   )r  rT  r&  r\  s       r=   r[  zRange.rebuildÓ  s   € Ý�T”Z ¤¨X°zÀ9ÑMÔMÐMr>   c                 ó<  — | j         r| j        t          z  r|r| S |j        t          z  r| j        t
          z  t
          k    r| S t          j        ¦   «         }g }|D ]v}| j        t          |¦  «        cxk    r| j
        k    rPn Œ)t          j        t          |¦  «        }|                     t          d„ |D ¦   «         | j        ¬¦  «        ¦  «         Œw|s| S t          |¦  «        | j
        | j        z
  dz   k     r|                     d| ¦  «         t#          |¦  «        S )Nc                 ó,   — g | ]}t          |¦  «        ‘ŒS rC   rq  r¸  s     r=   rà   z"Range.optimise.<locals>.<listcomp>è  s   € Ð$<Ð$<Ð$<°¥S¨¡V¤VÐ$<Ð$<Ð$<r>   r©   r-   r   )r²   rª   r   r�   r   r8  r•   r>  rT  rô   r&  r–   r=  rZ   rÁ  r]   ræ  rÑ   )r:   r—   r¦   r®   r@  r÷  rø   r?  s           r=   r·   zRange.optimiseÖ  sC  € àŒ}ð 	 T¤_µzÑ%Að 	Àfð 	ØˆKð ”�gÑ%ð 	¨4¬?½^Ñ+KÝ
ò+ð +àˆKõ !Ô6Ñ8Ô8ˆð ˆØ!ð 	/ð 	/ˆBØŒz�S ™WœWÐ2Ð2Ò2Ð2¨¬
Ò2Ð2Ð2Ð2Ð2ÝÔ)Õ*;¸RÑ@Ô@�Ø—’�VÐ$<Ð$<°VÐ$<Ñ$<Ô$<Ø!œ_ð.ñ .ô .ñ /ô /ð /øð ð 	àˆKåˆu‰:Œ:˜œ
 T¤ZÑ/°!Ñ3Ò3Ð3à�LŠL˜˜DÑ!Ô!Ð!å�e‰}Œ}Ðr>   c                 ó¨   — d}| j         r
|t          z  }| j        r
|t          z  }|r
|t          z  }| j        | j        |f         || j        | j        fgS r’  )	r²   r“  r¬   rr  r”  r–  rª   rT  r&  r—  s       r=   ry  zRange._compileõ  sl   € ØˆØŒ=ð 	!Ø•[Ñ ˆEØŒ>ð 	"Ø•\Ñ!ˆEØð 	Ø•XÑˆEØ”˜dœo¨wÐ6Ô7¸ÀÄ
Ø
Œ*ðð ð 	r>   c           
      ór  — t          t          | j        ¦  «        ¦  «                             d¦  «        }t          t          | j        ¦  «        ¦  «                             d¦  «        }t          d                     t          |z  t          | j	                 ||t          | j                 ¦  «        ¦  «         d S )Nru  z{}RANGE {} {} {}{})rv  r;  rT  rw  r&  r™  r7   rš  rœ  r²   rx  rª   )r:   rž  r¦   Údisplay_lowerÚdisplay_uppers        r=   rŸ  z
Range.dump   s•   € Ý�c $¤*™oœoÑ.Ô.×5Ò5°dÑ;Ô;ˆÝ�c $¤*™oœoÑ.Ô.×5Ò5°dÑ;Ô;ˆÝÐ"×)Ò)­&°6©/Ý
�4”=Ô
! =°-Ý
�D”OÔ
$ñ&ô &ñ 	'ô 	'ð 	'ð 	'ð 	'r>   c                 óH   — | j         |cxk    o
| j        k    nc | j        k    S rÝ   )rT  r&  r²   r|  s     r=   r}  zRange.matches  s/   € Ø”
˜bÐ.Ð.Ò.Ð. D¤JÒ.Ð.Ð.Ð.°4´=Ò@Ð@r>   c                 ó   — dS rª  rC   rX  s    r=   r‡  zRange.max_width
  r¡  r>   Nr‚  )r?   r@   rA   r°   r«  rR  r   Ú	RANGE_IGNr   r8  Ú	RANGE_REVÚRANGE_IGN_REVr–  r›  r9   r[  r·   ry  rŸ  r}  r‡  rC   r>   r=   r  r  À  s   € € € € € Ø˜ˆ ¤¨:°uÐ*=¸r¼|Ø�Ð˜œ N°EÐ#:¸B¼LØˆt€n�b”l Z°Ð$6¸Ô8HØ�Ð˜œ ~°tÐ&<¸bÔ>NðP€Gð €Hà.2¸vØð
+ð 
+ð 
+ð 
+ðNð Nð Nðð ð ð ð>	ð 	ð 	ð'ð 'ð 'ðAð Að Aðð ð ð ð r>   r  c                   óÐ   — e Zd Zedfej        edfej        edfej        e	dfej
        edfej        edfej        edfej        e	dfej        iZefd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
S )rÄ   FTc                 óº   — t                                | ¦  «         || _        || _        || _        t
          |         | _        | j        | j        | j        f| _        d S rÝ   )	rU  r9   r—   rc  rÆ   rZ  rª   rY   rW  )r:   r—   rc  rÆ   rª   s        r=   r9   zRefGroup.__init__  sO   € Ý×Ò˜4Ñ Ô Ð ØˆŒ	ØˆŒ
Ø ˆŒÝ1°*Ô=ˆŒà”N D¤J°´Ð?ˆŒ	ˆ	ˆ	r>   c                 óz  — 	 t          | j        ¦  «        | _        nR# t          $ rE 	 | j        j        | j                 | _        n$# t
          $ r t          d|| j        ¦  «        ‚w xY wY nw xY wd| j        cxk    r| j        j        k    sn t          d|| j        ¦  «        ‚| j	        | j        | j
        f| _        d S )NrI  r-   rH  )r  rc  r2  r—   rK  r   r&   rÆ   r{  rY   rª   rW  r^  s       r=   r`  zRefGroup.fix_groups  sâ   € ð	EÝ˜TœZ™œˆDŒJˆJøÝð 	Eð 	Eð 	EðEØ!œYÔ2°4´:Ô>�”
�
øÝð Eð Eð EÝ˜O¨W°d´mÑDÔDÐDðEøøøð �
ð	Eøøøð �D”JÐ7Ð7Ò7Ð7 $¤)Ô"7Ò7Ð7Ð7Ð7ÝÐ1°7¸D¼MÑJÔJÐJà”N D¤J°´Ð?ˆŒ	ˆ	ˆ	rN  c                 ó8   — t          dt          | j        ¦  «        ‚rP  rQ  rX  s    r=   rh  zRefGroup.remove_captures+  rR  r>   c                 óX   — d}|r
|t           z  }| j        | j        |f         || j        fgS r’  )r”  r–  rª   rc  r—  s       r=   ry  zRefGroup._compile.  s9   € ØˆØð 	Ø•XÑˆEØ”˜dœo¨wÐ6Ô7¸ÀÄ
ÐKÐLÐLr>   c                 óˆ   — t          d                     t          |z  | j        t          | j                 ¦  «        ¦  «         d S )Nz{}REF_GROUP {}{})r™  r7   rš  rc  rx  rª   r�  s      r=   rŸ  zRefGroup.dump4  sE   € ÝÐ ×'Ò'­°©¸¼Ý
�D”OÔ
$ñ&ô &ñ 	'ô 	'ð 	'ð 	'ð 	'r>   c                 ó   — t           S rÝ   r  rX  s    r=   r‡  zRefGroup.max_width8  rZ  r>   c                 ó   — d | _         d S rÝ   r\  rX  s    r=   r]  zRefGroup.__del__;  r^  r>   N)r?   r@   rA   r°   r«  Ú	REF_GROUPr   ÚREF_GROUP_IGNr   r8  ÚREF_GROUP_FLDÚREF_GROUP_REVÚREF_GROUP_IGN_REVÚREF_GROUP_FLD_REVr–  r9   r`  rh  ry  rŸ  r‡  r]  rC   r>   r=   rÄ   rÄ     s  € € € € € Ø˜ˆ ¤¨z¸5Ð.AØÔ˜ 5Ð)¨2¬<¸.Øð:ØÔ ¨ °Ô0@À:Ø
ðCØÔ! H¨dÐ#3°RÔ5EØ�tÐ˜bÔ2ð	4€Gð :@ð @ð @ð @ð @ð@ð @ð @ðKð Kð KðMð Mð Mð'ð 'ð 'ðð ð ðð ð ð ð r>   rÄ   c                   ó    — e Zd Zej        ZdZdS )r½  ÚSEARCH_ANCHORN)r?   r@   rA   r«  rp  r–  r›  rC   r>   r=   r½  r½  >  r­  r>   r½  c                   ó²   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ ZdS )rõ   Nc                 óP   — t                                | ¦  «         |€g }|| _        d S rÝ   )rU  r9   r÷  )r:   r÷  s     r=   r9   zSequence.__init__C  s+   € Ý×Ò˜4Ñ Ô Ð Øˆ=ØˆEàˆŒ
ˆ
ˆ
r>   c                 óH   — | j         D ]}|                     |||¦  «         Œd S rÝ   )r÷  r`  )r:   r1   r¦   r_  rr   s        r=   r`  zSequence.fix_groupsJ  s6   € Ø”ð 	2ð 	2ˆAØ�LŠL˜ '¨5Ñ1Ô1Ð1Ð1ð	2ð 	2r>   c                 óî   — g }| j         D ]]}|                     ||¦  «        }t          |t          ¦  «        r|                     |j         ¦  «         ŒH|                     |¦  «         Œ^t          |¦  «        S rÝ   )r÷  r·   r.   rõ   r¹   rZ   rS  )r:   r—   r¦   r÷  rr   s        r=   r·   zSequence.optimiseN  ss   € àˆØ”ð 	 ð 	 ˆAØ—
’
˜4 Ñ)Ô)ˆAÝ˜!�XÑ&Ô&ð  Ø—’˜QœWÑ%Ô%Ð%Ð%à—’˜Q‘”��å˜UÑ#Ô#Ð#r>   c                 óZ  ‡— g }g }t           }| j        D �]k}t          |¦  «        t          u rt|j        rm|j        sf|j        |k    r@|j        st          ‰|j        ¦  «        r$t           
                    ‰|||¦  «         |j        }|                     |j        ¦  «         Œ�t          |¦  «        t          u st          |¦  «        t          u rm|j        |k    rF|j        st          ˆfd„|D ¦   «         ¦  «        r$t           
                    ‰|||¦  «         |j        }|                     |j        ¦  «         �Œ&t           
                    ‰|||¦  «         |                     |                     ‰¦  «        ¦  «         �Œmt           
                    ‰|||¦  «         t%          |¦  «        S )z+Packs sequences of characters into strings.c              3   ó8   •K  — | ]}t          ‰|¦  «        V — Œd S rÝ   ©rž   ©rÞ   r¼   r—   s     €r=   r�  z+Sequence.pack_characters.<locals>.<genexpr>o  s=   øè è € ð +"ð +"À1­:°d¸AÑ+>Ô+>ð +"ð +"ð +"ð +"ð +"ð +"r>   )r°   r÷  r×  r±   r²   r¬   rª   rž   r^   rõ   Ú_flush_charactersrZ   rÁ  rì  r  r¹   rí  rf  rS  )r:   r—   r÷  rí  rª   rr   s    `    r=   rf  zSequence.pack_charactersZ  sÊ  ø€ àˆØˆ
Ýˆ
Ø”ð 	6ñ 	6ˆAÝ�A‰wŒw�)Ð#Ð#¨¬
Ð#¸1¼;Ð#Ø”< :Ò-Ð-ð ”|ð 2¥z°$¸¼Ñ'@Ô'@ð 2Ý ×2Ò2°4¸Ø$ eñ-ô -ð -ð &'¤\˜
à×!Ò! !¤'Ñ*Ô*Ð*Ð*Ý�a‘”�FÐ"Ð"¥d¨1¡g¤gµÐ&8Ð&8Ø”< :Ò-Ð-ð ”|ð 2¥sð +"ð +"ð +"ð +"Ø ð+"ñ +"ô +"ñ ("ô ("ð 2å ×2Ò2°4¸Ø$ eñ-ô -ð -ð &'¤\˜
à×!Ò! !¤,Ñ/Ô/Ð/Ñ/å×*Ò*¨4°¸ZÈÑOÔOÐOà—’˜Q×.Ò.¨tÑ4Ô4Ñ5Ô5Ð5Ñ5å×"Ò" 4¨°ZÀÑGÔGÐGå˜UÑ#Ô#Ð#r>   c                 ó2   — d„ | j         D ¦   «         | _         | S )Nc                 ó6   — g | ]}|                      ¦   «         ‘ŒS rC   rô  ©rÞ   rr   s     r=   rà   z,Sequence.remove_captures.<locals>.<listcomp>�  s$   € Ð>Ð>Ð>¨a�a×'Ò'Ñ)Ô)Ð>Ð>Ð>r>   rR  rX  s    r=   rh  zSequence.remove_captures€  s   € Ø>Ð>°4´:Ð>Ñ>Ô>ˆŒ
Øˆr>   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó>   K  — | ]}|                      ¦   «         V — Œd S rÝ   rø  r|  s     r=   r�  z%Sequence.is_atomic.<locals>.<genexpr>…  ó*   è è € Ð5Ð5 Q�1—;’;‘=”=Ð5Ð5Ð5Ð5Ð5Ð5r>   ©r   r÷  rX  s    r=   rk  zSequence.is_atomic„  ó!   € ÝÐ5Ð5¨$¬*Ð5Ñ5Ô5Ñ5Ô5Ð5r>   c                 ó   — dS rp  rC   rX  s    r=   rn  zSequence.can_be_affix‡  rr  r>   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó>   K  — | ]}|                      ¦   «         V — Œd S rÝ   r   r|  s     r=   r�  z*Sequence.contains_group.<locals>.<genexpr>‹  s.   è è € Ð:Ð:¨!�1×#Ò#Ñ%Ô%Ð:Ð:Ð:Ð:Ð:Ð:r>   )r  r÷  rX  s    r=   rq  zSequence.contains_groupŠ  s!   € ÝÐ:Ð:¨t¬zÐ:Ñ:Ô:Ñ:Ô:Ð:r>   c                 óò   — t          ¦   «         }| j        }|r|                     ¦   «          |D ]7}||                     |¦  «        z  }d |vr|c S |                     d ¦  «         Œ8|t          d g¦  «        z  S rÝ   )r¯   r÷  r¦   ru  Údiscard)r:   r¦   r¥   r÷  rr   s        r=   ru  zSequence.get_firstset�  s†   € Ý‰UŒUˆØ”
ˆØð 	Ø�MŠM‰OŒOˆOØð 	ð 	ˆAØ�!—.’. Ñ)Ô)Ñ)ˆBØ˜2ˆ~ˆ~Ø�	�	�	Ø�JŠJ�tÑÔÐÐà•C˜˜‘K”KÑÐr>   c                 óh   — t          | j        ¦  «        o| j        d                              ¦   «         S r’  )r¢   r÷  rw  rX  s    r=   rw  zSequence.has_simple_startš  s)   € Ý�D”JÑÔÐD D¤J¨q¤M×$BÒ$BÑ$DÔ$DÐDr>   c                 óŽ   — | j         }|r|d d d…         }g }|D ]+}|                     |                     ||¦  «        ¦  «         Œ,|S r  )r÷  r¹   r¤   )r:   r¦   r_  Úseqrº   rr   s         r=   ry  zSequence._compile�  s\   € ØŒjˆØð 	Ø�d�d˜�d”)ˆCàˆØð 	3ð 	3ˆAØ�KŠK˜Ÿ	š	 '¨5Ñ1Ô1Ñ2Ô2Ð2Ð2àˆr>   c                 óF   — | j         D ]}|                     ||¦  «         Œd S rÝ   )r÷  rŸ  )r:   rž  r¦   rr   s       r=   rŸ  zSequence.dump¨  s4   € Ø”ð 	$ð 	$ˆAØ�FŠF�6˜7Ñ#Ô#Ð#Ð#ð	$ð 	$r>   c                 ó†  ‡ — |sd S |t           z  r"t          ˆ fd„|D ¦   «         ¦  «        st          }|t          z  t          k    r“t                               |¦  «        }|D ]u}|j        }t          |¦  «        dk    r0|                     t          |d         |j
        ¬¦  «        ¦  «         ŒL|                     t          ||j
        ¬¦  «        ¦  «         Œvnbt          |¦  «        dk    r+|                     t          |d         |¬¦  «        ¦  «         n$|                     t          ||¬¦  «        ¦  «         g |d d …<   d S )Nc              3   ó8   •K  — | ]}t          ‰|¦  «        V — Œd S rÝ   rw  rx  s     €r=   r�  z-Sequence._flush_characters.<locals>.<genexpr>³  s-   øè è € Ð?Ð?¨q•z $¨Ñ*Ô*Ð?Ð?Ð?Ð?Ð?Ð?r>   r-   r   r©   )r   r  r°   r8  rõ   Ú_fix_full_casefoldrí  r]   rZ   r±   rª   rÁ  )r—   rí  rª   r÷  Úliteralsrß   Úcharss   `      r=   ry  zSequence._flush_characters¬  sN  ø€ àð 	ØˆFð �
Ñ"ð 	$ÝÐ?Ð?Ð?Ð?°JÐ?Ñ?Ô?Ñ?Ô?ð $Ý#�
à�Ñ'­NÒ:Ð:Ý×2Ò2°:Ñ>Ô>ˆHà ð Lð L�Øœ�å�u‘:”: ’?�?Ø—L’L¥¨5°¬8ÀÄÐ!PÑ!PÔ!PÑQÔQÐQÐQà—L’L¥¨¸$¼/Ð!JÑ!JÔ!JÑKÔKÐKÐKðLõ �:‰Œ !Ò#Ð#Ø—’�Y z°!¤}ÀÐLÑLÔLÑMÔMÐMÐMà—’�V J¸:ÐFÑFÔFÑGÔGÐGàˆ
�1�1�1‰ˆˆr>   c                 ó2  — d„ t          j        ¦   «         D ¦   «         }t          j        t          d                     d„ | D ¦   «         ¦  «        ¦  «                             ¦   «         }g }|D ]Y} |j        |¦  «        }|dk    rA|                     ||t          |¦  «        z   f¦  «          |j        ||dz   ¦  «        }|dk    °AŒZd}g }t           
                    |¦  «        D ]o\  }}	||k     r1|                     t          | ||…         t          ¬¦  «        ¦  «         |                     t          | ||	…         t          ¬¦  «        ¦  «         |	}Œp|t          | ¦  «        k     r1|                     t          | |d …         t          ¬¦  «        ¦  «         |S )Nc                 óB   — g | ]}t          j        t          |¦  «        ‘ŒS rC   )r•   r–   r=  r¸  s     r=   rà   z/Sequence._fix_full_casefold.<locals>.<listcomp>Ì  s2   € ð *ð *ð *¸q•FÔ$Õ%6¸Ñ:Ô:ð *ð *ð *r>   rf   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S rÝ   ©r;  r¸  s     r=   r�  z.Sequence._fix_full_casefold.<locals>.<genexpr>Î  s=   è è € ð =ð =Øõ >AÀ¹V¼Vð =ð =ð =ð =ð =ð =r>   r   r-   r©   )r•   r>  r–   r=  r\   rT  ÚfindrZ   r]   rõ   Ú_merge_chunksrì  r   r8  )
rí  Úexpandedr˜   Úchunksrm   Úfoundr2   rŽ  r	  r  s
             r=   r�  zSequence._fix_full_casefoldÈ  sÍ  € ð*ð *Ý
Ô
&Ñ
(Ô
(ð*ñ *ô *ˆåÔ!Õ"3°R·W²Wð =ð =Øð=ñ =ô =ñ 6ô 6ñ  ô  ß %¢¡¤ð 	àˆàð 	2ð 	2ˆAØ�F”K ‘N”NˆEà˜1’*�*Ø—’˜u e­c°!©f¬f¡nÐ5Ñ6Ô6Ð6Ø#˜œ A u¨q¡yÑ1Ô1�ð ˜1’*�*øð ˆØˆå"×0Ò0°Ñ8Ô8ð 	ð 	‰JˆE�3Ø�UŠ{ˆ{Ø—’¥¨
°3¸°;Ô(?Ý'ð!)ñ !)ô !)ñ *ô *ð *ð �OŠO�G J¨u°s¨{Ô$;Ý'ð)ñ )ô )ñ *ô *ð *àˆCˆCà•�Z‘”Ò Ð Ø�OŠO�G J¨s¨u¨uÔ$6Å:ÐNÑNÔNÑOÔOÐOàˆr>   c                 ó$  — t          | ¦  «        dk     r| S |                      ¦   «          | d         \  }}g }| dd …         D ]7\  }}||k    rt          ||¦  «        }Œ|                     ||f¦  «         ||}}Œ8|                     ||f¦  «         |S )NrN   r   r-   )r]   Úsortr<  rZ   )r—  r	  r  Ú
new_chunksrr   rm   s         r=   r•  zSequence._merge_chunksê  s©   € åˆv‰;Œ;˜Š?ˆ?ØˆMà�Š‰Œˆà˜A”Y‰
ˆˆsØˆ
à˜1˜3˜3”Lð 	"ð 	"‰DˆAˆqØ�CŠxˆxÝ˜#˜q‘k”k��à×!Ò! 5¨# ,Ñ/Ô/Ð/Ø �s��à×Ò˜5 #˜,Ñ'Ô'Ð'àÐr>   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó>   K  — | ]}|                      ¦   «         V — Œd S rÝ   rC  r<  s     r=   r�  z$Sequence.is_empty.<locals>.<genexpr>   s*   è è € Ð4Ð4 A�1—:’:‘<”<Ð4Ð4Ð4Ð4Ð4Ð4r>   r€  rX  s    r=   r  zSequence.is_emptyÿ  s!   € ÝÐ4Ð4¨¬Ð4Ñ4Ô4Ñ4Ô4Ð4r>   c                 ó^   — t          | ¦  «        t          |¦  «        u o| j        |j        k    S rÝ   )r×  r÷  r€  s     r=   r‚  zSequence.__eq__  rX  r>   c                 ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3   ó>   K  — | ]}|                      ¦   «         V — Œd S rÝ   r†  r|  s     r=   r�  z%Sequence.max_width.<locals>.<genexpr>  r  r>   )Úsumr÷  rX  s    r=   r‡  zSequence.max_width  r�  r>   c                 óŠ   — | j         }|r|d d d…         }d}|D ]'}|                     |¦  «        \  }}||z  }|r||fc S Œ(|d fS )Nrê  r   )r÷  rˆ  )r:   r¦   r‰  Úoffsetrr   rô  rõ  s          r=   rˆ  zSequence.get_required_string  s}   € ØŒjˆØð 	Ø�d�d˜�d”)ˆCàˆàð 	#ð 	#ˆAØ×,Ò,¨WÑ5Ô5‰HˆC�Ø�c‰MˆFØð #Ø˜s�{Ð"Ð"Ð"ð#ð �tˆ|Ðr>   rÝ   )r?   r@   rA   r9   r`  r·   rf  rh  rk  rn  rq  ru  rw  ry  rŸ  rG  ry  r�  r•  r  r‚  r‡  rˆ  rC   r>   r=   rõ   rõ   B  sb  € € € € € ðð ð ð ð2ð 2ð 2ð
$ð 
$ð 
$ð$$ð $$ð $$ðLð ð ð6ð 6ð 6ðð ð ð;ð ;ð ;ð ð  ð  ðEð Eð Eð	ð 	ð 	ð$ð $ð $ð ðð ñ „\ðð6 ðð ñ „\ððB ðð ñ „\ðð(5ð 5ð 5ðGð Gð Gð6ð 6ð 6ðð ð ð ð r>   rõ   c                   óL   — e Zd Zdedfd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ ZdS )r+  TFc                 ó<  — t                                | ¦  «         || _        t          |¦  «        | _        t          |¦  «        | _        t          |         | _        t          |¦  «        | _	        d| _
        | j        | j        | j        | j        | j	        f| _        d S rª  )rU  r9   r—   r{   r÷  r¢   r²   rZ  rª   r¬   Ú
char_widthrY   rW  )r:   r—   r÷  r²   rª   r¬   s         r=   r9   zSetBase.__init__  sz   € å×Ò˜4Ñ Ô Ð ØˆŒ	Ý˜5‘\”\ˆŒ
Ý˜X™œˆŒÝ1°*Ô=ˆŒÝ˜i™œˆŒàˆŒà”^ T¤Z°´Ø
Œ/˜4œ>ð+ˆŒ	ˆ	ˆ	r>   c                 ó€   —  t          | ¦  «        | j        | j        |||¦  «                             | j        d¦  «        S rp  )r×  r—   r÷  r·   r\  s       r=   r[  zSetBase.rebuild&  s<   € Ø�t�D‰zŒz˜$œ) T¤Z°¸:Ø
ñô ß’X˜dœi¨Ñ/Ô/ð	0r>   c                 ó"   — t          | g¦  «        S rÝ   r�  rt  s     r=   ru  zSetBase.get_firstset*  r�  r>   c                 ó   — dS rj  rC   rX  s    r=   rw  zSetBase.has_simple_start-  rl  r>   c                 ó6  — d}| j         r
|t          z  }| j        r
|t          z  }|r
|t          z  }| j        | j        |f         |fg}| j        D ])}|                     | 	                    ¦   «         ¦  «         Œ*| 
                    t          j        f¦  «         |S r’  )r²   r“  r¬   rr  r”  r–  rª   r÷  r¹   r¤   rZ   r«  rÍ  )r:   r¦   r_  r�   rº   ra   s         r=   ry  zSetBase._compile0  s¥   € ØˆØŒ=ð 	!Ø•[Ñ ˆEØŒ>ð 	"Ø•\Ñ!ˆEØð 	Ø•XÑˆEØ”˜dœo¨wÐ6Ô7¸Ð?Ð@ˆØ”ð 	%ð 	%ˆAØ�KŠK˜Ÿ	š	™œÑ$Ô$Ð$Ð$à�Š•R”V�JÑÔÐàˆr>   c           	      óð   — t          d                     t          |z  | j        t          | j                 t          | j                 ¦  «        ¦  «         | j        D ]}| 	                    |dz   |¦  «         Œd S )Nz	{}{} {}{}r-   )
r™  r7   rš  r›  rœ  r²   rx  rª   r÷  rŸ  )r:   rž  r¦   ro   s       r=   rŸ  zSetBase.dump@  s|   € Ýˆk× Ò ¥¨&¡°$´-Ý
�4”=Ô
!¥9¨T¬_Ô#=ñ?ô ?ñ 	@ô 	@ð 	@à”ð 	(ð 	(ˆAØ�FŠF�6˜A‘:˜wÑ'Ô'Ð'Ð'ð	(ð 	(r>   c                 ó   — | j         r| j        t          z  r|r| S | j        j        t
          z  r| j        t          z  t          k    r| S t          j        ¦   «         }g }t          ¦   «         }|D ]Š}|  
                    t          |¦  «        ¦  «        rft          j        t          |¦  «        }||vrH|                     t          d„ |D ¦   «         | j        ¬¦  «        ¦  «         |                     |¦  «         Œ‹|s| S t#          | g|z   ¦  «        S )Nc                 ó,   — g | ]}t          |¦  «        ‘ŒS rC   rq  r¸  s     r=   rà   z0SetBase._handle_case_folding.<locals>.<listcomp>Z  s   € Ð(@Ð(@Ð(@°A­¨Q©¬Ð(@Ð(@Ð(@r>   r©   )r²   rª   r   r—   r�   r   r8  r•   r>  r¯   r}  rô   r–   r=  rZ   rÁ  r³   rÑ   )r:   r—   r®   r@  r÷  Úseenrø   r?  s           r=   Ú_handle_case_foldingzSetBase._handle_case_foldingF  s/  € àŒ}ð 	 T¤_µzÑ%Að 	Àfð 	ØˆKð ””¥7Ñ*ð 	°´Ý
ñ1Ý+ò0,ð 0,àˆKõ !Ô6Ñ8Ô8ˆð ˆÝ‰uŒuˆØ!ð 	%ð 	%ˆBØ�|Š|�C ™GœGÑ$Ô$ð %ÝÔ)Õ*;¸RÑ@Ô@�Ø Ð%Ð%Ø—L’L¥Ð(@Ð(@¸Ð(@Ñ(@Ô(@Ø!%¤ð"2ñ "2ô "2ñ 3ô 3ð 3à—H’H˜VÑ$Ô$Ð$øàð 	àˆKå�t�f˜u‘nÑ%Ô%Ð%r>   c                 ó¶  — | j         r| j        t          z  sdS | j        j        t
          z  r| j        t          z  t          k    rdS t          j        ¦   «         }t          ¦   «         }|D ]S}|  
                    t          |¦  «        ¦  «        r/t          j        t          |¦  «        }|                     |¦  «         ŒT|sdS t          d„ |D ¦   «         ¦  «        S )Nr-   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S rÝ   r  )rÞ   r?  s     r=   r�  z$SetBase.max_width.<locals>.<genexpr>{  s(   è è € Ð2Ð2 6•3�v‘;”;Ð2Ð2Ð2Ð2Ð2Ð2r>   )r²   rª   r   r—   r�   r   r8  r•   r>  r¯   r}  rô   r–   r=  r³   r<  )r:   r@  r®  rø   r?  s        r=   r‡  zSetBase.max_widthd  sä   € àŒ}ð 	 T¤_µzÑ%Að 	Ø�1ð ””¥7Ñ*ð 	°´Ý
ñ1Ý+ò0,ð 0,à�1õ !Ô6Ñ8Ô8ˆõ ‰uŒuˆØ!ð 	!ð 	!ˆBØ�|Š|�C ™GœGÑ$Ô$ð !ÝÔ)Õ*;¸RÑ@Ô@�Ø—’˜Ñ Ô Ð øàð 	Ø�1åÐ2Ð2¨TÐ2Ñ2Ô2Ñ2Ô2Ð2r>   c                 ó   — d | _         d S rÝ   r\  rX  s    r=   r]  zSetBase.__del__}  r^  r>   N)r?   r@   rA   r°   r9   r[  ru  rw  ry  rŸ  r¯  r‡  r]  rC   r>   r=   r+  r+    s¨   € € € € € Ø-1¸fØð+ð +ð +ð +ð0ð 0ð 0ðð ð ðð ð ðð ð ð (ð (ð (ð&ð &ð &ð<3ð 3ð 3ð2ð ð ð ð r>   r+  c                   ó´   — e Zd Zedfej        edfej        edfej        e	dfej        edfej
        edfej        edfej
        e	dfej        iZdZdd„Zd„ ZdS )rÿ  FTÚSET_DIFFc                 ó†  ‡‡— | j         }t          |¦  «        dk    r |d         t          ‰|dd …         ¦  «        g}t          |¦  «        dk    r<|d                              | j        | j        ¬¦  «                             ‰‰|¦  «        S t          ˆˆfd„|D ¦   «         ¦  «        | _         |                      ‰|¦  «        S )NrN   r   r-   r«   c              3   óH   •K  — | ]}|                      ‰‰d ¬¦  «        V — ŒdS )Tr­   N)r·   )rÞ   ra   r—   r¦   s     €€r=   r�  z#SetDiff.optimise.<locals>.<genexpr>‘  sE   øè è € ð ð Àa˜1Ÿ:š: d¨G¸D˜:ÑAÔAð ð ð ð ð ð r>   )	r÷  r]   rµ   r´   rª   r¬   r·   r{   r¯  )r:   r—   r¦   r®   r÷  s    ``  r=   r·   zSetDiff.optimiseˆ  sÛ   øø€ Ø”
ˆÝˆu‰:Œ:˜Š>ˆ>Ø˜1”X�x¨¨e°A°C°C¬kÑ:Ô:Ð;ˆEåˆu‰:Œ:˜Š?ˆ?Ø˜”8×&Ò&°$´/Øœð 'ñ (ô (ß(0ª°°wÀÑ(GÔ(GðHõ ð ð ð ð ð Ø
ðñ ô ñ ô ˆŒ
ð ×(Ò(¨¨vÑ6Ô6Ð6r>   c                 óš   — | j         d                              |¦  «        o | j         d                              |¦  «         }|| j        k    S ©Nr   r-   ©r÷  r}  r²   ©r:   rø   ra   s      r=   r}  zSetDiff.matches–  sD   € ØŒJ�qŒM×!Ò! "Ñ%Ô%ÐG¨d¬j¸¬m×.CÒ.CÀBÑ.GÔ.GÐ*GˆØ�D”MÒ!Ð!r>   Nr‚  )r?   r@   rA   r°   r«  r´  r   ÚSET_DIFF_IGNr   r8  ÚSET_DIFF_REVÚSET_DIFF_IGN_REVr–  r›  r·   r}  rC   r>   r=   rÿ  rÿ  €  s¥   € € € € € Ø˜ˆ ¤¨j¸%Ð-@Ø„o˜ %Ð(¨"¬+¸ÈÐ7NØ„o˜ �~ r¤¸ÀTÐ8JØÔ˜H dÐ+¨R¬_¸~Ø
ð?ØÔ ð	"€Gð
 €Hð7ð 7ð 7ð 7ð"ð "ð "ð "ð "r>   rÿ  c                   ó´   — e Zd Zedfej        edfej        edfej        e	dfej        edfej
        edfej        edfej
        e	dfej        iZdZdd„Zd„ ZdS )rý  FTÚ	SET_INTERc                 óÔ  — g }| j         D ]f}|                     ||d¬¦  «        }t          |t          ¦  «        r"|j        r|                     |j         ¦  «         ŒQ|                     |¦  «         Œgt          |¦  «        dk    r<|d                              | j	        | j
        ¬¦  «                             |||¦  «        S t          |¦  «        | _         |                      ||¦  «        S ©NTr­   r-   r   r«   )r÷  r·   r.   rý  r²   r¹   rZ   r]   r´   rª   r¬   r{   r¯  ©r:   r—   r¦   r®   r÷  ra   s         r=   r·   zSetInter.optimise¢  sâ   € ØˆØ”ð 	 ð 	 ˆAØ—
’
˜4 °�
Ñ6Ô6ˆAÝ˜!�XÑ&Ô&ð  ¨1¬:ð  à—’˜QœWÑ%Ô%Ð%Ð%à—’˜Q‘”��åˆu‰:Œ:˜Š?ˆ?Ø˜”8×&Ò&°$´/Øœð 'ñ (ô (ß(0ª°°wÀÑ(GÔ(GðHõ ˜5‘\”\ˆŒ
à×(Ò(¨¨vÑ6Ô6Ð6r>   c                 óZ   ‡— t          ˆfd„| j        D ¦   «         ¦  «        }|| j        k    S )Nc              3   óB   •K  — | ]}|                      ‰¦  «        V — Œd S rÝ   ©r}  ©rÞ   ro   rø   s     €r=   r�  z#SetInter.matches.<locals>.<genexpr>µ  ó-   øè è € Ð2Ð2 !�—	’	˜"‘”Ð2Ð2Ð2Ð2Ð2Ð2r>   )r   r÷  r²   rº  s    ` r=   r}  zSetInter.matches´  ó4   ø€ ÝÐ2Ð2Ð2Ð2 t¤zÐ2Ñ2Ô2Ñ2Ô2ˆØ�D”MÒ!Ð!r>   Nr‚  )r?   r@   rA   r°   r«  r¿  r   ÚSET_INTER_IGNr   r8  ÚSET_INTER_REVÚSET_INTER_IGN_REVr–  r›  r·   r}  rC   r>   r=   rý  rý  š  s­   € € € € € Ø˜ˆ ¤¨z¸5Ð.AØÔ˜ 5Ð)¨2¬<¸.Øð:ØÔ ¨ °Ô0@À:Ø
ðCØÔ! H¨dÐ#3°RÔ5EØ�tÐ˜bÔ2ð	4€Gð
 €Hð7ð 7ð 7ð 7ð$"ð "ð "ð "ð "r>   rý  c                   ó´   — e Zd Zedfej        edfej        edfej        e	dfej        edfej
        edfej        edfej
        e	dfej        iZdZdd„Zd„ ZdS )rú  FTÚSET_SYM_DIFFc                 óÔ  — g }| j         D ]f}|                     ||d¬¦  «        }t          |t          ¦  «        r"|j        r|                     |j         ¦  «         ŒQ|                     |¦  «         Œgt          |¦  «        dk    r<|d                              | j	        | j
        ¬¦  «                             |||¦  «        S t          |¦  «        | _         |                      ||¦  «        S rÁ  )r÷  r·   r.   rú  r²   r¹   rZ   r]   r´   rª   r¬   r{   r¯  rÂ  s         r=   r·   zSetSymDiff.optimiseÀ  sâ   € ØˆØ”ð 	 ð 	 ˆAØ—
’
˜4 °�
Ñ6Ô6ˆAÝ˜!�ZÑ(Ô(ð  ¨Q¬Zð  à—’˜QœWÑ%Ô%Ð%Ð%à—’˜Q‘”��åˆu‰:Œ:˜Š?ˆ?Ø˜”8×&Ò&°$´/Øœð 'ñ (ô (ß(0ª°°wÀÑ(GÔ(GðHõ ˜5‘\”\ˆŒ
à×(Ò(¨¨vÑ6Ô6Ð6r>   c                 ób   — d}| j         D ]}||                     |¦  «        k    }Œ|| j        k    S rp  r¹  )r:   rø   ra   ro   s       r=   r}  zSetSymDiff.matchesÒ  s;   € ØˆØ”ð 	#ð 	#ˆAØ�Q—Y’Y˜r‘]”]Ò"ˆAˆAà�D”MÒ!Ð!r>   Nr‚  )r?   r@   rA   r°   r«  rÍ  r   ÚSET_SYM_DIFF_IGNr   r8  ÚSET_SYM_DIFF_REVÚSET_SYM_DIFF_IGN_REVr–  r›  r·   r}  rC   r>   r=   rú  rú  ¸  s«   € € € € € Ø˜ˆ ¤°*¸eÐ1DØÔ˜H eÐ,¨b¬oÀØð@ØÔ! F¨D >°2Ô3FØ�4Ð˜"Ô1°H¸dÐ3CØÔ˜N¨DÐ1°2Ô3Jð	L€Gð
 €Hð7ð 7ð 7ð 7ð$"ð "ð "ð "ð "r>   rú  c                   óº   — e Zd Zedfej        edfej        edfej        e	dfej        edfej
        edfej        edfej
        e	dfej        iZdZdd„Zd„ Zd„ ZdS )	rµ   FTÚ	SET_UNIONc                 óö  — g }| j         D ]f}|                     ||d¬¦  «        }t          |t          ¦  «        r"|j        r|                     |j         ¦  «         ŒQ|                     |¦  «         Œgt          |¦  «        dk    rM|d         }|                     |j        | j        k    | j	        | j
        ¬¦  «                             |||¦  «        S t          |¦  «        | _         |                      ||¦  «        S )NTr­   r-   r   )r²   rª   r¬   )r÷  r·   r.   rµ   r²   r¹   rZ   r]   r´   rª   r¬   r{   r¯  )r:   r—   r¦   r®   r÷  ra   ro   s          r=   r·   zSetUnion.optimiseá  sñ   € ØˆØ”ð 	 ð 	 ˆAØ—
’
˜4 °�
Ñ6Ô6ˆAÝ˜!�XÑ&Ô&ð  ¨1¬:ð  à—’˜QœWÑ%Ô%Ð%Ð%à—’˜Q‘”��åˆu‰:Œ:˜Š?ˆ?Ø�a”ˆAØ—<’<¨¬°t´}Ò)DØœØœð  ñ (ô (ç(0ª°°wÀÑ(GÔ(GðHõ ˜5‘\”\ˆŒ
à×(Ò(¨¨vÑ6Ô6Ð6r>   c                 óR  — d}| j         r
|t          z  }| j        r
|t          z  }|r
|t          z  }t          t          ¦  «        g }}| j        D ]R}t          |t          ¦  «        r&||j                   
                    |j        ¦  «         Œ=| 
                    |¦  «         ŒS| j        | j        |f         |fg}|                     ¦   «         D ]Ž\  }}	d}|r
|t          z  }t          |	¦  «        dk    r)| 
                    t          j        ||	d         f¦  «         ŒO| 
                    t          j        |t          |	¦  «        ft%          |	¦  «        z   ¦  «         Œ�|D ])}|                     |                     ¦   «         ¦  «         Œ*| 
                    t          j        f¦  «         |S r¸  )r²   r“  r¬   rr  r”  r   r¶   r÷  r.   r±   rZ   r^   r–  rª   r]   r«  rƒ  ÚSTRINGr{   r¹   r¤   rÍ  )
r:   r¦   r_  r�   rí  Úothersra   rº   r²   Úvaluess
             r=   ry  zSetUnion._compileõ  s§  € ØˆØŒ=ð 	!Ø•[Ñ ˆEØŒ>ð 	"Ø•\Ñ!ˆEØð 	Ø•XÑˆEå(­Ñ.Ô.°�Fˆ
Ø”ð 	!ð 	!ˆAÝ˜!�YÑ'Ô'ð !Ø˜1œ:Ô&×-Ò-¨a¬gÑ6Ô6Ð6Ð6à—’˜aÑ Ô Ð Ð à”˜dœo¨wÐ6Ô7¸Ð?Ð@ˆà *× 0Ò 0Ñ 2Ô 2ð 	Mð 	MÑˆH�fØˆEØð %Ø�Ñ$�Ý�6‰{Œ{˜aÒÐØ—’�Rœ\¨5°&¸´)Ð<Ñ=Ô=Ð=Ð=à—’�RœY¨­s°6©{¬{Ð;½eÀF¹m¼mÑKÑLÔLÐLÐLàð 	%ð 	%ˆAØ�KŠK˜Ÿ	š	™œÑ$Ô$Ð$Ð$à�Š•R”V�JÑÔÐàˆr>   c                 óZ   ‡— t          ˆfd„| j        D ¦   «         ¦  «        }|| j        k    S )Nc              3   óB   •K  — | ]}|                      ‰¦  «        V — Œd S rÝ   rÅ  rÆ  s     €r=   r�  z#SetUnion.matches.<locals>.<genexpr>  rÇ  r>   )r  r÷  r²   rº  s    ` r=   r}  zSetUnion.matches  rÈ  r>   Nr‚  )r?   r@   rA   r°   r«  rÔ  r   ÚSET_UNION_IGNr   r8  ÚSET_UNION_REVÚSET_UNION_IGN_REVr–  r›  r·   ry  r}  rC   r>   r=   rµ   rµ   Ù  s½   € € € € € Ø˜ˆ ¤¨z¸5Ð.AØÔ˜ 5Ð)¨2¬<¸.Øð:ØÔ ¨ °Ô0@À:Ø
ðCØÔ! H¨dÐ#3°RÔ5EØ�tÐ˜bÔ2ð	4€Gð
 €Hð7ð 7ð 7ð 7ð( ð  ð  ðD"ð "ð "ð "ð "r>   rµ   c                   ó    — e Zd ZdZej        ZdS )ÚSkipÚSKIPN)r?   r@   rA   r›  r«  rá  r–  rC   r>   r=   rà  rà    s   € € € € € Ø€HØŒg€G€G€Gr>   rà  c                   ó    — e Zd Zej        ZdZdS )rê   ÚSTART_OF_LINEN)r?   r@   rA   r«  rã  r–  r›  rC   r>   r=   rê   rê     r­  r>   rê   c                   ó    — e Zd Zej        ZdZdS )ré   ÚSTART_OF_LINE_UN)r?   r@   rA   r«  rå  r–  r›  rC   r>   r=   ré   ré   #  ó   € € € € € ØÔ €GØ €H€H€Hr>   ré   c                   ó    — e Zd Zej        ZdZdS )rë   ÚSTART_OF_STRINGN)r?   r@   rA   r«  rè  r–  r›  rC   r>   r=   rë   rë   '  ræ  r>   rë   c                   ó    — e Zd Zej        ZdZdS )ÚStartOfWordÚSTART_OF_WORDN)r?   r@   rA   r«  rë  r–  r›  rC   r>   r=   rê  rê  +  r­  r>   rê  c                   óÐ   — e Zd Zedfej        edfej        edfej        e	dfej
        edfej        edfej        edfej        e	dfej        iZefd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
S )rÁ  FTc                 óž  — t          |¦  «        | _        t          |         | _        | j        t          z  t          k    rSg }| j        D ]H}t          j        t          t          |¦  «        ¦  «        }| 	                    d„ |D ¦   «         ¦  «         ŒIn| j        }t          |¦  «        | _
        d| _        | j        | j        | j        f| _        d S )Nc              3   ó4   K  — | ]}t          |¦  «        V — Œd S rÝ   rq  r¸  s     r=   r�  z"String.__init__.<locals>.<genexpr>>  s(   è è € Ð(@Ð(@°A­¨Q©¬Ð(@Ð(@Ð(@Ð(@Ð(@Ð(@r>   F)r{   rí  rZ  rª   r8  r•   r–   r=  r;  r¹   r�  ÚrequiredrY   rW  )r:   rí  rª   r�  r�   r?  s         r=   r9   zString.__init__6  sÇ   € Ý 
Ñ+Ô+ˆŒÝ1°*Ô=ˆŒàŒO�nÑ,µÒ?Ð?Ø "ÐØœð Að A�ÝÔ)Õ*;½SÀ¹Y¼YÑGÔG�Ø!×(Ò(Ð(@Ð(@¸Ð(@Ñ(@Ô(@Ñ@Ô@Ð@Ð@ðAð !%¤Ðå!&Ð'8Ñ!9Ô!9ˆÔØˆŒà”N D¤O°T´_ÐDˆŒ	ˆ	ˆ	r>   c                 ón   — |rd}nd}t          t          | j        |         | j        ¬¦  «        g¦  «        S )Nrê  r   r©   )r¯   r±   rí  rª   )r:   r¦   r2   s      r=   ru  zString.get_firstsetG  sL   € Øð 	ØˆCˆCàˆCÝ•I˜dœo¨cÔ2Ø”_ð&ñ &ô &ð 'ñ (ô (ð 	(r>   c                 ó   — dS rj  rC   rX  s    r=   rw  zString.has_simple_startO  rl  r>   c                 ó¤   — d}|r
|t           z  }| j        r
|t          z  }| j        | j        |f         |t          | j        ¦  «        f| j        z   gS r’  )r”  rï  ÚREQUIRED_OPr–  rª   r]   r�  r—  s       r=   ry  zString._compileR  sk   € ØˆØð 	Ø•XÑˆEØŒ=ð 	!Ø•[Ñ ˆEØ”˜dœo¨wÐ6Ô7¸Ý
ˆdÔ$Ñ
%Ô
%ð'Ø)-Ô)?ñ@ð Að 	Ar>   c                 ó  — t          d                     d„ | j        D ¦   «         ¦  «        ¦  «                             d¦  «        }t	          d                     t          |z  |t          | j                 ¦  «        ¦  «         d S )Nrf   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S rÝ   r“  r¸  s     r=   r�  zString.dump.<locals>.<genexpr>\  s(   è è € Ð@Ð@¨1¥ A¡¤Ð@Ð@Ð@Ð@Ð@Ð@r>   ru  z{}STRING {}{})	rv  r\   rí  rw  r™  r7   rš  rx  rª   ry  s       r=   rŸ  zString.dump[  sz   € Ý˜ŸšÐ@Ð@°´Ð@Ñ@Ô@Ñ@Ô@ÑAÔA×HÒHÈÑNÔNˆÝˆo×$Ò$¥V¨f¡_°gÝ
�D”OÔ
$ñ&ô &ñ 	'ô 	'ð 	'ð 	'ð 	'r>   c                 ó*   — t          | j        ¦  «        S rÝ   )r]   r�  rX  s    r=   r‡  zString.max_width`  s   € Ý�4Ô)Ñ*Ô*Ð*r>   c                 ó
   — d| fS r’  rC   rt  s     r=   rˆ  zString.get_required_stringc  s   € Ø�$ˆwˆr>   N)r?   r@   rA   r°   r«  r×  r   Ú
STRING_IGNr   r8  Ú
STRING_FLDÚ
STRING_REVÚSTRING_IGN_REVÚSTRING_FLD_REVr–  r9   ru  rw  ry  rŸ  r‡  rˆ  rC   r>   r=   rÁ  rÁ  /  sò   € € € € € Ø˜ˆ ¤	¨J¸Ð+>ÀÄØ�Ð˜œ ^°UÐ$;¸R¼]Øˆt€n�b”m j°$Ð%7¸Ô9JØ�Ð˜œ¨¸Ð'=ØÔð	€Gð /5ð Eð Eð Eð Eð"(ð (ð (ðð ð ðAð Að Að'ð 'ð 'ð
+ð +ð +ðð ð ð ð r>   rÁ  c                   ó   — e Zd Zd„ ZdS )rì  c                 ó
  — d                      d„ | j        D ¦   «         ¦  «        }t          |¦  «                             d¦  «        }t	          d                     t          |z  |t          | j                 ¦  «        ¦  «         d S )Nrf   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S rÝ   r“  r¸  s     r=   r�  zLiteral.dump.<locals>.<genexpr>h  s(   è è € Ð:Ð: Q�#˜a™&œ&Ð:Ð:Ð:Ð:Ð:Ð:r>   ru  z{}LITERAL MATCH {}{})	r\   rí  rv  rw  r™  r7   rš  rx  rª   )r:   rž  r¦   Úliteralrz  s        r=   rŸ  zLiteral.dumpg  s~   € Ø—'’'Ð:Ð:¨$¬/Ð:Ñ:Ô:Ñ:Ô:ˆÝ˜‘.”.×'Ò'¨Ñ-Ô-ˆÝÐ$×+Ò+­F°V©O¸WÝ
�D”OÔ
$ñ&ô &ñ 	'ô 	'ð 	'ð 	'ð 	'r>   N)r?   r@   rA   rŸ  rC   r>   r=   rì  rì  f  s#   € € € € € ð'ð 'ð 'ð 'ð 'r>   rì  c                   ó$   — e Zd Zefd„Zd„ Zd„ ZdS )rÉ   c                 ó|  ‡— || _         || _        t          ‰         | _        | j        | j        | j        f| _        || j        f| _        | j        |j        vr!t          |j        ¦  «        |j        | j        <   | j         j        | j                 }| j         j	        | j                 }| j        Š| j         j
        t          z  }|‰z  }g }|D ]D}	t          |	t          ¦  «        rd„ |	D ¦   «         }	|                     ˆfd„|	D ¦   «         ¦  «         ŒE|                     t          d¬¦  «         d„ |D ¦   «         | _        d S )Nc                 ó,   — g | ]}t          |¦  «        ‘ŒS rC   rq  r¸  s     r=   rà   z&StringSet.__init__.<locals>.<listcomp>…  s   € Ð1Ð1Ð1 Q�#˜a™&œ&Ð1Ð1Ð1r>   c                 ó2   •— g | ]}t          |‰¬ ¦  «        ‘ŒS )r©   r·  )rÞ   r¼   rª   s     €r=   rà   z&StringSet.__init__.<locals>.<listcomp>‡  s2   ø€ ð ð ð ÀA�I a°JÐ?Ñ?Ô?ð ð ð r>   T)r2  r¦   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rC   )rõ   )rÞ   Úchoices     r=   rà   z&StringSet.__init__.<locals>.<listcomp>�  s    € Ð@Ð@Ð@¨f� &Ñ)Ô)Ð@Ð@Ð@r>   )r—   rÅ   rZ  rª   rY   rW  Úset_keyÚnamed_lists_usedr]   rÚ  r�   r“   r.   r/   rZ   rš  rÓ   )
r:   r—   rÅ   rª   rM  r÷  rÎ  Ú
fold_flagsÚchoicesr˜   s
      `      r=   r9   zStringSet.__init__n  sU  ø€ ØˆŒ	ØˆŒ	Ý1°*Ô=ˆŒà”N D¤I¨t¬Ð>ˆŒ	à˜dœoÐ.ˆŒØŒ<˜tÔ4Ð4Ð4Ý25°dÔ6KÑ2LÔ2LˆDÔ! $¤,Ñ/à”	Ô*¨4¬<Ô8ˆØ”	Ô  ¤Ô+ˆà”_ˆ
à”9”?¥^Ñ3ˆØ 
Ñ*ˆ
àˆàð 	ð 	ˆFÝ˜&¥#Ñ&Ô&ð 2Ø1Ð1¨&Ð1Ñ1Ô1�à�NŠNð ð ð ð Øðñ ô ñ ô ð ð ð 	�Š� dˆÑ+Ô+Ð+à@Ð@¸Ð@Ñ@Ô@ˆŒˆˆr>   c                 óˆ   — t          d                     t          |z  | j        t          | j                 ¦  «        ¦  «         d S )Nz{}STRING_SET {}{})r™  r7   rš  rÅ   rx  rª   r�  s      r=   rŸ  zStringSet.dump�  sE   € ÝÐ!×(Ò(­°&©¸$¼)Ý
�D”OÔ
$ñ&ô &ñ 	'ô 	'ð 	'ð 	'ð 	'r>   c                 ó   — d | _         d S rÝ   r\  rX  s    r=   r]  zStringSet.__del__“  r^  r>   N)r?   r@   rA   r°   r9   rŸ  r]  rC   r>   r=   rÉ   rÉ   m  sN   € € € € € Ø.4ð Að Að Að AðB'ð 'ð 'ðð ð ð ð r>   rÉ   c                   óJ   — e Zd ZdZd„ Zdd„Zdd„Zdd„Zdd	„Zd
„ Z	d„ Z
d„ ZdS )ÚSourcez1Scanner for the regular expression source string.c                 óÌ   — t          |t          ¦  «        r|| _        t          | _        n |j        d¦  «        | _        d„ | _        d| _        d| _        |d d…         | _        d S )Nzlatin-1c                 ó"   — t          | g¦  «        S rÝ   )rA  r)  s    r=   r0  z!Source.__init__.<locals>.<lambda>ž  s   € ¥u¨a¨S¡z¤z€ r>   r   F)	r.   r/   r˜   r;  Ú	char_typeÚdecoder2   rU  r@  )r:   r˜   s     r=   r9   zSource.__init__˜  sc   € Ý�f�cÑ"Ô"ð 	2Ø ˆDŒKÝ ˆDŒNˆNà'˜&œ-¨	Ñ2Ô2ˆDŒKØ1Ð1ˆDŒNàˆŒØ!ˆÔØ˜3˜Q˜3”<ˆŒˆˆr>   Fc                 óp  — | j         }| j        }	 | j        rC|sA	 ||                              ¦   «         r|dz  }n||         dk    r |j        d|¦  «        }nnŒ@||         }|dz   | _        |S # t
          $ r || _        |d d…         cY S t          $ r! t          |¦  «        | _        |d d…         cY S w xY w)NTr-   rJ  r+   r   )r˜   r2   rU  ÚisspacerM  rL  r2  r]   )r:   Úoverride_ignorer˜   r2   rø   s        r=   rá   z
Source.get¤  sÿ   € Ø”ˆØŒhˆð	 ØÔ ð 	¨ð 	ðØ˜c”{×*Ò*Ñ,Ô,ð à˜q™˜˜Ø œ¨Ò+Ð+à*˜fœl¨4°Ñ5Ô5˜˜àðð ˜”ˆBØ˜Q‘wˆDŒHØˆIøÝð 	 ð 	 ð 	 àˆDŒHØ˜3˜Q˜3”<ÐÐÐÝð 	 ð 	 ð 	 å˜6‘{”{ˆDŒHØ˜3˜Q˜3”<ÐÐÐð	 øøøs   �AA. Á.B5Â'B5Â4B5r-   c                 ó–  — | j         }| j        }	 | j        rŸg }t          |¦  «        |k     rt	 ||                              ¦   «         r|dz  }n||         dk    r |j        d|¦  «        }nnŒ@|                     ||         ¦  «         |dz  }t          |¦  «        |k     °td                     |¦  «        }n||||z   …         }|t          |¦  «        z  }|| _        |S # t          $ r, t          |¦  «        | _        d                     |¦  «        cY S t          $ r, t          |¦  «        | _        d                     |¦  «        cY S w xY w©NTr-   rJ  r+   rf   )
r˜   r2   rU  r]   r  rM  rZ   r\   rL  r2  )r:   r3   r˜   r2   Ú	substrings        r=   Úget_manyzSource.get_manyÀ  s|  € Ø”ˆØŒhˆð 	&ØÔ ð &Ø�	å˜)‘n”n uÒ,Ð,ð"Ø! #œ;×.Ò.Ñ0Ô0ð "à 1™H˜C˜CØ# Cœ[¨CÒ/Ð/à". &¤,¨t°SÑ"9Ô"9˜C˜Cà!ð"ð ×$Ò$ V¨C¤[Ñ1Ô1Ð1Ø˜1‘H�Cõ ˜)‘n”n uÒ,Ð,ð ŸGšG IÑ.Ô.�	�	à" 3¨¨u©Ð#4Ô5�	Ø•s˜9‘~”~Ñ%�àˆDŒHØÐøÝð 	&ð 	&ð 	&å˜6‘{”{ˆDŒHØ—7’7˜9Ñ%Ô%Ð%Ð%Ð%Ýð 	&ð 	&ð 	&å˜6‘{”{ˆDŒHØ—7’7˜9Ñ%Ô%Ð%Ð%Ð%ð	&øøøs   �CC Ã3EÄ2EÅETc                 óš  — | j         }| j        }| j        rÕ|sÓ	 g }	 ||                              ¦   «         r|dz  }nN||         dk    r |j        d|¦  «        }n0||         |v |k    r!|                     ||         ¦  «         |dz  }nnŒo|| _        nC# t          $ r t          |¦  «        | _        Y n#t          $ r t          |¦  «        | _        Y nw xY wd 	                    |¦  «        S 	 ||         |v |k    r|dz  }||         |v |k    °|| j        |…         }|| _        |S # t          $ r || j        |…         }|| _        |cY S w xY wr  )
r˜   r2   rU  r  rM  rZ   rL  r]   r2  r\   )r:   Útest_setrP  rÜ  r˜   r2   r  s          r=   rC  zSource.get_whileæ  sº  € Ø”ˆØŒhˆàÔð *	! [ð *	!ð'Ø�	ðØ˜c”{×*Ò*Ñ,Ô,ð 
à˜q™˜˜Ø œ¨Ò+Ð+à*˜fœl¨4°Ñ5Ô5˜˜Ø  œ+¨Ð1°gÒ=Ð=Ø!×(Ò(¨°¬Ñ5Ô5Ð5Ø˜q™˜˜àðð �”�øÝð 'ð 'ð 'å˜v™;œ;�”��Ýð 'ð 'ð 'å˜v™;œ;�”��ð'øøøð —7’7˜9Ñ%Ô%Ð%ð!Ø˜c”{ hÐ.°7Ò:Ð:Ø˜1‘H�Cð ˜c”{ hÐ.°7Ò:Ð:ð # 4¤8¨c >Ô2�	à�”à Ð øÝð !ð !ð !à" 4¤8¨c >Ô2�	à�”à Ð Ð Ð ð!øøøs*   ™A9B ÂCÂ3CÃCÃ,8D% Ä%"E
Å	E
c                 ó¸  — | j         }| j        }	 | j        rV	 ||                              ¦   «         r|dz  }n3||         dk    r |j        d|¦  «        }n||         |v |k    r|dz  }nnŒTn!||         |v |k    r|dz  }||         |v |k    °|| _        d S # t
          $ r t          |¦  «        | _        Y d S t          $ r t          |¦  «        | _        Y d S w xY w©NTr-   rJ  r+   )r˜   r2   rU  r  rM  rL  r]   r2  )r:   r  rP  r˜   r2   s        r=   Ú
skip_whilezSource.skip_while  s+  € Ø”ˆØŒhˆð	#ØÔ ð ð
Ø˜c”{×*Ò*Ñ,Ô,ð 	à˜q™˜˜Ø œ¨Ò+Ð+à*˜fœl¨4°Ñ5Ô5˜˜Ø  œ+¨Ð1°gÒ=Ð=Ø˜q™˜˜àð
ð à˜c”{ hÐ.°7Ò:Ð:Ø˜1‘H�Cð ˜c”{ hÐ.°7Ò:Ð:ð ˆDŒHˆHˆHøÝð 	#ð 	#ð 	#å˜6‘{”{ˆDŒHˆHˆHˆHÝð 	#ð 	#ð 	#å˜6‘{”{ˆDŒHˆHˆHˆHð	#øøøs   �BB ÂCÂ8CÃCc                 ó†  — | j         }| j        }| j        r�	 |D ]W}	 ||                              ¦   «         r|dz  }n||         dk    r |j        d|¦  «        }nnŒ@||         |k    r dS |dz  }ŒX|| _        dS # t
          $ r Y dS t          $ r Y dS w xY w |j        ||¦  «        sdS |t          |¦  «        z   | _        dS )NTr-   rJ  r+   F)	r˜   r2   rU  r  rM  rL  r2  r6  r]   )r:   r  r˜   r2   r¼   s        r=   rÐ   zSource.match3  s"  € Ø”ˆØŒhˆàÔð !	ðØ"ð ð �Að"Ø! #œ;×.Ò.Ñ0Ô0ð "à 1™H˜C˜CØ# Cœ[¨CÒ/Ð/à". &¤,¨t°SÑ"9Ô"9˜C˜Cà!ð"ð ˜c”{ aÒ'Ð'Ø$˜u˜uà˜1‘H�C�Cà�”à�tøÝð ð ð à�u�uÝð ð ð à�u�uðøøøð %�6Ô$ Y°Ñ4Ô4ð Ø�uà�S ™^œ^Ñ+ˆDŒHà�4s   —AA: Á+A: Á:
BÂ	BÂBc                 óŒ   — |                       |¦  «        s.t          d                     |¦  «        | j        | j        ¦  «        ‚d S )Nz
missing {})rÐ   r&   r7   r˜   r2   )r:   r  s     r=   rT  zSource.expectZ  sG   € Ø�zŠz˜)Ñ$Ô$ð 	OÝ˜×+Ò+¨IÑ6Ô6¸¼ÀTÄXÑNÔNÐNð	Oð 	Or>   c                 ó  — | j         }| j        }	 | j        rA	 ||                              ¦   «         r|dz  }n||         dk    r |j        d|¦  «        }nnŒ@|t          |¦  «        k    S # t          $ r Y dS t          $ r Y dS w xY wr  )r˜   r2   rU  r  rM  r]   rL  r2  )r:   r˜   r2   s      r=   Úat_endzSource.at_end^  sÂ   € Ø”ˆØŒhˆð	ØÔ ð ðØ˜c”{×*Ò*Ñ,Ô,ð Ø˜q™˜˜Ø œ¨Ò+Ð+Ø*˜fœl¨4°Ñ5Ô5˜˜àðð �#˜f™+œ+Ò%Ð%øÝð 	ð 	ð 	à�4�4Ýð 	ð 	ð 	à�4�4ð	øøøs   �AA+ Á+
BÁ8	BÂBNr‚  ©r-   )TFr¢  )r?   r@   rA   rB   r9   rá   r  rC  r  rÐ   rT  r"  rC   r>   r=   r  r  –  s¬   € € € € € Ø7Ð7ð
 ð 
 ð 
 ð ð  ð  ð  ð8$&ð $&ð $&ð $&ðL.!ð .!ð .!ð .!ð`#ð #ð #ð #ð:%ð %ð %ðNOð Oð Oðð ð ð ð r>   r  c                   ó4   — e Zd ZdZddi fd„Zdd„Zd„ Zd„ ZdS )	ÚInfoz"Info about the regular expression.r   Nc                 ó  — |t           |t          z  pt                   z  }|| _        || _        d| _        || _        d| _        i | _        i | _	        || _
        i | _        g | _        i | _        i | _        g | _        i | _        d S )NFr   )ÚDEFAULT_FLAGSrï  rð  r�   r�  r‡  rÚ  r{  rK  Ú
group_namer  r  Úopen_groupsrL  rý  rM  r  )r:   r�   r  rÚ  s       r=   r9   zInfo.__init__w  s�   € Ø• ­Ñ 5ÐI½/ÔJÑJˆØˆŒ
Ø!ˆÔØ"ˆÔàˆŒàˆÔØˆÔØˆŒØ"ˆŒØ "ˆÔØˆÔØ "ˆÔØ ˆÔØˆÔØ ˆÔÐÐr>   c                 ó˜  — | j                              |¦  «        }|€@	 | xj        dz  c_        |�| j        | j        vrnŒ"| j        }|r|| j         |<   || j        |<   || j        v r$t          | j        ¦  «        dz    }|| j        |<   |}| j                             |¦  «         | j                             |d¦  «        dz   | j        |<   |S )NTr-   r   )	rK  rá   r{  r(  r)  r]   r  rZ   rL  )r:   rÅ   rc  Úgroup_aliass       r=   rS  zInfo.open_groupŠ  sø   € ØÔ ×$Ò$ TÑ*Ô*ˆØˆ=ðØÐ Ô  AÑ%Ð Ô Ø�< 4Ô#3¸4¼?Ð#JÐ#JØðð
 Ô$ˆEØð .Ø).�Ô  Ñ&Ø)-�” Ñ&à�DÔ$Ð$Ð$õ   Ô 3Ñ4Ô4°qÑ8Ð9ˆKØ/4ˆDÔ Ñ,ØˆEàÔ×Ò Ñ&Ô&Ð&Ø'+Ô'<×'@Ò'@ÀÈÑ'JÔ'JÈQÑ'NˆÔ˜eÑ$àˆr>   c                 ó8   — | j                              ¦   «          d S rÝ   )r)  rÿ   rX  s    r=   rV  zInfo.close_group¤  s   € ØÔ×ÒÑÔÐÐÐr>   c                 óÖ   — | j         t          z  pt          }|t          k    rdS |                     ¦   «         rt          |¦  «        }n| j                             |¦  «        }|| j        v S rp  )	r�   rï  rð  r!   r•  r  rK  rá   r)  )r:   rÅ   ró  rc  s       r=   rk  zInfo.is_open_group§  sf   € ð ”:¥Ñ-ÐAµ/ˆØ•hÒÐØ�5à�<Š<‰>Œ>ð 	/Ý˜‘I”IˆEˆEàÔ$×(Ò(¨Ñ.Ô.ˆEà˜Ô(Ð(Ð(r>   rÝ   )r?   r@   rA   rB   r9   rS  rV  rk  rC   r>   r=   r%  r%  t  sg   € € € € € Ø(Ð(à¨$°rð !ð !ð !ð !ð&ð ð ð ð4ð ð ð)ð )ð )ð )ð )r>   r%  c                 ó6  — i }g }| j         D ]þ\  }}}|j        ||f}|                     |¦  «        }|€Ð|j        dk    rot          | j        t
          z  ¦  «        }	t          |t          ¦  «        }
|	|
f||fk    r3|                     t          t          |¦  «        |¦  «        ||f¦  «         nB| j        |j                 }|d         }|dd…         ||fk    r|                     |||f¦  «         t          |¦  «        }|||<   ||_        Œÿ|| _        || _        dS )zkChecks whether the reverse and fuzzy features of the group calls match
    the groups which they call.
    Nr   r-   )rM  rc  rá   r¢   r�   r   r.   r	  rZ   r`  r]   rý  rU  r	  Úadditional_groups)r—   rc  r	  r/  Úcallr¦   r_  r2  rb  ÚrevÚfuzÚdef_inforc  s                r=   Ú_check_group_featuresr4  µ  sF  € ð €IØÐØ $Ô 0ð ð Ñˆˆg�uàŒz˜7 EÐ*ˆØ�mŠm˜CÑ Ô ˆØˆ;àŒz˜QŠˆå˜4œ:­Ñ/Ñ0Ô0�Ý  ­Ñ/Ô/�Ø˜�: '¨5Ð!1Ò1Ð1ð &×,Ò,­gµc¸)±n´nÀfÑ.MÔ.MØ˜uð.&ñ 'ô 'ð 'øð  Ô.¨t¬zÔ:�Ø  œ�Ø˜A˜C˜C”> g¨uÐ%5Ò5Ð5ð &×,Ò,¨e°W¸eÐ-DÑEÔEÐEå�i‘.”.ˆCØ ˆI�c‰NàˆŒˆà€D„NØ.€DÔÐÐr>   c                 óæ   — |                       t          |t          z  ¦  «        ¦  «        \  }}|r8d|_        |t          k    rd}|j        }|t          z  s|t           z  }|j        }nd}d}d}|||fS )z>Gets the required string and related info of a parsed pattern.Trê  r   rC   )rˆ  r¢   r   rï  r  rª   r   r�  )rc  r�   Ú
req_offsetrï  Ú	req_flagsÚ	req_charss         r=   Ú_get_required_stringr9  Ü  sŽ   € ð "×5Ò5µd¸5Å7¹?Ñ6KÔ6KÑLÔLÑ€J�Øð Ø ˆÔØ�Ò"Ð"ØˆJàÔ'ˆ	Ø�‘ð 	"Ø�'˜Ñ!ˆIàÔ.ˆ	ˆ	àˆ
Øˆ	Øˆ	à�y )Ð+Ð+r>   c                   ó   — e Zd Zdd„Zd„ ZdS )r'   r   c                 óP  ‡— || _         g }|D ]°\  }}t          |¦  «        }t          ||j        ¦  «        Št	          ‰j        t          z  ¦  «        |_        t          |‰¦  «        }| 	                    ¦   «         st          d|j        |j        ¦  «        ‚|                     |                     ¦   «         ¦  «         Œ±t          |¦  «        Šˆfd„t          |¦  «        D ¦   «         }t!          |¦  «        }t	          ‰j        t"          z  ¦  «        }|                     ‰|¦  «        }|                     ‰¦  «        }t)          |‰j        ¦  «        \  }	}
}t+          ‰|¦  «         ‰j        rt          d|j        |j        ¦  «        ‚t	          ‰j        t"          z  ¦  «        }|                     |¦  «        t0          j        fgz   }t5          |¦  «        }|                     ¦   «         sI	 t9          ‰|                     |¦  «        ¦  «        }t5          |¦  «        }||z   }n# t<          $ r Y nw xY w‰j        t>          z  pt@          }|dtB          tD          fvrtG          d¦  «        ‚tI          j        d |tJ          z  |z  |i i i g |	|
|tM          |¦  «        ¦  «        | _'        d S )Nzunbalanced parenthesisc                 ó>   •— g | ]\  }}t          ‰|d z   |¦  «        ‘ŒS r#  )r  )rÞ   r­  rp   r—   s      €r=   rà   z$Scanner.__init__.<locals>.<listcomp>  s-   ø€ ÐJÐJÐJ©d¨a°•E˜$  A¡ qÑ)Ô)ÐJÐJÐJr>   z(recursive regex not supported by Scannerr   z5VERSION0 and VERSION1 flags are mutually incompatible)(Úlexiconr  r%  r  r¢   r�   r%   rU  rÔ   r"  r&   r˜   r2   rZ   rh  Ú	enumeraterÑ   r   r·   rf  r9  r4  r	  r¤   r«  ÚSUCCESSr½   rw  r§   ru  rK   rï  rð  r   r!   r2  r•   r�  r]   Úscanner)r:   r=  r�   ÚpatternsÚphraseÚactionrÒ   rc  r¦   r6  r8  r7  rº   Úfs_coderó  r—   s                  @r=   r9   zScanner.__init__ò  s²  ø€ ØˆŒð ˆØ%ð 	6ð 	6‰NˆF�Få˜F‘^”^ˆFÝ˜˜vÔ/Ñ0Ô0ˆDÝ"& t¤zµGÑ';Ñ"<Ô"<ˆFÔÝ# F¨DÑ1Ô1ˆFØ—=’=‘?”?ð ÝÐ4°f´mØ”*ñô ð ð �OŠO˜F×2Ò2Ñ4Ô4Ñ5Ô5Ð5Ð5õ �E‰{Œ{ˆØJÐJÐJÐJµiÀÑ6IÔ6IÐJÑJÔJˆÝ˜Ñ!Ô!ˆõ �t”z¥GÑ+Ñ,Ô,ˆØ—’  wÑ/Ô/ˆØ×'Ò'¨Ñ-Ô-ˆõ ,@ÀØ
Œ*ñ,ô ,Ñ(ˆ
�I˜yõ 	˜d FÑ+Ô+Ð+ð Œ>ð 	)ÝÐBØŒm˜VœZñ)ô )ð )õ �t”z¥GÑ+Ñ,Ô,ˆð �~Š~˜gÑ&Ô&­2¬:¨.Ð)9Ñ9ˆõ ˜TÑ"Ô"ˆà×&Ò&Ñ(Ô(ð 	ðÝ+¨D°&×2EÒ2EÀgÑ2NÔ2NÑOÔO�Ý'¨Ñ0Ô0�Ø ‘~��øÝ!ð ð ð Ø�ðøøøð ”:¥Ñ-ÐAµ/ˆØ˜1�h­Ð1Ð1Ð1ÝÐTÑUÔUÐUõ ”~ d¨Uµ\Ñ-AÀWÑ,LØ
��B˜˜B 
¨I°yÝ
ˆh‰-Œ-ñô ˆŒˆˆs   Ç-7H% È%
H2È1H2c                 ó€  — g }|j         }| j                             |¦  «        j        }d}	  |¦   «         }|sn{|                     ¦   «         }||k    rn`| j        |j        dz
           d         }t          |d¦  «        r%|| _         || |                     ¦   «         ¦  «        }|� ||¦  «         |}Œˆ|||d …         fS )Nr   Tr-   Ú__call__)rZ   r@  rÐ   r  r=  Ú	lastindexr~   rc  )	r:   r˜   r!  rZ   rÐ   ro   ra   ÚjrC  s	            r=   ÚscanzScanner.scan;  sÚ   € ØˆØ”ˆØ”×$Ò$ VÑ,Ô,Ô2ˆØˆð	Ø�‘”ˆAØð ØØ—’‘”ˆAØ�AŠvˆvØØ”\ !¤+°¡/Ô2°1Ô5ˆFÝ�v˜zÑ*Ô*ð 1Ø�”
Ø˜  a§g¢g¡i¤iÑ0Ô0�ØÐ!Ø��v‘”�ØˆAð	ð �v˜a˜c˜c”|Ð#Ð#r>   N)r   )r?   r@   rA   r9   rI  rC   r>   r=   r'   r'   ñ  s<   € € € € € ðGð Gð Gð GðR$ð $ð $ð $ð $r>   r'   r1  úúúr+   úú	ú)rk   rl   rn   Únrq   ÚtrË  ÚDigitTÚBlankÚSpaceÚWord)r¿  r   Úhrr   r   rt   r"   )r   rl   r   ÚKra   r   ÚZ)rl   r   ra   r   )ÚFAILr   rO  rá  )rx   r‚  rŠ  rp  )íÚenumr˜   rß  Úcollectionsr   Úregex._regexr•   Ú__all__r8   r&   rE   rI   rK   ÚIntFlagr(   Úglobalsr�   Ú__members__r!   rð  r   rï  r   r   r   r“   r   r'  r   r	   r   r   r   r�  r   r   r   r#   r%   ÚSCOPED_FLAGSÚ	frozensetÚascii_lettersr&  r3  r*  ré  Ú	octdigitsr›  Ú	hexdigitsr©  râ   rÞ  rè  r  Úget_code_sizeÚBYTES_PER_CODEÚBITS_PER_CODEr  rƒ  r¿   r°   r8  r=  rZ  rº  ÚOPCODESrw   r«  r>  r  ro   r  Úsetattrr‘   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ä   rW  rX  rQ  rY  rr  rZ  r[  r\  r]  r„  r‹  r�  r^  r‘  rR  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¯   r2  r5  rä  rC  r=  r?  r>  rš  r“  rr  r”  r•  ró  rœ  rx  rS  rU  rŒ  rç   rå   ræ   ry  rÛ  rÑ   r  r`  r±   rs  r   r£  r¦  rí   rì   r¯  rï   rî   r¶  r¹  r	  rÂ  r×  r   r  r  r  r  rn  rw  rs  r4  rN  r  rÄ   r½  rõ   r+  rÿ  rý  rú  rµ   rà  rê   ré   rë   rê  rÁ  rì  rÉ   r  r%  r4  r9  r'   Úget_propertiesr3  rE  r÷  ræ  r8  rÙ  rá   rÅ   Úprop_valuesr<  r]   Úval_namer:  rÆ  rÅ  rÄ  ÚdictrÃ  r`  rC   r>   r=   ú<module>ro     sÞ  ðð  €€€Ø €€€Ø Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #à Ð Ð Ð Ð Ð ðð ð €ð*ð *ð *ð *ð *ˆIñ *ô *ð *ð>	ð 	ð 	ð 	ð 	�yñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�ñ 	ô 	ð 	ð	ð 	ð 	ð 	ð 	�Yñ 	ô 	ð 	ð1ð 1ð 1ð 1ð 1�”ñ 1ô 1ð 1ðf €�	„	× Ò �Ô&Ñ 'Ô 'Ð 'à€à˜8Ñ#€Ø˜‘ 'Ñ)€ð ˜1˜h¨Ð1€ð  	Ñ)¨EÑ1°LÑ@À5ÑHØ	ñ
€à˜:Ñ%¨	Ñ1°FÑ:¸TÑAÀGÑKØñ€ð 	ˆ	�&Ô&Ñ'Ô'€Ø	ˆ�6”=Ñ	!Ô	!€Ø�‰€ØˆY�vÔ'Ñ(Ô(€
ØˆY�vÔ'Ñ(Ô(€
Ø�	Ð*Ñ+Ô+¨i¨i¸¸©o¬oÑ=€Ø˜)˜) D™/œ/Ñ)€Ø˜Y˜Y wÑ/Ô/Ñ/Ð Ø
"€ð &�Ô%Ñ'Ô'€Ø Ñ"€ð �-Ñ 1Ñ$€	ð  	°À8Ø˜ Y°UÀØ�G 8°8À$Ø	ðð €ð ˜
Ñ"€
Ø	
€Ø˜JÑ&€à˜nÑ,Ð à˜a ¨1¨j¸*Ø�.ð"Ð ð ˜A AÐ&Ð&€ðR€ðj	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð €Y�[„[€ØˆY�w—}’}‘”Ñ'Ô'ð ð �E€A€rØ€GˆB��AÑÔÐÐð0.ð 0.ð 0.ð 0.ðd+ð +ð +ð;ð ;ð ;ð6ð 6ð 6ðð ð ðð ð ð>ð ð ðð ð ð>ð >ð >ð >ðLð Lð LðCð Cð Cð=ð =ð =ðð ð ðRð Rð Rðhð ð ð@5ð 5ð 5ð  )°)Ð<Ð<€ðð ð ð4ð 4ð 4ð ð  ð  ð<ð ð ð01ð 1ð 1ð;ð ;ð ;ðz
Að 
Að 
Aðð ð ðð ð ðð ð ð6
ð 
ð 
ðHð Hð Hð4$ð $ð $ðX*ð X*ð X*ðt"?ð "?ð "?ðHð ð ð"
4ð 
4ð 
4ð)Fð )Fð )FðVð ð ð(
ð 
ð 
ðð ð ð$	'ð 	'ð 	'ð'ð 'ð 'ðð ð ð ð ð ð"ð ð ð!@ð !@ð !@ðF5ð 5ð 5ð
ð ð ð ð&2ð 2ð 2ð.ð .ð .ð2ð 2ð 2ðG5ð G5ð G5ðR4ð 4ð 4ðBð ð ð* ð  ð  ð.	1ð 	1ð 	1ð'ð 'ð 'ð2ð 2ð 2ð 1ð 1ð 1ð*ð ð ð,ð ð ð4!ð !ð !ð#ð #ð #ð!ð !ð !ð ð  ð  ð!ð !ð !ð.')ð ')ð ')ðR$ð $ð $ðLLð Lð Lð	%ð 	%ð 	%ðð ð ð*Eð Eð Eð �Ð/×5Ò5Ñ7Ô7Ñ8Ô8€à�Ð0×6Ò6Ñ8Ô8Ñ9Ô9€ðD?ð D?ð D?ð D?ðLF'ð F'ð F'ðP
$ð 
$ð 
$ðð ð ð"*ð *ð *ð* 
€Ø€Ø€Ø€Ø€
Ø€à gÐ.Ð.€Ø�R˜Ð%:¸HÀbØÐ%ð'€	ðð ð ðC&ð C&ð C&ð C&ð C&ñ C&ô C&ð C&ðLð ð ð ð �Iñ ô ð ð6ð ð ð ð ˆ)ñ ô ð ð&ð ð ð ð ˆSñ ô ð ðð ð ð ð ˆ3ñ ô ð ð6<ð 6<ð 6<ð 6<ð 6<ˆYñ 6<ô 6<ð 6<ðpð ð ð ð ˆ}ñ ô ð ðF9ð F9ð F9ð F9ð F9ˆYñ F9ô F9ð F9ðP,ð ,ð ,ð ,ð ,�	ñ ,ô ,ð ,ð\!ð !ð !ð !ð !ˆiñ !ô !ð !ðHð Hð Hð Hð H�	ñ Hô Hð HðTWð Wð Wð Wð W�)ñ Wô Wð Wðr"ð "ð "ð "ð "�mñ "ô "ð "ð%ð %ð %ð %ð %�}ñ %ô %ð %ð'ð 'ð 'ð 'ð '˜ñ 'ô 'ð 'ðð ð ð ð �ñ ô ð ðð ð ð ð �ñ ô ð ðð ð ð ð �-ñ ô ð ð$ð $ð $ð $ð $�mñ $ô $ð $ð&ð &ð &ð &ð &�ñ &ô &ð &ðð ð ð ð �ñ ô ð ð ð  ð  ð  ð  ˆmñ  ô  ð  ðC%ð C%ð C%ð C%ð C%ˆIñ C%ô C%ð C%ðJð ð ð ð ˆyñ ô ð ð+ð +ð +ð +ð +ñ +ô +ð +ðZ'ð Z'ð Z'ð Z'ð Z'�9ñ Z'ô Z'ð Z'ðx2ð 2ð 2ð 2ð 2�|ñ 2ô 2ð 2ð<Pð Pð Pð Pð PˆIñ Pô Pð Pðdð ð ð ð ˆ=ñ ô ð ðð ð ð ð �ñ ô ð ðBð Bð Bð Bð B�ñ Bô Bð BðHS&ð S&ð S&ð S&ð S&˜Iñ S&ô S&ð S&ðj"ð "ð "ð "ð "�iñ "ô "ð "ð2ð 2ð 2ð 2ð 2ˆyñ 2ô 2ð 2ðhð ð ð ð ˆMñ ô ð ðKð Kð Kð Kð KˆIñ Kô Kð KðZ/ð /ð /ð /ð /ˆyñ /ô /ð /ðbð ð ð ð �=ñ ô ð ðSð Sð Sð Sð Sˆyñ Sô Sð Sðjgð gð gð gð gˆiñ gô gð gðR"ð "ð "ð "ð "ˆgñ "ô "ð "ð4"ð "ð "ð "ð "ˆwñ "ô "ð "ð<"ð "ð "ð "ð "�ñ "ô "ð "ðB@"ð @"ð @"ð @"ð @"ˆwñ @"ô @"ð @"ðDð ð ð ð ˆ=ñ ô ð ðð ð ð ð �-ñ ô ð ð!ð !ð !ð !ð !�;ñ !ô !ð !ð!ð !ð !ð !ð !�Mñ !ô !ð !ðð ð ð ð �-ñ ô ð ð5ð 5ð 5ð 5ð 5ˆYñ 5ô 5ð 5ðn'ð 'ð 'ð 'ð 'ˆfñ 'ô 'ð 'ð'ð 'ð 'ð 'ð '�ñ 'ô 'ð 'ðR\ð \ð \ð \ð \ñ \ô \ð \ð|?)ð ?)ð ?)ð ?)ð ?)ñ ?)ô ?)ð ?)ðB%/ð %/ð %/ðN,ð ,ð ,ð*^$ð ^$ð ^$ð ^$ð ^$ñ ^$ô ^$ð ^$ðB #ˆVÔ"Ñ$Ô$€
ð €Ø$.×$4Ò$4Ñ$6Ô$6ð ð Ñ €IÑ �˜Ø&×*Ò*¨7°R¸°HÑ=Ô=Ñ€Dˆ+Øˆ3ˆt�Y CÐ(Ñ(Ô(€DØ" KÐ/€N�7Ñà"ŸLšL™NœNð ð Ñˆ�&Ø!˜c +§/¢/°&¸"Ñ"=Ô"=¸xØðñ ô ˆ�FÑÐðð 
Ø	Ø	Ø	Ø	Ø	Ø	ðð Ð ð 
ˆ˜˜w¨Ñ	-Ô	-Ø	ˆ˜˜w¨Ñ	.Ô	.Ø	ˆ˜˜w¨Ñ	-Ô	-Ø	ˆ˜˜w¨Ñ	-Ô	-Ø	ˆ˜˜w¨Ñ	.Ô	.Ø	ˆ˜˜v tÑ	,Ô	,Ø	ˆ˜˜v uÑ	-Ô	-ðð €ð 
ˆ‰ŒØ	ˆ‰ŒØ	ˆ�%‰ŒØ	ˆ‰ŒØ	ˆ‰ŒØ	ˆ‰ŒØ	ˆ‰Œðð Ð ð ˜Ð-Ñ.Ô.Ð Ø × Ò Ø	ˆÑ	Ô	Ø	ˆ˜Ñ	Ô	Ø	Ð	Ñ	Ô	Ø	Ð	Ñ	Ô	ð	ð ñ ô ð ð ˆG‰IŒIØ	ˆ‰ŒØˆU‰WŒWØˆD‰FŒFð		ð 	€€€r>   