§
   EýÏ‘Ý“š)ã                   óâ  — d 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mZ dZeZdZdg d¢g d	¢fd
g d¢g d¢fdg d¢g d¢fdg d¢g d¢fdg d¢g d¢fdddgddgfdddgddgfd g d!¢g d"¢fd#d$gd%gfd&d'gd(gfd)g d*¢g d+¢fd,œZ
d-Zd.Zi d/d0“d1d0“d2d0“d3d4“d5d6“d7d8“d9d:“d;d<“d=d>“d?d@“dAdB“dCdD“dEdF“dGdH“dIdJ“dKdL“dMdN“i dOdP“dQdR“dSdN“dTdU“dVdW“dXdY“dZd[“d\d]“d^d_“d`da“dbdc“ddde“dfdg“dhdi“djdk“ddl“ddm“¥i ddn“ddo“dpdq“d$dr“dsdt“dudv“d'dw“dxdy“dzd{“d|d}“d~d“d€d
“d�d‚“dƒd„“d…d†“d‡dˆ“d‰dŠ“¥d‹dŒd�œ¥ZdŽd�d�d�d�d‘œZd’Zd’Zd“d”d•d–d—d˜d™dšd›dœœ	Zd�dždŸd d¡d¢d£d¤d¥d¦œ	Zd§\  ZZd¨„ Zd©„ Zdª„ Zd«Zd¬Zd­„ Zd®„ Z  e!¦   «         Z"dd¯de"fd°„Z#d±„ Z$d²„ Z%d³„ Z&d´„ Z'dµ„ Z(dÜd¶„Z)d·Z*d¸d¹dºd»d¼d½d¾d¿dÀdÁdÂdÃœZ+dÄ\	  Z,Z-Z.Z/Z0Z1Z2Z3Z4dÅ„ Z5dÆ„ Z6dÇ„ Z7dÈ„ Z8dÉ„ Z9dÊ„ Z:dË„ Z;dÌ„ Z<dÍ„ Z=dÎ„ Z>dÏ„ Z?dÝdÑ„Z@dÜdÒ„ZAdÓ„ ZBdÔ„ ZCdÕ„ ZDdÖ„ ZEd×„ ZFdØ„ ZGdÙ„ ZHdÚ„ ZIdÛ„ ZJdS )Þu  Home widgets of skin.milionar: defaults and the widget manager (docs/plan/milionar-library/070 Â§2, Â§5).

A widget slot is a set of skin strings `mil.<sec>.<n>.type|limit|sort|style|title` (+ `mil.<sec>.hidewatched|upcoming`).
The generated include `MilionarSlots_<sec>` (scripts/skin_harness/gen_slots.py) turns them into Estuary widgets; by
the manager offers all of them (max 7). This module only writes strings
(`Skin.SetString`), so the plugin never touches a control. Imported through the main.py fast path.
é    N)Úclicks)ÚSECTIONSÚWIDGET_SLOTSzplugin.video.milionar)Ú10Ú20Ú30Ú50iô~  )Úvinyl_curatorÚvinyl_discoverÚvinyl_songsÚvinyl_top_tracksÚvinyl_albumsÚvinyl_artistsÚvinyl_playlistsÚvinyl_genresÚvinyl_radiosÚvinyl_favorite_songsÚvinyl_favorite_playlistsÚvinyl_favorite_albumsÚvinyl_favorite_artistsÚhome_vinyl_actions))r
   r   ÚsourceÚbanner)r   r   r   Ú
categories)r   r   r   Úsquare)r   r   r   r   )r   r   r   Úrecord)r   r   r   Úartist)r   r   Ú r   iä‰  )	Úfy_continueÚ
fy_for_youÚfy_top10Úfy_because_1Úfy_because_2Úfy_because_3Ú
fy_tonightÚfy_newÚfy_gems))r   r   r   Úepisode)r    r   r   Úposter)r!   r   r   r)   )r"   r   r   r)   )r%   r   r   Ú	landscape)r&   r   r   r)   i^~  )Úcont_moviesÚcont_seriesÚrecent_playedÚwidget_mytv_nextÚwidget_mytv_channels)©r/   r   r   r)   )r,   r   Úactivityr(   )r+   r   r1   r*   i_~  )Úmy_movies_progressÚmy_movies_addedÚmy_movies_unwatchedÚmy_movies_genresÚmy_movies_watchedÚmy_movies_allÚhome_movies_actions))r5   r   r   r   )r2   r   r1   r*   )r3   r   Úaddedr)   )r8   r   r   r   i`~  )Úmy_series_nextÚmy_series_newÚmy_series_addedÚmy_series_unwatchedÚmy_series_genresÚmy_series_upcomingÚmy_series_allÚhome_series_actions))r>   r   r   r   )r:   r   r1   r(   )r<   r   r9   r)   )rA   r   r   r   ia~  r/   r.   r0   )r.   r   r   r(   ib~  Úwidget_mycinema_channelsÚwidget_mycinema_recommended)rB   r   r   r)   )rC   r   r   r)   ic~  )Úwidget_demo_moviesÚwidget_demo_seriesÚwidget_game_topics))rD   r   r   r)   )rE   r   r   r*   )rF   r   r   r)   id~  Úwidget_ai_recent)rG   r   r   r)   ie~  Úwidget_kraska_root)rH   r   r   r   if~  )Úwidget_tmdb_popular_moviesÚwidget_tmdb_popular_seriesÚwidget_csfd_charts))rI   r   r   r)   )rJ   r   r   r)   )rK   r   r   r   )ÚvinylÚforyouÚcontÚ	my_moviesÚ	my_seriesÚmytvÚmycinemaÚgameÚaiÚkraskaÚtmdb)rO   rP   )rN   rP   r8   ió  rA   r   r
   iõ~  r   iö~  r   i÷~  r   i²  r   iø~  r   iù~  r   iú~  r   iû~  r   iü~  r   iþ~  r   iÿ~  r   i   r   i  r+   i,~  r,   i-~  r-   i.~  r2   r3   i/~  r4   i0~  r5   i1~  r6   i2~  r7   i3~  r:   i4~  r;   i5~  r<   i6~  r=   i7~  r>   i8~  r?   i9~  r@   i:~  i;~  i<~  i=~  i>~  rF   i?~  i@~  rD   iä  rE   iå  iA~  rI   iB~  rJ   iC~  rK   iD~  r   iå‰  r    r!   iç‰  r"   iù‰  r#   iú‰  r$   iû‰  r%   iü‰  iî‰  iï‰  )r&   r'   )r1   ÚtitleÚyearÚratingÚrandom)r1   rW   rY   rZ   © )r+   r,   r-   r5   r>   )r1   r9   rW   rX   rY   rZ   iJ~  iK~  iL~  iM~  iN~  iO~  iP~  iQ~  i  )	r1   r9   rW   rX   rY   rZ   ÚtimeÚairr   iT~  iU~  iV~  iW~  i  i­  i®  i¯  i°  )	r)   r*   r(   r   r   r   r   r   Útrack)iX~  iY~  c                 óZ   — t          j        t          ¦  «                             | ¦  «        S ©N)Ú	xbmcaddonÚAddonÚADDON_IDÚgetLocalizedString)Ú	string_ids    ú\/Users/chudy/Library/Application Support/Kodi/addons/plugin.video.milionar/wcs/skin/slots.pyÚ_textrg   a   s    € ÝŒ?�8Ñ$Ô$×7Ò7¸	ÑBÔBÐBó    c                 ó  — |                      dd¦  «        }t          j        d                     | ¦  «        ¦  «        |k    rdS |dk    rd                     | |¦  «        nd                     | ¦  «        }t          j        |d¦  «         dS )	zgSkin string (an empty value removes it). Synchronous, so a read right after a write sees the new value.ú"ú'zSkin.String({})Fr   zSkin.SetString({},"{}")zSkin.Reset({})T)ÚreplaceÚxbmcÚgetInfoLabelÚformatÚexecutebuiltin)ÚnameÚvalueÚcommands      rf   Ú_setrt   e   sŠ   € à�MŠM˜#˜sÑ#Ô#€EÝÔÐ*×1Ò1°$Ñ7Ô7Ñ8Ô8¸EÒAÐAØˆuØ?DÈº{¸{Ð'×.Ò.¨t°UÑ;Ô;Ð;ÐP`×PgÒPgÐhlÑPmÔPm€GÝÔ˜ Ñ&Ô&Ð&Øˆ4rh   c                 óØ   — |                       d¦  «        rdS | t          v rt          |          S |                       d¦  «        rt          S |                       d¦  «        r| dvrt          S dS )NÚvinyl_)r   rW   rZ   rO   rP   )r;   r?   r[   )Ú
startswithÚSORTSÚMOVIE_SORTSÚSERIES_SORTS©Úrows    rf   Úsorts_ofr}   o   ss   € Ø
‡~‚~�hÑÔð -Ø,Ð,Ø
�e€|€|Ý�SŒzÐØ
‡~‚~�kÑ"Ô"ð ÝÐØ
‡~‚~�kÑ"Ô"ð  sÐ2YÐ'YÐ'YÝÐØˆ2rh   )r,   r:   r;   r?   )
r+   r-   r2   r3   r4   r6   r7   r<   r=   r@   c                 óÄ  — |                       d¦  «        rdS | dk    rdS | dv rdS | dv rdS |                       d	¦  «        rd
S |                      d¦  «        rdS | dk    rdS |                       d¦  «        rdS | t          v rdS | t          v rdS | dk    rdS | dk    rdS t                               ¦   «         D ]'\  }\  }}}|D ]}|d         | k    r|d         fc c S ŒŒ(dS )zeStyles a slot may use for `row`: the catalogue rows of rows.py have a choice, the old rows are fixed.Úhome_)r   r   )r   r*   r   )r   r   )r   r   r*   r   )r   r   r   )r   r   r^   r*   rv   )r   r*   r   r   Ú_genresr   )r(   Úfy_)r)   r*   rD   rE   )r*   r)   r   é   )r)   )rw   ÚendswithÚEPISODE_ROWSÚPOSTER_ROWSr   Úitems)r|   Ú_secÚ_nÚ_rowsÚdefaultsÚdefaults         rf   Ú	styles_ofrŒ   €   s^  € à
‡~‚~�gÑÔð ØˆØ
ˆnÒÐØ4Ð4Ø
Ð9Ð9Ð9Ø:Ð:Ø
ÐIÐIÐIØ9Ð9Ø
‡~‚~�hÑÔð ;Ø:Ð:Ø
‡|‚|�IÑÔð ØˆØ
ˆmÒÐØˆ|Ø
‡~‚~�eÑÔð 'Ø&Ð&Ø
�lÐÐØˆ|Ø
�kÐÐØ&Ð&Ø
Ð"Ò"Ð"Ø&Ð&Ø
Ð"Ò"Ð"Ø&Ð&Ý'/§~¢~Ñ'7Ô'7ð %ð %Ñ#ˆÑ#ˆr�5˜(Øð 	%ð 	%ˆGØ�qŒz˜SÒ Ð Ø œ
�}Ð$Ð$Ð$Ð$Ð$ð !ð	%ð ˆ;rh   c                 óª   — t           |         d         D ]}|d         | k    r|c S Œ| dt          | ¦  «        pdd         t          | ¦  «        d         fS )Né   r   r   )r   )r   r}   rŒ   ©r|   Úsecr‹   s      rf   Údefault_forr‘   ¡   sa   € Ý˜C”= Ô#ð ð ˆØ�1Œ:˜ÒÐØˆNˆNˆNð à�� ™œÐ.¨°Ô2µI¸c±N´NÀ1Ô4EÐFÐFrh   r   c
                 óŒ  ‡— d                      | |¦  «        Šddlm}
 ||dk    r|nd|dk    r|nd|dk    r|nd|dk    r+|�t          j        ||¦  «        nt          j        |¦  «        nd|t          v rt          t          |         ¦  «        nd|dk    rA|p>t          j	        d                      ‰¦  «        ¦  «        pt          j        ¦   «         j        nd|dk    r|
                     |¦  «        nddœ}|dk    s	|	t          ur |dk    r|
                     |	¦  «        nd|d<   ˆfd	„|                     ¦   «         D ¦   «         S )
Nú
mil.{}.{}.r   ©ÚcontextÚoffr   zSkin.String({}uid))ÚtypeÚlimitÚsortÚstyleÚclickrW   ÚuidÚmenuÚheroc                 ó@   •— h | ]\  }}t          ‰|z   |¦  «        ¯|’ŒS r[   )rt   )Ú.0Úkeyrr   Úprefixs      €rf   ú	<setcomp>zwrite_slot.<locals>.<setcomp>¶   s0   ø€ ÐNÐNÐN‘J�C˜µD¸À#¹ÀuÑ4MÔ4MÐNˆCÐNÐNÐNrh   )ro   Úwcs.skinr•   r   Úresolver‹   ÚTITLESrg   rm   rn   ÚuuidÚuuid4ÚhexÚencodeÚKEEPr†   )r�   Únr|   r˜   r™   rš   r›   rœ   r�   rž   r•   Úvaluesr¢   s               @rf   Ú
write_slotr®   «   sx  ø€ Ø× Ò   aÑ(Ô(€FØ Ð Ð Ð Ð Ð Ø¨S°Eª\¨\ E E¸rÐSVÐZ_ÒS_ÐS_È4È4ÐegØ # u¢ �u�u°"ØehÐlqÒeqÐeq°eÐ6G�œ s¨EÑ2Ô2Ð2ÍVÌ^Ð\_ÑM`ÔM`ÐM`ÐwyØ-0µF¨]¨]•u�V Cœ[Ñ)Ô)Ð)ÀØloÐsxÒlxÐlx�cÐg�TÔ.Ð/C×/JÒ/JÈ6Ñ/RÔ/RÑSÔSÐgÕW[ÔWaÑWcÔWcÔWgøð  AØ.1°Uªl¨l�g—n’n TÑ*Ô*Ð*ÀðDð D€Fð ˆe‚|€|�t¥4Ð'Ð'Ø14¸²°˜Ÿš¨Ñ-Ô-Ð-À2ˆˆv‰ØNÐNÐNÐN &§,¢,¡.¤.ÐNÑNÔNÐNrh   c                 óž   — | t           v rCt          d                     | ¦  «        t          j        ¦   «         j        dd…         ¦  «         dS dS )zÍNew hero button revision of the section: it is part of every row URL there (gen_slots.CONTENT), because the
    buttons are written to the items, also to those of the row a genre row borrows its hero from.zmil.{}.herorevNé   )ÚHERO_SECTIONSrt   ro   r§   r¨   r©   )r�   s    rf   Ú
