HEX
Server: LiteSpeed
System: Linux s787.bom1.mysecurecloudhost.com 4.18.0-477.13.1.lve.el8.x86_64 #1 SMP Thu Jun 1 16:40:47 EDT 2023 x86_64
User: mobilech (5348)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/aiohttp/__pycache__/cookiejar.cpython-310.pyc
o

;j�d�@s`ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZddlmZmZmZddlmZmZmZddlmZddlmZddlmZdd	lmZdd
lm Z m!Z!ddl"m#Z#ddl$m%Z%m&Z&m'Z'd
Z(ee)dfZ*dj+Z,dj+Z-dZ.e�Z/e0d�Z1Gdd�de	j2�Z3Gdd�de �Z4Gdd�de �Z5dS)�N)�defaultdict)�Iterable�Iterator�Mapping)�
BaseCookie�Morsel�SimpleCookie��MappingProxyType)�Union)�URL�)� preserve_morsel_with_coded_value)�AbstractCookieJar�ClearCookiePredicate)�
is_ip_address)�LooseCookies�PathLike�StrOrURL)�	CookieJar�DummyCookieJarzMorsel[str]z{}/{}z{1}.{0}�d)�max-age�expirescsPeZdZUdZehd��Zeeeefed<dedede	f�fdd�Z
�ZS)	�_RestrictedCookieUnpicklera@A restricted unpickler that only allows cookie-related types.

    This prevents arbitrary code execution when loading pickled cookie data
    from untrusted sources. Only types that are expected in a serialized
    CookieJar are permitted.

    Subclasses :class:`pickle._Unpickler` (the pure-Python implementation)
    rather than :class:`pickle.Unpickler` because the accelerated unpickler
    on some implementations (notably PyPy) does not dispatch through
    :meth:`find_class` overrides.

    See: https://docs.python.org/3/library/pickle.html#restricting-globals
    >)�http.cookiesr)�builtins�set)r�dict)r�tuple)�collectionsr)rr)r�	frozenset�_ALLOWED_CLASSES�module�name�returncs4||f|jvrt�d|�d|�d���t��||�S)NzForbidden class: �.z�. CookieJar.load() only allows cookie-related types for security. See https://docs.python.org/3/library/pickle.html#restricting-globals)r"�pickleZUnpicklingError�super�
find_class)�selfr#r$��	__class__��E/opt/saltstack/salt/lib/python3.10/site-packages/aiohttp/cookiejar.pyr)Ls
�z%_RestrictedCookieUnpickler.find_class)�__name__�
__module__�__qualname__�__doc__r!r"r�str�__annotations__�typer)�
__classcell__r-r-r+r.r.s
�"rcs�eZdZdZe�d�Ze�d�Ze�d�Ze�dej	�Z
e�d�Zee
j
jje
jjd����dZz
e�e�e��WneyIe�d	�ZYneySd
ZYnwedZddd
d
d�dededeeeBd
Bdejd
Bdd
f
�fdd�Z e!defdd��Z"e!defdd��Z#e!de$e%e&e&fe'ffdd��Z(e!de)e%e&e&ffdd��Z*de+dd
fdd �Z,de+dd
fd!d"�Z-d#e.e&e.e&e.e&e&eBe/Bfffdd
fd$d%�Z0dLd&e1d
Bdd
fd'd(�Z2d)e&dd
fd*d+�Z3dMd-d.�Z4defd/d0�Z5dNd1d2�Z6d3ee%e&e&e&fdd
fd4d5�Z7d6e/d)e&d7e&d8e&dd
f
d9d:�Z8e9�fd;e:d<e9dd
fd=d>�Z;e9�fd?e9dd@fdAdB�Z<dCe=e&de=e&fdDdE�Z>e?d)e&dFe&defdGdH��Z@eAdIe&ded
BfdJdK��ZB�ZCS)Orz/Implements cookie storage adhering to RFC 6265.z][\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]*(?P<token>[\x00-\x08\x0A-\x1F\d:a-zA-Z\x7F-\xFF]+)z(\d{1,2}):(\d{1,2}):(\d{1,2})z	(\d{1,2})zG(jan)|(feb)|(mar)|(apr)|(may)|(jun)|(jul)|(aug)|(sep)|(oct)|(nov)|(dec)z	(\d{2,4}))�tzinfor
)	i�����;r;���r<r<i���FTN)�unsafe�quote_cookie�treat_as_secure_origin�loopr=r>r?r@r%cs�t�j|d�tt�|_tt�|_t�|_||_	||_
|dur"g}nt|t�r-|�
�g}nt|t�r:t|��
�g}ndd�|D�}||_g|_i|_dS)N�r@cSs*g|]}t|t�rt|���n|���qSr-)�
isinstancer3r�origin)�.0�urlr-r-r.�
<listcomp>�s��z&CookieJar.__init__.<locals>.<listcomp>)r(�__init__rr�_cookiesr�
_morsel_cacher�_host_only_cookies�_unsafe�
_quote_cookierBrrCr3�_treat_as_secure_origin�_expire_heap�_expirations)r*r=r>r?r@r+r-r.rGzs*��

�
zCookieJar.__init__cC�|jS�N)rK�r*r-r-r.r=��zCookieJar.unsafecCrPrQ)rLrRr-r-r.r>�rSzCookieJar.quote_cookiecC�
t|j�S)z&Return the cookies stored in this jar.)r
rHrRr-r-r.�cookies��
zCookieJar.cookiescCrT)z0Return the host-only cookies stored in this jar.)r!rJrRr-r-r.�host_only_cookies�rVzCookieJar.host_only_cookies�	file_pathcCst�|�}i}|j��D]Z\\}}}|�d|��}i||<|��D]D\}}|j|j|jd�}	|jD]}
|
tvr8q1||
}|rB||	|
<q1||f|j	vrNd|	d<|j
�|||f�}dur_||	d<|	|||<q!qt|ddd	d
�d��}
t
j||
dd
�Wd�dS1s�wYdS)z�Save cookies to a file using JSON format.

        :param file_path: Path to file where cookies will be serialized,
            :class:`str` or :class:`pathlib.Path` instance.
        �|��key�value�coded_valueT�	host_onlyN�expires_timestamp�w�utf-8cSst�||d�S)Ni�)�os�open)�path�flagsr-r-r.�<lambda>�sz CookieJar.save.<locals>.<lambda>)�mode�encodingZopener�)�indent)�pathlib�PathrH�itemsr[r\r]�	_reserved�_RELATIVE_EXPIRY_ATTRSrJrO�getrc�json�dump)r*rX�data�domainrd�cookier[r$�morsel�morsel_data�attrZattr_val�exp�fr-r-r.�save�s@
�
���"�zCookieJar.savecCs�t�|�}z$|jddd��
}t�|�}Wd�n1swY|�|�WdStjttfyV|jdd��}t	|���|_
Wd�YdS1sNwYYdSw)a�Load cookies from a file.

        Tries to load JSON format first. Falls back to loading legacy
        pickle format (using a restricted unpickler) for backward
        compatibility with existing cookie files.

        Replaces the current jar contents; loaded cookies pass through the
        same acceptance rules as :meth:`update_cookies`.

        :param file_path: Path to file from where cookies will be
            imported, :class:`str` or :class:`pathlib.Path` instance.
        �rra)rgrhN�rb)rg)rkrlrcrq�load�_load_json_data�JSONDecodeError�UnicodeDecodeError�
ValueErrorrrH)r*rXrzrsr-r-r.r~�s

�&��zCookieJar.loadrscCs�|��|��D]k\}}|�dd�\}}|��D]Z\}}t�}|�|d|d|dd��|jD]}	|	|vrA|	dvrA||	||	<q1|�d�rKd|d	<|rTtjd
|d�nt�}
|�	||i|
�|�d�}d
urr|�
t|�|||�qq|��d
S)z;Replace contents, routing cookies through update_cookies().rYr
r[r\r]rZr^�rt�https)�scheme�hostr_N)
�clearrm�splitr�__setstate__rnrpr�build�update_cookies�_expire_cookie�float�_do_expiration)r*rsZcompound_keyZcookie_datartrdr$rwrvrx�response_urlryr-r-r.r�s2��
�
���zCookieJar._load_json_data�	predicatecsz�dur�j���j���j���j���j��dSt�������fdd��j��D�}|r;��|�dSdS)NcsTg|]&\\}}}|��D]\}}|||f��jvr!�j��ks%�|�r��qqSr-)rmrO)rDrtrdrur$rv�r[�nowr�r*r-r.rFs
���z#CookieJar.clear.<locals>.<listcomp>)	rNr�rHrIrJrO�timerm�_delete_cookies)r*r��to_delr-r�r.r�s




�
�zCookieJar.clearrtcs����fdd��dS)Ncs���|d�S)Nrt)�_is_domain_match)�x�rtr*r-r.rf-sz(CookieJar.clear_domain.<locals>.<lambda>)r��r*rtr-r�r.�clear_domain,szCookieJar.clear_domain�Iterator[Morsel[str]]ccs,�|��|j��D]	}|��EdHq
dSrQ)r�rH�values)r*�valr-r-r.�__iter__/s
��zCookieJar.__iter__cCstdd�|j��D��S)zReturn number of cookies.

        This function does not iterate self to avoid unnecessary expiration
        checks.
        css�|]	}t|���VqdSrQ)�lenr�)rDrur-r-r.�	<genexpr>:s�z$CookieJar.__len__.<locals>.<genexpr>)�sumrHr�rRr-r-r.�__len__4szCookieJar.__len__cs�t�j�}s	dS|tkr'|t�j�dkr'�fdd��jD��_t��j�t��}g}�jrR�jd\}}||kr<nt��j��j�|�|krO|�	|��js0|r[��
|�dSdS)zRemove expired cookies.Nrics(g|]}�j�|d�|dkr|�qS)r
r)rOrp)rD�entryrRr-r.rFNs
�z,CookieJar._do_expiration.<locals>.<listcomp>r)r�rN� _MIN_SCHEDULED_COOKIE_EXPIRATIONrO�heapq�heapifyr��heappoprp�appendr�)r*Zexpire_heap_lenr�r��when�
cookie_keyr-rRr.r�<s*
�
��zCookieJar._do_expirationr�cCsd|D]-\}}}|j�||f�|j||f�|d�|j||f�|d�|j�|||fd�qdSrQ)rJ�discardrH�poprIrO)r*r�rtrdr$r-r-r.r�gs�zCookieJar._delete_cookiesr�rdr$cCs>|||f}|j�|�|krdSt�|j||f�||j|<dSrQ)rOrpr��heappushrN)r*r�rtrdr$r�r-r-r.r�ns

zCookieJar._expire_cookierUr�c	Cs|j}|jst|�rdSt|t�r|��}|D]�\}}t|t�s+t�}|||<||}|d}|r<|ddkr<d}|d=|sP|durP|j�	||f�|}|d<|rb|ddkrb|dd�}||d<|rk|�
||�skq|d}|rw|dd	kr�|j}|�d	�s�d	}nd	|d|�
d	��}||d<|�d	�}|d
}	r�zt|	�}
tt��|
|j�}|�||||�Wn'ty�d|d
<Ynw|d}r�|�|�}
r�|�|
|||�nd|d<||f}|j|�|�|kr�||j||<|j|�|d�q|��dS)zUpdate cookies.Nrtr<r&r�rr
rd�/rr)�raw_hostrKrrBrrmrrrJ�addr�rd�
startswith�rfind�rstrip�int�minr��MAX_TIMEr�r��_parse_daterHrprIr�r�)r*rUr��hostnamer$ru�tmprtrdZmax_ageZ
delta_secondsZmax_age_expirationrZexpire_timer[r-r-r.r�vs`



