
    /jY                        U d dl Zd dlZd dlmZ d dlmZmZ d dlm	Z	 d dl
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z5 d dl6Z6d d	l7m8Z8m9Z9m:Z: g d
Z; e<            a=e<e	e>e	e?f         z           e@d<   deAe	e>e	e?f         z           fdZBdeAe	e>e	e?f         z           fdZCd ZDdeAe	e>e	e?f         z           fdZE G d d          ZFd ZGd ZH ejI        d          d             ZJde	de>e?e?f         fdZKde<e?         fdZL G d d          ZMddd e?fd!ZNdS )"    N)encode)CounterOrderedDict)Callable)%APPENDAPPENDSBINFLOATBINGETBININTBININT1BININT2	BINPERSIDBINPUT
BINUNICODEBUILDbytes_typesdecode_long
EMPTY_DICT
EMPTY_LIST	EMPTY_SETEMPTY_TUPLEGLOBALLONG1LONG_BINGETLONG_BINPUTMARKNEWFALSENEWOBJNEWTRUENONEPROTOREDUCESETITEMSETITEMSSHORT_BINSTRINGSTOPTUPLETUPLE1TUPLE2TUPLE3UnpicklingError)unpack)maxsize)Any)_sparse_tensors_to_validateIMPORT_MAPPINGNAME_MAPPING)sysosposixnt_marked_safe_globals_setsafe_globalsc                 T    t                               t          |                     a d S N)r6   unionsetr7   s    b/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/torch/_weights_only_unpickler.py_add_safe_globalsr>   Z   s$    7==c,>O>OPP    returnc                  *    t          t                    S r9   )listr6    r?   r=   _get_safe_globalsrD   _   s    ()))r?   c                  "    t                      ad S r9   )r;   r6   rC   r?   r=   _clear_safe_globalsrF   d   s    "uur?   globals_to_removec                 4    t           t          |           z
  a d S r9   )r6   r;   )rG   s    r=   _remove_safe_globalsrI   i   s      8#>O:P:PPr?   c                   H    e Zd Zdeeeeef         z           fdZd Zd Z	dS )_safe_globalsr7   c                     || _         d S r9   r<   )selfr7   s     r=   __init__z_safe_globals.__init__q   s    (r?   c                 .    t          | j                   d S r9   )r>   r7   )rM   s    r=   	__enter__z_safe_globals.__enter__t   s    $+,,,,,r?   c                 .    t          | j                   d S r9   )rI   r7   )rM   typevaluetbs       r=   __exit__z_safe_globals.__exit__w   s    T./////r?   N)
