
    5\hY?             
          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
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mZ d dlmZ 	 d dlZn# e$ r dZY nw xY wd dlmZ d dlmZ d dlmZmZmZmZmZm Z  d dl!m"Z" d dl#m$Z$ d d	lm%Z% d d
l&m'Z' d dlm(Z( 	  e'            5  d dl)Z*ddd           n# 1 swxY w Y   n# e$ r dZ*Y nw xY w ej+        ej,        dk     d          Z- e.ej/        dz             Z0d Z1d Z2d Z3 G d dej4                  Z5 G d de6          Z7 G d d          Z8 G d d          Z9 G d de9          Z: G d de9          Z; G d d          Z< G d  d!          Z=d dl>Z>e9e>_9        d"e9_?        e:e>_:        d"e:_?        e;e>_;        d"e;_?         G d# d$e@          ZA G d% d&e9          ZB G d' d(eC          ZD G d) d*e6eD+          ZE G d, d-eC          ZFd. ZG G d/ d0eH          ZI G d1 d2eJ          ZKe G d3 d4          ZLd5ZMd6ZNd7ZOd8ZPd9ZQd:ZRd;ZSd<ZTd=ZUd>ZVd?ZWd@ZXdAZYdBZZg e[e\e]e^e_e`eaebecedeeefegeheeiejekelemeneoepeqereseteuevewexeyeze{e|e}e~eeeeeeeR ZdCZdDZdE Z G dF dG          Z G dH dI          Z G dJ dK          Z G dL dMe6          Z G dN dOe6          Z G dP dQe6          Z G dR dSe6          Z G dT dUe6          Z G dV dWe6          Z G dX dYe6          Z G dZ d[e6          Z G d\ d]e@          Z G d^ d_e          Z G d` dae          Z G db dce          Z G dd dee          Z G df dge          Z G dh die          Z G dj dke          Z G dl dme          Z G dn doe          Zeeeeeeeeeeg
Z G dp dqe@          Z G dr dse          Z G dt due          Z G dv dwe@          a G dx dytV                    Z G dz d{tV                    Z G d| d}          Z G d~ d          Z G d d          Z G d d          Z G d d          ZdZ G d de6          Z G d de6          Zd Z G d d          Z G d d          Z G d d          Zed"k    rd dl	mZ  e            Z e.ej/        dz             D ]Z ej        ee          Z ed                    e                      e.d  ee          d          D ]6Z eHeeedz                      Z ed                    eĦ                     7 ed            e              ed                    e                      ed                    e                      ee            ed            e             dS dS )    N)dedent)SimpleCookie)support)	os_helper)
TestFailedrun_with_locale
no_tracing_2G_4G
bigmemtest)forget)TESTFN)threading_helper)save_restore_warnings_filters)bytes_typesl        z(test is only meaningful on 32-bit builds   c                 ~    t          j        |          D ]'\  }}}|j        |                     d          k    r dS (dS )Nlatin-1TFpickletoolsgenopscodedecode)r   pickleopdummys       ;/opt/python-3.11.14/usr/lib/python3.11/test/pickletester.pyopcode_in_pickler   ;   sM    '.v66  E57dkk),,,,44 -5    c                     d}t          j        |          D ])\  }}}|j        |                     d          k    r|dz  }*|S )Nr   r   r   r   )r   r   nr   r   s        r   count_opcoder"   B   sP    	A'.v66  E57dkk),,,,FAHr   c                     | S N xs    r   identityr(   J   s    Hr   c                   &    e Zd Zd Zd Zd Zd ZdS )UnseekableIOc                     t           r$   )NotImplementedErrorselfargss     r   peekzUnseekableIO.peekO   s    !!r   c                     dS )NFr%   r.   s    r   seekablezUnseekableIO.seekableR   s    ur   c                     t           j        r$   ioUnsupportedOperationr-   s     r   seekzUnseekableIO.seekU       %%r   c                     t           j        r$   r5   r2   s    r   tellzUnseekableIO.tellX   r9   r   N)__name__
__module____qualname__r0   r3   r8   r;   r%   r   r   r*   r*   N   sP        " " "  & & && & & & &r   r*   c                       e Zd Z	 d ZdS )	MinimalIOc                     t          j        | | _        | j        j        | _        | j        j        | _        | j        j        | _        | j        j        | _        d S r$   )r6   BytesIO_biogetvaluereadreadlinewriter-   s     r   __init__zMinimalIO.__init__`   sB    J%		*IN		*Y_


r   Nr<   r=   r>   rH   r%   r   r   r@   r@   \   s(        % % % % %r   r@   c                       e Zd Zd Zd ZdS )ExtensionSaverc                     || _         |t          j        v rEt          j        |         | _        t          j        | j        d         | j        d         |           d S d | _        d S Nr   r   )r   copyreg_inverted_registrypairremove_extension)r.   r   s     r   rH   zExtensionSaver.__init__u   sX    	7---248DI$TYq\49Q<FFFFFDIIIr   c                     | j         }t          j                            |          }|"t          j        |d         |d         |           | j        }|$t          j        |d         |d         |           d S d S rM   )r   rN   rO   getrQ   rP   add_extension)r.   r   curpairrP   s       r   restorezExtensionSaver.restore~   sz    y,0066$WQZTBBBy!$q'47D99999 r   N)r<   r=   r>   rH   rV   r%   r   r   rK   rK   r   s2          : : : : :r   rK   c                       e Zd Zd ZdS )Cc                 "    | j         |j         k    S r$   )__dict__r.   others     r   __eq__zC.__eq__   s    }..r   N)r<   r=   r>   r]   r%   r   r   rX   rX      s#        / / / / /r   rX   c                       e Zd Zd ZdS )Dc                     d S r$   r%   )r.   args     r   rH   z
D.__init__       r   NrI   r%   r   r   r_   r_      s#            r   r_   c                       e Zd Zd ZdS )Ec                     dS Nr%   r%   r2   s    r   __getinitargs__zE.__getinitargs__   s    rr   N)r<   r=   r>   rg   r%   r   r   rd   rd      s#            r   rd   c                       e Zd ZdS )ObjectNr<   r=   r>   r%   r   r   ri   ri              Dr   ri   c                       e Zd Zd Zd ZdS )Kc                     || _         d S r$   )value)r.   ro   s     r   rH   z
K.__init__       


r   c                      t           | j        ffS r$   )rm   ro   r2   s    r   
__reduce__zK.__reduce__   s    4:-r   N)r<   r=   r>   rH   rr   r%   r   r   rm   rm      s2                   r   rm   __main__c                       e Zd Zd ZdS )myintc                 .    t          |          | _         d S r$   str)r.   r'   s     r   rH   zmyint.__init__   s    q66r   NrI   r%   r   r   ru   ru      s#            r   ru   c                       e Zd Zd Zd ZdS )initargc                 "    || _         || _        d S r$   ab)r.   r}   r~   s      r   rH   zinitarg.__init__   s    r   c                     | j         | j        fS r$   r|   r2   s    r   rg   zinitarg.__getinitargs__   s    vtv~r   N)r<   r=   r>   rH   rg   r%   r   r   rz   rz      s2              r   rz   c                       e Zd ZdS )	metaclassNrj   r%   r   r   r   r      rk   r   r   c                       e Zd ZdS )use_metaclassNrj   r%   r   r   r   r      rk   r   r   )r   c                       e Zd Zd Zd ZdS )pickling_metaclassc                 b    t          |           t          |          k    o| j        |j        k    S r$   )typereduce_argsr[   s     r   r]   zpickling_metaclass.__eq__   s.    T

d5kk) 6 E$55	7r   c                     t           | j        fS r$   )create_dynamic_classr   r2   s    r   rr   zpickling_metaclass.__reduce__   s    $d&677r   N)r<   r=   r>   r]   rr   r%   r   r   r   r      s2        7 7 78 8 8 8 8r   r   c                 R    t          | |t                                }| |f|_        |S r$   )r   dictr   )namebasesresults      r   r   r      s(    eTVV44FFMr   c                   D    e Zd ZdZdZdZdZd Zd ZeZ	e
d             ZdS )ZeroCopyBytesTc                     |dk    r*t          |           j        t          j        |           fd fS t          |           j        t	          |           ffS N   r   _reconstructr   PickleBufferbytesr.   protocols     r   __reduce_ex__zZeroCopyBytes.__reduce_ex__   K    q==::*V-@-F-F,H$NN::*U4[[N::r   c                 \    d                     | j        j        t          |                     S Nz{}({!r})format	__class__r<   r   r2   s    r   __repr__zZeroCopyBytes.__repr__   #      !8%++FFFr   c                     t          |          5 }|j        }t          |          | u r|cd d d            S  | |          cd d d            S # 1 swxY w Y   d S r$   
memoryviewobjr   clsr   ms      r   r   zZeroCopyBytes._reconstruct       __ 	 %CCyyC		  	  	  	  	  	  	  	  s3xx	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	    A
AAANr<   r=   r>   readonlyc_contiguousf_contiguouszero_copy_reconstructr   r   __str__classmethodr   r%   r   r   r   r      sj        HLL ; ; ;G G G G    [     r   r   c                   D    e Zd ZdZdZdZdZd Zd ZeZ	e
d             ZdS )ZeroCopyBytearrayFTc                     |dk    r*t          |           j        t          j        |           fd fS t          |           j        t	          |           ffS r   r   r   s     r   r   zZeroCopyBytearray.__reduce_ex__   r   r   c                 \    d                     | j        j        t          |                     S r   r   r2   s    r   r   zZeroCopyBytearray.__repr__   r   r   c                     t          |          5 }|j        }t          |          | u r|cd d d            S  | |          cd d d            S # 1 swxY w Y   d S r$   r   r   s      r   r   zZeroCopyBytearray._reconstruct   r   r   Nr   r%   r   r   r   r      sj        HLL ; ; ;G G G G    [     r   r   c                       e Zd ZdZd Zd Zed             Zed             Zed             Z	d Z
d Zd	 Zd
 Zed             ZdS )PicklableNDArrayFc                 2    t          j        |i || _        d S r$   )_testbufferndarrayarrayr.   r/   kwargss      r   rH   zPicklableNDArray.__init__	  s    $,d=f==DJJJr   c                 r    t          |           }|                    |          }| j        |         |_        |S r$   )r   __new__r   )r.   idxr   news       r   __getitem__zPicklableNDArray.__getitem__  s0    t**C++c""C
3CIJr   c                     | j         j        S r$   )r   r   r2   s    r   r   zPicklableNDArray.readonly  s    :&&r   c                     | j         j        S r$   )r   r   r2   s    r   r   zPicklableNDArray.c_contiguous      :**r   c                     | j         j        S r$   )r   r   r2   s    r   r   zPicklableNDArray.f_contiguous  r   r   c                 r   t          |t                    st          S |j        j        | j        j        k    o|j        j        | j        j        k    og|j        j        | j        j        k    oM|j        j        | j        j        k    o3|j                                        | j                                        k    S r$   )	
isinstancer   NotImplementedr   r   shapestridesr   tobytesr[   s     r   r]   zPicklableNDArray.__eq__  s    e%566 &%%K&$**;; BK%)99BK'4:+==B K(DJ,??B K''))TZ-?-?-A-AA	Cr   c                 H    t          |t                    st          S | |k     S r$   )r   r   r   r[   s     r   __ne__zPicklableNDArray.__ne__'  s(    e%566 &%%&&r   c                     t          |            d| j        j         d| j        j         d| j                                         dS )Nz(shape=z	,strides=z, bytes=))r   r   r   r   r   r2   s    r   r   zPicklableNDArray.__repr__,  s]    Dzz 5 5$**: 5 5#z15 5!Z//115 5 5 6r   c                    | j         j        st          d          | j         j        | j         j        | j         j        | j        rdnt          j        d}t          j
        | j                   }|dk    rt          |           j        ||ffS |                                5 }t          |           j        |                                |ffcd d d            S # 1 swxY w Y   d S )Nz>Reconstructing a non-contiguous ndarray does not seem possibler   )r   r   r   flagsr   )r   
contiguousr,   r   r   r   r   r   ND_WRITABLEr   r   r   r   rawr   )r.   r   ndarray_kwargspbr   s        r   r   zPicklableNDArray.__reduce_ex__1  s3   :( L) +K L L L'+z'7)-);(,
(9-1] )E-8-D	G GN
 $TZ00B1}}T

