o
    Zç©jC ã                   @   sN  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Zd dlZd dl	Z	d dl
mZmZmZ d dlm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 d dlm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' d dl(Z(d dl)Z*d dl+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZL d dlMZNejO Pd¡ZQejO Pd¡ZRejO Pd¡ZSe TeU¡ZVejWejXd� dd„ ZYzeYejO ZeQd¡dƒj[Z\W n e]�y   dgZ\Y nw zeYejO ZeQd¡dƒj^Z_W n e]�y#   dgZ_Y nw zeYejO ZeRd¡dƒj[Z`W n e]�y>   dgZ`Y nw zeYejO ZeRd¡dƒj^ZaW n e]�yY   dgZaY nw d dl+Z+ee(jbd�Zceeƒ d�Zddd„ Zed d!„ Zfd"d#„ Zgd$ehd%eifd&d'„ZjG d(d)„ d)eƒZkd*d+„ Zl�dd-d.„Zmd/d0„ Znd1eid2eofd3d4„Zpd5eid2eidB fd6d7„Zqd1eid5eid2erfd8d9„Zsd:eid2eher fd;d<„Ztd=eher d2eifd>d?„Zud@d@g d d dAœZvd@awdBZxdBZydCZzdDZ{dEeid2eofdFdG„Z|dHeid2erdB fdIdJ„Z}d2eifdKdL„Z~dMdN„ ZdOdP„ Z€	Q	R	R�ddHeidSeidTeodUeodVeod2erfdWdX„Z�dYdZ„ Z‚dHeifd[d\„Zƒd]edHeifd^d_„Z„	Q�dd]edHeid`erdSeifdadb„Z…ed †ej‡dck¡ddedeefdfdg„ƒZˆed ‰ekjŠ¡dhedeefdidj„ƒZ‹ed ‰ekjŒ¡dhedeefdkdl„ƒZ�ed ‰ekjŽ¡dhedeefdmdn„ƒZ�ed †ej‡ �do¡¡ddedeefdpdq„ƒZ‘ed †ej‡drk¡ddedeefdsdt„ƒZ’ed †ej‡duk¡ddefdvdw„ƒZ“ed †ej‡dxk¡ddefdydz„ƒZ”ed †ej‡d{k¡ddefd|d}„ƒZ•d~d„ Z–d€d�„ Z—d]ed‚e˜fdƒd„„Z™ed †ej‡d…k¡ddedeefd†d…„ƒZšed †ej‡d‡k¡ddefdˆd‡„ƒZ›ed †ej‡d‰k¡ddefdŠd‰„ƒZœed †ej‡d‹k¡ddefdŒd�„ƒZ�ed ‰edŽƒ¡dhefd�d�„ƒZžed †ej‡d‘k¡ddedeefd’d“„ƒZŸed ‰ekj:¡dhedeefd”d•„ƒZ ed †ej‡d–k¡ddefd—d˜„ƒZ¡ed †ej‡ �d™¡¡ddefdšd›„ƒZ¢ed †ej‡ �dœ¡¡ddefd�dž„ƒZ£ed †ej‡ �dŸ¡¡ddefd d¡„ƒZ¤ed †ej‡d¢k¡ddefd£d¤„ƒZ¥ed †ej‡d¥k¡ddefd¦d¥„ƒZ¦ed †ej‡d§k¡ddefd¨d©„ƒZ§dªZ¨ed †ej‡ �d«¡¡ddefd¬d­„ƒZ©ed †ej‡d®k¡ddefd¯d°„ƒZªed †ej‡ �d±¡¡ddefd²d³„ƒZ«ed †ej‡ �d´¡¡ddefdµd¶„ƒZ¬ed †ej‡d·k¡ddefd¸d·„ƒZ­ed †ej‡d¹k¡ddedeefdºd»„ƒZ®ed ‰ekj¯¡dhedeefd¼d½„ƒZ°ed †ej‡ �d¾¡¡ddefd¿dÀ„ƒZ±ed †ej‡ �dÁ¡¡ddefdÂdÃ„ƒZ²ed †ej‡ �dÄ¡¡ddefdÅdÆ„ƒZ³ed †ej‡ �dÇ¡¡ddefdÈdÉ„ƒZ´ed †ej‡ �dÊ¡¡ddefdËdÌ„ƒZµed †ej‡dÍk¡ddedeefdÎdÏ„ƒZ¶ed ‰ekj·¡dhedeefdÐdÑ„ƒZ¸ed †ej‡dÒk¡ddedeefdÓdÔ„ƒZ¹ed ‰ekjº¡dhedeefdÕdÖ„ƒZ»ed †ej‡d×k¡ddedeefdØdÙ„ƒZ¼ed ‰ekj½¡dhedeefdÚdÛ„ƒZ¾ed †ej‡dÜk¡ddedeefdÝdÞ„ƒZ¿ed ‰ekjÀ¡dhedeefdßdà„ƒZÁed †ej‡dák¡ddefdâdá„ƒZÂed †ej‡ �dã¡¡ddefdädå„ƒZÃed †ej‡dæk¡ddefdçdè„ƒZÄed †ej‡dék¡ddefdêdé„ƒZÅed †ej‡dëk¡ddefdìdë„ƒZÆed †ej‡dík¡ddedeefdîdï„ƒZÇed ‰ekj=¡dhedeefdðdñ„ƒZÈed †ej‡dòk¡ddefdódô„ƒZÉed †ej‡ �dõ¡¡ddefdöd÷„ƒZÊdødù„ ZËdúdû„ ZÌdüefdýdþ„ZÍdüefdÿ�d „ZÎ�dd,„ ZÏeU�dk�r¥e  ÐeÏƒ ¡ dS dS (  é    N)ÚBotÚ
DispatcherÚF)ÚCommand)Ú
FSMContext)ÚStateÚStatesGroup)ÚMemoryStorage)ÚInlineKeyboardButtonÚCallbackQueryÚMessageÚFSInputFile)ÚInlineKeyboardBuilder)Úweb)ÚSimpleRequestHandlerÚsetup_application)ÚClient)Ú	FloodWaitÚSessionPasswordNeeded)!Ú_admins_cacheÚget_settingÚset_settingÚ	get_speedÚget_concurrentÚget_work_minutesÚget_rest_minutesÚget_accountsÚget_active_countÚadd_accountÚdel_accountÚban_accountÚ
get_bannedÚget_botsÚadd_botÚdel_botÚ
get_adminsÚ	add_adminÚ	del_adminÚget_channelsÚdel_channelÚget_force_sub_channelsÚget_all_force_sub_urlsÚcleanup_clientÚclientsÚ
stop_eventÚch_linkÚnorm_targetÚparse_bot_inputÚ
rand_delayÚ
safe_sleepÚcreate_tracked_taskÚdead_sessionsz/var/www/kodo/profilez/var/www/kodo/profilegirlz/var/www/kodo/sessions)Úlevelc                 C   s*   t j || ¡}t j |¡}|j |¡ |S ©N)Ú	importlibÚutilÚspec_from_file_locationÚmodule_from_specÚloaderÚexec_module)ÚpathÚmodule_nameÚspecÚmodule© rB   úadmin_bot.pyÚload_module_from_path5   s   rD   znames.pyÚ	names_boyÚUserzbios.pyÚbios_boyÚ Ú
names_girlÚ	bios_girl)Útoken)Ústoragec                 C   s   | t jv p	| tjv S r7   )ÚconfigÚDEV_IDSÚsharedr   ©ÚuidrB   rB   rC   Úis_authP   s   rR   c                 C   s
   | t jv S r7   )rM   rN   rP   rB   rB   rC   Úis_devS   s   
rS   c                 Ã   sŽ   �t tjƒtj }g }t|ƒD ]5}ztj|| ddd�I d H }| ||j	f¡ W q t
yD } zt d|› d|› �¡ W Y d }~qd }~ww |S )NÚHTMLT)Ú
parse_modeÚdisable_web_page_previewznotify ú: )ÚlistrM   rN   rO   r   ÚsetÚbotÚsend_messageÚappendÚ
message_idÚ	ExceptionÚlogÚwarning)ÚtextÚidsÚmsg_idsrQ   ÚmsgÚerB   rB   rC   ÚnotifyV   s   €"€ÿrf   rc   ra   c                 Ã   sj   �| D ]/\}}zt j|||dd�I d H  W q ty2 } zt d|› d|› �¡ W Y d }~qd }~ww d S )NrT   ©Úchat_idr]   ra   rU   znotify_edit rW   )rZ   Úedit_message_textr^   r_   r`   )rc   ra   rh   Úmsg_idre   rB   rB   rC   Únotify_editb   s   €"€ÿýrk   c                   @   sT   e Zd Zeƒ Zeƒ Zeƒ Zeƒ Zeƒ Zeƒ Z	eƒ Z
eƒ Zeƒ Zeƒ Zeƒ Zeƒ ZdS )ÚStatesN)Ú__name__Ú
__module__Ú__qualname__r   r#   Ú	add_phoneÚ
enter_codeÚ	enter_2faÚ	set_speedÚset_concurrentr&   Úset_work_minutesÚset_rest_minutesÚchoose_genderÚadd_sessionÚset_profile_countrB   rB   rB   rC   rl   i   s    
rl   c                 Ã   sZ  �t ƒ }| tddd�tddd�¡ | tddd�¡ | tdd	d�¡ | td
dd�¡ | tddd�¡ | tddd�¡ | tddd�tddd�¡ | tddd�¡ | tddd�¡ | tddd�tddd�¡ | tddd�tddd�¡ | td d!d�td"d#d�¡ | r�d$nd%}| td&|› �d'd�¡ | td(d)d�td*d+d�¡ | ¡ S ),Nu   Ø§Ø¶Ø§Ù�Ø© Ø¨ÙˆØª ØªÙ…ÙˆÙŠÙ„r#   ©ra   Úcallback_datau   Ø§Ù„Ø¨ÙˆØªØ§Øª Ø§Ù„Ù…Ø¶Ø§Ù�Ø©Ú	list_botsu   Ù…ØºØ§Ø¯Ø±Ø© Ù‚Ù†Ø§Ø©Úleave_ch_pg_0u    Ù…ØºØ§Ø¯Ø±Ø© ÙƒÙ„ Ø§Ù„Ù‚Ù†ÙˆØ§ØªÚ	leave_allu.   Ù…ØºØ§Ø¯Ø±Ø© Ø§Ù„Ø§Ø´ØªØ±Ø§Ùƒ Ø§Ù„Ø¥Ø¬Ø¨Ø§Ø±ÙŠÚleave_force_subu   Ø§Ø¶Ø§Ù�Ø© Ø³ÙŠØ´Ù†rx   u"   ØªØ¹Ø¯ÙŠÙ„ Ø§Ù„Ù…Ù„Ù� Ø§Ù„Ø´Ø®ØµÙŠÚedit_profilesu   Ø§Ø¶Ø§Ù�Ø© Ø±Ù‚Ù…rp   u   Ù…Ø³Ø­ Ø±Ù‚Ù…Údel_phone_pg_0u   Ø§Ù„Ø§Ø±Ù‚Ø§Ù… Ø§Ù„Ù…Ø¶Ø§Ù�Ø©Úphones_pg_0u   Ø§Ù„Ø§Ø±Ù‚Ø§Ù… Ø§Ù„Ù…Ø­Ø¶ÙˆØ±Ø©Úbanned_phones_pg_0u   Ø³Ø±Ø¹Ø© Ø§Ù„ØªØ¬Ù…ÙŠØ¹rs   u#   Ø§Ù„Ø­Ø³Ø§Ø¨Ø§Øª Ø§Ù„Ù…ØªÙˆØ§Ø²ÙŠØ©rt   u   ÙˆÙ‚Øª Ø§Ù„Ø¹Ù…Ù„ru   u   ÙˆÙ‚Øª Ø§Ù„Ø§Ø³ØªØ±Ø§Ø­Ø©rv   u   Ø¨Ø¯Ø¡ Ø§Ù„ØªØ¬Ù…ÙŠØ¹Ústart_gatheru   Ø§ÙŠÙ‚Ø§Ù� Ø§Ù„ØªØ¬Ù…ÙŠØ¹Ústop_gatherõ   ÙŠØ¹Ù…Ù„ âœ…õ   Ù„Ø§ÙŠØ¹Ù…Ù„ âœ–ï¸�õ   Ø§Ù„ØªØ¬Ù…ÙŠØ¹: Úgather_statusu   Ø§Ø¶Ø§Ù�Ø© Ø§Ø¯Ù…Ù†r&   u   Ù…Ø³Ø­ Ø§Ø¯Ù…Ù†r'   ©r   Úrowr
   Ú	as_markup)Ú	is_activeÚbÚstatusrB   rB   rC   Úmain_kbw   sH   €

þ

þ

þ

þ

þ

