�
��g� � �� � d Z ddlZddlZddlmZ ddlmZ ddlmZm Z ddl
mZmZ dZ
g d �Z ee � � Zeeeeeef Zd
edefd�Zd
eddfd�Zed
edeeedf eedf eedf eedf f fd�� � Zded
ed
edededefd�Ze ddeedf deedf deedf deedf dedefd�� � Zdedeeeef fd�ZdS )zURL parsing utilities.� N)� lru_cache)�Union)�scheme_chars�uses_netloc� )�QUOTER�
UNQUOTER_PLUSz!
)� �
�
�url�returnc �D � | � t � � } t D ]}|| v r| � |d� � } �dx}x}x}}| � d� � }|dk rP| d t
v rA| d|� D ]
}|t
vr n*�| d|� � � � | |dz d� } }d| v }d| v } | dd� d k r�t | � � }
|r| rd
}n| rd}n|rd}nd
}|D ]&}| � |d� � }|dk r||
k r|}
�'| d|
� }| |
d� } d|v }
d|v }|
r|r|r|
st d� � �|
rx|� d� � d � d� � d }|d dk r%t j d|� � st d� � �nd|vrt d� � �|r| � d� � \ } }}| r| � d� � \ } }}|r#|� � � st |� � ||| ||fS )zSplit URL into parts.� �:r r N�#�?� �//z/?#z/?z/#�/�[�]zInvalid IPv6 URL�vz\Av[a-fA-F0-9]+\..+\ZzIPvFuture address is invalidz%An IPv4 address cannot be in brackets)�lstrip�WHATWG_C0_CONTROL_OR_SPACE�UNSAFE_URL_BYTES_TO_REMOVE�replace�findr �lower�len�
ValueError� partition�re�match�isascii�
_check_netloc)r
�b�scheme�netloc�query�fragment�i�c�has_hash�has_question_mark�delim�delim_chars�wdelim�has_left_bracket�has_right_bracket�bracketed_host�_s �[/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/yarl/_parse.py� split_urlr8 s� � �
�*�*�/�
0�
0�C�
'� %� %����8�8��+�+�a��$�$�C��)+�+�F�+�V�+�e�h�����
�
�A��1�u�u��Q��<�'�'��Q�q�S�� 8� 8�A���$�$��� %� �b�q�b�'�-�-�/�/�3�q�1�u�w�w�<�C�F��c�z�H��s�
��
�2�A�2�w�$����C����� �)� ��K�K�
� ��K�K�
� ��K�K��K�� � �A��X�X�a��^�^�F���{�{�v��~�~�����Q�u�W����%�&�&�k���&�=���6�M��� 1�%6� 1�� 1�&6� 1� �/�0�0�0�� J�#�-�-�c�2�2�1�5�?�?��D�D�Q�G�N� �a� �C�'�'��x� 8�.�I�I� E�$�%C�D�D�D�E��N�*�*� �!H�I�I�I�� .��=�=��-�-���Q��� +��
�
�c�*�*�
��Q��
� �f�n�n�&�&� ��f�����6�3��x�/�/� r) c � � | � dd� � � dd� � � dd� � � dd� � }t j d|� � }||k rd S dD ]}||v rt d| � d �� � ��d S )
N�@r r r r �NFKCz/?#@:znetloc 'z6' contains invalid characters under NFKC normalization)r �unicodedata� normalizer! )r) �n�normalized_netlocr- s r7 r&