Ë
    ªÎ¢j+= ã                   ó\	  — d Z ddlZddlmZ ddlm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 ddlmZ ddlmZ ddlmZ dd	lmZmZmZmZ  e	j@                  e	jB                  d
¬«       dZ" ejF                  e"d¬«       dddddœZ$dZ%e%› d�Z&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0g d ¢Z1d!d"gZ2d#Z3d$„ Z4d%„ Z5d&„ Z6d'„ Z7d(„ Z8d)„ Z9d*„ Z:dzd+„Z;d,„ Z<d-„ Z=d{d.„Z>d/„ Z?d0„ Z@d1„ ZAd2„ ZBd3„ ZCd4„ ZDd|d5„ZEd6„ ZFd7„ ZGd8„ ZHd9„ ZId:„ ZJd;„ ZKd<„ ZLd=„ ZMd>„ ZNd?„ ZOd@„ ZPdA„ ZQdBZRdCdDdEdFdGœZS ej¨                  dHejª                  «      ZVdI„ ZWdJ„ ZXdK„ ZYdL„ ZZdM„ Z[dN„ Z\dO„ Z]dPZ^dQZ_d}dR„Z`dS„ ZadT„ ZbdU„ ZcdV„ ZddW„ Zed~dX„Zfd~dY„ZgdZ„ Zhd[„ Zid\„ Zjd]„ Zkd^„ Zld_„ Zmd`„ Znd|da„Zodb„ Zpdc„ Zqddd„Zresdek(  �ru e5«         e	jè                  df«       dZudZvdgZwdZxdZy	 	 	 eu€ eddh¬i«      Zueujõ                  «        ev� epev«      s eo«       Zvexdjz  Zx e
j                  «       Z{exewz  dk(  Z| ereve|¬k«      Zv	  e	jè                  dl«        e9ev«      Z}e}r
 e<e}ev«       n e	jü                  dm«        erev«      Zv	  e	jè                  do«        ehev«        erev«      Zv e
j                  «       eyz
  e,k\  r<	  e	jè                  dq«        erev«      Zv enev«        e
j                  «       Zy erev«      Zv e
j                  «       e{z
  Z‚ e	jè                  dse‚dt›due+› dv�«        e
�j                  e+«       �ŒPy# e$ r*Z€ e	�j                  dne€› �«        erevd¬k«      ZvY dZ€[€ŒädZ€[€ww xY w# e$ r*Z€ e	�j                  dpe€› �«        erevd¬k«      ZvY dZ€[€ŒódZ€[€ww xY w# e$ r*Z€ e	�j                  dre€› �«        erevd¬k«      ZvY dZ€[€ŒëdZ€[€ww xY w#  e
j                  «       Zyw xY w# e„$ r  e	jè                  dw«       Y n{e$ rtZ€ e	�j
                  dxe€› �«       ev� eqev«       dZveu�	 eu�j                  «        n# e$ r Y nw xY wdZu e	jü                  dy«        e
�j                  dg«       Y dZ€[€�Œ;dZ€[€ww xY w	 ev� eqev«       eu�	 eu�j                  «        y# e$ r Y yw xY wy# ev� eqev«       eu�	 eu�j                  «        w # e$ r Y w w xY ww xY w)€uâ  
fedresurs_unified.py â€” Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½Ñ‘Ð½Ð½Ñ‹Ð¹ Ð¿Ð°Ñ€Ñ�ÐµÑ€ Fedresurs.

Ð¨Ð°Ð³ 1: Ñ�Ð¾Ð±Ð¸Ñ€Ð°ÐµÑ‚ Ñ�Ð¿Ð¸Ñ�Ð¾Ðº Ñ‚Ð¾Ñ€Ð³Ð¾Ð² (TradeList) â†’ Ñ�Ð¾Ñ…Ñ€Ð°Ð½Ñ�ÐµÑ‚ Ð² Ð‘Ð” â†’
Ð´Ð»Ñ� Â«ÐŸÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ�Â» Ð¸Ñ‰ÐµÑ‚ Ñ�Ñ�Ñ‹Ð»ÐºÑƒ Ð½Ð° Ð¾Ð±ÑŠÑ�Ð²Ð»ÐµÐ½Ð¸Ðµ Ð¾ Ñ‚Ð¾Ñ€Ð³Ð°Ñ….

Ð¨Ð°Ð³ 2: Ð±ÐµÑ€Ñ‘Ñ‚ Ð½ÐµÐ¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð½Ð½Ñ‹Ðµ last_message_url â†’ Ð¿Ð°Ñ€Ñ�Ð¸Ñ‚ Ð»Ð¾Ñ‚Ñ‹ â†’
Ð¾Ð±Ð½Ð¾Ð²Ð»Ñ�ÐµÑ‚ Ð‘Ð” â†’ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»Ñ�ÐµÑ‚ Ð² Ð¿ÐµÑ€Ð²ÑƒÑŽ Ð³Ñ€ÑƒÐ¿Ð¿Ñƒ Telegram (Ñ� ÑƒÑ‡Ñ‘Ñ‚Ð¾Ð¼ Ð¸Ñ�ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ð¹).

Ð¨Ð°Ð³ 3: Ð¿Ñ€Ð¸Ð¼ÐµÑ€Ð½Ð¾ Ñ€Ð°Ð· Ð² Ñ‡Ð°Ñ� Ð¿Ñ€Ð¾Ð²ÐµÑ€Ñ�ÐµÑ‚ ÑƒÐ¶Ðµ Ñ€Ð°Ñ�Ð¿Ð°Ñ€Ñ�ÐµÐ½Ð½Ñ‹Ðµ Ð»Ð¾Ñ‚Ñ‹, Ñƒ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… ÐµÑ�Ñ‚ÑŒ
lots_app_time. Ð•Ñ�Ð»Ð¸ Ð´Ð¾ ÐºÐ¾Ð½Ñ†Ð° Ð¿Ñ€Ð¸Ñ‘Ð¼Ð° Ð·Ð°Ñ�Ð²Ð¾Ðº Ð¾Ñ�Ñ‚Ð°Ð»Ð¾Ñ�ÑŒ 7 Ð´Ð½ÐµÐ¹, Ñ�ÐºÑ€Ð¸Ð¿Ñ‚ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ñ�ÐµÑ‚
Ð°ÐºÑ‚ÑƒÐ°Ð»ÑŒÐ½Ð¾Ñ�Ñ‚ÑŒ Ð¸ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»Ñ�ÐµÑ‚ Ð»Ð¾Ñ‚ Ð²Ð¾ Ð²Ñ‚Ð¾Ñ€ÑƒÑŽ Ð³Ñ€ÑƒÐ¿Ð¿Ñƒ, ÐµÑ�Ð»Ð¸ Ð¾Ð½ Ð½Ðµ Ð¸Ñ�ÐºÐ»ÑŽÑ‡Ñ‘Ð½.

Ð’Ñ‹Ð¿Ð¾Ð»Ð½Ñ�ÐµÑ‚Ñ�Ñ� ÐžÐ”Ð˜Ð� Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ñ�, ÑˆÐ°Ð³Ð¸ Ð¸Ð´ÑƒÑ‚ ÐŸÐž ÐžÐ§Ð•Ð Ð•Ð”Ð˜.
é    N)ÚDisplay)ÚBeautifulSoup)ÚdatetimeÚ	timedelta)ÚBy)ÚWebDriverWait)Úexpected_conditions)ÚWebDriverExceptionÚInvalidSessionIdExceptionÚNoSuchWindowExceptionÚSessionNotCreatedExceptionz)%(asctime)s - %(levelname)s - %(message)s)ÚlevelÚformatz/var/www/html/fedresT)Úexist_okÚ	localhostÚadminzG_0k2V8Y6-6Sege!DAxÚ	fedresurs)ÚhostÚuserÚpasswordÚdatabasez https://old.bankrot.fedresurs.ruz/TradeList.aspxz.8141522208:AAHZxJdI76anqke2CkxXf4wYMAxZREstmd4z-1004316870238z-1004358393688é—   i  i  é   é   é�  é   )uŸ   ÐŸÑ€Ð°Ð²Ð° Ñ‚Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ� Ð½Ð° ÐºÑ€Ð°Ñ‚ÐºÐ¾Ñ�Ñ€Ð¾Ñ‡Ð½Ñ‹Ðµ Ð´Ð¾Ð»Ð³Ð¾Ð²Ñ‹Ðµ Ð¾Ð±Ñ�Ð·Ð°Ñ‚ÐµÐ»ÑŒÑ�Ñ‚Ð²Ð° (Ð´ÐµÐ±Ð¸Ñ‚Ð¾Ñ€Ñ�ÐºÐ°Ñ� Ð·Ð°Ð´Ð¾Ð»Ð¶ÐµÐ½Ð½Ð¾Ñ�Ñ‚ÑŒ)u   ÐŸÑ€Ð¾Ñ‡ÐµÐµu  Ð¢Ð¸Ñ‚ÑƒÐ»Ñ‹ Ñ�Ð¾Ð±Ñ�Ñ‚Ð²ÐµÐ½Ð½Ð¾Ñ�Ñ‚Ð¸ Ð½Ð° ÐºÐ°Ð¿Ð¸Ñ‚Ð°Ð» (Ð°ÐºÑ†Ð¸Ð¸ Ð¸ Ð´Ñ€ÑƒÐ³Ð¸Ðµ Ñ„Ð¸Ð½Ð°Ð½Ñ�Ð¾Ð²Ñ‹Ðµ Ð¸Ð½Ñ�Ñ‚Ñ€ÑƒÐ¼ÐµÐ½Ñ‚Ñ‹, Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´Ð°ÑŽÑ‰Ð¸Ðµ Ð·Ð°ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ðµ Ñ�Ð´ÐµÐ»ÐºÐ¸ Ð¿Ð¾ Ð¿Ð¾Ð²Ð¾Ð´Ñƒ Ð´Ð²Ð¸Ð¶ÐµÐ½Ð¸Ñ� Ñ„Ð¸Ð½Ð°Ð½Ñ�Ð¾Ð²Ñ‹Ñ… Ñ€ÐµÑ�ÑƒÑ€Ñ�Ð¾Ð²)u3   Ð¡Ð¿ÐµÑ†Ð¸Ð°Ð»Ð¸Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ� Ñ‚ÐµÑ…Ð½Ð¸ÐºÐ°uw   ÐœÐ°ÑˆÐ¸Ð½Ñ‹ Ð¸ Ð¾Ð±Ð¾Ñ€ÑƒÐ´Ð¾Ð²Ð°Ð½Ð¸Ðµ Ð¿Ñ€Ð¾Ñ‡Ð¸Ðµ, Ð½Ðµ Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ‹Ðµ Ð² Ð´Ñ€ÑƒÐ³Ð¸Ðµ Ð³Ñ€ÑƒÐ¿Ð¿Ð¸Ñ€Ð¾Ð²ÐºÐ¸u   Ð¦ÐµÐ½Ð½Ñ‹Ðµ Ð±ÑƒÐ¼Ð°Ð³Ð¸u|   ÐžÑ€ÑƒÐ¶Ð¸Ðµ Ñ�Ð¿Ð¾Ñ€Ñ‚Ð¸Ð²Ð½Ð¾Ðµ, Ð¾Ñ…Ð¾Ñ‚Ð½Ð¸Ñ‡ÑŒÐµ Ð¸ Ð²Ð¾ÐµÐ½Ð½Ð°Ñ� Ñ‚ÐµÑ…Ð½Ð¸ÐºÐ° Ð´Ð²Ð¾Ð¹Ð½Ð¾Ð³Ð¾ Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ�u   Ð”Ð¾Ð»Ñ�u   Ð”Ð¾Ð»Ð¸)úinvalid session idúsession deletedúchrome not reachableznot reachableÚdisconnectedznot connectedÚdevtoolszunable to discover open pageszcannot connect to chromezbrowser was closedÚcrashedúno such windowztarget window already closedzwebview not foundzconnection abortedzconnection refusedúbroken pipeÚremotedisconnectedú	errno 111ú	errno 104úname resolutionÚurlopenÚurlerrorÚdnsútemporary failurez)timed out receiving message from rendererzrenderer timeoutztarget closedzpage crashedzchrome crashedc                 ó  ‡— t        | t        t        t        f«      ryt        | t        «      r1t        | «      j                  «       Št        ˆfd„t        D «       «      S t        | «      j                  «       Št        ˆfd„dD «       «      S )u©   
    Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ True, ÐµÑ�Ð»Ð¸ Ð¾ÑˆÐ¸Ð±ÐºÐ° Ð¿Ð¾Ñ…Ð¾Ð¶Ð° Ð½Ð° Ñ�Ð¼ÐµÑ€Ñ‚ÑŒ Chrome/ChromeDriver
    Ð¸Ð»Ð¸ Ð½Ð° Ð½ÐµÐ²Ð°Ð»Ð¸Ð´Ð½ÑƒÑŽ Selenium-Ñ�ÐµÑ�Ñ�Ð¸ÑŽ.
    Tc              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­w©N© ©Ú.0ÚkÚerrs     €ú)/var/www/html/fedres/fedresurs_scraper.pyú	<genexpr>z(is_fatal_driver_error.<locals>.<genexpr>”   s   øè ø€ Ò; �1˜”8Ñ;ùó   ƒc              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr/   r0   r1   s     €r5   r6   z(is_fatal_driver_error.<locals>.<genexpr>—   s   øè ø€ ò àð 	
ˆSŒñùr7   )r   r   r   r#   )	Ú
isinstancer   r   r   r
   ÚstrÚlowerÚanyÚFATAL_DRIVER_KEYWORDS)Úer4   s    @r5   Úis_fatal_driver_errorr?   Š   ss   ø€ ô
 �!Ô/Ô1FÔHbÐcÔdØä�!Ô'Ô(Ü�!‹f�l‰l‹nˆÜÓ;Ô%:Ô;Ó;Ð;ä