þr�   Úmainc                 C   s&   t ƒ }| tdd| › �d�¡ | ¡ S )Nõ   Ø±Ø¬ÙˆØ¹Úback_rz   rŠ   )ÚtargetrŽ   rB   rB   rC   Úback_kb�   s   r•   c                  Ã   s   �t ƒ I d H } d| › d�S )NuÄ   âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ù‡Ø°Ù‡ Ù‡ÙŠ Ù„ÙˆØ­Ø© Ø§Ù„ØªØ­ÙƒÙ… Ø§Ù„Ø®Ø§ØµØ© Ø¨Ùƒ.
âŠ± ØªÙ… ØªØ­Ø¯ÙŠØ¯ Ø§Ù„Ø³Ø±Ø¹Ø© ÙˆØ¹Ø¯Ø¯ Ø§Ù„Ø­Ø³Ø§Ø¨Ø§Øª ØªÙ„Ù‚Ø§Ø¦ÙŠØ§Ù‹.
âŠ± Ø¹Ø¯Ø¯ Ø§Ù„Ø£Ø±Ù‚Ø§Ù… Ø§Ù„ÙƒÙ„ÙŠ: uZ   
âŠ± Ù‚Ù… Ø¨Ø£Ø®ØªÙŠØ§Ø± Ø§Ù„Ø§Ø¬Ø±Ø§Ø¡ Ø§Ù„Ù…Ø·Ù„ÙˆØ¨ Ø¨Ø§Ù„Ø¶ØºØ· Ø¹Ù„Ù‰ Ø§Ù„Ø§Ø²Ø±Ø§Ø±:)r   )ÚcountrB   rB   rC   Úget_main_text¢   s   €þÿr—   Ú	file_pathÚreturnc                 C   sV   z$ddl }| | ¡}| ¡ }| d¡ dd„ | ¡ D ƒ}| ¡  d|v W S    Y dS )z(Check if session file is Telethon formatr   NzPRAGMA table_info(sessions)c                 S   ó   g | ]}|d  ‘qS )é   rB   )Ú.0r‹   rB   rB   rC   Ú
<listcomp>·   ó    z'is_telethon_session.<locals>.<listcomp>Úserver_addressF)Úsqlite3ÚconnectÚcursorÚexecuteÚfetchallÚclose)r˜   r    Úconnr¢   ÚcolumnsrB   rB   rC   Úis_telethon_session°   s   


r¨   Úfilenamec                 C   s¼   |   d¡r| dd… }n	|   d¡rdS dS t d|¡}|r,d| d¡ }t|ƒdkr,|S t d	|¡}|rE| d¡}t|ƒd
krCd| S |S t d|¡}|r\| d¡}t|ƒd
kr\d| S dS )z§
    Extract phone number from session filename.
    Supports:
    - +96477123456789.session
    - 12075483797_db55882d.session
    - 12082477681_2e288eb9.session
    ú.sessionNiøÿÿÿú.session-journalz	\+([\d]+)ú+r›   é   z^(\d{7,15})é
   z
(\d{7,15}))ÚendswithÚreÚsearchÚgroupÚlen)r©   ÚbaseÚmatchÚphoneÚdigitsrB   rB   rC   Ú#extract_phone_from_session_filename¿   s,   



r¸   c              
   Ã   sö   �ddddœ}t |ƒ}|sd|d< d|› �|d< |S ||d< t| ƒr,d	|d< d
|d< |S tj t|› d�¡}zt | |¡ t|ƒI dH  d|d< t	 
d|› �¡ W |S  tyz } zd|d< t|ƒ|d< t	 d|› d|› �¡ W Y d}~|S d}~ww )z-Process a single session file and register itNÚunknown)r¶   r�   ÚerrorÚinvalid_namer�   zInvalid filename: rº   r¶   Útelethonz<Telethon session detected. Please convert to Pyrogram first.rª   Úsuccessz[SESSION IMPORT] Registered: z[SESSION IMPORT] Failed rW   )r¸   r¨   Úosr>   ÚjoinÚSESSIONS_DIRÚshutilÚcopy2r   r_   Úinfor^   Ústrrº   )r˜   r©   Úresultr¶   Ú	dest_pathre   rB   rB   rC   Úprocess_session_fileç   s4   €û €ûrÇ   Úzip_pathc           
      Ã   sÖ  �g }t jdd�}zÅzwt | d¡�B}dd„ | ¡ D ƒ}|sGdddœgW  d	  ƒ W W tj|d
d� ztj 	| ¡r@t 
| ¡ W S W S    Y S | |¡ W d	  ƒ n1 sVw   Y  |D ]"}tj ||¡}tj 	|¡rtj |¡}t||ƒI d	H }| |¡ q]W n- tjy“   | dddœ¡ Y n ty® }	 z| dt|	ƒdœ¡ W Y d	}	~	nd	}	~	ww W tj|d
d� ztj 	| ¡rÆt 
| ¡ W |S W |S    Y |S tj|d
d� ztj 	| ¡rät 
| ¡ W w W w    Y w )z*Extract and process session files from zipÚsessions_import_)ÚprefixÚrc                 S   s$   g | ]}|  d ¡r|  d¡s|‘qS )rª   r«   )r¯   ©rœ   ÚfrB   rB   rC   r�     s
    ÿ
þz(process_zip_sessions.<locals>.<listcomp>Úno_sessionszNo .session files found)r�   rº   NT)Úignore_errorsÚbad_zipzInvalid zip filerº   )ÚtempfileÚmkdtempÚzipfileÚZipFileÚnamelistrÁ   Úrmtreer¾   r>   ÚexistsÚremoveÚ
extractallr¿   ÚbasenamerÇ   r\   Ú
BadZipFiler^   rÄ   )
rÈ   ÚresultsÚtemp_dirÚzfÚsession_filesÚsession_fileÚ	full_pathrÚ   rÅ   re   rB   rB   rC   Úprocess_zip_sessions  sd   €
úÿíø

€û €ÿ€ûýùÿrâ   rÜ   c           	      C   s*  t | ƒ}dd„ | D ƒ}dd„ | D ƒ}dd„ | D ƒ}dd|› d�dt |ƒ› �d	t |ƒ› �d
t |ƒ› �dg}|rP| d¡ |D ]}| d|d › d�¡ q=| d¡ |rl| d¡ |D ]}| d|d › d�¡ qY| d¡ |r�| d¡ |D ]}| d¡p}d}| dd¡}| d|› d|› �¡ qud |¡S )zBuild formatted reportc                 S   ó   g | ]
}|d  dkr|‘qS )r�   r½   rB   ©rœ   rË   rB   rB   rC   r�   0  ó    z(build_session_report.<locals>.<listcomp>c                 S   s   g | ]
}|d  dvr|‘qS )r�   )r½   r¼   rB   rä   rB   rB   rC   r�   1  rå   c                 S   rã   )r�   r¼   rB   rä   rB   rB   rC   r�   2  rå   u6   ðŸ“¦ <b>ØªÙ‚Ø±ÙŠØ± Ø§Ø³ØªÙŠØ±Ø§Ø¯ Ø§Ù„Ø³ÙŠØ´Ù†Ø§Øª</b>u   ðŸ“Š Ø§Ù„Ø¥Ø¬Ù…Ø§Ù„ÙŠ: u    Ù…Ù„Ù�u   âœ… Ù†Ø¬Ø­: u   âš ï¸� Telethon: u   â�Œ Ù�Ø´Ù„: rH   u'   <b>Ø§Ù„Ø­Ø³Ø§Ø¨Ø§Øª Ø§Ù„Ù…Ø¶Ø§Ù�Ø©:</b>u     âœ“ <code>r¶   ú</code>u1   <b>Ù…Ù„Ù�Ø§Øª Telethon (ØºÙŠØ± Ù…Ø¯Ø¹ÙˆÙ…Ø©):</b>u     âš ï¸� <code>u/   </code> â€” ØªØ­ØªØ§Ø¬ ØªØ­ÙˆÙŠÙ„ Ù„Ù€ Pyrogramu   <b>Ø§Ù„Ù�Ø§Ø´Ù„Ø©:</b>u   ØºÙŠØ± Ù…Ø¹Ø±ÙˆÙ�rº   zUnknown erroru     âœ— <code>u   </code> â€” Ú
)r³   r\   Úgetr¿   )	rÜ   Útotalr½   Úfailedr¼   ÚlinesrË   r¶   rº   rB   rB   rC   Úbuild_session_report-  s8   
ú	





rì   F©ÚrunningÚcancelÚfakeÚopenedré   é   r®   é   Únamec                 C   s8   | sdS |   ¡ }t|ƒdk rdS tdd„ |D ƒƒ}| S )u·   ÙŠØ¹ÙŠØ¯ True Ø¥Ø°Ø§ ÙƒØ§Ù† Ø§Ù„Ø§Ø³Ù… Ø¶Ø¹ÙŠÙ�Ø§Ù‹/ÙˆÙ‡Ù…ÙŠØ§Ù‹:
    Ø£Ù‚ØµØ± Ù…Ù† 3 Ù…Ø­Ø§Ø±Ù� Ù�Ø¹Ù„ÙŠØ©ØŒ Ø£Ùˆ Ù„Ø§ ÙŠØ­ØªÙˆÙŠ Ø£ÙŠ Ø­Ø±Ù� Ø£Ø¨Ø¬Ø¯ÙŠ (Ø£Ø±Ù‚Ø§Ù…/Ø±Ù…ÙˆØ² Ù�Ù‚Ø·).Té   c                 s   s   � | ]}|  ¡ V  qd S r7   )Úisalpha)rœ   ÚchrB   rB   rC   Ú	<genexpr>q  ó   € zis_weak_name.<locals>.<genexpr>)Ústripr³   Úany)rô   ÚsÚ	has_alpharB   rB   rC   Úis_weak_nameh  s   rþ   r¶   c                 Ã   sü  �| t v rdS d}z×zLtt› d| › �tjtjdd�}tj| ¡ t	d�I dH  tj| 
¡ t	d�I dH }| ddddœW W |durVztj| ¡ dd�I dH  W S  tyU   Y S w S  tjy‰   t d| › d	�¡ Y W |dur‡ztj| ¡ dd�I dH  W dS  ty†   Y dS w dS  tyà } zLt|ƒ ¡ }d
|v s¦d|v s¦d|v s¦d|v r«t  | ¡ t d| › d|› �¡ W Y d}~W |durÚztj| ¡ dd�I dH  W dS  tyÙ   Y dS w dS d}~ww |durýztj| ¡ dd�I dH  W w  tyü   Y w w w )u‡  ÙŠÙ�ØªØ­ Ø­Ø³Ø§Ø¨Ø§Ù‹ØŒ ÙŠÙ�Ø­Øµ (Ø§Ø³Ù…/Ø¨Ø§ÙŠÙˆ/ØµÙˆØ±Ø©)ØŒ Ø«Ù… ÙŠØºÙ„Ù‚Ù‡ Ø¯Ø§Ø¦Ù…Ø§Ù‹.
    ÙŠØ¹ÙŠØ¯ dict Ù„Ù„Ø­Ø³Ø§Ø¨ Ø§Ù„ÙˆÙ‡Ù…ÙŠØŒ Ø£Ùˆ None Ø¥Ù† ÙƒØ§Ù† Ø³Ù„ÙŠÙ…Ø§Ù‹/Ù�Ø´Ù„.
    Ø­Ù„ Ø¬Ø°Ø±ÙŠ: Ù„Ø§ ÙŠÙ�Ø¨Ù‚ÙŠ Ø£ÙŠ Ø¹Ù…ÙŠÙ„ Ù…Ù�ØªÙˆØ­Ø§Ù‹ ÙˆÙ„Ø§ ÙŠØ¶Ø¹ Ø´ÙŠØ¦Ø§Ù‹ Ù�ÙŠ clients Ø§Ù„Ù…Ø´ØªØ±ÙƒØŒ
    Ù�Ù„Ø§ ØªØ±Ø§ÙƒÙ… ÙˆÙ„Ø§ Ø­Ù„Ù‚Ø§Øª Ø¥Ø¹Ø§Ø¯Ø© Ù…Ø­Ø§ÙˆÙ„Ø© Ø¹Ø§Ù„Ù‚Ø© Ù…Ù‡Ù…Ø§ Ø­Ø¯Ø«.Nú/T©Úapi_idÚapi_hashÚ
