<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
U
    ÀÒ.e¯  ã                   @   sð   d dl mZmZmZ d dlmZ d dlmZ zd dlm	  m
Z W n& ek
rh   d dlm	  mZ Y nX ddddd	d
gZz,edƒZeeeƒs¤edƒZeeeƒs¤t‚W n   dZY nX dZG dd„ deƒZdd„ Zdd„ Zdd	„ Zdd„ ZdS )é    )Úabsolute_importÚdivisionÚunicode_literals)Ú
ModuleType)Ú	text_typeNÚdefault_etreeÚMethodDispatcherÚisSurrogatePairÚsurrogatePairToCodepointÚmoduleFactoryFactoryÚsupports_lone_surrogatesz"\uD800"z	u"\uD800"FTc                   @   s"   e Zd ZdZddd„Zdd„ ZdS )	r   ap  Dict with 2 special properties:

    On initiation, keys that are lists, sets or tuples are converted to
    multiple keys so accessing any one of the items in the original
    list-like object returns the matching value

    md = MethodDispatcher({("foo", "bar"):"baz"})
    md["foo"] == "baz"

    A default value which can be set through the default attribute.
    © c                 C   sv   g }|D ]B\}}t |ttttfƒr<|D ]}| ||f¡ q&q| ||f¡ qt | |¡ t| ƒt|ƒkslt	‚d | _
d S ©N)Ú
isinstanceÚlistÚtupleÚ	frozensetÚsetÚappendÚdictÚ__init__ÚlenÚAssertionErrorÚdefault)ÚselfÚitemsZ_dictEntriesÚnameÚvalueÚitemr   r   ú?/usr/lib/python3.8/site-packages/pip/_vendor/html5lib/_utils.pyr   1   s    zMethodDispatcher.__init__c                 C   s   t  | || j¡S r   )r   Úgetr   )r   Úkeyr   r   r   Ú__getitem__@   s    zMethodDispatcher.__getitem__N)r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r"   r   r   r   r   r   $   s   
c                 C   sL   t | ƒdkoJt| d ƒdkoJt| d ƒdkoJt| d ƒdkoJt| d ƒdkS )Né   r   é Ø  iÿÛ  é   é Ü  iÿß  )r   Úord)Údatar   r   r   r	   G   s    ÿÿþþc                 C   s,   dt | d ƒd d  t | d ƒd  }|S )Ni   r   r(   i   r)   r*   )r+   )r,   Zchar_valr   r   r   r
   M   s    ÿc                    s   i ‰‡ ‡fdd„}|S )Nc                    sÞ   t tjtdƒƒrd| j }n
d| j }t| ¡ ƒ}zˆ| | | W S  tk
rØ   t|ƒ}ˆ | f|ž|Ž}|j |¡ dˆkrˆi ˆ|< dˆ| kr i ˆ| |< dˆ| | krÀi ˆ| | |< |ˆ| | |< | Y S X d S )NÚ z_%s_factorys   _%s_factoryr   ÚargsÚkwargs)	r   r   r#   Útyper   r   ÚKeyErrorÚ__dict__Úupdate)Z
baseModuler.   r/   r   Zkwargs_tupleÚmodZobjs©ÚfactoryZmoduleCacher   r   ÚmoduleFactoryY   s$    
z+moduleFactoryFactory.<locals>.moduleFactoryr   )r6   r7   r   r5   r   r   V   s    c                    s   i ‰ ‡ ‡fdd„}|S )Nc                     s2   t | ƒt | ¡ ƒf}|ˆ kr*ˆ| |Žˆ |< ˆ | S r   )r   r   )r.   r/   r!   ©ÚcacheÚfuncr   r   Úwrappedv   s    zmemoize.<locals>.wrappedr   )r:   r;   r   r8   r   Úmemoizes   s    r<   )Z
__future__r   r   r   Útypesr   Zpip._vendor.sixr   Zxml.etree.cElementTreeZetreeZcElementTreer   ÚImportErrorZxml.etree.ElementTreeZElementTreeÚ__all__ÚevalZ_xr   r   r   r   r   r	   r
   r   r<   r   r   r   r   Ú<module>   s0    þ

#	