/^,. . VVXX ; JJ3YY[[.9;; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;s   *CCCc                     t          |          5 }t          |                                          }d d d            n# 1 swxY w Y    | |fi |S r$   )r   listr   )r   r   r   r   itemss        r   r   zPicklableNDArray._reconstructD  s    C *A QYY[[))* * * * * * * * * * * * * * * 3u'''''s   ">AAN)r<   r=   r>   r   rH   r   propertyr   r   r   r]   r   r   r   r   r   r%   r   r   r   r     s         !&	> 	> 	>	 	 	 
	' 	' 
	' 
	+ 	+ 
	+ 
	+ 	+ 
	+	C 	C 	C	' 	' 	'
	6 	6 	6
	; 	; 	;& 
	( 	( 
	( 	( 	(r   r   s;  (lp0
L0L
aL1L
aF2.0
ac__builtin__
complex
p1
(F3.0
F0.0
tp2
Rp3
aL1L
aL-1L
aL255L
aL-255L
aL-256L
aL65535L
aL-65535L
aL-65536L
aL2147483647L
aL-2147483647L
aL-2147483648L
a(Vabc
p4
g4
ccopy_reg
_reconstructor
p5
(c__main__
C
p6
c__builtin__
object
p7
Ntp8
Rp9
(dp10
Vfoo
p11
L1L
sVbar
p12
L2L
sbg9
tp13
ag13
aL5L
a.an      0: (    MARK
    1: l        LIST       (MARK at 0)
    2: p    PUT        0
    5: L    LONG       0
    9: a    APPEND
   10: L    LONG       1
   14: a    APPEND
   15: F    FLOAT      2.0
   20: a    APPEND
   21: c    GLOBAL     '__builtin__ complex'
   42: p    PUT        1
   45: (    MARK
   46: F        FLOAT      3.0
   51: F        FLOAT      0.0
   56: t        TUPLE      (MARK at 45)
   57: p    PUT        2
   60: R    REDUCE
   61: p    PUT        3
   64: a    APPEND
   65: L    LONG       1
   69: a    APPEND
   70: L    LONG       -1
   75: a    APPEND
   76: L    LONG       255
   82: a    APPEND
   83: L    LONG       -255
   90: a    APPEND
   91: L    LONG       -256
   98: a    APPEND
   99: L    LONG       65535
  107: a    APPEND
  108: L    LONG       -65535
  117: a    APPEND
  118: L    LONG       -65536
  127: a    APPEND
  128: L    LONG       2147483647
  141: a    APPEND
  142: L    LONG       -2147483647
  156: a    APPEND
  157: L    LONG       -2147483648
  171: a    APPEND
  172: (    MARK
  173: V        UNICODE    'abc'
  178: p        PUT        4
  181: g        GET        4
  184: c        GLOBAL     'copy_reg _reconstructor'
  209: p        PUT        5
  212: (        MARK
  213: c            GLOBAL     '__main__ C'
  225: p            PUT        6
  228: c            GLOBAL     '__builtin__ object'
  248: p            PUT        7
  251: N            NONE
  252: t            TUPLE      (MARK at 212)
  253: p        PUT        8
  256: R        REDUCE
  257: p        PUT        9
  260: (        MARK
  261: d            DICT       (MARK at 260)
  262: p        PUT        10
  266: V        UNICODE    'foo'
  271: p        PUT        11
  275: L        LONG       1
  279: s        SETITEM
  280: V        UNICODE    'bar'
  285: p        PUT        12
  289: L        LONG       2
  293: s        SETITEM
  294: b        BUILD
  295: g        GET        9
  298: t        TUPLE      (MARK at 172)
  299: p    PUT        13
  303: a    APPEND
  304: g    GET        13
  308: a    APPEND
  309: L    LONG       5
  313: a    APPEND
  314: .    STOP
highest protocol among opcodes = 0
s   ]q (K KG@       c__builtin__
complex
q(G@      G        tqRqKJKJJ MJ J  JJ  J   (X   abcqhccopy_reg
_reconstructor
q(c__main__
C
qc__builtin__
object
qNtqRq	}q
(X   fooqKX   barqKubh	tqhKe.a      0: ]    EMPTY_LIST
    1: q    BINPUT     0
    3: (    MARK
    4: K        BININT1    0
    6: K        BININT1    1
    8: G        BINFLOAT   2.0
   17: c        GLOBAL     '__builtin__ complex'
   38: q        BINPUT     1
   40: (        MARK
   41: G            BINFLOAT   3.0
   50: G            BINFLOAT   0.0
   59: t            TUPLE      (MARK at 40)
   60: q        BINPUT     2
   62: R        REDUCE
   63: q        BINPUT     3
   65: K        BININT1    1
   67: J        BININT     -1
   72: K        BININT1    255
   74: J        BININT     -255
   79: J        BININT     -256
   84: M        BININT2    65535
   87: J        BININT     -65535
   92: J        BININT     -65536
   97: J        BININT     2147483647
  102: J        BININT     -2147483647
  107: J        BININT     -2147483648
  112: (        MARK
  113: X            BINUNICODE 'abc'
  121: q            BINPUT     4
  123: h            BINGET     4
  125: c            GLOBAL     'copy_reg _reconstructor'
  150: q            BINPUT     5
  152: (            MARK
  153: c                GLOBAL     '__main__ C'
  165: q                BINPUT     6
  167: c                GLOBAL     '__builtin__ object'
  187: q                BINPUT     7
  189: N                NONE
  190: t                TUPLE      (MARK at 152)
  191: q            BINPUT     8
  193: R            REDUCE
  194: q            BINPUT     9
  196: }            EMPTY_DICT
  197: q            BINPUT     10
  199: (            MARK
  200: X                BINUNICODE 'foo'
  208: q                BINPUT     11
  210: K                BININT1    1
  212: X                BINUNICODE 'bar'
  220: q                BINPUT     12
  222: K                BININT1    2
  224: u                SETITEMS   (MARK at 199)
  225: b            BUILD
  226: h            BINGET     9
  228: t            TUPLE      (MARK at 112)
  229: q        BINPUT     13
  231: h        BINGET     13
  233: K        BININT1    5
  235: e        APPENDS    (MARK at 3)
  236: .    STOP
highest protocol among opcodes = 1
s   ]q (K KG@       c__builtin__
complex
qG@      G        qRqKJKJJ MJ J  JJ  J   (X   abcqhc__main__
C
q)q}q(X   fooqKX   barq	Kubhtq
h
Ke.u      0:  PROTO      2
    2: ]    EMPTY_LIST
    3: q    BINPUT     0
    5: (    MARK
    6: K        BININT1    0
    8: K        BININT1    1
   10: G        BINFLOAT   2.0
   19: c        GLOBAL     '__builtin__ complex'
   40: q        BINPUT     1
   42: G        BINFLOAT   3.0
   51: G        BINFLOAT   0.0
   60:      TUPLE2
   61: q        BINPUT     2
   63: R        REDUCE
   64: q        BINPUT     3
   66: K        BININT1    1
   68: J        BININT     -1
   73: K        BININT1    255
   75: J        BININT     -255
   80: J        BININT     -256
   85: M        BININT2    65535
   88: J        BININT     -65535
   93: J        BININT     -65536
   98: J        BININT     2147483647
  103: J        BININT     -2147483647
  108: J        BININT     -2147483648
  113: (        MARK
  114: X            BINUNICODE 'abc'
  122: q            BINPUT     4
  124: h            BINGET     4
  126: c            GLOBAL     '__main__ C'
  138: q            BINPUT     5
  140: )            EMPTY_TUPLE
  141:          NEWOBJ
  142: q            BINPUT     6
  144: }            EMPTY_DICT
  145: q            BINPUT     7
  147: (            MARK
  148: X                BINUNICODE 'foo'
  156: q                BINPUT     8
  158: K                BININT1    1
  160: X                BINUNICODE 'bar'
  168: q                BINPUT     9
  170: K                BININT1    2
  172: u                SETITEMS   (MARK at 147)
  173: b            BUILD
  174: h            BINGET     6
  176: t            TUPLE      (MARK at 113)
  177: q        BINPUT     10
  179: h        BINGET     10
  181: K        BININT1    5
  183: e        APPENDS    (MARK at 5)
  184: .    STOP
highest protocol among opcodes = 2
s   ]q (K KG@       cbuiltins
complex
qG@      G        qRqKJKJJ MJ J  JJ  J   (X   abcqhc__main__
C
q)q}q(X   barqKX   fooq	Kubhtq
h
Ke.u      0:  PROTO      3
    2: ]    EMPTY_LIST
    3: q    BINPUT     0
    5: (    MARK
    6: K        BININT1    0
    8: K        BININT1    1
   10: G        BINFLOAT   2.0
   19: c        GLOBAL     'builtins complex'
   37: q        BINPUT     1
   39: G        BINFLOAT   3.0
   48: G        BINFLOAT   0.0
   57:      TUPLE2
   58: q        BINPUT     2
   60: R        REDUCE
   61: q        BINPUT     3
   63: K        BININT1    1
   65: J        BININT     -1
   70: K        BININT1    255
   72: J        BININT     -255
   77: J        BININT     -256
   82: M        BININT2    65535
   85: J        BININT     -65535
   90: J        BININT     -65536
   95: J        BININT     2147483647
  100: J        BININT     -2147483647
  105: J        BININT     -2147483648
  110: (        MARK
  111: X            BINUNICODE 'abc'
  119: q            BINPUT     4
  121: h            BINGET     4
  123: c            GLOBAL     '__main__ C'
  135: q            BINPUT     5
  137: )            EMPTY_TUPLE
  138:          NEWOBJ
  139: q            BINPUT     6
  141: }            EMPTY_DICT
  142: q            BINPUT     7
  144: (            MARK
  145: X                BINUNICODE 'bar'
  153: q                BINPUT     8
  155: K                BININT1    2
  157: X                BINUNICODE 'foo'
  165: q                BINPUT     9
  167: K                BININT1    1
  169: u                SETITEMS   (MARK at 144)
  170: b            BUILD
  171: h            BINGET     6
  173: t            TUPLE      (MARK at 110)
  174: q        BINPUT     10
  176: h        BINGET     10
  178: K        BININT1    5
  180: e        APPENDS    (MARK at 5)
  181: .    STOP
highest protocol among opcodes = 2
s          ](K KG@       builtinscomplexG@      G        RKJKJJ MJ J  JJ  J   (abch__main__C)}(barKfooKubh
thKe.u      0:  PROTO      4
    2:  FRAME      168
   11: ]    EMPTY_LIST
   12:  MEMOIZE
   13: (    MARK
   14: K        BININT1    0
   16: K        BININT1    1
   18: G        BINFLOAT   2.0
   27:      SHORT_BINUNICODE 'builtins'
   37:      MEMOIZE
   38:      SHORT_BINUNICODE 'complex'
   47:      MEMOIZE
   48:      STACK_GLOBAL
   49:      MEMOIZE
   50: G        BINFLOAT   3.0
   59: G        BINFLOAT   0.0
   68:      TUPLE2
   69:      MEMOIZE
   70: R        REDUCE
   71:      MEMOIZE
   72: K        BININT1    1
   74: J        BININT     -1
   79: K        BININT1    255
   81: J        BININT     -255
   86: J        BININT     -256
   91: M        BININT2    65535
   94: J        BININT     -65535
   99: J        BININT     -65536
  104: J        BININT     2147483647
  109: J        BININT     -2147483647
  114: J        BININT     -2147483648
  119: (        MARK
  120:          SHORT_BINUNICODE 'abc'
  125:          MEMOIZE
  126: h            BINGET     6
  128:          SHORT_BINUNICODE '__main__'
  138:          MEMOIZE
  139:          SHORT_BINUNICODE 'C'
  142:          MEMOIZE
  143:          STACK_GLOBAL
  144:          MEMOIZE
  145: )            EMPTY_TUPLE
  146:          NEWOBJ
  147:          MEMOIZE
  148: }            EMPTY_DICT
  149:          MEMOIZE
  150: (            MARK
  151:              SHORT_BINUNICODE 'bar'
  156:              MEMOIZE
  157: K                BININT1    2
  159:              SHORT_BINUNICODE 'foo'
  164:              MEMOIZE
  165: K                BININT1    1
  167: u                SETITEMS   (MARK at 150)
  168: b            BUILD
  169: h            BINGET     10
  171: t            TUPLE      (MARK at 119)
  172:      MEMOIZE
  173: h        BINGET     14
  175: K        BININT1    5
  177: e        APPENDS    (MARK at 13)
  178: .    STOP
highest protocol among opcodes = 4
s%   c__builtin__
set
q ]q(KKeqRq.s%   c__builtin__
xrange
q K KKqRq.s   cCookie
SimpleCookie
q )qUkeyqcCookie
Morsel
q)q(UcommentqU qUdomainqhUsecureqhUexpiresq	hUmax-ageq
hUversionqhUpathqhUhttponlyqhu}q(Ucoded_valueqUvalueqhhhhubs}qb.s"   c__builtin__
set
q ]qKaqRq.s   cexceptions
?
q )Rq.sI   cexceptions
UnicodeEncodeError
q (UasciiqX   fooqK KUbadqtqRq.c                  :   t                      } d| _        d| _        g d}d}d}d}|                    dd|| | dz
  || | dz
  || | dz
  g           dd| | f}|                    |           |                    |           |                    d	           |S )
Nr      )r   r   g       @y      @             abcr   )rX   foobarextendappend)cr'   uint1maxuint2maxint4maxys         r   create_datar   ,  s    	AAEAEA HHGHHa	H9Q;	H9Q;'WHQJ0 1 1 1 
q!AHHQKKKHHQKKKHHQKKKHr   c                      e Zd Z e            Zd/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 Zd Zd Zd Zed             Zed             Zd Zd Zd Zd Zd Zed             Zed             Zed             Z d Z!d Z"d Z#d  Z$d! Z%ed"             Z&d# Z'd$ Z(d% Z)d& Z*d' Z+d( Z,d) Z-d* Z.d+ Z/d, Z0d- Z1e2j3         e2j4                    d.                         Z5dS )0AbstractUnpickleTestsNc           	         	 |d                     ||          }|                     |||           |                     t          |          t          |          |           t	          |d          rD|                     |j        |j        |           |                     |j        |j        |           t	          |d          r|                     |j	        |j	        |           |j	        D ]n}|                     t	          ||          t	          ||          |           |                     t          ||d           t          ||d           |           md S d S )Nz{!r} is not a copy of {!r})msgrZ   	__slots__)r   assertEqualassertIsr   hasattrassertDictEqualrZ   assertIsNotassertListEqualr   getattr)r.   r   objcopyr   slots        r   assert_is_copyz$AbstractUnpickleTests.assert_is_copyF  s   	;.55c7CCCg3///d3iigC8883
## 	F  w/?S IIIS\7+;EEE3$$ 	H  0As KKK H H  C&&(>(>C ! I I I  dD!9!9!($!=!=3 ! H H H H	H 	HH Hr   c           
      x   |                      |          5  |                     |          5  	 |                     |           nE# t          $ r8}t          j        dk    r"t          |dd|j        j        d|            d }~ww xY w	 d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )N)datar   32z - z: )	subTestassertRaisesloadsBaseExceptionr   verboseprintr   r<   )r.   errorsr   excs       r   check_unpickling_errorz,AbstractUnpickleTests.check_unpickling_errorX  sb   \\t\$$ 	 	v&&	 	

4        ?Q&&444!7!7!7> ? ? ?	 !	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sW   B/BAB
B3BBBB/B	B/B	B//B36B3c                 l    |                      | j        |                     t                               d S r$   )r   	_testdatar  DATA0r2   s    r   test_load_from_data0z*AbstractUnpickleTests.test_load_from_data0c  ,    DNDJJu,=,=>>>>>r   c                 l    |                      | j        |                     t                               d S r$   )r   r  r  DATA1r2   s    r   test_load_from_data1z*AbstractUnpickleTests.test_load_from_data1f  r  r   c                 l    |                      | j        |                     t                               d S r$   )r   r  r  DATA2r2   s    r   test_load_from_data2z*AbstractUnpickleTests.test_load_from_data2i  r  r   c                 l    |                      | j        |                     t                               d S r$   )r   r  r  DATA3r2   s    r   test_load_from_data3z*AbstractUnpickleTests.test_load_from_data3l  r  r   c                 l    |                      | j        |                     t                               d S r$   )r   r  r  DATA4r2   s    r   test_load_from_data4z*AbstractUnpickleTests.test_load_from_data4o  r  r   c                    t           dft          dft          dffD ]\  }}|j                            d          }	 d                    d|          }|                      || |                     |                     	 d                    d|          }|                      || |                     |                     	 d                    d|          }|                      || |                     |                     d S )Nr%   r&   asciis   (i__main__
X
p0
(dp1
b.   Xs   (c__main__
X
q oq}qb.s   (c__main__
X
q oq}qb.)rX   r_   rd   r<   encodereplacer   r  )r.   Xr/   xnamepickle0pickle1pickle2s          r   test_load_classic_instancez0AbstractUnpickleTests.test_load_classic_instancer  s'    B!Vq"g6 4	? 4	?GAtJ%%g..E	# %,GD%$8$8  4$**W*=*=>>>
./6wtU/C/C  4$**W*=*=>>>./6wtU/C/C  4$**W*=*=>>>>i4	? 4	?r   c                 6   d}dt          |                              d          z   dz   }|                     |          }|                     ||           dt          |                              d          z   dz   }|                     t
          |           d S )Nl       Ir     
.s   JUNK
.)rx   r  r  r   r
  
ValueError)r.   maxint64r   gots       r   test_maxint64z#AbstractUnpickleTests.test_maxint64  s     c(mm**7333f<jjHc*** c(mm**7333j@##J55555r   c                    |                      t                    }|                     |t          ddg                     |                      t                    }|                     t          |          t          t          d                               |                     t          |          t          t          d                               |                      t                    }|                     t          |          t                     |                     t          |
                                          dg           |                     |d         j        d           t          D ]m}t                              d|j                            d                    }|                      |          }|                     t          |          |           n|                      t                              dd	                    }|                     t          |          t$                     |                      t&                    }|                     t          |          t(                     |                     |j        d
           |                     |j        d           |                     |j        d           |                     |j        d           |                     |j        d           d S )Nr   r   r   r   keyro      ?r     StandardErrorr   bad)r  DATA_SETr   setDATA_XRANGEr   ranger   DATA_COOKIEr   keysro   python2_exceptions_without_argsexception_pickler   r<   r  r   	Exception