ˆa‹&�,‰,‹.€CÜó ð
ôó ð ó    c                  óˆ  — t        j                  j                  di t        ¤Ž} | j	                  «       }g d¢}|D ]Z  \  }}|j                  d|› d�«       |j                  «       rŒ,|j                  d|› d|› �«       t        j                  d|› �«       Œ\ dD ]1  }	 |j                  d|› d	�«       t        j                  d
|› d�«       Œ3 | j                  «        |j                  «        | j                  «        t        j                  d«       y # t        $ r%}t        j                  d|› d|› �«       Y d }~Œ£d }~ww xY w)N))Úlast_message_dateuZ   DATETIME NULL COMMENT 'Ð”Ð°Ñ‚Ð° Ð¿Ð¾Ñ�Ð»ÐµÐ´Ð½ÐµÐ³Ð¾ Ð¾Ð±ÑŠÑ�Ð²Ð»ÐµÐ½Ð¸Ñ� Ð¾ Ñ‚Ð¾Ñ€Ð³Ð°Ñ…')Úlast_message_urlue   VARCHAR(500) NULL COMMENT 'Ð¡Ñ�Ñ‹Ð»ÐºÐ° Ð½Ð° Ð¿Ð¾Ñ�Ð»ÐµÐ´Ð½ÐµÐµ Ð¾Ð±ÑŠÑ�Ð²Ð»ÐµÐ½Ð¸Ðµ Ð¾ Ñ‚Ð¾Ñ€Ð³Ð°Ñ…')Úmessage_processedu`   BOOLEAN DEFAULT FALSE COMMENT 'Ð¤Ð»Ð°Ð³: ÐºÐ°Ñ€Ñ‚Ð¾Ñ‡ÐºÐ° Ð´Ð¾Ð»Ð¶Ð½Ð¸ÐºÐ° Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð½Ð°')Úlots_classifieru9   TEXT NULL COMMENT 'ÐšÐ»Ð°Ñ�Ñ�Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ Ð»Ð¾Ñ‚Ð¾Ð²')Úlots_descriptionu/   TEXT NULL COMMENT 'ÐžÐ¿Ð¸Ñ�Ð°Ð½Ð¸Ðµ Ð»Ð¾Ñ‚Ð¾Ð²')Úlots_app_timeuD   TEXT NULL COMMENT 'Ð’Ñ€ÐµÐ¼Ñ� Ð¿Ñ€Ð¸Ñ‘Ð¼Ð° Ð·Ð°Ñ�Ð²Ð¾Ðº (Ñ� - Ð¿Ð¾)')Úlots_initial_priceu/   TEXT NULL COMMENT 'Ð�Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ� Ñ†ÐµÐ½Ð°')Úlots_auction_stepu+   TEXT NULL COMMENT 'Ð¨Ð°Ð³ Ð°ÑƒÐºÑ†Ð¸Ð¾Ð½Ð°')Úlots_depositu"   TEXT NULL COMMENT 'Ð—Ð°Ð´Ð°Ñ‚Ð¾Ðº')Úlots_price_reductionu-   TEXT NULL COMMENT 'Ð¡Ð½Ð¸Ð¶ÐµÐ½Ð¸Ðµ Ñ†ÐµÐ½Ñ‹')Úlots_parseduG   BOOLEAN DEFAULT FALSE COMMENT 'Ð¤Ð»Ð°Ð³: Ð»Ð¾Ñ‚Ñ‹ Ñ€Ð°Ñ�Ð¿Ð°Ñ€Ñ�ÐµÐ½Ñ‹')Úsecond_group_processeduž   BOOLEAN DEFAULT FALSE COMMENT 'Ð¤Ð»Ð°Ð³: Ð»Ð¾Ñ‚ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½ Ð²Ð¾ Ð²Ñ‚Ð¾Ñ€ÑƒÑŽ Ð³Ñ€ÑƒÐ¿Ð¿Ñƒ Ð¸Ð»Ð¸ Ð½Ðµ Ð¿Ñ€Ð¾ÑˆÑ‘Ð» Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÑƒ' AFTER lots_parsed)Úparse_attemptsu|   INT DEFAULT 0 COMMENT 'ÐšÐ¾Ð»Ð¸Ñ‡ÐµÑ�Ñ‚Ð²Ð¾ Ð½ÐµÑƒÐ´Ð°Ñ‡Ð½Ñ‹Ñ… Ð¿Ð¾Ð¿Ñ‹Ñ‚Ð¾Ðº Ð¿Ð°Ñ€Ñ�Ð¸Ð½Ð³Ð°' AFTER second_group_processed)Úsg_check_attemptsuy   INT DEFAULT 0 COMMENT 'Ð¡Ñ‡Ñ‘Ñ‚Ñ‡Ð¸Ðº Ð½ÐµÑƒÐ´Ð°Ñ‡Ð½Ñ‹Ñ… Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¾Ðº Ð²Ñ‚Ð¾Ñ€Ð¾Ð¹ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹' AFTER parse_attemptszSHOW COLUMNS FROM trades LIKE 'ú'zALTER TABLE trades ADD COLUMN Ú u#   Ð”Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð° ÐºÐ¾Ð»Ð¾Ð½ÐºÐ°: )rE   rF   rG   rH   rI   rJ   rK   z!ALTER TABLE trades MODIFY COLUMN z
 TEXT NULLu'   ÐŸÑ€Ð¸Ð²ÐµÐ´Ñ‘Ð½ Ñ‚Ð¸Ð¿ Ñ�Ñ‚Ð¾Ð»Ð±Ñ†Ð° u    Ðº TEXTu%   Ð�Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ð¿Ñ€Ð¸Ð²ÐµÑ�Ñ‚Ð¸ u
    Ðº TEXT: u2   Ð˜Ð½Ð¸Ñ†Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ� Ð‘Ð” Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð°r0   )ÚmysqlÚ	connectorÚconnectÚ	DB_CONFIGÚcursorÚexecuteÚfetchoneÚloggingÚinfoÚ	ExceptionÚwarningÚcommitÚclose)ÚconnrV   ÚcolumnsÚcol_nameÚcol_defr>   s         r5   Úinit_dbrc   ¥   s3  € Ü�?‰?×"Ñ"Ñ/¤YÑ/€DØ�[‰[‹]€Fò€Gð2 %ò KÑˆ�'Ø�‰Ð8¸¸
À!ÐDÔEØ�‰Õ Ø�N‰NÐ;¸H¸:ÀQÀwÀiÐPÔQÜ�L‰LÐ>¸x¸jÐIÕJð	Kðò ]ˆð	]Ø�N‰NÐ>¸x¸jÈ
ÐSÔTÜ�L‰LÐBÀ8À*ÈHÐUÕVð]ð 	‡K�K„MØ
‡L�L„NØ‡J�J„LÜ‡L�LÐEÕFøô ò 	]Ü�O‰OÐCÀHÀ:ÈZÐXYÐWZÐ[×\Ñ\ûð	]ús   Â.DÄ	EÄD<Ä<Ec                  óH   — t        j                  j                  di t        ¤ŽS )Nr0   )rR   rS   rT   rU   r0   r@   r5   Úget_db_connectionre   Þ   s   € Ü�?‰?×"Ñ"Ñ/¤YÑ/Ð/r@   c                 óÒ   — | j                  d«      syd| j                  dg «      v ry| j                  dd¬«      ry| j                  d¬«      }t	        |xr t        |«      dkD  «      S )	NÚtdFÚpagerÚclassT)Úcolspan©Ústripé   )Úfind_allÚgetÚfindÚget_textÚboolÚlen)ÚrowÚtexts     r5   Úis_valid_trade_rowrv   å   sb   € Ø�<‰<˜ÔØØ�#—'‘'˜' 2Ó&Ñ&ØØ
‡x�x�˜d€xÔ#ØØ�<‰<˜dˆ<Ó#€DÜ�Ò'œ˜T› R™Ó(Ð(r@   c                 ó¦   — | r| j                  «       dv ry dD ](  }	 t        j                  | j                  «       |«      c S  y # t        $ r Y Œ7w xY w)N)Ú Ú-u   â€”)z%d.%m.%Y %H:%M:%Sz%d.%m.%Y %H:%Mz%d.%m.%Y)rl   r   ÚstrptimeÚ
ValueError)Údate_strÚfmts     r5   Ú
parse_dater~   ð   s`   € Ù�x—~‘~Ó'Ð+;Ñ;Øðò ˆð
	Ü×$Ñ$ X§^¡^Ó%5°sÓ;Ò;ðð øô ò 	Ùð	ús   œ#AÁ	AÁAc                 ó¤  — 	 | j                  t        «       t        | d«      j                  t	        j
                  t        j                  df«      «       t        | j                  d«      }|j                  dd¬«      }|s5|j                  dt        j                  dt        j                  «      ¬«      }|st        j                  d«       g S g }|j!                  d«      D �]õ  }t#        |«      sŒ|j!                  d	«      }t%        |«      d
k  rŒ0|d   j'                  d¬«      j)                  «       }|rt%        |«      dk  rŒd|d   j'                  d¬«      }|d   j'                  d¬«      }|d   j                  d«      }	|	r|	j'                  d¬«      n|d   j'                  d¬«      }
|	r|	j+                  d«      r|	d   nd}|d   j                  d«      }|r|j'                  d¬«      n|d   j'                  d¬«      }|r|j+                  d«      r|d   nd}|r|j-                  d«      r	t.        |z   }|d   j                  d«      }|r|j'                  d¬«      n|d   j'                  d¬«      }|r|j+                  d«      r|d   nd}|d   j'                  d¬«      }|d   j'                  d¬«      }|j1                  ||||
|||||||dœ«       �Œø t        j2                  dt%        |«      › d�«       |S # t4        $ rH}t7        |«      rt        j                  d|› �«       ‚ t        j                  d|› �«       g cY d}~S d}~ww xY w)uW   Ð—Ð°Ð³Ñ€ÑƒÐ¶Ð°ÐµÑ‚ TradeList Ð¸ Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ Ñ�Ð¿Ð¸Ñ�Ð¾Ðº Ð¾Ð±ÑŠÑ�Ð²Ð»ÐµÐ½Ð¸Ð¹.é(   Úctl00_cphBody_gvTradeListúhtml.parserÚtable©ÚidzgvTradeList$u/   Ð¢Ð°Ð±Ð»Ð¸Ñ†Ð° Ñ‚Ð¾Ñ€Ð³Ð¾Ð² Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½Ð°Útrrg   é   r   Trk   r   é   é   ÚaÚhrefrx   é   ú/r   é   r   )Útrade_numberÚ
trade_dateÚpublish_dateÚplatform_nameÚplatform_urlÚdebtor_nameÚ
debtor_urlÚ
trade_typeÚ	trade_urlÚbid_formÚstatusu   Ð¡Ð¾Ð±Ñ€Ð°Ð½Ð¾ u    Ð¾Ð±ÑŠÑ�Ð²Ð»ÐµÐ½Ð¸Ð¹uF   ÐšÑ€Ð¸Ñ‚Ð¸Ñ‡ÐµÑ�ÐºÐ°Ñ� Ð¾ÑˆÐ¸Ð±ÐºÐ° Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð° Ð² fetch_trades: u)   ÐžÑˆÐ¸Ð±ÐºÐ° Ð¿Ð°Ñ€Ñ�Ð¸Ð½Ð³Ð° TradeList: N)ro   ÚTRADE_LIST_URLr   ÚuntilÚECÚpresence_of_element_locatedr   ÚIDr   Úpage_sourcerp   ÚreÚcompileÚIrY   Úerrorrn   rv   rs   rq   rl   Úhas_attrÚ
startswithÚBASE_URLÚappendrZ   r[   r?   )ÚdriverÚsouprƒ   Útradesrt   Úcolsr�   Útrade_date_textÚpublish_date_textÚp_tagr’   r“   Úd_tagr”   r•   Út_tagr–   r—   r˜   r™   r>   s                        r5   Úfetch_tradesr±     s#  € ðIØ�
‰
”>Ô"ä�f˜bÓ!×'Ñ'Ü×*Ñ*¬B¯E©EÐ3NÐ+OÓPô	
ô ˜f×0Ñ0°-Ó@ˆØ—	‘	˜'Ð&A�	ÓBˆáØ—I‘I˜g¬"¯*©*°_ÄbÇdÁdÓ*K�IÓLˆEáÜ�M‰MÐKÔLØˆIàˆØ—>‘> $Ó'ó ,	ˆCÜ% cÔ*Øà—<‘< Ó%ˆDÜ�4‹y˜1Š}Øà ™7×+Ñ+°$Ð+Ó7×=Ñ=Ó?ˆLÙ¤3 |Ó#4°qÒ#8Øà $ Q¡× 0Ñ 0°tÐ 0Ó <ˆOØ $ Q¡× 0Ñ 0°tÐ 0Ó <Ðà˜‘G—L‘L Ó%ˆEÙ:?˜EŸN™N°˜NÔ6ÀTÈ!ÁW×EUÑEUÐ\`ÐEUÓEaˆMÙ-2°u·~±~ÀfÔ7M˜E &šMÐSUˆLà˜‘G—L‘L Ó%ˆEÙ8=˜%Ÿ.™.¨t˜.Ô4À4ÈÁ7×CSÑCSÐZ^ÐCSÓC_ˆKÙ+0°U·^±^ÀFÔ5K˜% š-ÐQSˆJÙ˜j×3Ñ3°CÔ8Ü%¨
Ñ2�
à˜‘G—L‘L Ó%ˆEÙ7<˜Ÿ™¨d˜Ô3À$ÀqÁ'×BRÑBRÐY]ÐBRÓB^ˆJÙ*/°E·N±NÀ6Ô4J˜˜všÐPRˆIà˜A‘w×'Ñ'¨dÐ'Ó3ˆHØ˜A‘w×'Ñ'¨dÐ'Ó3ˆFà�M‰MØ!-Ø!0Ø!2Ø!.Ø!-Ø!,Ø!+Ø!+Ø!*Ø!)Ø!'ñö ðA,	ô\ 	�‰�¤s¨6£{ mÐ3HÐIÔJØˆøäò Ü  Ô#Ü�M‰MÐbÐcdÐbeÐfÔgØä�‰ÐAÀ!ÀÐEÔFØ�	ûðús%   ‚CK> ÃH/K> Ë>	MÌ=M
ÍMÍ
Mc                 ó°   — | sy| j                  «       } | j                  d«      rd| z   S | j                  d«      rd| z   S | j                  d«      sd| z   S | S )uY   ÐŸÑ€Ð¸Ð²Ð¾Ð´Ð¸Ñ‚ Ñ�Ñ�Ñ‹Ð»ÐºÑƒ Ð½Ð° Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ðµ Ðº Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¾Ð¼Ñƒ Ð²Ð¸Ð´Ñƒ.rx   ú//úhttps:r�   úhttps://fedresurs.ruÚhttpzhttps://fedresurs.ru/)rl   r¥   )Úmsg_urls    r5   Únormalize_message_urlr¸   N  sc   € áØà�m‰m‹o€Gà×Ñ˜$ÔØ˜'Ñ!Ð!à×Ñ˜#ÔØ%¨Ñ/Ð/à×Ñ˜fÔ%Ø&¨Ñ0Ð0à€Nr@   c                 óÖ  — t        | «      st        d«      ‚t        d|dz   «      D �]ì  }	 | j                  |«       	 t	        | d«      j                  d„ «       	 t	        | d«      j                  d„ «       t        j                  d«       t        | j                  d«      }|j                  dd	¬
«      }t        |«      dk  rt        dt        |«      › d�«      ‚|j                  dd¬«      }|s5|j                  dt        j                   dt        j"                  «      ¬«      }|s5|j%                  d«      D ]!  }|j                  dd	¬
«      }d|v sd|v sŒ|} n |�r	|j%                  d«      D ]õ  }	d}
|	j%                  dd	¬«      D ]  }|j                  dd	¬
«      }d|v sŒ|}
 n |
sŒ;t'        |
d   «      }|r|j)                  «       j+                  d«      rŒkd}|	j%                  d«      D ]@  }|j                  dd	¬
«      }t        j,                  d|«      }|sŒ/|j/                  d«      } n |st1        |
«      }t3        j4                  d|› �«       t7        |«      |fc c S  |j%                  dd	¬«      D ]}  }|j                  dd	¬
«      }d|vrŒt'        |d   «      }|r|j)                  «       j+                  d«      rŒKt1        |«      }t3        j4                  d|› �«       t7        |«      |fc c S  t3        j8                  d |› d!�«        y" y# t        $ r Y �ŒÊw xY w# t        $ r Y �Œ½w xY w# t        $ r¨}t;        |«      rt3        j<                  d#|› d$|› �«       ‚ t3        j8                  d%|› d&|› d'|› d(|› �«       ||k  rJd)|z  }t3        j4                  d*|› d+�«       t        j                  |«       t        | «      st        d,«      |‚Y d}~ y"Y d}~�Œ½d}~ww xY w)-u—  
    Ð˜Ñ‰ÐµÑ‚ ÐŸÐ•Ð Ð’ÐžÐ• Â«ÐžÐ±ÑŠÑ�Ð²Ð»ÐµÐ½Ð¸Ðµ Ð¾ Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ð¸ Ñ‚Ð¾Ñ€Ð³Ð¾Ð²Â» Ð² ÐºÐ°Ñ€Ñ‚Ð¾Ñ‡ÐºÐµ Ð´Ð¾Ð»Ð¶Ð½Ð¸ÐºÐ°.

    Ð§Ñ‚Ð¾ ÑƒÐ»ÑƒÑ‡ÑˆÐµÐ½Ð¾:
    - Ð¿Ñ€Ð¾Ð²ÐµÑ€Ñ�ÐµÑ‚, Ð¶Ð¸Ð² Ð»Ð¸ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€;
    - Ð¶Ð´Ñ‘Ñ‚ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ� Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ Ñ�Ñ‚Ñ€Ð°Ð½Ð¸Ñ†Ñ‹;
    - Ð¸Ñ‰ÐµÑ‚ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñƒ Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ð¹ Ð¿Ð¾ Ð½ÐµÑ�ÐºÐ¾Ð»ÑŒÐºÐ¸Ð¼ Ð¿Ñ€Ð¸Ð·Ð½Ð°ÐºÐ°Ð¼;
    - ÐµÑ�Ð»Ð¸ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½Ð°, Ð¸Ñ‰ÐµÑ‚ Ñ�Ñ�Ñ‹Ð»ÐºÑƒ Ð¿Ð¾ Ð²Ñ�ÐµÐ¹ Ñ�Ñ‚Ñ€Ð°Ð½Ð¸Ñ†Ðµ;
    - Ñ�Ð¾Ñ…Ñ€Ð°Ð½Ñ�ÐµÑ‚ HTML Ð² debug, ÐµÑ�Ð»Ð¸ Ð½Ð¸Ñ‡ÐµÐ³Ð¾ Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾;
    - Ñ„Ð°Ñ‚Ð°Ð»ÑŒÐ½Ñ‹Ðµ Ð¾ÑˆÐ¸Ð±ÐºÐ¸ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð° Ð¿Ñ€Ð¾Ð±Ñ€Ð°Ñ�Ñ‹Ð²Ð°ÐµÑ‚ Ð½Ð°Ð²ÐµÑ€Ñ….
    õY   Ð”Ñ€Ð°Ð¹Ð²ÐµÑ€ ÑƒÐ¼ÐµÑ€ Ð¿ÐµÑ€ÐµÐ´ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¾Ð¹ ÐºÐ°Ñ€Ñ‚Ð¾Ñ‡ÐºÐ¸ Ð´Ð¾Ð»Ð¶Ð½Ð¸ÐºÐ°rˆ   é   c                 ó*   — | j                  d«      dk(  S )Núreturn document.readyStateÚcomplete)Úexecute_script©Úds    r5   ú<lambda>z#parse_debtor_page.<locals>.<lambda>v  s   € ˜a×.Ñ.Ð/KÓLÐPZÑZ€ r@   rm   c                 ó~   — d| j                   v xs. d| j                   v xs d| j                   v xs d| j                   v S )Nõ9   ÐžÐ±ÑŠÑ�Ð²Ð»ÐµÐ½Ð¸Ðµ Ð¾ Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ð¸ Ñ‚Ð¾Ñ€Ð³Ð¾Ð²õ9   Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ðµ Ð¾ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð°Ñ… Ñ‚Ð¾Ñ€Ð³Ð¾Ð²Úctl00_cphBody_gvMessagesz<table©rŸ   rÀ   s    r5   rÂ   z#parse_debtor_page.<locals>.<lambda>~  sN   € ØSÐWX×WdÑWdÐdò 5ØVÐZ[×ZgÑZgÐgò5à5¸¿¹ÐFò5ð $ q§}¡}Ð4ð	 r@   r‚   rQ   Trk   éÈ   õ2   Ð¡Ñ‚Ñ€Ð°Ð½Ð¸Ñ†Ð° Ñ�Ð»Ð¸ÑˆÐºÐ¾Ð¼ ÐºÐ¾Ñ€Ð¾Ñ‚ÐºÐ°Ñ� (uf    Ñ�Ð¸Ð¼Ð².) â€” Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾, Ð½Ðµ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ð»Ð°Ñ�ÑŒ Ð¸Ð»Ð¸ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð° Ð·Ð°Ð³Ð»ÑƒÑˆÐºÐ°rƒ   rÆ   r„   úgvMessages$rÄ   rÅ   r†   NrŠ   ©r‹   r‹   zjavascript:rx   rg   z1\d{2}\.\d{2}\.\d{4}(?:\s+\d{2}:\d{2}(?::\d{2})?)?r   u5   Ð�Ð°Ð¹Ð´ÐµÐ½Ð¾ Ð¾Ð±ÑŠÑ�Ð²Ð»ÐµÐ½Ð¸Ðµ Ð¾ Ñ‚Ð¾Ñ€Ð³Ð°Ñ…: u@   Ð�Ð°Ð¹Ð´ÐµÐ½Ð¾ Ð¾Ð±ÑŠÑ�Ð²Ð»ÐµÐ½Ð¸Ðµ Ð¾ Ñ‚Ð¾Ñ€Ð³Ð°Ñ… (fallback): u   Ð’ ÐºÐ°Ñ€Ñ‚Ð¾Ñ‡ÐºÐµ uR    Ð½Ðµ Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ Â«ÐžÐ±ÑŠÑ�Ð²Ð»ÐµÐ½Ð¸Ðµ Ð¾ Ð¿Ñ€Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ð¸ Ñ‚Ð¾Ñ€Ð³Ð¾Ð²Â»©NNuO   ÐšÑ€Ð¸Ñ‚Ð¸Ñ‡ÐµÑ�ÐºÐ°Ñ� Ð¾ÑˆÐ¸Ð±ÐºÐ° Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð° Ð¿Ñ€Ð¸ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐµ ú: u1   ÐžÑˆÐ¸Ð±ÐºÐ° Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ ÐºÐ°Ñ€Ñ‚Ð¾Ñ‡ÐºÐ¸ u    (Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° r�   ú): r‰   õ   ÐŸÐ¾Ð²Ñ‚Ð¾Ñ€ Ñ‡ÐµÑ€ÐµÐ· õ
    Ñ�ÐµÐºâ€¦u/   Ð”Ñ€Ð°Ð¹Ð²ÐµÑ€ ÑƒÐ¼ÐµÑ€ Ð¿Ð¾Ñ�Ð»Ðµ Ð¾ÑˆÐ¸Ð±ÐºÐ¸)Úis_driver_aliveÚRuntimeErrorÚrangero   r   r›   r[   ÚtimeÚsleepr   rŸ   rq   rs   ÚConnectionErrorrp   r    r¡   r¢   rn   r¸   r;   r¥   ÚsearchÚgroupÚfind_date_near_tagrY   rZ   r~   r\   r?   r£   )r¨   r•   ÚretriesÚattemptr©   Ú	page_textrƒ   ÚtÚtxtrt   ÚlinkrŠ   Úa_textr·   Ú	date_textrg   Útd_textÚmr>   Úwaits                       r5   Úparse_debtor_pagerå   `  s.  € ô ˜6Ô"ÜÐvÓwÐwä˜˜G a™KÓ(ó G"ˆðF	"Ø�J‰J�zÔ"ðÜ˜f bÓ)×/Ñ/ÙZôð
