
                             S SK r S SKrS SKJr  \ R                  S    S:H  r\ R                  S    S:H  r\(       a  \r\r	O\r\	r	\(       a  \
r\r\
4r\rS rS rS rS rO\r\
r\4r\rS	 rS
 rS rS rS rg)    N)Context      c                 "    U R                  5       $ N)decodexs    lib/third_party/dns/_compat.pymaybe_decoder          xxz    c                 "    U R                  5       $ r   )encoder	   s    r   maybe_encoder      r   r   c                     U $ r    r	   s    r   	maybe_chrr          r   c                     U $ r   r   r	   s    r   	maybe_ordr      r   r   c                     U $ r   r   r	   s    r   r   r   %   r   r   c                     U $ r   r   r	   s    r   r   r   '   r   r   c                     [        U 5      $ r   )chrr	   s    r   r   r   )       1vr   c                     [        U 5      $ r   )ordr	   s    r   r   r   +   r   r   c           	          [        [        [        [        U 5      5      5      [        R
                  S9R                  [        U 5      5      n[        U5      $ )z
Python 2 and Python 3 use different rounding strategies in round(). This
function ensures that results are python2/3 compatible and backward
compatible with previous py2 releases
:param what: float
:return: rounded long
)precrounding)r   lenstrlongdecimalROUND_HALF_UPcreate_decimal)whatds     r   round_py2_compatr*   /   sE     	T$Z!&&	 nSY  7Nr   )sysr%   r   version_infoPY3PY2intr$   rangexranger#   	text_typebytesbinary_typestring_typesr   unichrr   r   r   r   unicode
basestringr*   r   r   r   <module>r9      s    
  	qQ	qQ DFDF IK6LF IKL Fr   