DATA_UEERRUnicodeEncodeErrorobjectencodingstartendreason)r.   loadedr	  r   s       r   test_unpickle_from_2xz+AbstractUnpickleTests.test_unpickle_from_2x  sS   H%%aV---K((ftE!HH~~666ftE!HH~~666K((f|444fkkmm,,ug666,g666 3 	- 	-C#++D#,2E2Eg2N2NOODZZ%%FMM$v,,,,,, ,44T;KLLMMd6llI...J''d6ll$6777...'222q)))Q'''.....r   c                    |                      |                     dd          d           |                      |                     dd          d           |                      |                     dd          d           d S )Ns   S'a\x00\xa0'
.r   r?  s   a s   Ua .s   Ua .r   r  r2   s    r   test_load_python2_str_as_bytesz4AbstractUnpickleTests.test_load_python2_str_as_bytes  s    $8-4 $ 6 67C	E 	E 	E 	$6-4 $ 6 67C	E 	E 	E 	$>-4 $ 6 67C	E 	E 	E 	E 	Er   c                    |                      |                     dd          d           |                      |                     dd          d           |                      |                     dd          d           d S )Ns	   V\u03c0
.r   rF  u   πs   X   π.s
   X   π.rG  r2   s    r    test_load_python2_unicode_as_strz6AbstractUnpickleTests.test_load_python2_unicode_as_str  s    N-4 $ 6 67;	= 	= 	= 	$A-4 $ 6 67;	= 	= 	= 	$I-4 $ 6 67;	= 	= 	= 	= 	=r   c           	          |                      |                     t          j        t	          j        dd          z   dz   t          j        z   d          d           d S )N<Ii,  s,  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr   rF  )r   r  r   	BINSTRINGstructpackSTOPr2   s    r   #test_load_long_python2_str_as_bytesz9AbstractUnpickleTests.test_load_long_python2_str_as_bytes  st    F$4$*Kc$:$:%;$.%/17%= .5 $ 6 6 8B	C 	C 	C 	C 	Cr   c                    |                      |                     d                     |                     |                     d          d           |                     |                     d          d           |                     |                     d          d           |                     |                     d          d           d S )Ns   N.s   .Ts   .Fs   I01
.s   I00
.)assertIsNoner  r   r2   s    r   test_constantsz$AbstractUnpickleTests.test_constants  s    $**U++,,,djj**D111djj**E222djj++T222djj++U33333r   c                 `    |                      dd          }|                     |d           d S )Ns   U q .zkoi8-rrF   )r  r   )r.   emptys     r   test_empty_bytestringz+AbstractUnpickleTests.test_empty_bytestring  s4    

1H
EE#####r   c                 \    d}|                      |                     |          d           d S )Ns	   C€ .   € rG  r.   dumpeds     r   test_short_binbytesz)AbstractUnpickleTests.test_short_binbytes  s0    2F++-@AAAAAr   c                 \    d}|                      |                     |          d           d S )Ns   B   € .rZ  rG  r[  s     r   test_binbytesz#AbstractUnpickleTests.test_binbytes   s0    >F++-@AAAAAr   c                 X    d}|                      t          j        t          f|           d S )Ns   Bxyzq .r
  r   UnpicklingErrorOverflowErrorr[  s     r   test_negative_32b_binbytesz0AbstractUnpickleTests.test_negative_32b_binbytes  8     7##V%;]$K$*	, 	, 	, 	, 	,r   c                 X    d}|                      t          j        t          f|           d S )Ns   Xxyzq .ra  r[  s     r   test_negative_32b_binunicodez2AbstractUnpickleTests.test_negative_32b_binunicode  re  r   c                 \    d}|                      |                     |          d           d S )Ns	   € .   € rG  r[  s     r   test_short_binunicodez+AbstractUnpickleTests.test_short_binunicode  s/    5F++\:::::r   c                    |                      t          j        d           |                      t          j        d           |                      t          j        d           |                     ddg|                     d                     d S )Ns   g0
p0s   jens:s   hens:)d   s   ((Kdtp0
h l.)))r
  r   rb  r   r  r2   s    r   test_misc_getz#AbstractUnpickleTests.test_misc_get  s    ##F$:IFFF##F$:HEEE##F$:HEEEVV, JJ'<==	? 	? 	? 	? 	?r   c                 \    d}|                      |                     |          d           d S )Ns          € .rZ  rG  r[  s     r   test_binbytes8z$AbstractUnpickleTests.test_binbytes8  s0    AF++-@AAAAAr   c                 \    d}|                      |                     |          d           d S )Ns          € .ri  rG  r[  s     r   test_binunicode8z&AbstractUnpickleTests.test_binunicode8!  s/    AF++\:::::r   c                 v    d}|                      |                     |          t          d                     d S )Ns          xxx.s   xxx)r   r  	bytearrayr[  s     r   test_bytearray8z%AbstractUnpickleTests.test_bytearray8%  s7    DF++Yv->->?????r   c                 X    d}|                      t          j        t          f|           d S )Ns         € .ra  r[  s     r   test_large_32b_binbytes8z.AbstractUnpickleTests.test_large_32b_binbytes8)  6    A##V%;]$K$*	, 	, 	, 	, 	,r   c                 X    d}|                      t          j        t          f|           d S )Ns         € .ra  r[  s     r   test_large_32b_bytearray8z/AbstractUnpickleTests.test_large_32b_bytearray8/  rw  r   c                 X    d}|                      t          j        t          f|           d S )Ns         € .ra  r[  s     r   test_large_32b_binunicode8z0AbstractUnpickleTests.test_large_32b_binunicode85  rw  r   c                     d}|                      |          }|                     |g fdz             |                     |d         |d                    d S )Ns   ((lp100000
g100000
t.r   r   r   r  r   r   r.   pickled	unpickleds      r   test_getzAbstractUnpickleTests.test_get;  sV    ,JJw''	RE!G,,,ilIaL11111r   c                     d}|                      |          }|                     |g fdz             |                     |d         |d                    d S )Ns   (]qht.r   r   r   r}  r~  s      r   test_bingetz!AbstractUnpickleTests.test_bingetA  sV    #JJw''	RE!G,,,ilIaL11111r   c                     d}|                      |          }|                     |g fdz             |                     |d         |d                    d S )Ns   (]r   j   t.r   r   r   r}  r~  s      r   test_long_bingetz&AbstractUnpickleTests.test_long_bingetG  sV    ;JJw''	RE!G,,,ilIaL11111r   c                     d}|                      |          }|                     |g fdz             |                     |d         |d                    d S )Ns   ((l2t.r   r   r   r}  r~  s      r   test_dupzAbstractUnpickleTests.test_dupM  sV    JJw''	RE!G,,,ilIaL11111r   c                 @    d}|                      t          |           d S )Ns   Va
p-1
.r
  r*  r[  s     r   test_negative_putz'AbstractUnpickleTests.test_negative_putS  s#    ##J77777r   c                 @    d}|                      t          |           d S )Ns   X   ar.r  r[  s     r   test_negative_32b_binputz.AbstractUnpickleTests.test_negative_32b_binputX  s&     A##J77777r   c                 <    |                      t          d           d S )Ns   S'\'
.r  r2   s    r   test_badly_escaped_stringz/AbstractUnpickleTests.test_badly_escaped_string^  s    ##J<<<<<r   c                 X    g d}|D ]"}|                      t          j        |           #d S )N)s   S'
.s   S"
.s   S' 
.s   S" 
.s   S'"
.s   S"'
.s   S' ' 
.s   S" " 
.s   S ''
.s   S ""
.s   S 
.s   S
.s   S.)r
  r   rb  r.   
badpicklesps      r   test_badly_quoted_stringz.AbstractUnpickleTests.test_badly_quoted_stringa  sN      
  	C 	CA''(>BBBB	C 	Cr   c                 p    g d}|D ].\  }}|                      |                     |          |           /d S )N))s   S''
.rV  )s   S""
.rV  )s   S"\n"
.
)s   S'\n'
.r  rG  )r.   goodpicklesr  expecteds       r   test_correctly_quoted_stringz2AbstractUnpickleTests.test_correctly_quoted_strings  sU    - - - ' 	6 	6KAxTZZ]]H5555	6 	6r   c                 \    d}|                      |                     |          d           d S )Ns          I42
.*   rG  )r.   r  s     r   test_frame_readlinez)AbstractUnpickleTests.test_frame_readline{  s1    G
 	G,,b11111r   c                    d}|                      |          }|                     t          |          t                     |                     |t          dd                     |                     t          |          g d           d}|                     |                      |          t          j                   d}|                     |                      |          t          j	                   dD ]j}d|z   d	z   }|                      |          }|                     t          |          t                     |                     t          |          d
           kdD ]v}d|z   dz   }|                      |          }|                     t          |          t          j                   |                     |t          j        ddi                     wd S )Ns   c__builtin__
xrange
KKKR.r      )r   r         r      s   c__builtin__
reduce
.s   cwhichdb
whichdb
.)s	   Exceptionr1  s   cexceptions
s	   
UughR.ugh)s   UserDicts   IterableUserDicts   (cUserDict
s   
o}Udata}KKssb.r   )r  r   r   r6  r   r   	functoolsreducedbmwhichdbr;  rx   collectionsUserDict)r.   r  r  r   s       r   test_compat_unpicklez*AbstractUnpickleTests.test_compat_unpickle  s   HJJw''	d9oou---E!QKK000i*<*<*<===4djj))9+;<<<1djj))3;7774 	4 	4D/$69LLG

7++IMM$y//9555S^^U33336 	F 	FD.567G

7++IMM$y//;+?@@@Y(<aV(D(DEEEE	F 	Fr   c                     |                      |                     d          d           |                     t          d           |                     t          d           d S )Ns   cbuiltins
int
)R.r   s   N)R.s   cbuiltins
int
NR.)r   r  r
  	TypeErrorr2   s    r   test_bad_reducez%AbstractUnpickleTests.test_bad_reduce  sX    $:;;Q???##Iw777##I/EFFFFFr   c                     t           j        t          f}|                     |                     d          d           |                     |d           |                     |d           d S )Ns   cbuiltins
int
).r   s   cbuiltins
len
).s   cbuiltins
int
N.r   rb  r  r   r  r
  r.   errors     r   test_bad_newobjz%AbstractUnpickleTests.test_bad_newobj  sf    '3$=>>BBB##E+DEEE##E+DEEEEEr   c                    t           j        t          f}|                     |                     d          d           |                     |d           |                     |d           |                     |d           d S )Ns   cbuiltins
int
)}.r   s   cbuiltins
len
)}.s   cbuiltins
int
N}.s   cbuiltins
int
)N.r  r  s     r   test_bad_newobj_exz(AbstractUnpickleTests.test_bad_newobj_ex  s}    '3$>??CCC##E+EFFF##E+EFFF##E+EFFFFFr   c                 N    g d}|D ]}|                      | j        |           d S )N),   .   0   1   2s   (2   Rs   )R   as   Na   bs   Nb   d   es   (es   ibuiltins
list
   l   os   (os   p1
s   q s   r       ss   Nss   NNs   t   us   (us   }(Nu   s   )      s   N   s   Ns   NN   s   (      s   )}   s   Vlist
   r
  bad_stack_errorsr  s      r   test_bad_stackz$AbstractUnpickleTests.test_bad_stack  sO    -
 -
 -

\  	B 	BA''(=qAAAA	B 	Br   c                 N    g d}|D ]}|                      | j        |           d S )N)s   N(.s   N(2s   cbuiltins
list
)(Rs   cbuiltins
list
()Rs   ]N(as   cbuiltins
ValueError
)R}(bs   cbuiltins
ValueError
)R(}bs   (Nds   N(p1
s   N(q s   N(r    s   }NN(ss   }N(Nss   }(NNss   }((us   cbuiltins
list
)(s   cbuiltins
list
()s   N(s   NN(s   N(Ns   NNN(s   NN(Ns   N(NNs   ]((s   cbuiltins
list
)}(s   cbuiltins
list
)(}s   cbuiltins
list
()}s   Vbuiltins
(Vlist
s   Vbuiltins
Vlist
(s   N(r  r  s      r   test_bad_markz#AbstractUnpickleTests.test_bad_mark  sO    "
 "
 "

F  	B 	BA''(=qAAAA	B 	Br   c                     |                      t          d           |                      t          d           g d}|D ]}|                      | j        |           d S )Nr      N)U   Bs   B  s   B   s   B   ab   Cs   Cs   Cab   Fs   F0.0s   F0.00   Gs   G       r(  s   I0   Js   J      K   Ls   L0s   L10s   L0Ls   L10L   Ms   M    Ss   S'abc'   Ts   T  s   T   s   T   ab   Us   Us   Uab   Vs   Vabcr  s   X  s   X   s   X   abs   (cs
   (cbuiltinss   (cbuiltins
s   (cbuiltins
lists   Ngs   Ng0s   (is
   (ibuiltinss   (ibuiltins
s   (ibuiltins
lists   Nhs   Njs   Nj   s   Nps   Np0s   Nqs   Nrs   Nr            s      s           s         s   s   ab   s         s	          s          ab   s         s	          s          ab   s         s	          s          ab   s         s	          s
          N)r
  EOFErrortruncated_errorsr  s      r   test_truncated_dataz)AbstractUnpickleTests.test_truncated_data	  s~    ##Hc222##Hd333X
 X
 X

r  	B 	BA''(=qAAAA	B 	Br   c                   	
 t          d          }t          d          }t          j        t                     |                     t
          j        t                     t          j        	                    dt                     |                     t          j        j
        t                     t          t          j                            t          d          d          5 }|                    |                    d                     d d d            n# 1 swxY w Y   t          t          j                            t          d          d          5 }|                    |                    d                     d d d            n# 1 swxY w Y   |                     t          d           |                     t          d	           dd l}d

g t#          j        d          		
fd}t#          j        |          }t#          j        |          }|                                 |                                 	                                 |j                                         |                                 |                                 ddlm} |                     d D             |gdz             d S )NzI
        import threading
        barrier = threading.Barrier(2)
        zs
        import locker
        locker.barrier.wait()
        class ToBeUnpickled(object):
            pass
        r   z	locker.pywbutf-8zlocking_import.pylockerlocking_imports'   clocking_import
ToBeUnpickled
q )q.r  c                  ~                                                           t          j                             d S r$   )waitr   r   r  )barrierpickle_bytesresultss   r   tz:AbstractUnpickleTests.test_unpickle_module_race.<locals>.t  s4     LLNNNNN6<5566666r   )target)ToBeUnpickledc                 ,    g | ]}t          |          S r%   )r   .0r'   s     r   
<listcomp>zCAbstractUnpickleTests.test_unpickle_module_race.<locals>.<listcomp>  s    &&&T!WW&&&r   r   )r   osmkdirr   
addCleanupshutilrmtreesyspathinsertremoveopenjoinrG   r  r   r  	threadingBarrierThreadr@  r  r  r  r  r   )r.   locker_modulelocking_import_modulefr  r  t1t2r  r  r  r  s            @@@r   test_unpickle_module_racez/AbstractUnpickleTests.test_unpickle_module_raceh  s         !' ( ! ! 	v...6"""000"',,v{33T:: 	3aGGM((11222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3"',,v':;;TBB 	;aGG)0099:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;))) 0111 H 	 #A&&	7 	7 	7 	7 	7 	7 	7 Q'''Q'''








			
			000000&&g&&&Oa	! 	! 	! 	! 	!s$   ")DDD)F

FFr$   )6r<   r=   r>   r   r  r   r
  r  r  r  r  r  r&  r-  rD  rH  rJ  rQ  rT  rX  r]  r_  requires_32brd  rg  rj  rm  ro  rq  rt  rv  ry  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   reap_threadsrequires_working_threadingr  r%   r   r   r   r   A  sm        IH H H H$	 	 	? ? ?? ? ?? ? ?? ? ?? ? ?7? 7? 7?r6 6 6/ / /<	E 	E 	E	= 	= 	=C C C4 4 4$ $ $
B B BB B B , , \, , , \,; ; ;? ? ?B B B; ; ;@ @ @ , , \,
 , , \,
 , , \,
2 2 22 2 22 2 22 2 28 8 8
 8 8 \8
= = =C C C$6 6 62 2 2F F F6G G G
F F FG G G0B 0B 0Bd%B %B %BN]B ]B ]B~ "00229! 9! 32 #"9! 9! 9!r   r   c                   
   e Zd ZdZej        Zd Zej        Zd Zd Z	d Z
edfdZd Zd	 Zd
 ZedfdZd Zd Zd ZedfdZd Zd Zd ZedfdZd Zd Zd ZedfdZd Zd Zd Zedf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( Z-d) Z.d* Z/d+ Z0d, Z1d- Z2d. Z3d/ Z4d0 Z5d1 Z6d2 Z7d3 Z8d4 Z9d5 Z:d6 Z;d7 Z< e=d8d9d:          d;             Z>d< Z?d= Z@d> ZAd? ZBd@ ZCdA ZDdB ZEdC ZFdD ZGdE ZHdF ZIdG ZJdH ZKdI ZLdJ ZMdK ZNdL ZOdM ZPdN ZQdO ZRdP ZSdQ ZTdR ZUdS ZVdT ZWdU ZXdV ZYdW ZZdX Z[dY Z\dZ Z]d[ Z^d\ Z_d] Z`d^ Zad_ Zbd` Zcda Zdeedb             Zfdc Zgdd Zhde Zidf Zjdg Zkdh Zldi Zmdj Zndk ZodlZpdmZqdn Zresjt         esju        do          dp                         Zvdq Zwdr Zxesjt        ds             Zydt Zzdu Z{dv Z|dw Z}dx Z~dy Zdz Zd{ Zd| Zd} Zd~ Zd Zd Zd Z ej        edu d          d             Zd Zd ZdS )AbstractPickleTestsFc                     d S r$   r%   r2   s    r   setUpzAbstractPickleTests.setUp  rb   r   c                    t           D ]}t          d          }|                     ||          }|                     |          }|                     ||           d}|                     ||          }|                     |          }|                     ||           t          d|          }|                     ||          }|                     |          }|                     ||           d S )Nr  )r   r%   r   )	protocolsru   dumpsr  r   rz   r.   protor'   sr   s        r   	test_misczAbstractPickleTests.test_misc  s     	& 	&EaA

1e$$A

1A1%%%A

1e$$A

1A1%%%1A

1e$$A

1A1%%%%	& 	&r   c                     | j         }t          D ]C}|                     ||          }|                     |          }|                     ||           Dd S r$   )r  r  r  r  r   )r.   r  r  r  r,  s        r   test_roundtrip_equalityz+AbstractPickleTests.test_roundtrip_equality  s]    > 	/ 	/E

8U++A**Q--C#....	/ 	/r   c                    ddl m} ddlm} dt          fdt
          ffD ]a\  }}|                     | j        |          } |            } |||           |                                }| 	                    ||           bd S )Nr   )StringIOdisr   )out)
r6   r"  r   r$  	DATA0_DIS	DATA1_DISr  r  rD   r   )r.   r"  r$  r  r  r  fileliker,  s           r   dont_test_disassemblyz)AbstractPickleTests.dont_test_disassembly  s    ###### !9~9~= 	, 	,OE8

4>511AxzzHCx    ##%%CXs++++	, 	,r   r   c                     |            }|                     |           t          |t          j        dz             D ]}|                     ||          }|                     |          }|                     ||            ||          }|                     t          |          d           | 	                    |d         |           d S Nr   r   )
r   r6  r   HIGHEST_PROTOCOLr  r  assertIsInstancer   lenr   )	r.   r   aslistminprotocollr  r  r'   r   s	            r   _test_recursive_listz(AbstractPickleTests._test_recursive_list  s    CEE	;(?!(CDD 	# 	#E

1e$$A

1A!!!S)))q		ASVVQ'''MM!A$""""	# 	#r   c                 :    |                      t                     d S r$   )r2  r   r2   s    r   test_recursive_listz'AbstractPickleTests.test_recursive_list      !!$'''''r   c                 >    |                      t          d           d S Nr   )r0  )r2  MyListr2   s    r   test_recursive_list_subclassz0AbstractPickleTests.test_recursive_list_subclass  !    !!&a!88888r   c                 @    |                      t          d            d S )Nc                     | j         S r$   r   r&   s    r   <lambda>z>AbstractPickleTests.test_recursive_list_like.<locals>.<lambda>  s    AG r   r/  )r2  REX_sixr2   s    r   test_recursive_list_likez,AbstractPickleTests.test_recursive_list_like  s%    !!'2C2C!DDDDDr   c                 :    |            f}|d                              |           t          |t          j        dz             D ]}|                     ||          }|                     |          }|                     |t                     |                     t          |          d           |                     |d         |            ||d                   }|                     t          |          d           | 
                    |d         |           |\  }t          |t          j        dz             D ]}|                     ||          }|                     |          }|                     ||            ||          }|                     t          |          d           |                     |d         t                     |                     t          |d                   d           | 
                    |d         d         |           d S rM   )r   r6  r   r,  r  r  r-  tupler   r.  r   )	r.   r   r/  r0  r  r  r  r'   r   s	            r   _test_recursive_tuple_and_listz2AbstractPickleTests._test_recursive_tuple_and_list  s   SUUH	!A;(?!(CDD 	# 	#E

1e$$A

1A!!!U+++SVVQ'''!!!A$,,,qtASVVQ'''MM!A$"""" ;(?!(CDD 	& 	&E

1e$$A

1A!!!S)))q		ASVVQ'''!!!A$...S1YY***MM!A$q'1%%%%	& 	&r   c                 :    |                      t                     d S r$   )rD  r   r2   s    r   test_recursive_tuple_and_listz1AbstractPickleTests.test_recursive_tuple_and_list      ++D11111r   c                 >    |                      t          d           d S r7  )rD  r8  r2   s    r   &test_recursive_tuple_and_list_subclassz:AbstractPickleTests.test_recursive_tuple_and_list_subclass  !    ++F+BBBBBr   c                 @    |                      t          d            d S )Nc                     | j         S r$   r=  r&   s    r   r>  zHAbstractPickleTests.test_recursive_tuple_and_list_like.<locals>.<lambda>  s    ag r   r?  )rD  r@  r2   s    r   "test_recursive_tuple_and_list_likez6AbstractPickleTests.test_recursive_tuple_and_list_like  s%    ++G<M<M+NNNNNr   c                     |            }||d<   t          |t          j        dz             D ]}|                     ||          }|                     |          }|                     ||            ||          }|                     t          |                                          dg           | 	                    |d         |           d S Nr   )
r6  r   r,  r  r  r-  r   r   r8  r   	r.   r   asdictr0  dr  r  r'   r   s	            r   _test_recursive_dictz(AbstractPickleTests._test_recursive_dict  s    CEE!;(?!(CDD 	# 	#E

1e$$A

1A!!!S)))q		AT!&&((^^aS111MM!A$""""	# 	#r   c                 :    |                      t                     d S r$   )rS  r   r2   s    r   test_recursive_dictz'AbstractPickleTests.test_recursive_dict#  r5  r   c                 >    |                      t          d           d S r7  )rS  MyDictr2   s    r   test_recursive_dict_subclassz0AbstractPickleTests.test_recursive_dict_subclass&  r:  r   c                 @    |                      t          d            d S )Nc                     | j         S r$   tabler&   s    r   r>  z>AbstractPickleTests.test_recursive_dict_like.<locals>.<lambda>*  s    ag r   rQ  )rS  	REX_sevenr2   s    r   test_recursive_dict_likez,AbstractPickleTests.test_recursive_dict_like)  s%    !!)4E4E!FFFFFr   c                     |            f}||d         d<   t          |t          j        dz             D ]}|                     ||          }|                     |          }|                     |t                     |                     t          |          d           |                     |d         |            ||d                   }|                     t          |          dg           | 
                    |d         |           |\  }t          |t          j        dz             D ]}|                     ||          }|                     |          }|                     ||            ||          }|                     t          |          dg           |                     |d         t                     |                     t          |d                   d           | 
                    |d         d         |           d S rM   )r6  r   r,  r  r  r-  rC  r   r.  r   r   	r.   r   rQ  r0  r  r  r  r'   r   s	            r   _test_recursive_tuple_and_dictz2AbstractPickleTests._test_recursive_tuple_and_dict,  s   SUUH!Q;(?!(CDD 	# 	#E

1e$$A

1A!!!U+++SVVQ'''!!!A$,,,qtAT!WWqc***MM!A$"""" ;(?!(CDD 	& 	&E

1e$$A

1A!!!S)))q		AT!WWqc***!!!A$...S1YY***MM!A$q'1%%%%	& 	&r   c                 :    |                      t                     d S r$   )rb  r   r2   s    r   test_recursive_tuple_and_dictz1AbstractPickleTests.test_recursive_tuple_and_dictF  rG  r   c                 >    |                      t          d           d S r7  )rb  rW  r2   s    r   &test_recursive_tuple_and_dict_subclassz:AbstractPickleTests.test_recursive_tuple_and_dict_subclassI  rJ  r   c                 @    |                      t          d            d S )Nc                     | j         S r$   r[  r&   s    r   r>  zHAbstractPickleTests.test_recursive_tuple_and_dict_like.<locals>.<lambda>M  s     r   r]  )rb  r^  r2   s    r   "test_recursive_tuple_and_dict_likez6AbstractPickleTests.test_recursive_tuple_and_dict_likeL  s%    ++I>O>O+PPPPPr   c                     |            }d|t          |          <   t          |t          j        dz             D ]}|                     ||          }|                     |          }|                     ||            ||          }|                     t          |	                                          d           |                     t          |	                                          d         t                      |                     t          |	                                          d         j        |           d S r+  )rm   r6  r   r,  r  r  r-  r   r.  r8  r   r   ro   rP  s	            r   _test_recursive_dict_keyz,AbstractPickleTests._test_recursive_dict_keyO  s    CEE!A$$;(?!(CDD 	6 	6E

1e$$A

1A!!!S)))q		AS]]A...!!$qvvxx.."3Q777MM$qvvxx..+115555	6 	6r   c                 :    |                      t                     d S r$   )rk  r   r2   s    r   test_recursive_dict_keyz+AbstractPickleTests.test_recursive_dict_key]  s    %%d+++++r   c                 >    |                      t          d           d S r7  )rk  rW  r2   s    r    test_recursive_dict_subclass_keyz4AbstractPickleTests.test_recursive_dict_subclass_key`  s!    %%f!%<<<<<r   c                 @    |                      t          d            d S )Nc                     | j         S r$   r[  r&   s    r   r>  zBAbstractPickleTests.test_recursive_dict_like_key.<locals>.<lambda>d  s    !' r   r]  )rk  r^  r2   s    r   test_recursive_dict_like_keyz0AbstractPickleTests.test_recursive_dict_like_keyc  s%    %%i8I8I%JJJJJr   c                 4    |            f}d|d         t          |          <   t          |t          j        dz             D ]<}|                     ||          }|                     |          }|                     |t                     |                     t          |          d           |                     |d         |            ||d                   }|                     t          |          d           |                     t          |                                          d         t                      |                     t          |                                          d         j        |           >|\  }t          |t          j        dz             D ]}|                     ||          }|                     |          }|                     ||            ||          }|                     t          |          d           |                     t          |                                          d         t                      |                     t          |                                          d         j        d         |           d S r+  )rm   r6  r   r,  r  r  r-  rC  r   r.  r   r8  r   ro   ra  s	            r   "_test_recursive_tuple_and_dict_keyz6AbstractPickleTests._test_recursive_tuple_and_dict_keyf  s&    SUUH!QqTT
;(?!(CDD 		6 		6E

1e$$A

1A!!!U+++SVVQ'''!!!A$,,,qtASVVQ'''!!$qvvxx.."3Q777MM$qvvxx..+115555 ;(?!(CDD 	9 	9E

1e$$A

1A!!!S)))q		ASVVQ'''!!$qvvxx.."3Q777MM$qvvxx..+1!4a8888	9 	9r   c                 :    |                      t                     d S r$   )rt  r   r2   s    r   !test_recursive_tuple_and_dict_keyz5AbstractPickleTests.test_recursive_tuple_and_dict_key  s    //55555r   c                 >    |                      t          d           d S r7  )rt  rW  r2   s    r   *test_recursive_tuple_and_dict_subclass_keyz>AbstractPickleTests.test_recursive_tuple_and_dict_subclass_key  s!    //A/FFFFFr   c                 @    |                      t          d            d S )Nc                     | j         S r$   r[  r&   s    r   r>  zLAbstractPickleTests.test_recursive_tuple_and_dict_like_key.<locals>.<lambda>  s    AG r   r]  )rt  r^  r2   s    r   &test_recursive_tuple_and_dict_like_keyz:AbstractPickleTests.test_recursive_tuple_and_dict_like_key  s%    //	BSBS/TTTTTr   c                    t                      }|                    t          |                     t          dt          j        dz             D ]}|                     ||          }|                     |          }|                     |t                      | 	                    t          |          d           |                     t          |          d         t                     |                     t          |          d         j        |           |\  }t          dt          j        dz             D ]}|                     ||          }|                     |          }|                     |t                     |                     |j        t                      | 	                    t          |j                  d           |                     t          |j                  d         |           d S )Nr  r   r   )r4  addrm   r6  r   r,  r  r  r-  r   r.  r   r   ro   r.   r   r  r  r'   s        r   test_recursive_setz&AbstractPickleTests.test_recursive_set  s   EE	add1f59:: 	/ 	/E

1e$$A

1A!!!S)))SVVQ'''!!$q''!*a000MM$q''!**A.... 1f59:: 	/ 	/E

1e$$A

1A!!!Q'''!!!'3///S\\1---MM$qw--*A....	/ 	/r   c                 f   t                      }||_        t          D ]}|                     ||          }|                     |          }|                     |t                      |                     t          |          t          |                     |                     |j        |           d S r$   )	ri   attrr  r  r  r-  r   dirr   )r.   ir  r  r'   s        r   test_recursive_instz'AbstractPickleTests.test_recursive_inst  s    HH 	% 	%E

1e$$A

1A!!!V,,,SVVSVV,,,MM!&!$$$$	% 	%r   c                    g }d|i}t                      }||_        |                    |           t          D ]
}|                     ||          }|                     |          }|                     |t                     |                     t          |          d           |                     t          |d                   t          |                     |                     t          |d         j                                                  dg           |                     |d         j        d         |           d S r+  )ri   r  r   r  r  r  r-  r   r   r.  r  r8  r   )r.   r1  rR  r  r  r  r'   s          r   test_recursive_multiz(AbstractPickleTests.test_recursive_multi  s   qEHH	 	+ 	+E

1e$$A

1A!!!T***SVVQ'''S1YYA///T!A$).."2"233aS999MM!A$)A,****	+ 	+r   c                    t                      } ||g          |_        t          |j                  }t          D ]}|                     ||          }|                     |          }|                     |j        |           |                     t          |j                  d           |                     t          |j                  d         t                      | 
                    t          |j                  d         |           |j        }t          D ]}|                     ||          }|                     |          }|                     ||           |                     t          |          d           |                     t          |          d         t                      | 
                    t          |          d         j        |           d S r+  )ri   r  r   r  r  r  r-  r   r.  r   r   )r.   factoryor  r  r  r'   s          r   #_test_recursive_collection_and_instz7AbstractPickleTests._test_recursive_collection_and_inst  s    HH!LL 	. 	.E

1e$$A

1A!!!&!,,,S[[!,,,!!$qv,,q/6:::MM$qv,,q/1---- F 	. 	.E

1e$$A

1A!!!Q'''SVVQ'''!!$q''!*f555MM$q''!*/1----	. 	.r   c                 :    |                      t                     d S r$   )r  r   r2   s    r   test_recursive_list_and_instz0AbstractPickleTests.test_recursive_list_and_inst  s    0066666r   c                 :    |                      t                     d S r$   )r  rC  r2   s    r   test_recursive_tuple_and_instz1AbstractPickleTests.test_recursive_tuple_and_inst      0077777r   c                 D    |                      t          j                   d S r$   )r  r   fromkeysr2   s    r   test_recursive_dict_and_instz0AbstractPickleTests.test_recursive_dict_and_inst  s    00?????r   c                 :    |                      t                     d S r$   )r  r4  r2   s    r   test_recursive_set_and_instz/AbstractPickleTests.test_recursive_set_and_inst  s    0055555r   c                 :    |                      t                     d S r$   )r  	frozensetr2   s    r   !test_recursive_frozenset_and_instz5AbstractPickleTests.test_recursive_frozenset_and_inst  s    00;;;;;r   c                 :    |                      t                     d S r$   )r  r8  r2   s    r   %test_recursive_list_subclass_and_instz9AbstractPickleTests.test_recursive_list_subclass_and_inst  s    0088888r   c                 :    |                      t                     d S r$   )r  MyTupler2   s    r   &test_recursive_tuple_subclass_and_instz:AbstractPickleTests.test_recursive_tuple_subclass_and_inst  s    0099999r   c                 D    |                      t          j                   d S r$   )r  rW  r  r2   s    r   %test_recursive_dict_subclass_and_instz9AbstractPickleTests.test_recursive_dict_subclass_and_inst  s    00AAAAAr   c                 :    |                      t                     d S r$   )r  MySetr2   s    r   $test_recursive_set_subclass_and_instz8AbstractPickleTests.test_recursive_set_subclass_and_inst  r  r   c                 :    |                      t                     d S r$   )r  MyFrozenSetr2   s    r   *test_recursive_frozenset_subclass_and_instz>AbstractPickleTests.test_recursive_frozenset_subclass_and_inst  s    00=====r   c                    t                      }||_        t          D ]c}|                     ||          }|                     |          }|                     |t                      |                     |j        |           dd S r$   )	REX_statestater  r  r  r-  r   r~  s        r   test_recursive_inst_statez-AbstractPickleTests.test_recursive_inst_state  s|    KK 	& 	&E