__name__
__module____qualname__rB   r   tuplestrrN   rP   rU   rC   r?   r=   rK   rK   p   s`        )T(U8S=5I*I%J ) ) ) )- - -0 0 0 0 0r?   rK   c                  t   i } t           D ]}t          |t                    r~t          |          dk    rt	          dt          |                     t          |d                   t          ur%t          dt          |d                              |\  }}|| |<   |j        |j	        }}|| | d| <   | S )N   zYExpected tuple of length 2 (global, str of callable full path), but got tuple of length:    zHExpected second item in tuple to be str of callable full path, but got: .)
r6   
isinstancerY   len
ValueErrorrR   rZ   	TypeErrorrW   rX   )rcfnamemodules       r=   _get_user_allowed_globalsrg      s    B% ' 'a 	'1vv{{ xpstupvpvxx   AaDzz$$k_cdefgdh_i_ikk   GAtBtHH<DF%&B&!!4!!""Ir?   c                     t           j        j        t           j        j        t           j        j        t           j        j        t           j        j        t           j        j        t           j        j        t           j        j	        t           j        j
        t           j        j        t           j        j        t           j        j        hS r9   )torch_utils_rebuild_parameter_rebuild_parameter_with_state_rebuild_qtensor_rebuild_tensor_rebuild_tensor_v2_rebuild_tensor_v3_rebuild_sparse_tensor_rebuild_meta_tensor_no_storage_rebuild_nested_tensor_rebuild_wrapper_subclass!_rebuild_device_tensor_from_numpy&_rebuild_device_tensor_from_cpu_tensorrC   r?   r=   _tensor_rebuild_functionsrw      sp    '2%$''+4+. 	6 	;# r?   r]   c                     t           t          t          j        j        t          j        j        t          j        t          j        t          j	        t          t          t          t          d} t          j                                        D ]}|| t!          |          <   t          j                                        D ]}|| t!          |          <   d t%          dd          D             D ]}|| t!          |          <   d t%          dd          D             D ]}|| t!          |          <   t          j        D ]}|| |j         d|j         <   t          j        D ]q}|t          j        j        t          j        j        fvr7t          j                            |j                  | |j         d|j         <   ]|| |j         d|j         <   rt          j        t          j        t          j        t          j        t          j        fD ]}|| t!          |          <   t?                      D ]}|| d|j         <   t          j         j!        | d<   | S )	N)zcollections.OrderedDictzcollections.Counterztorch.nn.parameter.Parameterztorch.serialization._get_layoutz
torch.Sizeztorch.Tensorztorch.devicez_codecs.encodezbuiltins.bytearrayzbuiltins.setzbuiltins.complexc                 >    g | ]}t          t          d |           S )uintgetattrri   .0xs     r=   
<listcomp>z(_get_allowed_globals.<locals>.<listcomp>   s(    >>>QgeZAZZ((>>>r?   r]      c                 >    g | ]}t          t          d |           S )intr{   r}   s     r=   r   z(_get_allowed_globals.<locals>.<listcomp>   s(    ===AgeY1YY''===r?   r^   ztorch._utils.z#torch._tensor._rebuild_from_type_v2)"r   r   ri   nn	Parameterserialization_get_layoutSizeTensordevicer   	bytearrayr;   complexstorage_dtype_to_storage_type_maprZ   _new_dtypesrange_tensor_classesrW   rV   _storage_classesTypedStorageUntypedStorageStorageTypeper_tensor_affineper_tensor_symmetricper_channel_affineper_channel_symmetric per_channel_affine_float_qparamsrw   _tensor_rebuild_from_type_v2)rc   ttttsqtrd   s         r=   _get_allowed_globalsr      sK    $/&(-(:+0+>+Jj '# B ]5577  3q66

]&&((  3q66

>>%1++>>>  3q66

==q!===  3q66

 # 2 2/1bm++bk++,,$ 6 6em0%-2NOOO383F3R3R4 4B"-//"+//00 46B"-//"+//00 	" #.   3r77&(( - -+,'1:''(( 160SB,-Ir?   readlinec                     |             d d                              d          } |             d d                              d          }||ft          v rt          ||f         \  }}n|t          v rt          |         }||fS )Nutf-8)decoder1   r0   )r   rf   re   s      r=   _read_global_instructionr      s    XZZ_##G,,F8::crc?!!'**D 	~%%#VTN3	>	!	!'4<r?   c                    t                      }| j        }| j        }i t          d         dt          d         dt
          d         dt          d         dt          d         dt          d         dt          d         dt          d         dt          d         dt          d         dt          d         dt          d         dt          d         dt           d         dt"          d         dt$          d         dt&          d         dt(          d         dt*          d         dt,          d         dt.          d         dt0          d         dt2          d         dt4          d         dt6          d         dt8          d         dt:          d         dt<          d         di}	  |d          }|st>          tA          |tB                    s$tE          dtG          |          j$                   |d         tJ          d         k    r.tM          |          \  }}|'                    | d|            n|d         |v r||d                  }|r ||           n|d         tP          d         k    rEtS          d	 |d                    d         }	|	tT          k    rtW          d
           ||	           n|d         tX          d         tZ          d         hv r |d          d         }	 ||	           nZ|d         t\          d         k    r |d          d          n1|d         t^          d         k    r|S tW          d|d                    )Nr      r]   r\   r   TExpected bytes, got r^   <IString is too longUnsupported operand )0r;   readr   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   EOFErrorr_   r   AssertionErrorrR   rV   r   r   addr   r,   r-   r+   r%   r   r!   r&   )
fileglobals_in_checkpointr   r   op_to_bytes_to_readkeyrf   re   bytes_to_readstrlens
             r=   get_globals_in_pklr      se   EE9D}Hq	1q	1 	a! 	q	1	
 	
A 	
A 	Q 	Q 	a! 	q	1 	q	1 	q	1 	Q 	Q 	
A  	A!" 	1q#$ 	1q!a!aq	1
A
AQq	1Aq	1A9 <Cd1gg 	N#{++ 	N !LS		8J!L!LMMMq6VAY3H==LFD!%%&8&8$&8&89999V***/A7M $]###Vz!}$$D$$q''**1-F%&:;;;DLLLLV*E!H555T!WWQZFDLLLLVuQxDGGAJJJVtAw((!"AQ"A"ABBB9Cr?   c                   >    e Zd ZdddefdZd Zd ZdefdZd	 Zd
S )	Unpicklerbytesencodingr   c                `    || _         |j        | _        |j        | _        i | _        d| _        d S )Nr   )r   r   r   memoproto)rM   r   r   s      r=   rN   zUnpickler.__init__4  s-     I	$&	


