§
   %ëiÃø¥ã                   ó^  — 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mZ ddlm	Z
 ddlmZmZ dZdZdZd	d
dddœZd„ e                     ¦   «         D ¦   «         ZdddddœZd\  ZZZdZd\  ZZd\  ZZZZd\  ZZ d\  Z!Z"Z#dddddœdddddœd dd!ddœd"d#d$ddœd%œZ$d&„ Z% G d'„ d(ej&        ¦  «        Z'dS ))uâ  The "Ceny AI" card: what the AI costs, by model and purpose, and the history of the calls, with deleting.

A modal card in the look of the Millionaire game (games/DialogAICosts.xml, generated by scripts/game_dialog/
gen_ai_costs.py); opened from the hero buttons of the MilionÃ¡Å™ section (`action=ai_costs`). The data comes from
wcs/ai/usage_view.py, the history from wcs/ai/usage_store.py. Pages: overview, models, purposes, history and the detail
of a history entry (its calls).
é    N)Úusage_store)Ú
usage_view)Úformat_costÚ
usd_to_czkzgames/DialogAICosts.xmlé
   é\   ÚoverviewÚmodelsÚpurposesÚhistory)iå%  iæ%  iç%  iè%  c                 ó   — i | ]\  }}||“Œ	S © r   )Ú.0ÚcontrolÚpages      úb/Users/chudy/Library/Application Support/Kodi/addons/plugin.video.milionar/wcs/ai/DialogAICosts.pyú
<dictcomp>r      s   € ÐHÐHÐH¡ ¨$ˆt�WÐHÐHÐHó    ÚtodayÚweekÚmonthÚall)iï%  ið%  iñ%  iò%  )i!&  i"&  i#&  iø%  )iI&  é   )é   i¬  éž   éT   )é   é   )ÚFFE8B860ÚFFFBFBFDÚ33FFFFFFÚ	col_modelÚ	col_callsÚ	col_shareÚcol_cost)ÚCol1ÚCol3ÚCol4ÚCol5Úcol_purpose_tokensÚ	col_entryÚcol_whenÚcol_timeÚcol_responseÚcol_purpose©r
   r   r   Údetailc                  óª   — t          j        ¦   «         } t          t          |                      d¦  «        dd¦  «        }|                     ¦   «          ~dS )z-Opens the card and returns when it is closed.ÚpathÚDefaultÚ1080iN)Ú	xbmcaddonÚAddonÚAICostsDialogÚXMLÚgetAddonInfoÚdoModal)ÚaddonÚwindows     r   Úshow_ai_costsr>   +   sG   € åŒOÑÔ€EÝ�3 × 2Ò 2°6Ñ :Ô :¸IÀwÑOÔO€FØ
‡N‚NÑÔÐØˆˆr   c                   ó’   ‡ — e Zd Zdˆ fd„	Zd„ Zˆ fd„Zd„ Zd„ Zd„ Zdd
„Z	dd„Z
d„ Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zd„ Zd„ Zˆ xZS )r8   r4   r5   c                 óT  •— t          ¦   «                              ||||¦  «         t          j        ¦   «         | _        t          j        t          j        | j        ¦  «        | j        ¦  «        | _        d| _	        t
          j
        | _        d| _        d| _        d| _        g | _        d S )Nr	   Ú r   )ÚsuperÚ__init__r6   r7   r<   ÚviewÚTextsÚload_stringsÚtextsr   ÚDEFAULT_PERIODÚperiodÚ