1e$$A

1A!!!Y///MM!'1%%%%		& 	&r   c                 "   t                      f}||d         _        t          D ]}|                     ||          }|                     |          }|                     |t                     |                     t          |          d           |                     |d         t                      | 	                    |d         j        |           |\  }t          D ]}|                     ||          }|                     |          }|                     |t                      |                     |j        t                     |                     t          |j                  d           | 	                    |j        d         |           d S rM   )
r  r  r  r  r  r-  rC  r   r.  r   )r.   r  r  r  r'   s        r   #test_recursive_tuple_and_inst_statez7AbstractPickleTests.test_recursive_tuple_and_inst_state  s_   [[N!
 	) 	)E

1e$$A

1A!!!U+++SVVQ'''!!!A$	222MM!A$*a((((  	) 	)E

1e$$A

1A!!!Y///!!!'5111S\\1---MM!'!*a((((	) 	)r   c                     g d}t           D ]H}|D ]C}|                     ||          }|                     |          }|                     ||           DId S )N)rV  z<\u>u   <\ሴ>z<
>z<\>u   <\𒍅>u   <>r  r  r  r   )r.   endcasesr  ur  u2s         r   test_unicodez AbstractPickleTests.test_unicode  s}           	+ 	+E + +JJq%((ZZ]]##Ar****+	+ 	+r   c                     d}t           D ]C}|                     ||          }|                     |          }|                     ||           Dd S )Nu   𒍅r  )r.   r  r  r  r  s        r   test_unicode_high_planez+AbstractPickleTests.test_unicode_high_plane  s[     	' 	'E

1e$$AAB2&&&&	' 	'r   c                     t           D ]M}dD ]H}|                     ||f|          }|                     |          \  }}|                     ||           INd S )N)rV  xyzzxyz
zx\yzu   x¡yzr  r  r  r   )r.   r  r  r  s1s2s         r   test_unicode_memoizationz,AbstractPickleTests.test_unicode_memoization$  sp     	& 	&E= & &JJ1vu--ABb"%%%%&	& 	&r   c                    t           D ]}dD ]A}|                     ||          }|                     ||                     |                     Bd t	          d          D             D ]A}|                     ||          }|                     ||                     |                     Bd t	          d          D             D ]A}|                     ||          }|                     ||                     |                     Bd S )Nr      xyzs,  xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzc                 .    g | ]}t          |g          S r%   r   r  r  s     r   r  z2AbstractPickleTests.test_bytes.<locals>.<listcomp>1  s     555QeQCjj555r      c                 0    g | ]}t          ||g          S r%   r  r  s     r   r  z2AbstractPickleTests.test_bytes.<locals>.<listcomp>4  s"    888eQFmm888r   )r  r  r   r  r6  )r.   r  r  r  s       r   
test_byteszAbstractPickleTests.test_bytes,  s    		6 		6E, 6 6JJq%((##Atzz!}}555555%**555 6 6JJq%((##Atzz!}}555588U3ZZ888 6 6JJq%((##Atzz!}}55556		6 		6r   c                    t           D ]M}dD ]F}t          |          }|                     ||          }|                     |          }|                     ||           |                     ||           |dk    rD|                     d|           |                     t          t          j
        |                     |dk    rD|                     d|           |                     t          t          j        |                     |dk    rC|                     d|           |                     t          t          j        |                     HOd S )Nr  r  s	   bytearrayr  r   )r  rs  r  r  r   r   assertIn
assertTruer   r   GLOBALSTACK_GLOBALassertNotIn
BYTEARRAY8)r.   r  r  r~   r  bbs         r   test_bytearrayz"AbstractPickleTests.test_bytearray8  sN    	L 	LE, L LaLLJJq%((ZZ]]  Q'''##Ar***A::MM,222OO$4V]A$F$FGGGGaZZMM,222OO$4V5H!$L$LMMMMaZZ$$\1555OO$4V5F$J$JKKKL	L 	Lr   c                     t           D ]\}dD ]W}t          |          }|                     ||f|          }|                     |          \  }}|                     ||           X]d S )Nr  )r  rs  r  r  r   )r.   r  r  r~   r  b1b2s          r   test_bytearray_memoization_bugz2AbstractPickleTests.test_bytearray_memoization_bugK  s{     	& 	&E, & &aLLJJ1vu--ABb"%%%%	&	& 	&r   c                     t           D ]`}t          j        }|rP| |fD ]C}|                     ||          }|                     |          }|                     ||           D|dz	  }|Pad S rO  )r  r  maxsizer  r  r   )r.   r  r!   r  r  n2s         r   	test_intszAbstractPickleTests.test_intsS  s     	 	EA "#Q 6 6H

8U33AAB''"5555F  	 	r   c                    t           D ]c}dD ]^}d|z  }|dz
  ||dz   fD ]K}|| fD ]C}|                     ||          }|                     |          }|                     ||           DL_dt	          dd          }||dz  z  }|| fD ]k}|                     |d          }|                     |          }|                     t          |          t                     |                     ||           ld S )N)r      i  i     i  r   deadbeeffeedface   i@B r   )r  r  r  r   intr   r   r   )	r.   r  nbitsnbasenposr!   r   r,  r  s	            r   	test_longzAbstractPickleTests.test_long]  s?    	4 	4E9 4 4U
!!GUE!G3 4 4D!D5[ 4 4!%Au!5!5"jj00++As3333444 &++'!! 	% 	%A

1a  A**Q--C MM$s))S)))Q$$$$	% 	%r   c                     g d}|d |D             z   }t           D ]H}|D ]C}|                     ||          }|                     |          }|                     ||           DId S )N)g        g       g+ph  gZ*) g_D9g?g      ?gQ	@gm"wp@gWTDgꌠ9Y>)Fc                     g | ]}| S r%   r%   r  s     r   r  z2AbstractPickleTests.test_float.<locals>.<listcomp>w  s    $=$=$=AaR$=$=$=r   r  )r.   test_valuesr  ro   r   r,  s         r   
test_floatzAbstractPickleTests.test_floatt  s    A A A!$=$=$=$=$== 	0 	0E$ 0 0E511jj((##E3////0	0 	0r   LC_ALLde_DEfr_FRc                 j    |                      |                     dd          dd         d           d S )Ng333333?r   r  s   F1.)r   r  r2   s    r   test_float_formatz%AbstractPickleTests.test_float_format~  s7     	C++AaC0&99999r   c                     t           D ]V}t                      }|                     ||          }|                     |          }|                     |t
                     Wd S r$   )r  AAAr  r  r   REDUCE_Ar.   r  instr\  rC  s        r   test_reducezAbstractPickleTests.test_reduce  sa     	/ 	/E55DZZe,,FZZ''FVX....		/ 	/r   c                     t           D ]S}t          dd          }|                     ||          }|                     |          }|                     ||           Td S )Nr   r   )r  rz   r  r  r   r  s        r   test_getinitargsz$AbstractPickleTests.test_getinitargs  se     	. 	.E1a==DZZe,,FZZ''Ff----		. 	.r   c                     t                      }t          D ]M}|                     ||          }|                     |          }|                     |j        |j                   Nd S r$   )r   r  r  r  r   r   r.   r}   r  r  r~   s        r   test_metaclassz"AbstractPickleTests.test_metaclass  sc    OO 	7 	7E

1e$$A

1AQ[!+6666	7 	7r   c                 p   t          dt          f          }t          j        t          t          j                   t          D ]s}|                     ||          }|                     |          }| 	                    ||           | 
                    t          |          t          |                     td S )Nmy_dynamic_class)r   r>  rN   r   r   rr   r  r  r  r   r   r   r  s        r   test_dynamic_classz&AbstractPickleTests.test_dynamic_class  s     !3fY??)+=+HIII 	, 	,E

1e$$A

