
    fXfu              	       n   d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
mZmZmZmZmZmZ ddlmZ ddlmZmZmZ eeef         Zeeeef         Z ede          Zeeegef         Z G d d	e          Z G d
 de j                  Z  G d de           Z! G d de!          Z"dedeegef         dedeegef         fdZ# G d de!          Z$ ej%        d          Z&dede
e         fdZ'dedefdZ(de
e         de
e         dee
e         e
e         f         fdZ) G d de           Z*dS )     N)CallableDictIterableIteratorListOptionalPatternSetTupleTypeVarUnion   )canonicalize_version)LegacyVersionVersionparseVersionTypeVar)boundc                       e Zd ZdZdS )InvalidSpecifierzH
    An invalid specifier was found, users should refer to PEP 440.
    N)__name__
__module____qualname____doc__     Y/var/www/html/Qu*py/bism/lib/python3.11/site-packages/pip/_vendor/packaging/specifiers.pyr   r   !   s           r   r   c            	       r   e Zd Zej        defd            Zej        defd            Zej        de	de
fd            Zej        dee
         fd            Zej        de
ddfd	            Zej        dd
edee
         de
fd            Zej        	 ddee         dee
         dee         fd            ZdS )BaseSpecifierreturnc                     dS )z
        Returns the str representation of this Specifier like object. This
        should be representative of the Specifier itself.
        Nr   selfs    r   __str__zBaseSpecifier.__str__(         r   c                     dS )zF
        Returns a hash value for this Specifier like object.
        Nr   r"   s    r   __hash__zBaseSpecifier.__hash__/   r%   r   otherc                     dS )zq
        Returns a boolean representing whether or not the two Specifier like
        objects are equal.
        Nr   r#   r(   s     r   __eq__zBaseSpecifier.__eq__5   r%   r   c                     dS )zg
        Returns whether or not pre-releases as a whole are allowed by this
        specifier.
        Nr   r"   s    r   prereleaseszBaseSpecifier.prereleases<   r%   r   valueNc                     dS )zd
        Sets whether or not pre-releases as a whole are allowed by this
        specifier.
        Nr   r#   r.   s     r   r-   zBaseSpecifier.prereleasesC   r%   r   itemr-   c                     dS )zR
        Determines if the given item is contained within this specifier.
        Nr   r#   r1   r-   s      r   containszBaseSpecifier.containsJ   r%   r   iterablec                     dS )z
        Takes an iterable of items and filters them so that only items which
        are contained within this specifier are allowed in it.
        Nr   )r#   r5   r-   s      r   filterzBaseSpecifier.filterP   r%   r   N)r   r   r   abcabstractmethodstrr$   intr'   objectboolr+   abstractpropertyr   r-   setterr4   r   r   r7   r   r   r   r   r   '   s            	#    
 	F t     	Xd^      $     	 S x~     
 	PT  0?G~	.	!     r   r   )	metaclassc                      e Zd ZU i Zeeef         ed<   ee         ed<   ddedee	         ddfdZ
defd	Zdefd
Zedeeef         fd            ZdefdZdede	fdZdedefdZdedefdZedefd            Zedefd            Zedee	         fd            Zej        de	ddfd            Zdede	fdZ	 ddedee	         de	fdZ	 ddee          dee	         dee          fdZ!dS )_IndividualSpecifier
_operators_regex Nspecr-   r    c                    | j                             |          }|st          d| d          |                    d                                          |                    d                                          f| _        || _        d S )NzInvalid specifier: ''operatorversion)rE   searchr   groupstrip_spec_prereleases)r#   rG   r-   matchs       r   __init__z_IndividualSpecifier.__init___   s    ""4(( 	C"#A$#A#A#ABBB KK
##))++KK	""((**'

 (r   c                 l    | j         
d| j        nd}d| j        j         dt	          |           | dS )N, prereleases=rF   <()>)rP   r-   	__class__r   r;   r#   pres     r   __repr__z_IndividualSpecifier.__repr__l   sT      , 2T-111 	 B4>*AASYYA#AAAAr   c                       dj         | j         S )Nz{}{})formatrO   r"   s    r   r$   z_IndividualSpecifier.__str__u   s    v}dj))r   c                 P    | j         d         t          | j         d                   fS )Nr   r   )rO   r   r"   s    r   _canonical_specz$_IndividualSpecifier._canonical_specx   s"    z!}24:a=AAAAr   c                 *    t          | j                  S r8   )hashr_   r"   s    r   r'   z_IndividualSpecifier.__hash__|   s    D()))r   r(   c                     t          |t                    r;	 |                     t          |                    }n3# t          $ r
 t          cY S w xY wt          || j                  st          S | j        |j        k    S r8   )
