
އGTc           @   s   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 m	 Z	 e  j
 Z
 d Z e j   Z d e f d     YZ d   Z d e f d     YZ d S(	   iN(   t   loadst   dumpsi   t   ScriptErrorc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyR   -   s   c            s&   g       f d     |     S(   Nc            s2   x+ |  D]# }   j  |   | j    q Wd  S(   N(   t   appendt   get_children(   t
   block_listt   i(   t	   all_stmtst
   extend_all(    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyR
   ;   s    (    (   t   stmts(    (   R	   R
   s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyt   collapse_stmts3   s    
t   Scriptc           B   s   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z e	 d d  Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C   s   |  t  j _ t j j t  j j d  rM t t  j j d d  j	   |  _
 n	 d  |  _
 i  |  _ g  |  _ g  |  _ g  |  _ t |  _ i  |  _ i  |  _ t |  _ t  j j   |  _ |  j   |  j   |  j j   d |  _ d  S(   Ns	   /lock.txtt   rbi    (   t   renpyt   gamet   scriptt   ost   patht   existst   configt
   renpy_baset   filet   readt   keyt   Nonet   namemapR	   t
   all_pycodet   need_analysist   Truet   record_pycodet   bytecode_oldcachet   bytecode_newcachet   Falset   bytecode_dirtyt   translationt   ScriptTranslatort
   translatort   init_bytecodet   scan_script_filest   chain_translatest   serial(   t   self(    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyt   __init__\   s"    %									

c         C   s  t  j j   } g  |  _ g  |  _ x | D] \ } } | j d  rk | d  k rU q( n  | d  } |  j } n | j d  r | d  } |  j } n_ | j d  r | d  k r q( n  | d  } |  j } n( | j d  r( | d  } |  j } n q( | | f | k r( | j | | f  q( q( Wd  S(   Ns   .rpyis   .rpycis   .rpyms   .rpymci(   R   t   loadert   listdirfilest   script_filest   module_filest   endswithR   R   (   R+   t   dirlistt   dirt   fnt   target(    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyR(      s.    		



c         C   s   |  j  } | j   g  } x- | D]% \ } } |  j d d | | |  q  Wg  t |  D]! \ } \ } } | | | f ^ qV } | j   g  | D] \ } } } | | f ^ q |  _ d  S(   Ns   .rpycs   .rpy(   R/   t   sortt   load_appropriate_filet	   enumeratet   initcode(   R+   R/   R9   R4   R3   t   indext   priot   code(    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyt   load_script   s    	
1
c         C   s   g  |  j  D]$ \ } } | | k r
 | | f ^ q
 } | sM t d |   n  t |  d k rr t d |   n  | d \ } } g  } |  j d d | | |  t j j   r t d   n  |  j j	   | S(   Ns   Module %s could not be loaded.i   s-   Module %s ambiguous, multiple variants exist.i    s   .rpymcs   .rpymi(
   R0   t	   Exceptiont   lenR7   R   t   parsert   report_parse_errorst
   SystemExitR&   R)   (   R+   t   nameR4   R3   t   filesR9   (    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyt   load_module   s    4c         C   si   t  |  } t t j    } xD | D]< } | j d  k r% | | |  j f | _ |  j d 7_ q% q% Wd  S(   Ni   (   R   t   intt   timeRC   R   R*   (   R+   R   R4   R	   t   versiont   s(    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyt   assign_names   s    c         C   s   t  |  } t  |  } g  | D] } | j   ^ q } g  | D] } | j   ^ q> } t j d  | |  } xn | j   D]` \ } } }	 xN t |	  D]@ } | | | }
 | | | } | j d  k r |
 j | _ q q Wqx Wd  S(   N(   R   t	   diff_infot   difflibt   SequenceMatcherR   t   get_matching_blockst   rangeRC   (   R+   t	   old_stmtst	   new_stmtsR   t   old_infot   new_infot   smt   oldlt   newlt   countt   oldt   new(    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyt   merge_names   s    c         C   sZ   t  j j | |  } | d  k r% d S|  j | |  g  } |  j | | t  } | | f S(   N(   NN(   R   R@   t   parseR   RJ   t   finish_loadR"   (   R+   t   filenamet   filedataR   R9   (    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyt   load_string   s    c         C   s  | s
 d  St  j j |  t |  } |  j j |  t  j j | d   | d  k	 r t  j	 j
 |  } | d j j   | j   k r | d 7} x | D] } | | _ q Wq n  | rbd  } d  } d  }	 xT | D]L }
 |
 j } | |  j k r t | t  s| } |
 } |  j | }	 qq q W| d  k	 rbt d t |  |	 j |	 j | j | j f   qbn  xF | D]> }
 |
 j } |
 |  j | <|
 j   } | ri| j |  qiqiW|  j   x | D] }
 |
 j   qW|  j d  k	 r|  j j |  n  |  j j |  | S(   Ni    t   cs-   Name %s is defined twice, at %s:%d and %s:%d.(   R   R$   t   restructureR   R&   t   take_translatest   astt   chain_blockR   R@   t   elide_filenameR]   t   lowerRC   R   t
   isinstancet
   basestringR   t   reprt
   linenumbert   get_initR   t   update_bytecodet   early_executeR	   t   extendR   (   R+   R   R9   t   check_namesR]   R	   R   t   bad_namet   bad_nodet   old_nodet   nodeRC   t   init(    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyR\     sR    
			
c   
      C   sP  | j  d  s | j  d  r| s7 t d |   n  | d | } t j j |  } i  } t | d <|  j ps d | d <| d  k r | g  f SzM y? t |  _	 |  j
 | | d  \ } } |  j | |  ~ ~ Wn n XWd  t |  _	 X|  j | |  y t j t | d	  j    j   } t | d | d d
  }	 |	 j t | | f d  j d   |	 j |  |	 j   WqFqFXn | j  d  s| j  d  rBt j j |  }	 y% t |	 j   j d   \ } } Wn d SXt | t  sd S|  j r!| j d d  |  j k r!d S| d t k r5d S|	 j   n d S| | f S(   Ns   .rpys   .rpyms4   Cannot load rpy/rpym file %s from inside an archive.t   /RH   t   unlockedR   R`   t   rUt   wbi   t   zlibs   .rpycs   .rpymc(   NN(   NN(   NN(   NN(   NN(   R1   R>   R   R@   R[   t   script_versionR   R   R"   R   t	   load_fileRZ   R   RJ   t   md5R   R   t   digestt   writeR   t   encodet   closeR-   t   loadR    t   decodeRg   t   dictt   get(
   R+   R3   R4   t   fullfnR   t   datat   old_dataRP   t	   rpydigestt   f(    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyR{   m  sX    

 	
$%%$c         C   s  | d  k ra | | } | | } |  j | | |  \ } }	 | d  k r@t d | f   q@n| d | | } | d | | }
 t j j |  t j j |  rt j j |
  r| } t	 j	 t
 | d  j    j   } d \ } }	 y t
 |
 d  } | j t	 j d  | j t	 j  } | j   | | k rt j j j d k p^t j j j r|  j | | |  \ } }	 | d  k rd |
 GHqn  Wn n X| d  k r@|  j | | |  \ } }	 q@nn t j j |
  r	|
 } |  j | | |  \ } }	 n7 t j j |  r@| } |  j | | |  \ } }	 n  | d  k r_t d |   n  |  j d  k r~| d	 |  _ n& |  j | d	 k rt | d
   n  |  j |	 | d | d  S(   Ns   Could not load from archive %s.Ru   Rw   R   i   t   compiles   Could not load s   Could not load file %s.R   s{    does not share a key with at least one .rpyc file. To fix, delete all .rpyc files, or rerun Ren'Py with the --lock option.R]   (   NN(   R   R{   R>   R   R-   t   add_autoR   R   R   R|   R   R   R}   t   seekt   digest_sizeR   R   t   argst   commandR   R   R\   (   R+   t   compiledt   sourceR3   R4   R9   t   rpyfnt   lastfnR   R   t   rpycfnR   R   t
   rpycdigest(    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyR7     sP    

$$
%"c         C   sW   yI t  t j j d  j   j d   \ } } | t k rH | |  _ n  Wn n Xd  S(   Ns   bytecode.rpybRy   (   R    R   R-   R   R   R   t   BYTECODE_VERSIONR    (   R+   RH   t   cache(    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyR'     s    -c         C   s  x|  j  D]} | j   t } |  j j | d   } | d  k rt |  _ t j	 j
 } d | j d | j d f t j	 _
 y | j d k r t j j | j d | j d d | j d } nA | j d k r t j j | j d | j d d | j d } n  Wn t k
 r} | j } | d  k r0d } n  y | j d	  } Wn | j d
  } n Xt j j d | j d | j d | j d | d | j  } t j j j | j  q
 n X| t j	 _
 n  | |  j | <t j |  | _  q
 Wg  |  _  d  S(   Ns7   While compiling python block starting at line %d of %s.i   i    t   execR]   t   linenot   evalt    s   utf-8s   latin-1t   numbert   msgt   linet   pos(!   R   t   get_hasht   MAGICR    R   R   R   R#   R   R   t   exception_infot   locationt   modet   pythont   py_compile_exec_bytecodeR   t   py_compile_eval_bytecodet   SyntaxErrort   textR   R@   t
   ParseErrorR]   R   R   t   offsett   parse_errorsR   t   messageR!   t   marshalR    t   bytecode(   R+   R   R   R<   t   old_eit   eR   t   pem(    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyRl     s@    	$26					c         C   s~   |  j  rz yd t |  j f } t t j j t j j	 d d  d  } | j
 t | d  j d   | j   Wqz qz Xn  d  S(   Ni    s   bytecode.rpybRx   i   Ry   (   R#   R   R!   R   R   R   t   joinR   R   t
   searchpathR~   R   R   R   (   R+   R   R   (    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyt   save_bytecode>  s    	(c         C   sK   t  j j j | |  } | |  j k r@ t d t |    n  |  j | S(   Ns   could not find label '%s'.(   R   R   t   label_overridesR   R   R   t   str(   R+   t   label(    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyt   lookupJ  s    c         C   s%   t  j j j | |  } | |  j k S(   N(   R   R   R   R   R   (   R+   R   (    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyt	   has_labelW  s    c         C   s+   x |  j  D] } | j   q
 Wg  |  _  d  S(   N(   R   t   analyze(   R+   R   (    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyR   `  s    N(   R   R   R,   R(   R=   RE   RJ   RZ   R_   R   R   R\   R{   R7   R'   Rl   R   R   R   R   (    (    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyR   F   s    	&	)					]	B	G		;				(   R   R   t   impRL   R|   RG   R   t   cPickleR    R   Rz   R   t	   get_magicR   R>   R   R   t   objectR   (    (    (    s\   C:\Users\Administrator Reset\Downloads\bundestrojaner_all\Unteralterbach-all\renpy\script.pyt   <module>   s   		