<!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>

Š¹¼]–  ã               @   sc   d  d l  m Z d  d l m Z d  d l  m Z d  d l m Z m Z Gd d „  d e j ƒ Z	 d S)é   )Úpytree)Útoken)Ú
fixer_base)ÚNameÚparenthesizec               @   s(   e  Z d  Z d Z d Z d d „  Z d S)Ú	FixHasKeyTa•  
    anchor=power<
        before=any+
        trailer< '.' 'has_key' >
        trailer<
            '('
            ( not(arglist | argument<any '=' any>) arg=any
            | arglist<(not argument<any '=' any>) arg=any ','>
            )
            ')'
        >
        after=any*
    >
    |
    negation=not_test<
        'not'
        anchor=power<
            before=any+
            trailer< '.' 'has_key' >
            trailer<
                '('
                ( not(arglist | argument<any '=' any>) arg=any
                | arglist<(not argument<any '=' any>) arg=any ','>
                )
                ')'
            >
        >
    >
    c          
   C   s"  |  j  } | j j | j k r7 |  j j | j ƒ r7 d  S| j d ƒ } | d } | j } d d „  | d Dƒ } | d j ƒ  } | j d ƒ }	 |	 r¨ d d „  |	 Dƒ }	 | j | j	 | j | j
 | j | j | j | j f k rí t | ƒ } t | ƒ d	 k r| d
 } n t j | j | ƒ } d | _ t d d d ƒ}
 | rot d d d ƒ} t j | j | |
 f ƒ }
 t j | j	 | |
 | f ƒ } |	 rÁt | ƒ } t j | j | f t |	 ƒ ƒ } | j j | j	 | j | j | j | j | j | j | j | j f	 k rt | ƒ } | | _ | S)NÚnegationÚanchorc             S   s   g  |  ] } | j  ƒ  ‘ q S© )Úclone)Ú.0Únr
   r
   ú0/opt/alt/python35/lib64/python3.5/fix_has_key.pyú
<listcomp>S   s   	 z'FixHasKey.transform.<locals>.<listcomp>ÚbeforeÚargÚafterc             S   s   g  |  ] } | j  ƒ  ‘ q Sr
   )r   )r   r   r
   r
   r   r   W   s   	 é   é    ú ÚinÚprefixÚnot)ÚsymsÚparentÚtypeZnot_testÚpatternÚmatchÚgetr   r   Z
comparisonZand_testZor_testZtestZlambdefÚargumentr   Úlenr   ZNodeZpowerr   Zcomp_opÚtupleÚexprZxor_exprZand_exprZ
shift_exprZ
arith_exprZtermZfactor)ÚselfZnodeÚresultsr   r   r	   r   r   r   r   Zn_opZn_notÚnewr
   r
   r   Ú	transformH   sD    	
	!	"	zFixHasKey.transformN)Ú__name__Ú
__module__Ú__qualname__ZBM_compatibleZPATTERNr&   r
   r
   r
   r   r   '   s   r   N)
Ú r   Zpgen2r   r   Z
fixer_utilr   r   ZBaseFixr   r
   r
   r
   r   Ú<module>!   s   