File: //usr/lib/python3/dist-packages/twisted/names/__pycache__/common.cpython-38.pyc
U
W[� � . @ sJ d Z ddlmZmZ ddlZddlmZ ddlmZ ddl m
Z
mZmZ ddl m
Z
mZ ddl mZ dd lmZmZmZ dd
lmZ ed�\ZZZdZeej�G d
d� d��Zd)dd�Zejdejdej dej!dej"dej#dej$dej%dej&dej'dej(dej)dej*dej+dej,d ej-d!ej.d"ej/d#ej0d$ej1d%ej2d&ej3d'ej4d(iZ5dS )*z>
Base functionality useful to various parts of Twisted Names.
� )�division�absolute_importN)�implementer)�dns)�DNSFormatError�DNSServerError�DNSNameError)�DNSNotImplementedError�DNSQueryRefusedError)�DNSUnknownError)�defer�error�
interfaces)�Logger� )� r r c
@ sV e Zd ZdZe� Zejeej e
ejeej
eejeiZdZdd� Zdd� Zd>dd�Zd d
� Zd?dd�Zd@d
d�ZdAdd�ZdBdd�ZdCdd�ZdDdd�ZdEdd�ZdFdd�ZdGdd�ZdHdd�Z dIdd �Z!dJd!d"�Z"dKd#d$�Z#dLd%d&�Z$dMd'd(�Z%dNd)d*�Z&dOd+d,�Z'dPd-d.�Z(dQd/d0�Z)dRd1d2�Z*dSd3d4�Z+dTd5d6�Z,dUd7d8�Z-dVd:d;�Z.d<d=� Z/dS )W�ResolverBaseaN
L{ResolverBase} is a base class for implementations of
L{interfaces.IResolver} which deals with a lot
of the boilerplate of implementing all of the lookup methods.
@cvar _errormap: A C{dict} mapping DNS protocol failure response codes
to exception classes which will be used to represent those failures.
Nc C s, i | _ t �� D ]\}}t| |�| j |<