XylotrechusZ
�
ǒ�g � �L � d dl Z d dlZd dlmZmZmZ d dlZd dlZ G d� d� Z y)� N)�Iterator�Optional�Tuplec � � e Zd Zddedefd�Zdefd�Zdedefd�Zddedefd �Zdefd
�Z defd�Z
defd�Zdefd
�Zdefd�Z
dedefd�Zdded ddfd�Zdeddfd�Zej* dedefd�� Zej* defd�� Zy)�Parser�wire�currentc � � || _ d| _ t | j � | _ |r| j |� || _ y �Nr )r r �len�end�seek�furthest)�selfr r s �7/opt/hc_python/lib/python3.12/site-packages/dns/wire.py�__init__zParser.__init__ s5 � ��� �����t�y�y�>�����I�I�g����
� �returnc �4 � | j | j z
S �N)r
r �r s r � remainingzParser.remaining s � ��x�x�$�,�,�&�&r �sizec �. � |dk\ sJ �|| j � kD rt j j �| j | j
| j
|z }| xj
|z
c_ t
| j | j
� | _ |S r )r �dns� exception� FormErrorr r �maxr )r r �outputs r � get_byteszParser.get_bytes ss � ��q�y��y��$�.�.�"�"��-�-�)�)�)����4�<�<�$�,�,��*=�>���������D�M�M�4�<�<�8��
��
r �length_sizec �n � t j | j |� d� }| j |� S )N�big��int�
from_bytesr )r r! �lengths r �get_counted_byteszParser.get_counted_bytes s* � �������{� ;�U�C���~�~�f�%�%r c �@ � | j | j � � S r )r r r s r �
get_remainingzParser.get_remaining$ s � ��~�~�d�n�n�.�/�/r c �R � t j d| j d� � d S )Nz!B� r ��struct�unpackr r s r � get_uint8zParser.get_uint8'