Ü˜f bÓ)×/Ñ/ñôô �J‰J�qŒMä  ×!3Ñ!3°]ÓCˆDØŸ™ c°˜Ó6ˆIô �9‹~ Ò#Ü%ØHÌÈYËÐHXð Ymð nóð ð —I‘I˜gÐ*D�IÓEˆEáØŸ	™	 '¬b¯j©j¸ÌÏÉÓ.N˜	ÓO�áØŸ™ wÓ/ò �AØŸ*™* S°˜*Ó5�CàSÐWZÑZØVÐZ]Ò]à !˜Ùðò Ø Ÿ>™>¨$Ó/ò #:�CØ�Dà Ÿ\™\¨#°D˜\Ó9ò "˜Ø!"§¡¨C°t Ó!<˜ØVÐZ`Ò`Ø#$˜DÙ!ð	"ñ  Ø ä3°D¸±LÓA�Gñ # g§m¡m£o×&@Ñ&@ÀÔ&OØ ð !#�IØ!Ÿl™l¨4Ó0ò "˜Ø"$§+¡+¨c¸ +Ó">˜ÜŸI™IØPØ#ó˜ò Ø()¯©°«
˜IÙ!ð"ñ %Ü$6°tÓ$<˜	ä—L‘LÐ#XÐYbÐXcÐ!dÔeÜ% iÓ0°'Ð9Ô9ðG#:ðL —]‘] 3¨T�]Ó2ò 6�ØŸ™ C¨t˜Ó4�àNÐV\Ñ\Øä/°°&±	Ó:�á '§-¡-£/×"<Ñ"<¸]Ô"KØä.¨qÓ1�	ä—‘Ð_Ð`iÐ_jÐkÔlÜ! )Ó,¨gÐ5Ô5ð6ô" �O‰OØ& z lð  3Eð  Fôñ ñcG"øô ò Úðûô ò Úðûôz ò 	"Ü$ QÔ'Ü—‘ØeÐfpÐeqÐqsÐtuÐsvÐwôð ä�O‰OØCÀJÀ<ð P#Ø#* )¨1¨W¨I°S¸¸ð=ôð
 ˜Ò Ø˜7‘{�Ü—‘Ð7¸°v¸ZÐHÔIÜ—
‘
˜4Ô ä& vÔ.Ü&Ð'XÓYÐ_`Ð`å!õ /ûð#	"ús|   «L7½LÁL'Á6CL7ÅAL7Æ"A9L7ÈAL7É&BL7Ë9L7Ì	L$Ì L7Ì#L$Ì$L7Ì'	L4Ì0L7Ì3L4Ì4L7Ì7	O(Í BO#Ï#O(c                 ór  — | syt        «       }|j                  «       }d}d}	 | D �]2  }	 t        |d   «      }t        |d   «      }|j                  d|d   |||d   |d   |d	   |d
   |d   |d   |d   |d   f«       |j                  dk(  r|dz  }d|j                  dd«      v r²|j                  d
«      r¡|j                  d|d   |f«       |j                  «       }	|	r|	d   sst        |«      s|j                  «        t        d«      ‚t        ||d
   «      \  }
}|r9|j                  d|
||d   |f«       |dz  }t        j                  d|d   › �«       �Œ5 |j                  «        |j#                  «        |j#                  «        t        j                  d|› d|› �«       y# t        $ ra}t        |«      st        |t        «      r|j                  «        ‚ t        j                   d|j                  d«      › d|› �«       Y d}~�Œçd}~ww xY w# |j#                  «        |j#                  «        w xY w)uW   Ð¡Ð¾Ñ…Ñ€Ð°Ð½Ñ�ÐµÑ‚ Ð¾Ð±ÑŠÑ�Ð²Ð»ÐµÐ½Ð¸Ñ� Ð² Ð‘Ð”; Ð´Ð»Ñ� ÐŸÐŸ Ð¸Ñ‰ÐµÑ‚ last_message_url.Nr   r�   r‘   as  
                    INSERT INTO trades
                        (trade_number, trade_date, publish_date, platform_name, platform_url,
                         debtor_name, debtor_url, trade_type, trade_url, bid_form, status)
                    VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
                    ON DUPLICATE KEY UPDATE status = VALUES(status)
                r�   r’   r“   r”   r•   r–   r—   r˜   r™   rˆ   u)   ÐŸÑƒÐ±Ð»Ð¸Ñ‡Ð½Ð¾Ðµ Ð¿Ñ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµrx   z®
                        SELECT message_processed
                        FROM trades
                        WHERE trade_number = %s AND trade_date = %s
                    rº   aL  
                                UPDATE trades
                                SET last_message_date = %s,
                                    last_message_url  = %s,
                                    message_processed = TRUE
                                WHERE trade_number = %s AND trade_date = %s
                            u   âœ“ ÐžÐ±Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð½Ð¾ ÐŸÐŸ: u    ÐžÑˆÐ¸Ð±ÐºÐ° Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ rÍ   u   Ð�Ð¾Ð²Ñ‹Ñ… Ð»Ð¾Ñ‚Ð¾Ð²: u    | ÐžÐ±Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð½Ð¾ ÐŸÐŸ: )re   rV   r~   rW   Úrowcountro   rX   rÑ   r]   rÒ   rå   rY   rZ   r[   r?   r9   r£   r^   )rª   r¨   r_   rV   Únew_insertedÚprocessed_publicrÝ   r�   r‘   ÚresultÚmsg_dater·   r>   s                r5   Ú
save_to_dbrì   ù  sg  € áØäÓ €DØ�[‰[‹]€Fà€LØÐð>Øó 7	_ˆAð6_Ü)¨!¨L©/Ó:�
Ü)¨!¨NÑ*;Ó<�à—‘ð  ð �nÑ% z°<Ø�oÑ&¨¨.Ñ(9Ø�mÑ$ a¨¡oØ�l‘O Q {¡^Ø�j‘M 1 X¡;ðôð —?‘? aÒ'Ø  AÑ%�Lð ?À!Ç%Á%ÈÐVXÓBYÑYÐ^_×^cÑ^cÐdpÔ^qØ—N‘Nð $ð ˜NÑ+¨ZÐ8ô	:ð
 $Ÿ_™_Ó.�Fá!¨°ªÜ.¨vÔ6Ø ŸK™KœMÜ".ð  0Kó  #Lð  Lä,=¸fÀaÈÁoÓ,VÑ)˜ 'á"Ø"ŸN™Nð , ð #+¨G°Q°~Ñ5FÈ
Ð!SôUð -°Ñ1Ð,Ü#ŸL™LÐ+JÈ1È^ÑK\ÐJ]Ð)^Ô_ùða7	_ðr 	�‰Œð 	�‰ŒØ�
‰
Œä‡L�LÐ*¨<¨.Ð8VÐWgÐVhÐiÕjøô ò _Ü(¨Ô+¬z¸!¼\Ô/JØ—K‘K”MØä—‘Ð @ÀÇÁÀ~ÓAVÐ@WÐWYÐZ[ÐY\Ð]×^Ò^ûð_ûð 	�‰ŒØ�
‰
�ús6   £H ªD.F'ÅH Æ'	HÆ0AHÈH ÈHÈH È"H6c                  ó¼   — t        «       } | j                  «       }|j                  d«       |j                  «       }|j	                  «        | j	                  «        |S )NzÖ
        SELECT trade_number, last_message_url, debtor_name, debtor_url, parse_attempts
        FROM trades
        WHERE last_message_url IS NOT NULL
          AND (lots_parsed = FALSE OR lots_parsed IS NULL)
    ©re   rV   rW   Úfetchallr^   ©r_   rV   Úrowss      r5   Úget_unprocessed_tradesrò   J  sK   € ÜÓ €DØ�[‰[‹]€Fà
‡N�Nð ô 	ð �?‰?Ó€Dà
‡L�L„NØ‡J�J„LØ€Kr@   c                 óv   — | €yt        | «      j                  «       }|syt        |«      |kD  r|d|dz
   dz   S |S )uv   ÐžÐ±Ñ€ÐµÐ·Ð°ÐµÑ‚ Ñ�Ð»Ð¸ÑˆÐºÐ¾Ð¼ Ð´Ð»Ð¸Ð½Ð½Ñ‹Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ�, Ñ‡Ñ‚Ð¾Ð±Ñ‹ Ð¾Ð½Ð¸ Ð¿Ð¾Ð¼ÐµÑ‰Ð°Ð»Ð¸Ñ�ÑŒ Ð² MySQL TEXT.Nrˆ   õ   â€¦)r:   rl   rs   )ÚvalueÚmax_lenru   s      r5   Útruncate_db_valuer÷   [  sI   € à€}ØÜˆu‹:×ÑÓ€DÙØÜ
ˆ4ƒy�7ÒØ�M�g ‘kÐ" UÑ*Ð*Ø€Kr@   c                 ó.  — t        «       }|j                  «       }|j                  dg «      }|j                  dd«      }t        t	        |d«      «      }t        t	        |d«      «      }t        |r|nd«      }t        t	        |d«      «      }	t        t	        |d«      «      }
t        t	        |d	«      «      }t        t	        |d
«      «      }|j                  d||||	|
||| f«       |j                  «        |j                  «        |j                  «        y)uL   Ð—Ð°Ð¿Ð¸Ñ�Ñ‹Ð²Ð°ÐµÑ‚ Ð¸Ð·Ð²Ð»ÐµÑ‡Ñ‘Ð½Ð½Ñ‹Ðµ Ð´Ð°Ð½Ð½Ñ‹Ðµ Ð»Ð¾Ñ‚Ð¾Ð² Ð² Ð‘Ð”.ÚlotsÚapp_timerx   Ú
classifierÚdescriptionNÚinitial_priceÚauction_stepÚdepositÚprice_reductionat  
        UPDATE trades
        SET lots_classifier      = %s,
            lots_description     = %s,
            lots_app_time        = %s,
            lots_initial_price   = %s,
            lots_auction_step    = %s,
            lots_deposit         = %s,
            lots_price_reduction = %s,
            lots_parsed          = TRUE
        WHERE trade_number = %s
    )re   rV   ro   r÷   Úformat_lots_for_dbrW   r]   r^   )r�   Údatar_   rV   rù   rú   rû   rü   Úapp_time_valuerý   rþ   rÿ   r   s                r5   Úupdate_trade_in_dbr  g  sý   € äÓ €DØ�[‰[‹]€Fà�x‰x˜ Ó#€DØ�x‰x˜
 BÓ'€Hä'Ô(:¸4ÀÓ(NÓO€JÜ'Ô(:¸4ÀÓ(OÓP€KÜ'±H©À$ÓG€NÜ'Ô(:¸4ÀÓ(QÓR€MÜ'Ô(:¸4ÀÓ(PÓQ€LÜ'Ô(:¸4ÀÓ(KÓL€GÜ'Ô(:¸4ÐARÓ(SÓT€Oà
‡N�Nð ð 	ØØØØØØØð	
ôð, 	‡K�K„MØ
‡L�L„NØ‡J�J…Lr@   c                 óÈ   — | syt        j                  dd| t         j                  ¬«      } | j                  dd«      } t        j                  dd| «      j	                  «       } | S )uX   Ð£Ð±Ð¸Ñ€Ð°ÐµÑ‚ Â«ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚ÑŒ ÐµÑ‰Ñ‘Â», Ñ�Ð¸Ð¼Ð²Ð¾Ð» |, Ð»Ð¸ÑˆÐ½Ð¸Ðµ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ñ‹.rx   u   ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚ÑŒ\s+ÐµÑ‰[Ñ‘Ðµ]©ÚflagsÚ|rQ   ú\s+)r    ÚsubÚ
IGNORECASEÚreplacerl   ©ru   s    r5   Ú
clean_textr  “  sQ   € áØÜ�6‰6Ð2°B¸ÄBÇMÁMÔR€DØ�<‰<˜˜SÓ!€DÜ�6‰6�&˜#˜tÓ$×*Ñ*Ó,€DØ€Kr@   c                 ó†   — t        | «      } t        j                  dd| t        j                  ¬«      } | j	                  «       S )uu   Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾ ÑƒÐ±Ð¸Ñ€Ð°ÐµÑ‚ Â«Ð¿Ñ€Ð¾Ð´Ð°Ð¶Ð¸Â» / Â«Ð¿Ñ€Ð¾Ð´Ð°Ð¶Ð½Ð°Ñ�Â» Ð¸Ð· Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ� Ñ†ÐµÐ½Ñ‹.u)   ^(?:Ð¿Ñ€Ð¾Ð´Ð°Ð¶Ð¸|Ð¿Ñ€Ð¾Ð´Ð°Ð¶Ð½Ð°Ñ�)\s+rx   r  )r  r    r
  r  rl   r  s    r5   Úclean_pricer  �  s4   € ä�dÓ€DÜ�6‰6Ð>ÀÀDÔPR×P]ÑP]Ô^€DØ�:‰:‹<Ðr@   c                 ó4   — | rt        j                  | «      S dS )u?   Ð­ÐºÑ€Ð°Ð½Ð¸Ñ€ÑƒÐµÑ‚ <, >, & Ð´Ð»Ñ� Telegram (parse_mode=HTML).rx   )Úhtml_modÚescaper  s    r5   Úescape_htmlr  ¤  s   € á$(Œ8�?‰?˜4Ó Ð0¨bÐ0r@   c                 ó&  — | syt        | «      dk(  r| d   j                  |d«      }|r|S dS g }t        | d«      D ]@  \  }}|j                  |d«      j                  «       }|sŒ)|j	                  d|› d|› d�«       ŒB |rdj                  |«      S dS )	u|   
    ÐžÐ´Ð¸Ð½ Ð»Ð¾Ñ‚  â†’ Ð¿Ñ€Ð¾Ñ�Ñ‚Ð¾ Ñ‚ÐµÐºÑ�Ñ‚.
    Ð�ÐµÑ�ÐºÐ¾Ð»ÑŒÐºÐ¾ â†’ [(1) - Ñ‚ÐµÐºÑ�Ñ‚] [(2) - Ñ‚ÐµÐºÑ�Ñ‚] â€¦
    Nrˆ   r   rx   z[(z) - ú]rQ   )rs   ro   Ú	enumeraterl   r§   Újoin)rù   Ú
field_nameÚvalÚpartsÚiÚlots         r5   r  r  ª  s£   € ñ
 Øä
ˆ4ƒy�A‚~Ø�1‰g�k‰k˜* bÓ)ˆÙˆsÐ#˜tÐ#à€EÜ˜D !Ó$ò -‰ˆˆ3Ø�g‰g�j "Ó%×+Ñ+Ó-ˆÚØ�L‰L˜2˜a˜S  S E¨Ð+Õ,ð-ñ
 $ˆ3�8‰8�E‹?Ð-¨Ð-r@   c                 óz   ‡— t        | «      ryt        | «      j                  «       Šd}t        ˆfd„|D «       «      S )uj   ÐžÐ¿Ñ€ÐµÐ´ÐµÐ»Ñ�ÐµÑ‚, Ñ�Ð²Ð»Ñ�ÐµÑ‚Ñ�Ñ� Ð»Ð¸ Ð¾ÑˆÐ¸Ð±ÐºÐ° Ñ�ÐµÑ‚ÐµÐ²Ð¾Ð¹ / Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð°.T)Ú
connectionÚremoteÚrefusedÚabortedr    r$   zmax retriesÚnewconnectionerrorÚprotocolerrorr&   r'   r%   c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr/   r0   ©r2   Úkwr4   s     €r5   r6   z&is_connection_error.<locals>.<genexpr>Ë  s   øè ø€ Ò,˜Rˆr�SŒyÑ,ùr7   )r?   r:   r;   r<   )r>   Úkeywordsr4   s     @r5   Úis_connection_errorr)  À  s7   ø€ ä˜QÔØä
ˆa‹&�,‰,‹.€Cð€Hô
 Ó, 8Ô,Ó,Ð,r@   c                 ó  — t        d|dz   «      D �]y  }	 | j                  |«       	 t        | d«      j                  d„ «       t        j                  d«       t        | j                  d«      }|j                  dd¬«      }t        |«      d	k  rt        d
t        |«      › d�«      ‚d}t        j                  d|«      }|rCd|j                  d«      j                  «       › d|j                  d«      j                  «       › �}nit        j                  d|t        j                   «      }|rBd|j                  d«      j                  «       › d|j                  d«      j                  «       › �}t#        |«      }|st%        |«      }||dœc S  t)        j*                  d|› d|› �«       y# t        $ r Y �Œrw xY w# t        $ rÃ}	t'        |	«      rt)        j*                  d|› d|	› �«       ‚ t-        |	«      r_t)        j.                  d|› d|› d|› d|	› �«       ||k  r`d|z  }
t)        j0                  d|
› d�«       t        j                  |
«       Y d}	~	�ŒCt)        j*                  d|› d|	› �«       dg dœcY d}	~	c S Y d}	~	�Œpd}	~	ww xY w)uš  
    Ð—Ð°Ð³Ñ€ÑƒÐ¶Ð°ÐµÑ‚ Ñ�Ñ‚Ñ€Ð°Ð½Ð¸Ñ†Ñƒ Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ� Ð•Ð¤Ð Ð¡Ð‘ Ð¸ Ð¸Ð·Ð²Ð»ÐµÐºÐ°ÐµÑ‚ Ð´Ð°Ð½Ð½Ñ‹Ðµ Ð»Ð¾Ñ‚Ð¾Ð².

    Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚:
        dict {'app_time': ..., 'lots': [...]}  â€” Ñ�Ñ‚Ñ€Ð°Ð½Ð¸Ñ†Ð° Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ð»Ð°Ñ�ÑŒ (Ð´Ð°Ð¶Ðµ ÐµÑ�Ð»Ð¸ Ð»Ð¾Ñ‚Ð¾Ð² 0)
        None                                   â€” Ð¾ÑˆÐ¸Ð±ÐºÐ° Ñ�Ð¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ�/Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð° (Ð»Ð¾Ñ‚ Ð�Ð• Ð¿Ð¾Ð¼ÐµÑ‡Ð°ÐµÑ‚Ñ�Ñ�)
    rˆ   rm   c                 ó’   — d| j                   v xs8 d| j                   v xs( d| j                   v xs t        | j                   «      dkD  S )Nõ   Ð�Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ� Ñ†ÐµÐ½Ð°õ   ÐŸÑ€Ð¸ÐµÐ¼ Ð·Ð°Ñ�Ð²Ð¾Ðºõ   Ð›Ð¾Ñ‚Ñ‹i@  ©rŸ   rs   rÀ   s    r5   rÂ   z$parse_message_page.<locals>.<lambda>Ü  sM   € Ø5¸¿¹ÐFò 5Ø4¸¿¹ÐEò5à%¨¯©Ð6ò5ô ˜qŸ}™}Ó-°Ñ4ð	 r@   r   r‚   rQ   Trk   rÈ   rÉ   u+    Ñ�Ð¸Ð¼Ð².) â€” Ð½Ðµ Ð·Ð°Ð³Ñ€ÑƒÐ·Ð¸Ð»Ð°Ñ�ÑŒrx   uY   [ÐŸÐ¿]Ñ€Ð¸[ÐµÑ‘]Ð¼\s+Ð·Ð°Ñ�Ð²Ð¾Ðº\s+Ñ�\s+([\d\.]+\s+[\d\:]+)\s+Ð¿Ð¾\s+([\d\.]+\s+[\d\:]+)u   Ñ� u    Ð¿Ð¾ uD   Ð·Ð°Ñ�Ð²Ð¾Ðº.*?Ñ�\s+([\d\.]+\s+[\d\:]+)\s+Ð¿Ð¾\s+([\d\.]+\s+[\d\:]+)©rú   rù   u`   ÐšÑ€Ð¸Ñ‚Ð¸Ñ‡ÐµÑ�ÐºÐ°Ñ� Ð¾ÑˆÐ¸Ð±ÐºÐ° Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð° Ð¿Ñ€Ð¸ Ð¿Ð°Ñ€Ñ�Ð¸Ð½Ð³Ðµ Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ� rÍ   u   ÐŸÐ¾Ð¿Ñ‹Ñ‚ÐºÐ° r�   u.    â€” Ð¾ÑˆÐ¸Ð±ÐºÐ° Ñ�Ð¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ� Ð´Ð»Ñ� r   rÏ   rÐ   Nu   ÐžÑˆÐ¸Ð±ÐºÐ° Ð¿Ð°Ñ€Ñ�Ð¸Ð½Ð³Ð° u   Ð’Ñ�Ðµ u*    Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ¸ Ð¸Ñ�Ñ‡ÐµÑ€Ð¿Ð°Ð½Ñ‹ Ð´Ð»Ñ� )rÓ   ro   r   r›   r[   rÔ   rÕ   r   rŸ   rq   rs   rÖ   r    r×   rØ   rl   r  Ú_parse_lots_from_tablesÚ_parse_lots_from_textr?   rY   r£   r)  r\   rZ   )r¨   ÚurlrÚ   rÛ   r©   rÜ   rú   rã   rù   r>   rä   s              r5   Úparse_message_pager4  Î  s©  € ô ˜˜G a™KÓ(ó B4ˆðA	4Ø�J‰J�sŒOð
Ü˜f bÓ)×/Ñ/ñôô �J‰J�qŒMä% f×&8Ñ&8¸-ÓHˆDØŸ™ c°˜Ó6ˆIä�9‹~ Ò#Ü%ØHÌÈYËÐHXð  YDð  Eóð ð
 ˆHÜ—	‘	ØlØóˆAñ Ø  §¡¨£×!1Ñ!1Ó!3Ð 4°F¸1¿7¹7À1»:×;KÑ;KÓ;MÐ:NÐO‘ä—I‘IØ[ØœrŸ}™}ó�ñ Ø!$ Q§W¡W¨Q£Z×%5Ñ%5Ó%7Ð$8¸¸q¿w¹wÀq»z×?OÑ?OÓ?QÐ>RÐS�Hô +¨4Ó0ˆDÙÜ,¨YÓ7�à (°$Ñ7Ò7ð_B4ôH ‡M�M�G˜G˜9Ð$NÈsÈeÐTÔUØøôq ò ÚðûôH ò 	4Ü$ QÔ'Ü—‘ð  !Að  BEð  AFð  FHð  IJð  HKð  Lô  MØä" 1Ô%Ü—‘Ø% g Y¨a°¨yÐ8fÐgjÐfkÐkmÐnoÐmpÐqôð ˜WÒ$Ø˜w™;�DÜ—L‘LÐ#;¸D¸6ÀÐ!LÔMÜ—J‘J˜tÔ$Ýä—‘Ð >¸s¸eÀ2ÀaÀSÐIÔJØ$&°Ñ3×3õ %ûð	4úsH   •F9§F)ÁEF9Æ)	F6Æ2F9Æ5F6Æ6F9Æ9	JÇBJ ÉJ É2JÊ Jc                 óv  — t        j                  d| t         j                  t         j                  z  «      }|rt	        |j                  d«      «      nd}t        j                  d| t         j                  t         j                  z  «      }|rt	        |j                  d«      «      nd}t        j                  d|t         j                  t         j                  z  «      }|rt        |j                  d«      «      nd}t        j                  d|t         j                  t         j                  z  «      }|rt	        |j                  d«      «      nd}	t        j                  d|t         j                  t         j                  z  «      }
|
rt	        |
j                  d«      «      nd}t        j                  d|t         j                  t         j                  z  «      }|rt	        |j                  d«      «      nd}d	}||||	||d
œ}|j                  «       D ]"  \  }}|sŒ	t        |«      |kD  sŒ|d| dz   ||<   Œ$ |S )ug   Ð˜Ð·Ð²Ð»ÐµÐºÐ°ÐµÑ‚ Ð¿Ð¾Ð»Ñ� Ð¾Ð´Ð½Ð¾Ð³Ð¾ Ð»Ð¾Ñ‚Ð° Ð¸Ð· Ñ‚ÐµÐºÑ�Ñ‚Ð° Ð´Ð²ÑƒÑ… Ñ�Ñ‡ÐµÐµÐº Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹.u8   ÐžÐ¿Ð¸Ñ�Ð°Ð½Ð¸Ðµ\s*(.*?)(?=ÐšÐ»Ð°Ñ�Ñ�Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€|$)rˆ   rx   u#   ÐšÐ»Ð°Ñ�Ñ�Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€\s*(.*?)$u½   Ð�Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ�\s+(?:Ð¿Ñ€Ð¾Ð´Ð°Ð¶Ð½Ð°Ñ�\s+)?Ñ†ÐµÐ½Ð°(?:\s+Ð¿Ñ€Ð¾Ð´Ð°Ð¶Ð¸)?\s*(.*?)(?=Ð¨Ð°Ð³\s+Ð°ÑƒÐºÑ†Ð¸Ð¾Ð½Ð°|Ð—Ð°Ð´Ð°Ñ‚Ð¾Ðº|Ð Ð°Ð·Ð¼ÐµÑ€\s+Ð·Ð°Ð´Ð°Ñ‚ÐºÐ°|Ð¡Ð½Ð¸Ð¶ÐµÐ½Ð¸Ðµ\s+Ñ†ÐµÐ½Ñ‹|$)uo   Ð¨Ð°Ð³\s+Ð°ÑƒÐºÑ†Ð¸Ð¾Ð½Ð°\s*(.*?)(?=Ð—Ð°Ð´Ð°Ñ‚Ð¾Ðº|Ð Ð°Ð·Ð¼ÐµÑ€\s+Ð·Ð°Ð´Ð°Ñ‚ÐºÐ°|Ð¡Ð½Ð¸Ð¶ÐµÐ½Ð¸Ðµ\s+Ñ†ÐµÐ½Ñ‹|$)uY   (?:Ð—Ð°Ð´Ð°Ñ‚Ð¾Ðº|Ð Ð°Ð·Ð¼ÐµÑ€\s+Ð·Ð°Ð´Ð°Ñ‚ÐºÐ°)\s*(.*?)(?=Ð¡Ð½Ð¸Ð¶ÐµÐ½Ð¸Ðµ\s+Ñ†ÐµÐ½Ñ‹|$)uB   Ð¡Ð½Ð¸Ð¶ÐµÐ½Ð¸Ðµ\s+Ñ†ÐµÐ½Ñ‹\s*(.*?)(?=Ð›Ð¾Ñ‚\s*(?:â„–|N)?\s*\d+|$)iÐ  )rü   rû   rý   rþ   rÿ   r   Nrô   )	r    r×   r  ÚDOTALLr  rØ   r  Úitemsrs   )Úlot_cell_textÚprice_cell_textÚdesc_mrü   Úclass_mrû   Úprice_mrý   Ústep_mrþ   Údep_mrÿ   Úred_mr   rö   Úfieldsr3   Úvs                     r5   Ú_extract_lot_fieldsrB    sÔ  € ä�Y‰YØCØ”r—}‘}¤r§y¡yÑ0ó€Fñ 28”*˜VŸ\™\¨!›_Ô-¸R€Kä�i‰iØ.Ø”r—}‘}¤r§y¡yÑ0ó€Gñ 29”˜GŸM™M¨!Ó,Ô-¸b€Jä�i‰ið	yàœŸ™¬¯©Ñ2ó€Gñ
 6=”K §¡¨aÓ 0Ô1À"€Mä�Y‰Yð	_àœŸ™¬¯©Ñ2ó€Fñ
 39”:˜fŸl™l¨1›oÔ.¸b€Lä�I‰Ið	2àœŸ™¬¯©Ñ2ó€Eñ
 -2Œj˜Ÿ™ Q›Ô(°r€Gô �I‰IØMØœŸ™¬¯©Ñ2ó€Eñ 5:”j §¡¨Q£Ô0¸r€Oð €Gà"Ø Ø&Ø$ØØ*ñ€Fð —‘“ò ,‰ˆˆ1Ú”�Q“˜'Ó!Ø˜(˜7˜ eÑ+ˆF�1ŠIð,ð €Mr@   c                 óæ  — g }| j                  d«      D ]Ú  }|j                  «       }d|vrd|vrŒ|j                  d«      D ]«  }|j                  ddg«      }t        |«      dk  rŒ%|d   j                  d	¬
«      j                  «       sŒI|d   j                  dd	¬
«      }|d   j                  dd	¬
«      }t	        ||«      }t        |j                  «       «      sŒ›|j                  |«       Œ­ ŒÜ |S )uR   Ð˜Ñ‰ÐµÑ‚ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñƒ Ñ� Ð»Ð¾Ñ‚Ð°Ð¼Ð¸ Ð¸ Ð¿Ð°Ñ€Ñ�Ð¸Ñ‚ ÐºÐ°Ð¶Ð´ÑƒÑŽ Ñ�Ñ‚Ñ€Ð¾ÐºÑƒ.rƒ   u   Ð�Ð¾Ð¼ÐµÑ€ Ð»Ð¾Ñ‚Ð°r,  r†   rg   Úthr‰   r   Trk   rˆ   rQ   r   )rn   rq   rs   ÚisdigitrB  r<   Úvaluesr§   )	r©   rù   rƒ   Ú
table_textrt   r«   Úlot_cellÚ
price_cellÚlot_infos	            r5   r1  r1  Z  sø   € à€Dà—‘˜wÓ'ò &ˆØ—^‘^Ó%ˆ
Ø ¨
Ñ2Ð7TÐ\fÑ7fØà—>‘> $Ó'ò 	&ˆCØ—<‘<  t Ó-ˆDÜ�4‹y˜1Š}Øà˜‘7×#Ñ#¨$Ð#Ó/×7Ñ7Ô9Øà˜a™×)Ñ)¨#°TÐ)Ó:ˆHØ˜a™×)Ñ)¨#°TÐ)Ó:ˆJä*¨8°ZÓ@ˆHÜ�8—?‘?Ó$Õ%Ø—‘˜HÕ%ñ	&ð&ð( €Kr@   c                 óò   — d| vrg S t        j                  d| «      }t        |«      dk  r| g}g }|D ]B  }d|vrd|vrŒt        ||«      }t	        |j                  «       «      sŒ2|j                  |«       ŒD |S )uT   Ð¤Ð¾Ð»Ð»Ð±Ñ�Ðº: Ñ€Ð°Ð·Ð±Ð¸Ð²Ð°ÐµÑ‚ Ñ‚ÐµÐºÑ�Ñ‚ Ð¿Ð¾ Ð¼Ð°Ñ€ÐºÐµÑ€Ð°Ð¼ Â«Ð›Ð¾Ñ‚ â„–NÂ».r,  u6   (?i)(?:Ð›Ð¾Ñ‚\s*(?:â„–|N)?\s*\d+|â„–\s*\d+\.\s*Ð›Ð¾Ñ‚)rˆ   u   ÐžÐ¿Ð¸Ñ�Ð°Ð½Ð¸Ðµ)r    Úsplitrs   rB  r<   rF  r§   )rÜ   Úblocksrù   ÚblockrJ  s        r5   r2  r2  u  sŽ   € à$¨IÑ5Øˆ	ä�X‰XØAØó€Fô ˆ6ƒ{�aÒØ�ˆà€DØò "ˆØ(°Ñ5Ð:LÐTYÑ:YØä& u¨eÓ4ˆÜˆx�‰Ó Õ!Ø�K‰K˜Õ!ð"ð €Kr@   c                 ó¬   — | rt         sy| j                  «       j                  «       }t         D ]$  }|j                  «       j                  «       |v sŒ$ y y)ud   True, ÐµÑ�Ð»Ð¸ ÐºÐ»Ð°Ñ�Ñ�Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€ Ð¿Ð¾Ð¿Ð°Ð´Ð°ÐµÑ‚ Ð¿Ð¾Ð´ Ñ�Ð¿Ð¸Ñ�Ð¾Ðº Ð¸Ñ�ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ð¹.FT)ÚEXCLUDED_CLASSIFIERSr;   rl   )rû   ÚclÚexcs      r5   Úis_excluded_classifierrS  �  sP   € áÕ1Øà	×	Ñ	Ó	×	!Ñ	!Ó	#€BÜ#ò ˆØ�9‰9‹;×ÑÓ "Ò$Ùðð r@   c                 ó¬   — | rt         sy| j                  «       j                  «       }t         D ]$  }|j                  «       j                  «       |v sŒ$ y y)u^   True, ÐµÑ�Ð»Ð¸ Ð² Ð¾Ð¿Ð¸Ñ�Ð°Ð½Ð¸Ð¸ ÐµÑ�Ñ‚ÑŒ Ñ�Ð»Ð¾Ð²Ð¾ Ð¸Ð· Ñ�Ð¿Ð¸Ñ�ÐºÐ° Ð¸Ñ�ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ð¹.FT)ÚEXCLUDED_DESCRIPTION_KEYWORDSr;   rl   )rü   ru   Úkeywords      r5   Úis_excluded_descriptionrW  œ  sP   € áÕ;Øà×ÑÓ×$Ñ$Ó&€DÜ0ò ˆØ�=‰=‹?× Ñ Ó" dÒ*Ùðð r@   c                 ór   — t        | j                  dd«      «      xs t        | j                  dd«      «      S )ur   True, ÐµÑ�Ð»Ð¸ Ð»Ð¾Ñ‚ Ð½ÑƒÐ¶Ð½Ð¾ Ð¿Ñ€Ð¾Ð¿ÑƒÑ�Ñ‚Ð¸Ñ‚ÑŒ Ð¸ Ð´Ð»Ñ� Ð¿ÐµÑ€Ð²Ð¾Ð¹, Ð¸ Ð´Ð»Ñ� Ð²Ñ‚Ð¾Ñ€Ð¾Ð¹ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹.rû   rx   rü   )rS  ro   rW  )r  s    r5   Úshould_skip_lotrY  ¨  s3   € ä! #§'¡'¨,¸Ó";Ó<ÒsÔ@WÐX[×X_ÑX_Ð`mÐoqÓXrÓ@sÐsr@   c                 ó$  — | syd}|D ]†  }t        j                  || t         j                  «      }|sŒ+|j                  d«      j	                  «       }|j                  d«      j	                  «       }t        |«      }t        |«      }|sŒ‚||fc S  y)uv  
    Ð Ð°Ð·Ð±Ð¸Ñ€Ð°ÐµÑ‚ Ñ�Ñ‚Ñ€Ð¾ÐºÑƒ Ð²Ñ€ÐµÐ¼ÐµÐ½Ð¸ Ð¿Ñ€Ð¸Ñ‘Ð¼Ð° Ð·Ð°Ñ�Ð²Ð¾Ðº.

    ÐŸÐ¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÑ‚ Ð²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ñ‹:
    - 'Ñ� 03.08.2026 11:00 Ð¿Ð¾ 28.09.2026 11:00'
    - 'ÐŸÑ€Ð¸Ñ‘Ð¼ Ð·Ð°Ñ�Ð²Ð¾Ðº Ñ� 03.08.2026 11:00 Ð¿Ð¾ 28.09.2026 11:00'
    - 'Ð·Ð°Ñ�Ð²Ð¾Ðº Ñ� 03.08.2026 11:00 Ð¿Ð¾ 28.09.2026 11:00'
    - 'Ñ� 25.07.2026 14:00:00 Ð¿Ð¾ 30.07.2026 13:59:00'
    rÌ   )u7   ^\s*Ñ�\s+([\d\.]+\s+[\d:]+)\s+Ð¿Ð¾\s+([\d\.]+\s+[\d:]+)uW   [ÐŸÐ¿]Ñ€Ð¸[ÐµÑ‘]Ð¼\s+Ð·Ð°Ñ�Ð²Ð¾Ðº\s+Ñ�\s+([\d\.]+\s+[\d:]+)\s+Ð¿Ð¾\s+([\d\.]+\s+[\d:]+)uB   Ð·Ð°Ñ�Ð²Ð¾Ðº.*?Ñ�\s+([\d\.]+\s+[\d:]+)\s+Ð¿Ð¾\s+([\d\.]+\s+[\d:]+)u5   \bÑ�\s+([\d\.]+\s+[\d:]+)\s+Ð¿Ð¾\s+([\d\.]+\s+[\d:]+)rˆ   r   )r    r×   r  rØ   rl   r~   )rú   ÚpatternsÚpatternrã   Ú