1AQ"""MM$q''477++++		, 	,r   c                 P   dd l }dd l}|                                }t          D ] }|                     ||          }|                     |          }|                     ||            |j        |j                  }|                     ||          }|                     |          }|                     ||           t          |d          rV |j
        |j                  }|                     ||          }|                     |          }|                     ||           d S )Nr   statvfs)timer  	localtimer  r  r  r   statcurdirr   r  )r.   r  r  r  r  r  r  s          r   test_structseqz"AbstractPickleTests.test_structseq  s   			NN 	* 	*E

1e$$A

1A1%%%	""A

1e$$A

1A1%%%r9%% *BJry))JJq%((JJqMM##Aq)))	* 	*r   c                     t           D ]C}|                     d|          }|                     |          }|                     d|           Dd S N.r  r.   r  r  r  s       r   test_ellipsisz!AbstractPickleTests.test_ellipsis  sT     	" 	"E

3&&A

1AMM#q!!!!	" 	"r   c                     t           D ]M}|                     t          |          }|                     |          }|                     t          |           Nd S r$   )r  r  r   r  r   r  s       r   test_notimplementedz'AbstractPickleTests.test_notimplemented  sT     	- 	-E

>511A

1AMM.!,,,,	- 	-r   c                     d dt           g}|D ]g}t          D ]]}|                     t          |          |          }|                     |          }|                     t          |          |           ^hd S r  )r   r  r  r   r  r   )r.   
singletons	singletonr  r  r  s         r   test_singleton_typesz(AbstractPickleTests.test_singleton_types  s    C0
# 	2 	2I" 2 2JJtI66JJqMMd9ooq11112	2 	2r   c                 .   t           j                                        D ]u}t          |t                    r^t          |t                    sIt          D ]A}|                     ||          }| 	                    | 
                    |          |           Bvd S r$   )builtinsrZ   valuesr   r   
issubclassr  r  r  r   r  r.   r  r  r  s       r   test_builtin_typesz&AbstractPickleTests.test_builtin_types  s    "))++ 	4 	4A!T"" 4:a+G+G 4& 4 4E

1e,,AMM$**Q--3333		4 	4r   c                     t           j                                        D ]}t          |t                    rt          |t                    rt          D ]}|                     ||          }| 	                    |          }|dk    r:t          |t                    r%|t          ur|                     |t                     m|dk    r1t          |t                    r|                     |t                     |                     ||           d S Nr   )r  rZ   r  r   r   r  r  r  r  r  OSErrorBlockingIOErrorr   ImportError)r.   r  r  r  r  s        r   test_builtin_exceptionsz+AbstractPickleTests.test_builtin_exceptions  s    "))++ 
	, 
	,A!T"" 	,z!]'C'C 	,& , ,E

1e,,A

1AzzjG&<&<z/AYAYa1111!
1k(B(Ba5555a++++
	, 
	,r   c                    t           j                                        D ]e}t          |t          j                  rIt          D ]A}|                     ||          }|                     | 	                    |          |           Bfd S r$   )
r  rZ   r  r   typesBuiltinFunctionTyper  r  r   r  r	  s       r   test_builtin_functionsz*AbstractPickleTests.test_builtin_functions  s    "))++ 	4 	4A!U677 4& 4 4E

1e,,AMM$**Q--3333		4 	4r   c                    t           D ]}|                     d |          }|dk    rFt          j        t	          |g          z   }|                     |                    |                     d|                     t          t          j        |          d           t           d         dz   }t          j	        t          j
        z   }t          j        t	          |g          z   |z   }	 |                     |           |                     d           d S # t          $ r.}|                     dt          |                     Y d }~d S d }~ww xY w)Nr   r   r   r   z0expected bad protocol number to raise ValueErrorzunsupported pickle protocol)r  r  r   PROTOr   r  
startswithr   r"   NONErP  r  failr*  r  rx   )r.   r  r  proto_headeroob
build_none	badpickleerrs           r   
test_protozAbstractPickleTests.test_proto  sE    	I 	IEjju--Gzz%|eUGnn< 2 2< @ @AAAA  flG!D!DaHHHHma[6;.
L5#<</*<		JJJy!!! IIHIIIII  	C 	C 	CMM7SBBBBBBBBB	Cs   %D 
E	#EE	c                    d}t           D ]u}|                     ||          }|                     |          }|                     ||           |                     t          t          j        |          |dk               vd S )N   UJ^w,3|	 r   )r  r  r  r   r   r   r   LONG1r.   r'   r  r  r   s        r   
test_long1zAbstractPickleTests.test_long1  s    ) 	L 	LE

1e$$A

1A1%%%-flA>>
KKKK		L 	Lr   c                 
   ddz  }t           D ]u}|                     ||          }|                     |          }|                     ||           |                     t          t          j        |          |dk               vd S )Nr!  r  r   )r  r  r  r   r   r   r   LONG4r#  s        r   
test_long4zAbstractPickleTests.test_long4  s    )e4 	L 	LE

1e$$A

1A1%%%-flA>>
KKKK		L 	Lr   c                 Z   i dt           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j        d	t           j        d
t           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j        dt           j        t           j        t           j        t           j        d}d}d}d}d}d}t          D ]}|||||fD ]}|                     ||          }	|                     |	          }
| 	                    ||
           |t          |d          t          |          f         }|                     t          ||	                     d S )N)r   r   )r   r   )r   r   )r   r  )r   r  )r   r   )r   r   r   r   )r   r  r   r  )r   r   r   r   )r   r   )r   r  )r   r  )r  r   )r  r   ))r  r   )r  r  r  r  r%   )r   r   r   r  )r   r   r  r  r  )r   TUPLEEMPTY_TUPLETUPLE1TUPLE2TUPLE3r  r  r  r   minr.  r  r   )r.   expected_opcoder}   r~   r   rR  er  r'   r  r   r  s               r   test_short_tuplesz%AbstractPickleTests.test_short_tuples	  s   66< !6<!6< "6< "6<	 "6#5 "6< "6< "6< "6< "6#5 "6= "6= "6=  "6<!$ "6#5%& "6='( $*=#)=#)<-  0  	? 	?E1a] ? ?JJq%((JJqMM##Aq)))*3ua==#a&&+@A 01 = =>>>>?	? 	?r   c                 6   t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        d}t
          D ]}dD ]}|                     ||          }|                     |          }|                     ||u ||||f           |t          |d          |f         }|                     t          ||                     d S )N))r   N)r   N)r   N)r  N)r   T)r   T)r   T)r  T)r   F)r   F)r   F)r  F)NFTr  )r   r  INTNEWTRUENEWFALSEr  r  r  r  r3  r   )r.   r4  r  r'   r  r   r  s          r   test_singletonsz#AbstractPickleTests.test_singletons0  s    &,k&,k&,k&,k&,j&,j&,n&,n'-z'-z'-'-   	? 	?E& ? ?JJq%((JJqMMQ1a(8999*3ua==!+;< 01 = =>>>>?	? 	?r   c                     t          g d          }d|_        d|_        t          D ]C}|                     ||          }|                     |          }|                     ||           Dd S Nr-  r  hello)r  r   r   r  r  r  r   r#  s        r   test_newobj_tuplez%AbstractPickleTests.test_newobj_tupleI  su    III 	& 	&E

1e$$A

1A1%%%%	& 	&r   c                     t          g d          }d|_        d|_        t          D ]C}|                     ||          }|                     |          }|                     ||           Dd S r=  )r8  r   r   r  r  r  r   r#  s        r   test_newobj_listz$AbstractPickleTests.test_newobj_listR  su    999 	& 	&E

1e$$A

1A1%%%%	& 	&r   c           
         t           D ]}t          D ]}|j        } ||j                  }d|_        |                     ||          }|                     |          }|||||t          |          f}|                     ||           | 	                     ||           ||          |           | 	                    |j
        |j
        |           d S Nr  )r  	myclasses__base__sampler   r  r  r   r   r   rZ   )r.   r  rX   Br'   r  r   details           r   test_newobj_genericz'AbstractPickleTests.test_newobj_generic[  s     
	A 
	AE 	A 	AJAahKKJJq%((JJqMMAq!T!WW5##Aq)))  1qqttV444  QZ@@@@	A
	A 
	Ar   c           
      f   t           d d          }t          t          fD ]}|                    |           t          D ]}|D ]}|j        } ||j                  }d|_        t          j	        |          }| 
                    ||          }|                     |          }	|                     t          |	          t          |                     |||||	t          |	          f}
|                      ||           ||	          |
           |                     |j        |	j        |
           d S rC  )rD  MyIntr  r  r  rE  rF  r   weakrefproxyr  r  r   r   rZ   )r.   classesr   r  rX   rG  r'   r  r  r   rH  s              r   test_newobj_proxiesz'AbstractPickleTests.test_newobj_proxiesh  s;   AAA,! 	 	ANN1 	A 	AE 
A 
AJAahKKM!$$JJq%((JJqMM  a$q''222Aq!T!WW5  1qqttV444  QZ@@@@
A	A 	Ar   c                 h   t           D ]}t          d          }d|_        |                     ||          }|                     |          }|                     t          |          t                     |                     t          |          d           |                     |j        d           d S )Nr   r  )	r  MyIntWithNew2r   r  r  r   r   r   r  r  s        r   test_newobj_overridden_newz.AbstractPickleTests.test_newobj_overridden_new{  s     	( 	(Ea  AAE

1e$$A

1AMM$q''=111SVVQ'''QUB''''	( 	(r   c                     t           }t                               t                     }|                     |d          }	 da |                     t          t
          j        f| j        |           |a d S # |a w xY w)Nr  r  )SimpleNewObjr   r  r  r  r   rb  r  )r.   saver  r~   s       r   test_newobj_not_classz)AbstractPickleTests.test_newobj_not_class  su       ..JJq!	 Ly&*@A4:qQQQLLL4Ls   /A1 1A5c                    t          |          }	 t          j        t          d|           t	          g d          }d|_        d|_        |                     |d          }|                     t          	                    d          |           |                     d|           | 
                    t          ||                     |                     |          }|                     ||           |                     |d          }|                     t          	                    d          |           |                     d|           |                     t          ||          d	t!          |                     |                     |          }|                     ||           |                                 d S # |                                 w xY w)
Nr8  r-  r  r>  r   r  s   MyListr   T)rK   rN   rT   r<   r8  r   r   r  r  r  assertFalser   r  r   r  r   reprrV   )r.   extcodeopcoder5  r'   r  r   r  s           r   produce_global_extz&AbstractPickleTests.produce_global_ext  s   7##	!(Hg>>>yyy!!AAEAE Aq!!BMM(//'22B777MM)R(((-fb99:::

2A1%%% Aq!!BX__W55r:::Y+++-fb994bJJJ

2A1%%%IIKKKKKAIIKKKKs   FG   Gc                     |                      dt          j                   |                      dt          j                   d S )Nr   r   )r\  r   EXT1r2   s    r   test_global_ext1z$AbstractPickleTests.test_global_ext1  s8    
FK888
FK88888r   c                     |                      dt          j                   |                      dt          j                   |                      dt          j                   d S )Nr  r   iͫ  )r\  r   EXT2r2   s    r   test_global_ext2z$AbstractPickleTests.test_global_ext2  P    
FK888
FK888
FK88888r   c                     |                      dt          j                   |                      dt          j                   |                      dt          j                   d S )N   r   iͫ)r\  r   EXT4r2   s    r   test_global_ext4z$AbstractPickleTests.test_global_ext4  rc  r   c                    d}t          t          |                    }t          D ]w}|                     ||          }|                     |          }|                     ||           t          t          j        |          }| 	                    ||dk               xd}t          t          |                    }t          D ]}|                     ||          }|                     |          }|                     ||           t          t          j        |          }|dk    r| 	                    |d           z| 
                    |dk               d S N
   r   	  r   )r   r6  r  r  r  r   r"   r   APPENDSr   r  )r.   r!   r'   r  r  r   num_appendss          r   test_list_chunkingz&AbstractPickleTests.test_list_chunking  sA   qNN 	5 	5E

1e$$A

1A1%%%&v~q99K[%!)4444qNN 	2 	2E

1e$$A

1A1%%%&v~q99Kzz  a0000q 01111	2 	2r   c                    d}t                               t          |                    }t          D ]}|                     ||          }|                     |t                     |                     |          }|                     ||           t          t          j        |          }|                     ||dk               d}t                               t          |                    }t          D ]}|                     ||          }|                     |          }|                     ||           t          t          j        |          }|dk    r|                     |d           z|                     |dk               d S ri  )r   r  r6  r  r  r-  r   r  r   r"   r   SETITEMSr   r  )r.   r!   r'   r  r  r   num_setitemss          r   test_dict_chunkingz&AbstractPickleTests.test_dict_chunking  sc   MM%((## 	6 	6E

1e$$A!!![111

1A1%%%';;L\5195555MM%((## 	3 	3E

1e$$A

1A1%%%';;Lzz  q1111 12222	3 	3r   c                    d}t          t          |                    }t          D ]}|                     ||          }|                     |          }|                     ||           t          t          j        |          }|dk     r| 	                    |d           z| 	                    |d           d}t          t          |                    }t          D ]}|                     ||          }|                     |          }|                     ||           t          t          j        |          }|dk     r| 	                    |d           z| 
                    |d           d S )Nrj  r  r   r   rk  r   )r4  r6  r  r  r  r   r"   r   ADDITEMSr   assertGreaterEqual)r.   r!   r'   r  r  r   num_additemss          r   test_set_chunkingz%AbstractPickleTests.test_set_chunking  s^   aMM 	2 	2E

1e$$A

1A1%%%';;Lqyy  q1111  q1111aMM 	9 	9E

1e$$A

1A1%%%';;Lqyy  q1111''a8888	9 	9r   c                 n   t                               t           d          }d|_        t          D ]}|                     |          5  |                     ||          }|dk     r|                     d|           n|                     d|           |                     t          t          j
        |          d|k               |                     t          t          j        |                     |                     |          }|                     ||           d d d            n# 1 swxY w Y   d S )N    r  r      
I64206   Mr   )rT  r   r   r  r  r  r  r   r   r   NEWOBJrX  	NEWOBJ_EXr  r   r#  s        r   test_simple_newobjz&AbstractPickleTests.test_simple_newobj	  s]     v66 	* 	*EE** 
* 
*JJq%((199MM+q1111MM,222  !1&-!C!C!"e- - -  !1&2BA!F!FGGGJJqMM##Aq)))
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
*	* 	*s   CD((D,	/D,	c                    t                               t           d          }d|_        t          D ]>}|                     |          5  |                     ||          }|dk     r|                     d|           nP|dk     r|                     d|           n3|dk     r|                     d	|           n|                     d
|           |                     t          t          j
        |          d|k               |                     t          t          j        |                     |                     |          }|                     ||           d d d            n# 1 swxY w Y   @d S Nry  rz  r{  r   r|  r   r}  r  s	   X   FACEs   FACE)ComplexNewObjr   r   r  r  r  r  r   r   r   r~  rX  r  r  r   r#  s        r   test_complex_newobjz'AbstractPickleTests.test_complex_newobj	  s   !!-88 	* 	*EE** * *JJq%((199MM+q1111QYYMM,2222QYYMM":A>>>>MM/1555  !1&-!C!C!"e- - -  !1&2BA!F!FGGGJJqMM##Aq)))* * * * * * * * * * * * * * *	* 	*   DE""E&	)E&	c                    t                               t           d          }d|_        t          D ]>}|                     |          5  |                     ||          }|dk     r|                     d|           nP|dk     r|                     d|           n3|dk     r|                     d	|           n|                     d
|           |                     t          t          j
        |                     |                     t          t          j        |          d|k               |                     |          }|                     ||           d d d            n# 1 swxY w Y   @d S r  )ComplexNewObjExr   r   r  r  r  r  rX  r   r   r~  r   r  r  r   r#  s        r   test_complex_newobj_exz*AbstractPickleTests.test_complex_newobj_ex*	  s   ##OV<< 	* 	*EE** * *JJq%((199MM+q1111QYYMM,2222QYYMM":A>>>>MM/1555  !1&-!C!CDDD  !1&2BA!F!F!"e- - -JJqMM##Aq)))* * * * * * * * * * * * * * *	* 	*r  c                     t          g d          }d|_        d|_        |                     |d          }|                     |          }|                     ||           d S )Nr-  r  r>  r   )SlotListr   r   r  r  r   )r.   r'   r  r   s       r   test_newobj_list_slotsz*AbstractPickleTests.test_newobj_list_slots>	  s_    YYYJJq!JJqMMAq!!!!!r   c                 .   t           D ]}t                      }|                     |j        d           |                     ||          }|                     |j        d           |                     |          }|                     |j        d           d S rM   )r  REX_oner   _reduce_calledr  r  r  s        r   'test_reduce_overrides_default_reduce_exz;AbstractPickleTests.test_reduce_overrides_default_reduce_exF	  s     	2 	2E		AQ-q111

1e$$AQ-q111

1AQ-q1111	2 	2r   c                 .   t           D ]}t                      }|                     |j        d            |                     ||          }|                     |j        |           |                     |          }|                     |j        d            d S r$   )r  REX_twor   _protor  r  r  s        r   test_reduce_ex_calledz)AbstractPickleTests.test_reduce_ex_calledO	  s     	- 	-E		AQXt,,,

1e$$AQXu---

1AQXt,,,,	- 	-r   c                 .   t           D ]}t                      }|                     |j        d            |                     ||          }|                     |j        |           |                     |          }|                     |j        d            d S r$   )r  	REX_threer   r  r  r  r  s        r   test_reduce_ex_overrides_reducez3AbstractPickleTests.test_reduce_ex_overrides_reduceX	  s     	- 	-EAQXt,,,

1e$$AQXu---

1AQXt,,,,	- 	-r   c                 .   t           D ]}t                      }|                     |j        d            |                     ||          }|                     |j        |           |                     |          }|                     |j        |           d S r$   )r  REX_fourr   r  r  r  r  s        r   test_reduce_ex_calls_basez-AbstractPickleTests.test_reduce_ex_calls_basea	  s     	. 	.E

AQXt,,,

1e$$AQXu---

1AQXu----	. 	.r   c                 .   t           D ]}t                      }|                     |j        d           |                     ||          }|                     |j        d           |                     |          }|                     |j        d           d S rM   )r  REX_fiver   r  r  r  r  s        r   test_reduce_calls_basez*AbstractPickleTests.test_reduce_calls_basej	  s     	2 	2E

AQ-q111

1e$$AQ-q111

1AQ-q1111	2 	2r   c                 L   t                      }t          d          D ]O}t          j                    5  |                     t
          | j        ||           d d d            n# 1 swxY w Y   Pt          dt          j        dz             D ]}|                     ||          }d S )Nr   r   )	
BadGetattrr6  r   infinite_recursionr  RuntimeErrorr  r   r,  )r.   r'   r  r  s       r   test_bad_getattrz$AbstractPickleTests.test_bad_getattrs	  s     LL1XX 	F 	FE+-- F F!!,
AuEEEF F F F F F F F F F F F F F F1f59:: 	% 	%E

1e$$AA	% 	%s   #A""A&	)A&	c                 8    G d dt                     } G d dt                     }t          D ]k}	 |                      |            |           n# t          j        $ r Y nw xY w	 |                      |            |           W# t          j        $ r Y hw xY wd S )Nc                       e Zd Zd ZdS )7AbstractPickleTests.test_reduce_bad_iterator.<locals>.Cc                     t           dd g d fS rf   )r   r2   s    r   rr   zBAbstractPickleTests.test_reduce_bad_iterator.<locals>.C.__reduce__	  s    Rr4//r   Nr<   r=   r>   rr   r%   r   r   rX   r  	  #        0 0 0 0 0r   rX   c                       e Zd Zd ZdS )7AbstractPickleTests.test_reduce_bad_iterator.<locals>.Dc                     t           dd d g fS rf   )r   r2   s    r   rr   zBAbstractPickleTests.test_reduce_bad_iterator.<locals>.D.__reduce__	  s    RtR//r   Nr  r%   r   r   r_   r  	  r  r   r_   )r>  r  r  r   PicklingError)r.   rX   r_   r  s       r   test_reduce_bad_iteratorz,AbstractPickleTests.test_reduce_bad_iterator}	  s    	0 	0 	0 	0 	0 	0 	0 	0	0 	0 	0 	0 	0 	0 	0 	0  	 	E

1133&&&&'   

1133&&&&'   	 	s#   AA"!A"&BBBc                    d t          d          D             }t          d |D                       }t          |          t          |          t          |          g}t          D ]q}|                     |          5  |                     ||          }|                     |          }|                     ||           d d d            n# 1 swxY w Y   rd S )Nc              3   :   K   | ]}d t          |          z   V  dS )aaaNrw   r  s     r   	<genexpr>z>AbstractPickleTests.test_many_puts_and_gets.<locals>.<genexpr>	  s,      331A333333r   rl  c              3   "   K   | ]
}|g d fV  dS ))r  r   r  Nr%   )r  ks     r   r  z>AbstractPickleTests.test_many_puts_and_gets.<locals>.<genexpr>	  s*      77Q1iii.777777r   r{  )r6  r   r  r  r  r  r   )r.   r8  
large_dictr   r  r\  rC  s          r   test_many_puts_and_getsz+AbstractPickleTests.test_many_puts_and_gets	  s    43c

33377$77777
Jj!1!14
3C3CD 	1 	1EE** 1 1C//F++##C0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1	1 	1s   >ACC	C	c                 P   t           D ]}t                      }d|_        d|_        |                     ||          }|                     |          }t          |j                  }t          |j                  }t          ||          D ]\  }}| 	                    ||           d S )Nr  r>  )
r  rX   r   r   r  r  sortedrZ   zipr   )	r.   r  r'   r  r   x_keysy_keysx_keyy_keys	            r   test_attribute_name_interningz1AbstractPickleTests.test_attribute_name_interning	  s      		, 		,EAAEAE

1e$$A

1AAJ''FAJ''F #FF 3 3 , ,ueU++++,		, 		,r   c                     |                      t          d          d          }|                     |t                     |                      t	          dg          d          }|                     |t
                     d S )Nr   r   r  )r  r6  r   r5  r4  	DATA_SET2r[  s     r   test_pickle_to_2xz%AbstractPickleTests.test_pickle_to_2x	  sj    
 E!HHa((---CHHa((+++++r   c                 "   t           D ]}dt          ddz  t          f}|                     ||          }|                     |          }|                     t          |          t          |                     |                     ||           d S )Nr   s   xyi x  )r  r3  r.  r  r  r   )r.   r  r   r\  rC  s        r   test_large_picklesz&AbstractPickleTests.test_large_pickles	  s      	+ 	+EsEY/5DZZe,,FZZ''FS[[#d))444VT****	+ 	+r   c           	          t           D ]Ɋ                               5   fdt          d          D             }t          t	          t
          |                    }                     t          |          |           dk    r2|D ]/}                     t          t          j        |                     0d d d            n# 1 swxY w Y   d S )Nr{  c                 B    g | ]}                     d |z            S r   )r  )r  r!   r  r.   s     r   r  zDAbstractPickleTests.test_int_pickling_efficiency.<locals>.<listcomp>	  s+    FFFq4::adE22FFFr   F   r   )r  r  r6  r   mapr.  r   r  rX  r   r   LONG)r.   picklessizesr  r  s   `   @r   test_int_pickling_efficiencyz0AbstractPickleTests.test_int_pickling_efficiency	  s/    	K 	KEE** K KFFFFFE"IIFFFSg..//  666A::$ K K(()9&+q)I)IJJJJK K K K K K K K K K K K K K K	K 	Ks   BCC	C	c                     |                      ||          }|                     t          ||                     |                     |          }|                     ||           d S r$   )r  r  r   r  r   )r.   r   r[  r  r  r  s         r   _check_pickling_with_opcodez/AbstractPickleTests._check_pickling_with_opcode	  s_    **S%(((99:::JJw''	i(((((r   c                     t          g d          }t          D ]K}|dk    r"|                     |t          j        |           *|                     |t          j        |           Ld S )Nr-  r   )r@  r  r  r   APPENDrl  r.   r   r  s      r   test_appends_on_non_listsz-AbstractPickleTests.test_appends_on_non_lists	  ss    iii   	M 	MEzz00fmUKKKK00fneLLLL		M 	Mr   c                     t          dddd          }t          D ]K}|dk    r"|                     |t          j        |           *|                     |t          j        |           Ld S )Nr   r-  r   )r^  r  r  r   SETITEMrp  r  s      r   test_setitems_on_non_dictsz.AbstractPickleTests.test_setitems_on_non_dicts	  sy    B2"--.. 	N 	NEzz00fneLLLL00fouMMMM		N 	Nr   r  re  c                    	 d x}}h d}t          j        |          D ]\  }}}||                     ||           ||k    rd }|M|                     |j        d           |j        |v r(|                     t          |          | j                   n^|j        dk    s!|j        |v r;t          |          | j        k    r#| |                     ||z
  | j                   d }n||j        dk    r|}|j        dk    r#| 	                    || j                   |dz   |z   }t          |          }|| 
                    ||           d S | |                     ||z
  | j                   d S d S )N>   BINBYTES	BINBYTES8
BINUNICODEr  BINUNICODE8FRAMEr  	   )r   r   assertLessEqualassertNotEqualr   r.  FRAME_SIZE_TARGET
assertLessFRAME_SIZE_MINru  r   )r.   r  	frame_endframeless_startframeless_opcodesr   ra   poss           r   check_frame_opcodesz'AbstractPickleTests.check_frame_opcodes	  s   	 '+*	O: : :'.w77 	* 	*LBS$$$S)444)## $I$##BGW5557/// ((S43IJJJ Gw&&W 111XX 666&2o(=(,(;= = =*.$,G1C1C&)Ow'!!''T-@AAA!GcM	'll Y,,,,,(OOC/143FGGGGG )(r   cpuc                 R   t          t          d                    }t          dt          j        dz             D ]}|                     |          5  |                     ||          }|                     |          }|                     ||           t          |          t          t          j
        |          z  }|                     || j        dz             |                     || j        dz             |                     |           d d d            n# 1 swxY w Y   d S )Ni r  r   r{  r   )r   r6  r   r,  r  r  r  r   r.  r"   r  assertGreaterr  r  r  )r.   r   r  r  r  bytes_per_frames         r   test_framing_many_objectsz-AbstractPickleTests.test_framing_many_objects
  sg    5<<  1f59:: 	2 	2EE** 
2 
2**S%00 JJw//	  i000#&w<<#/g#F#F$G""?#'#9A#=? ? ?$$_%)%;a%?A A A((111
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2 
2	2 	2s   B=DD	"D	c                 d   d}d t          d          D             }d|z  g|d|z  d|z  }t          dt          j        dz             D ]c}d	D ]\}|                     ||
          5  |s|                     ||          }nwt          | d          s	 d d d            Qt          j                    }|                     ||          }||_	        |
                    |           |                                }|                     |          }	|                     d |D             d |	D                        |                     ||	           t          t          j        |          }
|                     |
d           |                     |           d d d            n# 1 swxY w Y   ^ed S )Ni   c                     g | ]}|gS r%   r%   r  s     r   r  zBAbstractPickleTests.test_framing_large_objects.<locals>.<listcomp>-
  s    ...qs...r   rj     x   yzr  r   )FT)r  fastpicklerr   c                 ,    g | ]}t          |          S r%   r.  r  s     r   r  zBAbstractPickleTests.test_framing_large_objects.<locals>.<listcomp>A
  s    %:%:%:c!ff%:%:%:r   c                 ,    g | ]}t          |          S r%   r  r  s     r   r  zBAbstractPickleTests.test_framing_large_objects.<locals>.<listcomp>B
  s    %@%@%@c!ff%@%@%@r   )r6  r   r,  r  r  r   r6   rB   r  r  dumprD   r  r   r"   r  r  )r.   Nsmall_itemsr   r  r  r  bufr  r  n_framess              r   test_framing_large_objectsz.AbstractPickleTests.test_framing_large_objects+
  s2   ..E"II...ax9+9tax9q91f59:: 	6 	6E% 6 6\\D\99 6 6 1 #'**S%"8"8  'tY77 %$6 6 6 6 6 6 6 !jll"&,,sU,"C"C'+S)))"%,,.. $

7 3 3I$$%:%:c%:%:%:%@%@i%@%@%@B B B $$S)444+FL'BBH $$Xq111,,W55516 6 6 6 6 6 6 6 6 6 6 6 6 6 66	6 	6s   *+F!!C4F!!F%(F%c           	        	 t           j        dk     rd S dd}| j        	d}t          t          fD ]3	fdt          |          D             }t          dt           j        dz             D ]}|                     ||          } ||          }|                     t          t           j	        |          d           |                     || 
                    |                      ||d           }|                     t          t           j	        |          t          t           j	        |                     |                     || 
                    |                     5d S )	Nr  c                 *   	 g }d}t          j        |           D ]&\  }}}|j        dk    r|                    |           't	                      }d}t          |          D ]%\  }	}|r ||	          r|| ||         z  }||z   }&|| |d          z  }|S )Nr  r  r   )r   r   r   r   rs  	enumerate)
r  
keep_frameframe_startsframe_opcode_sizer[  _r  	newpicklelast_frame_endr  s
             r   remove_framesz?AbstractPickleTests.test_optional_frames.<locals>.remove_framesO
  s    =L !"-"4W"="= - -3;')) '',,,!IN#L11 9 93 **Q-- W^C%788	!$'8!811Ir      c                 0    i | ]}| |g          z  S r%   r%   )r  r  
bytes_type
frame_sizes     r   
<dictcomp>z<AbstractPickleTests.test_optional_frames.<locals>.<dictcomp>g
  s*    NNNq1jj!oo
2NNNr   r   r   c                     | dz  S r  r%   )r  s    r   r>  z:AbstractPickleTests.test_optional_frames.<locals>.<lambda>p
  s
    a!e r   r$   )r   r,  r  r   rs  r6  r  r   r"   r  r  r  )
r.   r  
num_framesr   r  r  frameless_picklesome_frames_pickler	  r
  s
           @@r   test_optional_framesz(AbstractPickleTests.test_optional_framesK
  s   "Q&&F	 	 	 	& +

 !), 	F 	FJNNNNNE*<M<MNNNCq&"9A"=>> 
F 
F**S%00#0=#9#9   fl<L!M!MqQQQ  djj1A&B&BCCC%2]7OO%L%L"V\;M N N ,V\7 C CE E E  djj1C&D&DEEEE
F	F 	Fr   c                      G d d          }t          dt          j        dz             D ]6}d t          t          d                    D             }|                    d j        dz  dz   z              |            }                     ||                              |           |                                } 	                    |          } 
                    ||                                t          |j                  d           ~t          j                      
                    |                                |           t          |          dz
   j        z  dz   }                     t          |j                  |                                t          |j                  d	|z  d
z              d |j        D             } fd|D             }	 fd|D             }
d |D             }|	D ]!}                     |d	 j        z  |           "                     t          |          t          |	          t          |
          z   d
z   |           8d S )Nc                   "    e Zd Z	 d Zd Zd ZdS )YAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulatorc                     g | _         d S r$   )chunksr2   s    r   rH   zbAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.__init__y
  s     r   c                 :    | j                             |           d S r$   )r  r   )r.   chunks     r   rG   z_AbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.write{
  s    ""5)))))r   c                 6    d                     | j                  S )Nr   )r  r  r2   s    r   concatenate_chunkszlAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.concatenate_chunks}
  s    xx,,,r   N)r<   r=   r>   rH   rG   r  r%   r   r   ChunkAccumulatorr  w
  sD        D! ! !* * *- - - - -r   r  r  r   c                 |    g | ]9}t          |                              d           |dz  dt          |          if:S )r  r  r  )rx   r  r  s     r   r  zSAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.<listcomp>
  sO     1 1 1 Ag..Bc!ffF 1 1 1r   g     @0123456789abcdefr  r   r  c                 ,    g | ]}t          |          S r%   r  )r  r   s     r   r  zSAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.<listcomp>
  s    999a3q66999r   c                 *    g | ]}|j         k    |S r%   r  r  r  r.   s     r   r  zSAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.<listcomp>
  s0     ; ; ;4#999 999r   c                 >    g | ]}d |cxk     rj         k     n n|S r  r  r   s     r   r  zSAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.<listcomp>
  sG     > > >!!<<<<d&<<<<<< <<<r   c                     g | ]
}|d k    |S r"  r%   )r  r  s     r   r  zSAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.<listcomp>
  s    <<<Q!VV1VVVr   )r6  r   r,  r  r   r  r  r  r  r  r   r  r.  r  r   
gc_collectru  r  r  )r.   r  r  objectswriterr  reconstructedr  chunk_sizeslarge_sizesmedium_sizessmall_sizes
chunk_sizes   `            r   +test_framed_write_sizes_with_delayed_writerz?AbstractPickleTests.test_framed_write_sizes_with_delayed_writeru
  s   	- 	- 	- 	- 	- 	- 	- 	- 1f59:: 5	. 5	.E1 1 %c#hh1 1 1G NN- 2b81<> ? ? ? &%''FLL'',,W555
 //11G JJw//M]G444s6=111555    V6688'BBBGq(T-CCaGH##C$6$6AAA
   V]!3!3Q\A5EFFF996=999K; ; ; ;k ; ; ;K> > > >{ > > >L<<k<<<K * - -

A0F,F +- - - -
   [!1!1!$[!1!1C4E4E!E!I!,. . . .g5	. 5	.r   c           	          G d d          a t          t          j        dz             D ]}t           j        t           j        j        t           j        j        j        fD ]p}|                     ||          5  |                     | 	                    ||                    }| 
                    ||           d d d            n# 1 swxY w Y   qd S )Nc                   (    e Zd Z G d d          ZdS )Nestedc                   (    e Zd Z G d d          ZdS )Nested.Ac                   (    e Zd Z G d d          ZdS )
Nested.A.Bc                       e Zd ZdS )Nested.A.B.CNrj   r%   r   r   rX   r6  
  s        r   rX   N)r<   r=   r>   rX   r%   r   r   rG  r4  
  s<                 r   rG  N)r<   r=   r>   rG  r%   r   r   Ar2  
  s<                 r   r7  N)r<   r=   r>   r7  r%   r   r   r0  r0  
  s<                 r   r0  r   )r  r   )r0  r6  r   r,  r7  rG  rX   r  r  r  r   )r.   r  r   r  s       r   test_nested_namesz%AbstractPickleTests.test_nested_names
  s   	 	 	 	 	 	 	 	
 62Q677 	2 	2E&(*fhjl; 2 2\\3\77 2 2 $

4::c5+A+A B BIMM#y1112 2 2 2 2 2 2 2 2 2 2 2 2 2 22	2 	2s   7A CC
Cc                     G d d          a t          j        t           j                 t           _        dt           _        t          t          j        dz             D ]y}| 	                    |          5  | 
                    |                     t           |                    }|                     |t                      d d d            n# 1 swxY w Y   zt           `d S )Nc                       e Zd ZdS )	RecursiveNrj   r%   r   r   r;  r;  
          Dr   r;  zRecursive.mod.Recursiver   r{  )r;  r  modulesr=   modr>   r6  r   r,  r  r  r  r   )r.   r  r  s      r   test_recursive_nested_namesz/AbstractPickleTests.test_recursive_nested_names
  s
   	 	 	 	 	 	 	 	I$89	!:	62Q677 	4 	4EE** 4 4 JJtzz)U'C'CDD	i3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 MMMs   4A
C

C	C	c           	          G d d          a t           j        t           j        t                      j        t           j        j        t           j        j        t                                           j        f}t           j        t           ft           j        j        t           j        ff}t          t          j
        dz             D ]}|D ]}|                     ||          5  |                     |                     ||                    }|                      |             |                       d d d            n# 1 swxY w Y   |D ]\  }} |            }|                     ||          5  |                     |                     ||                    }|                      ||           ||                     d d d            n# 1 swxY w Y   t           j        d         t           j        d         f}t          t          j
        dz             D ]X}|D ]S}	|                     ||	          5  |                     t"          | j        |	|           d d d            n# 1 swxY w Y   TYd S )Nc                   Z    e Zd Zed             Zed             Zd Z G d d          ZdS )PyMethodsTestc                      dS )Ncheeser%   r%   r   r   rD  zPyMethodsTest.cheese
  s    xr   c                     dS )Nwiner%   r   s    r   rF  zPyMethodsTest.wine
  s	     vr   c                     dS )Nbiscuitsr%   r2   s    r   rI  zPyMethodsTest.biscuits
  s    !zr   c                   B    e Zd Z	 ed             Zed             Zd ZdS )PyMethodsTest.Nestedc                      dS )Nketchupr%   r%   r   r   rM  zPyMethodsTest.Nested.ketchup
  s    $9r   c                     dS )Nmapler%   rG  s    r   rO  zPyMethodsTest.Nested.maple
  s	     #7r   c                     dS )Npier%   r2   s    r   rQ  zPyMethodsTest.Nested.pie
  s     5r   N)r<   r=   r>   staticmethodrM  r   rO  rQ  r%   r   r   r0  rK  
  sX        % % %# # #! ! ! ! !r   r0  N)	r<   r=   r>   rR  rD  r   rF  rI  r0  r%   r   r   rB  rB  
  s}            \   [" " "! ! ! ! ! ! ! ! ! !r   rB  r   r  methodrD  rF  r  descr)rB  rD  rF  rI  r0  rM  rO  rQ  r6  r   r,  r  r  r  r   rZ   r  r  )
r.   
py_methodspy_unbound_methodsr  rT  r  r   r   descriptorsrV  s
             r   test_py_methodsz#AbstractPickleTests.test_py_methods
  sZ   	! 	! 	! 	! 	! 	! 	! 	!2  OO$ ( &  ""&

 #]3!%}';<
 62Q677 		B 		BE$ < <\\f\== < < $

4::fe+D+D E EI$$VVXXyy{{;;;< < < < < < < < < < < < < < <  2 B Bcee\\f\== B B $

4::fe+D+D E EI$$VVC[[))C..AAAB B B B B B B B B B B B B B BB "8,"6*
 62Q677 	K 	KE$ K K\\U\;; K K%%iUEJJJK K K K K K K K K K K K K K KK	K 	Ks8   AD;;D?D?/AGGG8#I''I+.I+c                 b    G d dt                     adj        dft          j        dfg dj        dft
          j        g dffdd	hj        d
ft          j        dd	hd	fft          j	        dft          j        dft          g d          j        d
ft          j        t          g d          d	fft                              d          j        dft          j        j        t                              d          dfff}t          t          j        dz             D ]~}|D ]y\  }}|                     ||          5  |                     |                     ||                    }|                      ||  ||            d d d            n# 1 swxY w Y   zt          j        d         t          j        d         f}t          t          j        dz             D ]X}|D ]S}|                     ||          5  |                     t.          | j        ||           d d d            n# 1 swxY w Y   TYd S )Nc                   *    e Zd Z G d de          ZdS )Subclassc                       e Zd ZdS )Subclass.NestedNrj   r%   r   r   r0  r_    s        r   r0  N)r<   r=   r>   rx   r0  r%   r   r   r]  r]    s>                 r   r]  abcd)r   )r`  r   r-  r%   r   r   r  ))r}   r   )r~   r   )s   abcr  )r   r   r   sweet)r5  r5  rS  	maketransr  rU  )rC  r]  indexrx   __len__r   __contains__r4  r   r  rs  rb  countr0  r6  r   r,  r  r  r  r   rZ   r  r  )r.   	c_methodsr  rT  r/   r  rY  rV  s           r   test_c_methodsz"AbstractPickleTests.test_c_methods
  s   	 	 	 	 	u 	 	 	 \6"Y&YY#\III<(V $'A{+]01 "23ggg$d+^hwww//34__W%%+V4_"X__W%=%=s$CD+
	. 62Q677 	F 	FE ) F F\\f\== F F $

4::fe+D+D E EI$$VVT]IIt4DEEEF F F F F F F F F F F F F F FF {+M*%
 62Q677 	K 	KE$ K K\\U\;; K K%%iUEJJJK K K K K K K K K K K K K K KK	K 	Ks%   7AF		FF3#H""H&)H&c           
         t          dd          ddft          t          d          ddft          j        ddft
          j        d	d	ft                      d
dft          j	                    ddft          j
                    ddft          j                    ddfg}|D ]\  }}}t          d          D ]}|                     t          |          |          5  |                     ||          }|                     d|d|                                |           |                     t          |                     |                    t          |                     d d d            n# 1 swxY w Y   ƌd S )Nr   r  __builtin__xrange123	itertoolsimapr  r  
exceptionsr;  r  IterableUserDictUserListr  defaultdictr  )r   r  r   r  )r6  r  r  r  r  r  r  r;  r  r  rq  rr  r  r   r  r  r  r   r  )r.   testsvalr>  r   r  r  s          r   test_compat_picklez&AbstractPickleTests.test_compat_pickle6  s   1a[[-2e__k62}h7[)Y/[[,4!##Z1CD!##Z<$&&}E	
 $ 	H 	HNCdq H H\\tCyy\>> H H"jje44GMMMTT#:"B"B"D"DgNNNMM$tzz'':':";";T#YYGGGH H H H H H H H H H H H H H HH	H 	Hs   BE((E,/E,c                 L   d }t          dt          j        dz             D ]h}|                     t          t          j        f          5  t          j        |                     ||                     d d d            n# 1 swxY w Y   i|`	t          dt          j        dz             D ]h}|                     t          t          j        f          5  t          j        |                     ||                     d d d            n# 1 swxY w Y   i|j
        |_        t          dt          j        dz             D ]h}|                     t          t          j        f          5  t          j        |                     ||                     d d d            n# 1 swxY w Y   id S )Nc                      d S r$   r%   r%   r   r   r  z6AbstractPickleTests.test_local_lookup_error.<locals>.fK      Dr   r   r   )r6  r   r,  r  AttributeErrorr  r   r$  r  r=   r>   r<   r.   r  r  s      r   test_local_lookup_errorz+AbstractPickleTests.test_local_lookup_errorH  sB   	 	 	 1f59:: 	6 	6E""NF4H#IJJ 6 6

1e 4 45556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 L1f59:: 	6 	6E""NF4H#IJJ 6 6

1e 4 45556 6 6 6 6 6 6 6 6 6 6 6 6 6 6 ^
1f59:: 	6 	6E""NF4H#IJJ 6 6

1e 4 45556 6 6 6 6 6 6 6 6 6 6 6 6 6 6	6 	6s6   	)A>>B	B	)DD
	D
	#)FF	F	c              #   ^  K   d}t          |          V  t          |          V  t          }t          |          }t                              |d          }dt          j        fD ]E}t          |dd|          V  t          |ddd	|
          V  t          |ddd|
          V  Dd S d S )N   abcdefghlittle)	byteorderr   rG  )r  )r   r   r   )r  r   r+  )r   r   r   r   r*  )r   r   r   r   r  
from_bytesr   r   )r.   
bytestringr   ro   r   s        r   buffer_like_objectsz'AbstractPickleTests.buffer_like_objectsa  s      
J'''''
+++++"$$ENN:NBBE[45 
4 
4&uS-24 4 4 4 4 4 'uS/5UD D D D D D 'uS-3V-24 4 4 4 4 4 4 #"
4 
4r   c                 v   |                                  D ]}t          dt          j        dz             D ]}|                     ||          }|j        r|dk    r|                     d|           |                     t          t          j	        |          d           |dk    r|                     t          t          j
        |          |j        rdnd           |                     t          t          j        |          |j        rdnd           d }|                     |||          }|                     ||           |                     |          }|                     ||           |                     t!          |          t!          |                     |                     ||           d S )Nr   r   r   r}  c                     dS NTr%   r   s    r   buffer_callbackzAAbstractPickleTests.test_in_band_buffers.<locals>.buffer_callback  s    #tr   r  )r  r6  r   r,  r  r   r  r   r"   NEXT_BUFFERSHORT_BINBYTESr   r  r  r   r   r   )r.   r   r  r   r  data2r   s          r   test_in_band_buffersz(AbstractPickleTests.test_in_band_buffersu  s   ++-- 	+ 	+Cq&"9A"=>> + +zz#u--# 5

MM+t444  f.@$!G!GKKKA::$$\&2G%N%N*-,%=QQA? ? ?$$\&2CT%J%J*-,%=QQA? ? ?$ $ $ JJsE7F ' H HE$$UD111jj&&  c***d3iic333  c****/+	+ 	+r   c                 .   |                                  D ]}t          dd          D ]Q}|                     t                    5  |                     ||g j                   d d d            n# 1 swxY w Y   Rt          dt          j        dz             D ]y}g fd}|                     |||          }|                     d|           | 	                    t          t          j        |          d           | 	                    t          t          j        |          d           | 	                    t          t          j        |          d           | 	                    t          t          j        |          |j        rdnd           |j        r)| 	                    t#          d                   d           |                     t          j                  5  |                     |           d d d            n# 1 swxY w Y   |                     |          }|j        r|                     ||           nF|                     t-          |          t-          |                     | 	                    ||           |                     |t/                              }|j        r|                     ||           3|                     t-          |          t-          |                     | 	                    ||           {d S )Nr   r   r  r   c                 R                         |                                           S r$   )r   r   )r   bufferss    r   r>  z6AbstractPickleTests.test_oob_buffers.<locals>.<lambda>  s    W^^BFFHH-E-E r   r}  r  )r  r6  r  r*  r  r   r   r,  r  r   r"   r  r  r  READONLY_BUFFERr   r   r   rb  r  r   r   r   iter)r.   r   r  r  r   r   r  s         @r   test_oob_buffersz$AbstractPickleTests.test_oob_buffers  sq   ++-- &	/ &	/Cq! : :&&z22 : :JJsE/1y  : : :: : : : : : : : : : : : : : : q&"9A"=>>  /  /"E"E"E"Ezz#u2A " C C  d333  f.CT!J!JANNN  f.?!F!FJJJ  f.@$!G!GKKK  f.Dd!K!K&)l!9; ; ; # E$$U71:%6%6DDD&&v'=>> % %JJt$$$% % % % % % % % % % % % % % % jjwj77, /MM#s++++MM$s))T#YY777$$S#...jjtG}}j==, /MM#s++++MM$s))T#YY777$$S#....A /&	/ &	/s$   A//A36A3 HH	Hc                    t          d          }t          dt          j        dz             D ]}g }|j        }|                     |||          }t          t          |          }|                     ||          }| 	                    t          |          t          |                     |                     ||           d S N   foobarr   r   r  r  )r   r6  r   r,  r   r  r  rs  r  r   r   r   )r.   r   r  r  r  r   r   s          r   %test_oob_buffers_writable_to_readonlyz9AbstractPickleTests.test_oob_buffers_writable_to_readonly  s    I&&1f59:: 	' 	'EG%nO::c5/:JJD)W--G**T7*33CMM$s))T#YY///S#&&&&	' 	'r   c                     t          j        d          }t          dd          D ]O}|                     t           j                  5  |                     ||           d d d            n# 1 swxY w Y   Pd S )Nr  r   r   )r   r   r6  r  PickleErrorr  )r.   r   r  s      r   test_picklebuffer_errorz+AbstractPickleTests.test_picklebuffer_error  s     ++1a[[ 	& 	&E""6#566 & &

2u%%%& & & & & & & & & & & & & & &	& 	&s   A))A-	0A-	c                     d }t          j        d          }|                     t                    5  |                     |d|           d d d            d S # 1 swxY w Y   d S )Nc                     ddz   d S r+  r%   r  s    r   r  zGAbstractPickleTests.test_buffer_callback_error.<locals>.buffer_callback  s    aCCCCr   r  r   r  )r   r   r  ZeroDivisionErrorr  )r.   r  r   s      r   test_buffer_callback_errorz.AbstractPickleTests.test_buffer_callback_error  s    	 	 	 ++011 	? 	?JJr1oJ>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   AAAc                    t          j        d          }t          dt           j        dz             D ]}|                     ||g j                  }|                     t                    5  |                     |t                                 d d d            n# 1 swxY w Y   |                     t           j
                  5  |                     |g            d d d            n# 1 swxY w Y   d S r  )r   r   r6  r,  r  r   r  r  r  r>  rb  )r.   r   r  r   s       r   test_buffers_errorz&AbstractPickleTests.test_buffers_error  s^    ++1f59:: 	- 	-E::b%:CCD""9-- 3 3

4
2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 ""6#9:: - -

4
,,,- - - - - - - - - - - - - - -	- 	-s$   +$BB	"B	C))C-	0C-	c                     t          dt          j        dz             D ]1}|                     d|d           }|                     |d           }2d S )Nr   r   r  r  )r6  r   r,  r  r  )r.   r  data_pickledr   s       r   +test_inband_accept_default_buffers_argumentz?AbstractPickleTests.test_inband_accept_default_buffers_argument  s[    1f59:: 	: 	:E::a:EEL::lD:99DD	: 	:r   NzTest needs Numpyc                 @     fd fd fd}t          j        d          } ||            ||d d d                    t          j        d                              d          } ||            ||j                    ||d d d                    d S )Nc                     t           j                            | |                               | j        j        |j        j                   d S r$   )nptestingassert_equalr   ctypesr   r'   r   r.   s     r   check_no_copyz=AbstractPickleTests.test_buffers_numpy.<locals>.check_no_copy  s?    J##Aq)))QX]AHM:::::r   c                     t           j                            | |                               | j        j        |j        j                   d S r$   )r  r  r  r  r  r   r  s     r   
check_copyz:AbstractPickleTests.test_buffers_numpy.<locals>.check_copy  s?    J##Aq)))qx}=====r   c                    t          dt          j        dz             D ]9}                    | |          }                    |          } | |           :t          dt          j        dz             D ]>}d }                    | ||          }                    |          } | |           ?t          dt          j        dz             D ]k}g }|j        }                    | ||          }                    ||          }| j        j        s| j        j        r | |           _ | |           ld S )Nr   r   r   c                     dS r  r%   )r  s    r   r>  zMAbstractPickleTests.test_buffers_numpy.<locals>.check_array.<locals>.<lambda>  s    D r   r  r  )	r6  r   r,  r  r  r   r   r   r   )	arrr  r   r   r  r  r  r  r.   s	         r   check_arrayz;AbstractPickleTests.test_buffers_numpy.<locals>.check_array  sh   q&"9A"=>> % %zz#u--jj&&
3$$$$q&"9A"=>> % %"0.zz#uozNNjj&&
3$$$$q&"9A"=>> ) )").zz#uozNNjjwj779) )SY-C )!M#s++++JsC(((() )r   r  r      r,  )r  arangereshapeT)r.   r  r  r  r  s   `  @@r   test_buffers_numpyz&AbstractPickleTests.test_buffers_numpy  s    	; 	; 	; 	; 	;	> 	> 	> 	> 	>	) 	) 	) 	) 	) 	) 	). illCC!Himm##F++CCEC!Hr   c           	        	 ddl m	  G 	fdd          at          D ]}t	          d          D ]}dd t	          d          D             D ]}||_        |_        d	 |                     |          }|                     |           _# t          $ r/}d	}| 
                    |t          |                     Y d }~d }~ww xY wd S )
Nr   )getrandbitsc                   ,    e Zd Z fdZd ZfdZdS )Badc                     S r$   r%   )r.   r\   ENABLEDs     r   r]   z
Bad.__eq__  s    r   c                     dS rC  r%   r2   s    r   __hash__zBad.__hash__  s    rr   c                 \     d          dk    r                                  t          dfS )Nr  r   r%   )clearr  )r.   
collectionr  s    r   rr   zBad.__reduce__   s2    ;q>>Q&&$$&&&Ry r   N)r<   r=   r>   r]   r  rr   )r  r  r  s   r   r  r    s[              ! ! ! ! ! ! ! !r   r  r  Fc                 D    i | ]}t                      t                      S r%   )r  )r  r  s     r   r  zEAbstractPickleTests.test_evil_class_mutating_dict.<locals>.<dictcomp>(  s"    >>>qceeSUU>>>r   Tchanged size during iteration)randomr  r  r  r6  r2  r  r  r  r  r  rx   )
r.   r  r  r2  r   r5  r  r  r  r  s
          @@@r   test_evil_class_mutating_dictz1AbstractPickleTests.test_evil_class_mutating_dict  sD   &&&&&&	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!  	4 	4E2YY 4 4>>E"II>>>
% 0 0C!CG%/CNN4::j%88DJJt$$$$# 4 4 4>HMM(CFF3333333344	4 	4s   &+B
C%CCc                 n    t           d          s%                     t                      d           G d d          a fd}t          D ] |t                      g            |t                      t                      g            |t                      h            |t                      t                      h            |t                      di            |t                      dt                      di            |t                      t                      d           d S )	Nr  z has no associated pickler typec                       e Zd ZdS )ClearerNrj   r%   r   r   r  r  :  r<  r   r  c                      G  fddj                   } |t          j                              }	 |                                d S # t          $ r0}d}                    |t          |                     Y d }~d S d }~ww xY w)Nc                       e Zd Z fdZdS )]AbstractPickleTests.test_evil_pickler_mutating_collection.<locals>.check.<locals>.EvilPicklerc                 Z    t          |t                    r                                 d S r$   )r   r  r  )r.   r   r  s     r   persistent_idzkAbstractPickleTests.test_evil_pickler_mutating_collection.<locals>.check.<locals>.EvilPickler.persistent_id?  s,    !#w// +"((***4r   N)r<   r=   r>   r  )r  s   r   EvilPicklerr  >  s.                     r   r  r  )r  r6   rB   r  r  r  rx   )r  r  r  r5  r  r  r.   s   `    r   checkzHAbstractPickleTests.test_evil_pickler_mutating_collection.<locals>.check=  s                 dl      
 "k"*,,66G0Z((((( 0 0 0:hA/////////0s   A 
B%BBr   r   r)  )r   skipTestr   r  r  )r.   r  r  s   ` @r   %test_evil_pickler_mutating_collectionz9AbstractPickleTests.test_evil_pickler_mutating_collection4  s[   tY'' 	P--4:: N N NOOO	 	 	 	 	 	 	 		0 	0 	0 	0 	0 	0  	0 	0EE799+E799gii()))E799+E799gii()))E799a.!!!E799aA.///EgiiGII..////	0 	0r   )r<   r=   r>   	optimizedr   r  r  r   r  r   r)  r(   r2  r4  r9  rA  rD  rF  rI  rM  rS  rU  rX  r_  rb  rd  rf  ri  rk  rm  ro  rr  rt  rv  rx  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r   r  r
  r  r  r  r$  r'  r6  r;  r?  rA  rI  rO  rR  rV  r\  r_  rb  rg  rn  rr  rw  r  r  r  r  r  r  r  r  r  r	   r  r  r  r  r  r  r  r  r  r  r  r  r  r   skip_if_pgo_taskrequires_resourcer  r  r  r-  r8  r?  rZ  rh  ru  r{  r  r  r  r  r  r  r  r  unittestskipIfr  r  r  r  r%   r   r   r  r    s        I%/I   +9N& & &(/ / /	, 	, 	, 08Q 
# 
# 
# 
#( ( (9 9 9E E E :Bq & & & &42 2 2C C CO O O 08Q 
# 
# 
# 
#( ( (9 9 9G G G :Bq & & & &42 2 2C C CQ Q Q 4< 6 6 6 6, , ,= = =K K K >FST 9 9 9 986 6 6G G GU U U/ / /,	% 	% 	%+ + +. . .27 7 78 8 8@ @ @6 6 6< < <9 9 9: : :B B B8 8 8> > >& & &) ) ),	+ 	+ 	+' ' '& & &
6 
6 
6L L L&& & &  % % %.0 0 0 _Xw00: : 10:/ / /. . .7 7 7, , ,* * *&" " "- - -2 2 24 4 4, , ,4 4 4J J J&L L LL L L%? %? %?N? ? ?2& & && & &A A AA A A&	( 	( 	(
  
  
    89 9 99 9 9
9 9 9
2 2 2,3 3 3.9 9 92* * * * * *(* * *(" " "2 2 2- - -- - -. . .2 2 2 % % Z%  .1 1 1, , ,, , ,+ + +
K 
K 
K) ) )M M MN N N N!-H -H -H^ Wu%%2 2 &% 26 6 6@(F (F (FT ?. ?. ?.B2 2 2
 
 
8K 8K 8Kt*K *K *KXH H H$6 6 624 4 4(+ + +>(/ (/ (/T' ' '& & &? ? ?	- 	- 	-: : :
 X_R4Z!344* * 54*X4 4 4<0 0 0 0 0r   r  c                       e Zd Z eedd          d             Z eedd          d             Z eedd          d             Z eedd          d	             Z	 eedd          d
             Z
dS )BigmemPickleTestsg@F)sizememusedry_runc                 J   dd|z  z  }	 t           D ]}|dk     r	|                     |          5  |                     t          t          f          5  |                     ||           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   	 d }d S # d }w xY w)Nr   r  r   r{  r  )r  r  r  r*  rc  r  )r.   r  r   r  s       r   test_huge_long_32bz$BigmemPickleTests.test_huge_long_32bX  s:   QX	" 9 9199\\\.. 9 9**J+FGG 9 9

4%
8889 9 9 9 9 9 9 9 9 9 9 9 9 9 99 9 9 9 9 9 9 9 9 9 9 9 9 9 99 DDD4DKKKKsR   &B "BA6*B6A::B=A:>BB B	B B	B B"g      @c           
         d|dz  z  }	 t           D ]}|dk     r	|                     |          5  	 |                     ||          }t          j        t          j        dt          |                    z   }|                    |          }| 	                    |||t          |          z
  |                    d }n# d }w xY w	 d d d            n# 1 swxY w Y   	 d }d S # d }w xY w)N   abcdr  r  r{  r  rL  )
r  r  r  r   r  rN  rO  r.  rc  r   r.   r  r   r  r  header
data_starts          r   test_huge_bytes_32bz%BigmemPickleTests.test_huge_bytes_32bi  sQ   $!)$	" ' '199\\\.. 
' 
'	'"&**TE*"B"B"(/"(+dCII">">#?%,]]4%8%8
(("#Js6{{$::$EFH H H #'$
' 
' 
' 
' 
' 
' 
' 
' 
' 
' 
' 
' 
' 
' 
'' DDD4DKKKKsF   &C# CB	B>;C>CCC# C	C# C	C# #C'c           
         d|dz  z  }	 t           D ]0}|dk     r
|                     |          5  |dk    r]|                     t          t          f          5  |                     ||           d d d            n# 1 swxY w Y   	 d d d            	 |                     ||          }t          j        t          j	        dt          |                    z   }|                    |          }|                     |||t          |          z
  |                    d }n# d }w xY w	 d d d            n# 1 swxY w Y   2	 d }d S # d }w xY w)Ns   acbdr  r  r{  r  <Q)r  r  r  r*  rc  r  r   r  rN  rO  r.  rc  r   r  s          r   test_huge_bytes_64bz%BigmemPickleTests.test_huge_bytes_64b~  s   $!)$	" ' '199\\\.. ' 'zz "..
M/JKK = = JJteJ<<<= = = = = = = = = = = = = = = ' ' ' ' ' ' '	'"&**TE*"B"B"("2"(+dCII">">#?%,]]4%8%8
(("#Js6{{$::$EFH H H #'$!' ' ' ' ' ' ' ' ' ' ' ' ' ' ''* DDD4DKKKKsq   'E (D6A=1D6=BD6BD6	E B	D"D6"D&&D6*E 6D:	:E =D:	>E Er  c           
         d|dz  z  }	 t           D ])}|dk    r
|                     |          5  	 |                     ||          }t          j        t          j        dt          |                    z   }|                    d          }| 	                    |||t          |          z
  |                    | 	                    |
                    d          t          d          z   |                    d          z
  t          |                     d }n# d }w xY w	 d d d            n# 1 swxY w Y   +	 d }d S # d }w xY w)Nr`  r  r   r{  r  rL  r  )r  r  r  r   r  rN  rO  r.  rc  r   rindexr  s          r   test_huge_str_32bz#BigmemPickleTests.test_huge_str_32b  s   #	" ' 'A::\\\.. ' ''"&**TE*"B"B"("3"(+dCII">">#?%,]]7%;%;
(("#Js6{{$::$EFH H H (('..*A*ACLL*P*1--*@*@+ACFt99N N N #'$' ' ' ' ' ' ' ' ' ' ' ' ' ' ''" DDD4DKKKKsF   'E D/C%DD/DD/#E /D3	3E 6D3	7E Ec           
      V   d|dz  z  }	 t           D ]}|dk    r
|                     |          5  |dk     r]|                     t          t          f          5  |                     ||           d d d            n# 1 swxY w Y   	 d d d            	 |                     ||          }t          j        t          j	        dt          |                    z   }|                    d          }|                     |||t          |          z
  |                    |                     |                    d          t          d          z   |                    d          z
  t          |                     d }n# d }w xY w	 d d d            n# 1 swxY w Y   	 d }d S # d }w xY w)Nr`  r  r   r{  r  r  r  )r  r  r  r*  rc  r  r   r  rN  rO  r.  rc  r   r  r  s          r   test_huge_str_64bz#BigmemPickleTests.test_huge_str_64b  sY   #	" ' 'A::\\\.. ' 'qyy!..
M/JKK = = JJteJ<<<= = = = = = = = = = = = = = = 	' ' ' ' ' ' '
'"&**TE*"B"B"("4"(+dCII">">#?%,]]7%;%;
(("#Js6{{$::$EFH H H (('..*A*ACLL*P*1--*@*@+ACFt99N N N #'$!' ' ' ' ' ' ' ' ' ' ' ' ' ' ''* DDD4DKKKKsq   'F$ (FA=1F=BFBF	F$ C%E>;F>FFF$ F	F$ F	F$ $F(N)r<   r=   r>   r   r
   r  r  r   r  r  r  r%   r   r   r  r  T  s         ZSe444
 
 54
  ZSe444  54( ZSe444  54: ZSE222  324 ZSE222  32  r   r  c                       e Zd Z	 dZd ZdS )r  r   c                 "    d| _         t          dfS )Nr   r%   )r  r  r2   s    r   rr   zREX_one.__reduce__  s    {r   Nr<   r=   r>   r  rr   r%   r   r   r  r    s+        >N    r   r  c                       e Zd Z	 dZd ZdS )r  Nc                 "    || _         t          dfS rf   r  r  r.   r  s     r   r   zREX_two.__reduce_ex__      {r   r<   r=   r>   r  r   r%   r   r   r  r    s+        ;F    r   r  c                       e Zd ZdZd Zd ZdS )r  Nc                 "    || _         t          dfS rf   r  r  s     r   r   zREX_three.__reduce_ex__  r  r   c                      t          d          )Nz#This __reduce__ shouldn't be called)r   r2   s    r   rr   zREX_three.__reduce__  s    >???r   )r<   r=   r>   r  r   rr   r%   r   r   r  r    s<        F  @ @ @ @ @r   r  c                       e Zd Z	 dZd ZdS )r  Nc                 F    || _         t                              | |          S r$   )r  r>  r   r  s     r   r   zREX_four.__reduce_ex__  s    ##D%000r   r  r%   r   r   r  r    s+        2F1 1 1 1 1r   r  c                       e Zd Z	 dZd ZdS )r  r   c                 D    d| _         t                              |           S rO  )r  r>  rr   r2   s    r   rr   zREX_five.__reduce__  s      &&&r   Nr  r%   r   r   r  r    s+        7N' ' ' ' 'r   r  c                   *    e Zd Z	 ddZd Zd Zd ZdS )r@  Nc                     ||ng | _         d S r$   r=  )r.   r   s     r   rH   zREX_six.__init__      #/UUR


r   c                 ^    t          |           t          |          u o| j        |j        k    S r$   )r   r   r[   s     r   r]   zREX_six.__eq__  '    DzzT%[[(FTZ5;-FFr   c                 :    | j                             |           d S r$   )r   r   )r.   items     r   r   zREX_six.append  s    
$r   c                 N    t          |           dd t          | j                  d fS rf   )r   r  r   r2   s    r   rr   zREX_six.__reduce__  s#    Dzz2tT$*%5%5t;;r   r$   )r<   r=   r>   rH   r]   r   rr   r%   r   r   r@  r@    s]        8 8 8 8G G G     < < < < <r   r@  c                   *    e Zd Z	 ddZd Zd Zd ZdS )r^  Nc                     ||ni | _         d S r$   r[  )r.   r\  s     r   rH   zREX_seven.__init__
  r  r   c                 ^    t          |           t          |          u o| j        |j        k    S r$   )r   r\  r[   s     r   r]   zREX_seven.__eq__  r   r   c                     || j         |<   d S r$   r[  )r.   r/  ro   s      r   __setitem__zREX_seven.__setitem__  s    
3r   c                 r    t          |           dd d t          | j                                                  fS rf   )r   r  r\  r   r2   s    r   rr   zREX_seven.__reduce__  s/    Dzz2tT4
0@0@0B0B+C+CCCr   r$   )r<   r=   r>   rH   r]   r  rr   r%   r   r   r^  r^    sb        8 8 8 8G G G     D D D D Dr   r^  c                   *    e Zd Z	 ddZd Zd Zd ZdS )r  Nc                     || _         d S r$   r  r.   r  s     r   rH   zREX_state.__init__  rp   r   c                 ^    t          |           t          |          u o| j        |j        k    S r$   r   r  r[   s     r   r]   zREX_state.__eq__  r   r   c                     || _         d S r$   r  r  s     r   __setstate__zREX_state.__setstate__  rp   r   c                 0    t          |           d| j        fS rf   r  r2   s    r   rr   zREX_state.__reduce__  s    Dzz2tz))r   r$   )r<   r=   r>   rH   r]   r  rr   r%   r   r   r  r    s]           G G G  * * * * *r   r  c                       e Zd ZdZdS )rK  r   Nr<   r=   r>   rF  r%   r   r   rK  rK  #  s        FFFr   rK  c                       e Zd ZdZdS )MyFloatg      ?Nr  r%   r   r   r  r  &  s        FFFr   r  c                       e Zd ZdZdS )	MyComplexy      ?        Nr  r%   r   r   r  r  )  s        FFFr   r  c                       e Zd ZdZdS )MyStrr>  Nr  r%   r   r   r  r  ,  s        FFFr   r  c                       e Zd ZdZdS )	MyUnicodeu	   hello ሴNr  r%   r   r   r  r  /  s        FFFr   r  c                       e Zd ZdZdS )r  r-  Nr  r%   r   r   r  r  2  s        FFFr   r  c                       e Zd Zg dZdS )r8  r-  Nr  r%   r   r   r8  r8  5  s        YYFFFr   r8  c                       e Zd ZdddZdS )rW  r   r   r|   Nr  r%   r   r   rW  rW  8  s        1FFFr   rW  c                       e Zd ZddhZdS )r  r}   r~   Nr  r%   r   r   r  r  ;  s        3ZFFFr   r  c                   (    e Zd Z eddh          ZdS )r  r}   r~   N)r<   r=   r>   r  rF  r%   r   r   r  r  >  s!        YSz""FFFr   r  c                       e Zd Zd ZdS )MyIntWithNewc                     t           r$   )AssertionError)r   ro   s     r   r   zMyIntWithNew.__new__G  s    r   N)r<   r=   r>   r   r%   r   r   r#  r#  F  s#            r   r#  c                       e Zd Zej        ZdS )rQ  N)r<   r=   r>   r  r   r%   r   r   rQ  rQ  J  s        kGGGr   rQ  c                       e Zd ZdgZdS )r  r   N)r<   r=   r>   r   r%   r   r   r  r  N  s        IIIr   r  c                       e Zd Zd Zd ZdS )rT  c                      t          d          )Nz3SimpleNewObj.__init__() didn't expect to get called)r  r   s      r   rH   zSimpleNewObj.__init__R  s    MNNNr   c                 b    t          |           t          |          k    o| j        |j        k    S r$   )r  rZ   r[   s     r   r]   zSimpleNewObj.__eq__U  s'    4yyCJJ&J4=EN+JJr   N)r<   r=   r>   rH   r]   r%   r   r   rT  rT  Q  s:        O O OK K K K Kr   rT  c                       e Zd Zd ZdS )r  c                     d| z  dfS )N%Xr  r%   r2   s    r   __getnewargs__zComplexNewObj.__getnewargs__Y  s    tR  r   N)r<   r=   r>   r.  r%   r   r   r  r  X  s#        ! ! ! ! !r   r  c                       e Zd Zd ZdS )r  c                     d| z  fddifS )Nr-  baser  r%   r2   s    r   __getnewargs_ex__z!ComplexNewObjEx.__getnewargs_ex__]  s    t~|++r   N)r<   r=   r>   r2  r%   r   r   r  r  \  s#        , , , , ,r   r  c                       e Zd Zd ZdS )r  c                     | j          d S r$   )r   )r.   r/  s     r   __getattr__zBadGetattr.__getattr__a  s    r   N)r<   r=   r>   r5  r%   r   r   r  r  `  s#            r   r  c                   \    e 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d ZdS )AbstractPickleModuleTestsc                    t          t          d          }	 |                                 |                     t          | j        d|           t          j        t                     d S # t          j        t                     w xY wNr  {   r  r   closer  r*  r  r   unlinkr.   r  s     r   test_dump_closed_filez/AbstractPickleModuleTests.test_dump_closed_fileg  m    	%GGIIIj$)S!<<<V$$$$$IV$$$$   6A( (Bc                    t          t          d          }	 |                                 |                     t          | j        d|           t          j        t                     d S # t          j        t                     w xY wr9  r;  r>  s     r   test_load_closed_filez/AbstractPickleModuleTests.test_load_closed_fileo  r@  rA  c                     t          j                    }di dg}|                     ||           |                    d           |                     |          }|                     ||           d S )Nr:  |   r   )r6   rB   r  r8   loadr   )r.   streamr   r  s       r   test_load_from_and_dump_to_filez9AbstractPickleModuleTests.test_load_from_and_dump_to_filew  sh    R~		$AIIf%%	D)))))r   c                 F    |                      t          j        d           d S r   )r   r   r,  r2   s    r   test_highest_protocolz/AbstractPickleModuleTests.test_highest_protocol  s!    0!44444r   c                 >   t          j                    }|                     d|d           |                     d|d           |                     dd           |                     dd           |                     |d           |                     |d           d S )Nr:  r   )filer   r  )r6   rB   r  r  Picklerr>  s     r   test_callapiz&AbstractPickleModuleTests.test_callapi  s    JLL		#q"		#A	+++

3

3
$$$QQ$$$$$r   c                 L   t          t          d          }	 t          D ]%}|                     t          | j        d||           &	 |                                 t          j        t                     d S # |                                 t          j        t                     w xY w)Nwr:  )	r  r   r  r  r  r  r<  r   r=  rz  s      r   test_dump_text_filez-AbstractPickleModuleTests.test_dump_text_file  s    	%" G G!!)TYQFFFFG GGIIIV$$$$$ GGIIIV$$$$s   -A4 4/B#c                     t          j        d          }|                     t          t          j        t          j        f| j        |           d S )Ns   X''.)	r6   rB   r  r  rN  r  r   rb  rF  )r.   r  s     r   test_incomplete_inputz/AbstractPickleModuleTests.test_incomplete_input  s>    Jw8V\63IJDIWXYYYYYr   c                     G d d| j                   } G d d| j                  }|                     t          j         |            j        d           |                     t          j         |            j                   d S )Nc                       e Zd Zd ZdS );AbstractPickleModuleTests.test_bad_init.<locals>.BadPicklerc                     d S r$   r%   r2   s    r   rH   zDAbstractPickleModuleTests.test_bad_init.<locals>.BadPickler.__init__        r   NrI   r%   r   r   
BadPicklerrV            $$$$$r   rY  c                       e Zd Zd ZdS )=AbstractPickleModuleTests.test_bad_init.<locals>.BadUnpicklerc                     d S r$   r%   r2   s    r   rH   zFAbstractPickleModuleTests.test_bad_init.<locals>.BadUnpickler.__init__  rX  r   NrI   r%   r   r   BadUnpicklerr\    rZ  r   r^  r   )rM  	Unpicklerr  r   r  r  rb  rF  )r.   rY  r^  s      r   test_bad_initz'AbstractPickleModuleTests.test_bad_init  s    	% 	% 	% 	% 	% 	% 	% 	%	% 	% 	% 	% 	%4> 	% 	% 	% 	&.

0A1EEE&0,,..2EFFFFFr   c                 t   d t           d              G d d          }|                     t          t          f| j         |                        G fdd          }|                     t          t          f| j         |                        G fdd          }|                     t          t          f| j         |                        G fdd          }|                     t
          | j         |                        G fdd          }|                     t
          | j         |                        G fd	d          }|                     t
          | j         |                        G fd
d          }|                     t          t
          f| j         |                        G fdd          }	 |                      |                       n# t
          $ r Y nw xY w G fdd          }	 |                      |                       d S # t
          $ r Y d S w xY w)Nc                     t           r$   )r  r   s      r   raises_oserrorzIAbstractPickleModuleTests.test_unpickler_bad_file.<locals>.raises_oserror  s    Mr   c                     ddz   d S r+  r%   r2   s    r   bad_propertyzGAbstractPickleModuleTests.test_unpickler_bad_file.<locals>.bad_property  s    aCCCCr   c                       e Zd ZdS <AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.FNrj   r%   r   r   Frh    r<  r   ri  c                       e Zd Z ZdS rg  r<   r=   r>   rF   rc  s   r   ri  z<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F  s        %HHHr   c                       e Zd Z ZdS rg  r<   r=   r>   rE   rl  s   r   ri  z<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F  s        !DDDr   c                       e Zd Z ZZdS rg  )r<   r=   r>   rE   rF   re  rc  s   r   ri  z<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F  s        D%HHHr   c                       e Zd Z ZZdS rg  )r<   r=   r>   rF   rE   rp  s   r   ri  z<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F  s        #H!DDDr   c                       e Zd Z ZdS rg  rk  re  s   r   ri  z<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F  s        #HHHr   c                       e Zd Z ZdS rg  rn  rs  s   r   ri  z<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F  s        DDDr   c                       e Zd Z ZZZdS rg  )r<   r=   r>   r0   rE   rF   rp  s   r   ri  z<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F  s        D!D%HHHr   c                       e Zd Z ZZZdS rg  )r<   r=   r>   readintorE   rF   rp  s   r   ri  z<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F  s        #H!D%HHHr   )r   r  ry  r  r_  r  )r.   ri  re  rc  s     @@r   test_unpickler_bad_filez1AbstractPickleModuleTests.test_unpickler_bad_file  sy   	 	 			 	 
		 	 	 	 	 	 	 	>95t~qqssKKK	& 	& 	& 	& 	& 	& 	& 	& 	& 	&>95t~qqssKKK	" 	" 	" 	" 	" 	" 	" 	" 	" 	">95t~qqssKKK	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	+T^QQSSAAA	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	+T^QQSSAAA	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$+T^QQSSAAA	  	  	  	  	  	  	  	  	  	 >+<=t~qqssSSS	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&	NN1133  	 	 	D		& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&	NN1133  	 	 	DD	s$   G) )
G65G6
H) )
H76H7c                      G d d          }|                      t          | j         |                        G d d          }|                      t          | j         |                       d S )Nc                       e Zd ZdS ):AbstractPickleModuleTests.test_pickler_bad_file.<locals>.FNrj   r%   r   r   ri  r{    r<  r   ri  c                   $    e Zd Zed             ZdS )r{  c                     ddz   d S r+  r%   r2   s    r   rG   z@AbstractPickleModuleTests.test_pickler_bad_file.<locals>.F.write  s    !r   N)r<   r=   r>   r   rG   r%   r   r   ri  z:AbstractPickleModuleTests.test_pickler_bad_file.<locals>.F  s-          X  r   )r  r  rM  r  )r.   ri  s     r   test_pickler_bad_filez/AbstractPickleModuleTests.test_pickler_bad_file  s    	 	 	 	 	 	 	 	)T\1133777	 	 	 	 	 	 	 	 	+T\1133?????r   c                    t          d          }t          dd          D ]G}|                     t                    5   |||g j                   d d d            n# 1 swxY w Y   Ht          dt
          j        dz             D ]}g }|j        } ||||          }|                     d|           |                     t          |d                   d           |                     t
          j
                  5   ||           d d d            n# 1 swxY w Y    |||          }|                     ||           d S )Ns   foor   r   )r   r  r   r  )r   r6  r  r*  r   r   r,  r  r   r   rb  r   )	r.   r  r  r   r  r  r  r   r   s	            r   check_dumps_loads_oob_buffersz7AbstractPickleModuleTests.check_dumps_loads_oob_buffers  s    F##1a[[ 	1 	1E"":.. 1 1cE&(i1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1f59:: 	$ 	$EG%nO5u)8: : :DVT***U71:..777""6#9::  d              %g...CMM#s####	$ 	$s#   AA 	#A 	<DD	D	c                 F    |                      | j        | j                   d S r$   )r  r  r  r2   s    r   test_dumps_loads_oob_buffersz6AbstractPickleModuleTests.test_dumps_loads_oob_buffers  s"    **4:tzBBBBBr   c                 H      fd} fd}                      ||           d S )Nc                 p    t          j                    } j        | |fi | |                                S r$   )r6   rB   r  rD   )r   r   r  r.   s      r   r  zCAbstractPickleModuleTests.test_dump_load_oob_buffers.<locals>.dumps  s8    
ADIc1'''''::<<r   c                 H    t          j        |           } j        |fi |S r$   )r6   rB   rF  )r   r   r  r.   s      r   r  zCAbstractPickleModuleTests.test_dump_load_oob_buffers.<locals>.loads  s,    
4  A49Q))&)))r   )r  )r.   r  r  s   `  r   test_dump_load_oob_buffersz4AbstractPickleModuleTests.test_dump_load_oob_buffers  sS    	  	  	  	  	 
	* 	* 	* 	* 	* 	**5%88888r   N)r<   r=   r>   r?  rC  rH  rJ  rN  rQ  rS  r`  rx  r~  r  r  r  r%   r   r   r7  r7  e  s        % % %% % %* * *5 5 5% % %% % %Z Z Z
G 
G 
G? ? ?B@ @ @$ $ $0C C C9 9 9 9 9r   r7  c                        e Zd Zd Zd Zd ZdS )AbstractPersistentPicklerTestsc                     t          |t                    r(|dz  dk    r| xj        dz  c_        t          |          S |dk    r| xj        dz  c_        dS d S )Nr   r   r   test_false_valuerV  )r   r  id_countrx   false_count)r.   r>  s     r   r  z,AbstractPersistentPicklerTests.persistent_id$  sf    fc"" 	vzQMMQMMv;;)))!24r   c                 l    |s| xj         dz  c_         dS | xj        dz  c_        t          |          }|S )Nr   r  )load_false_count
load_countr  )r.   oidr>  s      r   persistent_loadz.AbstractPersistentPicklerTests.persistent_load.  sD     	!!Q&!!%%OOq OOXXFMr   c           	         t          t          d                    dgz   }t          D ]}d| _        d| _        d| _        d| _        |                     |                     | 	                    ||                    |           |                     | j        d           |                     | j        d           |                     | j        d           |                     | j        d           d S )Nrj  r  r   r   r   )
r   r6  r  r  r  r  r  r   r  r  )r.   Lr  s      r   test_persistencez/AbstractPersistentPicklerTests.test_persistence8  s    rOO122 		7 		7EDM D$%D!DOTZZ

1e(<(<==qAAAT]A...T-q111T_a000T2A6666		7 		7r   N)r<   r=   r>   r  r  r  r%   r   r   r  r    sA            7 7 7 7 7r   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )&AbstractIdentityPersistentPicklerTestsc                     |S r$   r%   )r.   r   s     r   r  z4AbstractIdentityPersistentPicklerTests.persistent_idH      
r   c                     |S r$   r%   )r.   pids     r   r  z6AbstractIdentityPersistentPicklerTests.persistent_loadK  r  r   c                     |                      |                     ||                    }|                     |t          |                     |                     ||           d S r$   )r  r  r-  r   r   )r.   r   r  r  s       r   _check_return_correct_typezAAbstractIdentityPersistentPicklerTests._check_return_correct_typeN  sY    JJtzz#u5566	ic333C(((((r   c                     t           D ]D}|dk    r|                     dd           ddddt          fD ]}|                     ||           Ed S )Nr   r   s   abc
zabc
r   g*\()r  r  rx   )r.   r  r   s      r   test_return_correct_typez?AbstractIdentityPersistentPicklerTests.test_return_correct_typeS  s|     	@ 	@Ezz//q9999$gr:sC @ @C33C????@	@ 	@r   c                     d}|                      t          j        | j        |d           t          j        |                    d          z   dz   }|                      t          j        | j        |           d S )Nu   ∅r   r  r)  )r  r   r  r  PERSIDr  rb  r  )r.   non_ascii_strr  s      r   test_protocol0_is_ascii_onlyzCAbstractIdentityPersistentPicklerTests.test_protocol0_is_ascii_only\  sh    '&.
M1MMM--"6"6w"?"??&H&0$*gFFFFFr   N)r<   r=   r>   r  r  r  r  r  r%   r   r   r  r  F  sg            ) ) )
@ @ @G G G G Gr   r  c                   X    e Zd ZdZdZd Zd Zd Zd Zd Z	ddd	Z
d
 Zd Zd Zd ZdS )#AbstractPicklerUnpicklerObjectTestsNc                     d S r$   r%   r2   s    r   r  z)AbstractPicklerUnpicklerObjectTests.setUph  rX  r   c                    g d}t           D ]9}t          j                    }|                     ||          }|                    |           |                                }|                    d           |                                 |                    |           |                                }|                                 |                    d           |                                 |                    |           |                                }| 	                    ||           | 
                    ||           ;d S )Nabcdefgr  ,   r   )r  r6   rB   pickler_classr  rD   r8   truncate
clear_memor  r   )r.   r   r  r  r  first_pickledsecond_pickledthird_pickleds           r   test_clear_pickler_memoz;AbstractPicklerUnpicklerObjectTests.test_clear_pickler_memol  s"    *)) 	; 	;E
A((E22GLLJJLLM FF1IIIJJLLLLLZZ\\N    FF1IIIJJLLLLLJJLLM~>>>]M::::/	; 	;r   c                    g d}t          j                    }|                     |          }|                    |           |                                }t          j                    }|                     |          }|j        |_        |                    |           |                                }|                     ||           d S Nr  )r6   rB   r  r  rD   memor  )r.   r   r  r  r  primedprimed_pickleds          r   test_priming_pickler_memoz=AbstractPicklerUnpicklerObjectTests.test_priming_pickler_memo  s    )))JLL$$Q''T

JLL##A&&lDM>:::::r   c                 &   g d}t          j                    }|                     |          }|                    |           |                                }t          j                    }|                     |          }|j        |_        |                    |           |                                }|                     t          j        |                    }|                                }|                     ||           |                     t          j        |                    }|j        |_        |                                }	|j        	                                 |                     |	|           | 
                    |	|u            d S r  )r6   rB   r  r  rD   r  unpickler_classrF  r   r  r  )
r.   r   r  r  r  r  r  	unpicklerunpickled_data1unpickled_data2s
             r   test_priming_unpickler_memoz?AbstractPicklerUnpicklerObjectTests.test_priming_unpickler_memo  sL   )))JLL$$Q''T

JLL##A&&lD((M)B)BCC	#..**$///%%bj&@&@AAn ++--$///?:;;;;;r   c                 D   g d}t          j                    }|                     |          }|                    |           |                                }g d}t          j                    }|                     |          }|                    |           |                                }t          j                    }|                    |           |                    d           |                     |          }|                     |	                                |           |                    d           |
                                 |                    |           |                    d           |                     |	                                |           d S )Nr  )r  r  r  r   )r6   rB   r  r  rD   rG   r8   r  r   rF  r  )r.   data1r  r  pickled1r  pickled2r  s           r   test_reusing_unpickler_objectszBAbstractPicklerUnpicklerObjectTests.test_reusing_unpickler_objects  sT   ***JLL$$Q''U::<<###JLL$$Q''U::<<JLL		q			((++	))5111	q				

		q			))511111r   Tr3   c          
         t           D ]m}|                     |          5  d t          d          D             dt          gz   } |            }|                     ||          }|                    |           |                                }d} |||z            }|                     |          }	t          |          D ]z}
|r|                                }| 	                    |	
                                |           |r8| 	                    |                                |t          |          z              {|                     t          |	j
                   d d d            n# 1 swxY w Y   od S )Nr{  c                 0    g | ]}|t          |          fS r%   rw   r  s     r   r  zSAbstractPicklerUnpicklerObjectTests._check_multiple_unpicklings.<locals>.<listcomp>  s"    :::!SVV:::r   i  s   abcder  r   )r  r  r6  r.  r  r  rD   r  r;   r   rF  r  r  )r.   ioclassr3   r  r  r  r  r  r  r  r  r  s               r   _check_multiple_unpicklingsz?AbstractPicklerUnpicklerObjectTests._check_multiple_unpicklings  s    	< 	<EE** < <::eDkk:::h_LGII,,Q,??U###**,,GGaK(( 0033	q G GA 'ffhh$$Y^^%5%5u=== G((3W3EFFF!!(IN;;;!< < < < < < < < < < < < < < <	< 	<s   D=E**E.	1E.	c                 D    |                      t          j                   d S r$   )r  r6   rB   r2   s    r   "test_multiple_unpicklings_seekablezFAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_seekable  s    ((44444r   c                 >    |                      t          d           d S NFr  )r  r*   r2   s    r   $test_multiple_unpicklings_unseekablezHAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_unseekable  s!    (((FFFFFr   c                 >    |                      t          d           d S r  )r  r@   r2   s    r   !test_multiple_unpicklings_minimalzEAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_minimal  s#     	((U(CCCCCr   c                    t          t          d                    }t          D ]}t          dd          D ]}t          j        t          j                    |          }|                     ||          }|                    |           |                    d           | 	                    |          }| 
                    |                                |           d S )Nrj  r      )buffer_sizer  r   )r   r6  r  r6   BufferedRandomrB   r  r  r8   r  r   rF  )r.   r   r  buf_sizer  r  r  s          r   "test_unpickling_buffering_readlinezFAbstractPicklerUnpicklerObjectTests.test_unpickling_buffering_readline  s     E"II 	9 	9E!!RLL 9 9%bjllIII,,Q,??T"""q			 0033	  !1!1488889	9 	9r   )r<   r=   r>   r  r  r  r  r  r  r  r  r  r  r  r  r%   r   r   r  r  c  s        MO$ $ $; ; ;@; ; ;$< < <<2 2 22 @D < < < < <(5 5 5G G GD D D
9 9 9 9 9r   r  reduce_Ac                       e Zd Zd ZdS )r  c                      t           t          ffS r$   )rx   r  r2   s    r   rr   zAAA.__reduce__  s    XKr   Nr  r%   r   r   r  r    s#                 r   r  c                       e Zd Zd Zd ZdS )BBBc                     d| _         d S )Nzsome attributer}   r2   s    r   rH   zBBB.__init__  s     "r   c                     d| _         d S )NBBB.__setstate__r  r  s     r   r  zBBB.__setstate__  s    #r   N)r<   r=   r>   rH   r  r%   r   r   r  r  
  s2        " " "