no_updates©Útimeout)r¶   Ú	need_nameÚneed_bioÚ
need_photor®   z[SCAN] z	: timeoutÚauth_keyÚunregisteredÚrevokedzeof when reading a linerW   )r5   r   rÀ   rM   ÚAPI_IDÚAPI_HASHÚasyncioÚwait_forr¡   Ú
OP_TIMEOUTÚget_meÚ
disconnectr^   ÚTimeoutErrorr_   r`   rÄ   ÚlowerÚadd)r¶   ÚcÚmere   ÚerrrB   rB   rC   Ú	_scan_oneu  st   €üüÿýô
ÿý÷
ÿý€÷	ÿýr  c                   C   s   dt d › dtt d ƒ› d�S )Nul   â�³ Ø¬Ø§Ø±Ù� Ø§Ù„Ø§ØªØµØ§Ù„ Ø¨Ø§Ù„Ø­Ø³Ø§Ø¨Ø§ØªØŒ Ø§Ù†ØªØ¸Ø± Ù„Ø­Ø¸Ø©...
âœ… ØªÙ… Ù�ØªØ­ Ø­ØªÙ‰ Ø§Ù„Ø¢Ù†: <b>rñ   u)   </b> Ø­Ø³Ø§Ø¨
ðŸ”� ØªÙ… Ø§ÙƒØªØ´Ø§Ù�: <b>rð   u@   </b> Ø­Ø³Ø§Ø¨ Ù„Ø§ ÙŠØ­ØªÙˆÙŠ Ø§Ø³Ù… Ø£Ùˆ ØµÙˆØ±Ø© Ø£Ùˆ Ø¨Ø§ÙŠÙˆ)Ú_PROFILE_SCANr³   rB   rB   rB   rC   Ú_scan_progress_text¡  s   ÿ
þÿr  c                  C   s    t ƒ } |  tddd�¡ |  ¡ S )Nu
   Ø¥Ù†Ù‡Ø§Ø¡Úprof_scan_cancelrz   rŠ   ©rŽ   rB   rB   rC   Ú_scan_cancel_kbª  s   r  c                  C   s2   t ƒ } |  tddd�¡ |  tddd�¡ |  ¡ S )Nu   Ù†Ø¹Ù…ØŒ Ø¹Ø¯Ù‘Ù„Úprof_do_editrz   u
   Ø¥Ù„ØºØ§Ø¡Úprof_edit_cancelrŠ   r  rB   rB   rC   Ú_scan_result_kb°  s   r!  ÚmaleTÚgenderr  r  r  c                 ƒ   s^  �ddddœ}|dkrt }t}t}	nt}t}t}	�zŠ|ro|r#t |¡nd}
tdƒD ]E}zt	j
| j|
dd�td�I dH  |
|d	< W  n- ty^ } zt	 |jd
 ¡I dH  W Y d}~q)d}~w tyn   t	 d¡I dH  Y q)w |rÃ|rxt |¡nd}tdƒD ]D}zt	j
| j|d�td�I dH  ||d< W  n- ty² } zt	 |jd
 ¡I dH  W Y d}~q~d}~w tyÂ   t	 d¡I dH  Y q~w |�r›tj |	¡rÖdd„ t |	¡D ƒng }|�ržtj |	t |¡¡}tdƒD ]·}z€ddl}ddlm} t|dƒ�}| ¡ ‰W d  ƒ n	1 �sw   Y  d‰ ‡ ‡fdd„tdtˆƒˆ ƒD ƒ}|  ¡ }t|ƒD ]\}}|  |jj j!|||d�¡I dH  �q*|j"j#|t|ƒtj $|¡| %ˆ¡ &¡ d�}|  |jj'j(|d�¡I dH  ||d< W  W |S  t�y‰ } zt	 |jd
 ¡I dH  W Y d}~qéd}~w t�yš   t	 d¡I dH  Y qéw W |S W |S W |S  t�y®   Y |S w )ua   ÙŠÙ…Ù„Ø£ Ø§Ù„Ø­Ù‚ÙˆÙ„ Ø§Ù„Ù†Ø§Ù‚ØµØ© Ù�Ù‚Ø· (Ø­Ø³Ø¨ Ø£Ø¹Ù„Ø§Ù… need_*). ÙŠØ¹ÙŠØ¯ Ù…Ø§ Ø¹Ù�Ø¯Ù‘Ù„.N)rô   ÚbioÚphotoÚfemalerF   rõ   rH   )Ú
first_nameÚ	last_namer  rô   g333333ó?)r$  r$  c                 S   s   g | ]}|  ¡  d ¡r|‘qS )z.png)r  r¯   rÌ   rB   rB   rC   r�   á  s    
ÿz!setup_profile.<locals>.<listcomp>r   )ÚrawÚrbi   c                    s   g | ]
}ˆ||ˆ  … ‘qS rB   rB   )rœ   Úi©Ú
chunk_sizeÚdatarB   rC   r�   í  rå   )Úfile_idÚ	file_partÚbytes)ÚidÚpartsrô   Úmd5_checksum)Úfiler%  ))Úprofile_girl_namesÚprofile_girl_biosÚPROFILE_GIRL_DIRÚprofile_namesÚprofile_biosÚPROFILE_DIRÚrandomÚchoiceÚranger  r  Úupdate_profiler  r   ÚsleepÚvaluer^   r¾   r>   ÚisdirÚlistdirr¿   ÚhashlibÚpyrogramr)  ÚopenÚreadr³   Úrnd_idÚ	enumerateÚinvokeÚ	functionsÚuploadÚSaveFilePartÚtypesÚ	InputFilerÚ   Úmd5Ú	hexdigestÚphotosÚUploadProfilePhoto)Úclientr¶   r#  r  r  r  rÅ   Ú
names_listÚ	bios_listÚ
photos_dirrô   Ú_re   r$  rR  r>   rD  Ú_rawrÍ   Úchunksr/  ÚidxÚchunkÚ
input_filerB   r,  rC   Úsetup_profile·  sÀ   €þ"€ÿÿ"€ÿ
ÿÿ
ÿ ýÿ
üÿ
ÿú"€ÿÚ*Ù'Û%þþr^  c                  Ã   s:   �t d D ]} | d }|tv rt|ƒI dH  qg t d< dS )uA  ØªÙ�Ø±ÙŠØº Ù‚Ø§Ø¦Ù…Ø© Ø§Ù„Ø­Ø³Ø§Ø¨Ø§Øª Ø§Ù„ÙˆÙ‡Ù…ÙŠØ©. Ù„Ù… ÙŠØ¹Ø¯ Ù‡Ù†Ø§Ùƒ Ø¹Ù…Ù„Ø§Ø¡ Ù…Ù�ØªÙˆØ­ÙˆÙ† ÙŠÙ�Ø¨Ù‚ÙŽÙˆÙ†
    (Ø§Ù„Ø­Ù„ Ø§Ù„Ø¬Ø°Ø±ÙŠ ÙŠØºÙ„Ù‚ ÙƒÙ„ Ø¹Ù…ÙŠÙ„ Ù�ÙˆØ± Ø§Ø³ØªØ®Ø¯Ø§Ù…Ù‡)ØŒ Ù„ÙƒÙ† Ù†Ù�Ø¨Ù‚ÙŠ Ø§Ù„Ø¯Ø§Ù„Ø© Ø§Ø­ØªÙŠØ§Ø·Ø§Ù‹
    Ù„Ø¥ØºÙ„Ø§Ù‚ Ø£ÙŠ Ø¹Ù…ÙŠÙ„ Ù‚Ø¯ ÙŠÙƒÙˆÙ† Ø¨Ù‚ÙŠ Ù�ÙŠ clients Ù„Ø£ÙŠ Ø³Ø¨Ø¨.rð   r¶   N)r  r-   r,   )Úitemr¶   rB   rB   rC   Ú_close_scan_clients  s   €€r`  c              
   Ã   sà   �z| j dddd�I dH  W n ty+ } zt d|› d|› �¡ W Y d}~nd}~ww z%g }|  d¡2 z3 dH W }| |j¡ q46 |rO|  |¡I dH  W dS W dS  tyo } zt d|› d|› �¡ W Y d}~dS d}~ww )	uw   ÙŠÙ…Ø³Ø­ Ø§Ù„Ø§Ø³Ù…/Ø§Ù„Ù†Ø¨Ø°Ø©/Ø§Ù„ØµÙˆØ± Ø§Ù„Ø­Ø§Ù„ÙŠØ© Ù„Ù„Ø­Ø³Ø§Ø¨ Ø§Ù„Ø¬Ø¯ÙŠØ¯ Ù‚Ø¨Ù„ ØªØ¹ÙŠÙŠÙ† Ù…Ù„Ù� Ø¬Ø¯ÙŠØ¯.Ú.rH   )r'  r(  r$  Nz[STRIP] name/bio rW   r  z[STRIP] photos )r?  r^   r_   rº   Úget_chat_photosr\   r/  Údelete_profile_photos)rT  r¶   re   Úfile_idsr%  rB   rB   rC   Ústrip_profile  s&   €"€ÿÿÿ$€ÿre  Úmessagec                 Ã   sh   �t ƒ }| tdd|› �d�tdd|› �d�¡ | tddd�¡ | jd|› d	�| ¡ d
d�I d H  d S )Nõ   Ù�ØªØ§Ø©Úgender_female_rz   õ   Ø´Ø§Ø¨Úgender_male_r’   Ú	back_mainu   âœ“: Ø§Ù„Ø±Ù‚Ù…: <code>uO   </code>
âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ù…Ù† Ù�Ø¶Ù„Ùƒ Ø§Ø®ØªØ± Ù†ÙˆØ¹ Ø§Ù„Ø­Ø³Ø§Ø¨:rT   ©Úreply_markuprU   )r   r‹   r
   ÚanswerrŒ   )rf  r¶   rŽ   rB   rB   rC   Ú
