Ë
    >²XjëD  ã            	       ó  — d Z ddlZddlZddlZddlZddlmZ ddlm	Z	m
Z
mZmZmZmZmZmZmZ dZdej$                  dej$                  fd„Zd	edej*                  e   fd
„Z ej.                  dej0                  ¬«      Z ej.                  d«      Z ej.                  d«      Z ej.                  d«      Z ej.                  d«      Z ej.                  d«      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  e"d$d%«      ‘ e"d&d%«      ‘ e"d'd%«      ‘ e"d(d%«      ‘ e"d)d*«      ‘ e"d+d*«      ‘ e"d,d*«      ‘ e"d-d*«      ‘ e"d.d/«      ‘ e"d0d/«      ‘ e#d1d2«      ‘ e#d3d2«      ‘ e#d4d5«      ‘ e#d6d5«      ‘ e"d7d8«      ‘ e"d9d8«      ‘ e$d:d;«      ‘ e$d<d;«      ‘ e%d=d>«      ‘ e%d?d>«      ‘ e'd@dA«      ‘ e'dBdA«      ‘ edCdD«      ‘ edEdD«      ‘ edFdG«      ‘ edHdG«      ‘ edIdJ«      ‘ edKdJ«      ‘ edLdM«      ‘ edNdM«      ‘ e&dOdP«      ‘Z( G dQ„ dR«      Z)dSej*                  e   de	fdT„Z*ejV                  dUfdVe	dWedXedefdY„Z,y)[z_Numpydoc-style docstring parsing.

:see: https://numpydoc.readthedocs.io/en/latest/format.html
é    N)Údedenté   )	Ú	DocstringÚDocstringDeprecatedÚDocstringExampleÚDocstringMetaÚDocstringParamÚDocstringRaisesÚDocstringReturnsÚDocstringStyleÚRenderingStyleÚiterableÚreturnc                 óz   — t        j                  | «      \  }}t        |d «       t        j                  |||¬«      S )N)Ú	fillvalue)Ú	itertoolsÚteeÚnextÚzip_longest)r   ÚendÚleftÚrights       ú_/var/www/html/content_generation/venv/lib/python3.12/site-packages/docstring_parser/numpydoc.pyÚ	_pairwiser      s3   € Ü—-‘- Ó)�K€Dˆ%Üˆ�ÔÜ× Ñ   u¸Ô<Ð<ó    Ústringc                 óD   — | j                  «       } t        | «      dkD  r| S y )Nr   )ÚstripÚlen)r   s    r   Ú
_clean_strr       s    € Ø�\‰\‹^€FÜ
ˆ6ƒ{�Q‚ØˆØr   z	^[^\s].*$©Úflagsz(^(?P<name>.*?)(?:\s*:\s*(?P<type>.*?))?$z)(?P<type>.*?)(?:, optional|\(optional\))$zI(?P<type>.*?)(?:, default|\(default\))(?: | |=| = |= |: |)*(?P<value>.*)$z`(?<!\S)[Dd]efault(?:s to |(?:\s*(?:is|[=:])\s*|\s+))(?P<value>(?:['\"]).*?(?:['\"])|[\w\-\.]*\w)z(^(?:(?P<name>.*?)\s*:\s*)?(?P<type>.*?)$c                   ód   — e Zd ZdZdededdfd„Zedefd„«       Zdedej                  e
   fd	„Zy)
ÚSectiona‡  Numpydoc section parser.

    :param title: section title. For most sections, this is a heading like
                  "Parameters" which appears on its own line, underlined by
                  en-dashes ('-') on the following line.
    :param key: meta key string. In the parsed ``DocstringMeta`` instance this
                will be the first element of the ``args`` attribute list.
    ÚtitleÚkeyr   Nc                 ó    — || _         || _        y ©N)r%   r&   )Úselfr%   r&   s      r   Ú__init__zSection.__init__I   s   € ØˆŒ
Øˆ�r   c                 óX   — dt        | j                  «      z  }d| j                  › d|› d�S )z§Regular expression pattern matching this section's header.

        This pattern will match this instance's ``title`` attribute in
        an anonymous group.
        Ú-z^(z)\s*?\nz\s*$)r   r%   )r)   Údashess     r   Útitle_patternzSection.title_patternM   s/   € ð ”s˜4Ÿ:™:“Ñ&ˆØ�T—Z‘Z�L ¨ x¨tÐ4Ð4r   Útextc              #   óR   K  — t        | j                  gt        |«      ¬«      –— y­w)zÁParse ``DocstringMeta`` objects from the body of this section.

        :param text: section body text. Should be cleaned with
                     ``inspect.cleandoc`` before parsing.
        )ÚdescriptionN)r   r&   r    )r)   r/   s     r   ÚparsezSection.parseW   s    è ø€ ô ˜TŸX™X˜J´J¸tÓ4DÔEÓEùs   ‚%')Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr*   Úpropertyr.   ÚTÚIterabler   r2   © r   r   r$   r$   ?   s[   „ ñð˜cð ¨ð °ó ð ð5˜sò 5ó ð5ðF˜#ð F !§*¡*¨]Ñ";ô Fr   r$   c                   óN   — e Zd ZdZdededefd„Zdedej                  e   fd„Z	y)	Ú
_KVSectionzÚBase parser for numpydoc sections with key-value syntax.

    E.g. sections that look like this:
        key
            value
        key2 : type
            values can also span...
            ... multiple lines
    r&   Úvaluer   c                  ó   — y r(   r;   ©r)   r&   r>   s      r   Ú_parse_itemz_KVSection._parse_itemk   s   € Ør   r/   c              #   ó  K  — t        t        j                  |«      «      D ]d  \  }}|j                  «       }|�|j	                  «       nd }||| }| j                  |j                  «       t        j                  |«      ¬«      –— Œf y ­w)N)r&   r>   )	r   ÚKV_REGEXÚfinditerr   ÚstartrA   ÚgroupÚinspectÚcleandoc)r)   r/   ÚmatchÚ
next_matchrE   r   r>   s          r   r2   z_KVSection.parsen   s   è ø€ Ü!*¬8×+<Ñ+<¸TÓ+BÖ!CÑˆE�:Ø—I‘I“KˆEØ(2Ð(>�*×"Ñ"Ô$ÀDˆCØ˜˜s�OˆEØ×"Ñ"Ø—K‘K“M¬×)9Ñ)9¸%Ó)@ð #ó ó ñ	 "Dùs   ‚BB	N)
r3   r4   r5   r6   r7   r   rA   r9   r:   r2   r;   r   r   r=   r=   `   s=   „ ñð˜sð ¨3ð °=ó ð˜#ð  !§*¡*¨]Ñ";ô r   r=   c                   ó&   — e Zd ZdZedefd„«       Zy)Ú_SphinxSectionz®Base parser for numpydoc sections with sphinx-style syntax.

    E.g. sections that look like this:
        .. title:: something
            possibly over multiple lines
    r   c                 ó"   — d| j                   › d�S )Nz	^\.\.\s*(z)\s*::)r%   ©r)   s    r   r.   z_SphinxSection.title_pattern€   s   € à˜DŸJ™J˜< vÐ.Ð.r   N)r3   r4   r5   r6   r8   r7   r.   r;   r   r   rL   rL   x   s"   „ ñð ð/˜sò /ó ñ/r   rL   c                   ó$   — e Zd ZdZdededefd„Zy)ÚParamSectionzíParser for numpydoc parameter sections.

    E.g. any section that looks like this:
        arg_name
            arg_description
        arg_2 : type, optional
            descriptions can also span...
            ... multiple lines
    r&   r>   r   c                 ó  — t         j                  |«      }d x}x}x}}|�Œ|j                  d«      }|j                  d«      }|�ht        j                  |«      }|�|j                  d«      }d}nd}t        j                  |«      }	|	�$d}|	j                  d«      }|	j                  d«      }t        |«      dkD  r*|€(t        j                  |«      }	|	�|	j                  d«      }t        | j                  |gt        |«      ||||¬«      S )NÚnameÚtypeTFr>   r   )Úargsr1   Úarg_nameÚ	type_nameÚis_optionalÚdefault)ÚPARAM_KEY_REGEXrI   rF   ÚPARAM_OPTIONAL_REGEXÚPARAM_DEFAULT_REGEXr   ÚPARAM_DEFAULT_REGEX_IN_DESCÚsearchr	   r&   r    )