detail_keyÚdetail_titleÚdetail_originÚrows)ÚselfÚxml_filenameÚscript_pathÚskinÚthemeÚ	__class__s        €r   rC   zAICostsDialog.__init__4   s…   ø€ Ý‰Œ×Ò˜ {°D¸%Ñ@Ô@Ð@Ý”_Ñ&Ô&ˆŒ
Ý”Z¥Ô 1°$´*Ñ =Ô =¸t¼zÑJÔJˆŒ
ØˆŒ	ÝÔ)ˆŒØˆŒØˆÔØ&ˆÔØˆŒ	ˆ	ˆ	r   c           	      ó   — | j         j        }|d                              ¦   «         }|                      dd                     d„ |                     ¦   «         D ¦   «         ¦  «        ¦  «         |                      d|d                              d                     t          ¦   «         ¦  «                             dd	¦  «        ¦  «        ¦  «         |                      d
| j	        ¦  «         |  
                    d¦  «         d S )NÚtitlezAICosts.TitleSpacedz  c              3   ó@   K  — | ]}d                       |¦  «        V — ŒdS )ú N)Újoin)r   Úwords     r   ú	<genexpr>z'AICostsDialog.onInit.<locals>.<genexpr>C   s,   è è € Ð9cÐ9cÈT¸#¿(º(À4¹.¼.Ð9cÐ9cÐ9cÐ9cÐ9cÐ9cr   zAICosts.RateÚratez{:.2f}ú.ú,úAICosts.Periodr	   )rG   ÚsÚupperÚsetPropertyrX   ÚsplitÚformatr   ÚreplacerI   Ú_show)rN   r_   rU   s      r   ÚonInitzAICostsDialog.onInit@   sÚ   € ØŒJŒLˆØ�'”
