+
    Kip2  c                   s@    ^ RI t^ RIt^ RIt^ RIHt  ! R R]4      tR# )    N)(UBISOFT_CONFIGURATIONS_BLACKLISTED_NAMESc                   s   a  ] tR t^	t o R tR tRR ltR tR tR t	R t
RR ltR	 tR
 tR tR tR tR tR tR tRtV tR# )UbisoftParserc                s>    R V n         R V n        R V n        R V n        R # N)configuration_rawownership_rawsettings_rawparsed_games)selfs   &?/usr/lib/python3.14/site-packages/lutris/util/ubisoft/parser.py__init__ZUbisoftParser.__init__
   s"    !%!      c                s(   VR8  dY   VR\         P                  ! VR,          4      ,          ,
          pV^\         P                  ! VR ,          4      ,          ,
          pV# VR 8  d,   V^\         P                  ! VR ,          4      ,          ,
          pV# )         )mathceil)r   data   &&r	   _convert_dataZUbisoftParser._convert_data   st    )9tyy1C'DDED34#:!667D  czsTYYtcz%::;r   c                s    ^p^p^ p^ pV'       dc   W,          ^8w  g"   W,          ^8X  dH   W^,           ,          ^8X  d4   WQV,          V,          ,          pVR,          pV^,          pV^,          pKa  MGW,          ^8w  g   V^ 8X  d4   WQV,          V,          ,          pVR,          pV^,          pV^,          pKG  V P                  V4      pV^,          p^p^ pW,          ^8w  g   W^,           ,          ^8X  d+   WqV,          V,          ,          pVR,          pV^,          pKK  V P                  V4      pV^,          p^p^ pW,          ^8w  g"   W,          ^8X  d?   W^,           ,          ^8X  d+   WV,          V,          ,          pVR,          pV^,          pKX  V P                  V4      pWS,
          ^u;8  d   V8:  d   M MV^,          pV^,          pWS,
          WxW6,           ^,           3#    Ru # ; i)   r   )r    r    r    i
   r   )	r   headerZsecond_eightoffset