isinstancer;   rX   r   NotImplementedr_   r*   s     r   r+   z_IndividualSpecifier.__eq__   s    eS!! 	"&s5zz22# & & &%%%%&E4>22 	"!!#u'<<<s   ": AAopc                 B    t          | d| j        |                    }|S )N	_compare_)getattrrD   )r#   re   operator_callables      r   _get_operatorz"_IndividualSpecifier._get_operator   s/    .53dob133/
 /
 ! r   rK   c                 \    t          |t          t          f          st          |          }|S r8   )rc   r   r   r   r#   rK   s     r   _coerce_versionz$_IndividualSpecifier._coerce_version   s)    'M7#;<< 	%GnnGr   c                     | j         d         S )Nr   rO   r"   s    r   rJ   z_IndividualSpecifier.operator       z!}r   c                     | j         d         S )Nr   ro   r"   s    r   rK   z_IndividualSpecifier.version   rp   r   c                     | j         S r8   rP   r"   s    r   r-   z _IndividualSpecifier.prereleases   s      r   r.   c                     || _         d S r8   rs   r0   s     r   r-   z _IndividualSpecifier.prereleases       !r   r1   c                 ,    |                      |          S r8   r4   r#   r1   s     r   __contains__z!_IndividualSpecifier.__contains__       }}T"""r   c                     || j         }|                     |          }|j        r|sdS |                     | j                  } ||| j                  S NF)r-   rm   is_prereleaserj   rJ   rK   )r#   r1   r-   normalized_itemri   s        r   r4   z_IndividualSpecifier.contains   sm    
 *K ..t44
 ( 	 	5 /3.@.@.O.O  $,???r   r5   c              #      K   d}g }d||ndi}|D ]Q}|                      |          } | j        |fi |r,|j        r|s| j        s|                    |           Kd}|V  R|s|r|D ]
}|V  d S d S d S )NFr-   T)rm   r4   r}   r-   append)r#   r5   r-   yieldedfound_prereleaseskwrK   parsed_versions           r   r7   z_IndividualSpecifier.filter   s       K,C[[N   	" 	"G!11'::Nt}^22r22 " "/ ""#'#3" &,,W5555 #G!MMM
  	, 	,  	 	 	 	 r   rF   Nr8   )"r   r   r   rD   r   r;   __annotations__r	   r   r>   rR   r[   r$   propertyr   r_   r<   r'   r=   r+   CallableOperatorrj   UnparsedVersionParsedVersionrm   rJ   rK   r-   r@   ry   r4   r   r   r7   r   r   r   rC   rC   Z   s        !#JS#X###CL( (S (HTN (d ( ( ( (B# B B B B* * * * * BsCx B B B XB*# * * * *	=F 	=t 	= 	= 	= 	=! !(8 ! ! ! ! =    
 #    X     X !Xd^ ! ! ! X! " "$ " " " "# # # # # # DH@ @#@2:4.@	@ @ @ @0 QU! ! 0!?G~!	.	!! ! ! ! ! !r   rC   c                        e Zd ZdZ ej        dez   dz   ej        ej        z            Zdddddd	d
Z	dde
dee         ddf fdZdedefdZdede
defdZdede
defdZdede
defdZdede
defdZdede
defdZdede
defdZ xZS )LegacySpecifiera  
        (?P<operator>(==|!=|<=|>=|<|>))
        \s*
        (?P<version>
            [^,;\s)]* # Since this is a "legacy" specifier, and the version
                      # string can be just about anything, we match everything
                      # except for whitespace, a semi-colon for marker support,
                      # a closing paren since versions can be enclosed in
                      # them, and a comma since it's a version separator.
        )
        ^\s*\s*$equal	not_equalless_than_equalgreater_than_equal	less_thangreater_than)==!=<=>=rU   >rF   NrG   r-   r    c                     t                                          ||           t          j        dt                     d S )NzZCreating a LegacyVersion has been deprecated and will be removed in the next major release)superrR   warningswarnDeprecationWarning)r#   rG   r-   rX   s      r   rR   zLegacySpecifier.__init__   sC    {+++0	
 	
 	
 	
 	