r)   r&   r>   rI   rU   rV   rW   rX   Úoptional_matchÚdefault_matchs
             r   rA   zParamSection._parse_item�   s  € Ü×%Ñ% cÓ*ˆØ7;Ð;ˆÐ;�9Ð;˜{¨WØÐØ—{‘{ 6Ó*ˆHØŸ™ FÓ+ˆIØÐ$Ü!5×!;Ñ!;¸IÓ!F�Ø!Ð-Ø .× 4Ñ 4°VÓ <�IØ"&‘Kà"'�Kä 3× 9Ñ 9¸)Ó D�Ø Ð,Ø"&�KØ -× 3Ñ 3°FÓ ;�IØ+×1Ñ1°'Ó:�Gô ˆu‹:˜Š>˜g˜oÜ7×>Ñ>¸uÓEˆMØÐ(Ø'×-Ñ-¨gÓ6�äØ—(‘(˜HÐ%Ü" 5Ó)ØØØ#Øô
ð 	
r   N)r3   r4   r5   r6   r7   r	   rA   r;   r   r   rP   rP   …   s!   „ ñð"
˜sð "
¨3ð "
°>ô "
r   rP   c                   ó$   — e Zd ZdZdededefd„Zy)ÚRaisesSectionz¡Parser for numpydoc raises sections.

    E.g. any section that looks like this:
        ValueError
            A description of what might raise ValueError
    r&   r>   r   c                 ór   — t        | j                  |gt        |«      t        |«      dkD  r|¬«      S d ¬«      S )Nr   )rT   r1   rV   )r
   r&   r    r   r@   s      r   rA   zRaisesSection._parse_item½   s>   € ÜØ—(‘(˜C�Ü" 5Ó)Ü  ›X¨š\�cô
ð 	
ð 04ô
ð 	
r   N)r3   r4   r5   r6   r7   r
   rA   r;   r   r   ra   ra   µ   s!   „ ñð
˜sð 
¨3ð 
°?ô 
r   ra   c                   ó(   — e Zd ZdZdZdededefd„Zy)ÚReturnsSectionzñParser for numpydoc returns sections.

    E.g. any section that looks like this:
        return_name : type
            A description of this returned value
        another_type
            Return names are optional, types are required
    Fr&   r>   r   c                 óÚ   — t         j                  |«      }|�#|j                  d«      }|j                  d«      }nd }d }t        | j                  gt        |«      || j                  |¬«      S )NrR   rS   )rT   r1   rV   Úis_generatorÚreturn_name)ÚRETURN_KEY_REGEXrI   rF   r   r&   r    rf   )r)   r&   r>   rI   rg   rV   s         r   rA   zReturnsSection._parse_itemÑ   sk   € Ü ×&Ñ& sÓ+ˆØÐØŸ+™+ fÓ-ˆKØŸ™ FÓ+‰IàˆKØˆIäØ—(‘(�Ü" 5Ó)ØØ×*Ñ*Ø#ô