start_textÚend_textÚstart_dtÚend_dts           r5   Úparse_app_time_windowra  ­  s‘   € ñ Øð€Hð ò $ˆÜ�I‰I�g˜x¬¯©Ó7ˆÙØà—W‘W˜Q“Z×%Ñ%Ó'ˆ
Ø—7‘7˜1“:×#Ñ#Ó%ˆä˜jÓ)ˆÜ˜HÓ%ˆâØ˜VÐ#Ò#ð$ð r@   c                 óT   — t        j                  dd| xs d«      j                  «       S )uL   Ð�Ð¾Ñ€Ð¼Ð°Ð»Ð¸Ð·ÑƒÐµÑ‚ Ñ‚ÐµÐºÑ�Ñ‚, ÑƒÐ±Ð¸Ñ€Ð°Ñ� Ð»Ð¸ÑˆÐ½Ð¸Ðµ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ñ‹.r	  rQ   rx   )r    r
  rl   r  s    r5   Únormalize_textrc  Ò  s"   € ä�6‰6�&˜# ¢
¨Ó,×2Ñ2Ó4Ð4r@   c                 ód   — | sy| j                  d«      rd| › �S | j                  d«      rd| › �S | S )uA   ÐŸÑ€Ð¸Ð²Ð¾Ð´Ð¸Ñ‚ Ñ�Ñ�Ñ‹Ð»ÐºÑƒ Ðº Ð°Ð±Ñ�Ð¾Ð»ÑŽÑ‚Ð½Ð¾Ð¼Ñƒ Ð²Ð¸Ð´Ñƒ.rx   r³   r´   r�   rµ   )r¥   ©r3  s    r5   Úresolve_urlrf  ×  s>   € áØØ
‡~�~�dÔØ˜�uˆ~ÐØ
‡~�~�cÔØ% c UÐ+Ð+Ø€Jr@   c                 óÔ  ‡— 	 | j                  |«       t        | d«      j                  d„ «       t	        | j
                  d«      }g d¢}|j                  dd¬«      D ]z  }t        |j                  dd¬	«      «      j                  «       Št        |d
   «      t        |«      k(  rŒHt        ˆfd„|D «       «      sŒ]|d
   }d|v s	d|v sd|v sŒot        |«      c S  y# t        $ r Y Œ¶w xY w)uW   Ð˜Ñ‰ÐµÑ‚ Ñ�Ñ�Ñ‹Ð»ÐºÑƒ Ð½Ð° Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ðµ Ñ� Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð°Ð¼Ð¸ Ñ‚Ð¾Ñ€Ð³Ð¾Ð².é   c                 óR   — d| j                   v xs t        | j                   «      dkD  S )Nõ%   Ð¡Ð²Ñ�Ð·Ð°Ð½Ð½Ñ‹Ðµ Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ�ip  r/  rÀ   s    r5   rÂ   z(find_result_trade_link.<locals>.<lambda>ç  s(   € Ð=ÀÇÁÐNÒkÔRUÐVW×VcÑVcÓRdÐgkÑRk€ r@   r‚   ©õ   Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚u   Ð·Ð°Ð²ÐµÑ€Ñˆu   Ñ�Ð¾Ñ�Ñ‚Ð¾Ñ�Ð»u
   Ð¾Ñ‚Ð¼ÐµÐ½õ   Ð¿Ñ€Ð¾Ð´Ð°Ð½u   Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†u   Ð¸Ñ‚Ð¾Ð³rŠ   TrË   rQ   rk   r‹   c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr/   r0   )r2   r'  ru   s     €r5   r6   z)find_result_trade_link.<locals>.<genexpr>   s   øè ø€ Ò4˜bˆr�TŒzÑ4ùr7   ÚbankruptmessagesúMessage.aspxÚMessagesN)ro   r   r›   r[   r   rŸ   rn   rc  rq   r;   rf  r<   )r¨   Úpage_urlr©   Úresult_keywordsrŠ   r‹   ru   s         @r5   Úfind_result_trade_linkrt  â  sò   ø€ ðØ�
‰
�8ÔÜ�f˜bÓ!×'Ñ'Ùkô	
ô ˜×+Ñ+¨]Ó;€Dò€Oð �]‰]˜3 Tˆ]Ó*ò )ˆÜ˜aŸj™j¨°D˜jÓ9Ó:×@Ñ@ÓBˆô �q˜‘yÓ!¤[°Ó%:Ò:ØäÓ4 OÔ4Õ4Ø�V‘9ˆDà! TÑ)¨^¸tÑ-CÀzÐUYÒGYÜ" 4Ó(Ò(ð)ð øô; ò Ùðús   ƒ-C Ã	C'Ã&C'c           	      óè  — | j                  d«      D ]Ý  }|j                  dd¬«      j                  «       }d|vsd|vrŒ-i }|j                  d«      D ]•  }|j                  dd	g«      }t        |«      d
k  rŒ%|d   j                  dd¬«      }|d   j                  dd¬«      }t	        j
                  d|t        j                  «      }|sŒy||t        |j                  d«      «      <   Œ— |sŒÛ|c S  i S )uR  
    ÐŸÐ°Ñ€Ñ�Ð¸Ñ‚ Ð¢Ð�Ð‘Ð›Ð˜Ð¦Ð£ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð¾Ð² Ð½Ð° Ñ�Ñ‚Ñ€Ð°Ð½Ð¸Ñ†Ðµ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð¾Ð² Ñ‚Ð¾Ñ€Ð³Ð¾Ð².
    Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ Ñ�Ð»Ð¾Ð²Ð°Ñ€ÑŒ {Ð½Ð¾Ð¼ÐµÑ€_Ð»Ð¾Ñ‚Ð°: Ñ‚ÐµÐºÑ�Ñ‚_Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð°},
    Ð½Ð°Ð¿Ñ€Ð¸Ð¼ÐµÑ€ {1: 'Ð¢Ð¾Ñ€Ð³Ð¸ Ñ�Ð¾Ñ�Ñ‚Ð¾Ñ�Ð»Ð¸Ñ�ÑŒ Ð›ÑƒÑ‡ÑˆÐ°Ñ� Ñ†ÐµÐ½Ð° 371 900,00 â‚½ ÐŸÐ¾Ð±ÐµÐ´Ð¸Ñ‚ÐµÐ»ÑŒ ...'}.
    rƒ   rQ   Trk   rl  u   Ð»Ð¾Ñ‚r†   rg   rD  r   r   rˆ   õ   Ð»Ð¾Ñ‚\s*(?:â„–|n)?\s*(\d+))	rn   rq   r;   rs   r    r×   r  ÚintrØ   )	r©   rƒ   ÚheadÚresultsrt   ÚcellsÚfirstÚsecondrã   s	            r5   Ú_parse_results_tabler}    sü   € ð —‘˜wÓ'ò ˆØ�~‰~˜c¨ˆ~Ó.×4Ñ4Ó6ˆØ tÑ+¨x¸tÑ/CØØˆØ—>‘> $Ó'ò 		.ˆCØ—L‘L $¨ Ó.ˆEÜ�5‹z˜AŠ~ØØ˜1‘X×&Ñ& s°$Ð&Ó7ˆEØ˜1‘X×&Ñ& s°$Ð&Ó7ˆFÜ—	‘	Ð8¸%ÄÇÁÓOˆAÙØØ'-ˆG”C˜Ÿ™ ›
“OÒ$ð		.ò ØŠNð!ð" €Ir@   c                 ó�   ‡— | xs dj                  «       Š‰syd}t        ˆfd„|D «       «      ryd}t        ˆfd„|D «       «      ryy)	uC  
    ÐžÐ¿Ñ€ÐµÐ´ÐµÐ»Ñ�ÐµÑ‚ Ñ�Ñ‚Ð°Ñ‚ÑƒÑ� Ð»Ð¾Ñ‚Ð° Ð¿Ð¾ Ñ‚ÐµÐºÑ�Ñ‚Ñƒ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð°.
    Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚: 'sold' | 'unsold' | 'unknown'.
    Ð’Ð�Ð–Ð�Ðž: Ñ�Ð½Ð°Ñ‡Ð°Ð»Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€Ñ�ÐµÐ¼ Â«Ð½Ðµ Ð¿Ñ€Ð¾Ð´Ð°Ð½Â», Ñ‚.Ðº. 'Ñ�Ð¾Ñ�Ñ‚Ð¾Ñ�Ð»Ð¸Ñ�ÑŒ' Ñ�Ð²Ð»Ñ�ÐµÑ‚Ñ�Ñ�
    Ð¿Ð¾Ð´Ñ�Ñ‚Ñ€Ð¾ÐºÐ¾Ð¹ 'Ð½Ðµ Ñ�Ð¾Ñ�Ñ‚Ð¾Ñ�Ð»Ð¸Ñ�ÑŒ'.
    rx   Úunknown)	u   Ð½Ðµ Ñ�Ð¾Ñ�Ñ‚Ð¾Ñ�Ð»Ð¸Ñ�ÑŒu0   Ð¿Ñ€Ð¸Ð·Ð½Ð°Ð½Ñ‹ Ð½Ðµ Ñ�Ð¾Ñ�Ñ‚Ð¾Ñ�Ð²ÑˆÐ¸Ð¼Ð¸Ñ�Ñ�u   Ð½ÐµÑ�Ð¾Ñ�Ñ‚Ð¾Ñ�Ð²ÑˆÐ¸Ð¼Ð¸Ñ�Ñ�u   Ð½ÐµÐ´ÐµÐ¹Ñ�Ñ‚Ð²Ð¸Ñ‚ÐµÐ»ÑŒu   Ð½Ðµ Ð´ÐµÐ¹Ñ�Ñ‚Ð²Ð¸Ñ‚ÐµÐ»ÑŒu   Ð¾Ñ‚Ð¼ÐµÐ½ÐµÐ½Ñ‹u   Ð½Ðµ Ð±Ñ‹Ð»Ð¾ Ð¿Ð¾Ð´Ð°Ð½Ð¾u!   Ð¾Ñ‚Ñ�ÑƒÑ‚Ñ�Ñ‚Ð²Ð¸Ðµ Ð·Ð°Ñ�Ð²Ð¾Ðºu$   Ð·Ð°Ñ�Ð²Ð¾Ðº Ð½Ðµ Ð¿Ð¾Ñ�Ñ‚ÑƒÐ¿Ð°Ð»Ð¾c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr/   r0   ©r2   r3   rÝ   s     €r5   r6   z_lot_status.<locals>.<genexpr>0  s   øè ø€ Ò
%�aˆ1�Œ6Ñ
%ùr7   Úunsold)u   Ñ‚Ð¾Ñ€Ð³Ð¸ Ñ�Ð¾Ñ�Ñ‚Ð¾Ñ�Ð»Ð¸Ñ�ÑŒu   Ñ�Ð¾Ñ�Ñ‚Ð¾Ñ�Ð»Ð¸Ñ�ÑŒu   Ð¿Ð¾Ð±ÐµÐ´Ð¸Ñ‚ÐµÐ»u   Ð»ÑƒÑ‡ÑˆÐ°Ñ� Ñ†ÐµÐ½Ð°u(   Ð´Ð¾Ð³Ð¾Ð²Ð¾Ñ€ ÐºÑƒÐ¿Ð»Ð¸-Ð¿Ñ€Ð¾Ð´Ð°Ð¶Ð¸rm  u%   Ð¿Ñ€Ð¸Ð·Ð½Ð°Ð½ Ð¿Ð¾Ð±ÐµÐ´Ð¸Ñ‚ÐµÐ»ÐµÐ¼c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr/   r0   r�  s     €r5   r6   z_lot_status.<locals>.<genexpr>6  s   øè ø€ Ò
#�aˆ1�Œ6Ñ
#ùr7   Úsold)r;   r<   )ru   Ú	unsold_kwÚsold_kwrÝ   s      @r5   Ú_lot_statusr‡  !  sT   ø€ ð 
Š�×ÑÓ€AÙØð€Iô
 Ó
%˜9Ô
%Ô%Øð€Gô Ó
#˜7Ô
#Ô#ØØr@   z6https://fedresurs.ru/backend/bankruptcy-messages/{mid}zoMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36z!application/json, text/plain, */*zru-RU,ru;q=0.9,en-US;q=0.8z&https://fedresurs.ru/bankruptmessages/)z
User-AgentÚAcceptzAccept-LanguageÚRefererzU(?:^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)|(?:^[0-9a-f]{32}$)c                 óP   — | xs dj                  d«      j                  d«      d   S )uN   Ð”Ð¾Ñ�Ñ‚Ð°Ñ‘Ñ‚ id Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ� Ð¸Ð· Ñ�Ñ�Ñ‹Ð»ÐºÐ¸ /bankruptmessages/<id>.rx   r�   éÿÿÿÿ)ÚrstriprL  re  s    r5   Ú_msg_id_from_urlr�  K  s'   € àŠI�2×Ñ˜cÓ"×(Ñ(¨Ó-¨bÑ1Ð1r@   c                 ó¢   — t        j                  t        j                  | ¬«      t        d¬«      }|j                  «        |j                  «       S )u`   Ð—Ð°Ð¿Ñ€Ð¾Ñ� Ðº JSON-API. Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ Ñ€Ð°Ñ�Ð¿Ð°Ñ€Ñ�ÐµÐ½Ð½Ñ‹Ð¹ JSON Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ�.)Úmidrh  )ÚheadersÚtimeout)Úrequestsro   ÚAPI_URLr   ÚAPI_HEADERSÚraise_for_statusÚjson)r�  Úrs     r5   Úapi_get_messager˜  O  s6   € ä�‰”W—^‘^¨�^Ó,´kÈ2ÔN€AØ×ÑÔØ�6‰6‹8€Or@   c              #   óä   K  — t        | t        «      r-| –— | j                  «       D ]  }t        |«      E d{  –—†  Œ yt        | t        «      r| D ]  }t        |«      E d{  –—†  Œ yy7 Œ37 Œ
­w)u‰   Ð ÐµÐºÑƒÑ€Ñ�Ð¸Ð²Ð½Ð¾ Ð¿ÐµÑ€ÐµÐ±Ð¸Ñ€Ð°ÐµÑ‚ Ð²Ñ�Ðµ Ñ�Ð»Ð¾Ð²Ð°Ñ€Ð¸ Ð²Ð½ÑƒÑ‚Ñ€Ð¸ JSON (Ñ�Ð½Ð°Ñ‡Ð°Ð»Ð° Ñ€Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒ, Ð¿Ð¾Ñ‚Ð¾Ð¼ Ð´ÐµÑ‚Ð¸).N)r9   ÚdictrF  Ú_iter_dictsÚlist)ÚobjrA  s     r5   r›  r›  U  sm   è ø€ ä�#”tÔØŠ	Ø—‘“ò 	&ˆAÜ" 1“~×%Ñ%ñ	&ä	�CœÔ	Øò 	&ˆAÜ" 1“~×%Ñ%ñ	&ð 
ð &øð &ús!   ‚6A0¸A,¹*A0Á#A.Á$	A0Á.A0c                 óH   ‡‡— g Šˆˆfd„Š ‰| «       dj                  ‰«      S )un   Ð¡Ð¾Ð±Ð¸Ñ€Ð°ÐµÑ‚ Ð²Ñ�Ðµ Ñ�Ñ‚Ñ€Ð¾ÐºÐ¾Ð²Ñ‹Ðµ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ� Ð²Ð½ÑƒÑ‚Ñ€Ð¸ ÑƒÐ·Ð»Ð° JSON Ð² Ð¾Ð´Ð¸Ð½ Ñ‚ÐµÐºÑ�Ñ‚.c                 óæ   •— t        | t        «      r| j                  «       D ]
  } ‰|«       Œ y t        | t        «      r| D ]
  } ‰|«       Œ y t        | t        «      r‰j                  | «       y y r/   )r9   rš  rF  rœ  r:   r§   )ÚorA  ÚoutÚrecs     €€r5   r¢  z_node_text.<locals>.recb  sc   ø€ Ü�aœÔØ—X‘X“Zò �Ù�A•ñä˜œ4Ô Øò �Ù�A•ñä˜œ3ÔØ�J‰J�q�Mð  r@   rQ   )r  )Únoder¡  r¢  s    @@r5   Ú
_node_textr¤  _  s$   ù€ à
€Cõñ ˆ„IØ�8‰8�C‹=Ðr@   c                 óX  — t        | t        «      rt        | j                  dd«      «      nd}d}t	        | «      D ]±  }|j                  «       D �cg c]  }t        |t        «      sŒ|‘Œ }}dj                  |«      j                  «       }d|vrŒU|D �cg c]<  }t        j                  |j                  «       «      sŒ'|j                  «       |k7  sŒ;|‘Œ> }}|sŒŸ|d   j                  «       }Œ³ |r|S t        | t        «      st        j                  | d¬«      n| }t        j                  |«      D ]m  }	|	j                  d«      |k(  rŒ|t        d|	j!                  «       d	z
  «      |	j#                  «       d	z    j                  «       }
d|
v sŒ\|	j                  d«      c S  yc c}w c c}w )
u~  
    Ð˜Ñ‰ÐµÑ‚ Ð² JSON Ð¾Ð±ÑŠÑ�Ð²Ð»ÐµÐ½Ð¸Ñ� id Ñ�Ð²Ñ�Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ Â«Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ� Ð¾ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð°Ñ… Ñ‚Ð¾Ñ€Ð³Ð¾Ð²Â».
    1) ÐŸÑ€Ð¾Ñ…Ð¾Ð´Ð¸Ñ‚ ÑƒÐ·Ð»Ñ‹: Ñ�Ð°Ð¼Ñ‹Ð¹ Ð³Ð»ÑƒÐ±Ð¾ÐºÐ¸Ð¹ ÑƒÐ·ÐµÐ», Ð³Ð´Ðµ ÐµÑ�Ñ‚ÑŒ Ñ�Ð»Ð¾Ð²Ð¾ Â«Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Â» Ð¸ id-Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð°Ñ� Ñ�Ñ‚Ñ€Ð¾ÐºÐ°.
    2) Ð¤Ð¾Ð»Ð±Ñ�Ðº: Ð¾ÐºÐ½Ð¾ Â±400 Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð² Ð²Ð¾ÐºÑ€ÑƒÐ³ id Ð² Ñ�Ñ‹Ñ€Ð¾Ð¼ JSON.
    r…   rx   NrQ   rl  r   F)Úensure_asciir   )r9   rš  r:   ro   r›  rF  r  r;   Ú	MSG_ID_REÚmatchrl   r–  ÚdumpsÚfinditerrØ   ÚmaxÚstartÚend)r  Úown_idÚfoundr£  rA  ÚvalsÚjoinedÚidsÚrawrã   Úwindows              r5   Úfind_result_message_idrµ  n  so  € ô )3°4¼Ô(>ŒS�—‘˜$ Ó#Ô$ÀB€FØ€EÜ˜DÓ!ò #ˆØŸ;™;›=Ö?�a¬J°q¼#Õ,>’Ð?ˆÐ?Ø—‘˜$“×%Ñ%Ó'ˆØ vÑ-ØØÖU�Q¤)§/¡/°!·'±'³)Õ"<ÀÇÁÃÈfÓATŠqÐUˆÐUÚØ˜‘F—L‘L“N‰Eð#ñ ØˆÜ6@ÀÄsÔ6KŒ$�*‰*�T¨ˆ*Ô
.ÐQU€CÜ×Ñ Ó$ò ˆØ�7‰7�1‹:˜ÒØØ”S˜˜AŸG™G›I¨™OÓ,¨a¯e©e«g¸©mÐ<×BÑBÓDˆØ 6Ò)Ø—7‘7˜1“:Òðð ùò! @ùò Vs   ÁF"Á&F"Â(F'Â=F'ÃF'c                 óP  — i }t        | «      D ]t  }t        |«      }|rt        |«      dkD  rŒt        j                  d|t        j
                  «      }|sŒGt        |«      }|dk(  rŒX||t        |j                  d«      «      <   Œv |r|S t        t        | «      «      }|dk7  rd|iS i S )uö   
    Ð˜Ð·Ð²Ð»ÐµÐºÐ°ÐµÑ‚ Ð¸Ð· JSON Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð¾Ð² Ñ�Ñ‚Ð°Ñ‚ÑƒÑ�Ñ‹ Ð»Ð¾Ñ‚Ð¾Ð²: {Ð½Ð¾Ð¼ÐµÑ€: 'sold'/'unsold'}.
    Ð£Ð½Ð¸Ð²ÐµÑ€Ñ�Ð°Ð»ÑŒÐ½Ð¾: Ð¸Ñ‰ÐµÑ‚ ÑƒÐ·Ð»Ñ‹, Ð³Ð´Ðµ Ð¾Ð´Ð½Ð¾Ð²Ñ€ÐµÐ¼ÐµÐ½Ð½Ð¾ ÐµÑ�Ñ‚ÑŒ Ð½Ð¾Ð¼ÐµÑ€ Ð»Ð¾Ñ‚Ð° Ð¸ Ñ�Ñ‚Ð°Ñ‚ÑƒÑ�.
    éˆ  rv  r  rˆ   )	r›  r¤  rs   r    r×   r  r‡  rw  rØ   )r  ry  r£  rÞ   rã   Ústs         r5   Úparse_lot_results_apir¹  ‰  s¬   € ð
 €GÜ˜DÓ!ò 
