
    =	f?                     X   d dl mZ d dlZd dlZd dlZd dlmZmZmZ d dl	Z	d dl
Z
d dlZd dlZd dlmc mZ d dl d dl d dl d dlmZmZmZmZmZ d dlmZ ddl  e	j2                  de	j4                        Zd	Zd
ZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ( G d de)      Z* G d de+      Z,y)    )divisionN)BytesIOto_bytes_utf8
to_unicode)*)deviceutilscodesdimestatus)r      s   HTTP/\d.\d\s(\d+)         i  i     i  a  <?xml version="1.0" encoding="UTF-8"?><!-- THIS DATA SUBJECT TO DISCLAIMER(S) INCLUDED WITH THE PRODUCT OF ORIGIN.--><prdcfgdyn2:ProductConfigDyn xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dd="http://www.hp.com/schemas/imaging/con/dictionaries/1.0/" xmlns:prdcfgdyn2="http://www.hp.com/schemas/imaging/con/ledm/productconfigdyn/2009/03/16" xmlns:prdcfgdyn="http://www.hp.com/schemas/imaging/con/ledm/productconfigdyn/2007/11/05" xsi:schemaLocation="http://www.hp.com/schemas/imaging/con/ledm/productconfigdyn/2009/03/16 ../schemas/ledm2/ProductConfigDyn.xsd http://www.hp.com/schemas/imaging/con/ledm/productconfigdyn/2007/11/05 ../schemas/ProductConfigDyn.xsd http://www.hp.com/schemas/imaging/con/dictionaries/1.0/ ../schemas/dd/DataDictionaryMasterLEDM.xsd"><prdcfgdyn2:ProductSettings><dd:TimeStamp>%s</dd:TimeStamp></prdcfgdyn2:ProductSettings></prdcfgdyn2:ProductConfigDyn>a  <?xml version="1.0" encoding="UTF-8"?><!--Sample XML file generated by XMLSPY v5 rel. 4 U (http://www.xmlspy.com)--><faxcfgdyn:FaxConfigDyn xmlns:faxcfgdyn="http://www.hp.com/schemas/imaging/con/ledm/faxconfigdyn/2009/03/03" xmlns:dd="http://www.hp.com/schemas/imaging/con/dictionaries/1.0/" xmlns:fax="http://www.hp.com/schemas/imaging/con/fax/2008/06/13" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.hp.com/schemas/imaging/con/ledm/faxconfigdyn/2009/03/03 ../schemas/FaxConfigDyn.xsd"><faxcfgdyn:SystemSettings><dd:PhoneNumber>%s</dd:PhoneNumber></faxcfgdyn:SystemSettings></faxcfgdyn:FaxConfigDyn>a  <?xml version="1.0" encoding="UTF-8"?><!--Sample XML file generated by XMLSPY v5 rel. 4 U (http://www.xmlspy.com)--><faxcfgdyn:FaxConfigDyn xmlns:faxcfgdyn="http://www.hp.com/schemas/imaging/con/ledm/faxconfigdyn/2009/03/03" xmlns:dd="http://www.hp.com/schemas/imaging/con/dictionaries/1.0/" xmlns:fax="http://www.hp.com/schemas/imaging/con/fax/2008/06/13" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.hp.com/schemas/imaging/con/ledm/faxconfigdyn/2009/03/03 ../schemas/FaxConfigDyn.xsd"><faxcfgdyn:SystemSettings><dd:CompanyName>%s</dd:CompanyName></faxcfgdyn:SystemSettings></faxcfgdyn:FaxConfigDyn>a   <?xml version="1.0" encoding="UTF-8"?><FaxPCSendDyn xmlns="http://www.hp.com/schemas/imaging/con/ledm/printtofaxdyn/2008/11/24" xmlns:dd="http://www.hp.com/schemas/imaging/con/dictionaries/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.hp.com/schemas/imaging/con/ledm/printtofaxdyn/2008/11/24 ../schemas/FaxPCSendDyn.xsd"><FaxPCSendConfig><FaxTxPhoneNumber>%s</FaxTxPhoneNumber><NumPages>%d</NumPages><TTI_Control>TTI_Off</TTI_Control></FaxPCSendConfig></FaxPCSendDyn>aH  <?xml version="1.0" encoding="UTF-8" ?><FaxPCSendDyn xmlns="http://www.hp.com/schemas/imaging/con/ledm/printtofaxdyn/2008/11/24" xmlns:dd="http://www.hp.com/schemas/imaging/con/dictionaries/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.hp.com/schemas/imaging/con/ledm/printtofaxdyn/2008/11/24 ../schemas/FaxPCSendDyn.xsd"><PageConfig><PageNum>%d</PageNum><Width>1728</Width><Height>2200</Height><ImageType>BW</ImageType><Compression>mh</Compression><HorizontalDPI>%d</HorizontalDPI><VerticalDPI>%d</VerticalDPI></PageConfig></FaxPCSendDyn>a  <?xml version="1.0" encoding="UTF-8"?><Job xmlns="http://www.hp.com/schemas/imaging/con/ledm/jobs/2009/04/30" xmlns:dd="http://www.hp.com/schemas/imaging/con/dictionaries/1.0/" xmlns:fax="http://www.hp.com/schemas/imaging/con/fax/2008/06/13" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.hp.com/schemas/imaging/con/ledm/jobs/2009/04/30 ../schemas/Jobs.xsd"><JobUrl>%s</JobUrl><JobState>Canceled</JobState></Job>c                   z    e Zd ZdddedfdZd Zd Zd Zd Z e	ee      Z
d Zd	 Z e	ee      Z	 	 	 dd
Zd Zy)LEDMFaxDeviceNFc                     t         j                  | |||||       d | _        d | _        | j                  dk(  r| j
                  | _        y d| _        y )Nnet	localhost)	FaxDevice__init__send_fax_threadupload_log_threadbushost	http_host)self
