Ë
    ¸¬uj$1  ã                   ó¾  — d Z ddlZddlZddlZddlZddlZddlZddlZ	ddl
Z
ddlZ ej                  d«       	 ddlmZ ddlZddlmZ ej&                  j(                  j+                  e«       dZdZdZd	Zd
ZdZedz   ZdZdZddddœZdZ  e!ejD                  «      D ]k  \  Z#Z$e$jK                  d«      r	  e&e$jO                  dd«      d   «      Z Œ4e$dk(  sŒ:e#dz    e)ejD                  «      k  sŒS	  e&ejD                  e#dz      «      Z Œm e dk\  re ndZ*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1d„ Z2e3dk(  r e2«        yy# e$ r dZY �Œw xY w# e($ r Y Œ²w xY w# e($ r Y Œ½w xY w) u�  
å¹³é¡¶å±±å¸‚ç”Ÿæ€�çŽ¯å¢ƒå±€ - çŽ¯è¯„å…¬ç¤º (sthjj.pds.gov.cn/channels/11330.html)
å·¨åŒ äº‘ CMS (user.pds.gov.cn API)
åˆ—è¡¨: POST https://user.pds.gov.cn/api/Outer/T?parms=opt/dynamic/
  body JSON: {"publishmentsystemid":10370,"channelid":11330,"contentid":0,"ajaxdivid":"ajaxElement_1_1","template":"<ä»Žé¡µé�¢æ��å�–çš„å›ºå®šåŠ å¯†ä¸²>","pageNum":N}
  template ä»Žåˆ—è¡¨é¡µ HTML æ­£åˆ™æ��å�– (template" : "...."), æ¯�é¡µ10æ�¡
  å“�åº”HTML: <a href="/contents/11330/{id}.html">æ ‡é¢˜</a><span>æ—¥æœŸ</span>
è¯¦æƒ…: /contents/11330/{id}.html, meta ArticleTitle + div.content æ­£æ–‡ (div.article å†…)
æ³¨æ„�: SSLéœ€verify=False; Content-Type text/plain
é    NÚignore)ÚBeautifulSoup)ÚInsecureRequestWarningzhttps://sthjj.pds.gov.cnz6https://user.pds.gov.cn/api/Outer/T?parms=opt/dynamic/u(   å¹³é¡¶å±±å¸‚ç”Ÿæ€�çŽ¯å¢ƒå±€-çŽ¯è¯„å…¬ç¤ºu   æ²³å�—zcrawl_pds_hjgs.pyz/mnt/data/search.dbz/channels/11330.htmliB,  i‚(  zkMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36z?text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8zzh-CN,zh;q=0.9)ú
User-AgentÚAcceptzAccept-Languageé   z--pages=ú=z--pagesc                 óv  — | syt        j                  | «      } | j                  dd«      j                  dd«      j                  dd«      j                  dd«      } | j                  dd«      j                  dd«      } t        j                  d	d| «      } t        j                  d
d| «      } | j                  «       S )NÚ u   â€‹u   â€Œu   â€�u   ï»¿õ   Â ú u   ã€€u   ^[\sÂ·\u00b7ã€€]+ú\s+)Úhtml_libÚunescapeÚreplaceÚreÚsubÚstrip)Úts    ú#/root/gov_crawler/crawl_pds_hjgs.pyÚclean_titler   C   sŸ   € ÙØÜ×Ñ˜!Ó€AØ	�	‰	�(˜BÓ×'Ñ'¨°"Ó5×=Ñ=¸hÈÓK×SÑSÐT\Ð^`Óa€AØ	�	‰	�&˜#Ó×&Ñ& x°Ó5€AÜ
�‰Ð# R¨Ó+€AÜ
�‰ˆv�s˜AÓ€AØ�7‰7‹9Ðó    c                 ó®   — | j                  t        t        dd¬«      }d|_        t	        j
                  d|j                  «      }|st        d«      ‚|d   S )z2Extract fixed template string from list page HTML.é   F©ÚheadersÚtimeoutÚverifyúutf-8z0template["\']?\s*[:=]\s*["\']([^"\']{100,})["\']ztemplate not found in list pager   )ÚgetÚ	LIST_PAGEÚHEADERSÚencodingr   ÚfindallÚtextÚRuntimeError)ÚsessionÚrÚtplss      r   Úget_templater*   N   sL   € à�‰”I¤w¸À5ˆÓI€AØ€A„JÜ�:‰:ÐIÈ1Ï6É6ÓR€DÙÜÐ<Ó=Ð=Ø�‰7€Nr   c           	      óÌ   — t        j                  t        t        dd||dœd¬«      }| j	                  t
        |j                  d«      t        d   dd	œd
d¬«      }|j                  S )Nr   ÚajaxElement_1_1)ÚpublishmentsystemidÚ	channelidÚ	contentidÚ	ajaxdividÚtemplateÚpageNumF)Úensure_asciir   r   ztext/plain;charset=UTF-8)r   zContent-Typer   )Údatar   r   r   )	ÚjsonÚdumpsÚ
PUB_SYS_IDÚ
CHANNEL_IDÚpostÚAPI_URLÚencoder"   r%   )r'   r1   ÚpageÚbodyr(   s        r   Ú
fetch_listr>   X   ss   € Ü�:‰:Ü)ÜØØ&ØØñð ô€Dð 	�‰ÜØ�[‰[˜Ó!ä! ,Ñ/Ø6ñ
ð Øð 	ó 		€Að �6‰6€Mr   c                 óh  — g }t        j                  d| t         j                  «      D ]‡  }|j                  d«      }t	        |j                  d«      «      }|j                  d«      j                  «       }|sŒPt        j                  j                  t        |«      }|j                  |||f«       Œ‰ |S )NzHhref="(/contents/\d+/\d+\.html)"[^>]*>([^<]+)</a>\s*<span>([^<]+)</span>r   é   é   )r   ÚfinditerÚSÚgroupr   r   ÚurllibÚparseÚurljoinÚBASE_URLÚappend)Ú	html_textÚitemsÚmÚhrefÚtitleÚdateÚabs_urls          r   Ú
parse_listrQ   n   s˜   € Ø€EÜ�[‰[ØSØ”2—4‘4óò 
-ˆð �w‰w�q‹zˆÜ˜AŸG™G A›JÓ'ˆØ�w‰w�q‹z×ÑÓ!ˆÙØÜ—,‘,×&Ñ&¤x°Ó6ˆØ�‰�g˜u dÐ+Õ,ð
-ð €Lr   c                 óþ  — d}d}d}t         �r³t        | d«      }|j                  ddt        j                  dt        j                  «      i¬«      }|r|j                  d«      rt        |d   «      }|j                  ddt        j                  dt        j                  «      i¬«      }|rM|j                  d«      r<|d   j                  «       }t        j                  d	|«      }	|	r|	j                  d
«      }|j                  dt        j                  dt        j                  «      ¬«      }
|
rN|
j                  dt        j                  dt        j                  «      ¬«      }|rt        |«      }nt        |
«      }|sB|j                  dt        j                  dt        j                  «      ¬«      }|rt        |«      }|sAt        j                  d| t        j                  «      }|rt        |j                  d«      «      }|sIt        j                  d| t        j                  t        j                  z  «      }|r|j                  d
«      }|s)t        j                  d	| «      }|r|j                  d
«      }|||fS )Nr   úhtml.parserÚmetaÚnameÚArticleTitle)ÚattrsÚcontentÚPubDatez(\d{4})-(\d{2})-(\d{2})r   ÚdivÚarticle)Úclass_z5<meta\s+name="\s*ArticleTitle\s*"\s+content="([^"]*)"r   z<<div[^>]*class="[^"]*content[^"]*"[^>]*>(.*?)</div>\s*</div>)r   Úfindr   ÚcompileÚIr    r   r   ÚmatchrD   ÚstrÚsearchrC   )rJ   Úpage_urlrN   rO   Úcontent_htmlÚsoupÚmtÚmdÚdÚdmÚartÚccrL   s                r   Úparse_detailrl   ~   sñ  € Ø€EØ€DØ€LÞÜ˜Y¨Ó6ˆØ�Y‰Y�v f¬b¯j©j¸Ì"Ï$É$Ó.OÐ%PˆYÓQˆÙ�"—&‘&˜Ô#Ü  9¡Ó.ˆEØ�Y‰Y�v f¬b¯j©j¸ÄRÇTÁTÓ.JÐ%KˆYÓLˆÙ�"—&‘&˜Ô#Ø�9‘×#Ñ#Ó%ˆAÜ—‘Ð4°aÓ8ˆBÙØ—x‘x “{�Ø�i‰i˜¤b§j¡j°¼R¿T¹TÓ&BˆiÓCˆÙØ—‘˜%¬¯
©
°:¼r¿t¹tÓ(D�ÓEˆBÙÜ" 2›w‘ä" 3›x�ÙØ—‘˜5¬¯©°JÄÇÁÓ)E�ÓFˆBÙÜ" 2›w�ÙÜ�I‰IÐNÐPYÔ[]×[_Ñ[_Ó`ˆÙÜ §¡¨£
Ó+ˆEÙÜ�I‰IÐUÐW`Ôbd×bfÑbfÔik×imÑimÑbmÓnˆÙØŸ7™7 1›:ˆLÙÜ�I‰IÐ0°)Ó<ˆÙØ—7‘7˜1“:ˆDØ�$˜Ð$Ð$r   c           
      ó
  ‡‡‡‡— | sddg fS t        j                  dd| t         j                  ¬«      } t        j                  dd| t         j                  ¬«      } t        j                  dd| t         j                  t         j                  z  ¬«      } t        j                  dd| t         j                  t         j                  z  ¬«      } t        rQ	 t	        | d«      }|j                  d	«      D ]%  }d
D ]  }|j                  j                  |d «       Œ  Œ' t        |«      } | }t        j                  dd|t         j                  ¬«      }g Ši Šˆˆˆfd„}t        j                  d||t         j                  t         j                  z  ¬«      }g Šˆfd„}t        j                  d||t         j                  t         j                  z  ¬«      }t        j                  d| t         j                  «      rdnd}t        j                  dd|t         j                  ¬«      }t        j                  dd|t         j                  ¬«      }t        j                  dd|t         j                  ¬«      }g }	|j                  d«      D ]ï  }
|
j                  «       }|sŒt        j                  dd|«      }t        j                  |«      }|j                  dd«      j                  dd«      }t        j                  dd|«      }|sŒ~‰j!                  «       D ]  \  }}|j                  ||«      }Œ t#        ‰«      D ]  \  }}|j                  d|› d�|«      }Œ |	j%                  |j                  «       «       Œñ dj'                  |	«      }‰j!                  «       D ]  \  }}|j                  ||«      }Œ t#        ‰«      D ]  \  }}|j                  d|› d�|«      }Œ t        j                  dd|«      }t        j                  d d|«      }t        j                  |«      }t        j                  d!d|«      }t        j                  d"d|«      }t        j                  d#d|«      }t)        «       }g }|j                  d«      D ]X  }t        j                  d$dt        j                  dd|«      «      }|sŒ2||v rŒ7|j+                  |«       |j%                  |«       ŒZ dj'                  |«      j                  «       }||‰fS # t        $ r Y �Œâw xY w)%Nr   r   z
<!--.*?-->)Úflagsz<meta[^>]*>z<script[^>]*>.*?</script>z<style[^>]*>.*?</style>rS   T)ÚstyleÚclassÚlangÚdirÚalignÚvalignÚwidthÚheightÚborderÚcellpaddingÚcellspacingz;<img[^>]*src="[^"]*fileTypeImages/icon_[a-z]+\.gif"[^>]*/?>c                 ó  •— | j                  d«      }| j                  d«      }t        j                  dd|«      }t        j                  |«      j                  «       }t        j                  dd|«      j                  «       }|s5t        j                  j                  |j                  d«      d   «      xs d}t        j                  j                  ‰|«      }‰j                  ||f«       d	t        ‰«      › d
�}d|› d|› d�‰|<   |S )Nr   r@   ú<[^>]+>r   u   ^é™„ä»¶[:ï¼š]\s*ú?r   u   é™„ä»¶Ú__LINK__Ú__z	<a href="z" target="_blank">z</a>)rD   r   r   r   r   r   ÚosÚpathÚbasenameÚsplitrE   rF   rG   rI   Úlen)	rL   rM   ÚinnerÚtxtrP   ÚkeyÚattachmentsÚlink_protectrc   s	         €€€r   Ú
_link_replz html_to_text.<locals>._link_replÀ   sè   ø€ Ø�w‰w�q‹zˆØ—‘˜“
ˆÜ�f‰f�Z  UÓ+ˆÜ×Ñ Ó$×*Ñ*Ó,ˆÜ�f‰fÐ(¨"¨cÓ2×8Ñ8Ó:ˆÙÜ—'‘'×"Ñ" 4§:¡:¨c£?°1Ñ#5Ó6ÒB¸(ˆCÜ—,‘,×&Ñ& x°Ó6ˆØ×Ñ˜G S˜>Ô*Øœ˜\Ó*Ð+¨2Ð.ˆØ'¨ yÐ0BÀ3À%ÀtÐLˆ�SÑØˆ
r   z&<a\s[^>]*href="([^"]+)"[^>]*>(.*?)</a>c                 óh   •— ‰j                  | j                  d«      «       dt        ‰«      dz
  › d�S )Nr   Ú__TBL__r   r~   )rI   rD   rƒ   )rL   Útable_protects    €r   Ú	_tbl_replzhtml_to_text.<locals>._tbl_replÑ   s3   ø€ Ø×Ñ˜QŸW™W Q›ZÔ(Øœ˜]Ó+¨AÑ-Ð.¨bÐ1Ð1r   z<table[^>]*>.*?</table>z<table[^>]*>r   z</p>z</p>

z	<br\s*/?>ú
z(</?(?:span|font|o:p|st1?:[a-z]+)\b[^>]*>z

r{   r   r   z&nbsp;z[\s\u200b\u200c\u200d\ufeff]+r‹   r~   z__LINK__\d+__z__TBL__\d+__z[ \t]+\nz\n{3,}z	[ \t]{2,}r   )r   r   rC   r_   r   Úfind_allrW   Úpopra   Ú	Exceptionrb   r‚   r   r   r   r   rK   Ú	enumeraterI   ÚjoinÚsetÚadd)rX   rc   Ú_soupÚtagÚattrÚcontent2r‰   r�   Ú	has_tableÚpartsÚblockÚbÚplainÚkÚvÚiÚtblÚoutÚseenÚfinalÚpr†   r‡   rˆ   rŒ   s    `                    @@@r   Úhtml_to_textr§   §   sC  û€ ÙØ�1�bˆyÐÜ�f‰f�] B¨´r·t±tÔ<€GÜ�f‰f�^ R¨¼¿¹Ô=€GÜ�f‰fÐ1°2°wÄbÇdÁdÌRÏTÉTÁkÔR€GÜ�f‰fÐ/°°WÄBÇDÁDÌ2Ï4É4ÁKÔP€GÝð	Ü! '¨=Ó9ˆEØ—~‘~ dÓ+ò .�ð Lò .�DØ—I‘I—M‘M $¨Õ-ñ.ð.ô ˜%“jˆGð €HÜ�v‰vØFÈÈHÜ�d‰dô€Hð €KØ€Löô �v‰vÐ?ÀÈXÔ]_×]aÑ]aÔdf×dhÑdhÑ]hÔi€Hà€Mô2ô �v‰vÐ0°)¸XÌRÏTÉTÔTV×TXÑTXÉ[ÔY€HÜ—Y‘Y˜°¼¿¹Ô>‘ÀA€Iä�v‰v�g˜z¨8¼2¿4¹4Ô@€HÜ�v‰v�l D¨(¼"¿$¹$Ô?€HÜ�v‰vÐAÀ2ÀxÔWY×W[ÑW[Ô\€Hà€EØ—‘ Ó'ò  ˆØ�K‰K‹MˆÙØÜ—‘�z 2 qÓ)ˆÜ×!Ñ! %Ó(ˆØ—‘˜f cÓ*×2Ñ2°8¸SÓAˆÜ—‘Ð7¸¸UÓCˆÙØØ ×&Ñ&Ó(ò 	 ‰DˆAˆqØ—	‘	˜!˜Q“‰Að	 ä Ó.ò 	0‰FˆAˆsØ—	‘	˜G A 3 b˜/¨3Ó/‰Að	0à�‰�Q—W‘W“YÕð ð  �+‰+�eÓ
€CØ×"Ñ"Ó$ò  ‰ˆˆ1Ø�k‰k˜!˜QÓ‰ð ä˜MÓ*ò 0‰ˆˆ3Ø�k‰k˜G A 3 b˜/¨3Ó/‰ð0ô �&‰&Ð! 2 sÓ
+€CÜ
�&‰&� " cÓ
*€Cä
×
Ñ
˜CÓ
 €CÜ
�&‰&�˜d CÓ
(€CÜ
�&‰&�˜F CÓ
(€CÜ
�&‰&�˜s CÓ
(€Cä‹5€DØ€EØ�Y‰Y�vÓò ˆÜ�f‰f�V˜R¤§¡¨
°B¸Ó!:Ó;ˆÙØØ�$‰;ØØ�‰�ŒØ�‰�Q�ðð �+‰+�eÓ
×
"Ñ
"Ó
$€Cà�	˜;Ð&Ð&øôc ò 	Úð	ús   ÃAS7 Ó7	TÔTc                 óž  — | j                  d|t        f«      }|j                  «       ry	 d}	 ddlm}  ||«      }| j                  d|||||t        t        t        ||f
«      }|j                  dkD  ryt        j                  dd|«      }	t        j                  |	«      }	t        j                  d	d
|	«      j                  «       d d }	| j                  d|j                  |t        |	f«       yy# t
        $ r Y Œ¼w xY w# t        j                   $ r=}
