
    KcX                     @   d dl Z d dlZd dlmZ d dlmZ  e j        dd           d dlmZ  e j        dd           d dlmZ d dl	Z	d d	l
T 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 dlZd dlZd dlZd dlZ ej        d
           dZdZdZedz   Zedz   Zedz   ZdadZ ej        d            G d dej                  Z  G d d          Z! G d d          Z" G d dej#        j$                  Z% G d dej#        j$                  Z& G d dej#        j$                  Z' G d dej#        j$                  Z(d Z)e*d k    rWd dl+Z+d dlZd dl,Z, e,j-        ej.        ej/        !           d dl0Z0	  e0j1        e0j2        d"           n#  Y nxY w e+j3                      ej4                     d d#l5m6Z6  e6d$%           d&Z7 e8e	j9                  d'k    r<e	j9        d'd         D ],Z:e:d(k    r e;d$            ej<        e=           $e:d)k    rd$Z7-e7r e)              e	j>        d             e=d*            ej?        ej@        +          Z e(            ZA ejB                      ejC                      ejD                     eAE                                 dS dS ),    N)GObject)GLibGdkz3.0)r   Gtkr   )*z1.9.52z!org.fedoraproject.Config.Printingz"/org/fedoraproject/Config/Printingz.NewPrinterDialogz.PrinterPropertiesDialogz