× Ò Ñ"Ô"ˆØ×ÒÐ.°·	²	Ð9cÐ9cÐUZ×U`ÒU`ÑUbÔUbÐ9cÑ9cÔ9cÑ0cÔ0cÑdÔdÐdØ×Ò˜¨¨6¬×)9Ò)9¸(¿/º/Í*É,Ì,Ñ:WÔ:W×:_Ò:_Ð`cÐehÑ:iÔ:iÑ)jÔ)jÑkÔkÐkØ×ÒÐ)¨4¬;Ñ7Ô7Ð7Ø�
Š
�:ÑÔÐÐÐr   c                 ó:  •— |                      ¦   «         t          t          fv rV| j        dk    r5|                      | j        ¦  «         |                      t          ¦  «         n|                      ¦   «          d S t          ¦   «          
                    |¦  «         d S )Nr1   )ÚgetIdÚACTION_PREVIOUS_MENUÚACTION_NAV_BACKr   re   rL   Ú
setFocusIdÚLISTÚcloserB   ÚonAction)rN   ÚactionrS   s     €r   rn   zAICostsDialog.onActionH   sƒ   ø€ Ø�<Š<‰>Œ>Õ2µOÐDÐDÐDØŒy˜HÒ$Ð$Ø—
’
˜4Ô-Ñ.Ô.Ð.Ø—’¥Ñ%Ô%Ð%Ð%à—
’
‘”�ØˆFÝ‰Œ×Ò˜Ñ Ô Ð Ð Ð r   c                 ó    — t                                |¦  «        }|r/||                      ¦   «         k    r|                      |¦  «         dS dS dS )z=The page buttons work like tabs: focusing one opens its page.N)ÚPAGE_CONTROLSÚgetÚ_tabre   )rN   Ú
control_idr   s      r   ÚonFocuszAICostsDialog.onFocusR   sW   € å× Ò  Ñ,Ô,ˆØð 	�D˜DŸIšI™KœKÒ'Ð'Ø�JŠJ�tÑÔÐÐÐð	ð 	Ð'Ð'r   c                 ó  — |t           v r|                      t          ¦  «         d S |t          v rVt          |         | _        |                      d| j        ¦  «         |                      |                      ¦   «         ¦  «         d S |t          k    r|                      ¦   «          d S |t          k    r|  
                    ¦   «          d S |t          k    r|                      ¦   «          d S |t          k    r|                      ¦   «          d S d S )Nr^   )rq   rk   rl   ÚCHIP_CONTROLSrI   ra   re   rs   Ú	_open_rowÚDELETEÚ_deleteÚEXPORTÚ_exportÚCLOSErm   )rN   rt   s     r   ÚonClickzAICostsDialog.onClickX   sò   € Ø�Ð&Ð&Ø�OŠO�DÑ!Ô!Ð!Ð!Ð!Ø�=Ð(Ð(Ý'¨
Ô3ˆDŒKØ×ÒÐ-¨t¬{Ñ;Ô;Ð;Ø�JŠJ�t—y’y‘{”{Ñ#Ô#Ð#Ð#Ð#Ø�4ÒÐØ�NŠNÑÔÐÐÐØ�6Ò!Ð!Ø�LŠL‰NŒNˆNˆNˆNØ�6Ò!Ð!Ø�LŠL‰NŒNˆNˆNˆNØ�5Ò Ð Ø�JŠJ‰LŒLˆLˆLˆLð !Ð r   c                 ó*   — | j         dk    rdn| j         S )zNThe page button that is lit: the detail of a history entry belongs to History.r1   r   )r   ©rN   s    r   rs   zAICostsDialog._tabi   s   € à œI¨Ò1Ð1ˆyˆy°t´yÐ@r   Fc                 óÆ  ‡ — |‰ _         ‰                      d|¦  «         |r‰                      ¦   «         nd}‰ j        j        }|dk    �rMt          j        ‰ j        ‰ j        ¦  «        }dD ]»}‰                      d|z   ||                     ¦   «                  ¦  «         ‰                      d 	                    |¦  «        ||                     ¦   «         dz            ¦  «         ‰                      d 	                    |¦  «        ||                     ¦   «         d	z            ¦  «         Œ¼‰                      d
d 	                    |d         |d         |d         |d         |d         |d         ¦  «        ¦  «         ‰  
                    |¦  «         |d         }nŽ ˆ fd„ˆ fd„ˆ fd„ˆ fd„dœ|         ¦   «         }‰                      d|dk    r‰ j        n||         ¦  «         t          |                              ¦   «         D ]$\  }}‰                      d|z   ||         ¦  «         Œ%‰                      |pdd|d         dœg|¦  «         ‰                      t           ‰                      ¦   «                  ¦  «        }	‰                      t$          ¦  «                             |	¦  «         ‰                      t)          t*          ¦  «        ¦  «                             |	¦  «         d S )NzAICosts.Pager   r	   )ÚCostÚCallsÚTokensÚSavingszAICosts.zAICosts.{}NoteÚ_notezAICosts.{}Note2Ú_note2zAICosts.Factsu   {} {}  Â·  {} {}  Â·  {} {}Útoday_labelr   Úmonth_labelr   Úoverall_labelÚoverallrM   c                  óB   •— t          j        ‰ j        ‰ j        ¦  «        S ©N)rD   r
   rG   rI   r€   s   €r   ú<lambda>z%AICostsDialog._show.<locals>.<lambda>}   s   ø€ ¥d¤k°$´*¸d¼kÑ&JÔ&J€ r   c                  óB   •— t          j        ‰ j        ‰ j        ¦  «        S r�   )rD   r   rG   rI   r€   s   €r   rŽ   z%AICostsDialog._show.<locals>.<lambda>~   s   ø€ ­¬°d´jÀ$Ä+Ñ(NÔ(N€ r   c                  óB   •— t          j        ‰ j        ‰ j        ¦  «        S r�   )rD   r   rG   rI   r€   s   €r   rŽ   z%AICostsDialog._show.<locals>.<lambda>   s   ø€ ¥t¤|°D´JÀÄÑ'LÔ'L€ r   c                  óB   •— t          j        ‰ j        ‰ j        ¦  «        S r�   )rD   r1   rG   rJ   r€   s   €r   rŽ   z%AICostsDialog._show.<locals>.<lambda>€   s   ø€ ¥d¤k°$´*¸d¼oÑ&NÔ&N€ r   r0   zAICosts.Headingr1   ÚemptyrA   )ÚkindÚkeyÚc1)r   ra   Ú	_positionrG   r_   rD   r	   rI   Úlowerrc   Ú_draw_chartrK   ÚCOLUMNSÚitemsÚ_fillÚ
getControlÚTAB_CONTROLrs   rl   ÚcontrolLeftÚminrw   )
rN   r   Úkeep_positionÚpositionr_   ÚdataÚnamerM   ÚcolumnÚtabs
   `         r   re   zAICostsDialog._showm   sö  ø€ ØˆŒ	Ø×Ò˜¨Ñ.Ô.Ð.Ø'4Ð;�4—>’>Ñ#Ô#Ð#¸!ˆØŒJŒLˆØ�:ÒÑÝ”= ¤¨T¬[Ñ9Ô9ˆDØ>ð `ð `�Ø× Ò  ¨dÑ!2°D¸¿º¹¼Ô4FÑGÔGÐGØ× Ò Ð!1×!8Ò!8¸Ñ!>Ô!>ÀÀTÇZÂZÁ\Ä\ÐT[ÑE[Ô@\Ñ]Ô]Ð]Ø× Ò Ð!2×!9Ò!9¸$Ñ!?Ô!?ÀÀdÇjÂjÁlÄlÐU]ÑF]ÔA^Ñ_Ô_Ð_Ð_Ø×Ò˜_Ð.K×.RÒ.RØ�-Ô  $ w¤-°°=Ô1AÀ4ÈÄ=ÐRSÐTcÔRdÐfjÐktÔfuñ/wô /wñ xô xð xà×Ò˜TÑ"Ô"Ð"Ø˜”<ˆDˆDðVÐJÐJÐJÐJØ NÐ NÐ NÐ NØLÐLÐLÐLØNÐNÐNÐNðPð Pð QUôVñ Xô XˆDð ×ÒÐ.ÀTÈXÒEUÐEU°Ô0AÐ0AÐ[\Ð]aÔ[bÑcÔcÐcÝ '¨¤× 3Ò 3Ñ 5Ô 5ð ?ð ?‘�˜Ø× Ò  ¨fÑ!4°a¸´gÑ>Ô>Ð>Ð>Ø�
Š
�4ÐK W°R¸qÀ¼zÐJÐJÐKÈXÑVÔVÐVØ�oŠo�k¨$¯)ª)©+¬+Ô6Ñ7Ô7ˆØ�Š�ÑÔ×)Ò)¨#Ñ.Ô.Ð.Ø�Š��MÑ*Ô*Ñ+Ô+×7Ò7¸Ñ<Ô<Ð<Ð<Ð<r   r   c           
      ó  — || _         g }|D �]}t          j        |d         ¬¦  «        }dD ],}|                     ||                     |d¦  «        ¦  «         Œ-|                     d|d         ¦  «         |                     d|                     d¦  «        rdnd¦  «         |d         d	v }|                     d