��zCookieJar.update_cookies�request_url�BaseCookie[str]cCs"t�}|js|S|��|js|St|�tur(tjdt|���tdd�t|�}|jp,d}|j	dv}|rX|j
rXt�}t�t
��|��}Wd�n1sNwY||j
v}d}|j|��D](}|j|j|vrw|j||j||j<qa|�|�}||j||j<|||j<qat|�r�|js�|S|f}	nt�t|�d��t�}	t�|j�d	�t�}
t�|	|
�}t|j�}|D]U}
|
|jvr�q�|j|
��D]E\}}|d
}||f|jvr�||kr�q�t|d�|kr�q�|r�|dr�q�||j|
vr�|j|
|||<q�|�|�}||j|
|<|||<q�q�|S)
z8Returns this jar's cookies filtered by their attributes.zQfilter_cookies expects yarl.URL instances only,and will stop working in 4.x, got ri)�
stacklevelr�)r��wssN)r�r�r&r�rtrdZsecure) rrHr�r5r�warnings�warn�DeprecationWarningr�r�rM�
contextlib�suppressr�rCr�r[rI�
_build_morselrrK�	itertools�
accumulate�reversedr��_FORMAT_DOMAIN_REVERSEDrd�_FORMAT_PATH�productr�rmrJ)r*r��filteredr�Z
is_not_secureZrequest_originr[�cZmrsl_valZdomains�paths�pairsZpath_len�pr$rurtr-r-r.�filter_cookies�sx��



�

�



�zCookieJar.filter_cookiesrucCsb|jr|jr|jddkrt|�St�}|jr t�|j�\}}n|j}}|�|j||d��|S)z<Build a morsel for sending, respecting quote_cookie setting.r�"rZ)	rLr]rr�_SIMPLE_COOKIEZvalue_encoder\r�r[)r*rurvr\r]r-r-r.r�s
zCookieJar._build_morselr�cCsD||krdS|�|�s
dS|dt|��}|�d�sdSt|�S)z0Implements domain matching adhering to RFC 6265.TFNr&)�endswithr�r)rtr�Znon_matchingr-r-r.r�(s


zCookieJar._is_domain_match�date_strcCs�|sdSd}d}d}d}d}}}d}	d}
d}|j�|�D]\}|�d�}
|s>|j�|
�}|r>d}dd�|��D�\}}}q|sQ|j�|
�}|rQd}t|���}	q|sh|j�|
�}|rhd}|j	dusdJ�|j	}
q|sz|j
�|
�}|rzd}t|���}qd|kr�d	kr�nn|d
7}nd|kr�dkr�nn|d7}d||||fvr�dSd
|	kr�dks�dSdS|dks�|dks�|dks�|dkr�dSt�||
|	|||dddf	�S)z4Implements date string parsing adhering to RFC 6265.NFr�tokenTcss�|]}t|�VqdSrQ)r�)rD�sr-r-r.r�Ps�z(CookieJar._parse_date.<locals>.<genexpr>�F�cil�Ei�r
r9iAr:r;r<)
�DATE_TOKENS_RE�finditer�group�DATE_HMS_TIME_RE�match�groups�DATE_DAY_OF_MONTH_REr��
DATE_MONTH_RE�	lastindex�DATE_YEAR_RE�calendar�timegm)�clsr�Z
found_timeZ	found_dayZfound_monthZ
found_year�hour�minute�second�day�month�yearZtoken_matchr�Z
time_matchZ	day_matchZmonth_matchZ
year_matchr-r-r.r�8sd
�
� zCookieJar._parse_daterQ�r%r�)r%N)Dr/r0r1r2�re�compiler�r�r��Ir�r�r��datetime�max�replace�timezone�utc�	timestampr�r�r�r��gmtime�OSError�
OverflowErrorZSUB_MAX_TIME�boolr�list�asyncio�AbstractEventLooprG�propertyr=r>r
rr3rrUr!rWrr{r~rr�rrr�r�r�r�r�r�r�rrr�r�rr��staticmethodr��classmethodr�r6r-r-r+r.rVs��

�
��������! *"�
�&

 +JX rcs
eZdZdZdd�dejdBddf�fdd�Zd#d	d
�Zdefdd�Z	e
defd
d��Ze
defdd��Z
e
deeeefeffdd��Ze
deeeeffdd��Zd$dedBddfdd�Zdeddfdd�Ze�fdededdfdd�Zdedd fd!d"�Z�ZS)%rzxImplements a dummy cookie storage.

    It can be used with the ClientSession when no cookie processing is needed.

    NrAr@r%cst�j|d�dS)NrA)r(rG)r*r@r+r-r.rG�szDummyCookieJar.__init__r�ccs�dSrQr-rRr-r-r.r��s�zDummyCookieJar.__iter__cC�dS)Nrr-rRr-r-r.r���zDummyCookieJar.__len__cCr)NFr-rRr-r-r.r=��zDummyCookieJar.unsafecCr)NTr-rRr-r-r.r>�rzDummyCookieJar.quote_cookiecCsti�S)zReturn an empty mapping.r	rRr-r-r.rU�szDummyCookieJar.cookiescC�t�S)zReturn an empty frozenset.)r!rRr-r-r.rW�sz DummyCookieJar.host_only_cookiesr�cC�dSrQr-)r*r�r-r-r.r��rzDummyCookieJar.clearrtcCrrQr-r�r-r-r.r��rzDummyCookieJar.clear_domainrUr�cCrrQr-)r*rUr�r-r-r.r��rzDummyCookieJar.update_cookiesr�r�cCrrQ)r)r*r�r-r-r.r��szDummyCookieJar.filter_cookiesr�rQ)r/r0r1r2r�r�rGr�r�r�r�r�r=r>r
rr3rrUr!rWrr�r�rrr�r�r6r-r-r+r.rys""
 r)6r�r�r�r�r�r�rqrbrkr'r�r�r�r r�collections.abcrrrZhttp.cookiesrrr�typesr
�typingrZyarlrZ_cookie_helpersr�abcrrZhelpersrZtypedefsrrr�__all__r3Z
CookieItem�formatr�r�r�r�r!roZ
_Unpicklerrrrr-r-r-r.�<module>sJ('