touch_heror²   ¹   sN   € ð �mÐÐÝÐ×$Ò$ SÑ)Ô)­4¬:©<¬<Ô+;¸B¸Q¸BÔ+?Ñ@Ô@Ð@Ð@Ð@ð Ðrh   c                 óÊ   — |r^t          j        d¦  «        }dt          j        ¦   «         j        z   }|D ].}|                     d                     | |¦  «        |¦  «         Œ-dS dS )zOConfig changes belong to placements, not shared data revisions of a row family.é'  zconfig:zmilionar.widgets.{}.{}N)ÚxbmcguiÚWindowr§   r¨   r©   ÚsetPropertyro   )r�   ÚnumbersÚhomeÚtokenr¬   s        rf   Ú_refresh_slotsr»   À   s€   € àð MÝŒ~˜eÑ$Ô$ˆØ�DœJ™LœLÔ,Ñ,ˆØð 	Mð 	MˆAØ×ÒÐ5×<Ò<¸SÀ!ÑDÔDÀeÑLÔLÐLÐLð	Mð Mð	Mð 	Mrh   c                 ó˜  — t          ¦   «         dd}}}t          dt          dz   ¦  «        D ]÷}|t          |¦  «        k    r‰||dz
           }t	          | ||d         |d         |d         |d         |                     d¦  «        |                     dd	¦  «        |                     d
¦  «        |                     d¦  «        ¦
  «
        }	nt	          | |dd	d	d	¦  «        }	|	rC|                     |¦  «         |t          |	ddhz  ¦  «        z  }|t          |	ddhz  ¦  «        z  }Œøt          d 	                    | ¦  «        |rdnd	¦  «        }