ask_gender+  s   €þ
üro  Úprofilec              	   Ã   sÂ   �|dkrdnd}d|› d|  d¡pd› d|  d	¡pd
› d|› d�	}|  d¡}z%|r@tj |¡r@| jt|ƒ|dd�I d H  W d S | j|dd�I d H  W d S  ty`   | j|dd�I d H  Y d S w )Nr&  rg  ri  u)   âœ“: ØªÙ… Ø§Ø¶Ø§Ù�Ø© Ø§Ù„Ø­Ø³Ø§Ø¨: <code>u'   </code> Ø¨Ù†Ø¬Ø§Ø­
âœ“: Ø§Ù„Ø§Ø³Ù…: <b>rô   u   Ù„Ù… ÙŠÙ�Ø¹ÙŠÙŽÙ‘Ù†u   </b>
âœ“: Ø§Ù„Ù†Ø¨Ø°Ø©: <b>r$  u   Ù„Ù… ØªÙ�Ø¹ÙŠÙŽÙ‘Ù†u   </b>
âœ“: Ø§Ù„ØµÙ†Ù�: <b>z</b>r%  rT   )ÚcaptionrU   ©rU   )rè   r¾   r>   r×   Úanswer_photor   rn  r^   )rf  r¶   rp  r#  Úgender_labelrq  r%  rB   rB   rC   Úsend_profile_msg:  s(   €ÿþýÿ
ÿÿru  rp   ÚcbÚstatec                 Ã   ó0   �|  tj¡I d H  | jjdtƒ d�I d H  d S )Nu…   âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ø§Ø±Ø³Ù„ Ø±Ù‚Ù… Ø§Ù„Ù‡Ø§ØªÙ� Ù…Ø¹ Ù…Ù�ØªØ§Ø­ Ø§Ù„Ø¯ÙˆÙ„Ø© Ø§Ù„Ø§Ù† Ø¨Ù‡Ø°Ø§ Ø§Ù„Ø´ÙƒÙ„:
:- +96477xxxxxxxx©rm  )Ú	set_staterl   rp   rf  Ú	edit_textr•   ©rv  rw  rB   rB   rC   Úadd_phone_cbN  s   €ýr}  rd   c                 Ã   sV  �| j  dd¡ ¡ }| d¡s|  d¡I d H  d S |j|d�I d H  td|› �tjtj	dd�}| 
¡ I d H  z1| |¡I d H }|j|jd	�I d H  |t|< | tj¡I d H  | jd
|› d�tƒ d�I d H  W d S  tyª } z7t d|› d|› �¡ |  d|› �¡I d H  z	| ¡ I d H  W n	 ty—   Y nw W Y d }~d S W Y d }~d S d }~ww )Nú rH   r¬   u]   âš ï¸�: ÙŠØ¬Ø¨ Ø§Ø±Ø³Ø§Ù„ Ø§Ù„Ø±Ù‚Ù… Ù…Ø¹ Ù…Ù�ØªØ§Ø­ Ø§Ù„Ø¯ÙˆÙ„Ø© Ù…Ø«Ø§Ù„:
:- +96477xxxxxxxx©r¶   ú	sessions/ÚDesktop)r  r  Údevice_model)Ú	code_hashu   âœ“: Ø§Ù„Ø±Ù‚Ù…: uT   
â†�: Ø§Ø±Ø³Ù„ Ø§Ù„ÙƒÙˆØ¯ Ø§Ù„Ù…ÙƒÙˆÙ† Ù…Ù† 5 Ø§Ø±Ù‚Ø§Ù… Ø§Ù„Ø°ÙŠ ÙˆØµÙ„Ùƒ Ø§Ù„Ø§Ù†:ry  z
send_code rW   õ   Ø®Ø·Ø£: )ra   Úreplacerú   Ú
startswithrn  Úupdate_datar   rM   r  r  r¡   Ú	send_codeÚphone_code_hashr-   rz  rl   rq   r•   r^   r_   rº   r  )rd   rw  r¶   r  Úcodere   rB   rB   rC   Ú
proc_phoneW  s>   €
ÿ
ýÿÿ€úr‹  c              
   Ã   s@  �| j  ¡ }| ¡ I d H }|d }t |¡}|s)|  d¡I d H  | ¡ I d H  d S z0| ||d |¡I d H  | ¡ I d H |_	t
||ƒI d H  | tj¡I d H  t| |ƒI d H  W d S  tyw   | tj¡I d H  | jdtƒ d�I d H  Y d S  tyŸ } zt d|› d|› �¡ |  d|› �¡I d H  W Y d }~d S d }~ww )	Nr¶   õ?   âš ï¸�: Ø§Ù†ØªÙ‡Øª Ø§Ù„Ø¬Ù„Ø³Ø©ØŒ Ø£Ø¹Ø¯ Ø¥Ø¶Ø§Ù�Ø© Ø§Ù„Ø±Ù‚Ù….rƒ  uf   âš ï¸�: Ø§Ù„Ø­Ø³Ø§Ø¨ Ù…Ø­Ù…ÙŠ Ø¨Ø®Ø§ØµÙŠØ© Ø§Ù„ØªØ­Ù‚Ù‚ Ø¨Ø®Ø·ÙˆØªÙŠÙ†ØŒ Ø§Ø±Ø³Ù„ Ø§Ù„Ø±Ù…Ø² Ø§Ù„Ø§Ù†:ry  zsign_in rW   r„  )ra   rú   Úget_datar-   rè   rn  ÚclearÚsign_inr  r  re  rz  rl   rw   ro  r   rr   r•   r^   r_   rº   )rd   rw  rŠ  r.  r¶   r  re   rB   rB   rC   Ú	proc_codet  s4   €

þ$€þr�  c              
   Ã   sö   �|  ¡ I d H }|d }t |¡}|s$|  d¡I d H  | ¡ I d H  d S z-| | j¡I d H  | ¡ I d H |_t	||ƒI d H  | 
tj¡I d H  t| |ƒI d H  W d S  tyz } zt d|› d|› �¡ |  d|› �¡I d H  W Y d }~d S d }~ww )Nr¶   rŒ  z2fa rW   r„  )r�  r-   rè   rn  rŽ  Úcheck_passwordra   r  r  re  rz  rl   rw   ro  r^   r_   rº   )rd   rw  r.  r¶   r  re   rB   rB   rC   Úproc_2faŽ  s&   €
$€þr’  Úgender_c                 Ã   sî   �| j  dd¡}|d }|d }t |¡}|s*| jddd�I d H  | ¡ I d H  d S z
| j ¡ I d H  W n	 ty=   Y nw t	|ƒI d H  t
|||d�I d H }t| j|||d�I d H  z	t|ƒI d H  W n	 tym   Y nw | ¡ I d H  d S )NrX  é   r›   rŒ  T©Ú
show_alert)r#  )r.  Úsplitr-   rè   rn  rŽ  rf  Údeleter^   r   r^  ru  r,   )rv  rw  r3  r#  r¶   r  rp  rB   rB   rC   Úgender_chosen¢  s.   €
ÿÿr™  r€   c              	   ƒ   sL  �t  d¡I d H }|dkr| jddd�I d H  d S td str+| jddd�I d H  d S | ¡ I d H  t ¡  t  ¡ I d H }t|ƒ}t 	ddg d	|d
œ¡ da| j
jtƒ tƒ dd�I d H }td	|tƒD ]g}td slt ¡ rn n\|||t … }t t¡‰‡fdd„‰ tj‡ fdd„|D ƒddiŽI d H }|D ]}	td  d7  < t|	tƒr«td  |	¡ q•ztj|jj|jtƒ tƒ dd�I d H  W qb tyÉ   Y qbw dtd< dattd ƒ}
zt |jj|j¡I d H  W n	 tyí   Y nw |
d	k�rtƒ I d H  | j
jdtd › d�t ƒ dd�I d H  d S | j
jdtd › d|
› d�t!ƒ dd�I d H  d S )Nr�   Ú1u{   âš ï¸� Ø§Ù„ØªØ¬Ù…ÙŠØ¹ ÙŠØ¹Ù…Ù„ Ø§Ù„Ø¢Ù†ØŒ ÙŠØ±Ø¬Ù‰ Ø¥ÙŠÙ‚Ø§Ù�Ù‡ Ø£ÙˆÙ„Ø§Ù‹ Ù‚Ø¨Ù„ ØªØ¹Ø¯ÙŠÙ„ Ø§Ù„Ù…Ù„Ù�Ø§Øª Ø§Ù„Ø´Ø®ØµÙŠØ©.Tr•  rî   u*   â�³ Ù‡Ù†Ø§Ùƒ Ù�Ø­Øµ Ø¬Ø§Ø±Ù� Ø¨Ø§Ù„Ù�Ø¹Ù„.Fr   rí   rT   rl  rï   c              	   “   sL   �ˆ 4 I d H š t | ƒI d H W  d   ƒI d H  S 1 I d H sw   Y  d S r7   )r  r  )ÚsemrB   rC   Ú_guardedÞ  s   €0ÿz"edit_profiles_cb.<locals>._guardedc                 3   s   � | ]	}ˆ |d  ƒV  qdS )r¶   NrB   )rœ   Úa)rœ  rB   rC   rø   ã  s   € z#edit_profiles_cb.<locals>.<genexpr>Úreturn_exceptionsrñ   r›   rð   )rh   r]   ra   rm  rU   ug   âœ… ØªÙ… Ù�ØªØ­ ÙˆØ§Ù„Ø§ØªØµØ§Ù„ Ø¨Ø¬Ù…ÙŠØ¹ Ø§Ù„Ø­Ø³Ø§Ø¨Ø§Øª.
Ø¹Ø¯Ø¯ Ø§Ù„Ø­Ø³Ø§Ø¨Ø§Øª Ø§Ù„Ø­Ø§Ù„ÙŠ: <b>uT   </b> Ø­Ø³Ø§Ø¨.
Ù„Ø§ ØªÙˆØ¬Ø¯ Ø­Ø³Ø§Ø¨Ø§Øª ÙˆÙ‡Ù…ÙŠØ© ØªØ­ØªØ§Ø¬ ØªØ¹Ø¯ÙŠÙ„Ø§Ù‹. ðŸŽ‰uv   âœ… ØªÙ… Ù�ØªØ­ ÙˆØ§Ù„Ø§ØªØµØ§Ù„ Ø¨Ø¬Ù…ÙŠØ¹ Ø§Ù„Ø­Ø³Ø§Ø¨Ø§Øª Ø§Ù„Ø­Ø§Ù„ÙŠØ©.
Ø¹Ø¯Ø¯ Ø§Ù„Ø­Ø³Ø§Ø¨Ø§Øª Ø§Ù„Ø­Ø§Ù„ÙŠ: <b>u?   </b> Ø­Ø³Ø§Ø¨.
Ø­Ø³Ø§Ø¨Ø§Øª ÙˆÙ‡Ù…ÙŠØ© ØºÙŠØ± Ø­Ù‚ÙŠÙ‚ÙŠØ©: <b>uZ   </b> Ø­Ø³Ø§Ø¨.

Ù‡Ù„ ØªØ±ÙŠØ¯ ØªØ¹Ø¯ÙŠÙ„ Ù‡Ø°Ù‡ Ø§Ù„Ø­Ø³Ø§Ø¨Ø§Øª Ø§Ù„ÙˆÙ‡Ù…ÙŠØ© Ø§Ù„Ø¢Ù†ØŸ)"rO   r   rn  r  Ú_PROFILE_BUSYrŽ  r.   r   r³   Úupdaterf  r{  r  r  r>  Ú
SCAN_BATCHÚis_setr  Ú	SemaphoreÚSCAN_CONCURRENCYÚgatherÚ
isinstanceÚdictr\   rZ   ri   Úchatr2  r]   r^   Údelete_messager`  r•   r!  )rv  rw  r�   Úaccountsré   Ú
status_msgr+  ÚbatchrÜ   rË   Ú
fake_countrB   )rœ  r›  rC   Úedit_profiles_cb»  s–   €þþ
ÿ
ÿþ
€ûÿÿ
ÿüÿþûr®  r  c                 Ã   s<   �t d rdt d< | jddd�I d H  d S |  ¡ I d H  d S )Nrî   Trï   u&   â�¹ï¸� ÙŠØªÙ… Ø¥Ù†Ù‡Ø§Ø¡ Ø§Ù„Ù�Ø­Øµ...Fr•  )r  rn  ©rv  rB   rB   rC   Úprof_scan_cancel_cb  s
   €r°  r   c                 Ã   sh   �t ƒ I d H  z| jjdtƒ d�I d H  W n ty*   | jjdtƒ d�I d H  Y nw |  ¡ I d H  d S )Nu5   ØªÙ… Ø§Ù„Ø¥Ù„ØºØ§Ø¡. Ù„Ù… ÙŠÙ�Ø¹Ø¯Ù‘Ù„ Ø£ÙŠ Ø­Ø³Ø§Ø¨.ry  u   ØªÙ… Ø§Ù„Ø¥Ù„ØºØ§Ø¡.)r`  rf  r{  r•   r^   rn  r¯  rB   rB   rC   Úprof_edit_cancel_cb  s   €þÿr±  r  c                 ƒ   sô   �t td ƒ}|s| jddd�I d H  d S t|ƒ‰| jjdˆ› d�dd�I d H ‰d	‰t t¡‰t 	¡ ‰da
‡‡‡‡‡fd
d„‰ ztj‡ fdd„|D ƒddiŽI d H  W da
nda
w g td< | jjdˆ› dˆ› d�tƒ dd�I d H  |  ¡ I d H  d S )Nrð   u*   Ù„Ø§ ØªÙˆØ¬Ø¯ Ø­Ø³Ø§Ø¨Ø§Øª Ù„Ù„ØªØ¹Ø¯ÙŠÙ„.Tr•  uu   â�³ ØªØªÙ… Ø¹Ù…Ù„ÙŠØ© ØªØ¹Ø¯ÙŠÙ„ Ø§Ù„Ù…Ù„Ù� Ø§Ù„Ø´Ø®ØµÙŠ Ù„Ù„Ø­Ø³Ø§Ø¨Ø§Øª Ø§Ù„ÙˆÙ‡Ù…ÙŠØ©...
âœ… ØªÙ… ØªØ¹Ø¯ÙŠÙ„: 0 / õ
    Ø­Ø³Ø§Ø¨.rT   rr  r   c                 “   sL  �| d }ˆ4 I d H šª d }zzCt t› d|› �tjtjdd�}tj| ¡ td�I d H  tj| 	¡ td�I d H  t
 ddg¡}t|||| d | d	 | d
 d�I d H  W n tyo } zt d|› d|› �¡ W Y d }~nd }~ww W |d ur�ztj| ¡ dd�I d H  W n' tyŒ   Y nw n|d urªztj| ¡ dd�I d H  W w  ty©   Y w w w W d   ƒI d H  n1 I d H s»w   Y  ˆ4 I d H šR ˆ d7 ‰ ˆ t dksÕˆ ˆkr÷ztjˆjjˆjdˆ › dˆ› d�dd�I d H  W n työ   Y nw W d   ƒI d H  d S W d   ƒI d H  d S W d   ƒI d H  d S 1 I d H �sw   Y  d S )Nr¶   rÿ   Tr   r  r"  r&  r  r  r  )r#  r  r  r  z[EDIT PROFILE] rW   r®   r›   r   uq   â�³ ØªØªÙ… Ø¹Ù…Ù„ÙŠØ© ØªØ¹Ø¯ÙŠÙ„ Ø§Ù„Ù…Ù„Ù� Ø§Ù„Ø´Ø®ØµÙŠ Ù„Ù„Ø­Ø³Ø§Ø¨Ø§Øª Ø§Ù„ÙˆÙ‡Ù…ÙŠØ©...
âœ… ØªÙ… ØªØ¹Ø¯ÙŠÙ„: z / r²  rT   rg   )r   rÀ   rM   r  r  r  r  r¡   r  r  r<  r=  r^  r^   r_   r`   r  r¡  rZ   ri   r¨  r2  r]   )r_  r¶   r  r#  re   )ÚdoneÚlockr›  r«  ré   rB   rC   Ú	_edit_one8  s~   €üü"€ÿ€ÿ
ýÿý€(ìÿÿûÿøþü0õz"prof_do_edit_cb.<locals>._edit_onec                 3   s   � | ]}ˆ |ƒV  qd S r7   rB   )rœ   Úit)rµ  rB   rC   rø   b  rù   z"prof_do_edit_cb.<locals>.<genexpr>rž  FuT   âœ… Ø§ÙƒØªÙ…Ù„Øª Ø¹Ù…Ù„ÙŠØ© ØªØ¹Ø¯ÙŠÙ„ Ø§Ù„Ù…Ù„Ù� Ø§Ù„Ø´Ø®ØµÙŠ
âœ“ ØªÙ… ØªØ¹Ø¯ÙŠÙ„: u    Ù…Ù† Ø£ØµÙ„ u    Ø­Ø³Ø§Ø¨ ÙˆÙ‡Ù…ÙŠ.rl  )rX   r  rn  r³   rf  r{  r  r£  ÚEDIT_CONCURRENCYÚLockrŸ  r¥  r•   )rv  rð   rB   )rµ  r³  r´  r›  r«  ré   rC   Úprof_do_edit_cb%  s@   €ÿý
)ÿÿÿýr¹  c                 C   s  |d }| ||d … }t ƒ }t|ƒD ]4\}}|| }t|ƒ}| d¡p'|p'dd d… }	|r4t|	|d�nt|	dd�}
| |
tdd	|› �d�¡ qg }|d
kr\| tdd|d › �d�¡ t| ƒ|d krr| tdd|d › �d�¡ |ry|j|Ž  | tddd�¡ | ¡ |fS )Nr®   Útitleu   Ù‚Ù†Ø§Ø©ró   ©ra   ÚurlÚnonerz   u   Ù…ØºØ§Ø¯Ø±Ø©Úleave_exec_r   õ   â†� Ø§Ù„Ø³Ø§Ø¨Ù‚Úleave_ch_pg_r›   õ   Ø§Ù„ØªØ§Ù„ÙŠ â†’r’   rk  )	r   rI  r/   rè   r
   r‹   r\   r³   rŒ   )ÚchannelsÚpageÚstartÚcurrentrŽ   r+  r÷   r[  Úlinkrº  ÚbtnÚnavrB   rB   rC   Úbuild_leave_kbp  s$   
rÉ  c              
   C   sØ   |d }| ||d … }t ƒ }|D ]}| t|d dd�tdd|d › d|› �d�¡ qg }|dkr@| td	d
|d › �d�¡ t| ƒ|d krV| tdd
|d › �d�¡ |r]|j|Ž  | tddd�¡ | ¡ |fS )Nr®   r¶   r½  rz   õ   ðŸ—‘ï¸�Údel_ph_rX  r   r¿  Údel_phone_pg_r›   rÁ  r’   rk  )r   r‹   r
   r\   r³   rŒ   )rª  rÃ  rÄ  rÅ  rŽ   ÚaccrÈ  rB   rB   rC   Úbuild_del_phone_kb„  s"   þ