.JobViewerzsystem-config-printerc                   |    e Zd Zej        j        ddfej        j        dej        ffdZd Zd Z	d Z
d Zd Zd	 ZdS )
FetchedPPDsN )readyerrorc                 n    t           j                             |            || _        || _        d | _        d S N)r   __init__	_cupsconn	_language_ppds)selfcupsconnlanguages      4/usr/share/system-config-printer/scp-dbus-service.pyr   zFetchedPPDs.__init__D   s1      $'''!!


    c                     | j         d uS r   r   r   s    r   is_readyzFetchedPPDs.is_readyJ   s    z%%r   c                     | j         S r   r   r   s    r   get_ppdszFetchedPPDs.get_ppdsM   s
    zr   c                 ~    t          d           d | _        | j                            | j        | j                   d S )NzFetchPPDs: runningreply_handlererror_handler)
debugprintr   r   getPPDs2_cups_getppds_reply_cups_errorr   s    r   runzFetchedPPDs.runP   sQ    ()))
t/G/3/? 	  	A 	A 	A 	A 	Ar   c                 p    t          dt          |          z             |                     d|           d S )NzFetchPPDs: error: %sr   )r#   repremitr   connexcs      r   r&   zFetchedPPDs._cups_errorV   s6    *T3ZZ7888		7C     r   c                     t          d           t          j                            || j                  | _        |                     d           d S )NzFetchPPDs: success)r   r   )r#   cupshelpersppdsPPDsr   r   r*   r   r,   results      r   r%   zFetchedPPDs._cups_getppds_replyZ   sH    ())) %**FT^*LL
		7r   )__name__
__module____qualname__r   SignalFlagsRUN_LASTTYPE_PYOBJECT__gsignals__r   r   r   r'   r&   r%   r   r   r   r
   r
   =   s        %.b9%.(*,
 
L  & & &  A A A! ! !    r   r
   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
GetBestDriversRequestc                    || _         || _        || _        || _        || _        || _        || _        g | _        g | _        d| _	        t          d| z             t                                           t          t          d           t          | j        | j                  a| j                            t                              d| j                             | j                            t                              d| j                             t                                           d S t                                          r+t          d           |                     t                     d S t          d           | j                            t                              d| j                             | j                            t                              d| j                             d S )NF+%sz*GetBestDrivers request: need to fetch PPDsr   r   z,GetBestDrivers request: PPDs already fetchedz(GetBestDrivers request: waiting for PPDs)	device_iddevice_make_and_model
device_urir   r   r!   r"   _signalsinstalled_filesdownload_triedr#   g_killtimeradd_holdg_ppdsr
   appendconnect_ppds_ready_ppds_errorr'   r   )r   r?   r@   rA   r   r   r!   r"   s           r   r   zGetBestDriversRequest.__init__`   s   "%:"$  **!#EDL!!!>DEEE $-??FM  &..'4;K"L"LMMMM  &..'4;K"L"LMMMJJMMMMM!! IJKKK  &)))))FGGG$$fnng6:6F'H 'H I I I$$fnng6:6F'H 'H I I I I Ir   c                 *    t          d| z             d S Nz-%sr#   r   s    r   __del__zGetBestDriversRequest.__del__       EDL!!!!!r   c                 N    | j         D ]}t                              |           d S r   )rB   rG   
disconnect)r   ss     r   _disconnect_signalsz)GetBestDriversRequest._disconnect_signals   s4     	" 	"Aq!!!!	" 	"r   c                 X    |                                   |                     |           d S r   )rT   r"   )r   fetchedppdsr-   s      r   rK   z!GetBestDriversRequest._ppds_error   s.      ###C     r   c                   
 |                                 sd S |                                  |                                }	 | j        rt	          j        | j                  }nKi }t          j                            | j                  \  }}||d<   ||d<   d|d<   g |d<   d|d|d| _        |	                    |d         |d         |d         |d         | j
        | j                  
|                    
                                | j        |
	          }|d
         }
|         }	 |dk    r)| j        s!d| _        t          j                    | _        | j        j                            d           | j                            d| j                  | j                            d| j                  g| _        
fd|D             | _        | j                            d| j                  sh	 t4                                           t9          d          }	|                     |	           n)# t9          d          }	|                     |	           w xY wd S n#  Y nxY wt4                                           |                     
fd|D                        d S # t>          $ rB}		 t4                                           n#  Y nxY w|                     |	           Y d }	~	d S d }	~	ww xY w)NMFGMDL DESCMDzMFG:z;MDL:;)devidfitr   exactTFdialog-canceleddriver-download-checkedc                 $    g | ]}||         fS r   r   .0xr_   s     r   
<listcomp>z5GetBestDriversRequest._ppds_ready.<locals>.<listcomp>   s!    )K)K)K!1c!f+)K)K)Kr   download_driver)r^   zFailed to launch dialogc                 $    g | ]}||         fS r   r   rd   s     r   rg   z5GetBestDriversRequest._ppds_ready.<locals>.<listcomp>   s!     B B B!SV B B Br   ) r   rT   r   r?   r/   parseDeviceIDr0   ppdMakeModelSplitr@   getPPDNamesFromDeviceIDrA   orderPPDNamesByPreferencekeysrC   rD   
newprinterNewPrinterGUIdialogNewPrinterWindow	set_modalrI   on_dialog_canceledon_driver_download_checkedhandlesreply_if_failinitrE   remove_holdRuntimeErrorr"   r!   	Exception)r   rV   r0   id_dictmfgmdlppdnamelistppdnamestatuser_   s             @r   rJ   z!GetBestDriversRequest._ppds_ready   sP   ##&& 	F  #####&&=	#~ 
?%3T^DD#(::D<VWW!$!$!#!#58SS###!>..07070704040JL LC 88#((++:>:N@G>A 9 C CK "!nG\FW$$T-@$*.D'",":"<"<DKK0::EBBB$(K$7$79J9=9P%R %R$(K$7$79R9=9X%Z %Z$[ L *L)K)K)K{)K)K)KD&;++->37> , C C 33'33666 ,.G H HA ..2222 !-.G H HA ..2222F ##&&& B B B Bk B B BCCCCC 	# 	# 	#''****"""""""""	#s\   C(J *CI 1H/ 
%I /&II J I?J 
K*)KK%KK%%K*c                     | j         D ]}| j                            |           | j                                         | `d S r   )rv   rq   rR   destroyr   handles     r   _destroy_dialogz%GetBestDriversRequest._destroy_dialog   sI    l 	, 	,FK""F++++KKKr   c                    t          |          dk    rt          d           | j                            t                              d| j                             | j                            t                              d| j                             t                                           d S t          
                                 |                                  |                     | j                   d S )Nr   z;GetBestDrivers request: Re-fetch PPDs after driver downloadr   r   )lenr#   rB   rH   rG   rI   rJ   rK   r'   rE   ry   r   r!   rw   r   objrC   s      r   ru   z0GetBestDriversRequest.on_driver_download_checked   s      1$$UVVVM  &..'4;K"L"LMMMM  &..'4;K"L"LMMMJJMMMF"""D./////r   c                     t                                            |                                  |                     | j                   d S r   )rE   ry   r   r!   rw   r   r   s     r   rt   z(GetBestDriversRequest.on_dialog_canceled   sC    """D./////r   N)r4   r5   r6   r   rO   rT   rK   rJ   r   ru   rt   r   r   r   r<   r<   _   s        I I IB" " "" " "! ! !E# E# E#N  
0 
0 
00 0 0 0 0r   r<   c                   "    e Zd Zd Zd ZddZdS )GroupPhysicalDevicesRequestc                    || _         || _        || _        t          d| z             	 t                                           i }i | _        | j                                         D ];\  }}t          j	        |fi |}|| j        |<   |
                    d          r|||<   <t          |          dk    r1t          j        |          }|                    | j                   d S |                                  d S # t           $ r9}	t                                           |                     |	           Y d }	~	d S d }	~	ww xY w)Nr>   zdnssd://r   )r!   )devicesr!   r"   r#   rE   rF   
deviceobjsitemsr/   Device
startswithr   dnssdresolveDNSSDHostNamesResolverresolve_groupr{   ry   )
r   r   r!   r"   need_resolvingrA   device_dict	deviceobjresolverr   s
             r   r   z$GroupPhysicalDevicesRequest.__init__   s_   **EDL!!!	#  ###N DO+/<+=+=+@+@ ; ;'
K'.
JJkJJ	.7
+((*55 ;1:N:.N##a'''>OO   <<<<< 	# 	# 	###&&&"""""""""	#s   B9C: $C: :
D=.D88D=c                 *    t          d| z             d S rM   rN   r   s    r   rO   z#GroupPhysicalDevicesRequest.__del__  rP   r   Nc                    	 g | _         | j                                        D ]\  }}t          j        |          }d}	 | j                             |          }| j         |                             |           W# t          $ r | j                             |           Y }w xY wg }| j         D ]3}|                    d |                                D                        4t          
                                 |                     |           d S # t          $ r9}	t          
                                 |                     |	           Y d }	~	d S d }	~	ww xY w)NFc                     g | ]	}|j         
