관리-도구
편집 파일: query.cpython-38.pyc
U /?�f0� � @ s` d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddlmZm Z mZmZmZ ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZdd� Zdd� Z ej!�"d�Z#e#�r>ddl$Z%ddl&Z&e%j'Z(e%j)j*j+Z,G d d � d e(�Z-G dd� de&j.�Z/nG d d� d�Z/e#Z0zddl1Z1W n$ e2k �r� G dd� d�Z1Y nX ejZ3G dd� dej4j5�Z6G dd� dej4j7�Z8G dd� dej4j5�Z9G dd� dej4j5�Z:ej;j<Z<dd� Z=dd� Z>dd� Z?e@ed��rejAaBnejCaBdd � ZDd!d"� ZEd#d$� ZFd%d&� ZGdhd(d)�ZHdid*d+�ZIdd,ddd-d-dd.d'dd'dejJf ejKjLeMeeN eOeeM eOePePee eMePeeM eePeMf ed/ eeO ejKjLd0�d1d2�ZQd3d4� ZRd5d6� ZSdjeeejKjLeTf eeeN eeOeNf d7�d8d9�ZUdkeee eeN ePePee ejVjWejXjYf eeT ePePePeejKjL ed;�d<d=�ZZdlejKjLeMeeN eOeeM eOePePePePee ePejKjLd?� d@dA�Z[dmejKjLeMeeN eOeeM eOePePePee ee ePeejKjLePf dB� dCdD�Z\dEdF� Z]dGdH� Z^dneeejKjLeTf eeN eeOeNf dI�dJdK�Z_doeeeN ePee ejVjWejXjYf eeT ePeejKjLeNf dL�dMdN�Z`dOdP� ZadpejKjLeMeeN eOeeM eOePePee ejKjLdQ� dRdS�ZbdTdU� ZceeM eePeMf e1jddV�dWdX�ZedqejKjLeMeeN eOeeM eOePePee1jf ee1jd eeM eePeMf ejKjLdZ� d[d\�ZgdrejKjLeMeeN eOeeM eOePePeejhji eePeMf eeM ejKjLd]�d^d_�Zhejjjkejljmdd>ddd'ddddd-ejXjnf eMeejVjWeMf eejjjoeMf eejljpeMf eeN eOee ejVjWejXjYf eeejVjWeMf ePeeN eeM eOeOePeejVjWeMf ed`�dadb�Z;G dcdd� ddejq�Zrdd>dddderjsfeMejtjueejKjL eOeeN eeN eeM eOerdde� dfdg�ZvdS )szTalk to a DNS server.� N)�Any�Dict�Optional�Tuple�Unionc C s, | d krd S | t � � }|dkr(tjj�|S )N� )�time�dns� exception�Timeout)� expiration�timeout� r �7/opt/hc_python/lib/python3.8/site-packages/dns/query.py� _remaining/ s r c C s |d krd S t t�� | |�S �N)�minr )r r r r r �_expiration_for_this_attempt8 s r Zdohc s0 e Zd Z� fdd�Zddd�Zd dd�Z� ZS ) �_NetworkBackendc s&