|rdnd¦  «         |                     dt          |                     dd¦  «        ¦  «        ¦  «         |                     |¦  «         �Œ|                      t          ¦  «        }| 	                    ¦   «          | 
                    |¦  «         |                     t          |t          |¦  «        dz
  ¦  «        ¦  «         d S )Nr•   )Úlabel)r•   Úc2Úc3Úc4Úc5rA   r“   ÚerrorÚtrueÚfalse)ÚmodelÚpurposeÚbarÚsharer   é   )rM   ÚxbmcguiÚListItemra   rr   ÚstrÚappendrœ   rl   ÚresetÚaddItemsÚ
selectItemrŸ   Úlen)	rN   rM   r¡   rš   ÚrowÚitemr¤   Úhas_barr   s	            r   r›   zAICostsDialog._fill‰   s~  € ØˆŒ	ØˆØð 		ñ 		ˆCÝÔ#¨#¨d¬)Ð4Ñ4Ô4ˆDØ8ð >ð >�Ø× Ò  ¨¯ª°¸Ñ)<Ô)<Ñ=Ô=Ð=Ð=Ø×Ò˜V S¨¤[Ñ1Ô1Ð1Ø×Ò˜W°·²¸Ñ0@Ô0@Ð&M f fÀgÑNÔNÐNØ˜&”kÐ%9Ð9ˆGØ×Ò˜U¨gÐ$B F F¸7ÑCÔCÐCØ×Ò˜W¥c¨#¯'ª'°'¸1Ñ*=Ô*=Ñ&>Ô&>Ñ?Ô?Ð?Ø�LŠL˜ÑÔÐÑØ—/’/¥$Ñ'Ô'ˆØ�Š‰ŒˆØ×Ò˜ÑÔÐØ×Ò�3˜x­¨U©¬°a©Ñ8Ô8Ñ9Ô9Ð9Ð9Ð9r   c                 óÄ  — |d         }t          d„ |D ¦   «         pdg¦  «        }t          t          t          ¦  «        z  }t	          t          ¦  «        D �]O}|                      t          |z   ¦  «        }|t          |¦  «        k     r||         d         nd}|dk    rH|dk    rBt          t          t          t          t          t          z
  |z  |z  ¦  «        ¦  «        ¦  «        nt          }|                     t          t          ||z  z   |t          z
  dz  z   ¦  «        t          |z
  ¦  «         |                     t          ¦  «         |                     |¦  «         |                     |dk    rt&          n#|t          |¦  «        dz
  k    rt(          nt*          ¦  «         �ŒQ|d         d         |d         d         }
}	|                      d	d
                     t          |	dd…         ¦  «        t          |	dd…         ¦  «        ¦  «        ¦  «         |                      d| j        j        d         ¦  «         |                      d|dk    r|d         nd¦  «         dS )zXThe daily bars: 30 images the skin declares, placed here because their heights are data.Úchartc                 ó   — g | ]
}|d          ‘ŒS )Úcostr   )r   Údays     r   ú
<listcomp>z-AICostsDialog._draw_chart.<locals>.<listcomp>ž   s   € Ð0Ð0Ð0 C�C˜”KÐ0Ð0Ð0r   r   rÂ   é   r³   rÃ   éÿÿÿÿzAICosts.ChartFromz{}. {}.é   r   é   é   zAICosts.ChartTor   zAICosts.ChartMaxÚ	chart_maxrA   N)ÚmaxÚCHART_WÚfloatÚ	BAR_COUNTÚrangerœ   Ú	BAR_FIRSTr»   ÚBAR_MINÚintÚroundÚ
CHART_BASEÚ	CHART_TOPÚsetPositionÚCHART_XÚ	BAR_WIDTHÚsetWidthÚ	setHeightÚsetColorDiffuseÚEMPTYÚTODAYÚGOLDra   rc   rG   r_   )rN   r¢   ÚdaysÚpeakÚstepÚindexr±   rÂ   ÚheightÚfirstÚlasts              r   r˜   zAICostsDialog._draw_chart›   s/  € à�GŒ}ˆÝÐ0Ð0¨4Ð0Ñ0Ô0Ð7°Q°CÑ8Ô8ˆÝ��yÑ)Ô)Ñ)ˆÝ�9Ñ%Ô%ð 	cñ 	cˆEØ—/’/¥)¨eÑ"3Ñ4Ô4ˆCØ*/µ#°d±)´)Ò*;Ð*;�4˜”;˜vÔ&Ð&ÀˆDØY]Ð`aÒYaÐYaÐfjÐmnÒfnÐfn•S�¥#¥e­Z½)Ñ-CÀtÑ,KÈdÑ,RÑ&SÔ&SÑ"TÔ"TÑUÔUÐUÕt{ˆFØ�OŠO�C¥¨%°$©,Ñ 6¸$ÅÑ:JÈaÑ9OÑ OÑPÔPÕR\Ð_eÑReÑfÔfÐfØ�LŠL�Ñ#Ô#Ð#Ø�MŠM˜&Ñ!Ô!Ð!Ø×Ò¨°ª¨¥ ÀÍ#ÈdÉ)Ì)ÐVWÉ-ÒAWÐAW½¸Õ]aÑbÔbÐbÑbØ˜1”g˜e”n d¨2¤h¨u¤oˆtˆØ×ÒÐ,¨i×.>Ò.>½sÀ5ÈÈ2ÈÄ;Ñ?OÔ?OÕQTÐUZÐ[\Ð]^Ð[^ÔU_ÑQ`ÔQ`Ñ.aÔ.aÑbÔbÐbØ×ÒÐ*¨D¬J¬L¸Ô,AÑBÔBÐBØ×ÒÐ+À$ÈÂ(À(¨T°+Ô->Ð->ÐPRÑSÔSÐSÐSÐSr   c                 óv   — t          d|                      t          ¦  «                             ¦   «         ¦  «        S ©Nr   )rË   rœ   rl   ÚgetSelectedPositionr€   s    r   r–   zAICostsDialog._position®   s*   € Ý�1�d—o’o¥dÑ+Ô+×?Ò?ÑAÔAÑBÔBÐBr   c                 óŒ   — |                       ¦   «         }d|cxk    rt          | j        ¦  «        k     rn n| j        |         ni S rç   )r–   r»   rM   )rN   r¡   s     r   Ú_rowzAICostsDialog._row±   sL   € Ø—>’>Ñ#Ô#ˆØ&'¨8Ð&DÐ&DÒ&DÐ&Dµc¸$¼)±n´nÒ&DÐ&DÐ&DÐ&DÐ&DˆtŒy˜Ô"Ð"È"ÐLr   c                 óò   — |                       ¦   «         }|                     d¦  «        dk    rI| j        dv r| j        nd| _        |d         |d         c| _        | _        |                      d¦  «         d S d S )Nr“   Úentry)r	   r   r   r”   r•   r1   )rê   rr   r   rL   rJ   rK   re   )rN   r¼   s     r   rx   zAICostsDialog._open_rowµ   sy   € Ø�iŠi‰kŒkˆØ�7Š7�6‰?Œ?˜gÒ%Ð%Ø.2¬iÐ;RÐ.RÐ.R ¤ ÐXaˆDÔØ14°U´¸SÀ¼YÐ.ˆDŒO˜TÔ.Ø�JŠJ�xÑ Ô Ð Ð Ð ð &Ð%r   c                 óæ  — | j         j        }|                      ¦   «         }g }|                     d¦  «        dk    r$|                     |d         d|d         f¦  «         |                     d¦  «        dk    s| j        dk    r|                     d¦  «        dk    r|d         n| j        }|                     |d                              |                     d¦  «        dk    r|d	         n| j        ¦  «        d|f¦  «         |                     d
¦  «        rÌ|                     |d                              |  	                    |d
         ¦  «        ¦  «        d