rÎ  rÃ  c                 Ã   s|   �t ƒ I d H }t||ƒ\}}|s!|dkr!| jdtƒ d�I d H  d S |s'tdƒ‚| jd|d › dt|ƒ› d�|d�I d H  d S )Nr   uH   Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ù„Ø§ØªÙˆØ¬Ø¯ Ø§Ø±Ù‚Ø§Ù… Ù…Ø¶Ø§Ù�Ø© Ø­Ø§Ù„ÙŠØ§Ù‹.ry  u   Ù‚Ø§Ø¦Ù…Ø© r›   ú | õ    Ø±Ù‚Ù…:)r   rÎ  r{  r•   Ú
ValueErrorr³   )rf  rÃ  rª  ÚmarkuprÅ  rB   rB   rC   Úrender_del_phones—  s   €þrÓ  rk  c                 Ã   sP   �|  ¡ I d H  tddƒI d H dk}| jjtƒ I d H t|ƒI d H d�I d H  d S )Nr�   Ú0rš  ry  )rŽ  r   rf  r{  r—   r�   )rv  rw  ÚactiverB   rB   rC   rk  ¤  s   €,Úback_list_botsc                 Ã   ó   �t | ƒI d H  d S r7   )Úlist_bots_cbr¯  rB   rB   rC   rÖ  ª  ó   €Úback_del_adminc                 Ã   r×  r7   )Údel_admin_listr¯  rB   rB   rC   rÚ  ®  rÙ  r½  c                 Ã   ó   �|   ¡ I d H  d S r7   ©rn  r¯  rB   rB   rC   Únone_cb²  rÙ  rÞ  rÄ  c                 Ã   s`   �t | jjƒr&tddƒI d H dk}| jtƒ I d H t|ƒI d H d�I d H  d S |  d¡I d H  d S )Nr�   rÔ  rš  ry  u‚   Ù‡Ø°Ø§ Ø§Ù„Ø¨ÙˆØª Ù…Ø®ØµØµ Ù„Ù„Ù…Ø·ÙˆØ±ÙŠÙ† ÙˆØ§Ù„Ø£Ø¯Ù…Ù†ÙŠØ© Ù�Ù‚Ø·.
Ù„Ù„Ø§Ø³ØªÙ�Ø³Ø§Ø± ØªÙˆØ§ØµÙ„ Ù…Ø¹ Ø§Ù„Ù…Ø·ÙˆØ±:
â€¢ @n_u_7)rR   Ú	from_userr2  r   rn  r—   r�   )rd   rÕ  rB   rB   rC   Ú	cmd_start¶  s   €*ÿrà  r#   c                 Ã   rx  )Nu{   âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ø§Ø±Ø³Ù„ ÙŠÙˆØ²Ø± Ø§Ùˆ Ø±Ø§Ø¨Ø· Ø§Ù„Ø¨ÙˆØª Ø§Ù„Ù…Ø·Ù„ÙˆØ¨ Ù„Ø§Ø¶Ø§Ù�ØªÙ‡ Ø§Ù„Ù‰ Ø§Ù„Ù‚Ø§Ø¦Ù…Ø©:ry  )rz  rl   r#   rf  r{  r•   r|  rB   rB   rC   Ú
add_bot_cbÁ  s   €rá  c                 ƒ   sÐ   �t | j ¡ ƒ}| d¡‰ ˆ s| jdtƒ d�I d H  d S tƒ I d H }t‡ fdd„|D ƒƒrE| jdˆ › d�tƒ d�I d H  | ¡ I d H  d S t	ˆ | d¡ƒI d H  | jd	ˆ › d
�tƒ d�I d H  | ¡ I d H  d S )NÚusernameun   âŠ± Ø§Ù„ÙŠÙˆØ²Ø± Ø£Ùˆ Ø§Ù„Ø±Ø§Ø¨Ø· ØºÙŠØ± ØµØ­ÙŠØ­ØŒ Ø§Ø±Ø³Ù„ Ø§Ù„ÙŠÙˆØ²Ø± Ø¨Ù‡Ø°Ø§ Ø§Ù„Ø´ÙƒÙ„:
- @usernamebotry  c                 3   s$   � | ]}|d    ¡ ˆ   ¡ kV  qdS )râ  N)r  ©rœ   rŽ   ©râ  rB   rC   rø   Î  s   €" zproc_add_bot.<locals>.<genexpr>u%   âš ï¸� Ø¹Ø²ÙŠØ²ÙŠ Ù‡Ø°Ø§ Ø§Ù„Ø¨ÙˆØª @u    Ù…Ø¶Ø§Ù� Ù…Ø³Ø¨Ù‚Ø§Ù‹.r¼  u!   âœ“: ØªÙ… Ø¥Ø¶Ø§Ù�Ø© Ø§Ù„Ø¨ÙˆØª @u"    Ø§Ù„Ù‰ Ø§Ù„Ù‚Ø§Ø¦Ù…Ø© Ø¨Ù†Ø¬Ø§Ø­.)
r1   ra   rú   rè   rn  r•   r"   rû   rŽ  r#   )rd   rw  ÚparsedÚ	bots_listrB   rä  rC   Úproc_add_botÆ  s   €
rç  r|   c                 Ã   s²   �t ƒ I d H }|s| jjdtƒ d�I d H  d S tƒ }|D ]$}|d }| d¡p+d|› �}| td|› �|d�tdd	|› �d
�¡ q| tddd
�¡ | jjd| ¡ d�I d H  d S )NuL   âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ù„Ø§ØªÙˆØ¬Ø¯ Ø¨ÙˆØªØ§Øª Ù…Ø¶Ø§Ù�Ø© Ø­Ø§Ù„ÙŠØ§Ù‹.ry  râ  r¼  zhttps://t.me/ú@r»  rÊ  Údel_bot_rz   r’   rk  u\   âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ù‡Ø°Ù‡ Ù‡ÙŠ Ù‚Ø§Ø¦Ù…Ø© Ø¨ÙˆØªØ§Øª Ø§Ù„ØªÙ…ÙˆÙŠÙ„ Ø§Ù„Ù…Ø¶Ø§Ù�Ø©:)	r"   rf  r{  r•   r   rè   r‹   r
   rŒ   )rv  ræ  rŽ   Úbot_itemÚur¼  rB   rB   rC   rØ  Ö  s   €þrØ  ré  c                 Ã   sD   �| j tdƒd … }t|ƒI d H  |  d¡I d H  t| ƒI d H  d S )Nré  u6   âœ“: ØªÙ… Ø­Ø°Ù� Ø§Ù„Ø¨ÙˆØª Ø§Ù„Ù…Ø·Ù„ÙˆØ¨ Ø¨Ù†Ø¬Ø§Ø­.)r.  r³   r$   rn  rØ  )rv  râ  rB   rB   rC   Ú
del_bot_cbç  s
   €rì  rÀ  c                 Ã   sœ   �t | j d¡d ƒ}tƒ I d H }|s!| jjdtƒ d�I d H  d S t||ƒ\}}|s6| jddd�I d H  d S | jjd|d	 › d
t	|ƒ› d�|d�I d H  d S )NrX  éÿÿÿÿub   âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ù„Ø§ØªÙˆØ¬Ø¯ Ù‚Ù†ÙˆØ§Øª Ù�ÙŠ Ù‚Ø§Ø¦Ù…Ø© Ø§Ù„Ù…ØºØ§Ø¯Ø±Ø© Ø­Ø§Ù„ÙŠØ§Ù‹.ry  uZ   âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ù„Ø§ØªÙˆØ¬Ø¯ Ù‚Ù†ÙˆØ§Øª Ù�ÙŠ Ù‡Ø°Ù‡ Ø§Ù„ØµÙ�Ø­Ø© Ø­Ø§Ù„ÙŠØ§Ù‹.Tr•  u$   Ù‚Ø§Ø¦Ù…Ø© Ø§Ù„Ù‚Ù†ÙˆØ§Øª (ØµÙ�Ø­Ø© r›   u   ) | Ø§Ù„Ù…Ø¬Ù…ÙˆØ¹: uP   
Ø§Ø¶ØºØ· Ù…ØºØ§Ø¯Ø±Ø© Ù„Ø¥Ø²Ø§Ù„Ø© Ø§Ù„Ù‚Ù†Ø§Ø© Ù…Ù† Ø¬Ù…ÙŠØ¹ Ø§Ù„Ø­Ø³Ø§Ø¨Ø§Øª:)
Úintr.  r—  r(   rf  r{  r•   rÉ  rn  r³   )rv  rÃ  rÂ  rÒ  rÅ  rB   rB   rC   Úleave_ch_pgî  s   €ýrï  r¾  c                 Ã   sØ   �t | j d¡d ƒ}tƒ I d H }|t|ƒkr#| jddd�I d H  d S || }t|ƒ}| d¡p3|p3d}|r?d|› d	|› d
�n|}tƒ }| 	t
ddd�¡ | jjd|› d�| ¡ ddd�I d H  tt || jj¡ƒ d S )NrX  rí  uD   âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ù‡Ø°Ù‡ Ø§Ù„Ù‚Ù†Ø§Ø© ØºÙŠØ± Ù…ÙˆØ¬ÙˆØ¯Ø©.Tr•  rº  u   Ø§Ù„Ù‚Ù†Ø§Ø©z	<a href="z">z</a>u   Ø±Ø¬ÙˆØ¹ Ù„Ù„Ù‚Ø§Ø¦Ù…Ø©r}   rz   u;   â�³: ØªØªÙ… Ø§Ù„Ø§Ù† Ø¹Ù…Ù„ÙŠØ© Ù…ØºØ§Ø¯Ø±Ø© Ø§Ù„Ù‚Ù†Ø§Ø©: u<    Ø³ÙŠØªÙ… Ø§Ø¨Ù„Ø§ØºÙƒ Ø¹Ù†Ø¯ Ø§Ù†ØªÙ‡Ø§Ø¡ Ø§Ù„Ù…ØºØ§Ø¯Ø±Ø©.rT   )rm  rU   rV   )rî  r.  r—  r(   r³   rn  r/   rè   r   r‹   r
   rf  r{  rŒ   r4   ÚengineÚdo_leave_chrß  r2  )rv  r[  rÂ  r÷   rÆ  rº  Úch_htmlrŽ   rB   rB   rC   Ú
leave_execÿ  s"   €

þró  r~   c                 Ã   s¶   �t ƒ I d H }tƒ }tjr4| tddd�¡ | tddd�¡ | jjdt|ƒ› d�| 	¡ d�I d H  d S | td	d
d�¡ | tddd�¡ | jjdt|ƒ› d�| 	¡ d�I d H  d S )Nu   â›” Ø§ÙŠÙ‚Ø§Ù� Ø§Ù„Ù…ØºØ§Ø¯Ø±Ø©Ústop_leave_allrz   r’   rk  u0   âš ï¸� Ø¹Ù…Ù„ÙŠØ© Ø§Ù„Ù…ØºØ§Ø¯Ø±Ø© Ø¬Ø§Ø±ÙŠØ©! (u    Ù‚Ù†Ø§Ø© Ù…ØªØ¨Ù‚ÙŠØ©)ry  u
   ØªØ£ÙƒÙŠØ¯Úconfirm_leave_allu   ðŸ”»: Ø³ÙŠØªÙ… Ù…ØºØ§Ø¯Ø±Ø© uC    Ù‚Ù†Ø§Ø© Ù‡Ù„ Ø§Ù†Øª Ù…ØªØ£ÙƒØ¯ Ù…Ù† Ø¹Ù…Ù„ÙŠØ© Ø§Ù„Ù…ØºØ§Ø¯Ø±Ø©ØŸ)
r(   r   rO   Úleave_all_onr‹   r
   rf  r{  r³   rŒ   )rv  rÂ  rŽ   rB   rB   rC   Úleave_all_cb  s    €þþr÷  rõ  c              
   Ã   s¸   �t jr| jddd�I d H  d S dt _z| jjdtƒ d�I d H  W n ty; } zt d|› �¡ W Y d }~nd }~ww z
|  d¡I d H  W n	 tyO   Y nw t	t
 | jj¡ƒt _d S )NuT   âš ï¸�: Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ø§Ù„Ø¹Ù…Ù„ÙŠØ© Ø§Ù„Ø­Ø§Ù„ÙŠØ© ØªØ¹Ù…Ù„ Ø¨Ø§Ù„Ù�Ø¹Ù„.Tr•  u‹   â�³: ØªÙ… Ø¨Ø¯Ø¡ Ø¹Ù…Ù„ÙŠØ© Ù…ØºØ§Ø¯Ø±Ø© Ø¬Ù…ÙŠØ¹ Ø§Ù„Ù‚Ù†ÙˆØ§Øª Ø¨Ù†Ø¸Ø§Ù… Ø§Ù„Ø¯Ù�Ø¹Ø§ØªØŒ Ø³ÙŠØªÙ… Ø§Ø¨Ù„Ø§ØºÙƒ Ø¹Ù†Ø¯ Ø§Ù„Ø§Ù†ØªÙ‡Ø§Ø¡.ry  zCould not edit message: u'   ðŸš€ Ø¨Ø¯Ø£Øª Ø§Ù„Ø¹Ù…Ù„ÙŠØ© Ø¨Ù†Ø¬Ø§Ø­)rO   rö  rn  rf  r{  r•   r^   r_   r`   r4   rð  Údo_leave_allrß  r2  Úleave_all_task)rv  re   rB   rB   rC   rõ  %  s(   €þ€ÿÿr   c                 Ã   s˜   �t  ¡ I d H }|s| jddd�I d H  d S tƒ }|D ]}| d¡p#d}| td|› �d|› �d�¡ q| td	d
d�¡ | jjd| 	¡ d�I d H  d S )Nu(   âŠ± Ù„Ø§ ÙŠÙˆØ¬Ø¯ Ø¨ÙˆØªØ§Øª Ù…Ø¶Ø§Ù�Ø©.Tr•  râ  rH   rè  Úlfs_bot_rz   õ   â†©ï¸� Ø±Ø¬ÙˆØ¹rk  uO   ðŸ”˜ Ø§Ø®ØªØ± Ø§Ù„Ø¨ÙˆØª Ù„Ø¹Ø±Ø¶ Ù‚Ù†ÙˆØ§Øª Ø§Ù„Ø§Ø´ØªØ±Ø§Ùƒ Ø§Ù„Ø¥Ø¬Ø¨Ø§Ø±ÙŠ:ry  )
rO   r"   rn  r   rè   r‹   r
   rf  r{  rŒ   )rv  ÚbotsrŽ   rZ   ÚunrB   rB   rC   Úleave_force_sub_cb8  s"   €
þþrþ  é   rú  c              
   Ã   sB  �dd l }| j d¡}d|v r,| dd¡\}}z	tt|ƒdƒ}W n ty+   d}Y nw |d}}tt|ƒI d H dd„ d�}|s_t	ƒ }| 