ð 	
r   N)r3   r4   r5   r6   rf   r7   r   rA   r;   r   r   rd   rd   Å   s)   „ ñð €Lð
˜sð 
¨3ð 
Ð3Cô 
r   rd   c                   ó   — e Zd ZdZdZy)ÚYieldsSectionz0Parser for numpydoc generator "yields" sections.TN)r3   r4   r5   r6   rf   r;   r   r   rj   rj   ã   s
   „ Ù:à�Lr   rj   c                   ó:   — e Zd ZdZdedej                  e   fd„Zy)ÚDeprecationSectionz3Parser for numpydoc "deprecation warning" sections.r/   r   c              #   óÊ   K  — |j                  dd¬«      d d gz   ^}}}|�t        t        j                  |«      «      }t	        | j
                  g|t        |«      ¬«      –— y ­w)NÚ
r   )ÚsepÚmaxsplit)rT   r1   Úversion)Úsplitr    rG   rH   r   r&   )r)   r/   rq   ÚdescÚ_s        r   r2   zDeprecationSection.parseì   sb   è ø€ Ø ŸJ™J¨4¸!˜JÓ<ÀÀd¸|ÑKÐˆ�˜àÐÜœg×.Ñ.¨tÓ4Ó5ˆDä!Ø—(‘(�¨´zÀ'Ó7Jô
ó 	
ùs   ‚A!A#N)	r3   r4   r5   r6   r7   r9   r:   r   r2   r;   r   r   rl   rl   é   s"   „ Ù=ð
˜#ð 
 !§*¡*Ð-@Ñ"Aô 
r   rl   c                   ó:   — e Zd ZdZdedej                  e   fd„Zy)ÚExamplesSectiona·  Parser for numpydoc examples sections.

    E.g. any section that looks like this:
        >>> import numpy.matlib
        >>> np.matlib.empty((2, 2))    # filled with random data
        matrix([[  6.76425276e-320,   9.79033856e-307], # random
                [  7.39337286e-309,   3.22135945e-309]])
        >>> np.matlib.empty((2, 2), dtype=int)
        matrix([[ 6600475,        0], # random
                [ 6586976, 22740995]])
    r/   r   c              #   óÐ  K  — t        |«      j                  «       j                  «       }|r¹g }g }|r8|d   j                  d«      sn#|j	                  |j                  d«      «       |rŒ8|r8|d   j                  d«      rn#|j	                  |j                  d«      «       |rŒ8t        | j                  g|rdj                  |«      nddj                  |«      ¬«      –— |rŒ¸yy­w)zÄParse ``DocstringExample`` objects from the body of this section.

        :param text: section body text. Should be cleaned with
                     ``inspect.cleandoc`` before parsing.
        r   z>>>rn   N)Úsnippetr1   )	r   r   Ú