$ $ $ $ $r   r  c                     	 d| _         d S )Ncustom state_setterr  )r   r  s     r   setstate_bbbr    s     "CEEEr   c                       e Zd Z	 d ZdS )AbstractCustomPicklerClassc                     t          |dd           }|dk    r	t          dfS |dk    r	t          dfS |dk    rdS |dk    rt          d	          t          S )
Nr<   r  )r   MyClass)some strgFhThe reducer just failed)r   r  rx   r*  r   )r.   r   obj_names      r   reducer_overridez+AbstractCustomPicklerClass.reducer_override#  sl    3
D11s??:y  %%__ 5__ 6777r   N)r<   r=   r>   r  r%   r   r   r  r  !  s&        F    r   r  c                   4    e Zd Zd Zej        d             ZdS )AbstractHookTestsc                 |   d }d }d } G d d          }t          dt          j        dz             D ]}|                     |          5  t	          j                    }|                     ||          }|                    ||t          j	        g           t          j
        |                                          \  }}	}
|                     |d	           |                     |	d
           |                     |
t          j	                   |                     t          j                  5  |                    |           d d d            n# 1 swxY w Y   |                     t"          d          5  |                    |           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d S )Nc                      d S r$   r%   r%   r   r   r  z.AbstractHookTests.test_pickler_hook.<locals>.f?  rx  r   c                      d S r$   r%   r%   r   r   r  z.AbstractHookTests.test_pickler_hook.<locals>.gB  rx  r   c                      d S r$   r%   r%   r   r   r  z.AbstractHookTests.test_pickler_hook.<locals>.hE  rx  r   c                       e Zd ZdS )4AbstractHookTests.test_pickler_hook.<locals>.MyClassNrj   r%   r   r   r  r  H  r<  r   r  r   r   r{  r   r  r  )r6  r   r,  r  r6   rB   r  r  mathlogr  rD   r   r   r  r  assertRaisesRegexr*  )r.   r  r  r  r  r  bior  new_fsome_strmath_logs              r   test_pickler_hookz#AbstractHookTests.test_pickler_hook:  s   
	 	 		 	 		 	 		 	 	 	 	 	 	 	 1f59:: 	 	EE**  jll&&sE227DH-...,2L,H,H)x  ***  :666
 h111&&v';<<  FF1III               ++"$=? ?  FF1III              %              	 	s[   C!F/.EF/EF/EF/6FF/FF/F F//F3	6F3	c                    t          dt          j        dz             D ]}|                     |          5  d }t	          j        |          }t          j                    }|                     ||          }|	                    |           t          j
        |                                          }~~|                      |                       d d d            n# 1 swxY w Y   d S )Nr   r   r{  c                      d S r$   r%   r%   r   r   r  zEAbstractHookTests.test_reducer_override_no_reference_cycle.<locals>.fj  s    Dr   )r6  r   r,  r  rL  refr6   rB   r  r  r  rD   rS  )r.   r  r  wrr  r  r  s          r   (test_reducer_override_no_reference_cyclez:AbstractHookTests.test_reducer_override_no_reference_cycleb  s    1f59:: 	( 	(EE** ( (   [^^jll&&sE22q			S\\^^44 !!""$$'''( ( ( ( ( ( ( ( ( ( ( ( ( ( (	( 	(s   BCC!	$C!	N)r<   r=   r>   r  r   cpython_onlyr  r%   r   r   r  r  9  sC        & & &P ( ( ( ( (r   r  c                   &    e Zd Zd Zd Zd Zd ZdS )AbstractDispatchTableTestsc                    t          j                    }|                     |d          }|                     t                    5  |j         d d d            n# 1 swxY w Y   |                     t          |d                     d S )Nr   dispatch_table)r6   rB   r  r  ry  r  rX  r   )r.   r  r  s      r   test_default_dispatch_tablez6AbstractDispatchTableTests.test_default_dispatch_table}  s    JLLq!$$~.. 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	$45566666s   AAAc                                                         G fdd j                  d fd	}                     |           d S )Nc                       e Zd Z ZdS )GAbstractDispatchTableTests.test_class_dispatch_table.<locals>.MyPicklerN)r<   r=   r>   r  )dts   r   	MyPicklerr    s        NNNr   r	  c                     t          j                    } ||          }                    |j                   |                    |            |                                S r$   )r6   rB   r   r  r  rD   )r   r   r  r  r	  r  r.   s       r   r  zCAbstractDispatchTableTests.test_class_dispatch_table.<locals>.dumps  sU    