&ˆÜ˜ÓˆÙ”c˜#“h ’oØÜ�I‰IÐ4°c¼2¿=¹=ÓIˆÙØÜ˜ÓˆØ�Š?ØØ#%ˆ”�A—G‘G˜A“J“Ò ð
&ñ ØˆÜ	”Z Ó%Ó	&€BØ˜I’oˆAˆrˆ7Ð-¨2Ð-r@   c                 ó  — t        | «      }	 t        |«      }t        |«      }|st        j                  d|› d�«       ddi dœS 	 t        |«      }t        |«      }|st        j                  d
|› d�«       ddi dœS t        j                  d|› d|› d�«       dd|dœS # t        $ r+}t        j                  d|› d|› �«       ddi dœcY d}~S d}~ww xY w# t        $ r+}t        j                  d	|› d|› �«       ddi dœcY d}~S d}~ww xY w)uë   
    Ð‘Ñ‹Ñ�Ñ‚Ñ€Ð°Ñ� Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° Ñ‡ÐµÑ€ÐµÐ· JSON-API (Ð±ÐµÐ· Chrome).
    Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ Ñ‚Ð¾Ñ‚ Ð¶Ðµ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚, Ñ‡Ñ‚Ð¾ Ð¸ fetch_results_entry:
    {'fail': bool, 'no_link': bool, 'results': {Ð½Ð¾Ð¼ÐµÑ€: Ñ�Ñ‚Ð°Ñ‚ÑƒÑ�}}
    u1   API: Ð¾Ð±ÑŠÑ�Ð²Ð»ÐµÐ½Ð¸Ðµ Ð½Ðµ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¾ (rÎ   TF©ÚfailÚno_linkry  Nu4   API: Ñ�Ñ�Ñ‹Ð»ÐºÐ¸ Ð½Ð° Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ‹ Ð½ÐµÑ‚ (u    ) â€” Ñ‚Ð¾Ñ€Ð³Ð¸ ÐµÑ‰Ñ‘ Ð¸Ð´ÑƒÑ‚u1   API: Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ‹ Ð½Ðµ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ñ‹ (u:   API: Ñ�Ñ‚Ð°Ñ‚ÑƒÑ�Ñ‹ Ð»Ð¾Ñ‚Ð¾Ð² Ð½Ðµ Ñ€Ð°Ñ�Ð¿Ð¾Ð·Ð½Ð°Ð½Ñ‹ (ú)u+   API: Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð¾Ð² ú ()r�  r˜  r[   rY   r\   rµ  rZ   r¹  )r3  r�  r  r>   ÚridÚrdatary  s          r5   Úfetch_results_entry_apirÂ  Ÿ  s4  € ô ˜3Ó
€Cð?Ü˜sÓ#ˆô ! Ó
&€CÙä�‰ÐKÈCÈ5ÐPpÐqÔrØ¨$¸2Ñ>Ð>ð?Ü Ó$ˆô $ EÓ*€GÙÜ�‰ÐTÐUXÐTYÐYZÐ[Ô\Ø¨¸2Ñ>Ð>Ü‡L�LÐ>¸w¸iÀrÈ#ÈÈaÐPÔQØ e¸Ñ@Ð@øô% ò ?Ü�‰ÐKÈCÈ5ÐPSÐTUÐSVÐWÔXØ¨¸2Ñ>Õ>ûð?ûô ò ?Ü�‰ÐKÈCÈ5ÐPSÐTUÐSVÐWÔXØ¨¸2Ñ>Õ>ûð?ús;   �B ÁC Â	CÂ' CÃCÃCÃ	D	Ã DÃ>D	ÄD	)rj  r.  r-  u   ÐŸÑ€Ð¸Ñ‘Ð¼ Ð·Ð°Ñ�Ð²Ð¾Ðº)rÅ   u   Ð ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚r.  c                 ó6  ‡‡— t        d|dz   «      D ]Ä  }	 | j                  |«       	 t        | |«      j                  ˆfd„«       t        | j                  d«      }|j                  dd	¬
«      Št        ‰«      dkD  rt        ˆfd„‰D «       «      r|‰fc S t        j                  d|› d|› d|› dt        ‰«      › d�	«       t        j                  d«       ŒÆ y# t        $ r&}t        j                  d|› d|› �«       Y d}~ yd}~ww xY w# t        $ r Y ŒÑw xY w)uŠ   Ð—Ð°Ð³Ñ€ÑƒÐ¶Ð°ÐµÑ‚ Ñ�Ñ‚Ñ€Ð°Ð½Ð¸Ñ†Ñƒ Ð¸ Ð–Ð”Ð�Ð¢ Ð¸Ð¼ÐµÐ½Ð½Ð¾ Ð¼Ð°Ñ€ÐºÐµÑ€Ñ‹ ÐºÐ¾Ð½Ñ‚ÐµÐ½Ñ‚Ð° (Ð±ÐµÐ· OR Ð¿Ð¾ Ð´Ð»Ð¸Ð½Ðµ Ð¾Ð±Ð¾Ð»Ð¾Ñ‡ÐºÐ¸).rˆ   zdriver.get(u   ) Ð¾ÑˆÐ¸Ð±ÐºÐ°: N)Nrx   c                 ó.   •‡ — t        ˆ fd„‰D «       «      S )Nc              3   ó:   •K  — | ]  }|‰j                   v –— Œ y ­wr/   rÇ   )r2   rã   rÁ   s     €r5   r6   z/_wait_page.<locals>.<lambda>.<locals>.<genexpr>É  s   øè ø€ ÒB°Q˜a 1§=¡=Ô0ÑBùs   ƒ)r<   )rÁ   Úmarkerss   `€r5   rÂ   z_wait_page.<locals>.<lambda>É  s   ù€ œ#ÓB¸'ÔBÓB€ r@   r‚   rQ   Trk   éô  c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr/   r0   )r2   rã   ru   s     €r5   r6   z_wait_page.<locals>.<genexpr>Ï  s   øè ø€ Ò">° 1¨¤9Ñ">ùr7   u   Ð¡Ñ‚Ñ€Ð°Ð½Ð¸Ñ†Ð° u/    Ð½Ðµ Ð¾Ñ‚Ñ€Ð¸Ñ�Ð¾Ð²Ð°Ð»Ð°Ñ�ÑŒ (Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° r�   u   , Ð´Ð»Ð¸Ð½Ð° Ñ‚ÐµÐºÑ�Ñ‚Ð°=r¾  r   )rÓ   ro   r[   rY   r\   r   r›   r   rŸ   rq   rs   r<   rÔ   rÕ   )	r¨   r3  rÆ  r‘  ÚattemptsrÛ   r>   r©   ru   s	     `     @r5   Ú
_wait_pagerÊ  ¿  s:  ù€ ä˜˜H q™LÓ)ò ˆð	Ø�J‰J�sŒOð	Ü˜& 'Ó*×0Ñ0ÛBôô
 ˜V×/Ñ/°Ó?ˆØ�}‰}˜S¨ˆ}Ó-ˆÜˆt‹9�sŠ?œsÓ">°gÔ">Ô>Ø˜�:ÒÜ�‰Ð+¨C¨5Ð0_Ð`gÐ_hÐhiÐjrÐisð  tNô  ORð  SWó  OXð  NYð  YZð  [ô  	\Ü�
‰
�1�ð#ð$ øô ò 	Ü�O‰O˜k¨#¨Ð.>¸q¸cÐBÔCÝûð	ûô ò 	Ùð	ús(   –C¨DÃ	D	Ã#DÄD	Ä	DÄDc                 ól  — |syt        | |ddd¬«      \  }}|€y|j                  dt        j                  dt        j                  «      ¬«      }|sy|j                  d	«      D ]O  }|j                  d
d¬«      D ]7  }d|j                  dd¬«      j                  «       v sŒ't        |d   «      c c S  ŒQ y)uh  
    Ð—Ð�ÐŸÐ�Ð¡Ð�ÐžÐ™ ÐšÐ�Ð�Ð�Ð›: Ñ�Ñ‚Ð°Ñ€Ð°Ñ� ÐºÐ°Ñ€Ñ‚Ð¾Ñ‡ÐºÐ° Ð´Ð¾Ð»Ð¶Ð½Ð¸ÐºÐ° (old.bankrot.fedresurs.ru) Ð¾Ñ‚Ð´Ð°Ñ‘Ñ‚Ñ�Ñ�
    Ñ�ÐµÑ€Ð²ÐµÑ€Ð¾Ð¼ Ð‘Ð•Ð— JavaScript â€” Ñ‚Ð°Ð¼ Ð² Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ðµ gvMessages ÐµÑ�Ñ‚ÑŒ Ñ�Ñ‚Ñ€Ð¾ÐºÐ°
    Â«Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ðµ Ð¾ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð°Ñ… Ñ‚Ð¾Ñ€Ð³Ð¾Ð²Â» Ñ�Ð¾ Ñ�Ñ�Ñ‹Ð»ÐºÐ¾Ð¹. Chrome-Ð¾Ñ‚Ñ€Ð¸Ñ�Ð¾Ð²ÐºÐ° Ð½Ðµ Ð½ÑƒÐ¶Ð½Ð°.
    N)u   Ð¢Ð¸Ð¿ Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ�rm   rˆ   )r‘  rÉ  rƒ   rÊ   r„   r†   rŠ   TrË   u#   Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð°Ñ… Ñ‚Ð¾Ñ€Ð³Ð¾Ð²rQ   rk   r‹   )	rÊ  rp   r    r¡   r¢   rn   rq   r;   r¸   )r¨   r•   r©   ru   rƒ   rt   rŠ   s          r5   Úfind_result_link_via_old_cardrÌ  Õ  s¸   € ñ ØÜ˜F JÐ0NÐXZÐefÔg�J€Dˆ$Ø€|ØØ�I‰I�g¤"§*¡*¨^¼R¿T¹TÓ"BˆIÓC€EÙØØ�~‰~˜dÓ#ò 8ˆØ—‘˜c¨�Ó-ò 	8ˆAØ4¸¿
¹
À3Èd¸
Ó8S×8YÑ8YÓ8[Ò[Ü,¨Q¨v©YÓ7Ô7ñ	8ð8ð r@   c                 óæ   — |dk(  rkt        j                  d| xs dj                  «       «      }|rAdt        |j	                  d«      «      cxk  rdk  rn |S t        |j	                  d«      «      S |S )ux   Ð•Ñ�Ð»Ð¸ Ñ�Ñ‚Ñ€Ð¾ÐºÐ° Ñ‚Ð¾Ñ€Ð³Ð¾Ð² = Ð¾Ð´Ð¸Ð½ Ð»Ð¾Ñ‚ Ñ� Ð½Ð¾Ð¼ÐµÑ€Ð¾Ð¼ Ð² ÐºÐ¾Ð½Ñ†Ðµ (ÐŸÐŸ-56571/62), Ð±ÐµÑ€Ñ‘Ð¼ ÐµÐ³Ð¾.rˆ   z[/\-](\d+)$rx   rÇ  )r    r×   rl   rw  rØ   )r�   ÚidxÚtotalrã   s       r5   Ú_lot_num_for_traderÐ  é  s`   € à�‚zÜ�I‰I�n |Ò'9°r×&@Ñ&@Ó&BÓCˆÙ�”c˜!Ÿ'™' !›*“oÔ,¨Ô,à€Jô �q—w‘w˜q“z“?Ð"Ø€Jr@   c                 óB  ‡— ||v r||   S ddi dœ}t        | |t        «      \  }}d}|��|j                  dd¬«      D ]z  }t        |j	                  dd¬«      «      j                  «       Št        |d	   «      t        |«      k(  rŒHt        ˆfd
„dD «       «      sŒ]|d	   }	d|	v s	d|	v sd|	v sŒot        |	«      } n |s&t        | |«      }|rt        j                  d|› �«       |s|du |d<   |du|d<   |||<   |S t        | |t        «      \  }
}|
€d|d<   |||<   |S t        |
«      }|rP|j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}|d<   t        j                  d|d   › d|› d�«       nt        |«      }|dk(  rd|d<   nd|i|d<   |||<   |S c c}}w )u¶   
    ÐžÐ´Ð½Ð° Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° URL Ð·Ð° Ñ†Ð¸ÐºÐ» (ÐºÑ�Ñˆ). Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚:
    {'fail': bool, 'no_link': bool, 'results': {Ð½Ð¾Ð¼ÐµÑ€_Ð»Ð¾Ñ‚Ð°: 'sold'/'unsold'/'unknown'}}
    Fr»  NrŠ   TrË   rQ   rk   r‹   c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr/   r0   r�  s     €r5   r6   z&fetch_results_entry.<locals>.<genexpr>  s   øè ø€ ò  [˜a�1˜”6ñ  [ùr7   rk  ro  rp  rq  ub   Ð¡Ñ�Ñ‹Ð»ÐºÐ° Ð½Ð° Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ‹ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð° Ñ‡ÐµÑ€ÐµÐ· Ñ�Ñ‚Ð°Ñ€ÑƒÑŽ ÐºÐ°Ñ€Ñ‚Ð¾Ñ‡ÐºÑƒ: r¼  r½  ry  u'   Ð¢Ð°Ð±Ð»Ð¸Ñ†Ð° Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð¾Ð²: r¿  r¾  r  rˆ   )rÊ  ÚANN_MARKERSrn   rc  rq   r;   rf  r<   rÌ  rY   rZ   ÚRES_MARKERSr}  r7  r‡  )r¨   r3  r•   ÚcacheÚentryr©   Úann_textÚresult_linkrŠ   ÚhÚrsoupÚrtextrƒ   ÚnumrÞ   r¸  rÝ   s                   @r5   Úfetch_results_entryrÝ  ñ  s  ø€ ð
 ˆe�|Ø�S‰zÐØ u¸Ñ<€Eä ¨¬[Ó9�N€Dˆ(Ø€KØÐØ—‘˜s¨�Ó.ò 	ˆAÜ˜qŸz™z¨#°T˜zÓ:Ó;×AÑAÓCˆAÜ˜1˜V™9Ó%¬°SÓ)9Ò9ØÜó  [ð  $Zô  [õ  [Ø�f‘I�Ø%¨Ñ*¨nÀÑ.AÀZÐSTÂ_Ü"-¨a£.�KÙð	ñ ä3°F¸JÓGˆÙÜ�L‰LÐ}ð  Jð  ~Kð  Lô  MáØ ˜ˆˆf‰Ø ¨Ð,ˆˆiÑØˆˆc‰
Øˆä˜f k´;Ó?�L€Eˆ5Ø€}Øˆˆf‰Øˆˆc‰
Øˆä  Ó'€EÙØBGÇ+Á+Ã-×P±h°c¸3˜C¤¨SÓ!1Ñ1ÓPˆˆiÑÜ�‰Ð>¸uÀYÑ?OÐ>PÐPRÐS^ÐR_Ð_`ÐaÕbä˜ÓˆØ�Š?Ø ˆE�&ŠMà ! 2˜wˆE�)ÑØ€Eˆ#�JØ€Lùó Qs   Ä:Fc                 óÀ   — t        «       }|j                  «       }|j                  d|| f«       |j                  «        |j	                  «        |j	                  «        y )Nz@UPDATE trades SET sg_check_attempts = %s WHERE trade_number = %s©re   rV   rW   r]   r^   ©r�   rÉ  r_   rV   s       r5   Ú_set_sg_attemptsrá  %  sE   € ÜÓ €DØ�[‰[‹]€FØ
‡N�NÐUØ˜lÐ+ô-à‡K�K„M�6—<‘<”> 4§:¡:¥<r@   c                 ó2  — | j                  dg «      }| j                  dd«      }|sy|D �cg c]  }t        |«      rŒ|‘Œ }}|syt        |«      dkD  }g }	t        |d«      D �]ž  \  }
}t	        |j                  dd«      «      }t	        |j                  dd«      «      }t	        |j                  dd«      «      }t	        |j                  d	d«      «      }t	        |j                  d
d«      «      }t        |«      t
        kD  r|dt
         dz   }|r|	j                  d|
› d�«       |r|	j                  d|› �«       |r|	j                  d|› �«       |r|	j                  d|› �«       |r|s|	j                  dt	        |«      › �«       g }|r|j                  d|› �«       |r|j                  d|› �«       |r$|	j                  ddj                  |«      › d�«       |s�Œ~|
t        |«      k  s�ŒŽ|	j                  d«       �Œ¡ |	j                  d«       |r|r|	j                  dt	        |«      › �«       |r|	j                  d|› d�«       |r|	j                  d|› d�«       |r|	j                  dt	        |«      › �«       dj                  |	«      S c c}w )u  
    Ð¡Ð¾Ð±Ð¸Ñ€Ð°ÐµÑ‚ HTML-Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ðµ Ð´Ð»Ñ� Telegram.
    Ð›Ð¾Ñ‚Ñ‹ Ð¸Ð· EXCLUDED_CLASSIFIERS Ð¸ EXCLUDED_DESCRIPTION_KEYWORDS Ð¿Ñ€Ð¾Ð¿ÑƒÑ�ÐºÐ°ÑŽÑ‚Ñ�Ñ�.
    Ð•Ñ�Ð»Ð¸ Ð¿Ð¾Ñ�Ð»Ðµ Ñ„Ð¸Ð»ÑŒÑ‚Ñ€Ð°Ñ†Ð¸Ð¸ Ð»Ð¾Ñ‚Ð¾Ð² Ð½Ðµ Ð¾Ñ�Ñ‚Ð°Ð»Ð¾Ñ�ÑŒ â€” Ð²Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ None.
    rù   rú   rx   Nrˆ   rû   rü   rý   rþ   rÿ   rô   u   ðŸ“¦ <b>Ð›Ð¾Ñ‚ z</b>u(   ðŸ�· <b>ÐšÐ»Ð°Ñ�Ñ�Ð¸Ñ„Ð¸ÐºÐ°Ñ‚Ð¾Ñ€:</b> u   ðŸ“� <b>ÐžÐ¿Ð¸Ñ�Ð°Ð½Ð¸Ðµ:</b> u   ðŸ’° <b>Ð¦ÐµÐ½Ð°:</b> u   ðŸ“… <b>Ð—Ð°Ñ�Ð²ÐºÐ¸:</b> u   Ð¨Ð°Ð³: u   Ð—Ð°Ð´Ð°Ñ‚Ð¾Ðº: u   ðŸ“ˆ <b>u    â€” u   ðŸ”— <a href="u*   ">ÐžÐ±ÑŠÑ�Ð²Ð»ÐµÐ½Ð¸Ðµ Ð¾ Ñ‚Ð¾Ñ€Ð³Ð°Ñ…</a>u   ðŸ“‹ <a href="u'   ">ÐšÐ°Ñ€Ñ‚Ð¾Ñ‡ÐºÐ° Ð´Ð¾Ð»Ð¶Ð½Ð¸ÐºÐ°</a>u   ðŸ‘¤ <b>Ð”Ð¾Ð»Ð¶Ð½Ð¸Ðº:</b> Ú
)ro   rY  rs   r  r  ÚDESCRIPTION_MAX_LENr§   r  )r  Úmessage_urlr”   r•   rù   rú   r  ÚfilteredÚmultiÚlinesr  rû   rü   rý   rþ   rÿ   r  s                    r5   Úbuild_telegram_messageré  -  s  € ð �x‰x˜ Ó#€DØ�x‰x˜
 BÓ'€HáØà#Ö@˜¬?¸3Õ+?’Ð@€HÐ@ÙØä�‹M˜AÑ€EØ€Eä˜H aÓ(ó "‰ˆˆ3Ü# C§G¡G¨L¸"Ó$=Ó>ˆ
Ü# C§G¡G¨M¸2Ó$>Ó?ˆÜ# C§G¡G¨O¸RÓ$@ÓAˆÜ# C§G¡G¨N¸BÓ$?Ó@ˆÜ# C§G¡G¨I°rÓ$:Ó;ˆäˆ{ÓÔ1Ò1Ø%Ð&:Ô':Ð;¸eÑCˆKáØ�L‰L˜?¨1¨#¨TÐ2Ô3áØ�L‰LÐCÀJÀ<ÐPÔQáØ�L‰LÐ9¸+¸ÐGÔHáØ�L‰LÐ1°-°ÐAÔBá™EØ�L‰LÐ5´kÀ(Ó6KÐ5LÐMÔNàˆÙØ�L‰L˜8 L >Ð2Ô3ÙØ�L‰LÐ+¨G¨9Ð5Ô6ÙØ�L‰L˜8 G§L¡L°Ó$7Ð#8¸Ð=Ô>ã�Qœ˜X›Ô&Ø�L‰L˜ÖðE"ðH 
‡L�L�Ôá‘EØ�‰Ð1´+¸hÓ2GÐ1HÐIÔJáØ�‰�~ k ]Ð2\Ð]Ô^áØ�‰�~ j \Ð1XÐYÔZáØ�‰Ð3´KÀÓ4LÐ3MÐNÔOà�9‰9�UÓÐùòs As
   ¬J½Jc                 ó¬  — |xs t         }|st        j                  d«       ydt        › d�}|| dddœ}	 t	        j
                  ||d¬	«      }|j                  d
k(  rt        j                  d|› �«       yt        j                  d|j                  › d|j                  dd › �«       y# t        $ r"}t        j                  d|› �«       Y d}~yd}~ww xY w)uZ   ÐžÑ‚Ð¿Ñ€Ð°Ð²Ð»Ñ�ÐµÑ‚ Ð¾Ð´Ð½Ð¾ Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ðµ Ð² Telegram Ð² ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ð¹ Ñ‡Ð°Ñ‚.uO   Telegram: chat_id Ð½Ðµ Ð·Ð°Ð´Ð°Ð½, Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ðµ Ð½Ðµ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¾Nzhttps://api.telegram.org/botz/sendMessageÚHTMLT)Úchat_idru   Ú
parse_modeÚdisable_web_page_previewrm   )r–  r‘  rÈ   u@   âœ“ Telegram: Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ðµ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¾ Ð² Ñ‡Ð°Ñ‚ zTelegram API rÍ   i,  u+   ÐžÑˆÐ¸Ð±ÐºÐ° Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ Ð² Telegram: )ÚTELEGRAM_CHAT_IDrY   r\   ÚTELEGRAM_BOT_TOKENr’  ÚpostÚstatus_coderZ   r£   ru   r[   )Úmessagerì  Útarget_chat_idr3  ÚpayloadÚrespr>   s          r5   Úsend_telegramr÷  u  sÓ   € àÒ0Ô 0€NÙÜ�‰ÐiÔjØà(Ô);Ð(<¸LÐ
I€Cà$2Ø$+Ø$*Ø$(ñ	€GðIÜ�}‰}˜S w¸Ô;ˆØ×Ñ˜sÒ"Ü�L‰LÐ[Ð\jÐ[kÐlÕmä�M‰M˜M¨$×*:Ñ*:Ð);¸2¸d¿i¹iÈÈ¸oÐ=NÐOÕPøÜò IÜ�‰ÐCÀAÀ3ÐG×HÑHûðIús   µ?B( Á52B( Â(	CÂ1CÃCc                 óh  — d}t        | «      |k  rt        | |¬«       yg d}}| j                  d«      D ]@  }t        |«      t        |«      z   dz   |kD  r|r|j                  |«       |}Œ6|r|› d|› �n|}ŒB |r|j                  |«       |D ]$  }t        ||¬«       t	        j
                  d«       Œ& y)u[   Ð Ð°Ð·Ð±Ð¸Ð²Ð°ÐµÑ‚ Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ðµ Ð´Ð»Ð¸Ð½Ð½ÐµÐµ 4096 Ñ�Ð¸Ð¼Ð²Ð¾Ð»Ð¾Ð² Ð½Ð° Ñ‡Ð°Ñ�Ñ‚Ð¸.i   ©rì  Nrx   rã  rˆ   )rs   r÷  rL  r§   rÔ   rÕ   )ró  rì  ÚMAX_LENr  ÚcurrentÚlineÚparts          r5   Úsend_telegram_longrþ  Ž  sº   € à€Gä