|
t          d 	                    | ¦  «        |rdnd	¦  «        z  }
|
r3| 
                    t          dt          |¦  «        dz   ¦  «        ¦  «         |rt          | ¦  «         t          | |¦  «         |S )NFé   r—   r˜   r™   rš   r›   rœ   r   r�   rž   r–   zmil.{}.hidewatchedÚ1zmil.{}.upcoming)ÚsetÚrangeÚSLOTSÚlenr®   ÚgetÚaddÚboolrt   ro   Úupdater²   r»   )r�   ÚwidgetsÚhwÚupÚaffectedÚlayout_changedÚbuttons_changedr¬   ÚwÚfieldsÚflags_changeds              rf   Ú_write_sectionrÐ   É   sÌ  € Ý03±´°u¸e˜oˆn€HÝ�1•e˜a‘iÑ Ô ð 
?ð 
?ˆØ•�G‘”ÒÐØ˜˜A™”ˆAÝ  Q¨¨&¬	°1°W´:¸qÀ¼yÈ!ÈGÌ*Ø !§¢ g¡¤°·²°e¸RÑ0@Ô0@À!Ç%Â%ÈÁ-Ä-ÐQR×QVÒQVÐW]ÑQ^ÔQ^ñ`ô `ˆFˆFõ    Q¨¨r°2°rÑ:Ô:ˆFØð 	?Ø�LŠL˜‰OŒOˆOØ�d 6¨V°WÐ,=Ñ#=Ñ>Ô>Ñ>ˆNØ�t F¨f°fÐ-=Ñ$=Ñ>Ô>Ñ>ˆOøÝÐ-×4Ò4°SÑ9Ô9À"Ð;L¸3¸3È"ÑMÔM€MØ•TÐ+×2Ò2°3Ñ7Ô7ÀÐ9J¸¸ÈÑKÔKÑK€MØð 4Ø�Š�˜a¥ W¡¤°Ñ!1Ñ2Ô2Ñ3Ô3Ð3Øð Ý�3‰ŒˆÝ�3˜Ñ!Ô!Ð!ØÐrh   c                 óð   — ddl m} |                     | ¦  «        }|�$t          | |d         |d         |d         ¦  «        S d„ t          |          d         D ¦   «         }t          | |d| t
          v ¦  «        S )	Nr   ©rŠ   rÇ   ÚhidewatchedÚupcomingc                 óH   — g | ]}t          t          d |¦  «        ¦  «        ‘Œ S ))r—   r˜   r™   rš   )ÚdictÚzip)r    r­   s     rf   ú
<listcomp>z"write_defaults.<locals>.<listcomp>å   s+   € ÐdÐdÐdÈ�t•CÐ:¸FÑCÔCÑDÔDÐdÐdÐdrh   rŽ   F)r¤   rŠ   ÚsectionrÐ   r   ÚUPCOMING)r�   rŠ   ÚshippedrÇ   s       rf   Úwrite_defaultsrÜ   à   s‰   € Ø!Ð!Ð!Ð!Ð!Ð!Ø×Ò˜sÑ#Ô#€GØÐÝ˜c 7¨9Ô#5°w¸}Ô7MÈwÐWaÔObÑcÔcÐcØdÐdÕS[Ð\_ÔS`ÐabÔScÐdÑdÔd€GÝ˜#˜w¨¨sµh¨Ñ?Ô?Ð?rh   c                  ó0   — t          j        dd¦  «         dS )zFOnly type/style/layout changes need their include conditions reparsed.zReloadSkin()TN)rm   rp   r[   rh   rf   Úreload_skinrÞ   é   s   € åÔ˜¨Ñ-Ô-Ð-Ð-Ð-rh   c                 óx   — d}| r| gnt           D ]}|t          |¦  «        z  }Œ| st          j        d¦  «         |S )z`Write the default slots (all sections, or one) and remember that the defaults were applied once.FzSkin.SetBool(MilionarSlotsV1))r   rÜ   rm   rp   )ÚonlyrË   r�   s      rf   Úapply_defaultsrá   î   sU   € à€NØÐ,���¥Hð .ð .ˆØ�.¨Ñ-Ô-Ñ-ˆˆØð =ÝÔÐ;Ñ<Ô<Ð<ØÐrh   zmilionar.wmrM   rL   rN   rO   rP   rQ   rR   rS   rT   rU   rV   )Ú
mil_foryouÚ	mil_vinylÚmil_continueÚmil_mymoviesÚmil_myseriesÚmil_mytvÚmil_mycinemaÚmil_gameÚmil_aiÚ
mil_kraskaÚmil_tmdb)	il~  im~  in~  io~  ip~  iq~  ir~  is~  iv~  c                 óP  ‡— d                      | |¦  «        Šddlm} ˆfd„dD ¦   «         }|                     t	          j        d                      ‰¦  «        ¦  «        ¦  «        |d<   |                     t	          j        d                      ‰¦  «        ¦  «        ¦  «        |d	<   |S )
Nr“   r   r”   c           	      ób   •— i | ]+}|t          j        d                      ‰|¦  «        ¦  «        “Œ,S )zSkin.String({}{}))rm   rn   ro   )r    r¡   r¢   s     €rf   ú
<dictcomp>zcurrent.<locals>.<dictcomp>  sM   ø€ ð Mð Mð MØð •4Ô$Ð%8×%?Ò%?ÀÈÑ%LÔ%LÑMÔMð Mð Mð Mrh   )r—   r˜   r™   rš   r›   rœ   zSkin.String({}menu)r�   zSkin.String({}hero)rž   )ro   r¤   r•   Údecoderm   rn   )r�   r¬   r•   Úresultr¢   s       @rf   Úcurrentrò     s¾   ø€ Ø× Ò   aÑ(Ô(€FØ Ð Ð Ð Ð Ð ðMð Mð Mð MØKðMñ Mô M€Fà—^’^¥DÔ$5Ð6K×6RÒ6RÐSYÑ6ZÔ6ZÑ$[Ô$[Ñ\Ô\€Fˆ6�NØ—^’^¥DÔ$5Ð6K×6RÒ6RÐSYÑ6ZÔ6ZÑ$[Ô$[Ñ\Ô\€Fˆ6�NØ€Mrh   c           	      ó¸   — t          | |¦  «        }|d         |d         |d         |d         t          j        | ¦  «        t          j        ¦   «         j        d d dœS )Nr   r½   rŽ   r‚   )r—   r˜   r™   rš   r›   rœ   r�   rž   )r‘   r   r‹   r§   r¨   r©   r�   s      rf   Ú_widgetrô     s^   € Ý˜#˜sÑ#Ô#€GØ˜A”J¨°¬¸WÀQ¼ZÐRYÐZ[ÔR\ÕgmÔguÐvyÑgzÔgzÝ”:‘<”<Ô#¨T¸4ðAð Að Arh   c                 ó@   — | t           v o|                      d¦  «         S )zbOnly the catalogue rows of rows.py honour the item count; the old rows (MyTV, TMDb ...) ignore it.)Úwidget_r   )r¦   rw   r{   s    rf   Ú	has_countr÷     s!   € à•&ˆ=ÐE §¢Ð0DÑ!EÔ!EÐEÐErh   c                 ó:  — g }t          | d         ¦  «        r|                     | d         ¦  «         | d         t          v rYt          t	          | d         ¦  «        ¦  «        dk    r3|                     t          t          | d                  ¦  «        ¦  «         | d         t          v rYt          t          | d         ¦  «        ¦  «        dk    r3|                     t          t          | d                  ¦  «        ¦  «         t          t          j	        | d         ¦  «        ¦  «        dk    rZ|                     t          j
        | d         t          j        | d         |                      d¦  «        ¦  «        ¦  «        ¦  «         d                     |¦  «        S )u6   Right-hand text of a list row: count Â· sort Â· style.r—   r˜   r™   r½   rš   r›   u    Â· )r÷   ÚappendÚSORT_TITLESrÂ   r}   rg   ÚSTYLE_TITLESrŒ   r   ÚoptionsÚlabelr¥   rÃ   Újoin)ÚwidgetÚpartss     rf   Úinfor    sF  € à€EÝ�˜”Ñ Ô ð &Ø�Š�V˜G”_Ñ%Ô%Ð%Øˆf„~�Ð$Ð$­­X°f¸V´nÑ-EÔ-EÑ)FÔ)FÈÒ)JÐ)JØ�Š•U�; v¨f¤~Ô6Ñ7Ô7Ñ8Ô8Ð8Øˆg„�,Ð&Ð&­3­y¸À¼Ñ/HÔ/HÑ+IÔ+IÈAÒ+MÐ+MØ�Š•U�<¨¨w¬Ô8Ñ9Ô9Ñ:Ô:Ð:Ý