A	!X&&AQ-r222FF3KKK::<<r   r$   )get_dispatch_tabler  _test_dispatch_table)r.   r  r	  r  s   ` @@r   test_class_dispatch_tablez4AbstractDispatchTableTests.test_class_dispatch_table  s    $$&&	  	  	  	  	  	  	 * 	  	  	 	  	  	  	  	  	  	  	  	!!%,,,,,r   c                 l                                       d fd	}                     |           d S )Nc                     t          j                    }                    ||          }|_                            |j                   |                    |            |                                S r$   )r6   rB   r  r  r   r  rD   )r   r   r  r  r  r.   s       r   r  zFAbstractDispatchTableTests.test_instance_dispatch_table.<locals>.dumps  sa    
A""1h//A!AQ-r222FF3KKK::<<r   r$   )r  r  )r.   r  r  s   ` @r   test_instance_dispatch_tablez7AbstractDispatchTableTests.test_instance_dispatch_table  sV    $$&&	  	  	  	  	  	  	  	!!%,,,,,r   c                    fd}d }d}|                       ||          |           |                       ||          |           dfd}||t          <   |                       ||                     |                       ||          |           t                      }t                      }|                       ||          t                     |                      ||          t                     |                       ||          t                     |                      ||          t                     ||t          <   |                       ||          t                     |                       ||                     |                       ||          t                     |                      ||          t                     dfd}	|	|t          <   |t          = |                       ||                     |                      ||          t                     |                       ||          t                     |                      ||          t                     |                       ||          j        d           d	 }
|
|t          <   |                       ||          j        d
           d S )Nc                 @    t          j         | d                    S Nr   )r   r  )r   r  s    r   custom_load_dumpzIAbstractDispatchTableTests._test_dispatch_table.<locals>.custom_load_dump  s    <c1...r   c                 P    t          j        t          j        | d                    S r  )r   r  r  r  s    r   default_load_dumpzJAbstractDispatchTableTests._test_dispatch_table.<locals>.default_load_dump  s    <S! 4 4555r   y      ?       @reduce_1c                     t           ffS r$   rw   )r   REDUCE_1s    r   r  zAAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_1      ##r   reduce_2c                     t           ffS r$   rw   )r   REDUCE_2s    r   r  zAAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_2  r  r   r  c                 0    t           d| j        d d t          fS rf   )r  rZ   r  r  s    r   
