
    uiA
                     8    S SK r S SKrS SKrS SKr " S S5      rg)    Nc                       \ rS rSrSS jrS rS rSS jrS rS r	S r
S	 rS
 rS rSS jrS r\R"                  S 5       r\R"                  S 5       rSrg)Parser	   c                     Xl         SU l        [        U R                   5      U l        U(       a  U R	                  U5        X l        g Nr   )wirecurrentlenendseekfurthest)selfr   r	   s      ?/home/kodi/.kodi/addons/script.module.dnspython/lib/dns/wire.py__init__Parser.__init__
   s1    	tyy>IIg    c                 4    U R                   U R                  -
  $ N)r   r	   r   s    r   	remainingParser.remaining   s    xx$,,&&r   c                     XR                  5       :  a  [        R                  R                  eU R                  U R
                  U R
                  U-    nU =R
                  U-  sl        [        U R                  U R
                  5      U l        U$ r   )r   dns	exception	FormErrorr   r	   maxr   )r   sizeoutputs      r   	get_bytesParser.get_bytes   se    ..""--)))4<<t(;<DMM4<<8r   c                 n    [         R                  U R                  U5      S5      nU R                  U5      $ )Nbigint
from_bytesr   )r   length_sizelengths      r   get_counted_bytesParser.get_counted_bytes   s*    { ;UC~~f%%r   c                 @    U R                  U R                  5       5      $ r   )r   r   r   s    r   get_remainingParser.get_remaining!   s    ~~dnn.//r   c                 T    [         R                  " SU R                  S5      5      S   $ )Nz!B   r   structunpackr   r   s    r   	get_uint8Parser.get_uint8$   !    }}T4>>!#45a88r   c                 T    [         R                  " SU R                  S5      5      S   $ )Nz!H   r   r/   r   s    r   
get_uint16Parser.get_uint16'   r4   r   c                 T    [         R                  " SU R                  S5      5      S   $ )Nz!I   r   r/   r   s    r   
get_uint32Parser.get_uint32*   r4   r   c                 L    [         R                  U R                  S5      S5      $ )N   r"   r#   r   s    r   
get_uint48Parser.get_uint48-   s    ~~dnnQ/77r   c                 t    [         R                  " XR                  [         R                  " U5      5      5      $ r   )r0   r1   r   calcsize)r   formats     r   
get_structParser.get_struct0   s#    }}V^^FOOF4K%LMMr   Nc                 t    [         R                  R                  U 5      nU(       a  UR                  U5      nU$ r   )r   namefrom_wire_parser
relativize)r   originrG   s      r   get_nameParser.get_name3   s,    xx((.??6*Dr   c                 n    US:  d  XR                   :  a  [        R                  R                  eXl        g r   )r   r   r   r   r	   )r   wheres     r   r   Parser.seek9   s)     19(--)))r   c              #   <  #    XR                  5       :  a  [        R                  R                  eU R                  n U R
                  U-   U l        S v   U R
                  U R                  :w  a  [        R                  R                  e X l        g ! X l        f = f7fr   )r   r   r   r   r   r	   )r   r   	saved_ends      r   restrict_toParser.restrict_to@   sv     ..""--)))HH			!||d*DH ||txx'mm--- ( !HyHs   :BAB 
BBBc              #   d   #     S v   U R                   U l        g ! U R                   U l        f = f7fr   )r   r	   r   s    r   restore_furthestParser.restore_furthestP   s%     	)J==DL4==DLs   0 0-0)r	   r   r   r   )r   )r.   r   )__name__
__module____qualname____firstlineno__r   r   r   r(   r+   r2   r7   r;   r?   rD   rK   r   
contextlibcontextmanagerrR   rU   __static_attributes__ r   r   r   r   	   ss     '&09998N ! ! ) )r   r   )r[   r0   dns.exceptionr   dns.namer   r^   r   r   <module>ra      s       L) L)r   