�6Œ>˜& œ.Ñ)Ô)Ñ*Ô*¨QÒ.Ð.Ø�Š•V”\ &¨¤.µ&´.ÀÈÄÐQW×Q[ÒQ[Ð\cÑQdÔQdÑ2eÔ2eÑfÔfÑgÔgÐgØ�;Š;�uÑÔÐrh   c                  ó®   — t          j        d¦  «                             t          ¦  «        } 	 | rt	          j        | ¦  «        nd S # t          $ r Y d S w xY w)Nr´   )rµ   r¶   ÚgetPropertyÚDRAFTÚjsonÚloadsÚ
ValueError)Úraws    rf   Ú_draftr	  %  s]   € Ý
Œ.˜Ñ
Ô
×
+Ò
+­EÑ
2Ô
2€CðØ"%Ð/�tŒz˜#‰Œˆ¨4Ð/øÝð ð ð Øˆtˆtðøøøs   ®A Á
AÁAc                 óV   — t          j        | d         ¦  «        | d         | d         dœS )NrÇ   rÈ   rÉ   )rÇ   rÈ   rÉ   )ÚcopyÚdeepcopy©Údrafts    rf   Ú	_snapshotr  -  s,   € Ý”} U¨9Ô%5Ñ6Ô6¸eÀD¼kÐQVÐW[ÔQ\Ð]Ð]Ð]rh   c                 ó4   — t          | ¦  «        | d         k    S )NÚorig)r  r  s    rf   Ú_dirtyr  1  s   € Ý�UÑÔ˜u Vœ}Ò,Ð,rh   c           
      óÄ  — t          j        d¦  «                             t          t	          j        | ¦  «        ¦  «         | d         | d         }}t          dt          t          |         d         ¦  «        ¦  «         t          d|t          v rdnd¦  «         t          d	t          | ¦  «        rt          t          ¦  «        nd¦  «         t          d
d                     t          |¦  «        t          ¦  «        ¦  «         t          dt          dz   ¦  «        D ]ß}|t          |¦  «        k    r„t          d                     |¦  «        t          t           ||dz
           d                  ¦  «        ¦  «         t          d                     |¦  «        t#          ||dz
           ¦  «        ¦  «         Œ™t          d                     |¦  «        d¦  «         t          d                     |¦  «        d¦  «         Œàt          dt          |¦  «        t          k     rt          t$          ¦  «        nd¦  «         t          d¦  «        t          d¦  «        }}t          d|t&          v r-d                     t          d¦  «        | d         r|n|¦  «        nd¦  «         t          d|t(          v r-d                     t          d¦  «        | d         r|n|¦  «        nd¦  «         dS )zOKeep the draft and copy what the window shows into skin strings (`mil.edit.*`).r´   r�   rÇ   zmil.edit.headerr   zmil.edit.heror¾   r   zmil.edit.dirtyzmil.edit.countz{} / {}r½   zmil.edit.{}r—   zmil.edit.{}.infozmil.edit.addiZ~  i[~  zmil.edit.hwz{}: {}i\~  rÈ   zmil.edit.upi]~  rÉ   N)rµ   r¶   r·   r  r  Údumpsrt   rg   r   r±   r  Ú	S_CHANGEDro   rÂ   rÁ   rÀ   r¦   r  ÚS_ADDÚHIDE_WATCHEDrÚ   )r  r�   rÇ   r¬   Úonr–   s         rf   Ú_storer  5  sq  € å„N�5ÑÔ×%Ò%¥e­T¬Z¸Ñ->Ô->Ñ?Ô?Ð?Ø˜”<  yÔ!1ˆ€CÝÐ	�E¥(¨3¤-°Ô"2Ñ3Ô3Ñ4Ô4Ð4Ýˆ ­Ð!5Ð!5˜#˜#¸2Ñ>Ô>Ð>ÝÐ	­v°e©}¬}ÐD�5¥Ñ+Ô+Ð+À"ÑEÔEÐEÝÐ	˜9×+Ò+­C°©L¬L½%Ñ@Ô@ÑAÔAÐAÝ�1•e˜a‘iÑ Ô ð 3ð 3ˆØ•�G‘”ÒÐÝ�×%Ò% aÑ(Ô(­%µ°w¸qÀ1¹u´~ÀfÔ7MÔ0NÑ*OÔ*OÑPÔPÐPÝÐ#×*Ò*¨1Ñ-Ô-­t°G¸AÀ¹E´NÑ/CÔ/CÑDÔDÐDÐDå�×%Ò% aÑ(Ô(¨"Ñ-Ô-Ð-ÝÐ#×*Ò*¨1Ñ-Ô-¨rÑ2Ô2Ð2Ð2Ýˆ­¨W©¬½Ò)=Ð)=��u™œ˜À2ÑFÔFÐFÝ�E‰lŒl�E %™LœLˆ€BÝˆÐUXÕ\hÐUhÐUh˜Ÿš­¨e©¬¸EÀ$¼KÐ6P°b°bÈSÑQÔQÐQÐnpÑqÔqÐqÝˆÐUXÕ\dÐUdÐUd˜Ÿš­¨e©¬¸EÀ$¼KÐ6P°b°bÈSÑQÔQÐQÐjlÑmÔmÐmÐmÐmrh   c           
      óš  — g }t          dt          dz   ¦  «        D ]�}t          | |¦  «        }|d         ru|d         dk    ri|d         t          v rZt	          j        |d         |d         ¦  «        |d<   |d         pd                     | |¦  «        |d<   |                     |¦  «         Œ�| |t          t          j
        d                     | ¦  «        ¦  «        ¦  «        t          t          j
        d                     | ¦  «        ¦  «        ¦  «        d	œ}t          |¦  «        |d
<   t          |¦  «         t          j        d¦  «         dS )zCBuild the draft from the current skin strings and open window 1123.r½   r—   r–   r›   rœ   z{}:{}zSkin.String(mil.{}.hidewatched)zSkin.String(mil.{}.upcoming))r�   rÇ   rÈ   rÉ   r  zActivateWindow(1123)N)rÀ   rÁ   rò   r¦   r   r¥   ro   rù   rÅ   rm   rn   r  r  rp   )r�   rÇ   r¬   Úslotr  s        rf   Úopen_managerr  J  s>  € à€GÝ�1•e˜a‘iÑ Ô ð !ð !ˆÝ�s˜A‰ŒˆØ�Œ<ð 	!˜D œL¨EÒ1Ð1°d¸6´lÅfÐ6LÐ6LÝ"œN¨4°¬<¸¸g¼ÑGÔGˆD�‰MØ˜uœ+Ð?¨¯ª¸¸QÑ)?Ô)?ˆD�‰KØ�NŠN˜4Ñ Ô Ð øØ GÝ�Ô)Ð*K×*RÒ*RÐSVÑ*WÔ*WÑXÔXÑYÔYÝ�Ô)Ð*H×*OÒ*OÐPSÑ*TÔ*TÑUÔUÑVÔVðXð X€Eõ ˜eÑ$Ô$€Eˆ&�MÝ
ˆ5�M„M€MÝÔÐ.Ñ/Ô/Ð/Ð/Ð/rh   c                  óz   — t          j        d¦  «        } |                      ¦   «         rt          | ¦  «        dz
  ndS )u\   0-based index of the focused list row (the row after the last widget is "+ PÅ™idat widget").zContainer(9000).CurrentItemr½   r   )rm   rn   ÚisdigitÚint)Úcurrent_items    rf   Ú	_selectedr!  [  s<   € åÔ$Ð%BÑCÔC€LØ$0×$8Ò$8Ñ$:Ô$:ÐA�3ˆ|ÑÔ˜qÑ Ð ÀÐArh   c                 ó\   — | r)t          j        d                     | ¦  «        ¦  «         d S d S )NzControl.Move(9000,{}))rm   rp   ro   )Úoffsets    rf   Ú_move_cursorr$  a  s=   € Øð DÝÔÐ3×:Ò:¸6ÑBÔBÑCÔCÐCÐCÐCðDð Drh   éÿÿÿÿc                 óT   — t          j        ¦   «                              | ||¬¦  «        S )N)Ú	preselect)rµ   ÚDialogÚselect)ÚheadingÚlabelsrò   s      rf   Ú_chooser,  f  s%   € ÝŒ>ÑÔ×"Ò" 7¨F¸gÐ"ÑFÔFÐFrh   c                 ó¸  ‡‡— ˆfd„|D ¦   «         Šˆfd„t           |          d         D ¦   «         }ˆfd„t           |          d         D ¦   «         }|r|                     d¦  «         |sFt          j        ¦   «                              dt          t          ¦  «        t          j        ¦  «         dS t          t          d¦  «        d	„ |D ¦   «         ‰|v r| 	                    ‰¦  «        nd