device_uriprinter_namecallbackfax_typedisable_dbuss         /usr/share/hplip/fax/ledmfax.pyr   zLEDMFaxDevice.__init__J   sQ    
 	4'#X'	)
  $!%88u!YYDN(DN    c                      y)NF r   s    r$   isAuthRequiredzLEDMFaxDevice.isAuthRequired\   s    r%   c                 >   d|| j                   t        |      |fz  }t        j                  |       | j	                  |j                  d             t               }| j                  d|d      r	 | j                  d|d      r|j                         }t        j                  |       | j                          t        j                  |      }|t        S 	 t        |j                  d            }|t        k(  S # t        t         f$ r t"        }Y |t        k(  S w xY w)NzbPUT %s HTTP/1.1
Connection: Keep-alive
User-agent: hplip/2.0
Host: %s
Content-length: %d

%sutf-8      timeoutr   )r   lenloglog_data	writeLEDMencoder   readLEDMgetvalue	closeLEDMhttp_result_patmatchHTTP_OKintgroup
ValueError	TypeError
HTTP_ERROR)r   urlpostdataresponser9   codes          r$   putzLEDMFaxDevice.put_   s     
dnnc$i./ 	Tt{{7+,9mmC1m5 mmC1m5 $$&X%%h/=.	u{{1~&D w I& 	Dw	s   C< <DDc                 h    t         |z  }t        j                  d|z         | j                  d|      S )NzSetPhoneNum:xml Value:%s/DevMgmt/FaxConfigDyn.xml)setPhoneNumXMLr1   debugrE   )r   numxmls      r$   setPhoneNumzLEDMFaxDevice.setPhoneNum|   s0    s#		,c12xx3S99r%   c                 &    | j                  dd      S )NrG   z>faxcfgdyn:faxconfigdyn-faxcfgdyn:systemsettings-dd:phonenumber)readAttributeFromXmlr(   s    r$   getPhoneNumzLEDMFaxDevice.getPhoneNum   s!    (()D  FF  G  	Gr%   c                     	 t         |z  }| j                  d      S # t        t        f$ r t        j	                  d       Y 8w xY w)NzUnicode ErrorrG   )setStationNameXMLUnicodeEncodeErrorUnicodeDecodeErrorr1   errorrE   )r   namerK   s      r$   setStationNamezLEDMFaxDevice.setStationName   sH    	&"T)3 xx3S99 "#56 	&99_%	&s   	 $AAc                 8    t        | j                  dd            S )NrG   z>faxcfgdyn:faxconfigdyn-faxcfgdyn:systemsettings-dd:companyname)r   rN   r(   s    r$   getStationNamezLEDMFaxDevice.getStationName   s)    $334O  QQ  R  S  	Sr%   c
                     | j                         s?t        | | j                  |||||||||	      | _        | j                  j	                          yy)NTF)isSendFaxActiveLEDMFaxSendThreadservicer   start)
