§
    |Åd²  ã                   ób  — d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z
dZd„ Zd„ Zd„ Z e¦   «         Zej                             ed¦  «        Zej                             ed	¦  «        j        Zej                             ed
¦  «        j        Zej                             ed¦  «        j        Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej        Z de _!        ej        ej        ge _"        ej#        Z$de$_!        ej        ge$_"        ej%        Z&ej        e&_!        ej        ge&_"        ej'        Z(ej)        e(_!        ej        ge(_"        ej        Z*ej        e*_!        ej        ej        ge*_"        ej+        Z,ej-        e,_!        ej)        ge,_"        ej.        Z/ej-        e/_!        ej)        ge/_"        dS )z#Access libntp funtions from Python.é    )Úabsolute_importNÚntpcc                  óÌ   — t           j                             d¦  «        rdS t           j                             d¦  «        rdS t           j                             d¦  «        rdS dS )zProduce library naming scheme.Údarwinzlib%s.dylibÚwin32z%s.dllÚcygwinz	lib%s.dllzlib%s.so)ÚsysÚplatformÚ
startswith© ó    ú*/usr/lib/python3/dist-packages/ntp/ntpc.pyÚ_fmtr      s^   € å
„|×Ò˜xÑ(Ô(ð Øˆ}Ý
„|×Ò˜wÑ'Ô'ð ØˆxÝ
„|×Ò˜xÑ(Ô(ð Øˆ{Øˆ:r   c                  óÞ  — g } t                                t          j        ¦  «        dd…         }|                      t          j                             |t          ¦   «         t          z  gz   ¦  «        ¦  «         t          j	         
                    t          ¦  «        }|r|                      |¦  «         |                      dt          ¦   «         t          z  z   ¦  «         t          | ¦  «        S )z1Load the ntpc library or throw an OSError trying.Néÿÿÿÿz/usr/lib/aarch64-linux-gnu/ntp/)Ú__file__ÚsplitÚosÚsepÚappendÚjoinr   ÚLIBÚctypesÚutilÚfind_libraryÚ_dlo)Ú
ntpc_pathsÚjÚ	ntpc_paths      r   Ú
_importador       sµ   € à€Jå�Š•r”vÑÔ˜s ˜sÔ#€AØ×Ò•b”f—k’k !¥t¡v¤vµ¡| nÑ"4Ñ5Ô5Ñ6Ô6Ð6å”×(Ò(­Ñ-Ô-€IØð %Ø×Ò˜)Ñ$Ô$Ð$à×ÒÐ7½4¹6¼6ÅC¹<ÑHÑIÔIÐIå�
ÑÔÐr   c                 ón  — | D ]œ}	 t          j        |d¬¦  «        }d}t          j                             t           j                             |d¦  «        j        ¦  «        }||k    r&t          j	         
                    d|›d|›d�¦  «         |c S # t          $ r Y Œ™w xY wt          dt          z  ¦  «        ‚)	z Try opening library from a list.T)Ú	use_errnoz1.2.2Úversionzntp.ntpc wrong version 'z' != 'z'
zCan't find %s library)r   ÚCDLLÚntpÚpolyÚpolystrÚc_char_pÚin_dllÚvaluer	   ÚstderrÚwriteÚOSErrorr   )Úpathsr   ÚlibÚwrap_versionÚclib_versions        r   r   r   +   sÊ   € àð 	ð 	ˆ	ð	Ý”+˜i°4Ð8Ñ8Ô8ˆCØ"ˆLÝœ8×+Ò+­F¬O×,BÒ,BÀ3È	Ñ,RÔ,RÔ,XÑYÔYˆLØ˜|Ò+Ð+Ý”
× Ò Ð ÈLÈLÈLÐZfÐZfÐZfÐ!gÑhÔhÐhØˆJˆJˆJøÝð 	ð 	ð 	ØˆDð	øøøå
Ð)­CÑ/Ñ
0Ô
0Ð0s   †BBÂ
BÂBÚprognameÚSYS_TYPEÚ	PEER_TYPEÚ
CLOCK_TYPEc                 óâ   — t           j        t          j        _        t
          j                             | ¦  «        }t           j        gt          j        _	        t                               |¦  «        S )z(Check if name is a valid algorithm name.)