tdd	d
�¡ | jjd|› d�| ¡ d�I d H  d S t|ƒt d t }t||d ƒ}|t }	||	|	t … }
t	ƒ }|
D ]"}|d }|jj|dd�}| 
t||d�tdd|› d|› �d
�¡ q�|dkrìg }|dkr¿| tdd|› d|d › �d
�¡ | td|d › d|› �dd
�¡ ||d k rç| tdd|› d|d › �d
�¡ |j
|Ž  | 
tdd|› �d
�¡ | 
tdd	d
�¡ | jjd|› dt|ƒ› d|d › d|› d�	| ¡ d�I d H  d S )Nr   rú  ú|r›   c                 S   s   | d S )Nr¼  rB   )rË   rB   rB   rC   Ú<lambda>]  s    z%lfs_bot_selected_cb.<locals>.<lambda>)Úkeyrû  r   rz   u   âŠ± Ø§Ù„Ø¨ÙˆØª @uA    Ù„Ø§ ÙŠÙ…Ù„Ùƒ Ù‚Ù†ÙˆØ§Øª Ø§Ø´ØªØ±Ø§Ùƒ Ø¥Ø¬Ø¨Ø§Ø±ÙŠ Ù…Ø³Ø¬Ù‘Ù„Ø©.ry  r¼  rH   )Úsafer»  u   ðŸšª Ù…ØºØ§Ø¯Ø±Ø©Úlfs_one_u   â—€ï¸� Ø§Ù„Ø³Ø§Ø¨Ù‚u	   ØµÙ�Ø­Ø© rÿ   Úlfs_noopu   Ø§Ù„ØªØ§Ù„ÙŠ â–¶ï¸�u   ðŸšª Ù…ØºØ§Ø¯Ø±Ø© Ø§Ù„ÙƒÙ„Úlfs_confirm_u   ðŸ¤– Ø§Ù„Ø¨ÙˆØª: @u   
ðŸ“‹ Ø¹Ø¯Ø¯ Ø§Ù„Ù‚Ù†ÙˆØ§Øª: u    Ù‚Ù†Ø§Ø©
ØµÙ�Ø­Ø© u€   
Ø§Ø¶ØºØ· 'Ù…ØºØ§Ø¯Ø±Ø©' Ù„Ù‚Ù†Ø§Ø© Ù…Ø¹ÙŠÙ†Ø© Ø£Ùˆ 'Ù…ØºØ§Ø¯Ø±Ø© Ø§Ù„ÙƒÙ„' Ù„Ù…ØºØ§Ø¯Ø±Ø© ÙƒÙ„ Ø§Ù„Ù‚Ù†ÙˆØ§Øª Ø§Ù„Ù…ÙˆØ¬ÙˆØ¯Ø©:)Úurllib.parser.  Úremoveprefixr—  Úmaxrî  rÑ  Úsortedr*   r   r‹   r
   rf  r{  rŒ   r³   ÚLFS_PAGE_SIZEÚminÚparseÚquoter\   )rv  Úurllibr)  Úbot_unÚpage_srÃ  ÚrowsrŽ   Útotal_pagesrÄ  rÅ  rË   r¼  ÚencrÈ  rB   rB   rC   Úlfs_bot_selected_cbO  s€   €ÿ
þ
þ
þþþþ
ÿþþûr  r  c                 Ã   rÜ  r7   rÝ  r¯  rB   rB   rC   Úlfs_noop_cb�  rÙ  r  r  c                 Ã   s°   �dd l }| j d¡}| dd¡\}}|j |¡}tjr(| jddd�I d H  d S | j	j
d|› �tƒ d	�I d H  z	|  ¡ I d H  W n	 tyI   Y nw tt | jj||g¡ƒ d S )
Nr   r  r   r›   õI   âš ï¸� Ø¹Ù…Ù„ÙŠØ© Ù…ØºØ§Ø¯Ø±Ø© Ø¬Ø§Ø±ÙŠØ©ØŒ Ø§Ù†ØªØ¸Ø± Ø­ØªÙ‰ ØªÙ†ØªÙ‡ÙŠ.Tr•  u(   â�³ Ø¬Ø§Ø±ÙŠ Ù…ØºØ§Ø¯Ø±Ø© Ø§Ù„Ù‚Ù†Ø§Ø©:
ry  )r  r.  r  r—  r  ÚunquoterO   rö  rn  rf  r{  r•   r^   r4   rð  Údo_leave_force_subrß  r2  )rv  r  r.  r  Úenc_urlr¼  rB   rB   rC   Ú
lfs_one_cb”  s$   €þÿr  r  c                 Ã   sÎ   �| j  d¡}t|ƒI d H }|s| jddd�I d H  d S tjr+| jddd�I d H  d S dd„ |D ƒ}| jjdt|ƒ› d	|› d
�t	ƒ d�I d H  z	|  ¡ I d H  W n	 t
yY   Y nw tt | jj||¡ƒ d S )Nr  u1   âŠ± Ù„Ø§ ØªÙˆØ¬Ø¯ Ù‚Ù†ÙˆØ§Øª Ù„Ù‡Ø°Ø§ Ø§Ù„Ø¨ÙˆØª.Tr•  r  c                 S   rš   )r¼  rB   rä   rB   rB   rC   r�   ²  rž   z"lfs_confirm_cb.<locals>.<listcomp>u   â�³ Ø¬Ø§Ø±ÙŠ Ù…ØºØ§Ø¯Ø±Ø© u0    Ù‚Ù†Ø§Ø© Ø§Ø´ØªØ±Ø§Ùƒ Ø¥Ø¬Ø¨Ø§Ø±ÙŠ Ù„Ù„Ø¨ÙˆØª @z...ry  )r.  r  r*   rn  rO   rö  rf  r{  r³   r•   r^   r4   rð  r  rß  r2  )rv  r  r  ÚurlsrB   rB   rC   Úlfs_confirm_cb¨  s(   €þÿr  rô  c                 Ã   sp   �t js| jddd�I d H  d S t jrt j ¡ st j ¡  dt _d t _| jjdtƒ d�I d H  t	dƒI d H  d S )NuY   âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ø­Ø§Ù„ÙŠØ§Ù‹ Ù„Ø§ØªÙˆØ¬Ø¯ Ø¹Ù…Ù„ÙŠØ© Ù…ØºØ§Ø¯Ø±Ø© Ø¬Ø§Ø±ÙŠØ©!Tr•  FuG   âœ“: Ø¹Ø²ÙŠØ²ÙŠ ØªÙ… Ø§ÙŠÙ‚Ø§Ù� Ø¹Ù…Ù„ÙŠØ© Ø§Ù„Ù…ØºØ§Ø¯Ø±Ø© Ø¨Ù†Ø¬Ø§Ø­.ry  uC   â�¸ï¸� ØªÙ… Ø¥ÙŠÙ‚Ø§Ù� Ø¹Ù…Ù„ÙŠØ© Ù…ØºØ§Ø¯Ø±Ø© ÙƒÙ„ Ø§Ù„Ù‚Ù†ÙˆØ§Øª.)
rO   rö  rn  rù  r³  rï   rf  r{  r•   rf   r¯  rB   rB   rC   rô  ¾  s   €
rx   c                 Ã   s2   �|  tj¡I d H  | jjdtƒ dd�I d H  d S )Nu<  ðŸ“¦ <b>Ø§Ø³ØªÙŠØ±Ø§Ø¯ Ø³ÙŠØ´Ù†Ø§Øª</b>

âŠ± Ø§Ø±Ø³Ù„ Ù…Ù„Ù� <b>.zip</b> ÙŠØ­ØªÙˆÙŠ Ø¹Ù„Ù‰ Ù…Ù„Ù�Ø§Øª <b>.session</b>
âŠ± Ø£Ùˆ Ù…Ù„Ù� <b>.session</b> ÙˆØ§Ø­Ø¯ Ù…Ø¨Ø§Ø´Ø±Ø©

âš ï¸� ÙŠØ¬Ø¨ Ø£Ù† ÙŠØ­ØªÙˆÙŠ Ø§Ø³Ù… Ø§Ù„Ù…Ù„Ù� Ø¹Ù„Ù‰ Ø§Ù„Ø±Ù‚Ù…:
<code>+96477123456789.session</code>
<code>12075483797_abc123.session</code>rT   rl  )rz  rl   rx   rf  r{  r•   r|  rB   rB   rC   Úadd_session_cbÊ  s   €ør  c              
   Ã   s  �| j s| jdtƒ d�I d H  d S | j }|jpd}tj t ¡ d| j	j
› d|› �¡}z”t |j¡I d H }t |j|¡I d H  g }| d¡rMt|ƒI d H }n;| d¡rlt||ƒI d H }| |¡ zt |¡ W n!   Y n| jdtƒ d�I d H  z	t |¡ W W d S    Y W d S t|ƒ}| j|tƒ d	d
�I d H  tddƒI d H dk}	| jtƒ I d H t|	ƒI d H d�I d H  | ¡ I d H  W d S  t�y }
 z8t d|
› �¡ | jd|
› d�tƒ d	d
�I d H  ztj |¡rët |¡ W n   Y | ¡ I d H  W Y d }
~
d S d }
~
ww )Nu:   âš ï¸� Ø£Ø±Ø³Ù„ Ù…Ù„Ù� (.zip Ø£Ùˆ .session) ÙˆÙ„ÙŠØ³ Ù†Øµ.ry  rH   Úsession_import_rX  z.ziprª   uH   âš ï¸� ØµÙŠØºØ© ØºÙŠØ± Ù…Ø¯Ø¹ÙˆÙ…Ø©. Ø£Ø±Ø³Ù„ .zip Ø£Ùˆ .session Ù�Ù‚Ø·.rT   rl  r�   rÔ  rš  z[SESSION IMPORT] Error: u   â�Œ Ø®Ø·Ø£: <code>ræ   )Údocumentrn  r•   Ú	file_namer¾   r>   r¿   rÑ   Ú
gettempdirrß  r2  rZ   Úget_filer/  Údownload_filer˜   r¯   râ   rÇ   r\   rØ   rì   r   r—   r�   rŽ  r^   r_   rº   r×   )rd   rw  r   r!  Ú	temp_pathr5  rÜ   rÅ   ÚreportrÕ  re   rB   rB   rC   Úproc_add_sessionÙ  sr   €þ
þ


þþ&
ý
€€ôr'  rÌ  c              
   Ã   sn   �t | j d¡d ƒ}zt| j|ƒI d H  W d S  ty6 } z| jt|ƒdd�I d H  W Y d }~d S d }~ww )NrX  rí  Tr•  )rî  r.  r—  rÓ  rf  rÑ  rn  rÄ   )rv  rÃ  re   rB   rB   rC   Údel_phone_pg  s   €&€ÿr(  rË  c                 Ã   s    �| j  d¡}|d }t|d ƒ}t|ƒI d H  d|› d�d|› d�fD ]}tj |¡r1t |¡ q$t|ƒI d H  |  	d|› d�¡I d H  t