ˆ7ƒ|�wÒÜ�g wÕ/Øà˜ˆ7€EØ—‘˜dÓ#ò @ˆÜˆw‹<œ#˜d›)Ñ# aÑ'¨'Ò1ÙØ—‘˜WÔ%Ø‰Gá.5˜˜	  D 6Ñ*¸4‰Gð@ñ Ø�‰�WÔàò ˆÜ�d GÕ,Ü�
‰
�1�ñr@   c           
      óÊ  — t        «       }|st        j                  d«       y |D �]¼  }t        | «      st        j                  d«        y |d   }|d   }t        |«      dkD  r|d   nd}t        |«      dkD  r|d   nd}t        |«      dkD  r|d   nd}t        j                  d	|› d
|› �«       	 t        | |«      }|�–t        ||«       t        j                  d|› �«       t        ||||«      }	|	rIt        r*t        j                  d|› �«       t        |	t        ¬«       nÀt        j                  d|› �«       n§t        j                  d|› �«       nŽ|dz   }
|
t        k\  r/t        |dg i«       t        j                  d|› d
t        › d�«       n/t        ||
«       t        j                  d|› d|
› dt        › d�«       t        | «      st        j                  d«        y �Œ¿ y # t        $ rs}t        |«      rt        j                  d|› d
|› �«       ‚ t        j                  d|› d
|› �«       t        | «      st        j                  d«       Y d }~ y Y d }~�Œ8d }~ww xY w)Nu6   Ð�ÐµÑ‚ Ð½ÐµÐ¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð½Ð½Ñ‹Ñ… Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ð¹uL   Ð”Ñ€Ð°Ð¹Ð²ÐµÑ€ ÑƒÐ¼ÐµÑ€ â€” Ð¿Ñ€ÐµÑ€Ñ‹Ð²Ð°ÐµÐ¼ Ð¿Ð°ÐºÐµÑ‚ Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ð¹r   rˆ   r   rx   r‰   rŒ   u&   ÐžÐ±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ° Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ� rÍ   u   âœ“ Ð‘Ð” Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð°: u?   Telegram: Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ° Ð² Ð¿ÐµÑ€Ð²ÑƒÑŽ Ð³Ñ€ÑƒÐ¿Ð¿Ñƒ Ð´Ð»Ñ� rù  u2   Telegram: Ð½Ðµ Ð·Ð°Ð´Ð°Ð½ TELEGRAM_CHAT_ID Ð´Ð»Ñ� uG   Telegram Ð¿Ñ€Ð¾Ð¿ÑƒÑ‰ÐµÐ½ (Ð¸Ñ�ÐºÐ»ÑŽÑ‡Ñ‘Ð½ Ð¸Ð»Ð¸ Ð½ÐµÑ‚ Ð»Ð¾Ñ‚Ð¾Ð²): rù   u   âœ— uv    Ð¿Ð¾Ð¿Ñ‹Ñ‚Ð¾Ðº Ð¸Ñ�Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð¾ â€” Ð¿Ð¾Ð¼ÐµÑ‡ÐµÐ½ ÐºÐ°Ðº Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð½Ð½Ñ‹Ð¹ Ñ� Ð¿ÑƒÑ�Ñ‚Ñ‹Ð¼Ð¸ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸u   âš  u4   : Ð¾ÑˆÐ¸Ð±ÐºÐ° Ñ�Ð¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ� (Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° r�   u3   ) â€” Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€ Ð² Ñ�Ð»ÐµÐ´ÑƒÑŽÑ‰ÐµÐ¼ Ñ†Ð¸ÐºÐ»ÐµuQ   Ð”Ñ€Ð°Ð¹Ð²ÐµÑ€ ÑƒÐ¼ÐµÑ€ Ð¿Ð¾Ñ�Ð»Ðµ Ð¾ÑˆÐ¸Ð±ÐºÐ¸ â€” Ð¿Ñ€ÐµÑ€Ñ‹Ð²Ð°ÐµÐ¼ Ð¿Ð°ÐºÐµÑ‚ub   ÐšÑ€Ð¸Ñ‚Ð¸Ñ‡ÐµÑ�ÐºÐ°Ñ� Ð¾ÑˆÐ¸Ð±ÐºÐ° Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð° Ð¿Ñ€Ð¸ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐµ Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ� u>   ÐšÑ€Ð¸Ñ‚Ð¸Ñ‡ÐµÑ�ÐºÐ°Ñ� Ð¾ÑˆÐ¸Ð±ÐºÐ° Ð¿Ñ€Ð¸ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐµ u9   Ð”Ñ€Ð°Ð¹Ð²ÐµÑ€ ÑƒÐ¼ÐµÑ€ â€” Ð¿Ñ€ÐµÑ€Ñ‹Ð²Ð°ÐµÐ¼ Ð¿Ð°ÐºÐµÑ‚)rò   rY   rZ   rÑ   r\   rs   r4  r  ré  rï  rþ  ÚMAX_PARSE_ATTEMPTSr£   Ú_increment_parse_attemptsr[   r?   )r¨   rª   Útrader�   r3  r”   r•   rÉ  r  Útg_msgÚnew_attemptsr>   s               r5   Úprocess_messagesr  ª  sƒ  € Ü#Ó%€FÙÜ�‰ÐMÔNØàó >ˆÜ˜vÔ&Ü�O‰OÐjÔkÙà˜Q‘xˆØ˜Q‘xˆÜ#& u£:°¢>�u˜Q’x°rˆÜ#& u£:°¢>�u˜Q’x°rˆ
Ü#& u£:°¢>�u˜Q’x°qˆä�‰Ð=¸l¸^È2ÈcÈUÐSÔTð1	Ü% f¨cÓ2ˆDàÐÜ" <°Ô6Ü—‘Ð<¸\¸NÐKÔLä/°°c¸;È
ÓS�ÙÝ'ÜŸ™Ð'fÐgsÐftÐ%uÔvÜ*¨6Ô;KÖLäŸ™Ð*\Ð]iÐ\jÐ(kÕlä—L‘LØaÐbnÐaoÐpõð
  (¨!™|�àÔ#5Ò5Ü& |°f¸b°\ÔBÜ—M‘MØ˜|˜n¨BÔ/AÐ.Bð Cjð kõô
 .¨l¸LÔIÜ—O‘OØ˜|˜nð -+Ø+7¨.¸Ô:LÐ9Mð NHðIôô ' vÔ.Ü—O‘OÐ$wÔxÙùñg>øôj ò 		Ü$ QÔ'Ü—‘ð  !Cð  DPð  CQð  QSð  TUð  SVð  Wô  XØä�M‰MÐZÐ[gÐZhÐhjÐklÐjmÐnÔoä" 6Ô*Ü—‘Ð [Ô\Ýõ +ûð		ús   Â0D0G&Ç&	I"Ç/A"IÉI"c                 óÀ   — t        «       }|j                  «       }|j                  d|| f«       |j                  «        |j	                  «        |j	                  «        y)uD   ÐžÐ±Ð½Ð¾Ð²Ð»Ñ�ÐµÑ‚ Ñ�Ñ‡Ñ‘Ñ‚Ñ‡Ð¸Ðº Ð½ÐµÑƒÐ´Ð°Ñ‡Ð½Ñ‹Ñ… Ð¿Ð¾Ð¿Ñ‹Ñ‚Ð¾Ðº.z=UPDATE trades SET parse_attempts = %s WHERE trade_number = %sNrß  rà  s       r5   r  r  ñ  sI   € äÓ €DØ�[‰[‹]€Fà
‡N�NØGØ	�<Ð ôð
 	‡K�K„MØ
‡L�L„NØ‡J�J…Lr@   c                  ó¼   — t        «       } | j                  «       }|j                  d«       |j                  «       }|j	                  «        | j	                  «        |S )Na  
        SELECT trade_number, last_message_url, debtor_name, debtor_url,
               lots_app_time, lots_classifier, lots_description,
               lots_initial_price, lots_auction_step, lots_deposit,
               lots_price_reduction, sg_check_attempts
        FROM trades
        WHERE lots_parsed = TRUE
          AND last_message_url IS NOT NULL
          AND lots_app_time IS NOT NULL AND lots_app_time <> ''
          AND (second_group_processed IS NULL OR second_group_processed = FALSE)
        ORDER BY trade_number
    rî   rð   s      r5   Úget_second_group_candidatesr    sJ   € ÜÓ €DØ�[‰[‹]€FØ
‡N�Nð ô 	ð �?‰?Ó€DØ
‡L�L„N�D—J‘J”LØ€Kr@   c                 óf  — | €i S t        | «      j                  «       }|si S t        j                  d|«      r¿t        j                  d|«      }i }t        dt        |«      d«      D ]Œ  }|dz   t        |«      k\  r |S 	 t        ||   «      }||dz      j                  «       }|j                  d«      r|d d j                  «       }t        j                  dd|«      j                  «       }|sŒˆ|||<   ŒŽ |S dt        j                  dd|«      j                  «       iS # t        t        f$ r Y ŒÉw xY w)	Nz\[\(\d+\)\s*-\s*z\[\((\d+)\)\s*-\s*rˆ   r   r  r‹  r	  rQ   )r:   rl   r    r×   rL  rÓ   rs   rw  r{   Ú	TypeErrorÚendswithr
  )rõ   ru   r  rê   r  rÎ  r  s          r5   Úparse_db_multi_valuer    s1  € Ø€}Øˆ	äˆu‹:×ÑÓ€DÙØˆ	ä	‡y�yÐ$ dÔ+Ü—‘Ð.°Ó5ˆØˆä�qœ#˜e›* aÓ(ò 	"ˆAØ�1‰uœ˜E›
Ò"Øð" ˆðÜ˜% ™(“m�ð ˜˜A™‘,×$Ñ$Ó&ˆCà�|‰|˜CÔ Ø˜#˜2�h—n‘nÓ&�ä—&‘&˜  cÓ*×0Ñ0Ó2ˆCâØ!��s’ð#	"ð& ˆàŒr�v‰v�f˜c 4Ó(×.Ñ.Ó0Ð1Ð1øô ¤	Ð*ò Ùðús   Á>DÄD0Ä/D0c           
      óp  ‡— t        | «      t        |«      t        |«      t        |«      t        |«      t        |«      dœ}t        «       }|j                  «       D ]!  }|j                  |j	                  «       «       Œ# |sg S g }	t        |«      D ]£  }
|d   j                  |
d«      |d   j                  |
d«      |d   j                  |
d«      |d   j                  |
d«      |d   j                  |
d«      |d   j                  |
d«      dœŠt        ˆfd	„‰D «       «      sŒ“|	j                  ‰«       Œ¥ |	S )
N)rû   rü   rý   rþ   rÿ   r   rû   rx   rü   rý   rþ   rÿ   r   c              3   ód   •K  — | ]'  }‰j                  |«      xs d j                  «       –— Œ) y­w)rx   N)ro   rl   )r2   r3   r  s     €r5   r6   z2reconstruct_lots_from_db_fields.<locals>.<genexpr>^  s'   øè ø€ Ò7¨a�—‘˜“
Ò ˜b×'Ñ'×)Ñ7ùs   ƒ-0)	r  ÚsetrF  ÚupdateÚkeysÚsortedro   r<   r§   )rû   rü   rý   rþ   rÿ   r   r@  ÚindicesrF  rù   rÎ  r  s              @r5   Úreconstruct_lots_from_db_fieldsr  ;  s7  ø€ ô 0°
Ó;Ü/°Ó<Ü/°Ó>Ü/°Ó=Ü/°Ó8Ü/°Ó@ñ€Fô ‹e€GØ—-‘-“/ò &ˆØ�‰�v—{‘{“}Õ%ð&ñ Øˆ	à€DÜ�g‹ò ˆà% lÑ3×7Ñ7¸¸RÓ@Ø% mÑ4×8Ñ8¸¸bÓAØ% oÑ6×:Ñ:¸3ÀÓCØ% nÑ5×9Ñ9¸#¸rÓBØ% iÑ0×4Ñ4°S¸"Ó=Ø%Ð&7Ñ8×<Ñ<¸SÀ"ÓEñ
ˆô Ó7°3Ô7Õ7Ø�K‰K˜Õðð €Kr@   c                 ó
  — t        «       }|j                  «       }	 |j                  d| f«       |j                  «        |j	                  «        |j	                  «        y # |j	                  «        |j	                  «        w xY w)Nzu
            UPDATE trades
            SET second_group_processed = TRUE
            WHERE trade_number = %s
        rß  )r�   r_   rV   s      r5   Úmark_second_group_processedr  d  se   € ÜÓ €DØ�[‰[‹]€Fð	Ø�‰ð ð ˆ_ô		ð
 	�‰Œà�‰ŒØ�
‰
�øð 	�‰ŒØ�
‰
�ús   œ#A  Á "Bc                 ó$
  — t         st        j                  d«       y t        «       }|st        j                  d«       y t        j                  dt        |«      › d�«       i }t        «       }|D �]î  }|d   }||v rŒ|d   xs d}|d   xs d}|d	   xs d}|d
   xs d}	|d   |d   |d   }}}
|d   |d   |d   }}}|d   xs d}|st        |«       |j                  |«       Œxt        |	«      \  }}|st        |«       |j                  |«       Œ¥t        j                  «       }||t        t        ¬«      z
  k  rŒÐ||kD  r7t        j                  d|› d�«       t        |«       |j                  |«       �Œt        |