r   Úc_intÚ_ntpcÚdo_checknameÚrestyper%   r&   Ú	polybytesr(   Úargtypes)ÚnameÚ	mid_bytess     r   Ú	checknamer?   F   sH   € å!'¤…EÔÔÝ”×"Ò" 4Ñ(Ô(€IÝ#)¤?Ð"3…EÔÔÝ×Ò˜iÑ(Ô(Ð(r   c                 ó`  — t          j        ¦   «         }t          j        dz  ¦   «         }d|_        dt          j        _        t                               t          j         	                    |¦  «        t          j         	                    | ¦  «        t          | ¦  «        t          j         	                    |¦  «        t          |¦  «        t          j        |¦  «        t          j        |¦  «        ¦  «         t          j         	                    t          |¦  «        d|j        …         ¦  «        S )z8Compute HMAC or CMAC from data, key, and algorithm name.é@   s@                                                                   N)r   Úc_size_tÚc_ubyter*   r8   Údo_macr:   r%   r&   r;   ÚlenÚbyrefÚ	bytearray)ÚdataÚkeyr=   Ú	resultlenÚresults        r   ÚmacrL   N   sÙ   € å”Ñ!Ô!€IÝŒn˜rÑ!Ñ$Ô$€FØ€F„LØ…E„LÔÝ	‡L‚L•”×#Ò# DÑ)Ô)Ý”×#Ò# DÑ)Ô)­3¨t©9¬9Ý”×#Ò# CÑ(Ô(­#¨c©(¬(Ý”˜fÑ%Ô%¥v¤|°IÑ'>Ô'>ñ@ô @ð @õ Œ8×Ò�i¨Ñ/Ô/Ð0@°´Ð0@ÔAÑBÔBÐBr   c                 ób   — t           j                             | ¦  «        }t          |¦  «         dS )z&Set program name for logging purposes.N)r%   r&   r;   Ú_setprogname)Ú	in_stringr>   s     r   ÚsetprognamerP   [   s+   € å”×"Ò" 9Ñ-Ô-€IÝ�ÑÔÐÐÐr   c                 ó¾   — t           j                             |¦  «        } | |¦  «        }t          j        ¦   «         }|t
          j        k    rt          d¦  «        ‚|S )z&NTP l_fp to other Python-style format.zill-formed hex date)r%   r&   r;   r   Ú	get_errnoÚerrnoÚEINVALÚ
ValueError)ÚcallbackrO   r>   Ú	out_valueÚerrs        r   Ú	_lfp_wraprY   a   sV   € å”×"Ò" 9Ñ-Ô-€IØ�˜Ñ#Ô#€IÝ
Ô
Ñ
Ô
€CØ
�eŒlÒÐÝÐ.Ñ/Ô/Ð/ØÐr   c                 ó`   — t          | |¦  «        }t          j                             |¦  «        S ©z+Convert a time stamp to something readable.)Ú
_statustoar%   r&   r'   )Úi_typeÚi_stÚmid_strs      r   Ú	statustoar`   k   s'   € å˜ Ñ&Ô&€GÝŒ8×Ò˜GÑ$Ô$Ð$r   c                 ój   — t          t          | ¦  «        }t          j                             |¦  «        S r[   )rY   Ú_prettydater%   r&   r'   )rO   r_   s     r   Ú
prettydaterc   q   s'   € å� YÑ/Ô/€GÝŒ8×Ò˜GÑ$Ô$Ð$r   c                 ó,   — t          t          | ¦  «        S )z$NTP l_fp to Python-style float time.)rY   Ú_lfptofloat)rO   s    r   Ú
lfptofloatrf   w   s   € å•[ )Ñ,Ô,Ð,r   c                 ód   — t           j                             |¦  «        }t          | |¦  «         dS )z)Log send a message to terminal or output.N)r%   r&   r;   Ú_msyslog)ÚlevelrO   r>   s      r   Úmsyslogrj   |   s-   € å”×"Ò" 9Ñ-Ô-€IÝˆU�IÑÔÐÐÐr   )0Ú__doc__Ú
__future__r   r   Úctypes.utilrS   r   Úos.pathr	   Úntp.polyr%   r   r   r    r   r8   r(   r)   r2   r7   r*   ÚTYPE_SYSÚ	TYPE_PEERÚ
TYPE_CLOCKr?   rL   rP   rY   r`   rc   rf   rj   rh   r:   r<   Úntpc_setprognamerN   Úntpc_prettydaterb   Úntpc_lfptofloatre   Úc_doubler\   Úntpc_adj_systimeÚadj_systimeÚc_boolÚntpc_step_systimeÚstep_systimer   r   r   ú<module>r|      sk  ðð *Ð )Ø &Ð &Ð &Ð &Ð &Ð &Ø €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø €€€à€ðð ð ðð ð ð 1ð 1ð 1ð 	ˆ
‰Œ€ØŒ?×!Ò! %¨Ñ4Ô4€ð Œ<×Ò˜u jÑ1Ô1Ô7€ØŒL×Ò  {Ñ3Ô3Ô9€	ØŒ\× Ò  ¨Ñ5Ô5Ô;€
ð)ð )ð )ð
Cð 
Cð 
Cðð ð ðð ð ð%ð %ð %ð%ð %ð %ð-ð -ð -ð
ð ð ð Œ=€Ø€Ô Ø”\ 6¤?Ð3€Ô àÔ%€Ø€Ô ØœÐ)€Ô àÔ#€Ø”o€Ô ØœÐ(€Ô àÔ#€Ø”o€Ô ØœÐ(€Ô ð Œ_€
Ø”_€
Ô Ø”| V¤\Ð2€
Ô ð Ô$€Ø”m€Ô ØœÐ(€Ô ð Ô&€Ø”}€Ô ØœÐ)€Ô Ð Ð r   