splitlinesÚ
startswithÚappendÚpopr   r&   Újoin)r)   r/   ÚlinesÚsnippet_linesÚdescription_liness        r   r2   zExamplesSection.parse  sÓ   è ø€ ô �t“×"Ñ"Ó$×/Ñ/Ó1ˆÙØˆMØ "ÐÙØ˜Q‘x×*Ñ*¨5Ô1ØØ×$Ñ$ U§Y¡Y¨q£\Ô2ò ñ Ø˜‘8×&Ñ& uÔ-ØØ!×(Ñ(¨¯©°1«Ô6ò ô #Ø—‘�
Ù4A˜Ÿ	™	 -Ô0ÀtØ ŸI™IÐ&7Ó8ôò ô ùs   ‚A'C&Á*9C&Â$?C&Ã$C&N)	r3   r4   r5   r6   r7   r9   r:   r   r2   r;   r   r   rv   rv   ÷   s#   „ ñ
ð˜#ð  !§*¡*¨]Ñ";ô r   rv   Ú
ParametersÚparamÚParamsÚ	ArgumentsÚArgsúOther ParametersÚother_paramzOther ParamszOther Argumentsz
Other ArgsÚReceivesÚreceivesÚReceiveÚRaisesÚraisesÚRaiseÚWarnsÚwarnsÚWarnÚ
AttributesÚ	attributeÚ	AttributeÚReturnsÚreturnsÚReturnÚYieldsÚyieldsÚYieldÚExamplesÚexamplesÚExampleÚWarningsÚwarningsÚWarningzSee AlsoÚsee_alsoÚRelatedÚNotesÚnotesÚNoteÚ
ReferencesÚ
referencesÚ	ReferenceÚ
deprecatedÚdeprecationc                   ó’   — e Zd ZdZddej
                  ej                  eef      fd„Z	d„ Z