r   rK   c                 h    t          |t                    st          t          |                    }|S r8   )rc   r   r;   rl   s     r   rm   zLegacySpecifier._coerce_version  s,    '=11 	2#CLL11Gr   prospectivec                 4    ||                      |          k    S r8   rm   r#   r   rG   s      r   _compare_equalzLegacySpecifier._compare_equal
      d2248888r   c                 4    ||                      |          k    S r8   r   r   s      r   _compare_not_equalz"LegacySpecifier._compare_not_equal  r   r   c                 4    ||                      |          k    S r8   r   r   s      r   _compare_less_than_equalz(LegacySpecifier._compare_less_than_equal  r   r   c                 4    ||                      |          k    S r8   r   r   s      r   _compare_greater_than_equalz+LegacySpecifier._compare_greater_than_equal  s     d2248888r   c                 4    ||                      |          k     S r8   r   r   s      r   _compare_less_thanz"LegacySpecifier._compare_less_than      T11$7777r   c                 4    ||                      |          k    S r8   r   r   s      r   _compare_greater_thanz%LegacySpecifier._compare_greater_than  r   r   r   )r   r   r   
_regex_strrecompileVERBOSE
IGNORECASErE   rD   r;   r   r>   rR   r   r   rm   r   r   r   r   r   r   __classcell__)rX   s   @r   r   r      s       
J RZ*,w6
R]8RSSF " J
 
S 
HTN 
d 
 
 
 
 
 
 =    
9- 9s 9t 9 9 9 99m 93 94 9 9 9 99M 9 9QU 9 9 9 99(9039	9 9 9 9
8m 83 84 8 8 8 88 8c 8d 8 8 8 8 8 8 8 8r   r   fn	Specifierr    c           	      v     t          j                   dddt          dt          dt          f fd            }|S )Nr#   r   r   rG   r    c                 L    t          |t                    sdS  | ||          S r|   )rc   r   )r#   r   rG   r   s      r   wrappedz)_require_version_compare.<locals>.wrapped"  s.    +w// 	5r$T***r   )	functoolswrapsr   r;   r>   )r   r   s   ` r   _require_version_comparer     s[     _R+k + +S +T + + + + + +
 Nr   c            	          e Zd ZdZ ej        dez   dz   ej        ej        z            Zdddddd	d
ddZ	e
dededefd            Ze
dededefd            Ze
dededefd            Ze
dededefd            Ze
dededefd            Ze
dededefd            Ze
dededefd            ZdededefdZedefd            Zej        deddfd            ZdS )r   a  
        (?P<operator>(~=|==|!=|<=|>=|<|>|===))
        (?P<version>
            (?:
                # The identity operators allow for an escape hatch that will
                # do an exact string match of the version you wish to install.
                # This will not be parsed by PEP 440 and we cannot determine
                # any semantic meaning from it. This operator is discouraged
                # but included entirely as an escape hatch.
                (?<====)  # Only match for the identity operator
                \s*
                [^\s]*    # We just match everything, except for whitespace
                          # since we are only testing for strict identity.
            )
            |
            (?:
                # The (non)equality operators allow for wild card and local
                # versions to be specified so we have to define these two
                # operators separately to enable that.
                (?<===|!=)            # Only match for equals and not equals

                \s*
                v?
                (?:[0-9]+!)?          # epoch
                [0-9]+(?:\.[0-9]+)*   # release
                (?:                   # pre release
                    [-_\.]?
                    (a|b|c|rc|alpha|beta|pre|preview)
                    [-_\.]?
                    [0-9]*
                )?
                (?:                   # post release
                    (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*)
                )?

                # You cannot use a wild card and a dev or local version
                # together so group them with a | and make them optional.
                (?:
                    (?:[-_\.]?dev[-_\.]?[0-9]*)?         # dev release
                    (?:\+[a-z0-9]+(?:[-_\.][a-z0-9]+)*)? # local
                    |
                    \.\*  # Wild card syntax of .*
                )?
            )
            |
            (?:
                # The compatible operator requires at least two digits in the
                # release segment.
                (?<=~=)               # Only match for the compatible operator

                \s*
                v?
                (?:[0-9]+!)?          # epoch
                [0-9]+(?:\.[0-9]+)+   # release  (We have a + instead of a *)
                (?:                   # pre release
                    [-_\.]?
                    (a|b|c|rc|alpha|beta|pre|preview)
                    [-_\.]?
                    [0-9]*
                )?
                (?:                                   # post release
                    (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*)
                )?
                (?:[-_\.]?dev[-_\.]?[0-9]*)?          # dev release
            )
            |
            (?:
                # All other operators only allow a sub set of what the
                # (non)equality operators do. Specifically they do not allow
                # local versions to be specified nor do they allow the prefix
                # matching wild cards.
                (?<!==|!=|~=)         # We have special cases for these
                                      # operators so we want to make sure they
                                      # don't match here.

                \s*
                v?
                (?:[0-9]+!)?          # epoch
                [0-9]+(?:\.[0-9]+)*   # release
                (?:                   # pre release
                    [-_\.]?
                    (a|b|c|rc|alpha|beta|pre|preview)
                    [-_\.]?
                    [0-9]*
                )?
                (?:                                   # post release
                    (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*)
                )?
                (?:[-_\.]?dev[-_\.]?[0-9]*)?          # dev release
            )
        )
        r   r   