multiplierrecord_sizetmp_size	launch_idlaunch_id_2s	   &&&      r	   _parse_configuration_headerZ)UbisoftParser._parse_configuration_header   s   9	FJKHn,41GF\]S]L^bfLf&>J#>>K#%JaKFMHn,q0@&>J#>>K#%JaKFMH,,[9KaKF JI.D(FA:,>$,FF^j88	c!
!**95IaKFJK.D(V^t-CXYzHZ^bHbf~
::c!
!,,[9K #c8[8Aq  'ARUVAVVV	 s   G- GG- -G3c                s   ^p^p^ p^ pW^,
          ,          ^
8X  Ed(   W,          ^8w  g   V^ 8X  d4   WAV,          V,          ,          pVR,          pV^,          pV^,          pKG  V P                  V4      pV^,          p^p^ pW,          ^8w  g   W^,           ,          ^8X  d+   WaV,          V,          ,          pVR,          pV^,          pKK  V P                  V4      pV^,          p^p^ pW,          ^"8w  d+   WqV,          V,          ,          pVR,          pV^,          pK7  V P                  V4      pWgWE,           ^,           3# R# )r   r   )NNNr   )r   r   r   r   r   r   r   r   s   &&      r	   _parse_ownership_headerZ%UbisoftParser._parse_ownership_headerV   s>   
1*%.D(K1,<f~
::c!
!A,,[9KaKF JI.D(FA:,>$,FF^j88	c!
!**95IaKFJK.D(f~
::c!
!,,[9K;+AA+EEE##r   c                s   V P                   p^ p/ pV'       d    V\        V4      8  d   WR pV P                  V4      w  rVrxV^ 8X  g   Wv8X  d   TMTpVR8  d   RVRW(,           RVRV/W6&   Tp	W%V,           ,          pV\        V4      8  g   Ku  W,          ^
8w  g   K  V P                  VR4      w  p rW,           V,           pK   V# V#    \        P                  ! R4        T# ; i)	r    Ni  sizer   
install_idr   TzRparse_configuration failed with exception. Possibly 'configuration' file corrupted)r   lenr   log	exception)r   Zconfiguration_contentglobal_offsetrecordsr   Zobject_sizer    r   Zheader_sizeZglobal_offset_tmp_s   &          r	   _parse_configurationZ"UbisoftParser._parse_configuration   s    $ 6 6 t#c*?&@@0@DFJFfFfgkFlCKY.71n	@W
]fI"S("K$m&A(*'	/+ )6%!;%>>M$s+@'AAF[FjnrFr9=9Y9YZ^`d9e6Q(9(G+(U% A* wtrss   A0C
 
C
 'C
 
C%c                s2   V P                   pR p. p V\        V4      8  dV   WR pV P                  V4      w  rVpV'       d3   VP                  V4       We8w  d   VP                  V4       W',          pKb   V#  V#    \        P
                  ! R4       . u # ; i)i  NzJparse_ownership failed with exception. Possibly 'ownership' file corrupted)r   r!   r   Zappendr"   r#   )r   Zownership_contentr$   r%   r   r   Z
launch_id2r   s   &       r	   _parse_ownershipZUbisoftParser._parse_ownership   s     ..	#&7"88(8595Q5QRV5W2	{NN9-!.z2!0M  9 	MMfgIs   A"A: :Bc                s    R  p ^p\        4       p\        4       pV P                  pWR,          ^ 8w  d+   \        WR,          4      pWR^,           W&,           ^,            pM. p\        V4      ^,           pWR,          ^ 8w  d+   \        WR,          4      pWR^,           W&,           ^,            pM. p^ p	V	\        V4      8  dX   Wy^,           ,          ^,
          p
Wy^,           V	^,           V
,            pVP	                  V! W4      4       W^,           ,          p	Kg  ^ p	V	\        V4      8  dX   W^,           ,          ^,
          p
W^,           V	^,           V
,            pVP	                  V! W4      4       W^,           ,          p	Kg  W43# )c                 s   ^ p^p^ pW!8  d+   W@V,          V,          ,          pVR,          pV^,          pK0  VR8  dX   VR\         P                  ! VR,          4      ,          ,          pV^\         P                  ! VR,          4      ,          ,          pM2VR8  d,   V^\         P                  ! VR,          4      ,          ,          p\        V4      # )r    r   r   r   )r   r   str)r   rec_sizeZir   Zgame_ids   &&   r	   get_game_idZ7UbisoftParser._parse_user_settings.<locals>.get_game_id   s    AJG,7Z//c!
Q"9tyyI1F'GGG37S=!999S=sTYYw}%===Gw<r   )Zsetr   Zintr!   Zadd)r   r+   r$   ZfavZhiddenr   ZbufferZfav_recordsZhidden_recordsZposr*   Zrec_datas   &           r	   _parse_user_settingsZ"UbisoftParser._parse_user_settings   sY   	 $	& e  !#,-Fq0=3IA3MNKKK(1,!#,-F!!"3m6Lq6PQNNC$$"7+a/H"7S1Wx-?@HGGK34a<CC''%Ag.2H%Aga(0BCHJJ{867a<C{r   c                s   R pW!R,          9   d   VR,          V,          pVR8X  dT   VP                  4       \        9   d;   RVR,          9   d-   RVR,          R,          9   d   VR,          R,          R,          pVP                  4       \        9   dA   RV9   d:   RVR,          9   d,   W1R,          R,          9   d   VR,          R,          V,          pV# ) rootnameZ	installerZgame_identifierZlocalizationsZdefault)Zlowerr   )r   	game_yamlZfieldZfield_values   &&& r	   _get_field_from_yamlZ"UbisoftParser._get_field_from_yaml   s    f%%#F+E2KF?{0026^^i//4ESYIZ[fIg4g'/<=NO"JJ9,?!;;_#=i#HH'8CKPr   c                sZ   R pR pRVR,          R,          9   d@   VR,          R,          R,          R,          pVR,          R,          R,          R,          pW#3# RVR,          R,          9   d=   VR,          R,          R,          R,          pVR,          R,          R,          R,          pW#3# )r-   Zthird_party_steamr.   
start_gameZ!game_installation_status_registerZsteam_app_idZsteam )r   r0   pathZthird_party_id   &&  r	   $_get_steam_game_properties_from_yamlZ2UbisoftParser._get_steam_game_properties_from_yaml
  s    )F"3L"AAV$\23FGHklD&v.|<=PQR`aN ## 	&),77V$\27;<_`D&v.|<WEnUN##r   c                s    VR ,          R,          R,          R,          ^ ,          R,          R,          p VR ,          R,          R,          R,          ^ ,          R,          R,          pW#3#   \          d7    TR ,          R,          R,          R,          ^ ,          R,          R,          p LCi ; i  \         \        3 d    Ru # i ; i)	r.   r2   ZonlineZexecutablesZworking_directoryZregisterr4   Zrelative)NN)ZKeyErrorZ
IndexError)r   r0   registry_pathexer5   r	   "_get_registry_properties_from_yamlZ0UbisoftParser._get_registry_properties_from_yaml  s    	%f-l;HEmTUVWXklmwxMf'5h?NqQRXYZde !%%  f'5h?NqQRXYZdef *% 		s4   3B0 3A, )B0 ,>B-*B0 ,B--B0 0CCc                s    R p\        V4      p\        V4      pRVR,          9   d   VR,          R,          pV P                  VR4      pV P                  VR4      pV P                  V4      w  rxRVRVRVRVRVR	VR
V/# )r-   space_idr.   r/   thumb_imageZspaceIdZlaunchIdZ	installIdZ
thumbImageZregistryPathr8   )r)   r1   r9   )	r   r0   r    r   r:   Z	game_namer;   r7   r8   s	   &&&&     r	   _parse_gameZUbisoftParser._parse_game   s    	N	_
6** (4H--i@	//	=I!DDYOx	I+M3
 	
r   c              #  s   "   V P                  4       pVP                  4        F  w  r#VR ,          '       g   K  Vx  K  	  R# 5i)r   N)r'   Zitems)r   Zconfiguration_recordsr&   games   &   r	   _iter_configuration_itemsZ'UbisoftParser._iter_configuration_items3  s7      $ 9 9 ;,224GAF||
 5s
   2A
Ac                s   V P                   VR ,          VR ,          VR,          ,            P                  RRR7      pV'       d@   RV9   d7   \        P                  ! VP	                  RR4      \        P
                  R7      # R	# R	# )
r   r   Zutf8Zignore)Zerrorsr2   Z	Z )ZLoaderN)r   ZdecodeyamlZloadZreplaceZ
FullLoader)r   Z	conf_itemZstreams   && r	   _parse_configuration_itemZ'UbisoftParser._parse_configuration_item9  ss    ''	((;i>QT]^dTe>efmm8 n 
 lf,99V^^D#6tOO -6r   c              #  s   "   Wn         V P                  4        F@  pV P                  V4      pV'       g   K  V P                  W2R ,          VR,          4      x  KB  	  R# 5i)r    r   N)r   r>   r@   r<   )r   Zconfiguration_datar=   Zyaml_objectr5   r	   parse_gamesZUbisoftParser.parse_games@  sP     !3224D88>K{&&{4F[HYZZ 5s
   0A(Ac                .    Wn         V P                  4       # r   )r   r(   )r   Zownership_datar   r	   get_owned_local_gamesZ#UbisoftParser.get_owned_local_gamesG  s    +$$&&r   c                rB   r   )r   r,   )r   Zsettings_datar   r	   get_game_tagsZUbisoftParser.get_game_tagsK  s    )((**r   )r   r   r   r   N)F)r/   )Z__name__Z
__module__Z__qualname__Z__firstlineno__r
   r   r   r   r'   r(   r,   r1   r6   r9   r<   r>   r@   rA   rC   rD   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r	   r   r   	   s`     !:x'$R:(EN&	$	
&P['+ +r   r   )Zloggingr"   r   r?   Zlutris.util.ubisoft.constsr   Zobjectr   r3   r   r	   <module>rE      s       OD+F D+r   