r   phone_num_listfax_file_listcover_messagecover_re
cover_funcpreserve_formattingr    update_queueevent_queues
             r$   	sendFaxeszLEDMFaxDevice.sendFaxes   sW     ##%#4T4<<Yf5BHj5H5A<5@	$BD    &&(r%   c                     t        j                         }d|d   |d   |d   |d   |d   |d   fz  }t        |z  }t        j	                  d|z         | j                  d	|      ry
t        j	                  d       y)Nz%4d-%02d-%02dT%02d:%02d:%02dr   r      r      r-   zsetDateTimeXML Value:%sz/DevMgmt/ProductConfigDyn.xmlTzAFailed to set date and time. Set date and time using front panel.F)time	localtimesetDateTimeXMLr1   rI   rE   )r   tdate_bufrK   s       r$   setDateAndTimezLEDMFaxDevice.setDateAndTime   s~    NN1QqT1Q41qtQqTSTUVSW4XXx(		+S01883S9IIZ[r%    rq   NFrq   NN)__name__
__module____qualname__FAX_TYPE_NONEr   r)   rE   rL   rO   property	phone_numrV   rX   station_namerf   ro   r'   r%   r$   r   r   H   sb    "&T'#)$::Gk2I:S NN;LRTKM15"
r%   r   c                   :    e Zd Z	 	 ddZd Zd Zd Zd	dZd	dZy)
r[   Nc                     t         j                  | |||||||||	|
|       |j                  dk(  rd| j                  j                  z  | _        y d| _        y )Nr   z%s:8080zlocalhost:8080)FaxSendThreadr   r   devr   r   )r   r|   r\   r^   r_   r`   ra   rb   rc   r    rd   re   s               r$   r   zLEDMFaxSendThread.__init__   sV     	tS'>=Hj2E<	6 77e&6DN-DNr%   c                 $   d}d}d}d}d}d}d}d}d	}	d
}
d}d}
d}d}d}| j                         }|}t        }g | _        d}||k7  r9| j                         r|}t        j                  d|z         ||k(  r1t        j                  d       | j                  t        ddf       |}n||k(  r1t        j                  d       | j                  t        ddf       |}n||k(  r-t        j                  d       | j                  |ddf       |}ni||k(  r1t        j                  d       | j                  t        ddf       |}n3||k(  rt        j                  ddz         |}	 	 | j                  j                          	 | j                  j                  | _        t        j                  d| j                  z         | j                  j                  | _        t        j                  d| j                   z         | j                  j'                          na||k(  r+t        j                  ddz         | j)                  |      }n1||k(  r+t        j                  ddz         | j+                  |      }n||k(  rmt        j                  ddz         |	}	 t-        |      }t        j                  d|d    z         | j                  t.        d|d    f       | j                  d d  }n||	k(  r+t        j                  d"dz         | j3                        }n_||
k(  r+t        j                  d#dz         | j5                  |      }n/||k(  r+t        j                  d$dz         | j7                  |      }n||k(  rwt        j                  d%dz         |}d}d}d}d}d}d}d}d}d	}d
}d&} d'}!|}"|"|k7  r| j                         rt        j                  d(       |}"|!rN| j9                         }#|#t:        j<                  t:        j>                  fvrt        j                  d)|#z         |}"|}t        j                  d*||"fz         |"|k(  rd'}!|}"|}
n|"|k(  rt        j                  d+       d'}!| }"|}
nu|"|k(  rt        j                  d,       d'}!| }"|}
nS|"|k(  rt        j                  d-       d'}!| }"|}
n1|"|k(  rWt        j                  d.dz         |}"	 | j                  j                          | j                  j@                  tB        k(  	r|}"	n|"|k(  r6t        j                  d/dz         	 t        | jD                  d0      }$	 |$jI                  tJ              }%| jM                  |%      \
  }&}'}(})}*}+},}-}.}/|&tO        d2      k7  rt        j                  d3       |}"n t        j                  d4|&|'|(|)|*|+|,|-fz         d5   }0tP        |0|(fz  }1| jS                  d6tU        |1      |1      }2t        jW                  |2       | j                  jY                          | j                  j[                  tO        |2             t]               }3	 | j                  j_                  d7|3d89      r 	 | j                  j_                  d7|3d89      r | j                  ja                          |3jc                         }3t        jW                  |3       | je                  |3      tf        k(  r|}"n`| je                  |3      th        k(  r|tj        k  r|}"|d:z  }n7|tj        kD  rt        j                  d;       |}"t        j                  d<       n0|3jm                  d=dtU        |3            }4|3jm                  d>dtU        |3            }5|3jm                  d?dtU        |3            }6|3|4|5 jo                         }7|7jq                  d@dA      jq                  dBdA      }7|7dAk(  rY|3|4|6 jo                         }7|7jq                  d@dA      jq                  dBdA      }7t        j                  dC|7dDts        |7             ts        |7      tt        k7  r|7jw                  dE      }7n|"|k(  rt        j                  dFdz         t]               }8t        j                  dG(z         ty        |(      D ]s  }9| j                         r|}"|"|k(  r n0	 $jI                  tz              }%| j}                  |%      \  }:};}<}=}>}/t        j                  dH|:|;|<|=|>fz         |;t~        k7  rt        j                  dIt~        z         |8j                  |$jI                  |=             |$jI                  |>      }?|8j                  d       	 |8jI                  |=      }2|2dAk(  rt        j                  dJ       |}" nM| j                  j                  7dK      }@t        j                  dL|@z         t        |:)*fz  }A| jS                  |@tU        |A      |A      }Bt        jW                  |B       | j                  jY                          	 | j                  j[                  B       t]               }3	 | j                  j_                  d7|3d89      r 	 | j                  j_                  d7|3d89      r | j                  ja                          |3jc                         }3t        jW                  |3       | je                  |3      t        k7  r|}"t        j                  dM        n| j                  j                  |7dK      }C	 | j                         r|}"n^| j                  |7      \  }D}E|D|k(  r>Et        k(  sEt        k(  sEt        k(  s	Et        k(  rt        j                  dN       |}"E}nD|k(  rnq|"|k(  s|"|k(  r nQ| jS                  CtU        |2      ddO      }Bt        j                  dP|Bz         | j                  jY                          | j                  j[                  |B       t        j                  dQ       	 | j                  j[                  |2       t]               }3	 | j                  j_                  d7|3d9      r 	 | j                  j_                  d7|3d9      r | j                  ja                          |3jc                         }3t        jW                  |3       | je                  |3      t        k7  rt        j                  dR       |}" n|8j                  d       |8j                  d       v |}"n|"|k(  r|}"n|"|k(  rKt        j                  dSdz         t        7z  }B| j                  |7tU        |B      |B      }2t        jW                  |2       | j                  jY                          | j                  j[                  tO        |2             t]               }3	 | j                  j_                  d7|3d9      r 	 | j                  j_                  d7|3d9      r | j                  ja                          |3jc                         }3t        jW                  |3       | je                  |3      t        k(  r| }"n|}"t        j                  dT       ny|"| k(  rtt        j                  dUdz         t        j                  dV       	 $j'                          | j                  ja                          | j                  j'                          |}"|"|k7  r<n||k(  r}t        j                  dWdz         | j                  rWt        j                  dX| jD                  z         	 t        j                  | jD                         t        j                  dY       |}||k7  r8y y # t"        $ r t        j                  d       |}Y w xY w# t"        $ r/}t        j                  d|j$                  z         |}Y d }~d }~ww xY w# | j                  j'                          w xY w# t0        $ r |}t        j                  d!       Y w xY w# t"        $ r/}t        j                  d|j$                  z         |}"Y d }~nd }~ww xY w# tF        $ r t        j                  d1       |}"Y w xY w# tF        $ r t        j                  d1       |}"Y w xY w# t"        $ r  |}"| j                  ja                          Y bw xY w# tF        $ r t        j                  d1       |}"Y aw xY w# tF        $ r t        j                  d1       |}"Y  ;w xY w# t"        $ r! |}"| j                  ja                          Y  hw xY w# t"        $ r! |}"| j                  ja                          Y  w xY w# t"        $ r! |}"| j                  ja                          Y  w xY w# t"        $ r! |}"| j                  ja                          Y  w xY w# t"        $ r  |}"| j                  ja                          Y w xY w# t        $ r Y aw xY w# t        $ r t        j                  dZ       Y w xY w)[Nr   
            (   2   <   F   P   Z   d   n   x      zSTATE=(%d, 0, 0)zAborted by user.rq   zSuccess.zError, aborting.zDevice busy, aborting.z%s State: Get sender infoz********************zSender name=%szSender fax=%szLEDM GET failed!zUnable to open device (%s).z!%s State: Pre-render non-G4 filesz%s State: Get total page countz%s State: Next recipientzProcessing for recipient %srU   zLast recipient.z%s State: Render cover pagez%s State: Handle single filez%s State: Merge multiple filesz%s State: Send fax   FzFax send aborted.zD/L error state=%dzSTATE=(%d, %d, 0)zFax send error.zFax device busy.zFax send success.z%s State: Open devicez%s State: BeginJobrbzUnable to read fax file.hplip_g3zInvalid file header. Bad magic.z>Magic=%s Ver=%d Pages=%d hDPI=%d vDPI=%d Size=%d Res=%d Enc=%dfaxz/FaxPCSend/Jobr,   r-   r.   r   z2HTTP ERROR CODE: 531, Server Temporary UnavailablezCreate Job request faileds   /Jobs/JobList/s   Content-Lengths   Cache-Control   r%      
zjobListURI = [z] type=r+   z%s State: DownloadPageszTotal Number of pages are:%dz%Page=%d PPR=%d RPP=%d BPP=%d Thumb=%dz#Pixels per line (width) must be %d!zNo data!z!j:job-faxpcsendstatus-resourceurizpageConfigURI:[%s]z.Page config data is not accepted by the devicez%setting state to FAX_SEND_STATE_ERRORzapplication/octet-streamz.Sending Page Image XML Data [%s] to the devicez'Sending Raw Data to printer............z(Image Data is not accepted by the devicez%s State: CancelJobzJob Cancel Request Failedz%s State: Close sessionzClosing session...z%s State: CleanupzRemoving merged file: %sRemovedz	Not found)Snext_recipient_genSTATUS_ERRORrendered_file_listcheck_for_cancelr1   rI   rT   write_queueSTATUS_IDLESTATUS_COMPLETEDSTATUS_BUSYr|   openrx   sender_namerw   
sender_faxErrormsgclose
pre_rendercount_pagesnextSTATUS_SENDING_TO_RECIPIENTStopIteration
cover_pagesingle_filemerge_filesgetFaxDownloadStatepmlUPDN_STATE_XFERACTIVEUPDN_STATE_XFERDONEdevice_stateDEVICE_STATE_NOT_FOUNDfIOErrorreadFILE_HEADER_SIZEdecode_fax_headerr   createJobXMLformat_http_postr0   r2   openLEDMr3   r   r5   r7   r6   get_error_codeHTTP_CREATEDHTTP_SERVICE_UNAVALIABLE	MAX_TRIESfindstripreplacetypestrdecoderangePAGE_HEADER_SIZEdecode_page_headerPIXELS_PER_LINEwriteseekrN   pageConfigXMLHTTP_ACCEPTEDcheckForErrorSTATUS_ERROR_IN_TRANSMITTINGSTATUS_ERROR_IN_CONNECTINGSTATUS_ERROR_PROBLEM_IN_FAXLINESTATUS_JOB_CANCELtruncatecancelJobXMLformat_http_putr:   	NameErrorremove_temp_fileosremoveOSError)Fr   
STATE_DONESTATE_ABORTEDSTATE_SUCCESS
STATE_BUSYSTATE_READ_SENDER_INFOSTATE_PRERENDERSTATE_COUNT_PAGESSTATE_NEXT_RECIPIENTSTATE_COVER_PAGESTATE_SINGLE_FILESTATE_MERGE_FILESSTATE_SEND_FAXSTATE_CLEANUPSTATE_ERRORnext_recipientstateerror_state	num_triese	recipientrecipient_file_listFAX_SEND_STATE_DONEFAX_SEND_STATE_ABORTFAX_SEND_STATE_ERRORFAX_SEND_STATE_BUSYFAX_SEND_STATE_SUCCESSFAX_SEND_STATE_DEVICE_OPENFAX_SEND_STATE_BEGINJOBFAX_SEND_STATE_DOWNLOADPAGESFAX_SEND_STATE_ENDJOBFAX_SEND_STATE_CANCELJOBFAX_SEND_STATE_CLOSE_SESSIONmonitor_statefax_send_state	fax_stateffheadermagicversiontotal_pageshort_dpivert_dpi	page_size
resolutionencoding	reserved1	reserved2faxnum	createJobrB   rC   pospos1pos2
jobListURIpageppage_numpprrppbytes_to_readthumbnail_bytes	thumbnailpageConfigURI
pageConfigxmldatapageImageURIStatus	Fax_StatesF                                                                         r$   runzLEDMFaxSendThread.run   s   