|d
         f¦  «         |                     |d                              d                     t          |d
         dd…         ¦  «        |d
         d d…         ¦  «        ¦  «        d|d
         d d…         f¦  «         |                     d¦  «        dk    r=|                     |d                              |d         ¦  «        d|d         f¦  «         |                     |d         dd f¦  «         t          j        ¦   «                              |d         d„ |D ¦   «         ¦  «        }|dk     rd S ||         \  }}}t          j        ||¦  «        }	|	d         sAt          j        ¦   «                              |d         |d         t          j        d¦  «         d S |d                              ||	d         t%          |	d          | j        ¦  «        ¬!¦  «        }
t          j        ¦   «                              |d         |
|d"         ¬#¦  «        sd S t          j        ||¦  «         t          j        ¦   «                              |d         |d$                              |¦  «        t          j        d%¦  «         |                      |¦  «         d S )&Nr“   ÚcallÚdelete_callÚcall_idrì   r1   r”   Údelete_entryr•   rÃ   Ú
delete_dayÚdelete_monthz{}. {}rÈ   rÉ   é   r   r¯   Údelete_providerÚproviderÚ
delete_allr   Údelete_titlec                 ó   — g | ]\  }}}|‘Œ	S r   r   )r   r§   Ú_s      r   rÄ   z)AICostsDialog._delete.<locals>.<listcomp>Ì   s   € Ð<^Ð<^Ð<^Á{ÀuÈaÐQR¸UÐ<^Ð<^Ð<^r   r   ÚrecordsrU   ÚnothingiÄ	  Údelete_confirmÚrequestsrÂ   )ÚwhatÚcountrÂ   Údelete_short)ÚyeslabelÚdeletedi¸  )rG   r_   rê   rr   r·   r   rJ   rc   rK   Ú_daterÒ   r´   ÚDialogÚselectÚstoreÚpreview_deleteÚnotificationÚNOTIFICATION_INFOr   r<   ÚyesnoÚdeleteÚ_refresh_after_delete)rN   r_   r¼   Úchoicesr”   Úchosenr§   r“   ÚvalueÚpreviewÚtexts              r   rz   zAICostsDialog._delete½   sÇ  € ØŒJŒLˆØ�iŠi‰kŒkˆØˆØ�7Š7�6‰?Œ?˜fÒ$Ð$Ø�NŠN˜A˜mÔ,¨f°c¸)´nÐEÑFÔFÐFØ�7Š7�6‰?Œ?˜gÒ%Ð%¨¬°hÒ)>Ð)>Ø #§¢¨¡¤°7Ò :Ð :�#�e”*�*ÀÄˆCØ�NŠN˜A˜nÔ-×4Ò4À#Ç'Â'È&Á/Ä/ÐU\ÒB\ÐB\°S¸´Y°YÐbfÔbsÑtÔtÐv}ð  @Cð  Dñ  Eô  Eð  EØ�7Š7�5‰>Œ>ð 	GØ�NŠN˜A˜lœO×2Ò2°4·:²:¸cÀ%¼jÑ3IÔ3IÑJÔJÈEÐSVÐW\ÔS]Ð^Ñ_Ô_Ð_Ø�NŠN˜A˜nÔ-×4Ò4°X·_²_ÅSÈÈUÌÐTUÐVWÐTWÌÑEYÔEYÐ[^Ð_dÔ[eÐfhÐghÐfhÔ[iÑ5jÔ5jÑkÔkÐmtÐvyÐzô  wAð  BDð  CDð  BDô  wEð  Fñ  Gô  Gð  GØ�7Š7�6‰?Œ?˜gÒ%Ð%Ø�NŠN˜AÐ/Ô0×7Ò7¸¸J¼ÑHÔHÈ*ÐVYÐZdÔVeÐfÑgÔgÐgØ�Š˜˜,œ¨°Ð5Ñ6Ô6Ð6Ý”Ñ!Ô!×(Ò(¨¨>Ô):Ð<^Ð<^ÐV]Ð<^Ñ<^Ô<^Ñ_Ô_ˆØ�AŠ:ˆ:ØˆFØ$ Vœ_Ñˆˆt�UÝÔ& t¨UÑ3Ô3ˆØ�yÔ!ð 	ÝŒNÑÔ×)Ò)¨!¨G¬*°a¸	´lÅGÔD]Ð_cÑdÔdÐdØˆFØÐ!Ô"×)Ò)¨u¸GÀJÔ<OÕVaÐbiÐjpÔbqÐswÔs}ÑV~ÔV~Ð)ÑÔˆÝŒ~ÑÔ×%Ò% a¨Ô&7¸ÈÈ.ÔHYÐ%ÑZÔZð 	ØˆFÝŒ�T˜5Ñ!Ô!Ð!ÝŒÑÔ×%Ò% a¨¤j°!°I´,×2EÒ2EÀeÑ2LÔ2LÍgÔNgÐimÑnÔnÐnØ×"Ò" 4Ñ(Ô(Ð(Ð(Ð(r   c                 ó”   — d                      t          | dd…         ¦  «        t          | dd…         ¦  «        | d d…         ¦  «        S )Nz
{}. {}. {}rÇ   r   rÈ   rÉ   rô   )rc   rÒ   )rÃ   s    r   r  zAICostsDialog._dateÛ   s>   € à×"Ò"¥3 s¨1¨R¨4¤y¡>¤>µ3°s¸1¸Q¸3´x±=´=À#ÀbÀqÀbÄ'ÑJÔJÐJr   c                 óÊ   — | j         dk    r;|dk    st          j        | j        ¦  «        s|                      | j        ¦  «         d S |                      | j         d¬¦  «         d S )Nr1   rî   T)r    )r   r  Úcalls_ofrJ   re   rL   )rN   r“   s     r   r  z#AICostsDialog._refresh_after_deleteß   s`   € ØŒ9˜Ò Ð  d¨f¢n n½E¼NÈ4Ì?Ñ<[Ô<[ nØ�JŠJ�tÔ)Ñ*Ô*Ð*Ð*Ð*à�JŠJ�t”y°ˆJÑ5Ô5Ð5Ð5Ð5r   c                 ó^  — t           j                             t          j        d¦  «        d¦  «        }t          j        |¦  «         t          j        ¦   «          	                    | j
        j        d         | j
        j        d                              |¦  «        t          j        d¦  «         d S )Nz3special://profile/addon_data/plugin.video.milionar/zai_usage_export.csvrU   Úexportedip  )Úosr3   rX   ÚxbmcvfsÚtranslatePathr  Ú