reduce_bbbzCAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_bbb  s    CL$lBBr   r  )r   complexr  r  r  r-  r}   )r.   r  r  r  r  r  r  r}   r~   r  r  r  r  s    `         @@r   r  z/AbstractDispatchTableTests._test_dispatch_table  sD   	/ 	/ 	/ 	/ 	/	6 	6 	6
 ))!,,a000**1--q111 	$ 	$ 	$ 	$ 	$"*w))!,,h777**1--q111 EEEE))!,,h777..q113777**1--x888//22C888 's))!,,h777))!,,h777**1--x888//22C888 	$ 	$ 	$ 	$ 	$&s3))!,,h777..q113777**1--x888//22C888 	**1--/1CDDD	C 	C 	C )s 	))!,,.0EFFFFFr   N)r<   r=   r>   r  r  r  r  r%   r   r   r  r  {  sZ        7 7 7- - - - - -@G @G @G @G @Gr   r  r#  zDATA{0} = (r  z	    {0!r}r   z# Disassembly of DATA{0}zDATA{0}_DIS = """\z""")r  r  rN   r  r6   r  r  r  r   r   r   rN  r  r  r  r  rL  textwrapr   http.cookiesr   r   r  testr   test.supportr   r   r   r	   r
   r   r   test.support.import_helperr   test.support.os_helperr   r   test.support.warnings_helperr   r   numpyr  
skipUnlessr  r  r6  r,  r  r   r"   r(   rB   r*   r>  r@   rK   rX   r_   rd   ri   rm   rs   r=   r  ru   rz   r   r   r   r   r   r   r   rs  r   r   r  r&  r  r'  r  	DATA2_DISr  	DATA3_DISr  	DATA4_DISr3  r5  r7  r  ArithmeticErrorr%  ry  r  BufferErrorBytesWarningDeprecationWarningr  EnvironmentErrorr;  FloatingPointErrorFutureWarningGeneratorExitIOErrorImportWarningIndentationError
IndexErrorKeyErrorKeyboardInterruptLookupErrorMemoryError	NameErrorr,   r  rc  PendingDeprecationWarningReferenceErrorr  RuntimeWarningStopIterationSyntaxErrorSyntaxWarningSystemError
SystemExitTabErrorr  UnboundLocalErrorUnicodeErrorUnicodeWarningUserWarningr*  Warningr  r9  r:  r<  r   r   r  r  r  r  r  r  r  r@  r^  r  rK  floatr  r   r  rx   r  r  rC  r  r   r8  r   rW  r4  r  r  r  rD  r#  rQ  r  rT  r  r  r  r7  r  r  r  r  r  r  r  r  r  r  r<   r$  r'   r  r  r  r  r   r.  jr~   r%   r   r   <module>rN     sG         



 				     				         



              % % % % % %   KKK       " " " " " "                . - - - - - ) ) ) ) ) ) ) ) ) ) ) ) F F F F F F      
	&	&	(	(                   	BBB #x"3;#6#MO O E&)A-..	      & & & & &2: & & &	% 	% 	% 	% 	% 	% 	% 	%,: : : : : : : :*/ / / / / / / /              
	 	 	 	 	 	 	 	                


    C       a   	 	 	 	 	 	 	 		 	 	 	 	Fi 	 	 	 	8 8 8 8 8 8 8 8           E      8         	      8 G( G( G( G( G( G( G( G(\ (P	f%  >	B	 7	t	
 7	t. @	F Q TQ L	.#.#.# .# 	.#
 .# .# .# .# .# .# .# .# .# .# .#  !.#" #.#$ %.#& '.#( ).#* +.#, -.#. /.#0 1.#2 3.#4 5.#6 7.#8 9.#: ;.#< =.#@ A.#B C.#D E.#F G.#H I.#J K.#L M.#N O.#P Q.#R S.#T U.#V W.#X Y.#Z [.# .# ` < ,

  *b	! b	! b	! b	! b	! b	! b	! b	!Lj0 j0 j0 j0 j0 j0 j0 j0Z5| | | | | | | |B    f       f   @ @ @ @ @ @ @ @1 1 1 1 1v 1 1 1' ' ' ' 'v ' ' '< < < < <f < < <D D D D D D D D* * * * * * * *     C       e              C              e       T       T       C   # # # # #) # # # GIffe[:	
    3       L       v   K K K K K3 K K K! ! ! ! !L ! ! !, , , , ,l , , ,       
v9 v9 v9 v9 v9 v9 v9 v9r%7 %7 %7 %7 %7 %7 %7 %7PG G G G G G G G:\9 \9 \9 \9 \9 \9 \9 \9B          &      $ $ $ $ $& $ $ $	" 	" 	"       0?( ?( ?( ?( ?( ?( ?( ?(DhG hG hG hG hG hG hG hGV zAU6*1,--  FLAm""1%%&&&q##a&&"%% 	) 	)Aa!B$i  AE+$$Q''((((c


(//22333&--a00111Ah!  sH   A A! A!
C )B:.C :B>>C B>C CC