KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17
System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64
User : nobody ( 99)
PHP Version : 5.2.17
Disable Function : NONE
Directory :  /proc/22697/root/usr/lib64/python2.4/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/22697/root/usr/lib64/python2.4/pickle.pyo
m
=5Dc	@sdZdZdkTdklZdklZlZlZdkZdk	Z	dk
Z
dkZdkZdddd	d
ddd
dg	Z
dZdddddgZdZeiZdefdYZdefdYZdefdYZdefdYZydklZWnej
o
eZnXyeWnej
o
eZnXdZdZdZ dZ!dZ"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/d-Z0d.Z1d/Z2d0Z3d1Z4d2Z5d3Z6d4Z7d5Z8d6Z9d7Z:d8Z;d9Z<d:Z=d;Z>d<Z?d=Z@d>ZAd?ZBd@ZCdAZDdBZEdCZFdDZGdEZHdFZIdGZJdHZKdIZLdJZMdKZNdLZOdMZPdNZQdOZRdPZSdQZTeDeNeOePgZUe
iVgZWeXD]$ZYeiZdReYoeWeYnq[W[Yd	fdSYZ[dTZ\hZ]dUZ^d
fdVYZ_dWfdXYZ`dkaZbdYZcdZZdyd[kelfZfWn ej
od[kflfZfnXeed\Zgeed]Zhd^Zid_Zd`ZjekdajoejndS(bsCreate portable serialized representations of Python objects.

See module cPickle for a (much) faster implementation.
See module copy_reg for a mechanism for registering custom picklers.
See module pickletools source for extensive comments.

Classes:

    Pickler
    Unpickler

Functions:

    dump(object, file)
    dumps(object) -> string
    load(file) -> object
    loads(string) -> object

Misc variables:

    __version__
    format_version
    compatible_formats

s$Revision: 36861 $(t*(sdispatch_table(s_extension_registrys_inverted_registrys_extension_cacheNtPickleErrort
PicklingErrortUnpicklingErrortPicklert	Unpicklertdumptdumpstloadtloadss2.0s1.0s1.1s1.2s1.3icBstZdZRS(s6A common base class for the other pickling exceptions.(t__name__t
__module__t__doc__(((t/usr/lib64/python2.4/pickle.pyR;scBstZdZRS(s]This exception is raised when an unpicklable object is passed to the
    dump() method.

    (R
RR(((R
R?scBstZdZRS(sThis exception is raised when there is a problem unpickling an object,
    such as a security violation.

    Note that other exceptions may also be raised during unpickling, including
    (but not necessarily limited to) AttributeError, EOFError, ImportError,
    and IndexError.

    (R
RR(((R
RFst_StopcBstZdZRS(NcCs
||_dS(N(tvaluetself(RR((R
t__init__Ts(R
RR(((R
RSs(sPyStringMapt(t.t0t1t2tFtItJtKtLtMtNtPtQtRtStTtUtVtXtatbtctdt}tetgthtitjtlt]totptqtrtsttt)tutGsI01
sI00
sssssssssssss[A-Z][A-Z0-9_]+$cBstZdddZdZdZdZeidZ	eidZ
dZdZd	Z
ddddd
ZhZdZeee<dZeee<eid
Zeee<eidZeee<eidZeee<eidZeee<eidZeee<eejoeidZeee<ndZeee<dZ dZ!e!ee"<dZ#dZ$dZ%e%ee&<e'dj	oe%ee'<ndZ(dZ)e)ee*<deidZ+e+ee,<e+ee-<e+ee.<e+ee/<RS(NcCs|dj	o|dj	o
tdn|dj	otidt|}n|djo
d}n|djo
t}n3d|jo
tjnptdtn|i	|_	h|_t||_
|dj|_d|_dS(s8This takes a file-like object for writing a pickle data stream.

        The optional protocol argument tells the pickler to use the
        given protocol; supported protocols are 0, 1, 2.  The default
        protocol is 0, to be backwards compatible.  (Protocol 0 is the
        only protocol that can be written to a file opened in text
        mode and read back successfully.  When using a protocol higher
        than 0, make sure the file is opened in binary mode, both when
        pickling and unpickling.)

        Protocol 1 is more efficient than protocol 0; protocol 2 is
        more efficient than protocol 1.

        Specifying a negative protocol version selects the highest
        protocol version supported.  The higher the protocol used, the
        more recent the version of Python needed to read the pickle
        produced.

        The file parameter must have a write() method that accepts a single
        string argument.  It can thus be an open file object, a StringIO
        object, or any other custom object that meets this interface.

        s'can't specify both 'protocol' and 'bin's-The 'bin' argument to Pickler() is deprecatedispickle protocol must be <= %diN(tprotocoltNonetbint
ValueErrortwarningstwarntDeprecationWarningtHIGHEST_PROTOCOLtfiletwriteRtmemotinttprototfast(RRCR;R=((R
Rs$

	




	cCs|iidS(sClears the pickler's "memo".

        The memo is the data structure that remembers which objects the
        pickler has already seen, so that shared or recursive objects are
        pickled by reference and not by value.  This method is useful when
        re-using picklers.

        N(RREtclear(R((R
t
clear_memoscCsL|idjo|itt|in|i||itdS(s7Write a pickled representation of obj to the open file.iN(RRGRDtPROTOtchrtsavetobjtSTOP(RRN((R
Rs

cCsT|iodSnt|i}|i|i|||f|it|<dS(sStore an object in the memo.N(	RRHtlenREtmemo_lenRDtputRNtid(RRNRQ((R
tmemoizes
cCsP|io4|djott|Sq>t|d|Sntt|dS(Nis<is
(	RR=R.tBINPUTRLtLONG_BINPUTtpacktPUTtrepr(RR.RW((R
RRs


cCsP|io4|djott|Sq>t|d|Sntt|dS(Nis<is
(	RR=R.tBINGETRLtLONG_BINGETRWtGETRY(RR.RW((R
tgets


c
Cs)|i|}|o|i|dSn|iit|}	|	o"|i	|i|	ddSnt
|}|ii|}|o|||dSnyt|t}Wntj
o
d}nX|o|i|dSnti|}|o||}nlt|dd}|o||i}n@t|dd}|o
|}ntd|i|ft
|tjo|i||dSnt
|tj	otd|nt|}d|jo
djnptd|n|id	||dS(
Nit
__reduce_ex__t
__reduce__sCan't pickle %r object: %rs%s must return string or tupleiis3Tuple returned by %s must have two to five elementsRN( Rt
persistent_idRNtpidt	save_persRER]RStxRDttypeR7tdispatchtft
issubclasstTypeTypetissct	TypeErrortsave_globaltdispatch_tabletreducetrvtgetattrR<RGRR
t
StringTypet	TupleTypeRPR0tsave_reduce(
RRNRmRnRaRiRfR0R7Rc((R
RMsN



cCsdS(N(R<(RRN((R
R`TscCsG|io|i||itn|itt|ddS(Ns
(RR=RMRaRDt	BINPERSIDtPERSIDtstr(RRa((R
RbXs

c
Cst|tp1|djotidtqAtdnt|ptdn|i}|i}|i
djot|dddjo|d}	t|	d	ptd
n|dj	o |	|ij	otdn|d}||	|||tn|||||t|dj	o|i|n|dj	o|i|n|dj	o|i|n|dj	o|||tndS(
Ns'__basicnew__ special case is deprecateds$args from reduce() should be a tuples#func from reduce should be callableiR
tt
__newobj__it__new__s+args[0] from __newobj__ args has no __new__s0args[0] from __newobj__ args has the wrong classi(t
isinstancetargsRqR<R?R@RARtcallabletfuncRRMRDRGRotclsthasattrRNt	__class__tNEWOBJtREDUCERTt	listitemst_batch_appendst	dictitemst_batch_setitemststatetBUILD(
RR|RzRRRRNRDRMR}((R
Rr`s>
	
		)











cCs|itdS(N(RRDtNONE(RRN((R
t	save_nonescCsN|idjo|i|otptn|i|otptdS(Ni(RRGRDRNtNEWTRUEtNEWFALSEtTRUEtFALSE(RRN((R
t	save_boolscCs|io|djog|djo|itt|dSn|djo*|idt|d@|d?fdSq~n|d?}|djp
|djo"|it|d|dSqn|it
t|d	dS(
Niiis%c%c%ciiis<is
(RR=RNRDtBININT1RLtBININT2t	high_bitstBININTRWtINTRY(RRNRWR((R
tsave_ints



"
cCs|idjojt|}t|}|djo|itt	||n|it
|d||dSn|itt
|ddS(Niis<is
(RRGtencode_longRNtbytesRPtnRDtLONG1RLtLONG4RWtLONGRY(RRNRWRR((R
t	save_longs
cCsG|io|it|d|n|itt|ddS(Ns>ds
(RR=RDtBINFLOATRWRNtFLOATRY(RRNRW((R
t
save_floats
cCs|ioZt|}|djo|itt||q|it|d||n|it
t|d|i|dS(Nis<is
(
RR=RPRNRRDtSHORT_BINSTRINGRLt	BINSTRINGRWtSTRINGRYRT(RRNRWR((R
tsave_strings

"cCs|io=|id}t|}|it|d||nC|i
dd}|i
dd}|it|idd|i|dS(Nsutf-8s<is\s\u005cs
s\u000asraw-unicode-escape(
RR=RNtencodetencodingRPRRDt
BINUNICODERWtreplacetUNICODERT(RRNRWRR((R
tsave_unicodes
"cCs7|i}|io|o|id}nt|}|djo'|o|it	t
||q&|d|}|o|it
||q&|it||no|oL|idd}|idd}|id}|it|dn|itt|d|i|dS(	Nsutf-8is<is\s\u005cs
s\u000asraw-unicode-escape(RNt	isunicodetunicodeRR=RRPR0RDRRLRWR6RRRRRRYRT(RRNRWR6R0R((R
Rs$
c	Cs|i}|i}t|}|djo+|o|tn|ttdSn|i	}|i
}|djo|djox|D]}||qWt||jo3|i
|t|d}|t||n|t||i|dSn|tx|D]}||qWt||joT|i
|t|d}|o|t|n|t|d|dSn|it|i|dS(Niiii(RRDRGRPRNRtEMPTY_TUPLEtMARKtTUPLERMREtelementRSR]tPOPt_tuplesize2codeRTtPOP_MARK(	RRNRMRGRRDRR]RE((R
t
save_tuple"s@		
		


cCs|itdS(N(RRDR(RRN((R
tsave_empty_tupleZscCsS|i}|io|tn|tt|i||it	|dS(N(
RRDR=t
EMPTY_LISTRtLISTRTRNRtiter(RRNRD((R
t	save_list]s	

ic	Cs1|i}|i}|ip-x"|D]}|||tq#WdSnt|i}x|dj	og}xH|D]@}y|i
}|i|Wqutj
od}PquXquWt|}|djo3|tx|D]}||qW|tq[|o||d|tq[q[WdS(Nii(RRMRDR=titemsRctAPPENDtxranget
_BATCHSIZER5R<ttmpR.tnexttappendt
StopIterationRPRRtAPPENDS(	RRRR.RRDR5RcRM((R
Rns<		





cCsS|i}|io|tn|tt|i||i|i	dS(N(
RRDR=t
EMPTY_DICTRtDICTRTRNRt	iteritems(RRNRD((R
t	save_dicts	

c
Csa|i}|i}|ip=x2|D]*\}	}||	|||tq#WdSnt|i	}x|dj	og}xB|D]:}y|i|iWqtj
od}PqXqWt|}|djoC|tx(|D] \}	}||	||qW|tqk|o2|d\}	}||	|||tqkqkWdS(Nii(RRMRDR=RtktvtSETITEMRRR5R<RR.RRRRPRRtSETITEMS(
RRRR.RRDR5RRMR((R
RsB		









c
CsJ|i}	|i}|i}|i}t|do'|i}t
|t||nf}|t|i
o3||	x|D]}||qW|tn<x|D]}||qW|t|	id|	id|i|y
|i}Wntj
o|i}nX|}t|||||tdS(Nt__getinitargs__s
(RNRR}RRERDRMR~RRzRPt_keep_aliveRR=targtOBJtINSTRR
RTt__getstate__tgetstatetAttributeErrort__dict__tstuffR(
RRNRRzRDRRRMRER}((R
t	save_insts:				



 

	

c
Cs|i}|i}|djo
|i}nt|dd}|djot	||}ny*t
|ti|}t||}	Wn5tttfj
o td|||fn,X|	|j	otd|||fn|idjoti||f}|ot|djo|tt|nH|djo#|dt|d@|d?fn|t|d	|dSqn|t|d
|d
|i|dS(NRs(Can't pickle %r: it's not found as %s.%ss2Can't pickle %r: it's not the same object as %s.%siiis%c%c%cis<is
(RRDREtnameR<RNR
Rotmoduletwhichmodulet
__import__tsystmodulestmodtklasstImportErrortKeyErrorRRRGt_extension_registryR]tcodetEXT1RLtEXT2tEXT4RWtGLOBALRT(
RRNRRWRRRDRERR((R
Rks6		







#(0R
RR<RRJRRTtstructRWRRR]RMR`RbRrReRtNoneTypeRtboolRtIntTypeRtLongTypeRt	FloatTypeRRpRtUnicodeTypeRRqRRtListTypeRRRtDictionaryTypetPyStringMapRRtInstanceTypeRkt	ClassTypetFunctionTypetBuiltinFunctionTypeRh(((R
Rs^*			
		@		V	
	









	3
		
	 	

	#	&
(


cCsHy|t|i|Wn&tj
o|g|t|<nXdS(sMKeeps a reference to the object x in the memo.

    Because we remember objects by their id, we have
    to assure that possibly temporary objects are kept
    alive by referencing them.
    We store a reference at the id of the memo, which should
    normally not be used unless someone tries to deepcopy
    the memo itself...
    N(RERSRRcR(RcRE((R
Rs
	cCst|dd}|dj	o|Sn|tjot|SnxbtiiD]K\}}|djoqPn|djot||d|joPqPqPWd}|t|<|S(sFigure out the module in which a function occurs.

    Search sys.modules for the module.
    Cache in classmap.
    Return a module name.
    If the function cannot be found, return "__main__".
    Rt__main__N(RoR|R<RtclassmapRRRRRtfuncname(R|RRRR((R
R-s


&	
cBsLtZdZdZdZhZdZeed<dZeee<dZ	e	ee
<dZeee<d	Z
e
ee<d
Zeee<dZeee<dZeee<d
Zeee<dZeee<dZeee<dZeee<dZeee<dZeee <dZ!e!ee"<e#i$dZ%e%ee&<dZ'e'ee(<dZ)e)ee*<dZ+e+ee,<dZ-e-ee.<dZ/e/ee0<dZ1e1ee2<dZ3e3ee4<dZ5e5ee6<dZ7e7ee8<dZ9e9ee:<dZ;e;ee<<d Z=e=ee><d!Z?e?ee@<d"ZAeAeeB<d#ZCd$ZDeDeeE<d%ZFeFeeG<d&ZHeHeeI<d'ZJeJeeK<d(ZLeLeeM<d)ZNeNeeO<d*ZPePeeQ<d+ZRd,ZSd-ZTeTeeU<d.ZVeVeeW<d/ZXeXeeY<d0ZZeZee[<d1Z\e\ee]<d2Z^e^ee_<d3Z`e`eea<d4Zbebeec<d5Zdedeee<d6Zfefeeg<d7Zheheei<d8Zjejeek<d9Zleleem<d:Zneneeo<d;Zpepeeq<d<Zrerees<d=Zteteeu<RS(>NcCs%|i|_|i|_h|_dS(sThis takes a file-like object for reading a pickle data stream.

        The protocol version of the pickle is detected automatically, so no
        proto argument is needed.

        The file-like object must have two methods, a read() method that
        takes an integer argument, and a readline() method that requires no
        arguments.  Both methods should return a string.  Thus file-like
        object can be a file object opened for reading, a StringIO object,
        or any other custom object that meets this interface.
        N(RCtreadlineRtreadRE(RRC((R
RKscCst|_g|_|ii|_|i}|i}y&x|d}|||q<WWntj
o}|i
SnXdS(sRead a pickled object representation from the open file.

        Return the reconstituted object hierarchy specified in the file.
        iN(tobjectRtmarktstackRRRetkeyRtstopinstR(RRReRR((R
R[s			cCsI|i}|i}t|d}x |||j	o|d}q%W|S(Ni(RRRRPR(RRRR((R
tmarkerts		cCs
tdS(N(tEOFError(R((R
tload_eof}sRvcCsHt|id}d|jo
djnptd|ndS(Niiisunsupported pickle protocol: %d(tordRRRGR>(RRG((R
t
load_protoscCs*|id }|i|i|dS(Ni(RRRaRtpersistent_load(RRa((R
tload_persidscCs)|ii}|i|i|dS(N(RRtpopRaRR(RRa((R
tload_binpersidscCs|iddS(N(RRR<(R((R
t	load_nonescCs|itdS(N(RRtFalse(R((R
t
load_falsescCs|itdS(N(RRtTrue(R((R
t	load_truescCs|i}|tdjo
t}nN|tdjo
t}n3yt|}Wnt	j
ot
|}nX|i|dS(Ni(RRtdataRRtvalRRRFR>tlongR(RRR
((R
tload_ints

cCs$|itd|iddS(NR.i(RRtmloadsR(R((R
tload_binintscCs |it|iddS(Ni(RRRR(R((R
tload_binint1scCs(|itd|idddS(NR.it(RRRR(R((R
tload_binint2scCs$|it|id ddS(Nii(RRRR(R((R
t	load_longscCs;t|id}|i|}|it|dS(Ni(RRRRRRtdecode_long(RRR((R
t
load_long1scCs?td|id}|i|}|it|dS(NR.i(RRRRRRR(RRR((R
t
load_long4scCs!|it|id dS(Ni(RRtfloatR(R((R
t
load_floatscCs'|i|d|idddS(Ns>dii(RRtunpackR(RR((R
t
load_binfloatscCs|id }xcdD]R}|i|o<|i|p
tdn|t|t|!}PqqWtd|i|i	ddS(Nis"'sinsecure string pickles
string-escape(
RRtrepR4t
startswithtendswithR>RPRtdecode(RR4R((R
tload_strings
		cCs3td|id}|i|i|dS(NR.i(RRRRPR(RRP((R
tload_binstringscCs$|it|id ddS(Nisraw-unicode-escape(RRRR(R((R
tload_unicodescCs<td|id}|it|i|ddS(NR.isutf-8(RRRRPRR(RRP((R
tload_binunicodescCs/t|id}|i|i|dS(Ni(RRRRPR(RRP((R
tload_short_binstringscCs1|i}t|i|dg|i|)dS(Ni(RRRttupleR(RR((R
t
load_tuplescCs|iifdS(N(RRR(R((R
tload_empty_tuplescCs|idf|id<dS(Ni(RR(R((R
tload_tuple1scCs(|id|idfg|id)dS(Nii(RR(R((R
tload_tuple2scCs2|id|id|idfg|id)dS(Niii(RR(R((R
tload_tuple3scCs|iigdS(N(RRR(R((R
tload_empty_listscCs|iihdS(N(RRR(R((R
tload_empty_dictionaryscCs+|i}|i|dg|i|)dS(Ni(RRRR(RR((R
t	load_listscCs||i}h}|i|d}xBtdt|dD](}||}||d}|||<q<W|g|i|)dS(Niii(RRRR)RRtrangeRPR.RR(RR)R.RRRR((R
t	load_dicts
cCst|i|d}|i|3d}|oZt|tjoGt	|do6yt
}||_d}Wqt
j
oqXn|pUy||}Wqtj
o2}td|it|ftidqXn|i|dS(NiiRsin constructor for %s: %si(R$RRRRztinstantiatedRdRRR~t_EmptyClassRRtRuntimeErrorRjterrR
RuRtexc_infoR(RRRR2R/RzR((R
t_instantiate!s 
,		
	2cCsL|id }|id }|i||}|i||idS(Ni(RRRRt
find_classRR4R(RRRR((R
t	load_inst8scCs6|i}|ii|d}|i||dS(Ni(RRRRRRR4(RRR((R
tload_obj?scCs?|ii}|id}|i||}||id<dS(Ni(RRRRzR}RxRN(RRzRNR}((R
tload_newobjFs
cCsC|id }|id }|i||}|i|dS(Ni(RRRRR5RR(RRRR((R
tload_globalMscCs&t|id}|i|dS(Ni(RRRRt
get_extension(RR((R
t	load_ext1TscCs.td|idd}|i|dS(NR.iR(RRRRR:(RR((R
t	load_ext2YscCs*td|id}|i|dS(NR.i(RRRRR:(RR((R
t	load_ext4^scCsg}ti||}||j	o|i|dSnti|}|pt	d|n|i
|}|t|<|i|dS(Nsunregistered extension code %d(tnilt_extension_cacheR]RRNRRt_inverted_registryRR>R5(RRRNR>R((R
R:cs


cCs*t|ti|}t||}|S(N(RRRRRRoRR(RRRRR((R
R5ps

cCsf|i}|i}|d}|djo tidt|i	}n
||}||d<dS(Nis'__basicnew__ special case is deprecated(RRRRzR|R<R?R@RAt__basicnew__R(RRzRR|R((R
tload_reducews	

	cCs|id=dS(Ni(RR(R((R
tload_popscCs|i}|i|3dS(N(RRRR(RR((R
t
load_pop_markscCs|i|iddS(Ni(RRR(R((R
tload_dupscCs"|i|i|id dS(Ni(RRRER(R((R
tload_getscCs3t|id}|i|it|dS(Ni(RRRR.RRERY(RR.((R
tload_bingetscCs7td|id}|i|it|dS(NR.i(RRRR.RRERY(RR.((R
tload_long_bingetscCs"|id|i|id <dS(Ni(RRRER(R((R
tload_putscCs3t|id}|id|it|<dS(Nii(RRRR.RRERY(RR.((R
tload_binputscCs7td|id}|id|it|<dS(NR.ii(RRRR.RRERY(RR.((R
tload_long_binputscCs0|i}|i}|d}|i|dS(Ni(RRRRtlistR(RRLRR((R
tload_appends	
cCsC|i}|i}||d}|i||d||3dS(Ni(RRRRRLtextend(RRLRR((R
tload_appendss
	cCs9|i}|i}|i}|d}|||<dS(Ni(RRRRRtdict(RRRPRR((R
tload_setitems
	
cCsk|i}|i}||d}x:t|dt|dD]}||d|||<q@W||3dS(Nii(RRRRRPR-RPR.(RR.RRPR((R
t
load_setitemss	cCs!|i}|i}|d}t|dd}|o||dSnd}t	|t
o#t|djo|\}}n|o[y|ii
|Wqtj
o4x/|iD]\}}t|||qWqXn|o1x.|iD]\}}t|||qWndS(Nit__setstate__i(RRRRtinstRoR<tsetstatet	slotstateRyR$RPRtupdateR1RRRtsetattr(RRRTRRVRRRU((R
t
load_builds*	

#


cCs|i|idS(N(RRR(R((R
t	load_markscCs|ii}t|dS(N(RRRRR(RR((R
t	load_stops(vR
RRRRReRRRKRRtRRsRRRRR	RR
RRRRRRRRRRRRRRRRRRRRRR RR!RR"RR#RR%RR&RR'tTUPLE1R(tTUPLE2R)tTUPLE3R*RR+RR,RR.RR4R6RR7RR8RR9RR;RR<RR=RR:R5RBRRCRRDRREtDUPRFR\RGRZRHR[RIRXRJRURKRVRMRRORRQRRRRRYRRZRR[RO(((R
RIs				
	
	
	
	
	
	
	
	
	
	
	
	
	
	

	
	
	
	
	
	
	
	
	
	
	
	
	
		
		
	
	
	
	
	
	
	
		
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	R0cBstZRS(N(R
R(((R
R0scCs|djodSn|djo|t|}d|id}t||}|d@od|d}qt|dddjod	|d}qnt|}d|id}t||}|d@o|d7}n|d
}|d|>7}t|}d|id}t||}||jodd
|||d}nt|dddjod|d}n|ido|dd!}n|d}t
i|}|dddS(sEncode a long to a two's complement little-endian binary string.
    Note that 0L is a special case, returning an empty string, to save a
    byte in the LONG1 pickling context.

    >>> encode_long(0L)
    ''
    >>> encode_long(255L)
    '\xff\x00'
    >>> encode_long(32767L)
    '\xff\x7f'
    >>> encode_long(-256L)
    '\x00\xff'
    >>> encode_long(-32768L)
    '\x00\x80'
    >>> encode_long(-128L)
    '\x80'
    >>> encode_long(127L)
    '\x7f'
    >>>
    iRviRit0x0iit0x00ilt0xRt0xffiN(
RcthextashexRt
njunkcharsRPtnibblesRFtnbitst
newnibblest	_binasciit	unhexlifytbinary(RcRlRhRgRfRiRe((R
RsD





cCswt|}|djodSnti|ddd}t|d}|ddjo|d|d>8}n|S(	s\Decode a long from a two's complement little-endian binary string.

    >>> decode_long('')
    0L
    >>> decode_long("\xff\x00")
    255L
    >>> decode_long("\xff\x7f")
    32767L
    >>> decode_long("\x00\xff")
    -256L
    >>> decode_long("\x00\x80")
    -32768L
    >>> decode_long("\x80")
    -128L
    >>> decode_long("\x7f")
    127L
    ilNiisli(RPR
tnbytesRjthexlifyReRR(R
RRmRe((R
RBs
(sStringIOcCst|||i|dS(N(RRCR;R=RRN(RNRCR;R=((R
RescCs,t}t|||i||iS(N(tStringIORCRR;R=RRNtgetvalue(RNR;R=RC((R
Rhs	cCst|iS(N(RRCR(RC((R
RmscCst|}t|iS(N(RoRuRCRR(RuRC((R
R	pscCsdk}|iS(N(tdoctestttestmod(Rq((R
t_testvs	R(lRt__version__ttypestcopy_regRlRR@R?tmarshalRRtreR?t__all__tformat_versiontcompatible_formatsRBR	Rt	ExceptionRRRRtorg.python.coreRRR<Rt	NameErrorRRORRR_RRRRRRRRtRsRRRRRRRRRRRRR\RZRR[RRRRXRURVRRRRRRRRKRRRRR\R]R^RRRRRRNt_[1]tdirRctmatchRRRRRR0tbinasciiRjRRt	cStringIORoRRRRsR
(^RRRRRRRRRR0RRRRRRRcR	RRzRR\R]R^RlRsRRyR\RURRxRjRRZRKRRRRoRR?RRRtRRBRsRRORRRRRRRRRR[RRRRR_RRRRRRRXRR@RRRRVRRRtRR?RRRRRRwRRRRR{((R
t?s
					!		
Bm				B				


Anon7 - 2021