compatibler   r   r   r   r   r   	arbitrary)~=r   r   r   r   rU   r   ===r   rG   r    c           
      &   d                     t          t          j        t          t          |                              d d                   }|dz  } |                     d          ||          o |                     d          ||          S )N..*r   r   )joinlist	itertools	takewhile_is_not_suffix_version_splitrj   )r#   r   rG   prefixs       r   _compare_compatiblezSpecifier._compare_compatible  s     $^^D5I5IJJKKCRCP
 

 	$'t!!$''T:: 
?Wt?Q?QRV?W?W@
 @
 	
r   c                 z   |                     d          rwt          |j                  }t          |d d                   }t          t	          |                    }|d t          |                   }t          ||          \  }}||k    S t          |          }|j        st          |j                  }||k    S )Nr   )endswithr   publicr   r;   len_pad_versionlocal)	r#   r   rG   
split_specsplit_prospectiveshortened_prospectivepadded_specpadded_prospectivespec_versions	            r   r   zSpecifier._compare_equal  s     == "	/!+"455K (SbS	22J
 !/s;/?/? @ @
 %66GJ6G$H! /;1/ /+K+ &44 #4==L
  % :%k&899,..r   c                 0    |                      ||           S r8   )r   r   s      r   r   zSpecifier._compare_not_equal  s    &&{D9999r   c                 L    t          |j                  t          |          k    S r8   r   r   r   s      r   r   z"Specifier._compare_less_than_equal  s      {)**gdmm;;r   c                 L    t          |j                  t          |          k    S r8   r   r   s      r   r   z%Specifier._compare_greater_than_equal  s      {)**gdmm;;r   spec_strc                     t          |          }||k     sdS |j        s3|j        r,t          |j                  t          |j                  k    rdS dS NFT)r   r}   base_versionr#   r   r   rG   s       r   r   zSpecifier._compare_less_than  sg    
 x  
 T!!5 ! 	k&? 	{/00GD<M4N4NNNu
 tr   c                    t          |          }||k    sdS |j        s3|j        r,t          |j                  t          |j                  k    rdS |j        ,t          |j                  t          |j                  k    rdS dS r   )r   is_postreleaser   r   r   s       r   r   zSpecifier._compare_greater_than  s    
 x  
 T!!5 " 	{'A 	{/00GD<M4N4NNNu ({/00GD<M4N4NNNu
 tr   c                     t          |                                          t          |                                          k    S r8   )r;   lowerr   s      r   _compare_arbitraryzSpecifier._compare_arbitrary%  s1    ;%%''3t99??+<+<<<r   c                     | j         | j         S | j        \  }}|dv r;|dk    r|                    d          r