S r   )uri)re   rf   s     r   rg   z6GroupPhysicalDevicesRequest._group.<locals>.<listcomp>  s    %L%L%Lae%L%L%Lr   )physdevsr   r   PhysicalDeviceindex
add_device
ValueErrorrH   get_devicesrE   ry   r!   r{   r"   )
r   resolved_devicesrA   r   newphysicaldevicematchediuris_by_physphysdevr   s
             r   r   z"GroupPhysicalDevicesRequest._group  s   	#DM)-)>)>)A)A = =%
I$2$A9$M$M!=++->??AM!$//;;;;! = = =M((*;<<<<<= L= N N##%L%LW5H5H5K5K%L%L%LMMMM##&&&----- 	# 	# 	###&&&"""""""""	#s;   ;D :A98D 9$B D B  A.D 
E.EEr   )r4   r5   r6   r   rO   r   r   r   r   r   r      sF        # # #2" " "# # # # # #r   r   c                   X   e Zd Zd Zd Zej                            edd          d             Z	ej                            edd          d             Z
ej                            edd          d	             Zd
 Zd ZddZej                            ed          d             Zej                            ed          d             Zej                            ed          d             Zej                            ed          d             Zd Zd Zd Zd Zd ZdS )ConfigPrintingNewPrinterDialogc                 t   t           j                            t          |          }t           j        j                            | ||           t          j                    | _        | j        j	        
                    d           | j                            d| j                  | j                            d| j                  | j                            d| j                  | j                            d| j                  g| _        t#          j                    | _        || _        t+          d| z             d S )NbusFra   zprinter-addedzprinter-modifiedrb   r>   )dbusserviceBusName
