shell bypass 403
�
f� � �& � d dl Z d dlmZ d dlZd dlZd dlmZ d dlZd dl Z d dl
Z
d dlZd dlZd dl
Z
d dlZ d dlZd dlZd dlZd dlZd dlZd dlZ d dlZd dlZddlmZ ddlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ e
j` e1� Z2 e
jf d� Z4 e
jf d� Z5 e
jf d � Z6 e
jf d
� Z7 e
jf d� Z8 e
jf d� Z9 e
jf d
� Z: e
jf d� Z;d� Z<d� Z=d� Z>d� Z?d� Z@did�ZAd� ZBd� ZCd� ZDej� d� � ZFej� d� � ZGej� djd�� ZH G d� deI� ZJd� ZK G d� deI� ZLd � ZM G d!� d"eI� ZN e
jf d#e
j� � ZPd$� ZQdkd%�ZRd&� ZSd'� ZTd(� ZUd)� ZVd*� ZW e
jf d+e
j� � ZY e
jf d,� ZZdkd-�Z[ e
jf d.� Z\d/� Z]d0� Z^d1� Z_d2Z`d3� Zad4� Zb G d5� d6eI� Zc G d7� d8eI� Zd G d9� d:eI� Zed;Zfdld<�Zgd=� Zhd>Zi G d?� d@eI� Zj e
jf dA� Zk e
jf dB� Zl e
jf dC� ZmdD� ZdE� Zner6ddFlmoZpmqZqmrZr G dG� dHe$j� � Zs G dI� dJep� Zo G dK� dLeoe&� Zt G dM� dNe%j� � Zuer G dO� dPe%j� � Zv G dQ� dRe%j� � ZwdS� Zx G dT� dUeI� Zy G dV� dWey� Zz G dX� dYey� Z{ G dZ� d[e'� Z| G d\� d]eI� Z}d^� Z~ G d_� d`eI� Zda� Z�db� Z�dc� Z�dddedfdg�Z�dh� Z�y# e$ r dZY ��Ew xY w# e$ r d dlZY ��<w xY w)m� N)�deque)�iglob� )�DistlibException)�string_types� text_type�shutil� raw_input�StringIO�cache_from_source�urlopen�urljoin�httplib� xmlrpclib�HTTPHandler�BaseConfigurator�valid_ident� Container�configparser�URLError�ZipFile�fsdecode�unquote�urlparsez^([\w\.-]+)\s*z^([\w\.*+-]+)\s*z^(<=?|>=?|={2,3}|[~!]=)\s*z*^((<=?)|(>=?)|={2,3}|[~!]=|in|not\s+in)\s*z^or\b\s*z ^and\b\s*z(\S+)\s*z(([\s\w\.{}()*+#:;,/?!~`@$%^&=|<>\[\]-]+)c �@ ����� d� ���fd���fd���fd�� �| � S )ae
Parse a marker string and return a dictionary containing a marker expression.
The dictionary will contain keys "op", "lhs" and "rhs" for non-terminals in
the expression grammar, or strings. A string contained in quotes is to be
interpreted as a literal string, and a string not contained in quotes is a
variable (such as os_name).
c � � t j | � }|r*|j � d }| |j � d } || fS | st d� �| d }|dvrt d| z � �dj |d� }| dd } |g}| r�| d |k( rn�| d |k( r|j
|� | dd } nZt j | � }|st d| z � �|j
|j � d � | |j � d } | r��dj |� }t d|z � �|j
|� dj |� }| dd j � } || fS ) Nr zunexpected end of inputz'"zinvalid expression: %s� r zerror in string literal: %szunterminated string: %s)
�
IDENTIFIER�match�groups�end�SyntaxError�replace�append�STRING_CHUNK�join�lstrip)� remaining�m�result�q�oq�parts�ss �C/usr/local/python-3.12/lib/python3.12/site-packages/distlib/util.py�
marker_varz parse_marker.<locals>.marker_varB s{ � ����Y�'����X�X�Z��]�F�!�!�%�%�'�(�+�I�<