defd„Zdej
                  e   d	efd
„Zy)ÚNumpydocParserz%Parser for numpydoc-style docstrings.NÚsectionsc                 ó‚   — |xs t         }|D �ci c]  }|j                  |“Œ c}| _        | j                  «        yc c}w )z[Setup sections.

        :param sections: Recognized sections or None to defaults.
        N)ÚDEFAULT_SECTIONSr%   r¬   Ú_setup)r)   r¬   Úss      r   r*   zNumpydocParser.__init__C  s;   € ð
 Ò/Ô/ˆÙ-5Ó6©X¨˜Ÿ™ !™¨XÑ6ˆŒØ�‰�ùò 7s   �<c                 ó´   — t        j                  dj                  d„ | j                  j	                  «       D «       «      t         j
                  ¬«      | _        y )NÚ|c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr(   )r.   )Ú.0r°   s     r   Ú	<genexpr>z(NumpydocParser._setup.<locals>.<genexpr>N  s   è ø€ ÐFÑ/E¨!�a—o•oÑ/Eùs   ‚r!   )ÚreÚcompiler}   r¬   ÚvaluesÚMÚ	titles_rerN   s    r   r¯   zNumpydocParser._setupL  s8   € ÜŸ™Ø�I‰IÑF¨t¯}©}×/CÑ/CÔ/EÓFÓFÜ—$‘$ô
ˆ�r   Úsectionc                 óV   — || j                   |j                  <   | j                  «        y)zLAdd or replace a section.

        :param section: The new section.
        N)r¬   r%   r¯   )r)   r»   s     r   Úadd_sectionzNumpydocParser.add_sectionR  s   € ð (/ˆ�‰�g—m‘mÑ$Ø�‰�r   r/   r   c                 óL  — t        t        j                  ¬«      }|s|S t        j                  |«      }| j
                  j                  |«      }|r'|d|j                  «        }||j                  «       d }n|}d}|j                  dd«      }|d   xs d|_	        t        |«      dkD  rN|d   xs d}|j                  d«      |_        |j                  d«      |_        |j                  «       xs d|_        t#        | j
                  j%                  |«      «      D ]…  \  }}t'        d„ |j)                  «       D «       «      }	| j*                  |	   }
|j-                  «       }|�|j                  «       nd}|j.                  j1                  |
j3                  ||| «      «       Œ‡ |S )	zaParse the numpy-style docstring into its components.

        :returns: parsed docstring
        )ÚstyleNÚ rn   r   r   z

c              3   ó&   K  — | ]	  }|€Œ|–— Œ y ­wr(   r;   )r´   Úgs     r   rµ   z'NumpydocParser.parse.<locals>.<genexpr>|  s   è ø€ ÐD¡N˜q°a±mœ¡Nùs   ‚Š)r   r   ÚNUMPYDOCrG   rH   rº   r]   rE   rr   Úshort_descriptionr   rz   Úblank_after_short_descriptionÚendswithÚblank_after_long_descriptionr   Úlong_descriptionr   rD   r   Úgroupsr¬   r   ÚmetaÚextendr2   )r)   r/   ÚretrI   Ú
desc_chunkÚ
meta_chunkÚpartsÚlong_desc_chunkÚ	nextmatchr%   ÚfactoryrE   r   s                r   r2   zNumpydocParser.parse[  s‚  € ô
 œn×5Ñ5Ô6ˆÙØˆJô ×Ñ Ó%ˆð —‘×%Ñ% dÓ+ˆÙØ˜o §¡£Ð.ˆJØ˜eŸk™k›m˜oÐ.‰JàˆJØˆJð × Ñ   qÓ)ˆØ % a¡Ò 0¨DˆÔÜˆu‹:˜Š>Ø# A™hšn¨"ˆOØ0?×0JÑ0JØó1ˆCÔ-ð 0?×/GÑ/GÈÓ/OˆCÔ,Ø#2×#8Ñ#8Ó#:Ò#B¸dˆCÔ ä )¨$¯.©.×*AÑ*AÀ*Ó*MÖ NÑˆE�9ÜÑD E§L¡L¤NÓDÓDˆEØ—m‘m EÑ*ˆGð —I‘I“KˆEØ'0Ð'<�)—/‘/Ô#À$ˆCØ�H‰H�O‰O˜GŸM™M¨*°U¸3Ð*?Ó@ÕAð !Oð ˆ