dt#        |
«      v r*t%        j&                  d«       t)        | |||||«      cY d }
~
S ‚ d }
~
ww xY w)Nz7SELECT id FROM gov_raw WHERE page_url=? AND site_name=?FÚotherr   )Úclassify_industryz¨INSERT OR IGNORE INTO gov_raw (page_url, source_url, title, content, publish_date, site_name, group_name, script_name, has_table, industry) VALUES (?,?,?,?,?,?,?,?,?,?)r{   r   r   r   éÈ   zTINSERT OR IGNORE INTO gov_search (rowid, title, site_name, summary) VALUES (?,?,?,?)TÚlockedrA   )ÚexecuteÚ	SITE_NAMEÚfetchoneÚcrawler_librª   r‘   Ú
GROUP_NAMEÚSCRIPT_NAMEÚrowcountr   r   r   r   r   Ú	lastrowidÚsqlite3ÚOperationalErrorra   ÚtimeÚsleepÚstore_record)ÚconnÚurlrN   rX   rO   rš   ÚcurÚindustryrª   ÚsummaryÚes              r   r¹   r¹   	  sF  € Ø
�,‰,ÐPÐSVÔXaÐRbÓ
c€CØ
‡|�|„~ØðØˆð	Ý5Ù(¨Ó/ˆHð �l‰lð+ð �#�u˜g t¬Y¼
ÄKÐQZÐ\dÐeó	
ˆð �<‰<˜!ÒÜ—f‘f˜Z¨¨WÓ5ˆGÜ×'Ñ'¨Ó0ˆGÜ—f‘f˜V S¨'Ó2×8Ñ8Ó:¸4¸CÐ@ˆGØ�L‰LØfØ—‘ ¤y°'Ð:ôð Øøô# ò 	Ùð	ûô$ ×#Ñ#ò Ø”s˜1“vÑÜ�J‰J�qŒMÜ  c¨5°'¸4ÀÓKÕKØûð	úsF   «C< ®C- ¼B/C< Ã-	C9Ã6C< Ã8C9Ã9C< Ã<EÄ1EÅ EÅEÅEc            
      óº  — t        j                  «       } | j                  j                  t        «       t        j                  t        d¬«      }|j                  d«       |j                  d«       t        | «      }t        d|d d › dt        |«      › d�d	¬
