£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
3
Re                 @   sx   d dl mZmZmZ d dlZddlmZmZ ddlm	Z	m
Z
 erZd dlmZmZ edeZejdZd	d
 Zdd ZdS )    )absolute_importdivisionprint_functionN   )TYPE_CHECKINGcast)InvalidVersionVersion)NewTypeUnionNormalizedNamez[-_.]+c             C   s   t jd| j }td|S )N-r   )_canonicalize_regexsublowerr   )namevalue r   /builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el8.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/packaging/utils.pycanonicalize_name   s    r   c             C   s   yt | }W n tk
r    | S X g }|jdkrB|jdj|j |jtjdddjdd |jD  |j	dk	r|jdjd	d |j	D  |j
dk	r|jd
j|j
 |jdk	r|jdj|j |jdk	r|jdj|j dj|S )z
    This is very similar to Version.__str__, but has one subtle difference
    with the way it handles the release segment.
    r   z{0}!z(\.0)+$ .c             s   s   | ]}t |V  qd S )N)str).0xr   r   r   	<genexpr>/   s    z'canonicalize_version.<locals>.<genexpr>Nc             s   s   | ]}t |V  qd S )N)r   )r   r   r   r   r   r   3   s    z.post{0}z.dev{0}z+{0})r	   r   epochappendformatrer   joinreleaseprepostdevlocal)_versionversionpartsr   r   r   canonicalize_version   s"    
&



r)   )
__future__r   r   r   r   _typingr   r   r'   r   r	   typingr
   r   r   r   compiler   r   r)   r   r   r   r   <module>   s   