r   r(   )r3   r4   r5   r6   r9   ÚOptionalÚDictr7   r$   r*   r¯   r½   r   r2   r;   r   r   r«   r«   @  sS   „ Ù/ñ §¡¨A¯F©F°3¸°<Ñ,@Ñ!Aó ò
ð 7ó ð*˜!Ÿ*™* S™/ð *¨iô *r   r«   r/   c                 ó4   — t        «       j                  | «      S )zYParse the numpy-style docstring into its components.

    :returns: parsed docstring
    )r«   r2   )r/   s    r   r2   r2   ˆ  s   € ô
 Ó×!Ñ! $Ó'Ð'r   z    Ú	docstringÚrendering_styleÚindentc           	      ó¬
  ‡‡‡— dt         j                  t        t        t        f   fˆˆfd„Šdt
        dt         j                  t         j                     fˆˆfd„}g Š| j                  r‰j                  | j                  «       | j                  r‰j                  d«       | j                  ršd}| j                  j                  r|d| j                  j                  › �z  }| j                  j                  r%| j                  j                  j                  «       }ng }d	‰› �}‰j                  |j                  |g|z   «      «       | j                   r‰j                  | j                   «       | j"                  r‰j                  d«        |d
| j$                  xs g D �cg c]  }|j&                  d   dk(  sŒ|‘Œ c}«        |d| j$                  xs g D �cg c]  }|j&                  d   dk(  r|‘Œ c}«        |d| j(                  xs g D �cg c]  }|j*                  s|‘Œ c}«        |d| j(                  xs g D �cg c]  }|j*                  sŒ|‘Œ c}«       | j,                  rU| j(                  sI| j,                  }‰j                  |rdnd«       ‰j                  dt/        ‰d   «      z  «        ‰|«        |d| j$                  xs g D �cg c]  }|j&                  d   dk(  r|‘Œ c}«        |d| j$                  xs g D �cg c]  }|j&                  d   dk(  r|‘Œ c}«        |d| j0                  xs g D �cg c]  }|j&                  d   dk(  sŒ|‘Œ c}«        |d| j0                  xs g D �cg c]  }|j&                  d   dk(  sŒ|‘Œ c}«       t/        | j2                  «      dkD  r“‰j                  d«       ‰j                  d«       ‰j                  d«       | j2                  D ]Q  }	|	j4                  r‰j                  |	j4                  «       |	j                  sŒ7‰j                  |	j                  «       ŒS | j6                  D ]Ç  }
t9        |
t:        t        t        t        t<        f«      rŒ)‰j                  d«       ‰j                  |
j&                  d   j?                  dd«      jA                  «       «       ‰j                  dt/        |
j&                  d   «      z  «       |
j                  sŒ­‰j                  |
j                  «       ŒÉ d	j                  ‰«      S c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w )a  Render a parsed docstring into docstring text.

    :param docstring: parsed docstring representation
    :param rendering_style: the style to render docstrings
    :param indent: the characters used as indentation in the docstring string
    :returns: docstring text
    Úonec                 óZ  •— t        | t        «      r| j                  }nt        | t        «      r| j                  }nd }| j
                  r|r|d| j
                  › �z  }n| j
                  r| j
                  }n|sd}t        | t        «      rA| j                  dvr|d| j                  › �z  }n | j                  s| j                  dk(  r|dz  }| j                  rBd‰› �j                  |g| j                  j                  «       z   «      }‰j                  |«       y ‰j                  |«       y )Nz : rÀ   )NÚNonez