| j|ƒI d H  d S )	NrX  r”  rõ   r€  rª   r«   u   âœ“: ØªÙ… Ø­Ø°Ù� Ø§Ù„Ø±Ù‚Ù… õ    Ø¨Ù†Ø¬Ø§Ø­.)r.  r—  rî  r   r¾   r>   r×   rØ   r,   rn  rÓ  rf  )rv  r3  r¶   rÃ  r>   rB   rB   rC   Údel_ph_exec%  s   €
€r*  Ú
phones_pg_c           	      Ã   sl  �t | j d¡d ƒ}tƒ I d H }t|ƒ}|d }|||d … }|s5|dkr5| jjdtƒ d�I d H  d S |sI| jd|d › d	�d
d�I d H  d S t	ƒ }|D ]}| 
td|d › �dd�¡ qNg }|dkrs| tdd|d › �d�¡ t|ƒ|d kr‰| tdd|d › �d�¡ |r�|j
|Ž  | 
tddd�¡ | jjd|› d|d › dt|ƒ› d�| ¡ d�I d H  d S )NrX  rí  r®   r   u`   âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ù„Ø§ØªÙˆØ¬Ø¯ Ø§Ø±Ù‚Ø§Ù… Ù…Ø¶Ø§Ù�Ø© Ø­Ø§Ù„ÙŠØ§Ù‹ Ù�ÙŠ Ø§Ù„Ù‚Ø§Ø¦Ù…Ø©.ry  õ   Ø§Ù„Ù‚Ø§Ø¦Ù…Ø© r›   õ    Ù�Ø§Ø±ØºØ©.Tr•  u   âœ… r¶   r½  rz   r¿  r+  rÁ  r’   rk  u   Ø¥Ø¬Ù…Ø§Ù„ÙŠ Ø§Ù„Ø£Ø±Ù‚Ø§Ù…: õ    | Ù‚Ø§Ø¦Ù…Ø© rÏ  rÐ  )rî  r.  r—  r   r³   rf  r{  r•   rn  r   r‹   r
   r\   rŒ   )	rv  rÃ  rª  ré   rÄ  rÅ  rŽ   rÍ  rÈ  rB   rB   rC   Ú	phones_pg2  s0   € 
:r/  Úbanned_phones_pg_c           	   	   Ã   sv  �t | j d¡d ƒ}tƒ I d H }t|ƒ}|d }|||d … }|s5|dkr5| jjdtƒ d�I d H  d S |sI| jd|d › d	�d
d�I d H  d S t	ƒ }|D ]}| 
t|d dd�tdd|d › �d�¡ qNg }|dkrz| tdd|d › �d�¡ ||d krŽ| tdd|d › �d�¡ |r•|j
|Ž  | 
tddd�¡ | jjd|› d|d › dt|ƒ› d�| ¡ d�I d H  d S )NrX  rí  r®   r   ub   âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ù„Ø§ØªÙˆØ¬Ø¯ Ø§Ø±Ù‚Ø§Ù… Ù…Ø­Ø¶ÙˆØ±Ø© Ø­Ø§Ù„ÙŠØ§Ù‹ Ù�ÙŠ Ø§Ù„Ù‚Ø§Ø¦Ù…Ø©.ry  r,  r›   r-  Tr•  r¶   r½  rz   rÊ  Údel_banned_r¿  r0  rÁ  r’   rk  uf   âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ù‡Ø°Ù‡ Ù‡ÙŠ Ù‚Ø§Ø¦Ù…Ø© Ø§Ù„Ø§Ø±Ù‚Ø§Ù… Ø§Ù„Ù…Ø­Ø¶ÙˆØ±Ø©:
Ø§Ù„Ø¥Ø¬Ù…Ø§Ù„ÙŠ: r.  rÏ  rÐ  )rî  r.  r—  r!   r³   rf  r{  r•   rn  r   r‹   r
   r\   rŒ   )	rv  rÃ  Úbannedré   rÄ  rÅ  rŽ   rÍ  rÈ  rB   rB   rC   Úbanned_phones_pgL  s<   € þ
þr3  r1  c                 Ã   s&  �| j  dd¡d }dd l}|j ¡ 4 I d H š}| d|¡I d H  W d   ƒI d H  n1 I d H s1w   Y  d|› d�d|› d�fD ]4}ztj |¡rXt 	|¡ t
 d	|› �¡ W qB tyv } zt
 d
|› d|› �¡ W Y d }~qBd }~ww t|ƒI d H  |  d|› d�¡I d H  t| ƒI d H  d S )NrX  r›   rí  r   z*DELETE FROM banned_accounts WHERE phone=$1r€  rª   r«   u+   [DEL BANNED] Ø­Ù�Ø°Ù� Ù…Ù„Ù� Ø§Ù„Ø¬Ù„Ø³Ø©: u   [DEL BANNED] Ù�Ø´Ù„ Ø­Ø°Ù� rW   u   âœ“ ØªÙ… Ø­Ø°Ù� Ø§Ù„Ø±Ù‚Ù… u#    Ù†Ù‡Ø§Ø¦ÙŠØ§Ù‹ Ù…Ù† ÙƒÙ„ Ù…ÙƒØ§Ù†.)r.  ÚrsplitrO   Ú_pg_poolÚacquirer£   r¾   r>   r×   rØ   r_   rÃ   r^   rº   r,   rn  r3  )rv  r¶   Ú_sharedÚconr>   re   rB   rB   rC   Údel_banned_execl  s.   €ÿ(ÿ

þ
€"€ÿr9  rs   c                 Ã   óD   �|  tj¡I d H  tƒ I d H }| jjd|› d�tƒ d�I d H  d S )Nu   Ø§Ù„Ø³Ø±Ø¹Ø© Ø§Ù„Ø­Ø§Ù„ÙŠØ©: uz    Ø«Ø§Ù†ÙŠØ© Ø¨ÙŠÙ† ÙƒÙ„ Ù‚Ù†Ø§Ø© ÙˆØ£Ø®Ø±Ù‰.
âš ï¸� Ø§Ù„Ù…ÙˆØµÙ‰ Ø¨Ù‡: 5 Ø«ÙˆØ§Ù†ÙŠ

Ø£Ø±Ø³Ù„ Ø§Ù„Ø¹Ø¯Ø¯ Ø¨Ø§Ù„Ø«ÙˆØ§Ù†ÙŠ:ry  )rz  rl   rs   r   rf  r{  r•   )rv  rw  ÚspdrB   rB   rC   Úset_speed_cbŠ  ó   €
ýr<  c                 Ã   sd   �| j  ¡ s|  d¡I d H  d S td| j ƒI d H  | jd| j › d�tƒ d�I d H  | ¡ I d H  d S )Nu$   ÙŠØ±Ø¬Ù‰ Ø¥Ø±Ø³Ø§Ù„ Ø±Ù‚Ù… ØµØ­ÙŠØ­.Úgathering_speedu#   âœ“: ØªÙ… ØªØ­Ø¯ÙŠØ¯ Ø§Ù„Ø³Ø±Ø¹Ø©: u    Ø«Ø§Ù†ÙŠØ©.ry  )ra   Úisdigitrn  r   r•   rŽ  ©rd   rw  rB   rB   rC   Ú
proc_speed”  s   €
 rA  rt   c                 Ã   r:  )Nu9   Ø¹Ø¯Ø¯ Ø§Ù„Ø­Ø³Ø§Ø¨Ø§Øª Ø§Ù„Ù…ØªÙˆØ§Ø²ÙŠØ© Ø§Ù„Ø­Ø§Ù„ÙŠ: um   
âš ï¸� Ø§Ù„Ù…ÙˆØµÙ‰ Ø¨Ù‡: 20 | Ø§Ù„Ø­Ø¯ Ø§Ù„Ø£Ù‚ØµÙ‰ Ø§Ù„Ù…Ù‚ØªØ±Ø­: 30

Ø£Ø±Ø³Ù„ Ø§Ù„Ø¹Ø¯Ø¯ Ø§Ù„Ù…Ø·Ù„ÙˆØ¨:ry  )rz  rl   rt   r   rf  r{  r•   )rv  rw  ÚconcrB   rB   rC   Úset_concurrent_cb�  r=  rC  c                 Ã   ór   �| j  ¡ rt| j ƒdk r|  d¡I d H  d S td| j ƒI d H  | jd| j › d�tƒ d�I d H  | ¡ I d H  d S )Nr›   õ4   ÙŠØ±Ø¬Ù‰ Ø¥Ø±Ø³Ø§Ù„ Ø±Ù‚Ù… ØµØ­ÙŠØ­ Ø£ÙƒØ¨Ø± Ù…Ù† 0.Ú
concurrentu:   âœ“: ØªÙ… ØªØ­Ø¯ÙŠØ¯ Ø§Ù„Ø­Ø³Ø§Ø¨Ø§Øª Ø§Ù„Ù…ØªÙˆØ§Ø²ÙŠØ©: r²  ry  ©ra   r?  rî  rn  r   r•   rŽ  r@  rB   rB   rC   Úproc_concurrent§  ó   € rH  ru   c                 Ã   r:  )Nu    ÙˆÙ‚Øª Ø§Ù„Ø¹Ù…Ù„ Ø§Ù„Ø­Ø§Ù„ÙŠ: u[    Ø¯Ù‚ÙŠÙ‚Ø©.
âš ï¸� Ø§Ù„Ù…ÙˆØµÙ‰ Ø¨Ù‡: 15 Ø¯Ù‚ÙŠÙ‚Ø©

Ø£Ø±Ø³Ù„ Ø§Ù„Ù…Ø¯Ø© Ø¨Ø§Ù„Ø¯Ù‚Ø§Ø¦Ù‚:ry  )rz  rl   ru   r   rf  r{  r•   )rv  rw  ÚwmrB   rB   rC   Úset_work_minutes_cb°  r=  rK  c                 Ã   rD  )Nr›   rE  Úwork_minutesu(   âœ“: ØªÙ… ØªØ­Ø¯ÙŠØ¯ ÙˆÙ‚Øª Ø§Ù„Ø¹Ù…Ù„: õ    Ø¯Ù‚ÙŠÙ‚Ø©.ry  rG  r@  rB   rB   rC   Úproc_work_minutesº  rI  rN  rv   c                 Ã   r:  )Nu(   ÙˆÙ‚Øª Ø§Ù„Ø§Ø³ØªØ±Ø§Ø­Ø© Ø§Ù„Ø­Ø§Ù„ÙŠ: uZ    Ø¯Ù‚ÙŠÙ‚Ø©.
âš ï¸� Ø§Ù„Ù…ÙˆØµÙ‰ Ø¨Ù‡: 5 Ø¯Ù‚Ø§Ø¦Ù‚

Ø£Ø±Ø³Ù„ Ø§Ù„Ù…Ø¯Ø© Ø¨Ø§Ù„Ø¯Ù‚Ø§Ø¦Ù‚:ry  )rz  rl   rv   r   rf  r{  r•   )rv  rw  ÚrmrB   rB   rC   Úset_rest_minutes_cbÃ  r=  rP  c                 Ã   rD  )Nr›   rE  Úrest_minutesu0   âœ“: ØªÙ… ØªØ­Ø¯ÙŠØ¯ ÙˆÙ‚Øª Ø§Ù„Ø§Ø³ØªØ±Ø§Ø­Ø©: rM  ry  rG  r@  rB   rB   rC   Úproc_rest_minutesÍ  rI  rR  r„   c                 Ã   sà   �t dd�I d H }tƒ I d H }|s| jjdtƒ d�I d H  d S |s/| jjdtƒ d�I d H  d S tƒ }|D ]}|d }| td|› �dd	�td
d|› �d	�¡ q4| tddd	�¡ | tddd	�¡ | jjd| ¡ d�I d H  d S )NT©Úactive_onlyõW   âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ù„Ø§ØªÙˆØ¬Ø¯ Ø­Ø³Ø§Ø¨Ø§Øª Ù…Ø¶Ø§Ù�Ø© Ù†Ø´Ø·Ø© Ø­Ø§Ù„ÙŠØ§Ù‹.ry  õm   âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ù„Ø§ØªÙˆØ¬Ø¯ Ø¨ÙˆØªØ§Øª ØªÙ…ÙˆÙŠÙ„ Ù…Ø¶Ø§Ù�Ø© Ø§Ù„Ù‰ Ø§Ù„Ù‚Ø§Ø¦Ù…Ø© Ø­Ø§Ù„ÙŠØ§Ù‹.râ  rè  r½  rz   u   Ø¨Ø¯Ø¡Ústart_gather_bot_u   Ø¨Ø¯Ø¡ Ù„ÙƒÙ„ Ø§Ù„Ø¨ÙˆØªØ§ØªÚstart_gather_all_botsr’   rk  ud   Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± ÙŠØ¬Ø¨ Ø§Ø®ØªÙŠØ§Ø± Ø¨ÙˆØª Ù‚Ø¨Ù„ Ø§Ù„Ø¨Ø¯Ø¡ Ù�ÙŠ Ø¹Ù…Ù„ÙŠØ© Ø§Ù„ØªØ¬Ù…ÙŠØ¹:)	r   r"   rf  r{  r•   r   r‹   r
   rŒ   )rv  rª  ræ  rŽ   rê  rë  rB   rB   rC   r„   Ö  s,   €þþrW  c                 Ã   s(  �| j tdƒd … }td str| jddd�I d H  d S tddƒI d H dkr=td	d
ƒI d H }| jd|› �dd�I d H  d S tdd�I d H }|sU| jjdt	ƒ d�I d H  d S t
 ¡  tddƒI d H  td	|ƒI d H  tƒ I d H }tƒ I d H }| jjd|› d|› d|› d�t	ƒ d�I d H  tt |¡ƒ d S )NrW  rî   õt   âš ï¸� Ù�Ø­Øµ/ØªØ¹Ø¯ÙŠÙ„ Ø§Ù„Ù…Ù„Ù�Ø§Øª Ø§Ù„Ø´Ø®ØµÙŠØ© ÙŠØ¹Ù…Ù„ Ø§Ù„Ø¢Ù† â€” Ø§Ù†ØªØ¸Ø± Ø§Ù†ØªÙ‡Ø§Ø¡ÙŽÙ‡ Ø£ÙˆÙ„Ø§Ù‹.Tr•  r�   rÔ  rš  Ú
active_botrH   õ6   âš ï¸�: Ø§Ù„ØªØ¬Ù…ÙŠØ¹ ÙŠØ¹Ù…Ù„ Ø¨Ø§Ù„Ù�Ø¹Ù„ Ø¹Ù„Ù‰: @rS  rU  ry  u3   âœ“: ØªÙ… Ø¨Ø¯Ø¡ Ø§Ù„ØªØ¬Ù…ÙŠØ¹ Ø¹Ù„Ù‰ Ø§Ù„Ø¨ÙˆØª @u5    Ø§Ù„Ø§Ù†.
â†�: Ø§Ù„Ø­Ø³Ø§Ø¨Ø§Øª Ø§Ù„Ù…ØªÙˆØ§Ø²ÙŠØ©: u    Ø­Ø³Ø§Ø¨.
â†�: Ø§Ù„Ø³Ø±Ø¹Ø©: u,    Ø«Ø§Ù†ÙŠØ© Ø¨ÙŠÙ† ÙƒÙ„ Ù‚Ù†Ø§Ø© ÙˆØ§Ø®Ø±Ù‰.)r.  r³   r  rŸ  rn  r   r   rf  r{  r•   r.   rŽ  r   r   r   r4   rð  Ú
run_gather)rv  r  rZ  rª  rB  r;  rB   rB   rC   Ústart_gather_botî  s<   €þÿþür]  rX  c              
   Ã   s`  �t d str| jddd�I d H  d S tddƒI d H dkr4tdd	ƒI d H }| jd