r?   c           	         g | _         g | _        | j        j        | _        | j        }	  |d          }|st          t          |t                    s$t          dt          |          j	                   |d         t          d         k    rTt          | j                  \  }}| d| }|t          v rt          d| d| d          |t                      v r)|                     t                      |                    n|t!                      v r)|                     t!                      |                    n|d	v rt          d
          |dv rt          d          d}||v r`||dt#          |                   k    rE|t#          |          d         }t#          |          dk    r|d         dk    r
|dd         n||z   }t          d| d| d| d          |d         t$          d         k    r| j                                        }| j                                        }|t(          j        j        u r(|                     t)          j        j        |            nn|t!                                                      v s"|t                                                      v rP |j        |g|R  }	|t(          j        v rd|j        v rt7          j        |	           |                     |	           nt          d|           |d         t8          d         k    r| j                                        }| j        d         }
|
t                                                      vrS|
t!                                                      vr1d|
 }t;          |
d          r|d|
j         z  }t          |           |
| }	|
t(          j        v rd|
j        v rt7          j        |	           |	| j        d<   n|d         t>          d         k    r| j                                        }| j        d         }t          |          t(          j         u r |j!        |  nut          |          t(          j        j        u r|"                    |           n>t          |          tF          u r|j$        %                    |           nt          |          t!                                                      v s/t          |          t                                                      v rt;          |d          r|"                    |           
nd}t          |tL                    rt#          |          dk    r|\  }}|r|j$        %                    |           |r+|'                                D ]\  }}tQ          |||           
nt          dt          |                     |d         tR          d         k    rr| j                                        }| j        d         }t          |          tT          urt          dt          |                     |                    |           	ne|d         tV          d         k    rm| ,                                }| j        d         }t          |          tT          urt          dt          |                     |-                    |           n|d         t\          d         k    rY| j                                        | j                                        }}| /                    d           || j        d         |<   nq|d         t`          d         k    rk| ,                                }| /                    d           tc          dt#          |          d          D ]!}||dz            | j        d         ||         <   "n|d         td          d         k    r9| j                             | j                   g | _        | j        j        | _        n|d         tf          d         k    r8| ,                                }|                     tM          |                     nP|d         th          d         k    r| j        d         f| j        d<   n!|d         tj          d         k    r'| j        d          | j        d         fg| j        d d<   n|d         tl          d         k    r3| j        d!         | j        d          | j        d         fg| j        d!d<   n|d         tn          d         k    r|                     d           nk|d         tp          d         k    r|                     d"           n=|d         tr          d         k    r|                     d           n|d         tt          d         k    r|                     d#           n|d         tv          d         k    r|                     g            n|d         tx          d         k    r|                     i            n|d         tz          d         k    r#|                     t}                                 nK|d         t~          d         k    r4|                     t          d$ |d%                    d                    n |d         t          d         k    r0|                     |                     d          d                    n|d         t          d         k    r4|                     t          d& |d                    d                    nn|d         t          d         k    r>|                     t          d'|                     d(                    d                    n|d         t          d         k    rjt          d) |d%                    d         }|t          k    rt          d*          t           ||          d+d,          }|                     |           n|d         t          d         k    rY |d          d         } ||          }| jH        d-k    r|I                    | jH        d.          }|                     |           n(|d         t          d         k    r| j                                        }t          |          tL          ur5t          |          t          urt          d/t          |                     t          |          tL          u rat#          |          dk    rNt(          jL        M                    |d                   d0k    r%t          d1t          |d                              |                     | N                    |                     n|d         t          d         t          d         fv rc|d         t          d         k    r |d          nt          d) |d%                    d         }|                     | jQ        |                    n|d         t          d         t          d         fv rl|d         t          d         k    r |d          nt          d) |d%                    d         }|dk     rt          d2          | j        d         | jQ        |<   n|d         t          d         k    r? |d          d         } ||          }|                     t          |                     n|d         t          d         k    rA |d          d         | _X        | jX        dk    rt          jZ        d3| jX         d4d5           nJ|d         t          d         k    r| j                                        }|S t          d6|d                    )7zRead a pickled object representation from the open file.

        Return the reconstituted object hierarchy specified in the file.
        Tr]   r   r   r^   z"Trying to load unsupported GLOBAL z whose module z is blocked.)z1torch.nested._internal.nested_tensor.NestedTensorz1torch.nested._internal.nested_tensor._rebuild_njtz"torch._dynamo.decorators._DimRangez\``torch.nested`` and ``torch._dynamo`` must be imported to load nested jagged tensors (NJTs))z(torch.distributed.device_mesh.DeviceMeshz2torch.distributed.tensor._dtensor_spec.DTensorSpecz1torch.distributed.tensor._dtensor_spec.TensorMetaz torch.distributed.tensor.DTensorz0torch.distributed.tensor.placement_types.Partialz2torch.distributed.tensor.placement_types.Replicatez.torch.distributed.tensor.placement_types.Shardz>``torch.distributed.tensor`` must be imported to load DTensorsbuiltinsNzUnsupported global: GLOBAL zY was not an allowed global by default. Please use `torch.serialization.add_safe_globals([z.])` or the `torch.serialization.safe_globals([zN])` context manager to allowlist this global if you trust this class/function.sparsezbCan only create new object for nn.Parameter or classes allowlisted via `add_safe_globals` but got r   z0Trying to call reduce for unrecognized function __self__z which belongs to __setstate__r\   zcCan only build Tensor, Parameter, OrderedDict or types allowlisted via `add_safe_globals`, but got z"Can only append to lists, but got zCan only extend lists, but got r#   r$   FrC   z<ir   z<Hz>dr   r   r   r   surrogatepassr   strictz1persistent_load id must be tuple or int, but got r   z4Only persistent_load of storage is allowed, but got znegative argumentzDetected pickle protocol z in the checkpoint, which was not the default pickle protocol used by `torch.load` (2). The weights_only Unpickler might not support all instructions implemented by this protocol, please file an issue for adding support if you encounter this.)
stacklevelr   )\	metastackstackappendr   r   r_   r   r   rR   rV   r   r   r   _blocklisted_modulesr+   r   rg   r`   r   popri   r   r   values__new__r   rW   r/   r"   hasattrr   r   r   set_r   r   __dict__updaterY   itemssetattrr   rB   r   pop_markextendr#   _check_set_item_targetr$   r   r   r'   r(   r)   r*   r    r   r   r   r   r   r   r;   r   r,   r   r   r	   r   r-   rZ   r%   r   r   r   r   r   _maybe_decode_asciipersistent_loadr
   r   r   r   r   ra   r   r   r!   r   warningswarnr&   )rM   r   r   rf   re   	full_pathbuiltins_nameargsclsresultfunc	error_msgstateinst	slotstatekvitemlist_objr   ir   strvalstrdatapididxndatarc   s                                r=   loadzUnpickler.load;  s   
  "
j'yu	G$q''C c;// R$%PDII<N%P%PQQQ1v""7FF%....	111)jYjjV\jjj    4 6 666KK 4 6 6y ABBBB";"="===KK 9 ; ;I FGGGG  *v   
 
 *X   %/M%22)Y7K]9K9K7K-LLL$-c-.@.@.B.B$C	  #9~~11ilc6I6I &abbMM!.!: "
 *<i < <MV< <>G< < <   Q6!9$$z~~''jnn&&%(,,,KK 2D 9::::466==????244;;====(S[4t444Fe333CN8R8R3:6BBBKK'''')@:=@ @   Q6!9$$z~~''z"~ 4 6 6 = = ? ???$=$?$?$F$F$H$HHH R4QQ  tZ00 J!%I$-%I%II	))444t5000X5P5P/6v>>>!'
2Q58##
((z"~::-- DIu%%%$ZZ58#555%%e,,,,$ZZ;..M((////JJ";"="="D"D"F"FFFDzz%9%;%;%B%B%D%DDDt^44 4))%0000 %)	%eU33 5E

a/4,E9  8 M00777$ 4(1(9(9 4 41 'a 3 3 3 3)H;?::H H  
 Q6!9$$z~~'':b>>>--)MT(^^MM   %%%%Q71:%%:b>>>--)J$x..JJ   &&&&Q71:%%*..**DJNN,<,<A++I666$%
2q!!Q8A;&&++J777q#e**a00 < <A/4QU|DJrN58,,<Q47""%%dj111
"j/Q58##E%LL))))Q6!9$$"&*R.!2
2Q6!9$$$(JrNDJrN#C"D
233Q6!9$$$(JrNDJrNDJrN#S"T
233Q47""D!!!!Q8A;&&E""""Q71:%%D!!!!Q;q>))BQ:a=((BQ:a=((BQ9Q<''CEE""""Q6!9$$F4a11!45555Q71:%%DIIaLLO,,,,Q71:%%F4a11!45555Q8A;&&F4166q9::::Q:a=((dd1gg..q1G##)*>???TT&\\7ODDF####Q?1---a$v,,=G++%nnT]HEEGG$$$$Q9Q<''jnn&&99E))d3iis.B.B)WDQTIIWW   II&&C1+??AGG9TT)]tTWXYTZ||]]   D00556666QF1I{1~666"%a&F1I"5"5ttAwww6$Q;P;PRSTDIcN++++QF1I{1~666 #A&) 3 3TT!WWWdd1gg9N9NPQRq55$%8999#z"~	!Q58##DGGAJtAwwK--....Q58##!T!WWQZ
:??MYDJ Y Y Y $%    Q47""Z^^%%	%&ESV&E&EFFFku	Gr?   c                 r    | j         }| j                                        | _         | j         j        | _        |S r9   )r   r   r   r   )rM   r   s     r=   r   zUnpickler.pop_mark<  s/    
^''))
j'r?   opcodec           	          t          | j        d                   t          t          t          fvr-t          d| dt          | j        d                              d S )Nr   z	Can only zA for dict, collections.OrderedDict, collections.Counter, but got )rR   r   dictr   r   r+   )rM   r   s     r=   r   z Unpickler._check_set_item_targetB  sn    
2k7'CCC!GF G G04TZ^0D0DG G   DCr?   c                      t          d          )Nz%unsupported persistent id encountered)r+   )rM   r   s     r=   r   zUnpickler.persistent_loadI  s    EFFFr?   N)	rV   rW   rX   rZ   rN   r   r   r   r   rC   r?   r=   r   r   3  s        07   #    ~G ~G ~GB  S    G G G G Gr?   r   ASCIIr   r   c                H    t          | |                                          S )Nr   )r   r   )r   r   s     r=   r   r   M  s!    TH---22444r?   )O	functools
_functoolsr   _codecsr   collectionsr   r   collections.abcr   pickler   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+   structr,   r2   r-   typingr.   ri   torch._utilsr/   r0   r1   r   r;   r6   rY   rZ   __annotations__rB   r>   rD   rF   rI   rK   rg   rw   	lru_cacher   r   r   r   r   rC   r?   r=   <module>r     sT  2             , , , , , , , , $ $ $ $ $ $& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &N                    R R R R R R R R R R
    BE #hx})==> F F FQDE(C-4H)H$I Q Q Q Q
*453+? ?@ * * * *
% % %
QHuXs]';;<Q Q Q Q0 0 0 0 0 0 0 0$  (  . a   5 5 ! 5p	x 	E#s(O 	 	 	 	>CC >C >C >C >CBWG WG WG WG WG WG WG WGt #* 5 5 5C 5 5 5 5 5 5r?   