¦  «        }|dk     rdS ||         dk    rQt          t          d¦  «        d„ |D ¦   «         ‰|v r| 	                    ‰¦  «        nd
¦  «        }|dk    r||         ndS ||         S )zWSelect one of the rows a section may show (not those already used); the row id or None.c                 ó8   •— h | ]}|d          ‰k    ¯|d          ’ŒS ©r—   r[   )r    rÍ   Úkeeps     €rf   r£   z_pick_row.<locals>.<setcomp>l  s+   ø€ Ð<Ð<Ð<˜!¨!¨F¬)°tÒ*;Ð*;ˆAˆfŒIÐ*;Ð*;Ð*;rh   c                 óF   •— g | ]}|‰v¯|                      d ¦  «        °|‘ŒS ©Úvinyl_favorite_©rw   ©r    ÚrÚuseds     €rf   rØ   z_pick_row.<locals>.<listcomp>m  s/   ø€ ÐbÐbÐb�1¨A°T¨M¨MÀ!Ç,Â,ÐO`ÑBaÔBa¨MˆQ¨M¨M¨Mrh   r½   c                 óF   •— g | ]}|                      d ¦  «        ¯|‰v¯|‘ŒS r2  r4  r5  s     €rf   rØ   z_pick_row.<locals>.<listcomp>n  s7   ø€ ÐbÐbÐb�q°·²Ð=NÑ0OÔ0OÐbÐTUÐ]aÐTaÐTa�ÐTaÐTaÐTarh   Úvinyl_favoritesõ
   MilionÃ¡Å™Nih~  c                 óR   — g | ]$}t          |d k    rdnt          |         ¦  «        ‘Œ%S )r9  iý~  ©rg   r¦   ©r    r6  s     rf   rØ   z_pick_row.<locals>.<listcomp>t  s5   € Ð!gÐ!gÐ!gÐ\]¥%°Ð6GÒ1GÐ1G¨¨ÍVÐTUÌYÑ"WÔ"WÐ!gÐ!gÐ!grh   r%  r   é  c                 óB   — g | ]}t          t          |         ¦  «        ‘ŒS r[   r<  r=  s     rf   rØ   z_pick_row.<locals>.<listcomp>y  s$   € Ð'LÐ'LÐ'L¸Q­­f°Q¬iÑ(8Ô(8Ð'LÐ'LÐ'Lrh   )
r   rù   rµ   r(  Únotificationrg   Ú
S_ALL_USEDÚNOTIFICATION_INFOr,  Úindex)r�   rÇ   r0  Úrows_Ú	favoritesÚpickÚchosenr7  s     `    @rf   Ú	_pick_rowrH  j  s�  øø€ à<Ð<Ð<Ð<˜wÐ<Ñ<Ô<€DØbÐbÐbÐb� œ aÔ(ÐbÑbÔb€EØbÐbÐbÐb�H SœM¨!Ô,ÐbÑbÔb€IØð (Ø�ŠÐ&Ñ'Ô'Ð'Øð ÝŒÑÔ×%Ò% lµE½*Ñ4EÔ4EÅwÔG`ÑaÔaÐaØˆtÝ•5˜‘<”<Ð!gÐ!gÐafÐ!gÑ!gÔ!gØ(,°¨¨�5—;’;˜tÑ$Ô$Ð$¸2ñ?ô ?€Dàˆa‚x€xØˆtØˆT„{Ð'Ò'Ð'Ý�˜u™œÐ'LÐ'LÀ)Ð'LÑ'LÔ'LØ26¸)Ð2CÐ2C˜Ÿš¨Ñ.Ô.Ð.ÈñMô Mˆà$*¨a¢K Kˆy˜Ô Ð °TÐ9Ø�Œ;Ðrh   c           
      óÊ  ‡‡‡— | d         | d         }}|‰         Šd}	 dt          t          ¦  «                             t          t          ‰d                  ¦  «        ¦  «        fg}‰d                              d¦  «        rH|                     dt          d¦  «        d	z   t          t          ‰d                  ¦  «        z   f¦  «         t          ‰d         ¦  «        rB|                     d
