ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ A[c@`sdZddlmZmZmZmZddlmZmZm Z m Z m Z ddl Z e j e _e je _ddlZddlZddlmZddlmZddlmZddlmZdd lmZddlZddlZdd l m!Z!yddl"Z"Wne#k r-dZ"nXd Z%ej&d Z'dKZ(dMZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5de6fdYZ7de7fdYZ8de7fdYZ9d e7fd!YZ:e;Z<Z=d"Z>d#Z?d$e@fd%YZAd&ZBd'ZCd(e@fd)YZDd*ZEeAeDfZFd+e@fd,YZGd-e@fd.YZHd/e@fd0YZId1e@fd2YZJd3e@fd4YZKd5e@fd6YZLdZMZNZOePePd7ZQdddePd8ZRePePd9ZSd:ZTd;ZUd<e"rHe"jVne@fd=YZWd>e@fd?YZXd@e@fdAYZYdBeYfdCYZZdDe@fdEYZ[e[Z\e]dFkre[dGZ^ye_e^j`jaWn e7k r Zbe_dHebnXeLe^Zcecjdecjed dIecjfdd y"xecD]Zge_egqNWWqe7k rZbe_dHebqXndS(Nu Ported using Python-Future from the Python 3.3 standard library. An XML-RPC client interface for Python. The marshalling and response parser code can also be used to implement XML-RPC servers. Exported exceptions: Error Base class for client errors ProtocolError Indicates an HTTP protocol error ResponseError Indicates a broken response package Fault Indicates an XML-RPC fault package Exported classes: ServerProxy Represents a logical connection to an XML-RPC server MultiCall Executor of boxcared xmlrpc requests DateTime dateTime wrapper for an ISO 8601 string or time tuple or localtime integer value to generate a "dateTime.iso8601" XML-RPC value Binary binary data wrapper Marshaller Generate an XML-RPC params chunk from a Python data structure Unmarshaller Unmarshal an XML-RPC response from incoming XML event message Transport Handles an HTTP transaction to an XML-RPC server SafeTransport Handles an HTTPS transaction to an XML-RPC server Exported constants: (none) Exported functions: getparser Create instance of the fastest available parser & attach to an unmarshalling object dumps Convert an argument tuple or a Fault instance to an XML-RPC request (or response, if the methodresponse option is used). loads Convert an XML-RPC packet to unmarshalled data plus a method name (None if not present). i(tabsolute_importtdivisiontprint_functiontunicode_literals(tbytestdicttinttrangetstrN(tdatetime(tclient(tparse(tensure_new_type(texpat(tBytesIOcC`s4|jdd}|jdd}|jddS(Nu&u&uu>(treplace(ts((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pytescapesiiiiiDii ipiԁiCiBiiitErrorcB`seZdZdZRS(uBase class for client errors.cC`s t|S(N(trepr(tself((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt__str__s(t__name__t __module__t__doc__R(((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRst ProtocolErrorcB`s eZdZdZdZRS(u!Indicates an HTTP protocol error.cC`s5tj|||_||_||_||_dS(N(Rt__init__turlterrcodeterrmsgtheaders(RRRRR((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRs     cC`sd|j|j|jfS(Nu(RRR(R((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt__repr__s(RRRRR(((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRs t ResponseErrorcB`seZdZRS(u$Indicates a broken response package.(RRR(((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyR stFaultcB`s eZdZdZdZRS(u#Indicates an XML-RPC fault package.cK`s#tj|||_||_dS(N(RRt faultCodet faultString(RR"R#textra((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRs  cC`s dt|jt|jfS(Nu(R R"R#(R((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRs(RRRRR(((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyR!s cC`s,d|j|j|j|j|j|jfS(Nu%04d%02d%02dT%02d:%02d:%02d(tyeartmonthtdaythourtminutetsecond(tvalue((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt_iso8601_formatscC`sjt|trt|St|ttjfs^|dkrLtj}ntj|}nd|d S(Niu%04d%02d%02dT%02d:%02d:%02di(t isinstanceR R,ttuplettimet struct_timet localtime(R+((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt _strftime's  tDateTimecB`seZdZddZdZdZdZdZdZdZ d Z d Z d Z d Z d ZdZRS(uDateTime wrapper for an ISO 8601 string or time tuple or localtime integer value to generate 'dateTime.iso8601' XML-RPC value. icC`s.t|tr||_nt||_dS(N(R-RR+R2(RR+((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyR8s cC`st|tr$|j}|j}nt|trK|j}t|}nt|trl|j}|}nmt|dr|j}|j}nCt|dr|jj pt |}t d|jj |f||fS(Nu timetupleu __class__uCan't compare %s and %s( R-R3R+R R,Rthasattrt timetuplet __class__Rttypet TypeError(RtotherRtototype((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pytmake_comparable>s$        cC`s|j|\}}||kS(N(R<(RR9RR:((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt__lt__SscC`s|j|\}}||kS(N(R<(RR9RR:((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt__le__WscC`s|j|\}}||kS(N(R<(RR9RR:((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt__gt__[scC`s|j|\}}||kS(N(R<(RR9RR:((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt__ge___scC`s|j|\}}||kS(N(R<(RR9RR:((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt__eq__cscC`s|j|\}}||kS(N(R<(RR9RR:((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt__ne__gscC`stj|jdS(Nu%Y%m%dT%H:%M:%S(R/tstrptimeR+(R((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyR5kscC`s|jS(N(R+(R((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRsscC`sdt|jt|fS(Nu(R R+tid(R((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRvscC`st|j|_dS(N(RtstripR+(Rtdata((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pytdecodeyscC`s.|jd|j|j|jddS(Nuu (twriteR+(Rtout((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pytencode|s (RRRRR<R=R>R?R@RARBR5RRRGRJ(((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyR32s            cC`st}|j||S(N(R3RG(RFR+((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt _datetimes  cC`stj|dS(Nu%Y%m%dT%H:%M:%S(R RC(RF((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt_datetime_typestBinarycB`sGeZdZddZdZdZdZdZdZ RS(uWrapper for binary data.cC`s\|dkrd}n:t|ttfsCtd|jjnt|}||_dS(Ntu#expected bytes or bytearray, not %s(tNoneR-Rt bytearrayR8R6RRF(RRF((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRs   cC`st|jdS(Nulatin-1(RRF(R((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRscC`s(t|tr|j}n|j|kS(N(R-RMRF(RR9((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRAs cC`s(t|tr|j}n|j|kS(N(R-RMRF(RR9((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRBs cC`stj||_dS(N(tbase64t decodebytesRF(RRF((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRGscC`sF|jdtj|j}|j|jd|jddS(Nu uasciiu (RHRQt encodebytesRFRG(RRItencoded((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRJs N( RRRRORRRARBRGRJ(((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRMs     cC`st}|j||S(N(RMRG(RFR+((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt_binarys  t ExpatParsercB`s#eZdZdZdZRS(cC`s`tjdd|_}||_|j|_|j|_|j |_ d}|j |ddS(N( R t ParserCreateROt_parsert_targettstarttStartElementHandlertendtEndElementHandlerRFtCharacterDataHandlertxml(Rttargettparsertencoding((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRs    cC`s|jj|ddS(Ni(RXtParse(RRF((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pytfeedscC`s#|jjdd|`|`dS(Nui(RXRcRY(R((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pytcloses(RRRRdRe(((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRVs t MarshallercB`s-eZdZdedZiZdZdZdZ e ee d u faultCodeu faultStringu u u u u u(tappendt_Marshaller__dumpR-R!R"R#tjoinR(RtvaluesRIRHtdumptvtresult((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pytdumpss"          cC`sy|jtt|}Wntk rt|dsUtdt|nxEt|jD]4}||jjkretdt|qeqeW|jd}nX||||dS(Nu__dict__ucannot marshal %s objectsu_arbitrary_instance(tdispatchR7R tKeyErrorR4R8t__mro__tkeys(RR+RHtfttype_((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt__dumps cC`s&|jstdn|ddS(Nu0cannot marshal None unless allow_none is enabledu(RhR8(RR+RH((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pytdump_nil!s cC`s.|d||rdpd|ddS(Nuu1u0u ((RR+RH((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt dump_bool's cC`sU|tks|tkr'tdn|d|tt||ddS(Nulong int exceeds XML-RPC limitsu u (tMAXINTtMININTt OverflowErrorRR(RR+RH((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt dump_long-s  cC`s.|d|tt||ddS(Nuu (RR (RR+RH((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt dump_double8s cC`s(|d||||ddS(Nuu ((RR+RHR((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt dump_unicode>s cC`s:|dtj|}||jd|ddS(Nu uasciiu (RQRSRG(RR+RHRT((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt dump_bytesDs cC`st|}||jkr*tdnd|j|<|j}|dx|D]}|||qQW|d|j|=dS(Nu"cannot marshal recursive sequencesu u (RDRgR8RORj(RR+RHtiRmRn((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt dump_arrayLs      cC`st|}||jkr*tdnd|j|<|j}|dxm|jD]_\}}|dt|tstdn|d||||||dqWW|d|j|=dS(Nu%cannot marshal recursive dictionariesu u udictionary key must be stringu%s u u (RDRgR8RORjtitemsR-R(RR+RHRRRmtkRn((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt dump_structZs       cC`s(|d|t||ddS(Nuu (R2(RR+RH((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt dump_datetimels cC`sE|jtkr.||_|j||`n|j|j|dS(N(R6tWRAPPERSRHRJRt__dict__(RR+RH((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt dump_instancers    u_arbitrary_instanceN("RRRROtFalseRRqRpRjRxR7RytboolR}Rtdump_intR~tfloatRRRRRRPRR.tlistRRRR RR3RM(((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRfs<                      t UnmarshallercB`sweZdZeedZdZdZdZdZdZ dZ dZ iZ d Z e e d a object used to boxcar method calls server should be a ServerProxy object. Methods can be added to the MultiCall using normal method call syntax e.g.: multicall = MultiCall(server_proxy) multicall.add(2,3) multicall.get_address("Guido") To execute the multicall, call the MultiCall object e.g.: add_result, address = multicall() cC`s||_g|_dS(N(t_MultiCall__servert_MultiCall__call_list(Rtserver((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyR^s cC`sdt|S(Nu(RD(R((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRbscC`st|j|S(N(RR(RR((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRgscC`sTg}x2|jD]'\}}|ji|d6|d6qWt|jjj|S(Nu methodNameuparams(RRiRRtsystemt multicall(Rtmarshalled_listRR((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRjs(RRRRRRRR(((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRMs    cC`strltrl|r$t}tj}n!|r9t}t}n t}t}ttt||t }t|}n6t d|d|}trt|}n t |}||fS(ugetparser() -> parser, unmarshaller Create an instance of the fastest available parser, and attach it to an unmarshalling object. Return both objects. RR( t FastParsertFastUnmarshallerRLRQRRRURKRRR!RRV(RRt mkdatetimetmkbytesR`Ra((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt getparser|s     cC`sJt|ttfs!tdt|tr9d}n6|rot|trot|dksotdn|s~d}ntrt|}nt||}|j|}|dkrdt|}nd}|rt|ts|j |}n|d|d|d f}n|r3|d |d f}n|Std j |S( udata [,options] -> marshalled data Convert an argument tuple or a Fault instance to an XML-RPC request (or response, if the methodresponse option is used). In addition to the data object, the following options can be given as keyword arguments: methodname: the method name for a methodCall packet methodresponse: true to create a methodResponse packet. If this option is used with a tuple, the tuple must be a singleton (i.e. it can contain only one element). encoding: the packet encoding (default is UTF-8) All byte strings in the data structure are assumed to use the packet encoding. Unicode strings are automatically converted, where necessary. u(argument must be tuple or Fault instanceiu"response tuple must be a singletonuutf-8u$ u u u u u u u( R-R.R!tAssertionErrorRtFastMarshallerRfRpRRJRk(tparamst methodnametmethodresponseRbRhtmRFt xmlheader((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRps:! !    cC`sHtd|d|\}}|j||j|j|jfS(udata -> unmarshalled data, method name Convert an XML-RPC packet to unmarshalled data plus a method name (None if not present). If the XML-RPC packet represents a fault condition, this function raises a Fault exception. RR(RRdReR(RFRRtptu((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pytloadss   cC`sgtstnt}tjddd|dd}|j||j|j}|j|S(uhdata -> gzip encoded data Encode data using the gzip content encoding as described in RFC 1952 tmodeuwbtfileobjt compressleveli(tgziptNotImplementedErrorRtGzipFileRHRetgetvalue(RFRutgzfRT((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt gzip_encodes      cC`s{tstnt|}tjddd|}y|j}Wntk rbtdnX|j|j|S(urgzip encoded data -> unencoded data Decode data using the gzip content encoding as described in RFC 1952 RurbRu invalid data(RRRRtreadtIOErrorRRe(RFRuRtdecoded((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt gzip_decodes     tGzipDecodedResponsecB`s eZdZdZdZRS(uha file-like object to decode a response encoded with the gzip method, as described in RFC 1952. cC`sGtstnt|j|_tjj|ddd|jdS(NRurbR(RRRRtioRR(Rtresponse((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyR:s cC`s!tjj||jjdS(N(RRReR(R((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyReBs(RRRRRe(((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyR6s t_MethodcB`s#eZdZdZdZRS(cC`s||_||_dS(N(t _Method__sendt _Method__name(RtsendR((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRMs cC`st|jd|j|fS(Nu%s.%s(RRR(RR((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRPscG`s|j|j|S(N(RR(RR((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRRs(RRRRR(((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRJs  t TransportcB`seZdZdeZeZd Ze e dZ e dZ e dZ dZ dZdZdZd Zd Zd Zd ZRS(u1Handles an HTTP transaction to an XML-RPC server.uPython-xmlrpc/%scC`s(||_||_d|_g|_dS(N(NN(Rt_use_builtin_typesROt _connectiont_extra_headers(RRR((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRis   cC`sxdD]}y|j||||SWqtjk rl}|sc|jtjtjtjfkrqqtjk r|rqqXqWdS(Nii(ii( tsingle_requesttsocketterrorterrnot ECONNRESETt ECONNABORTEDtEPIPEt http_clientt BadStatusLine(Rthostthandlert request_bodytverboseRte((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pytrequestys ' cC`syM|j||||}|j}|jdkrL||_|j|SWn1tk rcntk r|jnX|jddr|j nt |||j|j t |j dS(Niucontent-lengthu(t send_requestt getresponsetstatusRtparse_responseR!t ExceptionRet getheaderRRtreasonRt getheaders(RRRRRt http_conntresp((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRs"       cC`std|jd|jS(NRR(RRR(R((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRscC`si}t|tr$|\}}ntj|\}}|rtj|}tj|jd}dj|j }dd|fg}ng}|||fS(Nuutf-8uu AuthorizationuBasic ( R-R.t urllib_parset splitusertunquote_to_bytesRQRSRGRktsplit(RRtx509tautht extra_headers((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt get_host_infoscC`se|jr'||jdkr'|jdS|j|\}|_}|tj|f|_|jdS(Nii(RR RRtHTTPConnection(RRtchostR ((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pytmake_connections  cC`s.|jdr*|jdjd|_ndS(Ni(NN(RReRO(R((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRes cC`s|j|}|j}|r/|jdn|jrdtrd|jd|dt|jd n|jd||jd |jd|jf|j |||j |||S( NiuPOSTtskip_accept_encodinguAccept-Encodingugzipu Content-Typeutext/xmlu User-Agent(uAccept-Encodingugzip(u Content-Typeutext/xml( RRtset_debugleveltaccept_gzip_encodingRt putrequestRRit user_agentt send_headerst send_content(RRRRtdebugt connectionR((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRs  cC`s+x$|D]\}}|j||qWdS(N(t putheader(RRRtkeytval((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRscC`sv|jdk rI|jt|krItrI|jddt|}n|jdtt||j|dS(NuContent-EncodingugzipuContent-Length(tencode_thresholdRORRRRRt endheaders(RRR((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyR scC`st|dr?|jdddkr6t|}qE|}n|}|j\}}xI|jd}|ssPn|jrtdt|n|j|qZW||k r|j n|j |j S(Nu getheaderuContent-Encodinguugzipiubody:( R4RRRRRtprintRRdRe(RRtstreamRRRF((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRs"     N(RRRt __version__RRRRORRRRRRR RReRRRR(((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyR[s  !      t SafeTransportcB`seZdZdZRS(u2Handles an HTTPS transaction to an XML-RPC server.cC`s|jr'||jdkr'|jdSttdsEtdn|j|\}|_}|tj|d|pxif|_|jdS(NiiuHTTPSConnectionu1your version of http.client doesn't support HTTPS(RR4RRR RtHTTPSConnectionRO(RRRR ((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRAs   (RRRR(((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyR"<st ServerProxycB`s\eZdZddeeeedZdZdZdZeZ dZ dZ RS(uuri [,options] -> a logical connection to an XML-RPC server uri is the connection point on the server, given as scheme://host/target. The standard implementation always supports the "http" scheme. If SSL socket support is available (Python 2.0), it also supports "https". If the target part and the slash preceding it are both omitted, "/RPC2" is assumed. The following options can be given as keyword arguments: transport: a transport factory encoding: the request encoding (default is UTF-8) All 8-bit strings passed to the server proxy are assumed to use the given encoding. c C`stj|\}}|dkr0tdntj|\|_|_|js`d|_n|dkr|dkrt} nt} | d|d|}n||_ |pd|_ ||_ ||_ dS( Nuhttpuhttpsuunsupported XML-RPC protocolu/RPC2RRuutf-8(uhttpuhttps( Rt splittypeRt splithostt_ServerProxy__hostt_ServerProxy__handlerROR"Rt_ServerProxy__transportt_ServerProxy__encodingt_ServerProxy__verboset_ServerProxy__allow_none( Rturit transportRbRRhRRR7R((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRvs           cC`s|jjdS(N(R)Re(R((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt__closescC`swt||d|jd|jj|j}|jj|j|j|d|j}t |dkrs|d}n|S(NRbRhRii( RpR*R,RJR)RR'R(R+R(RRRRR((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyt __requests   cC`sd|j|jfS(Nu(R'R((R((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRscC`st|j|S(N(Rt_ServerProxy__request(RR((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRscC`s=|dkr|jS|dkr&|jStd|fdS(u|A workaround to get special attributes on the ServerProxy without interfering with the magic __getattr__ ucloseu transportuAttribute %r not foundN(t_ServerProxy__closeR)tAttributeError(Rtattr((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyRs   N( RRRRORRR2R1RRRR(((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyR$`s     u__main__uhttp://localhost:8000uERRORi IiIi(hRt __future__RRRRtfuture.builtinsRRRRRRQt encodestringRSt decodestringRRtsysR/R tfuture.backports.httpR Rtfuture.backports.urllibR Rt future.utilsR t xml.parsersR RRRRRt ImportErrorRORtversionR!RzR{t PARSE_ERRORt SERVER_ERRORtAPPLICATION_ERRORt SYSTEM_ERRORtTRANSPORT_ERRORtNOT_WELLFORMED_ERRORtUNSUPPORTED_ENCODINGtINVALID_ENCODING_CHARtINVALID_XMLRPCtMETHOD_NOT_FOUNDtINVALID_METHOD_PARAMStINTERNAL_ERRORRRRR R!RtbooleantBooleanR,R2tobjectR3RKRLRMRURRVRfRRRRRRRRRRpRRRRRRRR"R$tServerRRRt currentTimetgetCurrentTimeRntmultitgetDatatpowtaddR(((sO/opt/alt/python27/lib/python2.7/site-packages/future/backports/xmlrpc/client.pyts"(               O  (   ''  L  %$_