|d d         }t          |          j        rdS dS )N)r   r   r   r   r   r   r   r   TF)rP   rO   r   r   r}   )r#   rJ   rK   s      r   r-   zSpecifier.prereleases(  sz    
 ($$
 !J'666 4G$4$4T$:$:!#2#, W~~+ tur   r.   Nc                     || _         d S r8   rs   r0   s     r   r-   zSpecifier.prereleasesA  ru   r   )r   r   r   r   r   r   r   r   rE   rD   r   r   r;   r>   r   r   r   r   r   r   r   r   r   r   r-   r@   r   r   r   r   r   +  sm       [Jz RZ*,w6
R]8RSSF "	 	J 
} 
C 
D 
 
 
 
* %/- %/s %/t %/ %/ %/ %/N :m :3 :4 : : : : <M < <QU < < < < <(<03<	< < < < m s t    2  # RV    >=g =S =T = = = = T    X0 " "$ " " " " " "r   z^([0-9]+)((?:a|b|c|rc)[0-9]+)$rK   c                     g }|                      d          D ][}t                              |          }|r(|                    |                                           F|                    |           \|S )Nr   )split_prefix_regexrL   extendgroupsr   )rK   resultr1   rQ   s       r   r   r   I  st    Fc""    $$T** 	 MM%,,..))))MM$Mr   segmentc                 <     t           fddD                        S )Nc              3   B   K   | ]}                     |          V  d S r8   )
startswith).0r   r   s     r   	<genexpr>z!_is_not_suffix.<locals>.<genexpr>U  sB        '-6""     r   )devabrcpost)any)r   s   `r   r   r   T  s@        1P      r   leftrightc                 R   g g }}|                     t          t          j        d |                                |                     t          t          j        d |                               |                     | t	          |d                   d                     |                     |t	          |d                   d                     |                    ddgt          dt	          |d                   t	          |d                   z
            z             |                    ddgt          dt	          |d                   t	          |d                   z
            z             t          t          j        |           t          t          j        |           fS )Nc                 *    |                                  S r8   isdigitxs    r   <lambda>z_pad_version.<locals>.<lambda>^  s     r   c                 *    |                                  S r8   r  r  s    r   r  z_pad_version.<locals>.<lambda>_  s    !))++ r   r   r   0)r   r   r   r   r   insertmaxchain)r   r   
left_splitright_splits       r   r   r   Z  sr    "J d9./D/DdKKLLMMMtI/0E0EuMMNNOOO d3z!}--//0111uSQ00223444 a#QKN(;(;c*Q->P>P(P!Q!QQRRRq3%#aZ]););c+a.>Q>Q)Q"R"RRSSS*-..Y_k5R0S0STTr   c                   l   e Zd Z	 ddedee         ddfdZdefdZdefdZde	fd	Z
d
ed ef         dd fdZd
edefdZde	fdZdee         fdZedee         fd            Zej        deddfd            ZdedefdZ	 ddedee         defdZ	 ddee         dee         dee         fdZdS )SpecifierSetrF   N
specifiersr-   r    c                 J   d |                     d          D             }t                      }|D ]W}	 |                    t          |                     &# t          $ r% |                    t          |                     Y Tw xY wt          |          | _        || _        d S )Nc                 ^    g | ]*}|                                 |                                 +S r   )rN   r   ss     r   
<listcomp>z)SpecifierSet.__init__.<locals>.<listcomp>s  s-    RRR!		RAGGIIRRRr   ,)	r   setaddr   r   r   	frozenset_specsrP   )r#   r  r-   split_specifiersparsed	specifiers         r   rR   zSpecifierSet.__init__m  s     SRz/?/?/D/DRRR -0EE) 	7 	7I7

9Y//0000# 7 7 7