t          t          ¦  «                             ‰d
         ¦  «        f¦  «         t          t          ‰d         ¦  «        ¦  «        dk    rk|                     dt          t          ¦  «                             ‰d         t          v r t          t          ‰d                  ¦  «        nd¦  «        f¦  «         t          t          ‰d         ¦  «        ¦  «        dk    rZ|                     dt          t          ¦  «                             t          t          ‰d                  ¦  «        ¦  «        f¦  «         t          t          j        ‰d         |¦  «        ¦  «        dk    r`|                     dt          t          j        ¦  «                             t          j        ‰d         ‰d         ¦  «        ¦  «        f¦  «         |                     dt          d¦  «        f¦  «         |                     dt          t&          ¦  «        f¦  «         t)          t          t          ‰d                  ¦  «        d„ |D ¦   «         t+          |d¦  «        ¦  «        }|dk     s||         d         dk    rdS ||         d         }|dk    rt-          | ‰¦  «         �nB|dk    rKt/          ||‰d         ¬¦  «        }|r/|‰d         k    r#‰                     t3          ||¦  «        ¦  «         �nñ|dk    rîˆfd„t5          |¦  «        D ¦   «         Šˆfd„t6          |         d         D ¦   «         }t)          t          d¦  «        d„ |D ¦   «         |                     ‰d         ¦  «        ¦  «        }	|	dk    rk||	         ‰d         k    rY‰d
         ‰d         ‰d         }}}
‰                     t3          ||	         |¦  «        ¦  «         ‰                     |
||¬¦  «         �ný|d
k    rwt)          t          d¦  «        t;          t<          ¦  «        ‰d
         t<          v r t<                               ‰d
         ¦  «        nd¦  «        }	|	dk    rt<          |	         ‰d
<   �n€|dk    rut          ‰d         ¦  «        }t)          t          d¦  «        d„ |D ¦   «         ‰d         |v r|                     ‰d         ¦  «        nd¦  «        }	|	dk    r||	         ‰d<   �n|dk    r†t          j        ‰d         |¦  «        }t)          t          t          j        ¦  «        ˆfd„|D ¦   «         ‰d         |v r|                     ‰d         ¦  «        nd¦  «        }	|	dk    r||	         ‰d<   ny|dk    rst          ‰d         ¦  «        }t)          t          d¦  «        d „ |D ¦   «         ‰d         |v r|                     ‰d         ¦  «        nd¦  «        }	|	dk    r||	         ‰d<   tA          | ¦  «         �ŒÆ)!zfOne window with the values of a widget (content, count, sort, style); a click changes that value only.r�   rÇ   r%  Tr—   r3  Úfavoriter>  z: r˜   r½   r™   r   rš   r›   r•   iX  Údonec                 ó   — g | ]\  }}|‘ŒS r[   r[   )r    Ú_keyrý   s      rf   rØ   zedit_widget.<locals>.<listcomp>’  s   € Ð6XÐ6XÐ6XÁÀÀu°uÐ6XÐ6XÐ6Xrh   r   N)r0  c                 ó2   •— h | ]\  }}|‰k    ¯|d          ’ŒS r/  r[   )r    ÚjrÍ   rC  s      €rf   r£   zedit_widget.<locals>.<setcomp>�  s&   ø€ ÐKÐKÐK¡$ ! QÀÀUÂ
À
�A�f”IÀ
À
À
rh   c                 óF   •— g | ]}|                      d ¦  «        ¯|‰v¯|‘ŒS r2  r4  r5  s     €rf   rØ   zedit_widget.<locals>.<listcomp>ž  s7   ø€ ÐhÐhÐh˜Q°a·l²lÐCTÑ6UÔ6UÐhÐZ[ÐcgÐZgÐZg�qÐZgÐZgÐZgrh   c                 óB   — g | ]}t          t          |         ¦  «        ‘ŒS r[   r<  r=  s     rf   rØ   zedit_widget.<locals>.<listcomp>Ÿ  s$   € Ð+NÐ+NÐ+NÀ­Eµ&¸´)Ñ,<Ô,<Ð+NÐ+NÐ+Nrh   )r˜   r™   rš   ii~  ij~  c                 óB   — g | ]}t          t          |         ¦  «        ‘ŒS r[   )rg   rú   ©r    Úos     rf   rØ   zedit_widget.<locals>.<listcomp>ª  s$   € Ð+SÐ+SÐ+SÀa­Eµ+¸a´.Ñ,AÔ,AÐ+SÐ+SÐ+Srh   c                 óF   •— g | ]}t          j        ‰d          |¦  «        ‘ŒS r/  )r   rý   )r    rT  rÿ   s     €rf   rØ   zedit_widget.<locals>.<listcomp>°  s+   ø€ Ð5gÐ5gÐ5gÐZ[µf´lÀ6È&Ä>ÐSTÑ6UÔ6UÐ5gÐ5gÐ5grh   ik~  c                 óB   — g | ]}t          t          |         ¦  «        ‘ŒS r[   )rg   rû   rS  s     rf   rØ   zedit_widget.<locals>.<listcomp>¶  s$   € Ð+TÐ+TÐ+TÀq­Eµ,¸q´/Ñ,BÔ,BÐ+TÐ+TÐ+Trh   )!rg   ÚS_TYPEro   r¦   rw   rù   r÷   ÚS_COUNTrÂ   r}   ÚS_SORTrú   rŒ   ÚS_STYLErû   r   rü   ÚS_CLICKrý   ÚS_DONEr,  ÚmaxÚedit_contextrH  rÆ   rô   Ú	enumerater   rC  ÚlistÚLIMITSÚS_CHOOSEr  )r  rC  r�   rÇ   rF  Úentriesr¡   r|   rü   rG  Úcountr™   rš   r7  rÿ   s    `           @@rf   Úedit_widgetre    sc  øøø€ à˜”<  yÔ!1ˆ€CØ�UŒ^€FØ€Dð6Ø�E¥&™MœM×0Ò0µµv¸fÀV¼nÔ7MÑ1NÔ1NÑOÔOÐPÐQˆØ�&Œ>×$Ò$Ð%6Ñ7Ô7ð 	^Ø�NŠN˜J­¨e©¬°tÑ(;½eÅFÈ6ÐRXÌ>ÔDZÑ>[Ô>[Ñ([Ð\Ñ]Ô]Ð]Ý�V˜F”^Ñ$Ô$ð 	NØ�NŠN˜G¥U­7¡^¤^×%:Ò%:¸6À'¼?Ñ%KÔ%KÐLÑMÔMÐMÝ�x˜˜vœÑ'Ô'Ñ(Ô(¨1Ò,Ð,Ø�NŠN˜F¥E­&¡M¤M×$8Ò$8Ð_eÐflÔ_mÕq|Ð_|Ð_|½½{È6ÐRXÌ>Ô?ZÑ9[Ô9[Ð9[ð  CEñ  %Fô  %Fð  Gñ  Hô  Hð  HÝ�y˜ œÑ(Ô(Ñ)Ô)¨AÒ-Ð-Ø�NŠN˜G¥U­7¡^¤^×%:Ò%:½5ÅÈfÐU\ÌoÔA^Ñ;_Ô;_Ñ%`Ô%`ÐaÑbÔbÐbÝ�vŒ~˜f Vœn¨cÑ2Ô2Ñ3Ô3°aÒ7Ð7Ø�NŠN˜G¥U­6¬>Ñ%:Ô%:×%AÒ%AÅ&Ä,ÈvÐV\Ì~Ð_eÐfmÔ_nÑBoÔBoÑ%pÔ%pÐqÑrÔrÐrØ�Š˜	¥5¨¡<¤<Ð0Ñ1Ô1Ð1Ø�Š˜¥¥f¡¤Ð.Ñ/Ô/Ð/Ý•u�V F¨6¤NÔ3Ñ4Ô4Ð6XÐ6XÐPWÐ6XÑ6XÔ6XÕZ]Ð^bÐdeÑZfÔZfÑgÔgˆØ�!Š8ˆ8�w˜t”} QÔ'¨6Ò1Ð1ØˆFØ�dŒm˜AÔˆØ�)ÒÐÝ˜ Ñ&Ô&Ð&Ñ&Ø�FŠ]ˆ]Ý˜C ¨v°f¬~Ð>Ñ>Ô>ˆCØð 1�s˜f VœnÒ,Ð,Ø—’�g c¨3Ñ/Ô/Ñ0Ô0Ð0ùØ�JÒÐØKÐKÐKÐK­)°GÑ*<Ô*<ÐKÑKÔKˆDØhÐhÐhÐh¥(¨3¤-°Ô"2ÐhÑhÔhˆGÝ�U 5™\œ\Ð+NÐ+NÀgÐ+NÑ+NÔ+NÐPW×P]ÒP]Ð^dÐekÔ^lÑPmÔPmÑnÔnˆFØ˜Š{ˆ{˜w vœ°&¸´.Ò@Ð@Ø%+¨G¤_°f¸V´nÀfÈWÄo˜U�t�Ø—’�g g¨f¤o°sÑ;Ô;Ñ<Ô<Ð<Ø—’ E°¸E�ÑBÔBÐBùØ�GŠ^ˆ^Ý�U 5™\œ\­4µ©<¬<ÐZ`ÐahÔZiÕmsÐZsÐZs½¿ºÀfÈWÄoÑ9VÔ9VÐ9VÐy{Ñ|Ô|ˆFØ˜Š{ˆ{Ý"(¨¤.��w‘ùØ�FŠ]ˆ]Ý˜v fœ~Ñ.Ô.ˆGÝ�U 5™\œ\Ð+SÐ+SÈ7Ð+SÑ+SÔ+SØ>DÀV¼nÐPWÐ>WÐ>W˜WŸ]š]¨6°&¬>Ñ:Ô:Ð:Ð]_ñaô aˆFà˜Š{ˆ{Ø!(¨¤��v‘ùØ�GŠ^ˆ^Ý”n V¨F¤^°SÑ9Ô9ˆGÝ�U¥6¤?Ñ3Ô3Ð5gÐ5gÐ5gÐ5gÐ_fÐ5gÑ5gÔ5gØ?EÀg¼ÐRYÐ?YÐ?Y˜WŸ]š]¨6°'¬?Ñ;Ô;Ð;Ð_añcô cˆFà˜Š{ˆ{Ø")¨&¤/��w‘øØ�GŠ^ˆ^Ý  v¤Ñ/Ô/ˆGÝ�U 5™\œ\Ð+TÐ+TÈGÐ+TÑ+TÔ+TØ?EÀg¼ÐRYÐ?YÐ?Y˜WŸ]š]¨6°'¬?Ñ;Ô;Ð;Ð_añcô cˆFà˜Š{ˆ{Ø")¨&¤/��w‘Ýˆu‰Œˆñm6rh   c                 ó  — | d         }t          || d         | d         | d         ¦  «        }t          j        d¦  «                             t          ¦  «         t          j        d¦  «         |rt          ¦   «          dS dS )zRWrite only changed values; refresh edited placements and reload only their layout.r�   rÇ   rÈ   rÉ   r´   úDialog.Close(1123)N)rÐ   rµ   r¶   ÚclearPropertyr  rm   rp   rÞ   )r  r�   rË   s      rf   Úcommitri  ½  sz   € à
�Œ,€CÝ# C¨¨yÔ)9¸5À¼;ÈÈdÌÑTÔT€NÝ„N�5ÑÔ×'Ò'­Ñ.Ô.Ð.ÝÔÐ,Ñ-Ô-Ð-Øð Ý‰Œˆˆˆðð rh   c                 ó@  ‡— t          ¦   «         }|sdS |d         |d         t          ¦   «         cŠ}}|t          |¦  «        k     }| dk    rE|rC|dk    r=||         ||dz
           c||dz
  <   ||<   t          |¦  «         t	          d¦  «         dS | dk    rU|rS|t          |¦  «        dz
  k     r=||         ||dz            c||dz   <   ||<   t          |¦  «         t	          d¦  «         dS | d	k    r|rt          ||¦  «         dS | d
k    r|r‰t          v rt          ||¦  «         dS | dk    r|rt          ||¦  «         dS | dv rb|s`t          |¦  «        t          k     rHt          ‰|¦  «        }|r4|                     t          |‰¦  «        ¦  «         t          |¦  «         dS dS | dk    rR|rP|                     |¦  «         t          |¦  «         t	          |t          |¦  «        k    r|dk    rdnd¦  «         dS | dk    rEˆfd„t          ‰         d         D ¦   «         |d<   d‰t          v c|d<   |d<   t          |¦  «         dS | dk    r&‰t           v r|d          |d<   t          |¦  «         dS | dk    r&‰t          v r|d          |d<   t          |¦  «         dS | dk    rbt#          |¦  «        rt%          |¦  «         dS t'          j        d¦  «                             t,          ¦  «         t/          j        d¦  «         dS | dk    rŠt#          |¦  «        r9t'          j        ¦   «                              dt7          t8          ¦  «        ¦  «        rDt'          j        d¦  «                             t,          ¦  «         t/          j        d¦  «         dS dS dS )z[A button of the window: up, down, edit, remove, add, defaults, hw, up_toggle, save, cancel.Nr�   rÇ   rÉ   r   r½   r%  Údownr•   rž   Úedit)rÄ   rl  ÚremoverŠ   c                 ó<   •— g | ]}t          |d          ‰¦  «        ‘ŒS )r   )rô   )r    Údr�   s     €rf   rØ   zwm_op.<locals>.<listcomp>æ  s'   ø€ ÐIÐIÐI°1�G A a¤D¨#Ñ.Ô.ÐIÐIÐIrh   rŽ   FrÈ   Ú	up_toggleÚsaver´   rg  Úcancelr:  )r	  r!  rÂ   r  r$  r^  r±   Ú	edit_herore  rÁ   rH  rù   rô   Úpopr   rÚ   r  r  ri  rµ   r¶   rh  r  rm   rp   r(  Úyesnorg   Ú	S_DISCARD)Úopr  rÇ   ÚiÚ	on_widgetr|   r�   s         @rf   Úwm_oprz  Ç  sÑ  ø€ å‰HŒH€EØð ØˆØ˜E”l E¨)Ô$4µi±k´k€O€Cˆ�!Ø•C˜‘L”LÒ €IØ	ˆT‚z€z�i€z A¨¢E EØ%,¨Q¤Z°¸¸Q¹´Ð"ˆ��A‘‰˜ ™
Ýˆu‰ŒˆÝ�RÑÔÐÐÐØ	ˆvŠˆ˜)ˆ¨­C°©L¬L¸1Ñ,<Ò(<Ð(<Ø%,¨Q¤Z°¸¸Q¹´Ð"ˆ��A‘‰˜ ™
Ýˆu‰ŒˆÝ�Q‰ŒˆˆˆØ	ˆyŠˆ˜YˆÝ�U˜AÑÔÐÐÐØ	ˆvŠˆ˜)ˆ¨­}Ð(<Ð(<Ý�%˜ÑÔÐÐÐØ	ˆvŠˆ˜)ˆÝ�E˜1ÑÔÐÐÐØ	ˆÐ	Ð	 yÐ	µS¸±\´\ÅEÒ5IÐ5IÝ˜˜WÑ%Ô%ˆØð 	Ø�NŠN�7 3¨Ñ,Ô,Ñ-Ô-Ð-Ý�5‰MŒMˆMˆMˆMð	ð 	ð 
ˆxŠˆ˜IˆØ�Š�A‰ŒˆÝˆu‰ŒˆÝ˜1¥ G¡¤Ò,Ð,°°Q²°�R�R¸AÑ>Ô>Ð>Ð>Ð>Ø	ˆzÒ	Ð	ØIÐIÐIÐI½À¼ÀaÔ8HÐIÑIÔIˆˆiÑØ#(¨#µ¨/Ð ˆˆd‰�U˜4‘[Ýˆu‰ŒˆˆˆØ	ˆtŠˆ˜�|Ð+Ð+Ø œ+�oˆˆd‰Ýˆu‰ŒˆˆˆØ	ˆ{Ò	Ð	˜s¥h˜˜Ø œ+�oˆˆd‰Ýˆu‰ŒˆˆˆØ	ˆvŠˆÝ�%‰=Œ=ð 	6Ý�5‰MŒMˆMˆMˆMåŒN˜5Ñ!Ô!×/Ò/µÑ6Ô6Ð6ÝÔÐ 4Ñ5Ô5Ð5Ð5Ð5Ø	ˆxŠˆÝ�e‰}Œ}ð 	6¥¤Ñ 0Ô 0× 6Ò 6°|ÅUÍ9ÑEUÔEUÑ VÔ Vð 	6ÝŒN˜5Ñ!Ô!×/Ò/µÑ6Ô6Ð6ÝÔÐ 4Ñ5Ô5Ð5Ð5Ð5ð 
ˆð	6ð 	6rh   c                 ó¨   — ddl m} | d         |         } ||d         |                     d¦  «        ¦  «        }|�||d<   t          | ¦  «         d S d S )Nr   ©rl  rÇ   r—   r�   )Úwcs.skin.context_dialogsrl  rÃ   r  ©r  rC  rl  rÿ   Úconfigs        rf   r^  r^  û  sj   € Ø-Ð-Ð-Ð-Ð-Ð-Ø�9Ô˜eÔ$€FØˆT�&˜”. &§*¢*¨VÑ"4Ô"4Ñ5Ô5€FØÐØˆˆv‰Ýˆu‰Œˆˆˆð Ðrh   c                 ó¨   — ddl m} | d         |         } ||d         |                     d¦  «        ¦  «        }|�||d<   t          | ¦  «         d S d S )Nr   ©rs  rÇ   r—   rž   )r}  rs  rÃ   r  r~  s        rf   rs  rs    sj   € Ø:Ð:Ð:Ð:Ð:Ð:Ø�9Ô˜eÔ$€FØˆT�&˜”. &§*¢*¨VÑ"4Ô"4Ñ5Ô5€FØÐØˆˆv‰Ýˆu‰Œˆˆˆð Ðrh   c                 óª  — ddl m} ddlm} |                     | ¦  «        \  }}}|r¥|t
          v rž ||d         |                     d¦  «        ¦  «        }|�yt          |||d         |d         |d         |d	         |d
         |d         p| |                     d¦  «        |¦
  «
        }|r(t          |¦  «         t          ||h¦  «         dS dS dS dS dS )z`The hero button editor of one saved widget (the context menu, More options, C on a hero button).r   r”   r�  r—   rž   Nr˜   r™   rš   r›   rœ   r�   )
r¤   r•   r}  rs  Úfind_widgetr±   rÃ   r®   r²   r»   ©Úidentityr•   rl  r�   r¬   rÿ   r  rÎ   s           rf   Úedit_saved_heror†    s  € à Ð Ð Ð Ð Ð Ø:Ð:Ð:Ð:Ð:Ð:Ø×(Ò(¨Ñ2Ô2�N€CˆˆFØð )�#�Ð&Ð&Ø��f˜V”n f§j¢j°Ñ&8Ô&8Ñ9Ô9ˆØÐÝ  Q¨¨v¬¸¸w¼ÈÐPVÌÐY_Ð`gÔYhÐjpÐqxÔjyØ & u¤Ð 9°¸6¿:º:ÀfÑ;MÔ;MÈvñWô WˆFàð )Ý˜3‘”�Ý˜s Q CÑ(Ô(Ð(Ð(Ð(ð)ð )Ð&Ð&àÐð)ð )rh   c                 óæ  — ddl m} ddlm} |                     | ¦  «        \  }}}|rÅ ||d         |                     d¦  «        |                     d¦  «                             |                     t          |d                  ¦  «        ¦  «        ¬¦  «        }|�Tt          |||d         |d         |d	         |d
         |d         |d         p| |¦	  «	        }|rt          ||h¦  «         d S d S d S d S )Nr   r”   r|  r—   r�   iÀ  )rW   r˜   r™   rš   r›   rœ   )r¤   r•   r}  rl  rƒ  rÃ   Útextro   r¦   r®   r»   r„  s           rf   Úedit_saved_contextr‰    s<  € Ø Ð Ð Ð Ð Ð Ø-Ð-Ð-Ð-Ð-Ð-Ø×(Ò(¨Ñ2Ô2�N€CˆˆFØð )Ø��f˜V”n f§j¢j°Ñ&8Ô&8ÀÇÂÈUÑ@SÔ@S×@ZÒ@ZÐ[b×[gÒ[gÕhnÐouÐv|Ôo}Ôh~Ñ[Ô[ñ  AAô  AAð  Bñ  Bô  BˆØÐÝ  Q¨¨v¬¸¸w¼ÈÐPVÌÐY_Ð`gÔYhÐjpÐqxÔjyØ & u¤Ð 9°¸6ñCô CˆFàð )Ý˜s Q CÑ(Ô(Ð(Ð(Ð(ð)ð )àÐð)ð )rh   c                 ó`   — t                                | ¦  «        }|rt          |¦  «         dS dS )uY   The Info key on a Home main menu item opens the widget manager of that section (070 Â§5).N)ÚMENU_SECTIONSrÃ   r  )Úmenu_idr�   s     rf   Úopen_for_menu_itemr�  )  s;   € å