|› �dd�I d H  d S tdd�I d H }tƒ I d H }|sR| jjdtƒ d�I d H  d S |sb| jjdtƒ d�I d H  d S t	 
¡  tddƒI d H  tddƒI d H  tƒ I d H }tƒ I d H }d dd„ |D ƒ¡}| jjd|› dt|ƒ› d|› d|› d�	tƒ d�I d H  tt ¡ ƒt_d S )Nrî   rY  Tr•  r�   rÔ  rš  rZ  rH   r[  rS  rU  ry  rV  ÚALLz, c                 S   s   g | ]	}d |d › �‘qS )rè  râ  rB   rã  rB   rB   rC   r�   %  s    z,start_gather_all_bots_cb.<locals>.<listcomp>u^   âœ“: ØªÙ… Ø¨Ø¯Ø¡ Ø§Ù„ØªØ¬Ù…ÙŠØ¹ Ø¹Ù„Ù‰ Ø¬Ù…ÙŠØ¹ Ø§Ù„Ø¨ÙˆØªØ§Øª Ø§Ù„Ø§Ù†.
â†�: Ø§Ù„Ø¨ÙˆØªØ§Øª: u   
â†�: Ø§Ù„Ø­Ø³Ø§Ø¨Ø§Øª: u   
â†�: ÙˆÙ‚Øª Ø§Ù„Ø¹Ù…Ù„: u)    Ø¯Ù‚ÙŠÙ‚Ø© | ÙˆÙ‚Øª Ø§Ù„Ø§Ø³ØªØ±Ø§Ø­Ø©: rM  )r  rŸ  rn  r   r   r"   rf  r{  r•   r.   rŽ  r   r   r   r¿   r³   r4   rð  Úrun_gather_all_botsrO   Úall_bots_task)rv  rZ  rª  ræ  rJ  rO  Úbots_list_strrB   rB   rC   Ústart_gather_all_bots_cb  sL   €þÿþýýûrb  r…   c                 Ã   sœ   �t ddƒI d H dkr| jjdtƒ d�I d H  d S t ¡  tddƒI d H  tddƒI d H  tjr:tj 	¡ s:tj 
¡  d t_dt_| jjd	tƒ d�I d H  d S )
Nr�   rÔ  rš  uU   âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ù„Ø§ØªÙˆØ¬Ø¯ Ø¹Ù…Ù„ÙŠØ© ØªØ¬Ù…ÙŠØ¹ ØªØ¹Ù…Ù„ Ø­Ø§Ù„ÙŠØ§Ù‹.ry  rZ  rH   FuE   âœ“: Ø¹Ø²ÙŠØ²ÙŠ ØªÙ… Ø§ÙŠÙ‚Ø§Ù� Ø¹Ù…Ù„ÙŠØ© Ø§Ù„ØªØ¬Ù…ÙŠØ¹ Ø¨Ù†Ø¬Ø§Ø­.)r   rf  r{  r•   r.   rY   r   rO   r`  r³  rï   Úall_bots_onr¯  rB   rB   rC   r…   0  s   €
r‰   c              	   Ã   s�   �t ddƒI d H dk}|rdnd}t ddƒI d H }|r"|r"d|› �nd}tƒ I d H }tƒ I d H }| jd	|› |› d
|› d|› d�dd�I d H  d S )Nr�   rÔ  rš  r†   r‡   rZ  rH   u   
Ø§Ù„Ø¨ÙˆØª Ø§Ù„Ù†Ø´Ø·: @rˆ   u   
Ù…ØªÙˆØ§Ø²ÙŠ: u    Ø­Ø³Ø§Ø¨
Ø§Ù„Ø³Ø±Ø¹Ø©: u   Ø«Tr•  )r   r   r   rn  )rv  rÕ  r�   rZ  Úbot_inforB  r;  rB   rB   rC   r‰   @  s   €þr&   c                 Ã   sT   �t | jjƒs| jddd�I d H  d S | tj¡I d H  | jjdt	ƒ d�I d H  d S )NõJ   âš ï¸�: Ø¹Ø²ÙŠØ²ÙŠ Ù‡Ø°Ù‡ Ø§Ù„Ø§Ø¬Ø±Ø§Ø¡ Ù…Ø®ØµØµ Ù„Ù„Ù…Ø·ÙˆØ±ÙŠÙ† Ù�Ù‚Ø·.Tr•  uk   âŠ± Ø­Ø³Ù†Ø§Ù‹ Ø§Ø±Ø³Ù„ Ø£ÙŠØ¯ÙŠ Ø§Ù„Ù…Ø³ØªØ®Ø¯Ù… Ø§Ù„Ù…Ø·Ù„ÙˆØ¨ Ù„Ø§Ø¶Ø§Ù�ØªÙ‡ ÙƒØ£Ø¯Ù…Ù† Ù�ÙŠ Ø§Ù„Ø¨ÙˆØª:ry  )
rS   rß  r2  rn  rz  rl   r&   rf  r{  r•   r|  rB   rB   rC   Úadd_admin_cbM  s   €rf  c                 Ã   sf   �| j  ¡ s|  d¡I d H  d S tt| j ƒƒI d H  | jd| j › d�tƒ d�I d H  | ¡ I d H  d S )Nu<   âš ï¸�: Ø­Ø¯Ø« Ø®Ø·Ø£ØŒ ÙŠØ¬Ø¨ Ø§Ø±Ø³Ø§Ù„ Ø£ÙŠØ¯ÙŠ ØµØ­ÙŠØ­.u"   âœ“: ØªÙ… Ø§Ø¶Ø§Ù�Ø© Ø§Ù„Ø§Ø¯Ù…Ù† r)  ry  )ra   r?  rn  r&   rî  r•   rŽ  r@  rB   rB   rC   Úproc_add_adminU  s   €
 rg  r'   c                 Ã   s   �t | jjƒs| jddd�I d H  d S tƒ I d H }|s)| jjdtƒ d�I d H  d S tƒ }|D ]I}z+t	 
|¡I d H }|jrBd|j› �nt|ƒ}| t|d|› �d�td	d
|› �d�¡ W q. tyw   | tt|ƒdd�td	d
|› �d�¡ Y q.w | tddd�¡ | jjd| ¡ d�I d H  d S )Nre  Tr•  u^   âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ù„Ø§ÙŠÙˆØ¬Ø¯ Ø§Ø¯Ù…Ù†ÙŠØ© Ù…Ø¶Ø§Ù�Ø© Ø­Ø§Ù„ÙŠØ§Ù‹ Ù�ÙŠ Ø§Ù„Ø¨ÙˆØª.ry  rè  ztg://user?id=r»  rÊ  Údel_adm_rz   r½  r’   rk  uc   âŠ± Ø¹Ø²ÙŠØ²ÙŠ Ø§Ù„Ù…Ø·ÙˆØ± Ù‡Ø°Ù‡ Ù‡ÙŠ Ù‚Ø§Ø¦Ù…Ø© Ø§Ù„Ø§Ø¯Ù…Ù†ÙŠØ© Ø§Ù„Ù…Ø¶Ø§Ù�Ø© Ù�ÙŠ Ø§Ù„Ø¨ÙˆØª:)rS   rß  r2  rn  r%   rf  r{  r•   r   rZ   Úget_chatrâ  rÄ   r‹   r
   r^   rŒ   )rv  ÚadminsrŽ   rQ   Úuserrô   rB   rB   rC   rÛ  ^  s2   €þþÿrÛ  rh  c                 Ã   sF   �t | j d¡d ƒ}t|ƒI d H  |  d¡I d H  t| ƒI d H  d S )NrX  r”  u)   âœ“: ØªÙ… Ø­Ø°Ù� Ø§Ù„Ø§Ø¯Ù…Ù† Ø¨Ù†Ø¬Ø§Ø­.)rî  r.  r—  r'   rn  rÛ  )rv  rQ   rB   rB   rC   Údel_adm_execx  s
   €rl  c                    sH   |  d|d ¡}t|ƒ‰ g d¢}t‡ fdd„|D ƒƒrd S |  |¡ d S )NÚ	exceptionrf  )zPeer id invalidzID not foundzRequest timed outzConnection lostzBroken piper  c                 3   s   � | ]}|ˆ v V  qd S r7   rB   )rœ   Úx©Úmsg_strrB   rC   rø   †  rù   z#handle_exception.<locals>.<genexpr>)rè   rÄ   rû   Údefault_exception_handler)ÚloopÚcontextrd   ÚignoredrB   ro  rC   Úhandle_exception  s   ru  c               
   C   s’   t  d¡ dd l} z$|  tj¡}| ¡ }| d¡ | d¡ | ¡  | 	¡  t  d¡ W d S  t
yH } zt  d|› �¡ W Y d }~d S d }~ww )Nu$   [SHUTDOWN] Ø¥ÙŠÙ‚Ø§Ù� Ø§Ù„Ø³ÙƒØ±Ø¨Øªr   z3UPDATE settings SET value='0' WHERE key='is_active'z3UPDATE settings SET value='' WHERE key='active_bot'uJ   [SHUTDOWN] ØªÙ… Ø¥ÙŠÙ‚Ø§Ù� Ø§Ù„ØªØ¬Ù…ÙŠØ¹ Ù�ÙŠ Ù‚Ø§Ø¹Ø¯Ø© Ø§Ù„Ø¨ÙŠØ§Ù†Ø§Øªz[SHUTDOWN] )r_   rÃ   Úpsycopg2r¡   rO   ÚPG_DSNr¢   r£   Úcommitr¥   r^   rº   )rv  r8  Úcurre   rB   rB   rC   Úshutdown_handlerŠ  s   


€ÿrz  rZ   c                 Ã   s<   �| j tjtjtjg d¢dd�I d H  t dtj› �¡ d S )N)rf  Úchannel_postÚcallback_queryT)r¼  Ú
ip_addressÚsecret_tokenÚallowed_updatesÚdrop_pending_updatesu-   [WEBHOOK] ØªÙ… ØªÙ�Ø¹ÙŠÙ„ Ø§Ù„ÙˆÙŠØ¨ Ù‡ÙˆÙƒ: )Úset_webhookrM   ÚWEBHOOK_URLÚ
WEBHOOK_IPÚWEBHOOK_SECRETr_   rÃ   ©rZ   rB   rB   rC   Ú
on_startup™  s   €ûr†  c                 Ã   s$   �t ƒ  |  ¡ I d H  t d¡ d S )Nu=   [WEBHOOK] ØªÙ… Ø­Ø°Ù� Ø§Ù„ÙˆÙŠØ¨ Ù‡ÙˆÙƒ Ø¹Ù†Ø¯ Ø§Ù„Ø¥ÙŠÙ‚Ø§Ù�)rz  Údelete_webhookr_   rÃ   r…  rB   rB   rC   Úon_shutdown£  s   €rˆ  c                  Ã   sx  �t jddd� t jtdd� t jtdd� t ¡ I d H  t ¡ I d H t_t 	t
tt¡ t ¡ } |  t¡ t t ¡ ¡ t t ¡ ¡ t t ¡ ¡ tj t¡ tj t¡ t ¡ }ttt
tjd�j|tj d� t!|tt
d� t "|¡}| #¡ I d H  t $|tj%tj&¡}| '¡ I d H  t( )dtj%› dtj&› �¡ t *¡ }t+j,t+j-fD ]	}|  .||j/¡ q¢| 0¡ I d H  | 1¡ I d H  d S )	NÚsessionsT)Úexist_ok)Ú
dispatcherrZ   r~  )r>   r…  u+   âœ… Bot ÙŠØ¹Ù…Ù„ Ø§Ù„Ø¢Ù† (webhook) Ø¹Ù„Ù‰ ú:)2r¾   Úmakedirsr;  r8  rO   Úinit_dbr%   r   rð  Úset_botrZ   rf   rk   r  Úget_event_loopÚset_exception_handlerru  Úcreate_taskÚperiodic_cleanupÚhealth_checkÚ_flush_join_notifyÚdpÚstartupÚregisterr†  Úshutdownrˆ  r   ÚApplicationr   rM   r„  ÚWEBHOOK_PATHr   Ú	AppRunnerÚsetupÚTCPSiteÚWEBHOOK_LISTEN_HOSTÚWEBHOOK_LISTEN_PORTrÄ  r_   rÃ   ÚEventÚsignalÚSIGINTÚSIGTERMÚadd_signal_handlerrY   ÚwaitÚcleanup)rr  ÚappÚrunnerÚsiteÚstop_foreverÚsigrB   rB   rC   r‘   ©  sB   €
ýü
Ú__main__)r‘   )r"  TTT)r"  )Ñr  Úloggingr¾   r¢  r    rÓ   rÑ   r<  rÁ   r°   Úaiogramr   r   r   Úaiogram.filtersr   Úaiogram.fsm.contextr   Úaiogram.fsm.stater   r   Úaiogram.fsm.storage.memoryr	   Úaiogram.typesr
   r   r   r   Úaiogram.utils.keyboardr   Úaiohttpr   Úaiogram.webhook.aiohttp_serverr   r   rE  r   Úpyrogram.errorsr   r   rM   Úimportlib.utilr8   rO   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/   r0   r1   r2   r3   r4   r5   Úgather_enginerð  r>   Ú
expanduserr;  r8  rÀ   Ú	getLoggerrm   r_   ÚbasicConfigÚINFOrD   r¿   Únamesr9  r^   Úbiosr:  r6  r7  Ú	BOT_TOKENrZ   r–  rR   rS   rf   rX   rÄ   rk   rl   r�   r•   r—   Úboolr¨   r¸   r§  rÇ   râ   rì   r  rŸ  r¡  r¤  r·  r  rþ   r  r  r  r!  r^  r`  re  ro  ru  r|  r.  r}  rf  rp   r‹  rq   r�  rr   r’  r†  r™  r®  r°  r±  r¹  rÉ  rÎ  rî  rÓ  rk  rÖ  rÚ  rÞ  rà  rá  rç  rØ  rì  rï  ró  r÷  rõ  rþ  r  r  r  r  r  rô  r  rx   r'  r(  r*  r/  r3  r9  r<  rs   rA  rC  rt   rH  rK  ru   rN  rP  rv   rR  r„   r]  rb  r…   r‰   rf  rg  rÛ  rl  ru  rz  r†  rˆ  r‘   ÚrunrB   rB   rB   rC   Ú<module>   s´  Œ

ÿ
ÿ
ÿ
ÿ&( &+û	,	þÿÿþ
þVÿ
ÿ


TJ

?
C
	
	
	
	#


&ÿ