OwlCyberSecurity - MANAGER
Edit File: sre_parse.cpython-39.opt-2.pyc
a ����?�gK�����������������������@���s���d�dl�T�dZdZed�Zed�Zed�Zed�Zed�Zee e h�Zeee eeeeh�Zeed �feed �feed�feed�feed �feed�feed�feed�fd�Zeefeefeefeeefgfeeefgfeeefgfeeefgfeeefgfeeefgfeefd� Z e!e"e#e$e%e&e'e(d�Z)e&e"B�e(B�Z*e+e'B�Z,G�dd��de-�Z.G�dd��d�Z/G�dd��d�Z0G�dd��d�Z1dd��Z2dd��Z3d d!��Z4d"d#��Z5d2d%d&�Z6d'd(��Z7d)d*��Z8d3d,d-�Z9d.d/��Z:d0d1��Z;d+S�)4�����)�*z.\[{()*+?^$|z*+?{� 0123456789Z01234567Z0123456789abcdefABCDEFZ4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZz ���� � � ��\)z\a�\bz\fz\nz\rz\tz\vz\\) z\Ar���z\Bz\dz\Dz\sz\Sz\wz\Wz\Z)�i�L�m�s�x�a�t�uc�������������������@���s���e�Zd�ZdS�)�VerboseN)�__name__� __module__�__qualname__��r���r����./opt/alt/python39/lib64/python3.9/sre_parse.pyr���G���s���r���c�������������������@���sB���e�Zd�Zdd��Zedd���Zddd�Zdd ��Zd d��Zdd ��Z dS�)�Statec�����������������C���s$���d|�_�i�|�_d�g|�_d�|�_i�|�_d�S�)Nr���)�flags� groupdict�groupwidths�lookbehindgroups�grouprefpos��selfr���r���r����__init__L���s ����zState.__init__c�����������������C���s ���t�|�j�S��N)�lenr���r!���r���r���r����groupsR���s����zState.groupsNc�����������������C���sb���|�j�}|�j�d���|�j�tkr$td��|d�ur^|�j�|d��}|d�urTtd|||f���||�j|<�|S�)Nztoo many groupsz7redefinition of group name %r as group %d; was group %d)r&���r����append� MAXGROUPS�errorr����get)r"����name�gid�ogidr���r���r���� opengroupU���s���� � zState.opengroupc�����������������C���s���|����|�j|<�d�S�r$���)�getwidthr���)r"���r,����pr���r���r���� closegroupa���s����zState.closegroupc�����������������C���s���||�j�k�o|�j|�d�uS�r$���)r&���r���)r"���r,���r���r���r���� checkgroupc���s����zState.checkgroupc�����������������C���s6���|�j�d�ur2|��|�s|�d��||�j�kr2|�d��d�S�)N�cannot refer to an open groupz?cannot refer to group defined in the same lookbehind subpattern)r���r2���r)���)r"���r,����sourcer���r���r����checklookbehindgroupf���s ���� zState.checklookbehindgroup)N) r���r���r���r#����propertyr&���r.���r1���r2���r5���r���r���r���r���r���J���s��� r���c�������������������@���s`���e�Zd�Zddd�Zddd�Zdd��Zd d ��Zdd��Zd d��Zdd��Z dd��Z dd��Zdd��ZdS�)� SubPatternNc�����������������C���s"���||�_�|d�u�rg�}||�_d�|�_d�S�r$���)�state�data�width)r"���r8���r9���r���r���r���r#���p���s ����zSubPattern.__init__r���c�����������������C���s���d}t�tf}|�jD��]t\}}t|d�t|��dd��|tu�rlt���|D�]"\}}t|d�d�t|��|��qFq|tu�r�t���t|d��D�]*\}}|r�t|d�d���|�|d���q�q|t u��r|\}} } td|��| �|d���| �r�t|d�d���| �|d���qt ||��r~d}|D�]T}t |t��rJ|�s6t���|�|d���d}n"|�s\td dd��t|dd��d}�q|�s�t���qtd|��qd�S�) NTz ��)�end�����OR�ELSEF� )�tuple�listr9����print�str�IN�BRANCH� enumerate�dump�GROUPREF_EXISTS� isinstancer7���)r"����level�nl�seqtypes�op�avr���r ���� condgroup�item_yes�item_nor���r���r���rH���w���sH���� zSubPattern.dumpc�����������������C���s ���t�|�j�S�r$���)�reprr9���r!���r���r���r����__repr__����s����zSubPattern.__repr__c�����������������C���s ���t�|�j�S�r$���)r%���r9���r!���r���r���r����__len__����s����zSubPattern.__len__c�����������������C���s���|�j�|=�d�S�r$����r9����r"����indexr���r���r����__delitem__����s����zSubPattern.__delitem__c�����������������C���s&���t�|t�rt|�j|�j|��S�|�j|�S�r$���)rJ����slicer7���r8���r9���rW���r���r���r����__getitem__����s���� zSubPattern.__getitem__c�����������������C���s���||�j�|<�d�S�r$���rV����r"���rX����coder���r���r����__setitem__����s����zSubPattern.__setitem__c�����������������C���s���|�j��||��d�S�r$���)r9����insertr\���r���r���r���r_�������s����zSubPattern.insertc�����������������C���s���|�j��|��d�S�r$���)r9���r'���)r"���r]���r���r���r���r'�������s����zSubPattern.appendc����������� ������C���s���|�j�d�ur|�j�S�d�}}|�jD��]�\}}|tu�r|td�}d}|d�D�]$}|���\}}t||�}t||�}qD||�}||�}q|tu�r�|���\}}||�}||�}q|tu�r�|d����\}}||�}||�}q|t v��r|d����\}}|||d���}|||d���}q|t v��r$|d�}|d�}q|tu��rP|�jj |�\}}||�}||�}q|tu��r�|d����\}}|d�d�u�r�|d����\}}t||�}t||�}nd}||�}||�}q|tu�r��q�qt|td��t|t�f|�_�|�j�S�)Nr���r=����������)r:���r9���rF���� MAXREPEATr/����min�max�CALL� SUBPATTERN�_REPEATCODES� _UNITCODES�GROUPREFr8���r���rI����SUCCESS) r"����lo�hirN���rO���r ����j�l�hr���r���r���r/�������sZ���� zSubPattern.getwidth)N)r���) r���r���r���r#���rH���rT���rU���rY���r[���r^���r_���r'���r/���r���r���r���r���r7���n���s��� (r7���c�������������������@���sb���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Ze d d���Z dd��Zdd��Zddd�Z dS�)� Tokenizerc�����������������C���s@���t�|t�|�_||�_|�js"t|d�}||�_d|�_d�|�_|�����d�S�)N�latin1r���)rJ���rD����istext�string�decoded_stringrX����next�_Tokenizer__next)r"���rs���r���r���r���r#�������s���� zTokenizer.__init__c�����������������C���s����|�j�}z|�j|�}W�n�ty.���d�|�_Y�d�S�0�|dkr�|d7�}z||�j|�7�}W�n,�ty~���td|�jt|�j�d��d��Y�n0�|d�|�_�||�_d�S�)Nr���r=���zbad escape (end of pattern))rX���rt���� IndexErrorru���r)���rs���r%���)r"���rX����charr���r���r����__next����s$������ zTokenizer.__nextc�����������������C���s���||�j�kr|�����dS�dS�)NTF�ru���rv���)r"���rx���r���r���r����match����s���� zTokenizer.matchc�����������������C���s���|�j�}|�����|S�r$���rz���)r"����thisr���r���r���r*�������s����z Tokenizer.getc�����������������C���s8���d}t�|�D�]&}|�j}||vr"�q4||7�}|�����q|S��Nr;���)�rangeru���rv���)r"����n�charset�result�_�cr���r���r����getwhile��s���� zTokenizer.getwhilec�����������������C���sl���d}|�j�}|�����|d�u�r@|s,|��d|���|��d|�t|���||kr^|sh|��d|�d��qh||7�}q|S�)Nr;���zmissing zmissing %s, unterminated namer=���)ru���rv���r)���r%���)r"���� terminatorr+���r����r����r���r���r����getuntil��s���� � zTokenizer.getuntilc�����������������C���s���|�j�t|�jpd��S�r}����rX���r%���ru���r!���r���r���r����pos��s����z Tokenizer.posc�����������������C���s���|�j�t|�jpd��S�r}���r����r!���r���r���r����tell��s����zTokenizer.tellc�����������������C���s���||�_�|�����d�S�r$���)rX���rv���rW���r���r���r����seek!��s����zTokenizer.seekr���c�����������������C���s���t�||�j|����|��S�r$���)r)���rs���r����)r"����msg�offsetr���r���r���r)���%��s����zTokenizer.errorN)r���)r���r���r���r#���rv���r{���r*���r����r����r6���r����r����r����r)���r���r���r���r���rp�������s��� rp���c�������������� ���C���s���t��|�}|r|S�t�|�}|r0|d�tu�r0|S��zL|dd��}|dkr�||��dt�7�}t|�dkrx|��d|�t|���tt |dd���d�fW�S�|dkr�|�j r�||��dt�7�}t|�d kr�|��d|�t|���tt |dd���d�fW�S�|d k�rN|�j �rN||��dt�7�}t|�dk�r*|��d|�t|���t |dd���d�}t|��t|fW�S�|d k�r�|�j �r�dd�l}|�� d��s~|��d��|��dd�}zt|�|��}W�n4�ttf�y����|��d|�t|�td����Y�n0�t|fW�S�|tv��r0||��dt�7�}t |dd���d�}|dk�r&|��d|�t|���t|fW�S�|tv��r>t�t|�dk�r||tv��rj|��d|�t|���tt|d��fW�S�W�n�t�y����Y�n0�|��d|�t|���d�S�)Nr���r=���ra���r��������incomplete escape %s����r��������U����� ����N�{� missing {�}�character name�undefined character name %r�\N{}�����.octal escape value %s outside of range 0-0o377� bad escape %s)�ESCAPESr*���� CATEGORIESrE���r����� HEXDIGITSr%���r)����LITERAL�intrr����chr�unicodedatar{���r�����ord�lookup�KeyError� TypeError� OCTDIGITS�DIGITS� ValueError�ASCIILETTERS)r4����escaper]���r����r�����charnamer���r���r���� _class_escape(��sp���� � �� r����c�������������� ���C���sf��t��|�}|r|S�t�|�}|r$|S��z|dd��}|dkr�||��dt�7�}t|�dkrl|��d|�t|���tt|dd���d�fW�S�|dkr�|�j r�||��dt�7�}t|�dkr�|��d|�t|���tt|dd���d�fW�S�|d k�rB|�j �rB||��d t�7�}t|�dk�r|��d|�t|���t|dd���d�}t |��t|fW�S�|dk�r�|�j �r�d d�l}|��d��sr|��d��|�� dd�}zt|�|��}W�n4�ttf�y����|��d|�t|�td����Y�n0�t|fW�S�|dk�r||��dt�7�}tt|dd���d �fW�S�|tv��r�|�jtv��r�||����7�}|d�tv��r�|d�tv��r�|�jtv��r�||����7�}t|dd���d �}|dk�r�|��d|�t|���t|fW�S�t|dd����}||jk��r�|�|��s�|��dt|���|�||���t|fW�S�|��d|�t|�d���t|�dk�r6|tv��r$|��d|�t|���tt|d��fW�S�W�n�t�yL���Y�n0�|��d|�t|���d�S�)Nr=���ra���r���r����r����r����r���r����r����r����r����r����r���r����r����r����r����r����r�����0r����r����r3����invalid group reference %dr����)r����r*���r����r����r����r%���r)���r����r����rr���r����r����r{���r����r����r����r����r����r����r����ru���r&���r2���r5���ri���r����r����)r4���r����r8���r]���r����r����r�����groupr���r���r����_escaped��s����� � � �� � r����c�����������������C���s���t�t�|���S�r$���)rB����dict�fromkeys)�itemsr���r���r����_uniq���s����r����c�����������������C���sV��g�}|j�}|�j}|����}|t|�|||d�|�o2|����|d�sqDqt|�dkrX|d�S�t|�}d�} |D�].} | st�q�| d�u�r�| d�} qh| d�| krh�q�qh|D�] } | d=�q�|��| ��q`q�q`g�}|D�]h} t| �dkr���q@| d�\}} |tu�r�|��|| f��q�|tu��r"| d�d�tu�r"|� | ��q���q@q�|��tt |�f��|S�|��td�|ff��|S�)Nr=����|r���)r'���r{���r�����_parser%���r7���r����rE����NEGATE�extendr����rF���)r4���r8����verbose�nestedr�����itemsappend�sourcematch�start� subpattern�prefix�item�setrN���rO���r���r���r���� _parse_sub���sN���� � r����Fc�����������/��� ���C���s���t�|�}|j}|�j}|�j}t} t} |�j}|d�u�r4�qR|dv�r@�qR|���|rx|tv�rTq"|dkrx|��}|d�u�sv|dkr\q"q\q"|d�dkr�t|�||�}||��q"|t vr�|t | |�f��q"|dk�r�|����d�} g�}|j}|�jdk�rdd�l}|j d|�����t|d �d ��|d�}|��}|d�u��r0|��d|����| ���|d k�rF|�rF�qbn�|d�dk�r`t|�|�}n~|�r�|dv��r�|�j|k�r�dd�l}|j d|dk�r�dn|dk�r�dn|dk�r�dnd|����d�f�t|d �d ��t | |�f}|d��r<|��}|d�u��r|��d|����| ���|d k�rL|d�tu��r0|d�d�}||��|t | d�f���qb|d�dk�rft|�|�}n>|dk�r�dd�l}|j d|����d��t|d �d ��t | |�f}|d�t k�s�|d�t k�r�d||f�}|��|t|�d�t|����|d�}|d�}||k��r*d||f�}|��|t|�d�t|����|t||ff��n"|d�tu��rV|d�d�}||���qt|�}| |�dk�r�|d�d�t u��r�|�r�|t|d�d�f��n||d���n"|�r�|�dtd�f��|t|f��q"|tv��r.|����} |dk�r�d\}}�nB|dk�rdt�}}�n*|dk�r0dt�}}�n|dk�r4|�jdk�rX|t | |�f��q"dt�}}d �}}|�jtv��r�||��7�}�qj|d!��r�|�jtv��r�||��7�}�q�n|}|d��s�|t | |�f��|��| ��q"|�r�t|�}|tk�r�td"��|�rBt|�}|tk�rtd"��||k��rB|��d#|����| ���ntd$|f���|�rV|d%d���}nd�}|�rr|d�d�tu��r�|��d&|����| �t|����|d�d�tv��r�|��d'|����| �t|����|d�d�t u��r�|d�d�\}}}}|d�u��r�|�s�|�s�|}|d��rt!|||ff|d%<�nt"|||ff|d%<�q"|d(k�rF|t#d�f��q"|d)k�r|����d�} d*}d�}!d}d}|d��rB|��}|d�u��r�|��d+��|d,k�r�|d-��r�|��$d.d/�}!|!�%���s�d0|!�}|��|t|!�d���n�|d1��r�|��$d2d/�}!|!�%���sd0|!�}|��|t|!�d���|j&�|!�}"|"d�u��rFd3|!�}|��|t|!�d���|�'|"��sf|��d4t|!�d���|�(|"|���|t)|"f��q"n2|��}|d�u��r�|��d+��|��d5|�t|�d����n�|d6k�r�d�}�nx|dk�r|�jd�u��r�|��d7|����| ���|��d2k�r�q"�q�q"�n6|d8v��r�d}#|d-k�r||��}|d�u��r>|��d+��|d9v�r`|��d:|�t|�d���d%}#|j*}$|$d�u��r||j+|_*t,|�|||d��}|#dk��r�|$d�u��r�d�|_*|d2��s�|��d;|����| ���|d1k�r�|t-|#|ff��q"|t.|#|ff��q"�nJ|d)k� r�|��$d2d/�}%|%�%��� rL|j&�|%�}&|&d�u�� r�d3|%�}|��|t|%�d���n�zt|%�}&|&dk�� rdt/�W�n2�t/� y����d0|%�}|��|t|%�d��d��Y�n0�|&� s�|��d<t|%�d���|&t0k� r�d=|&�}|��|t|%�d���|&|j1v� r�|����t|%��d�|j1|&<�|�(|&|���t2|�|||d��}'|��d>�� rTt2|�|||d��}(|�jd>k� rX|��d?��nd�}(|��d2�� sx|��d;|����| ���|t3|&|'|(ff��q"n�|t4v�� s�|dk�r*t5|�||�})|)d�u��r|� r�|�rdd�l}|j d@|�j6d�dA��t|�j6�dAk� r�dBnd | f�t7|d �d ��|j8t9@�r"|s"t:�q"|)\}}d�}n|��dC|�t|�d���|d�u�r�z|�;|!�}W�n>�t�y��}*�z$|��|*j<t|!�d��d��W�Y�d�}*~*n d�}*~*0�0�|�s�|t9@��o�|t9@��}+t,|�||+|d��}|��d2��s�|��d;|����| ���|d�u�r�|�=||��|t ||||ff��q"|dk�r*|tt>f��q"|dDk�rB|tt?f��q"tdE|f���q"t@t|��d�d�d%��D�]N},||,�\}-}.|-t u��rh|.\}}}}|d�u��rh|�sh|�sh|||,|,d��<��qh|S�)FNz|)�#r���r���r����[r=���z"Possible nested set at position %dr����)� stacklevel�^zunterminated character set�]z-&~|zPossible set %s at position %d�-� difference�&�intersection�~zsymmetric difference�unionz&Possible set difference at position %dra���zbad character range %s-%s�?)r���r=���r����+r����r����r;����,z"the repetition number is too largez"min repeat greater than max repeatzunsupported quantifier %rr`���znothing to repeatzmultiple repeat�.�(Tzunexpected end of pattern�P�<�>� group name�bad character in group name %r�=�)�unknown group name %rr3���zunknown extension ?P�:zmissing ), unterminated commentz=!<z=!zunknown extension ?<z"missing ), unterminated subpatternzbad group numberr����r����z/conditional backref with more than two branchesz@Flags not at the start of the expression %r%s but at position %d����z (truncated)zunknown extension ?�$z unsupported special character %r)Ar7���r'���r*���r{���r%���r����ru���� WHITESPACEr����� SPECIAL_CHARSr����r�����warnings�warn� FutureWarningr)���r����rE����RANGEr�����NOT_LITERALr_���r�����REPEAT_CHARSrb���r����r����r����� OverflowError�AssertionError�ATrg���rf���� MIN_REPEAT� MAX_REPEAT�ANYr�����isidentifierr���r2���r5���ri���r���r&���r�����ASSERT� ASSERT_NOTr����r(���r ���r����rI����FLAGS�_parse_flagsrs����DeprecationWarningr����SRE_FLAG_VERBOSEr���r.���r����r1����AT_BEGINNING�AT_ENDr~���)/r4���r8���r����r�����firstr�����subpatternappend� sourcegetr�����_len�_ordr|���r]����herer����� setappendr�����negate�code1�that�code2r����rk���rl���rc���rd���rx���r����r����� add_flags� del_flagsr0���r����r+���r,����dirr����condnamerP���rQ���rR���r����err�sub_verboser ���rN���rO���r���r���r���r�������s~��� � � �� � �� ��� � � � � � � � � ��� � .� � r����c�����������������C���s���|�j�}d}d}|dkr�t|�}|�jr<|dkrRd}|��|��n|dkrRd}|��|��||O�}|t@�r||t@�|kr|d}|��|��|��}|d�u�r�|��d��|d v�r�q�|tvr|���r�d nd}|��|t|���q|dkr�|�j|O��_d�S�|t@�r�|��dd ��|dk�r�|��}|d�u��r|��d��|tv�rF|����r2d nd}|��|t|���t|�}|t@��rfd}|��|��||O�}|��}|d�u��r�|��d��|dk�r��q�|tv�rF|����r�d nd}|��|t|����qF|t@��r�|��dd ��||@��r�|��dd ��||fS�)Nr���r����r���z8bad inline flags: cannot use 'L' flag with a str patternr���z:bad inline flags: cannot use 'u' flag with a bytes patternz9bad inline flags: flags 'a', 'u' and 'L' are incompatiblezmissing -, : or )z)-:zunknown flagr����z,bad inline flags: cannot turn on global flagr=���zmissing flagz8bad inline flags: cannot turn off flags 'a', 'u' and 'L'z missing :r����z-bad inline flags: cannot turn off global flagz(bad inline flags: flag turned on and off) r*���r����rr���r)���� TYPE_FLAGS�isalphar%���r����GLOBAL_FLAGS)r4���r8���rx���r����r��r���flagr����r���r���r���r����d��sl���� r����c�����������������C���sj���t�|�t�r>|t@�rtd��|t@�s,|tO�}qf|t@�rftd��n(|t@�rNtd��|t@�rf|t@�rftd��|S�)Nz)cannot use LOCALE flag with a str patternz(ASCII and UNICODE flags are incompatiblez,cannot use UNICODE flag with a bytes patternz'ASCII and LOCALE flags are incompatible)rJ���rD����SRE_FLAG_LOCALEr�����SRE_FLAG_ASCII�SRE_FLAG_UNICODE)�srcr���r���r���r���� fix_flags���s���� r��Nc�����������������C���s����t�|��}|d�u�rt��}||_|�|_zt|||t@�d�}W�n@�tyx���t��}|tB�|_|�|_|�d��t||dd�}Y�n0�t|�|j j�|j _|j d�ur�|�d��|j jD�],}||j j kr�d|�}t||�|j j|���q�|t@�r�|����|S�)Nr���Tzunbalanced parenthesisr����)rp���r���r���rD���r����r����r���r����r��r8���ru���r)���r ���r&����SRE_FLAG_DEBUGrH���)rD���r���r8���r4���r0����gr����r���r���r����parse���s.���� r��c��������������������s���t�|����j}g���g��g���j}������fdd�}�j}|��}|d�u�rL�q�|d�dk�r�|d�}|dk�rFd}��d�s���d ����d d�}|���r�z||�} W�n�ty����t d|���Y�n0�njzt |�} | dk�r�t�W�n.�t�y�����d |�t|�d��d��Y�n0�| t k�r0��d| �t|�d���|| t|�d����q�|dk�r��jtv��r|||��7�}�jtv��r|||��7�}|tt |dd���d�d@�����q�|tv��rVd} �jtv��r0||��7�}|tv��r0|d�tv��r0�jtv��r0||��7�}d} t |dd���d�}|dk�r$��d|�t|���|t|���| �s�|t |dd����t|�d���nPztt|�d��}W�n2�t�y����|tv��r���d|�t|���Y�n0�||��q:||��q:��rȈ�d�����t|�t��s�dd���D������fS�)Nc��������������������sX���|��j�kr��d|��|���r8��d������d�d��=����t��|�f����d���d�S�)Nr����r;���)r&���r)���r'����joinr%���)rX���r�����r&����literal�literalsr���r8���r���r����addgroup���s���� z parse_template.<locals>.addgroupr���r���r=���r��r;���r����z missing <r����r����r����r����r����r����r����r����Fra���Tr����r����c�����������������S���s"���g�|�]}|d�u�rd�n|��d��qS�)Nzlatin-1)�encode)�.0r���r���r���r���� <listcomp>'�������z"parse_template.<locals>.<listcomp>)rp���r*���r'���� groupindexr{���r)���r����r����r����rw���r����r����r%���r(���ru���r����r����r����r����r����r��rJ���rD���)r4���r8����sget�lappendr��r��r|���r����r+���rX����isoctalr���r��r����parse_template���s����� �� � " � �� r"��c�����������������C���st���|j�}|jd�d��}|�\}}|d�d���}z"|D�]\}}||�p@|||<�q.W�n�tyh���td|���Y�n0�|�|�S�)Nr���r����)r����rs���rw���r)���r��)�templater{���r���emptyr&���r��rX���r����r���r���r����expand_template*��s����r%��)F)r���N)<� sre_constantsr����r����� frozensetr����r����r����r����r����r����r����rg���r����r����rE���r����r�����CATEGORYrh���r����r����r����ZAT_BEGINNING_STRINGZAT_BOUNDARYZAT_NON_BOUNDARYZCATEGORY_DIGITZCATEGORY_NOT_DIGITZCATEGORY_SPACEZCATEGORY_NOT_SPACEZ CATEGORY_WORDZCATEGORY_NOT_WORDZ AT_END_STRINGr�����SRE_FLAG_IGNORECASEr ���SRE_FLAG_MULTILINE�SRE_FLAG_DOTALLr����r���SRE_FLAG_TEMPLATEr��r����r ��r��r��� Exceptionr���r���r7���rp���r����r����r����r����r����r����r��r��r"��r%��r���r���r���r����<module>���sp��� ��� $rH<M: ��x< %U