|||||«      }|	|dœ}t        | «      st        j                  d«        y t!        |«      }|d   r	 t#        | |||«      }|d   ry|dz   }|t,        k\  r:t        j                  d|› d|› d�«       t        |«       |j                  |«       �Œ¯t/        ||«       t        j                  d|› d|› d t,        › d!�«       �Œà|d"   rt1        |«      }n×g d}}t3        |d«      D ]o  \  }}t5        ||t        |«      «      }|d#   j7                  |d$«      }t        j                  d%|› d&|› d'|› d(�«       |d)k(  rŒV|d$k(  rd} n|j9                  |«       Œq |rS|dz   }|t,        k\  r7t        j                  d|› d*�«       t        |«       |j                  |«       �Œºt/        ||«       �ŒÈ|s7t        j                  d|› d+�«       t        |«       |j                  |«       �Œt        |«      t        |«      k  r5t        j                  d|› d,t        |«      › d-t        |«      › �«       ||d.<   t;        ||||«      }|st        |«       |j                  |«       �Œ{	 t        j                  d/|› �«       t=        |t         ¬0«       t        |«       |j                  |«       t        j                  d1|› d2�«       t?        j@                  d«       �Œñ y # t$        $ rr}t'        |«      rt        j(                  d|› �«       ‚ t        j                  d|› d|› �«       t        | «      sY d }~ y t+        |«      rY d }~ y ddi dœ}Y d }~�Œd }~ww xY w# t$        $ r&}t        j(                  d3|› d4|› �«       Y d }~�Œ›d }~ww xY w)5Nui   TELEGRAM_SECOND_CHAT_ID Ð½Ðµ Ð·Ð°Ð´Ð°Ð½ â€” Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ° Ð²Ñ‚Ð¾Ñ€Ð¾Ð¹ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ Ð¿Ñ€Ð¾Ð¿ÑƒÑ‰ÐµÐ½Ð°uH   Ð�ÐµÑ‚ Ð»Ð¾Ñ‚Ð¾Ð² Ð´Ð»Ñ� Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ Ð²Ð¾ Ð²Ñ‚Ð¾Ñ€ÑƒÑŽ Ð³Ñ€ÑƒÐ¿Ð¿Ñƒu;   ÐŸÑ€Ð¾Ð²ÐµÑ€ÐºÐ° Ð²Ñ‚Ð¾Ñ€Ð¾Ð¹ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹: Ð½Ð°Ð¹Ð´ÐµÐ½Ð¾ u    ÐºÐ°Ð½Ð´Ð¸Ð´Ð°Ñ‚Ð¾Ð²r   rˆ   rx   r   r‰   rŒ   r   rŽ   r   r‡   é	   é
   é   )Údaysu   Ð›Ð¾Ñ‚ u\   : Ð¿Ñ€Ð¸Ñ‘Ð¼ Ð·Ð°Ñ�Ð²Ð¾Ðº Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ð»Ñ�Ñ� â€” Ð¿Ð¾Ð¼ÐµÑ‡Ð°ÐµÐ¼ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð½Ð½Ñ‹Ð¼r0  uY   Ð”Ñ€Ð°Ð¹Ð²ÐµÑ€ ÑƒÐ¼ÐµÑ€ â€” Ð¿Ñ€ÐµÑ€Ñ‹Ð²Ð°ÐµÐ¼ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÑƒ Ð²Ñ‚Ð¾Ñ€Ð¾Ð¹ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹r¼  uh   ÐšÑ€Ð¸Ñ‚Ð¸Ñ‡ÐµÑ�ÐºÐ°Ñ� Ð¾ÑˆÐ¸Ð±ÐºÐ° Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€Ð° Ð¿Ñ€Ð¸ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐµ Ð²Ñ‚Ð¾Ñ€Ð¾Ð¹ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹: uP   Ð�Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¸Ñ‚ÑŒ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ‹ Ñ‚Ð¾Ñ€Ð³Ð¾Ð² Ð´Ð»Ñ� rÍ   TFr»  u«    Ð¿Ñ€Ð¾Ð²ÐµÑ€Ð¾Ðº Ð±ÐµÐ· Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ð° â€” Ð¿Ð¾Ð¼ÐµÑ‡Ð°ÐµÐ¼ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð½Ð½Ñ‹Ð¼ Ð‘Ð•Ð— Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ (Ð»Ð¸Ð¼Ð¸Ñ‚, Ñ‡Ñ‚Ð¾Ð±Ñ‹ Ð¾Ñ‡ÐµÑ€ÐµÐ´ÑŒ Ð½Ðµ Ñ€Ð¾Ñ�Ð»Ð°)u5   : Ñ�Ñ‚Ð°Ñ‚ÑƒÑ� Ð½Ðµ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐµÐ½ (Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° r�   u   ) â€” Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€r½  ry  r  z  u   : Ð»Ð¾Ñ‚ â„–u    â†’ 'rP   r„  ua   : Ð»Ð¸Ð¼Ð¸Ñ‚ Ð¿Ð¾Ð¿Ñ‹Ñ‚Ð¾Ðº â€” Ð¿Ð¾Ð¼ÐµÑ‡Ð°ÐµÐ¼ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚Ð°Ð½Ð½Ñ‹Ð¼ Ð‘Ð•Ð— Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸u]   : Ð²Ñ�Ðµ Ð»Ð¾Ñ‚Ñ‹ Ð¿Ñ€Ð¾Ð´Ð°Ð½Ñ‹ â€” Ð²Ð¾ Ð²Ñ‚Ð¾Ñ€ÑƒÑŽ Ð³Ñ€ÑƒÐ¿Ð¿Ñƒ Ð½Ðµ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»Ñ�ÐµÐ¼u@   : Ð¿Ñ€Ð¾Ð´Ð°Ð½Ð° Ñ‡Ð°Ñ�Ñ‚ÑŒ Ð»Ð¾Ñ‚Ð¾Ð² â€” Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»Ñ�ÐµÐ¼ u    Ð¸Ð· rù   uA   Telegram: Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ° Ð²Ð¾ Ð²Ñ‚Ð¾Ñ€ÑƒÑŽ Ð³Ñ€ÑƒÐ¿Ð¿Ñƒ Ð´Ð»Ñ� rù  u   âœ“ Ð›Ð¾Ñ‚ u2    Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½ Ð²Ð¾ Ð²Ñ‚Ð¾Ñ€ÑƒÑŽ Ð³Ñ€ÑƒÐ¿Ð¿Ñƒu'   ÐžÑˆÐ¸Ð±ÐºÐ° Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¸ Ð»Ð¾Ñ‚Ð° u!    Ð²Ð¾ Ð²Ñ‚Ð¾Ñ€ÑƒÑŽ Ð³Ñ€ÑƒÐ¿Ð¿Ñƒ: )!ÚTELEGRAM_SECOND_CHAT_IDrY   r\   r  rZ   rs   r  r  Úaddra  r   Únowr   ÚSECOND_GROUP_DAYSr  rÑ   rÂ  rÝ  r[   r?   r£   r)  ÚSG_MAX_CHECK_FAILSrá  rœ  r  rÐ  ro   r§   ré  rþ  rÔ   rÕ   ) r¨   rª   rÕ  Úhandledr  r�   r3  r”   r•   rú   rû   rü   rý   rþ   rÿ   r   rÉ  r_  r`  r  rù   r  rÖ  r>   r  Úunsold_lotsr  r  r  rÜ  r¸  r  s                                    r5   Úprocess_second_groupr#  t  s’  € Ý"Ü�‰ð  Dô  	EØÜ(Ó*€FÙÜ�‰Ð_Ô`ØÜ‡L�LÐNÌsÐSYË{ÈmÐ[pÐqÔrØ€EÜ‹e€Gàó ixˆØ˜Q‘xˆØ˜7Ñ"ØØ˜Q‘x’~ 2ˆØ˜Q‘x’~ 2ˆØ˜Q‘x’~ 2ˆ
Ø˜Q‘x’~ 2ˆØ16°q±¸5À¹8ÀUÈ1ÁX �Kˆ
Ø16°q±¸5À¹8ÀUÈ2ÁY˜�gˆØ˜R‘y’~ AˆáÜ'¨Ô5°w·{±{À<Ô7PÐRZÜ0°Ó:Ñˆ�&ÙÜ'¨Ô5°w·{±{À<Ô7PÐRZÜ�l‰l‹nˆØ�œ)Ô):Ô;Ñ;Ò;ØØ�Š<Ü�L‰L˜7 < .ð  1Mð  Nô  OÜ'¨Ô5°w·{±{À<Ô7PÑRZä.¨z¸;ÈØ/;¸WÀoóWˆà$¨dÑ3ˆä˜vÔ&Ü�O‰OÐwÔxÙô (¨Ó,ˆà�Š=ðHÜ+¨F°C¸ÀUÓK�ð �Š=Ø# a™<ˆLØÔ1Ò1Ü—‘Ø˜l˜^¨2¨l¨^ð <Pð Qôô ,¨LÔ9¸7¿;¹;À|Ô;TÑV^Ü˜\¨<Ô8Ü�O‰OØ˜,˜Ð'\Ð]iÐ\jÐjkÔl~Ðkð  @Rð  Sôñ ð �ÒÜ˜t›*‰Kà#% u˜ˆKÜ# D¨!Ó,ò 	(‘��3Ü(¨°q¼#¸d»)ÓD�Ø˜IÑ&×*Ñ*¨3°	Ó:�Ü—‘˜r , ¨|¸C¸5ÀÀrÀdÈ!ÐLÔMØ˜’<ØØ˜’?Ø"�GÙØ×"Ñ" 3Õ'ð	(ñ Ø'¨!™|�ØÔ#5Ò5Ü—O‘O g¨l¨^ð  <]ð  %^ô  _Ü/°Ô=¸w¿{¹{È<Ô?XÑZbÜ  ¨|Ô<ÙáÜ�L‰L˜7 < .ð  1Nð  Oô  PÜ'¨Ô5°w·{±{À<Ô7PÑRZäˆ{Óœc $›iÒ'Ü�L‰L˜7 < .Ð0pÔqtð  vAó  rBð  qCð  CIô  JMð  NRó  JSð  ITð  Uô  VØ&ˆD�‰Lä'¨¨c°;À
ÓKˆÙÜ'¨Ô5°w·{±{À<Ô7PÑRZð	xÜ�L‰LÐ\Ð]iÐ\jÐkÔlÜ˜vÔ/FÕGÜ'¨Ô5°w·{±{À<Ô7PÜ�L‰L˜; | nÐ4fÐgÔhÜ�J‰J�qŽMñOixøôL ò 	HÜ(¨Ô+Ü—M‘Mð  %Mð  NOð  MPð  #Qô  RØÜ—‘Ð"rÐsð  sAð  ACð  DEð  CFð  !Gô  HÜ& vÔ.ÝÜ& qÔ)ÝØ!%°%ÀBÑG–ûð	HûôD ò 	xÜ�M‰MÐCÀLÀ>ÐQrÐstÐruÐv×wÒwûð	xús>   ÇQ"Ï+A3S Ñ"	SÑ+A
SÒ;SÓSÓSÓ 	TÓ)T
Ô
Tc           
      ó|  ‡— t        j                  «       }|j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d	«       |j                  d
«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       t        d| dz   «      D ]D  }	 t        j                  |t
        ¬«      }	 |j                  d«       |j                  d«       |c S  y# t        $ r Y Œw xY w# t        $ r¦}t        |«      j                  «       Št        ˆfd„dD «       «      r[t        j                  d|› d| › d|› �«       || k  r8d|z  }t        j                  d|› d�«       t        j                   |«       Y d}~Œèt        j"                  d|› �«       ‚ d}~ww xY w)uQ   
    Ð¡Ð¾Ð·Ð´Ð°Ñ‘Ñ‚ ChromeDriver Ñ� Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ñ‹Ð¼Ð¸ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ°Ð¼Ð¸.
    z--no-sandboxz--disable-dev-shm-usagez--window-size=1920,1080z---disable-blink-features=AutomationControlledz--disable-gpuz--disable-extensionsz--disable-background-networkingz%--disable-background-timer-throttlingz(--disable-backgrounding-occluded-windowsz --disable-renderer-backgroundingz--disable-features=TranslateUIz!--disable-ipc-flooding-protectionz--no-first-runz--no-default-browser-checkz--metrics-recording-onlyz--disable-hang-monitorrˆ   )ÚoptionsÚversion_mainé<   c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr/   r0   r&  s     €r5   r6   z create_driver.<locals>.<genexpr>  s   øè ø€ ò  �2˜”9ñ ùr7   )r(   r)   ÚurLErrorr+   r,   r  r!  u   create_driver: Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° r�   u"    â€” Ñ�ÐµÑ‚ÐµÐ²Ð°Ñ� Ð¾ÑˆÐ¸Ð±ÐºÐ°: r  rÏ   rÐ   NuB   create_driver: Ð½Ðµ ÑƒÐ´Ð°Ð»Ð¾Ñ�ÑŒ Ñ�Ð¾Ð·Ð´Ð°Ñ‚ÑŒ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€: )ÚucÚChromeOptionsÚadd_argumentrÓ   ÚChromeÚCHROME_VERSIONÚset_page_load_timeoutÚset_script_timeoutr[   r:   r;   r<   rY   r\   rZ   rÔ   rÕ   r£   )rÚ   r%  rÛ   r¨   r>   rä   r4   s         @r5   Úcreate_driverr1  ï  s  ø€ ô ×ÑÓ €Gà×Ñ˜Ô(Ø×ÑÐ2Ô3Ø×ÑÐ2Ô3Ø×ÑÐHÔIØ×Ñ˜Ô)à×ÑÐ/Ô0Ø×ÑÐ:Ô;Ø×ÑÐ@ÔAØ×ÑÐCÔDØ×ÑÐ;Ô<Ø×ÑÐ9Ô:Ø×ÑÐ<Ô=Ø×ÑÐ)Ô*Ø×ÑÐ5Ô6Ø×ÑÐ3Ô4Ø×ÑÐ1Ô2ä˜˜G a™KÓ(ò ˆð	Ü—Y‘Y w¼^ÔLˆFðØ×,Ñ,¨RÔ0Ø×)Ñ)¨"Ô-ð ŠMñøô ò Ùðûô
 ò 	Ü�a“&—,‘,“.ˆCÜó ð (ô ô ô —‘Ø4°W°I¸Q¸w¸ið H4Ø45°3ð8ôð
 ˜WÒ$Ø ™<�DÜ—L‘LÐ#;¸D¸6ÀÐ!LÔMÜ—J‘J˜tÔ$Üä�M‰MÐ^Ð_`Ð^aÐbÔcØûð%	úsC   Ä9FÅ"E=Å7FÅ=	F	ÆFÆF	Æ	FÆ	H;ÆBH6ÈH6È6H;c                 ón   — | €y	 | j                  d«      }|dvry| j                  }y# t        $ r Y yw xY w)uh   ÐŸÑ€Ð¾Ð²ÐµÑ€Ñ�ÐµÑ‚, Ð¶Ð¸Ð² Ð»Ð¸ ChromeDriver, Ð¸ Ð½Ðµ Ð·Ð°Ð²Ð¸Ñ� Ð»Ð¸ Ñ€ÐµÐ½Ð´ÐµÑ€ÐµÑ€ Ñ�Ñ‚Ñ€Ð°Ð½Ð¸Ñ†Ñ‹.Fr½   )Nr¾   ÚinteractiveT)r¿   Útitler[   )r¨   rê   Ú_s      r5   rÑ   rÑ   (  sJ   € à€~ØðØ×&Ñ&Ð'CÓDˆØÐ:Ñ:ØØ�L‰LˆØøÜò Ùðús   …( ›( ¨	4³4c                 ó”  — | �	 | j                  «        	 t        j                  g d¢dd¬«       t        j                  g d¢dd¬«       	 dD ]7  }t	        j                  |«      D ]  }t        j                  dd	|gdd¬«       Œ Œ9 	 t        j                  d
«       y# t        $ r Y Œ”w xY w# t        $ r Y Œnw xY w# t        $ r Y Œ?w xY w)un   
    Ð‘ÐµÐ·Ð¾Ð¿Ð°Ñ�Ð½Ð¾ ÑƒÐ±Ð¸Ð²Ð°ÐµÑ‚ Ð´Ñ€Ð°Ð¹Ð²ÐµÑ€ Ð¸ Ð’Ð¡Ð• Ð´Ð¾Ñ‡ÐµÑ€Ð½Ð¸Ðµ Ð¿Ñ€Ð¾Ñ†ÐµÑ�Ñ�Ñ‹ Chrome.
    N)Úpkillú-9ú-fÚchromeTr   )Úcapture_outputr‘  )r7  r8  r9  Úchromedriver)z/tmp/rust_mozprofile*z/tmp/.com.google.Chrome*z/tmp/chrome_crashpad*Úrmz-rfr   )Úquitr[   Ú
subprocessÚrunÚglobrÔ   rÕ   )r¨   r\  Úpaths      r5   Úkill_driverrC  7  sÙ   € ð Ðð	Ø�K‰KŒMð
Ü�‰Ú+Ø¨õ	
ô 	�‰Ú1Ø¨õ	
ðð
ò 		ˆGô
 Ÿ	™	 'Ó*ò �Ü—‘Ø˜5 $Ð'Ø#'°öññ		ô 	‡J�Jˆq…Møô; ò 	Ùð	ûô ò Ùðûô ò Ùðús4   „B •4B, Á
<B; Â	B)Â(B)Â,	B8Â7B8Â;	CÃCc                 óž   — |st        | «      r| S t        j                  d«       t        | «       t	        j
                  d«       t        «       S )Nuf   Ð”Ñ€Ð°Ð¹Ð²ÐµÑ€ Ð¼Ñ‘Ñ€Ñ‚Ð² Ð¸Ð»Ð¸ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚Ñ�Ñ� Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑ�Ðº â€” Ð¿ÐµÑ€ÐµÑ�Ð¾Ð·Ð´Ð°Ñ‘Ð¼â€¦r‰   )rÑ   rY   r\   rC  rÔ   rÕ   r1  )r¨   Úforces     r5   Úensure_driverrF  ^  s9   € Ù”_ VÔ,Øˆä‡O�OÐ|Ô}Ü�ÔÜ‡J�Jˆq„MÜ‹?Ðr@   Ú__main__u@   Ð—Ð°Ð¿ÑƒÑ�Ðº Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½Ñ‘Ð½Ð½Ð¾Ð³Ð¾ Ð¿Ð°Ñ€Ñ�ÐµÑ€Ð° Fedresursé   )i€  i8  )ÚvisibleÚsizerˆ   )rE  uL   â”€â”€â”€ Ð¨Ð°Ð³ 1: Ð¡Ð±Ð¾Ñ€ Ñ�Ð¿Ð¸Ñ�ÐºÐ° Ñ‚Ð¾Ñ€Ð³Ð¾Ð² (TradeList) â”€â”€â”€u"   Ð�ÐµÑ‚ Ð´Ð°Ð½Ð½Ñ‹Ñ… Ð¸Ð· TradeListu   ÐžÑˆÐ¸Ð±ÐºÐ° Ð¨Ð°Ð³Ð° 1: uJ   â”€â”€â”€ Ð¨Ð°Ð³ 2: ÐŸÐ°Ñ€Ñ�Ð¸Ð½Ð³ Ñ�Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ð¹ (Ð»Ð¾Ñ‚Ñ‹) â”€â”€â”€u   ÐžÑˆÐ¸Ð±ÐºÐ° Ð¨Ð°Ð³Ð° 2: uZ   â”€â”€â”€ Ð¨Ð°Ð³ 3: ÐŸÑ€Ð¾Ð²ÐµÑ€ÐºÐ° Ð»Ð¾Ñ‚Ð¾Ð² Ð´Ð»Ñ� Ð²Ñ‚Ð¾Ñ€Ð¾Ð¹ Ð³Ñ€ÑƒÐ¿Ð¿Ñ‹ â”€â”€â”€u   ÐžÑˆÐ¸Ð±ÐºÐ° Ð¨Ð°Ð³Ð° 3: u   Ð¦Ð¸ÐºÐ» Ð·Ð°Ð²ÐµÑ€ÑˆÑ‘Ð½ Ð·Ð° z.1fu    Ñ�ÐµÐº. ÐžÐ¶Ð¸Ð´Ð°Ð½Ð¸Ðµ rÐ   u=   ÐžÑ�Ñ‚Ð°Ð½Ð¾Ð²ÐºÐ° Ñ�ÐºÑ€Ð¸Ð¿Ñ‚Ð° Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¼.uC   Ð�ÐµÐ¾Ð¶Ð¸Ð´Ð°Ð½Ð½Ð°Ñ� Ð¾ÑˆÐ¸Ð±ÐºÐ° Ð¾Ñ�Ð½Ð¾Ð²Ð½Ð¾Ð³Ð¾ Ñ†Ð¸ÐºÐ»Ð°: u,   ÐŸÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑ�Ðº Ñ‡ÐµÑ€ÐµÐ· 30 Ñ�ÐµÐºâ€¦)r   )r·  )r‰   )rm   r   r/   )F)‡Ú__doc__Úundetected_chromedriverr*  Úpyvirtualdisplayr   Úbs4r   r?  rA  rY   rÔ   Úosr    Úhtmlr  r’  Úmysql.connectorrR   r   r   Úselenium.webdriver.common.byr   Úselenium.webdriver.support.uir   Úselenium.webdriver.supportr	   rœ   Úselenium.common.exceptionsr
   r   r   r   ÚbasicConfigÚINFOÚ
OUTPUT_DIRÚmakedirsrU   r¦   rš   rð  rï  r  r.  ÚCYCLE_DELAYÚSECOND_SCAN_INTERVALr   r  rä  r   rP  rU  r=   r?   rc   re   rv   r~   r±   r¸   rå   rì   rò   r÷   r  r  r  r  r  r)  r4  rB  r1  r2  rS  rW  rY  ra  rc  rf  rt  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  r  r  r  r#  r1  rÑ   rC  rF  Ú__name__rZ   Údisplayr¨   ÚRECREATE_EVERYÚcycle_countÚlast_second_scanr¬  Úcycle_startrE  rª   r\   r[   r>   r£   ÚelapsedrÕ   ÚKeyboardInterruptÚ	exceptionÚstopr0   r@   r5   ú<module>rf     s   ðñó  %Ý $Ý Û Û Û Û Û 	Û 	Û Û Û ß (Ý +Ý 7Ý @÷ó ð €× Ñ Ø
�,‰,Ø6õð
 $€
Ø €‡�ˆJ Õ &ð ØØ%Øñ	€	ð 4€Ø�:˜_Ð-€ð FÐ Ø%Ð Ø*Ð à€ð €ð Ð ð Ð ð Ð ð Ð àÐ òÐ ð Øð!Ð ðÐ òFò66Gòr0ò)òò"KòZó$V"òrKkòbó"	ò(òXòò1ò.ò,-óMò`9òxò6ò6	ò	òtò
"òJ5ò
ò$òLò2ð8 C€ðHà1Ø3Ø7ñ€ð ˆB�J‰Jðà‡D�Dó€	ò2òò&òòò6.ò,Að: z€Øm€óò,ò(ò2òh0òEóPIó2ò8DòNò$ò(!2òH&òRò uxóv6òrò$óNð ˆzÓÙ„IØ€G‡L�LÐSÔTà€GØ€Fà€NØ€KØÐð`ØðTØ�?Ù%¨a°lÔC�GØ—M‘M”Oà�>©¸Ô)@Ù*›_�Fà˜qÑ �Ø'˜dŸi™i›k�à$ ~Ñ5¸Ñ:�Ù& v°UÔ;�ð3Ø �G—L‘LÐ!oÔpÙ)¨&Ó1�FáÙ" 6¨6Õ2à'˜Ÿ™Ð(LÔMñ +¨6Ó2�Fð3Ø �G—L‘LÐ!mÔnÙ$ VÔ,ñ +¨6Ó2�Fð �4—9‘9“;Ð!1Ñ1Ð5IÒIð
7Ø$˜Ÿ™ð  &Bô  CÙ!.¨vÓ!6˜Ù,¨VÔ4ð ,5¨4¯9©9«;Ð(á*¨6Ó2�Fð $˜$Ÿ)™)›+¨Ñ3�Ø�—‘Ø5°g¸c°]ð C(Ø(3 }°Jð@ôð �—
’
˜;Ô'ñA ð øðJ !ò ?Ø!�G—M’MÐ$=¸a¸SÐ"AÔBÙ*¨6¸Ô>•Fûð?ûð !ò ?Ø!�G—M’MÐ$=¸a¸SÐ"AÔBÙ*¨6¸Ô>•Fûð?ûð %ò CØ%˜ŸšÐ(AÀ!ÀÐ&EÔFÙ!.¨v¸TÔ!B�ûðCûð
 ,5¨4¯9©9«;Ñ(ûð %ò Ø�—‘Ð\Ô]Ùàò Ø!�×!Ò!Ð$gÐhiÐgjÐ"kÔlàÐ%Ù Ô'Ø�àÐ&ðØŸš�øØ$ò Ùðúà�à�—‘Ð NÔOØ�—
’
˜2—’ûðúð ð( ÐÙ˜ÔàÐðØ—’•øØò Ùðúð øð ÐÙ˜ÔàÐðØ—’•øØò Ùðúð ús(  ÇQ? ÇAN? È8L ÉN? ÉM É4N? Ê"M7 Ê6AN? ÌQ? ÌMÌ L=Ì8N? Ì=MÍN? ÍM4Í
 M/Í*N? Í/M4Í4N? Í7N&Í< N!ÎN) Î!N&Î&N) Î)N<Î<N? Î?QÏQ? ÏQÏ$QÐPÐQÐPÐQÐPÐ*QÑQ? ÑQÑQ? Ñ!Q3 Ñ3Q;Ñ:Q;Ñ?R+ÒRÒR+ÒR'Ò$R+Ò&R'Ò'R+