!#!002&""$	z!$$&%II(501%		,-  +q"!56% -'		*%  "2Ar!:;% +%		,-  +q"!56% *$		23  +q"!56% 00		5@A'%0
0/3xx/D/DD,II&69I9I&IJ.2hh.@.@DOIIo&GH HHNN$ /)		=HI(9:++		:fEF(()=>..		4?@( $^ 4III;i>OOP$$&A1iPVFW%XY '+&=&=a&@# **		76BC	2 ++		8FCD((8++		:fEF((8.(		.&9:,&'#')$')$&(#)+&-/**,'/1,(*%+-(/2, %!;$(;;,,.		"56)=$$($<$<$>	(S-F-FH_H_,``II&:Y&FG-AN$/EII1^^4TTU%)==(-)A -'+??		"34(-)E +'+>>		"45(-)E *'+AA		"56(-)E 4'+EE		"9V"DE)@F HHMMO
  $xx448NN1E'+BB		"6&"AB%!%dffd!3B%%'WW-=%>F JNI_I_`fIgGwXx&)Y M*$==II&GH-ANII&f',g{HhXa'18'='= > "+5!1$0FK3H$H	#445Ec)nU^_T*))+**=+>?#*9""&(("3"3C1"3"M $ #'(("3"3C1"3"M **,#+#4#4#6X...x8LH-IN!00:>VV[dhq[q-DN%NI(94 #		*^ _-ANII&AB!&mm,=aHN'}}->qXO'}}-=aHN%-c$%7%=%=%?
%/%7%7c%B%J%J5QT%U
%,)1#d);)A)A)CJ)3););E#)F)N)NuUX)YJIIJPTU_P`&ab
+s2*4*;*;G*DZ'+GG		";v"FG&y		"@+"MN!&{!3 CA#4461E-1EE %))+1A)B !% 7 7 ? ZHc3PY  II&M'/c=/&Z'[ \  #o5 #		*ORa*a b JJrww}'=>(*(@I IIaL&'+yy'?  $s{ #		* 51E %,0HH,I,I*Ux,yMII&:M&IJ)6(88T)TJ&*&;&;M#j/Zd&eGLL1 HH--/& $ 2 27 ; (/yH&&*hh&7&7Xq&7&Q$( '+hh&7&7Xq&7&Q !HH..0(0(9(9(;HLL2#228<M1E #		*Z [ %+/88+H+HTw+xL"&#'#8#8#:5IN$)484F4Fz4R 1	#)-A#AyTpGp$-1K$Ky\{O{$-1B$B$'II.U$V5IN2;K$)%+/E%E$) #'   .1EE\pIp % '+&;&;LTSUVp&qGII&VX_&_` HH--/ HH..w7II&OP& $ 2 24 8 (/yH&&*hh&7&7Xr&7&R$( '+hh&7&7Xr&7&R !HH..0'/'8'8':HLL2#228<M #		*T U1E % MM!, IIaLyC~ .CN (+@@)? (+CC		"76"BC"."<#33Js7|GTT*))+**=+>?#*9""&(("3"3C2"3"N $ #'(("3"3C2"3"N **,#+#4#4#6X...x8GC-IN-ANII&AB (+GG		";v"FG		"67!HHJ **,()<[	 %(;;`	 -'		-89((II8466AB/		$&&)		), #Q z!Z  % 0II&89$/E0 ! ,		"?!%%"GH +, HHNN$& % )EII/0f  % BII&Caee&KL-ANB  ' %II&@A-AN$%  ' %II&@A-AN$%8  % "-AN HH..0!"Z $+ ) #		*D E1E ()( $+ & #		*D E1E %&( $) &1E $ 2 2 4 %& $) &1E $ 2 2 4 %&R $) &1E $ 2 2 4 %& $) &1E $ 2 2 4 %&N  % "-AN HH..0!"*  ) ! !& # /		+./s  %~'  A:~  AA@ A@( 7AA# AB
 =AB1 >AC0AD,AD,=AEAF=AF3=AG  'AH 4AH   ~$ " #~$$" '	0$" " ">@ A@%@$A@%@(	AA @1$AAAAA A# ABBABB
 AB.B-AB.B1%ACCACC ADD ADD AD)D(AD)D,%AEEAEE%AFFAFF%AF0F/AF0F3%AGGAGG %AH	HAH	H	AHHAHHAH>H=AH>c                     |st         S t        j                  |      }|t        S 	 t	        |j                  d            }|S # t        t        f$ r
 t         }Y |S w xY w)Nr   )r?   r8   r9   r:   r;   r<   r=   r>   )r   retr9   rD   s       r$   r   z LEDMFaxSendThread.get_error_code  sa    :%%%c*=.	u{{1~&D  I& 	D	s   A AAc                    t               }| j                  j                  |      }|st        j	                  d       yt        j                         j                  |      }t        j                  d|d|       d}d}|}t        }t        |d   d      d	k(  rt        |d
   d      d	k(  r|}t        }||fS t        |d   d      d	k(  rt        |d
   d      d	k(  r|}t        }||fS t        |d
   d      d	k(  rt        |d   d      d	k(  r|}t        }||fS t        |d
   d      d	k(  rt        |d   d      d	k(  r|}t        }||fS t        |d   d      d	k(  r|}|}||fS )Nz'Unable To read the XML data from devicerq   zRead Attribute:z and it is value:r   r   z(j:job-faxpcsendstatus-faxtxmachinestatusTransmittingr   z&j:job-faxpcsendstatus-faxtxerrorstatusCommunicationError