?955666667  '' (s   "A,BBc                 R    | j         
d| j        nd}dt          |           | dS )NrT   rF   z<SpecifierSet(rW   )rP   r-   r;   rY   s     r   r[   zSpecifierSet.__repr__  sF      , 2T-111 	 5D		4S4444r   c                 d    d                     t          d | j        D                                 S )Nr  c              3   4   K   | ]}t          |          V  d S r8   )r;   r  s     r   r   z'SpecifierSet.__str__.<locals>.<genexpr>  s(      ;;!s1vv;;;;;;r   )r   sortedr  r"   s    r   r$   zSpecifierSet.__str__  s-    xx;;t{;;;;;<<<r   c                 *    t          | j                  S r8   )ra   r  r"   s    r   r'   zSpecifierSet.__hash__      DK   r   r(   c                    t          |t                    rt          |          }nt          |t                    st          S t                      }t	          | j        |j        z            |_        | j        |j        |j        |_        nG| j        |j        | j        |_        n,| j        |j        k    r| j        |_        nt          d          |S )NzFCannot combine SpecifierSets with True and False prerelease overrides.)rc   r;   r  rd   r  r  rP   
ValueError)r#   r(   r  s      r   __and__zSpecifierSet.__and__  s    eS!! 	" ''EEE<00 	"!! NN	$T[5<%?@@	$);)G%*%7I""*u/A/I%)%6I""%"444%)%6I""  
 r   c                     t          |t          t          f          rt          t          |                    }nt          |t                    st          S | j        |j        k    S r8   )rc   r;   rC   r  rd   r  r*   s     r   r+   zSpecifierSet.__eq__  sV    ec#7899 	" U,,EEE<00 	"!!{el**r   c                 *    t          | j                  S r8   )r   r  r"   s    r   __len__zSpecifierSet.__len__  s    4;r   c                 *    t          | j                  S r8   )iterr  r"   s    r   __iter__zSpecifierSet.__iter__  r$  r   c                 l    | j         | j         S | j        sd S t          d | j        D                       S )Nc              3   $   K   | ]}|j         V  d S r8   r-   r  s     r   r   z+SpecifierSet.prereleases.<locals>.<genexpr>  s$      66Q1=666666r   )rP   r  r   r"   s    r   r-   zSpecifierSet.prereleases  sH    
 ($$
 { 	4 66$+666666r   r.   c                     || _         d S r8   rs   r0   s     r   r-   zSpecifierSet.prereleases  ru   r   r1   c                 ,    |                      |          S r8   rw   rx   s     r   ry   zSpecifierSet.__contains__  rz   r   c                     t          t          t          f          st                    | j        s	j        rdS t          fd| j        D                       S )NFc              3   F   K   | ]}|                                V  dS )r0  Nrw   )r   r  r1   r-   s     r   r   z(SpecifierSet.contains.<locals>.<genexpr>  s3      RR1::d:<<RRRRRRr   )rc   r   r   r   r-   r}   allr  r3   s    ``r   r4   zSpecifierSet.contains  s{    
 $ 899 	;;D
 *K  	t1 	5 RRRRRdkRRRRRRr   r5   c                    || j         }| j        r0| j        D ]&}|                    |t          |                    }'|S g }g }|D ]|}t	          |t
          t          f          st          |          }n|}t	          |t
                    rF|j        r|s|s|	                    |           g|	                    |           }|s|r||S |S )Nr0  )
r-   r  r7   r>   rc   r   r   r   r}   r   )r#   r5   r-   rG   filteredr   r1   r   s           r   r7   zSpecifierSet.filter  s    *K
 ; &	 P P;;xT+=N=N;OOO
 .0H68
 ! * *!$(@AA *%*4[[NN%)N nm<<  "/ * *# 7)00666OOD))))  ) 1 )k6I((Or   r   r8   )r   r   r   r;   r   r>   rR   r[   r$   r<   r'   r   r'  r=   r+   r*  r   rC   r-  r   r-   r@   r   ry   r4   r   r   r7   r   r   r   r  r  l  s0       BF( ((19$(	( ( ( (05# 5 5 5 5= = = = =!# ! ! ! !U>3#67 N    .+F +t + + + +         !(#78 ! ! ! ! 7Xd^ 7 7 7 X7" " "$ " " " "# #T # # # # DHS S#S2:4.S	S S S S< QU3 3 03?G~3	.	!3 3 3 3 3 3r   r  )+r9   r   r   r   r   typingr   r   r   r   r   r   r	   r
   r   r   r   utilsr   rK   r   r   r   r   r;   r   r   r>   r   r&  r   ABCMetar   rC   r   r   r   r   r   r   r   r   r  r   r   r   <module>r;     sQ  
 


         				                           ( ' ' ' ' ' 2 2 2 2 2 2 2 2 2 2g},-34)AAA]C0$67     z   0 0 0 0 0ck 0 0 0 0fF F F F F= F F FR98 98 98 98 98* 98 98 98x	+}c2D89	{M3/56	 	 	 	X" X" X" X" X"$ X" X" X"v 
<==C DI    C D    UtCy Uc UuT#YS	=Q7R U U U U$v v v v v= v v v v vr   