CONFIG_BUSObjectr   ro   rp   rq   rr   rs   rI   rt   on_printer_addedon_printer_modifiedru   rv   ppdcachePPDCache	_ppdcacher   r#   )r   r   pathr   bus_names        r   r   z'ConfigPrintingNewPrinterDialog.__init__!  s   <'''==$$dHd;;; .00$..666++->-1-DF F++_-1-BD D++-?-1-EG G++-F-1-LN NO "*--!EDL!!!!!r   c                 \    | j                                          t          d| z             d S rM   )rq   r   r#   r   s    r   rO   z&ConfigPrintingNewPrinterDialog.__del__2  s.    EDL!!!!!r   ussrZ   dbus_interfacein_signatureout_signaturec                 t    t                                            | j                            d|||           d S )Nprinter_with_uri)rA   r^   xidrE   rF   rq   rx   )r   r   rA   r?   s       r   NewPrinterFromDevicez3ConfigPrintingNewPrinterDialog.NewPrinterFromDevice6  sI     	, )s 	 	4 	4 	4 	4 	4r   usc                 r    t                                            | j                            d||           d S )Nrh   )r^   r   r   )r   r   r?   s      r   DownloadDriverForDeviceIDz8ConfigPrintingNewPrinterDialog.DownloadDriverForDeviceID=  s:     	+9#FFFFFr   c                     t                                            || _        || _        || _        | j                            || j                   d S r   )rE   rF   r   namer?   r   	fetch_ppd_change_ppd_got_ppd)r   r   r   r?   s       r   	ChangePPDz(ConfigPrintingNewPrinterDialog.ChangePPDC  sL     		"  $(@AAAAAr   c                 `    || _         | j                            | j        | j                   d S )Nr    )ppdr   getPrinters_change_ppd_with_dev_do_change_ppd)r   r   r   r-   s       r   r   z2ConfigPrintingNewPrinterDialog._change_ppd_got_ppdL  sB    ""$2K262E 	# 	G 	G 	G 	G 	Gr   c                     |                     | j        i                                dd           | _        |                     |           d S )Nz
device-uri)getr   rA   r   r2   s      r   r   z3ConfigPrintingNewPrinterDialog._change_ppd_with_devR  sC     **di4488,MMT"""""r   Nc                 x    | j                             d| j        | j        | j        | j        | j                   d S )Nr   )rA   r   r   r^   r   )rq   rx   rA   r   r   r?   r   r+   s      r   r   z-ConfigPrintingNewPrinterDialog._do_change_ppdV  sG    %DO$)"hdn$( 	 	L 	L 	L 	L 	Lr   r   	signaturec                     d S r   r   r   s    r   DialogCanceledz-ConfigPrintingNewPrinterDialog.DialogCanceledZ  	     	r   rS   c                     d S r   r   )r   r   s     r   PrinterAddedz+ConfigPrintingNewPrinterDialog.PrinterAdded_  r   r   sbc                     d S r   r   )r   r   ppd_has_changeds      r   PrinterModifiedz.ConfigPrintingNewPrinterDialog.PrinterModifiedd  r   r   za(s)c                     d S r   r   )r   rC   s     r   DriverDownloadCheckedz4ConfigPrintingNewPrinterDialog.DriverDownloadCheckedi  r   r   c                     t          d| z             t                                           |                                  |                                  |                                  d S )Nz%s: dialog canceled)r#   rE   ry   r   remove_handlesremove_from_connectionr   s     r   rt   z1ConfigPrintingNewPrinterDialog.on_dialog_canceledn  sd    )D0111"""##&&&&&r   c                     t          d| z             t                                           |                     |           |                                  |                                  d S )Nz%s: printer added)r#   rE   ry   r   r   r   )r   r   r   s      r   r   z/ConfigPrintingNewPrinterDialog.on_printer_addedu  sf    '$.///"""4   ##&&&&&r   c                     t          d| z             t                                           |                     ||           |                                  |                                  d S )Nz%s: printer modified)r#   rE   ry   r   r   r   )r   r   r   r   s       r   r   z2ConfigPrintingNewPrinterDialog.on_printer_modified|  sh    *T1222"""dO444##&&&&&r   c                     t          d| z             t                                           |                     |           |                                  |                                  d S )Nz%s: driver download checked)r#   rE   ry   r   r   r   r   s      r   ru   z9ConfigPrintingNewPrinterDialog.on_driver_download_checked  sf    1D8999"""""O444##&&&&&r   c                 N    | j         D ]}| j                            |           d S r   )rv   rq   rR   r   s     r   r   z-ConfigPrintingNewPrinterDialog.remove_handles  s6    l 	, 	,FK""F++++	, 	,r   r   )r4   r5   r6   r   rO   r   r   methodCONFIG_NEWPRINTERDIALOG_IFACEr   r   r   r   r   r   signalr   r   r   r   rt   r   r   ru   r   r   r   r   r   r      s_       " " """ " " 
\(E&+2  ? ?4 4? ?4
 
\(E&*"  > >G G> >G 
\(E&+2  ? ?B B? ?BG G G# # #L L L L 
\(E#%  ' ' ' ' 
\(E#&  ( ( ( ( 
\(E#'  ) ) ) ) 
\(E#)  + + + +' ' '' ' '' ' '' ' ', , , , ,r   r   c                       e Zd Zd Zej                            edd          d             Zej        	                    ed          d             Z
d ZdS )	%ConfigPrintingPrinterPropertiesDialogc                     t           j                            t          |          }t           j        j                            | ||           t          j                    | _        | j        j        	                    d           | j        
                    d| j                  }|| _        | j                            |           | j        j        	                    d           t                                           d S )Nr   r   object_pathFzdialog-closed)r   r   r   r   r   r   printerpropertiesPrinterPropertiesDialogrq   rs   rI   on_dialog_closedclosed_handleshowrE   rF   )r   r   r   r   r   r   r   s          r   r   z.ConfigPrintingPrinterPropertiesDialog.__init__  s    <'''==$$dX4$PPP'?BB$$e,,,$$ot7LMM#$$$e,,,r   rZ   r   c                 R    t          d           | j                                        S )NzPrinting test page)r#   rq   printTestPager   s    r   PrintTestPagez3ConfigPrintingPrinterPropertiesDialog.PrintTestPage  s'     	())){((+++r   r   c                     d S r   r   r   s    r   Finishedz.ConfigPrintingPrinterPropertiesDialog.Finished  r   r   c                     |                                  t                                           |                                  | j                            | j                   |                                  d S r   )r   rE   ry   r   rq   rR   r   r   )r   rq   s     r   r   z6ConfigPrintingPrinterPropertiesDialog.on_dialog_closed  se    """ 2333##&&&&&r   N)r4   r5   r6   r   r   r   r   $CONFIG_PRINTERPROPERTIESDIALOG_IFACEr   r   r   r   r   r   r   r   r     s        	  	  	  
\(L&(  < <, ,< <, 
\(L#%  ' ' ' '' ' ' ' 'r   r   c                       e Zd Zd Zd Zej                            edd          d             Z	ej        
                    ed          d             Zd Zd	S )
ConfigPrintingJobAppletc                 ,   t           j                            t          |          }t           j        j                            | ||           t          j                     t          j	        t          j
                    dd          | _        | j                            d           t          j                     | j                            d| j                  }|| _        d| _        t$                                           t)          d| z             d S )Nr   r   T)r   appletmy_jobsFfinishedr>   )r   r   r   r   r   r   r   threads_enter	jobviewer	JobViewer	SystemBus	jobappletset_process_pendingthreads_leaverI   on_jobapplet_finishedfinished_handlehas_finishedrE   rF   r#   )r   r   r   r   r   s        r   r   z ConfigPrintingJobApplet.__init__  s    <'''==$$dX4$PPP",1B1B48$H H H**E222''T5OPP%!EDL!!!!!r   c                 *    t          d| z             d S rM   rN   r   s    r   rO   zConfigPrintingJobApplet.__del__  rP   r   rZ   r   c                 J    | j         s| j                                         d S d S r   )r  r  cleanupr   s    r   QuitzConfigPrintingJobApplet.Quit  s3       	&N""%%%%%	& 	&r   r   c                     d S r   r   r   s    r   r   z ConfigPrintingJobApplet.Finished  s    r   c                     |                                   t                                           d| _        | j                            | j                   |                                  d S )NT)r   rE   ry   r  r  rR   r  r   )r   r  s     r   r  z-ConfigPrintingJobApplet.on_jobapplet_finished  s]    """ !!4#7888##&&&&&r   N)r4   r5   r6   r   rO   r   r   r   CONFIG_JOBVIEWER_IFACEr  r   r   r  r   r   r   r  r    s        " " "" " " 
\(>&(  < <& &< <& 
\(>"MM  NM' ' ' ' 'r   r  c                      e Zd Zd Zd Zej                            edd          d             Z	ej                            edd          d             Z
ej                            edd          d	             Zej                            ed
dd          d             Zej                            edd          d             Zej                            eddd          d             ZdS )ConfigPrintingc                     t          j                    | _        t           j                            t
          | j                  }t           j        j                            | |t                     t          j
                    | _        d| _        d | _        d | _        d | _        t!          j        t           j                  d         | _        | j        s+t!          j        t           j                  d         | _        d S d S )Nr   r   )r   