export_csvr´   r  r	  rG   r_   rc   r
  )rN   r3   s     r   r|   zAICostsDialog._exportæ   sœ   € ÝŒw�|Š|�GÔ1Ð2gÑhÔhÐjñ  Aô  AˆÝÔ˜ÑÔÐÝŒÑÔ×%Ò% d¤j¤l°7Ô&;¸T¼Z¼\È*Ô=U×=\Ò=\Ð]aÑ=bÔ=bÕdkÔd}ð  @Dñ  	Eô  	Eð  	Eð  	Eð  	Er   )r4   r5   )F)r   )Ú__name__Ú
__module__Ú__qualname__rC   rf   rn   ru   r~   rs   re   r›   r˜   r–   rê   rx   rz   Ústaticmethodr  r  r|   Ú__classcell__)rS   s   @r   r8   r8   3   sT  ø€ € € € € ð	ð 	ð 	ð 	ð 	ð 	ðð ð ð!ð !ð !ð !ð !ðð ð ðð ð ð"Að Að Að=ð =ð =ð =ð8:ð :ð :ð :ð$Tð Tð Tð&Cð Cð CðMð Mð Mð!ð !ð !ð)ð )ð )ð< ðKð Kñ „\ðKð6ð 6ð 6ðEð Eð Eð Eð Eð Eð Er   r8   )(Ú__doc__r  Úxbmcr6   r´   r  Úwcs.air   r  r   rD   Úwcs.ai.UsageTrackerr   r   r9   ri   rj   rq   rš   r�   rw   ry   r{   r}   rl   rÐ   rÎ   r×   rÌ   rÔ   rÕ   rØ   rÑ   rÞ   rÝ   rÜ   r™   r>   ÚWindowXMLDialogr8   r   r   r   ú<module>r&     sµ  ððð ð 
€	€	€	à €€€Ø Ð Ð Ð Ø €€€Ø €€€à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø %Ð %Ð %Ð %Ð %Ð %Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7à€ØÐ Ø€à!¨¸È9ÐUÐU€ØHÐH°-×2EÒ2EÑ2GÔ2GÐHÑHÔH€Ø f°GÀ5ÐIÐI€Ø(Ñ €ˆ�Ø€ØÑ €	ˆ9Ø*;Ñ '€ˆ�*˜iØÑ €	ˆ7Ø7Ñ €€eˆUð #¨KÀÐV`ÐaÐaØ-°{ÈKÐakÐlÐlØ#¨[À*ÐV`ÐaÐaØ!¨>À=ÐZdÐeÐeð	ð €ðð ð ðvEð vEð vEð vEð vE�GÔ+ñ vEô vEð vEð vEð vEr   