×
Ò
˜GÑ
$Ô
$€CØ
ð Ý�SÑÔÐÐÐðð rh   c                 óV  — |                       dd¦  «        |                       dd¦  «        }}|dk    r,ddlm} |                     ¦   «         rt	          ¦   «          d S d S |dk    r#t          |pd ¦  «        rt	          ¦   «          d S d S |dk    r|t          v rt          |¦  «         d S |d	k    r%t          |                       d
d¦  «        ¦  «         d S |dk    r%t          |                       dd¦  «        ¦  «         d S |dk    r%t          |                       dd¦  «        ¦  «         d S d S )NÚactionr   r�   Úskin_defaultsr   rÒ   Úskin_slots_defaultsÚ
skin_slotsÚskin_wmrw  Úskin_menu_itemr�   Úskin_context_editÚctx)rÃ   r¤   rŠ   ÚapplyrÞ   rá   r   r  rz  r�  r‰  )Úparamsr�  r�   rŠ   s       rf   Úrunr™  0  s\  € Ø—*’*˜X rÑ*Ô*¨F¯JªJ°u¸bÑ,AÔ,AˆC€FØ�Ò Ð Ø%Ð%Ð%Ð%Ð%Ð%Ø�>Š>ÑÔð 	Ý‰MŒMˆMˆMˆMð	ð 	à	Ð(Ò	(Ð	(Ý˜#˜+ Ñ&Ô&ð 	Ý‰MŒMˆMˆMˆMð	ð 	à	�<Ò	Ð	 C­8 O OÝ�SÑÔÐÐÐØ	�9Ò	Ð	Ýˆf�jŠj˜˜rÑ"Ô"Ñ#Ô#Ð#Ð#Ð#Ø	Ð#Ò	#Ð	#Ý˜6Ÿ:š: f¨bÑ1Ô1Ñ2Ô2Ð2Ð2Ð2Ø	Ð&Ò	&Ð	&Ý˜6Ÿ:š: e¨RÑ0Ô0Ñ1Ô1Ð1Ð1Ð1ð 
'Ð	&rh   r`   )r%  )KÚ__doc__r  r  r§   rm   ra   rµ   Úwcs.library2r   Úwcs.skin.hero_contractr   r±   r   rc   rÁ   ra  r  rÚ   r¦   rx   ry   rz   rú   rû   Ú	OFF_TITLEÚEMPTY_ROW_TITLErg   rt   r}   r„   r…   rŒ   r‘   Úobjectr«   r®   r²   r»   rÐ   rÜ   rÞ   rá   r  r‹  r  rW  rX  rY  rZ  r\  rv  rA  r  rò   rô   r÷   r  r	  r  r  r  r  r!  r$  r,  rH  re  ri  rz  r^  rs  r†  r‰  r�  r™  r[   rh   rf   ú<module>r      s  ððð ð €€€Ø €€€Ø €€€à €€€Ø Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð Ø JÐ JÐ JÐ JÐ JÐ JÐ JÐ Jà"€Ø€Ø	!€ð ð {ð {ð {ð?ð ?ð ?ð@ð ð :ð :ð :ðWð Wð WðXð
 ÐoÐoÐoð>ð >ð >ð?ð ð Wð Wð Wðrð rð rðsð ð Xð Xð Xðrð rð rðsð Ð+Ð-?Ð@Ø:Ð<eÐfðhàÐ3Ð5RÐSØBÐDwÐxðzàÐVÐVÐVð:ð :ð :ð;ð Ð%Ð&Ð)QÐ(RÐ
SØÐ+Ð,Ð/]Ð.^Ð_ØÐfÐfÐfð>ð >ð >ð?ðC$ð $€ðJ *€Ø €ð
Ø˜5ð
Ø"7¸ð
Ø@TÐV[ð
à�Uð
à,¨eð
à5BÀEð
àK]Ð_dð
àftÐv{ð
ð �Uð
ð .¨uð
ð 7EÀeð
ð N\Ð]bð
ð ˜Eð	
ð $>¸uð	
ð
 ˜Uð
ð
 %=¸eð
ð �5ð
ð 
ð (¨ð
ð 1@Àð
ð I]Ð^cð
ð �uð
ð 4°Uð
ð =OÐPUð
ð XkÐlqð
ð �Uð
ð -¨eð
ð 6EÀeð
ð N_Ð`eð
ð ˜5ð
ð #5°eð
ð >RÐSXð
ð [jÐkpð
ð ˜Eð
ð $6°uð
ð 
ð 
ð ?YÐZ_ð
ð " 5ð
ð +?Àð
ð HZÐ[`ð
ð ˜%ð
ð "6°uð
ð ˜%ð
ð ">¸uð
ð GcÐdið
ð ˜%ð
ð �5ð
ð '¨ð
ð 0:¸5ð
ð CQÐRWð
ð ZhÐinð
ð  �Eð!
ð  (¨ð!
ð 
ð  ;@ÈEð!
ð 
ð 
€ð& JØAØ°"È"ð	Nð 	N€ð I€ØI€Ø ¨5¸5È%Ð[`ÐlqØ U°eð=ð =€à¨eÀÐUZÐfkØ¨5¸EÈEðSð S€à)Ñ €	ˆ?ðCð Cð Cðð ð ð	ð 	ð 	ð X€ðp€ðð ð ðBGð Gð Gð €v�x„x€ð 7;ÀÈÐTXð Oð Oð Oð OðAð Að AðMð Mð Mðð ð ð.@ð @ð @ð.ð .ð .ð
ð ð ð ð 	€Ø'°gÈvÐgrð  EPð  ^dØ!+¸È4Ð_gÐu{ð}ð }€ð Bñ R€€vˆw˜ ¨°¸JÈ	ðð ð ðAð Að AðFð Fð Fð
ð ð ðð ð ð^ð ^ð ^ð-ð -ð -ðnð nð nð*0ð 0ð 0ð"Bð Bð BðDð Dð Dð
Gð Gð Gð Gðð ð ð ð*;ð ;ð ;ð|ð ð ð16ð 16ð 16ðhð ð ðð ð ð)ð )ð )ð
)ð 
)ð 
)ðð ð ð2ð 2ð 2ð 2ð 2rh   