, default=rÜ   z
, optionalrn   )Ú
isinstancer	   rU   r   rg   rV   rX   rW   r1   r}   ry   r{   )rÚ   ÚheadÚbodyrØ   rÏ   s      €€r   Úprocess_onezcompose.<locals>.process_onež  sù   ø€ ô �cœ>Ô*Ø—<‘<‰DÜ˜Ô-Ô.Ø—?‘?‰DàˆDà�=Š=™TØ�c˜#Ÿ-™-˜Ð)Ñ)‰DØ�]Š]Ø—=‘=‰DÙØˆDô
 �cœ>Ô*Ø�{‰{ .Ñ0Ø˜* S§[¡[ MÐ2Ñ2‘Ø—’ C§K¡K°6Ò$9Ø˜Ñ$�à�?Š?Ø˜�x�=×%Ñ% t f¨s¯©×/IÑ/IÓ/KÑ&KÓLˆDØ�L‰L˜Õà�L‰L˜Õr   rR   rT   c                 ó®   •— |rR‰j                  d«       ‰j                  | «       ‰j                  dt        ‰d   «      z  «       |D ]
  } ‰|«       Œ y y )NrÀ   r,   éÿÿÿÿ)r{   r   )rR   rT   ÚargrÏ   rà   s      €€r   Úprocess_sectzcompose.<locals>.process_sect¾  sN   ø€ ÙØ�L‰L˜ÔØ�L‰L˜ÔØ�L‰L˜œs 5¨¡9›~Ñ-Ô.Û�Ù˜CÕ ñ ð	 r   rÀ   z.. deprecated::Ú rn   r�   r   r‚   r‘   r’   r”   r—   r,   râ   rˆ   r‰   r†   r‡   r‹   rŒ   rŽ   r�   rš   z--------rt   )!r9   ÚUnionr	   r   r
   r7   ÚListÚAnyrÄ   r{   rÅ   r©   rq   r1   ry   r}   rÈ   rÇ   ÚparamsrT   Úmany_returnsrf   r•   r   rŒ   r›   rx   rÊ   rÝ   r   r   Úreplacer%   )rÖ   r×   rØ   rä   ÚfirstÚrestro   ÚitemrÌ   ÚexamplerÊ   rÏ   rà   s     `        @@r   Úcomposerð   �  sè  ú€ ðÜ�W‰W”^Ô%5´ÐFÑGöð@!œ3ð !¤a§f¡f¬Q¯U©U¡mö !ð €EØ×"Ò"Ø�‰�Y×0Ñ0Ô1Ø×.Ò.Ø�‰�RÔà×ÒØ!ˆØ× Ñ ×(Ò(Ø�q˜×.Ñ.×6Ñ6Ð7Ð8Ñ8ˆEØ× Ñ ×,Ò,Ø×(Ñ(×4Ñ4×?Ñ?ÓA‰DàˆDØ�6�(ˆmˆØ�‰�S—X‘X˜u˜g¨™nÓ-Ô.à×!Ò!Ø�‰�Y×/Ñ/Ô0Ø×-Ò-Ø�‰�RÔáØØ#×*Ñ*Ò0¨bÐ0ÓLÑ0�$°D·I±I¸a±LÀGÓ4KŠÐ0ÑLôñ
 Øð "×(Ñ(Ò.¨BÐ.ó	
á.�Ø�y‰y˜‰|˜{Ò*ò Ø.ñ	
ôñ Øð "×.Ñ.Ò4°"Ð4ó	
á4�Ø×$Ò$ò Ø4ñ	
ôñ ØØ#×0Ñ0Ò6°BÐ6ÓLÑ6�$¸$×:KÓ:KŠÐ6ÑLôð
 ×Ò ×!7Ò!7Ø×ÑˆØ�‰¡‘X¨)Ô4Ø�‰�Sœ3˜u R™y›>Ñ)Ô*Ù�CÔáØð "×(Ñ(Ò.¨BÐ.ó	
á.�Ø�y‰y˜‰|˜zÒ)ò Ø.ñ	
ôñ Øð "×(Ñ(Ò.¨BÐ.ó	
á.�Ø�y‰y˜‰|˜}Ò,ò Ø.ñ	
ôñ ØØ#×*Ñ*Ò0¨bÐ0ÓMÑ0�$°D·I±I¸a±LÀHÓ4LŠÐ0ÑMôñ
 ØØ#×*Ñ*Ò0¨bÐ0ÓLÑ0�$°D·I±I¸a±LÀGÓ4KŠÐ0ÑLôô
 ˆ9×ÑÓ Ò"Ø�‰�RÔØ�‰�ZÔ Ø�‰�ZÔ Ø ×)Ô)ˆGØ�ŠØ—‘˜WŸ_™_Ô-Ø×"Ó"Ø—‘˜W×0Ñ0Õ1ð	 *ð —”ˆÜØä#ÜÜ ÜÜ ðô	
ð à�‰�RÔØ�‰�T—Y‘Y˜q‘\×)Ñ)¨#¨rÓ2×8Ñ8Ó:Ô;Ø�‰�Sœ3˜tŸy™y¨™|Ó,Ñ,Ô-à×ÓØ�L‰L˜×)Ñ)Õ*ð% ð( �9‰9�UÓÐùòu 	Mùò
	
ùò	
ùò 	Mùò	
ùò	
ùò 	Nùò
 	MsH   Æ T.
Æ8T.
ÇT3
ÈT8
É T=
ÉT=
ËU
Ì
U
ÍU
ÍU
Í9U
ÎU
r(   )-r6   rG   r   r¶   Útypingr9   Útextwrapr   Úcommonr   r   r   r   r	   r
   r   r   r   r:   r   r7   rÓ   r    r·   r¹   rC   rY   rZ   r[   r\   rh   r$   r=   rL   rP   ra   rd   rj   rl   rv   r®   r«   r2   ÚCOMPACTrð   r;   r   r   Ú<module>rõ      sÆ  ðñó
 Û Û 	Û Ý ÷
÷ 
õ 
ñ=˜Ÿ
™
ð =°·±ó =ð�sð ˜qŸz™z¨#™ó ð ˆ2�:‰:�l¨"¯$©$Ô/€Ø�"—*‘*ÐHÓI€Ø!�r—z‘zÐ"NÓOÐ ð !�b—j‘jØPóÐ ð )˜bŸj™jØgóÐ ð �2—:‘:ÐIÓJÐ ÷Fñ FôB�ô ô0
/�Wô 
/ô-
�:ô -
ô`
�Jô 
ô 
�Zô 
ô<�Nô ô
˜ô 
ô#�gô #ðL Ù�˜wÓ'ð á�˜7Ó#ð ñ �˜gÓ&ð ñ �˜Ó!ð	 ñ
 Ð# ]Ó3ð ñ � Ó/ð ñ Ð" MÓ2ð ñ �˜}Ó-ð ñ �˜ZÓ(ð ñ �˜JÓ'ð ñ �(˜HÓ%ð ñ �'˜8Ó$ð ñ �'˜7Ó#ð ñ �&˜'Ó"ð ñ �˜{Ó+ð ñ  �˜kÓ*ð! ñ" �9˜iÓ(ð# ñ$ �8˜YÓ'ð% ñ& �(˜HÓ%ð' ñ( �'˜8Ó$ð) ñ* �J 
Ó+ð+ ñ, �I˜zÓ*ð- ñ. ˆJ˜
Ó#ð/ ñ0 ˆI�zÓ"ð1 ñ2 ˆJ˜
Ó#ð3 ñ4 ˆI�zÓ"ð5 ñ6 ˆG�WÓð7 ñ8 ˆF�GÓð9 ñ: ˆL˜,Ó'ð; ñ< ˆK˜Ó&ð= ñ> �| ]Ó3ð? Ð ÷FEñ EðP(�—
‘
˜3‘ð ( Ió (ð '5×&<Ñ&<Øñ	hàðhð $ðhð ð	hð
 	ôhr   