«       d}d}t        «       }t        dt        dz   «      D �]m  }	 t        | ||«      }t#        |«      }	t        d|› dt        |	«      › d�d	¬
«       |	st        dd	¬
«        �n%|	D �]  \  }
}}|
|v rŒ|j%                  |
«       	 | j'                  |
t        dd¬«      }d|_        |j*                  }t-        ||
«      \  }}}|s|}|s|}t/        ||
«      \  }}}t        t1        j2                  dd|«      j5                  «       «      }|dk  rt        d|d d › �d	¬
«       |dz  }Œ¿t7        ||
||||«      }|r|dz  }t        d|d d › d|› d�d	¬
«       n|dz  }t9        j:                  d«       �Œ
 t9        j:                  d «       �Œp |j=                  «        |j?                  «        t        d!|› �d	¬
«       t        d"|› �d	¬
«       t        d#t@        › d$�d	¬
«       y # t         $ r}t        d|› d|› �d	¬
«       Y d }~ Œxd }~ww xY w# t         $ r#}t        d|
› d|› �d	¬
«       |dz  }Y d }~�ŒÊd }~ww xY w)%Né<   )r   zPRAGMA busy_timeout=60000zPRAGMA journal_mode=WALztemplate extracted: é(   z... (z chars)T)Úflushr   r   zPage z fetch error: z: found z itemszEmpty page, stop paginationr   Fr   r   z  detail error z: r{   r   é
   z  skip empty: z  + z (ú)g      Ð?g      à?u   æ–°å¢ž: u   è·³è¿‡: z=== z	 done ===)!ÚrequestsÚSessionr   Úupdater"   rµ   ÚconnectÚDB_PATHr­   r*   Úprintrƒ   r”   ÚrangeÚ_PAGESr>   r‘   rQ   r•   r    r#   r%   rl   r§   r   r   r   r¹   r·   r¸   ÚcommitÚcloser®   )Úsrº   r1   Ú	new_countÚ