SessionBusr   r   r   r   r   r   CONFIG_PATH	asyncconn
Connectionr   _pathn
_jobapplet_jobappletpathr   locale	getlocaleLC_MESSAGESr   LC_CTYPE)r   r   s     r   r   zConfigPrinting.__init__  s    ?%%<'''BB$$dHkBBB"-00"
)6+=>>qA~ 	C#-v??BDNNN	C 	Cr   c                 8    | j                                          d S r   )r   r   r   s    r   r   zConfigPrinting.destroy  s    !!!!!r   rZ   rS   r   c                     | xj         dz  c_         t          d| j         }t          | j        || j                   t
                                           |S )N   z/NewPrinterDialog/)r   r  r   r   r   rE   aliver   r   s     r   NewPrinterDialogzConfigPrinting.NewPrinterDialog  sZ     	q+6;;D&$(,	8 	8 	8r   r   c                     | xj         dz  c_         t          d| j         }t          | j        |||           t                                           |S )Nr)  z/PrinterPropertiesDialog/)r   r  r   r   rE   r*  )r   r   r   r   s       r   r   z&ConfigPrinting.PrinterPropertiesDialog  sS     	q2=++t{{K-txsDIIIr   c                     | j         | j         j        rB| xj        dz  c_        t          d| j        }t	          | j        |          | _         || _        | j        S )Nr)  z/JobApplet/)r!  r  r   r  r  r   r"  r+  s     r   	JobAppletzConfigPrinting.JobApplet  s\     /
!T_%A
!KK1KK(3T[[AD5txFFDO"&D!!r   sssza(ss)r    )r   r   r   async_callbacksc           	      D    t          |||| j        | j        ||           d S r   )r<   r   r   )r   r?   r@   rA   r!   r"   s         r   GetBestDriverszConfigPrinting.GetBestDrivers  s5    
 	y*?#~t~,m	= 	= 	= 	= 	=r   asc                 R    t          j        |          }t          j        |          S r   )cupsPPDr/   missingExecutables)r   ppd_filenamer   s      r   MissingExecutablesz!ConfigPrinting.MissingExecutables  s$     h%%-s333r   z	a{sa{ss}}aasc                 (    t          |||           d S r   )r   )r   r   r!   r"   s       r   GroupPhysicalDevicesz#ConfigPrinting.GroupPhysicalDevices  s     	$Wm]KKKKKr   N)r4   r5   r6   r   r   r   r   r   CONFIG_IFACEr,  r   r/  r3  r:  r=  r   r   r   r  r    s       C C C" " " 
\&(  = = = = 
\&*#  ? ? ? ? 
\&(  = =" "= =" 
\&+7)K  M M= =M M= 
\&)  ? ?4 4? ?4 
\&1)K  M ML LM ML L Lr   r  c                  b  	 t          t          j                  dk    rZt          j        d         } d}t          t          j                  dk    r(t          j        d         dk    rt          j        d         }nt          d           d S ddlm} t          j                    }|                    t          t                    }t          j        |t                    }|                                }t          |           |                    t          |          }t          j        |t                    }t!          j                    	d	fd		}d	fd
	}|                    d|d           |                    d|d           |                    d| |           	                                 d S )N   rZ         z--devidzDevice URI requiredr   r   c                 T    t          d| z                                              d S )Nz%s: Dialog canceledprintquit)r   loops    r   on_canceledz!_client_demo.<locals>.on_canceled)  s(    $t+,,,		r   c                 Z    t          |d| d                                            d S )Nz: Printer 'z' addedrD  )r   r   rG  s     r   on_addedz_client_demo.<locals>.on_added-  s/    4446777		r   r   r   )path_keywordr   r   )r   sysargvrE  gi.repositoryr   r   r  
get_objectr   r  	Interfacer>  r,  r#   r   r   MainLoopconnect_to_signalr   r'   )
rA   r?   r   r   r   ifacer   rH  rJ  rG  s
            @r   _client_demorT    s   
CH~~Xa[
	NNQHQK9$$I$%%%!!!!!!
/

C
..*k
2
2CNC..E!!$$D
..*d
+
+CNC!>??ED           
-{*0  2 2 2	^X*0  2 2 2 
:y999HHKKKKKr   __main__)domain	localedirrZ   )DBusGMainLoopT)set_as_defaultFr)  z--debugz--clientzService running...)killfunc)Fgidbus.servicer   rN  r   r   require_versionr   r   rL  debugr  configr6  r/   r   r	  	killtimerro   r   r   r   requirer   r  r>  r   r  r  rG   rE   set_prgnamer
   r<   r   r   r   r   r   r  r  rT  r4   	ppdippstrgettextinstallPACKAGErW  r#  	setlocaleLC_ALLrx   threads_init	dbus.glibrX  client_demor   rM  optset_debuggingset_debugprint_fnr#   exit	KillTimer	main_quitcpr  mainr  r   r   r   r   <module>rt     s  . 
			     ! ! ! ! ! !        5%              5%             



                                        h   .
00*-@@ %14N%N $#l2 	  ( ) ) )         '/      DJ0 J0 J0 J0 J0 J0 J0 J0X3# 3# 3# 3# 3# 3# 3# 3#jl, l, l, l, l,T\%8 l, l, l,\' ' ' ' 'DL,? ' ' '<!' !' !' !' !'dl1 !' !' !'FBL BL BL BL BLT\( BL BL BLH$ $ $L zMMMNNNGO6>V5EFFFFMMM&-,,,,INC''''''M$''''K
sCH~~8ABB< 	# 	#Cit$$$--z::::
""" !J$%%%%)%>>>K			BCCHKKKCJJMMMMMI s   4F F