ConnectingNoAnswerPcDisconnectz&j:job-faxpcsendstatus-pagestatus-stater   Stop)r   r|   FetchLEDMUrlr1   rT   r	   XMLToDictParserparseXMLrI   r   cmpr   r   r   r   )	r   uristreamrB   xmlDictr   r   r   Fax_send_states	            r$   r   zLEDMFaxSendThread.checkForError  s   xx$$S)II?@'')2248		3tDE!!#$%wAB>RTUUGDEFZ[^__(E9N  ^## CD\RTUUGDEjQTUU(E7N ^## AB>RTUUGDEgNQRR(E<N ^## AB6JAMGDEgNQRR(E.N ^## CD^TWXX*E3N^##r%   c                 D    | j                   }t        j                  d      S )NzPOST $requst HTTP/1.1
Host: $host
User-Agent: hplip/2.0
Content-Type: $content_type
Content-Length: $ledmlen
Connection: Keep-alive
SOAPAction: ""

$xmldatar   r	   catr   requstledmlenr  content_typer   s         r$   r   z"LEDMFaxSendThread.format_http_post  s!    ~~yy	 		r%   c                 D    | j                   }t        j                  d      S )Nz{PUT $requst HTTP/1.1
Host: $host
User-Agent: hplip/2.0
Content-Type: $content_type
Content-Length: $ledmlen

$xmldatar,  r.  s         r$   r   z!LEDMFaxSendThread.format_http_put  s!    ~~		 	r%   rp   )ztext/xml; charset=utf-8)	rr   rs   rt   r   r  r   r   r   r   r'   r%   r$   r[   r[      s)    UZAE.A#H	"$H	r%   r[   )-
__future__r   sysr   rj   base.sixextr   r   r   re	threadingstructxml.parsers.expatparsersexpatstatbase.g
base.codesbaser   r	   r
   r   r   r   compileIr8   r:   r   r   r?   r   r   r   rl   rH   rQ   r   r   r   r   r   r{   r[   r'   r%   r$   <module>rB     s   ,    	  : : 	    ! !    3 3 % 
 "**5rtt<

 	 f f
 i
  b k	 fiI iZY Yr%   