skip_countÚ	seen_urlsr<   rJ   r¿   rK   rP   rN   Úldater(   ÚdhtmlÚdtitleÚddaterd   rX   rš   Ú_Ú	plain_lenÚoks                          r   ÚmainrÛ   +  sÙ  € Ü×ÑÓ€AØ‡I�I×Ñ”WÔÜ�?‰?œ7¨BÔ/€DØ‡L�LÐ,Ô-Ø‡L�LÐ*Ô+ä˜A‹€HÜ	Ð  ¨#¨2  ¨u´S¸³]°OÀ7Ð
KÐSWÕXà€IØ€JÜ“€Iä�aœ !™Ó$ó )ˆð	Ü" 1 h°Ó5ˆIô ˜9Ó%ˆÜ��d�V˜8¤C¨£J <¨vÐ6¸dÕCÙÜÐ/°tÕ<ÚØ%*ó 	Ñ!ˆG�U˜EØ˜)Ñ#ØØ�M‰M˜'Ô"ðØ—E‘E˜'¬7¸BÀu�EÓM�Ø$�”
ØŸ™�ô
 +7°u¸gÓ*FÑ'ˆF�E˜<ÙØ�ÙØ�Ü$0°¸wÓ$GÑ!ˆG�Y ÜœBŸF™F :¨r°7Ó;×AÑAÓCÓDˆIØ˜2Š~Ü˜ v¨c¨r { mÐ4¸DÕAØ˜a‘�
ØÜ˜d G¨V°W¸eÀYÓOˆBÙØ˜Q‘�	Ü˜˜V C R˜[˜M¨¨E¨7°!Ð4¸DÖAà˜a‘�
Ü�J‰J�tÖð;	ô< 	�
‰
�3ŽðS)ðV 	‡K�K„MØ‡J�J„LÜ	ˆH�Y�KÐ
 ¨Õ-Ü	ˆH�Z�LÐ
!¨Õ.Ü	ˆD”�˜9Ð
%¨TÖ2øôY ò 	Ü�E˜$˜˜~¨a¨SÐ1¸Õ>Ýûð	ûô  ò Ü˜¨ y°°1°#Ð6¸dÕCØ˜a‘�
Ýûðús0   ÃJÄ*,J.Ê	J+ÊJ&Ê&J+Ê.	KÊ7KËKÚ__main__)4Ú__doc__Úsysr   r   r·   r5   Úhtmlr   Úurllib.parserE   rµ   ÚwarningsÚfilterwarningsÚbs4r   ÚImportErrorrÆ   Ú$requests.packages.urllib3.exceptionsr   ÚpackagesÚurllib3Údisable_warningsrH   r:   r®   r±   r²   rÊ   r!   r8   r7   r"   Ú
_MAX_PAGESr’   Úargvr¡   ÚaÚ
startswithÚintr‚   Ú
ValueErrorrƒ   rÍ   r   r*   r>   rQ   rl   r§   r¹   rÛ   Ú__name__© r   r   ú<module>rñ      s»  ðñ	ó Û 	Û 	Û Û Û Û Û Û à €× Ñ ˜Ô !ðÝ!ó Ý GØ × Ñ × Ñ × *Ñ *Ð+AÔ Bð &€Ø
B€Ø6€	Ø€
Ø!€Ø
€ØÐ-Ñ-€	Ø€
Ø€
ð @ØOØ'ñ€ð €
Ù�c—h‘hÓò 
�D€A€qØ‡|�|�JÔð	Ù˜QŸW™W S¨!›_¨QÑ/Ó0‰Jð 
ˆi‹˜A ™E¡C¨¯©£MÓ1ð	Ù˜SŸX™X a¨!¡e™_Ó-‰Jð
ð " Q’‰¨A€òòòò,ò &%òR_'òDòD=3ð@ ˆzÒÙ…Fð øða
 ò ØƒMðûð: ò 	Ùð	ûð
 ò 	Ùð	ús5   ºD; Â6E	Ã2EÄ;EÅEÅ	EÅEÅEÅE