ó
    ˆ*£h“|  ã                   ó<  • S SK JrJr  S SKJrJrJrJrJrJ	r	J
r
JrJrJrJrJr  S SK7  SSKJr  SSKrSSKrSSKrSSKrSSKrSSKJr  SSKJr  SSKrSSKr\R>                  S   S	:X  a  SS
K J!r!  SSK"J#r#  SSK$J%r%  OSSK&J#r#  SSK'J%r%  \" \(5      r) " S S\*5      r+g)é   )Úget_recognizerÚget_text)Úgroup_text_boxÚget_image_listÚcalculate_md5Úget_paragraphÚdownload_and_unzipÚprintProgressBarÚdiffÚreformat_inputÚmake_rotated_img_listÚset_result_with_confidenceÚreformat_input_batchedÚmerge_to_free)Ú*é    )Úget_displayN)ÚImage)Ú	getLoggeré   )Úopen)Úurlretrieve)ÚPathc                   óÒ   • \ rS rSr     SS jrS rS rS rS rS r	S	 r
     SS
 jr      SS jr          SS jr          SS jr           SS jrSrg)ÚReaderé   Nc                 ó’  • X l         Xpl        [        S-   U l        U(       a  X0l        [	        U R                  5      R                  SSS9  [        S-   U l        U(       a  X@l        [	        U R                  5      R                  SSS9  [        R                  R                  U R                  5        USL a$  SU l
        U
(       a  [        R                  S5        O�USL a„  [        R                  R                  5       (       a  SU l
        O_[        R                   R"                  R                  5       (       a  S	U l
        O*SU l
        U
(       a  [        R                  S
5        OX l
        [$        U l        [&        U l        SS/U l        U4U l        XÀl        U(       a  U R/                  U5      n0 nUS/[&        S    Vs/ s H  oÿPM     sn-   [&        S    Vs/ s H  oÿPM     sn-   ;   Ga.  U[&        S    Vs/ s H  oÿPM     sn;   a  [&        S   U   nSnUS   U l        GO9U[&        S    Vs/ s H  oÿPM     sn;   a  [&        S   U   nSnUS   U l        GO[3        U5      [3        [4        5      -
  nU[3        5       :w  a  [7        US5      eUS/:X  a%  U R9                  SUS/S5        [&        S   S   nSnGO¡SU;   a&  U R9                  SUSS/S5        [&        S   S   nSnGOuSU;   a&  U R9                  SUSS/S5        [&        S   S   nSnGOIS U;   a&  U R9                  S!US S/S"5        [&        S   S#   nSnGOS$U;   a&  U R9                  S%US$S/S&5        [&        S   S'   nSnGOñS(U;   a&  U R9                  S)US(S/S*5        [&        S   S+   nSnGOÅS,U;   a&  U R9                  S-US,S/S.5        [&        S   S/   nSnGO™S0U;   a&  U R9                  S1US0S/S25        [&        S   S3   nSnGOmS4U;   a&  U R9                  S5US4S/S65        [&        S   S7   nSnGOA[3        U5      [3        [:        5      -  (       a+  U R9                  S8U[:        S/-   S95        [&        S   S:   nSnOö[3        U5      [3        [<        5      -  (       a+  U R9                  S;U[<        S/-   S<5        [&        S   S=   nSnO«[3        U5      [3        [>        5      -  (       a+  U R9                  S>U[>        S/-   S?5        [&        S   S@   nSnO`[3        U5      [3        [@        5      -  (       a+  U R9                  SAU[@        S/-   SB5        [&        S   SC   nSnOSDU l        [&        S   SE   nSnUSF   U l!        [D        R                  RG                  U R                  USG   5      nU	(       Gam  [D        R                  RI                  U5      S:X  a…  U R                  (       d  [K        SHU-  5      e[        R                  SI5        [M        USJ   USG   U R                  U
5        [O        U5      USK   :X  d   [P        5       e[        RS                  SL5        OÅ[O        U5      USK   :w  a³  U R                  (       d  [K        SMU-  5      e[        R                  [P        5        [D        RT                  " U5        [        R                  SN5        [M        USJ   USG   U R                  U
5        [O        U5      USK   :X  d   [P        5       e[        RS                  SO5        U RW                  X5        OÜ[Y        [D        R                  RG                  U R                  USP-   5      SQSR9 n[Z        R\                  " U[Z        R^                  SS9nSTSTST5        WSU   (       a  USU   q0USV   nU R9                  XaU[c        U5      5        USW   U l!        USX-   n[D        R                  RG                  U R                  U5      nU RW                  UU5        0 nU H.  n[D        R                  RG                  [d        SYUSZ-   5      UU'   M0     U(       a  U Rg                  W5      U l4        U	(       aQ  US:X  a  S[S\S\S].nOUS:X  a  S[S^S^S].nOWS_   n[k        UUU RB                  UUUU R                  US`9u  U l6        U l7        gTgTs  snf s  snf s  snf s  snf ! , (       d  f       GNJ= f)aaì  Create an EasyOCR Reader

Parameters:
    lang_list (list): Language codes (ISO 639) for languages to be recognized during analysis.

    gpu (bool): Enable GPU support (default)

    model_storage_directory (string): Path to directory for model data. If not specified,
    models will be read from a directory as defined by the environment variable
    EASYOCR_MODULE_PATH (preferred), MODULE_PATH (if defined), or ~/.EasyOCR/.

    user_network_directory (string): Path to directory for custom network architecture.
    If not specified, it is as defined by the environment variable
    EASYOCR_MODULE_PATH (preferred), MODULE_PATH (if defined), or ~/.EasyOCR/.

    download_enabled (bool): Enabled downloading of model data via HTTP (default).
z/modelT)ÚparentsÚexist_okz/user_networkFÚcpuz7Using CPU. Note: This module is much faster with a GPU.ÚcudaÚmpszdNeither CUDA nor MPS are available - defaulting to CPU. Note: This module is much faster with a GPU.ÚcraftÚdbnet18ÚstandardÚgen1Úgen2Úgeneration1Úmodel_scriptÚgeneration2zis not supportedÚenÚenglishz["en"]Ú
english_g2ÚthÚthaiz["th","en"]Úthai_g1Úch_traÚchinese_traz["ch_tra","en"]Ú	zh_tra_g1Úch_simÚchinese_simz["ch_sim","en"]Ú	zh_sim_g2ÚjaÚjapanesez["ja","en"]Újapanese_g2ÚkoÚkoreanz["ko","en"]Ú	korean_g2ÚtaÚtamilz["ta","en"]Útamil_g1ÚteÚteluguz["te","en"]Ú	telugu_g2ÚknÚkannadaz["kn","en"]Ú
kannada_g2Úbengaliz["bn","as","en"]Ú
bengali_g1Úarabicz["ar","fa","ur","ug","en"]Ú	arabic_g1Ú
devanagariz["hi","mr","ne","en"]Údevanagari_g1Úcyrillicz-["ru","rs_cyrillic","be","bg","uk","mn","en"]Úcyrillic_g2ÚlatinÚlatin_g2Ú
charactersÚfilenameú!Missing %s and downloads disabledzqDownloading recognition model, please wait. This may take several minutes depending upon your network connection.ÚurlÚmd5sumzDownload complete.ú*MD5 mismatch for %s and downloads disabledzxRe-downloading the recognition model, please wait. This may take several minutes depending upon your network connection.úDownload completez.yamlÚutf8©Úencoding)ÚLoaderNÚimgHÚ	lang_listÚcharacter_listz.pthÚdictú.txtr   i   )Úinput_channelÚoutput_channelÚhidden_sizeé   Únetwork_params)ÚdeviceÚquantize)8ÚverboseÚdownload_enabledÚMODULE_PATHÚmodel_storage_directoryr   ÚmkdirÚuser_network_directoryÚsysÚpathÚappendre   ÚLOGGERÚwarningÚtorchr!   Úis_availableÚbackendsr"   Údetection_modelsÚrecognition_modelsÚsupport_detection_networkrf   Úcudnn_benchmarkÚgetDetectorPathÚ
model_langÚsetÚall_lang_listÚ
ValueErrorÚsetModelLanguageÚbengali_lang_listÚarabic_lang_listÚdevanagari_lang_listÚcyrillic_lang_listÚ	characterÚosÚjoinÚisfileÚFileNotFoundErrorr	   r   Úcorrupt_msgÚinfoÚremoveÚsetLanguageListr   ÚyamlÚloadÚ
FullLoaderr[   ÚstrÚ	BASE_PATHÚinitDetectorÚdetectorr   Ú
recognizerÚ	converter)Úselfr\   Úgpurj   rl   Údetect_networkÚrecog_networkrh   r’   r“   rg   rf   rx   Údetector_pathÚseparator_listÚmodelÚunknown_langÚ
model_pathÚfileÚrecog_configÚavailable_langÚ
model_fileÚ	dict_listÚlangrd   s                            ÚL/home/mande/repo/quber/.venv/lib/python3.13/site-packages/easyocr/easyocr.pyÚ__init__ÚReader.__init__    so  € ð, ŒØ 0Ôä'2°XÑ'=ˆÔ$Þ"Ø+BÔ(ÜˆT×)Ñ)Ó*×0Ñ0¸ÈÐ0ÑMä&1°OÑ&CˆÔ#Þ!Ø*@Ô'ÜˆT×(Ñ(Ó)×/Ñ/¸ÀtÐ/ÑLÜ�‰�‰˜×3Ñ3Ô4à�%Š<ØˆDŒKÞÜ—‘ÐXÔYøØ�DŠ[Ü�z‰z×&Ñ&×(Ñ(Ø$�•Ü—‘×#Ñ#×0Ñ0×2Ñ2Ø#�•à#�”ÞÜ—N‘Nð  $Jô  KøàŒKä 0ˆÔÜ"4ˆÔð +2°9Ð)=ˆÔ&Ø�iˆŒØ,ÔÞØ ×0Ñ0°Ó@ˆMð ˆà˜Z˜LÔ?QÐRXÒ?YÓ+ZÒ?Y°eªEÑ?YÑ+ZÑZô  rDð  EKò  rLó  ^Mò  rLÐhmÒ^cñ  rLñ  ^Mñ  Mô  MØÔ4FÀvÒ4NÓ OÒ4N¨5¢Ñ4NÑ OÓOÜ*¨6Ñ2°=ÑA�Ø -�Ø"'¨Ñ"7�–ØÔ6HÈÒ6PÓ"QÒ6P¨U¢5Ñ6PÑ"QÓQÜ*¨6Ñ2°=ÑA�Ø -�Ø"'¨Ñ"7�–ä" 9›~´´MÓ0BÑB�Ø¤3£5Ó(Ü$ \Ð3EÓFÐFà  Ó&Ø×)Ñ)¨)°YÀÀÈÔQÜ.¨vÑ6°|ÑD�EØ$1’MØ˜YÓ&Ø×)Ñ)¨&°)¸dÀ4¸[È-ÔXÜ.¨vÑ6°yÑA�EØ$1’MØ Ó*Ø×)Ñ)¨-¸ÀXÈdÀOÐUfÔgÜ.¨vÑ6°{ÑC�EØ$1’MØ Ó*Ø×)Ñ)¨-¸ÀXÈdÀOÐUfÔgÜ.¨vÑ6°{ÑC�EØ$1’MØ˜YÓ&Ø×)Ñ)¨*°iÀ$ÀtÀÈmÔ\Ü.¨vÑ6°}ÑE�EØ$1’MØ˜YÓ&Ø×)Ñ)¨(°IÀÀT¸{ÈMÔZÜ.¨vÑ6°{ÑC�EØ$1’MØ˜YÓ&Ø×)Ñ)¨'°9¸tÀD¸kÈ=ÔYÜ.¨vÑ6°zÑB�EØ$1’MØ˜YÓ&Ø×)Ñ)¨(°IÀÀT¸{ÈMÔZÜ.¨vÑ6°{ÑC�EØ$1’MØ˜YÓ&Ø×)Ñ)¨)°YÀÀdÀÈ]Ô[Ü.¨vÑ6°|ÑD�EØ$1’MÜ˜“^¤cÔ*;Ó&<×<Ø×)Ñ)¨)°YÔ@QÐSWÐRXÑ@XÐZlÔmÜ.¨vÑ6°|ÑD�EØ$1‘MÜ˜“^¤cÔ*:Ó&;×;Ø×)Ñ)¨(°IÔ?OÐQUÐPVÑ?VÐXtÔuÜ.¨vÑ6°{ÑC�EØ$1‘MÜ˜“^¤cÔ*>Ó&?×?Ø×)Ñ)¨,¸	ÔCWÐY]ÐX^ÑC^Ð`wÔxÜ.¨vÑ6°ÑG�EØ$1‘MÜ˜“^¤cÔ*<Ó&=×=Ø×)Ñ)¨*°iÔASÐUYÐTZÑAZØ*Yô[ä.¨vÑ6°}ÑE�EØ$1‘Mà&-�D”OÜ.¨vÑ6°zÑB�EØ$1�MØ" <Ñ0ˆDŒNäŸ™Ÿ™ d×&BÑ&BÀEÈ*ÑDUÓVˆJçÜ—7‘7—>‘> *Ó-°Ó6Ø×0×0Ü/Ð0SÐV`Ñ0`ÓaÐaÜ—N‘Nð $kô lä& u¨U¡|°U¸:Ñ5FÈ×HdÑHdÐfmÔnÜ(¨Ó4¸¸h¹ÓGÐTÌÓTÐGÜ—K‘KÐ 4Õ5Ü" :Ó.°%¸±/ÓAØ×0×0Ü/Ð0\Ð_iÑ0iÓjÐjÜ—N‘N¤;Ô/Ü—I’I˜jÔ)Ü—N‘Nð $kô lä& u¨U¡|°U¸:Ñ5FÈ×HdÑHdÐfmÔnÜ(¨Ó4¸¸h¹ÓGÐTÌÓTÐGÜ—K‘KÐ 3Ô4Ø× Ñ  Õ2ô ”b—g‘g—l‘l 4×#>Ñ#>ÀÈwÑ@VÓWÐbhÒiÐmqÜ#Ÿyšy¨´d·o±oÑF�÷ jð ˜F×#Ø# FÑ+�à)¨+Ñ6ˆNØ×!Ñ! -¸NÌCÐP^ÓL_Ô`à)Ð*:Ñ;ˆDŒNØ&¨Ñ.ˆJÜŸ™Ÿ™ d×&BÑ&BÀJÓOˆJØ× Ñ  ¨LÔ9àˆ	ÛˆDÜ Ÿg™gŸl™l¬9°f¸dÀV¹mÓLˆI�d‹Oñ ö Ø ×-Ñ-¨mÓ<ˆDŒMæØ Ó-à%&Ø&)Ø#&ñ"‘ð
  -Ó/à%&Ø&)Ø#&ñ"‘ð ".Ð.>Ñ!?�Ü.<¸]ÈNØ9=¿¹ÈØ9BÀJÐY]×YdÑYdÐowñ/yÑ+ˆDŒO˜T�^ð ùòo ,[ùò  ^MùÚ Oùò #R÷x jÖiús$   Æ?b#Çb(Ç9b-È0b2Ý$b7â7
cc                 óº  • XR                   ;   Ga™  Xl        U R                  S:X  a	  SSKJnJn  O$U R                  S;   a	  SSKJnJn  O[        S5      eX0l        X l        Sn[        R                  R                  U R                  U R                  U R                     S   5      n[        R                  R                  U5      S:X  aÑ  U R                  (       d  [        S	U-  5      e[        R!                  S
5        [#        U R                  U R                     S   U R                  U R                     S   U R                  U R$                  5        ['        U5      U R                  U R                     S   :X  d   U5       e[        R)                  S5        U$ ['        U5      U R                  U R                     S   :w  aå  U R                  (       d  [        SU-  5      e[        R!                  U5        [        R*                  " U5        [        R!                  S5        [#        U R                  U R                     S   U R                  U R                     S   U R                  U R$                  5        ['        U5      U R                  U R                     S   :X  d   U5       eU$ [        SR-                  SR                  U R                   5      5      5      e)Nr#   r   )Úget_detectorÚget_textbox)r$   zCUnsupport detector network. Support networks are craft and dbnet18.z+MD5 hash mismatch, possible file corruptionrQ   FrR   zoDownloading detection model, please wait. This may take several minutes depending upon your network connection.rS   rT   rV   rU   zvRe-downloading the detection model, please wait. This may take several minutes depending upon your network connection.z4Unsupport detector network. Support networks are {}.z, )rw   r—   Ú	detectionr¨   r©   Údetection_dbÚRuntimeErrorr„   rn   r…   rj   ru   r†   rh   r‡   rp   rq   r	   rg   r   r‰   rŠ   Úformat)r•   r—   r¨   r©   rˆ   r™   s         r¤   ry   ÚReader.getDetectorPathë   sÜ  € Ø×;Ñ;Ô;Ø"0ÔØ×"Ñ" gÓ-ß@Ð@Ø×$Ñ$¨Ó3ßCÐCä"Ð#hÓiÐiØ*ÔØ ,ÔØGˆKÜŸG™GŸL™L¨×)EÑ)EÀt×G\ÑG\Ð]a×]pÑ]pÑGqÐr|ÑG}Ó~ˆMÜ�w‰w�~‰~˜mÓ,°Ó5Ø×,×,Ü+Ð,OÐR_Ñ,_Ó`Ð`Ü—‘ð  gô hä" 4×#8Ñ#8¸×9LÑ9LÑ#MÈeÑ#TÐVZ×VkÑVkÐlp×lÑlñ  WAð  BLñ  WMð  OS÷  Okñ  Okð  mq÷  myñ  myô  zÜ$ ]Ó3°t×7LÑ7LÈT×M`ÑM`Ñ7aÐbjÑ7kÓkÐxÐmxÓxÐkÜ—‘Ð/Ô0ð Ðô ˜}Ó-°×1FÑ1FÀt×GZÑGZÑ1[Ð\dÑ1eÓeØ×,×,Ü+Ð,XÐ[hÑ,hÓiÐiÜ—‘˜{Ô+Ü—	’	˜-Ô(Ü—‘ð  gô hä" 4×#8Ñ#8¸×9LÑ9LÑ#MÈeÑ#TÐVZ×VkÑVkÐlp×lÑlñ  WAð  BLñ  WMð  OS÷  Okñ  Okð  mq÷  myñ  myô  zÜ$ ]Ó3°t×7LÑ7LÈT×M`ÑM`Ñ7aÐbjÑ7kÓkÐxÐmxÓxÐkð Ðô ÐU×\Ñ\Ð]a×]fÑ]fÐgk÷  hFñ  hFó  ^Gó   Hó  Ið  Ió    c                 ób   • U R                  UU R                  U R                  U R                  S9$ )N)re   rf   rx   )r¨   re   rf   rx   )r•   r™   s     r¤   r‘   ÚReader.initDetector  s3   € Ø× Ñ  Ø*.¯+©+Ø,0¯M©MØ37×3GÑ3Gð !ð #ð 	#r¯   c                 óR   • U R                  U5      nU R                  U5      U l        g )N)ry   r‘   r’   )r•   r—   r™   s      r¤   ÚsetDetectorÚReader.setDetector  s$   € Ø×,Ñ,¨^Ó<ˆØ×)Ñ)¨-Ó8ˆ�r¯   c                 ó°   • Xl         [        U5      [        U5      -
  [        5       :w  a-  US:X  d  US:X  a  Sn[        UR                  5       S-   U-   5      eg )Nr1   r4   Úchinesez0 is only compatible with English, try lang_list=)rz   r{   r}   Ú
capitalize)r•   Úlanguager\   Ú	list_langÚlist_lang_strings        r¤   r~   ÚReader.setModelLanguage  sW   € Ø"ŒÜˆy‹>œC 	›NÑ*¬c«eÓ3Ø˜8Ó# x°8Ó';Ø$�Ü˜X×0Ñ0Ó2Ð5gÑgÐjzÑzÓ{Ð{ð 4r¯   c                 óú   • [         R                  R                  [        SU5      n[	        USSS9 nUR                  5       R                  5       nSR                  U5      nS S S 5        U$ ! , (       d  f       W$ = f)Nrƒ   Úrú	utf-8-sigrX   Ú )r„   rn   r…   r�   r   ÚreadÚ
splitlines)r•   ÚfileNameÚ	char_fileÚ
input_fileÚlistÚchars         r¤   ÚgetCharÚReader.getChar   sd   € Ü—G‘G—L‘L¤¨K¸ÓBˆ	Ü�)˜S¨;Ò7¸:Ø—?‘?Ó$×/Ñ/Ó1ˆDØ—7‘7˜4“=ˆD÷ 8ð ˆ÷ 8Ô7ð ˆús   ±0A+Á+
A:c                 ó<  • / U l         U Hr  n[        R                  R                  [        SUS-   5      n[        USSS9 nUR                  5       R                  5       nS S S 5        U =R                   W-  sl         Mt     UR                  S5      (       a  US   nOUR                  S5      (       a  US   nOSn[        U R                   5      R                  [        U5      5      U l         S	R                  U R                   5      U l         g ! , (       d  f       N´= f)
Nrƒ   z	_char.txtr½   r¾   rX   Úsymbolsr]   z+0123456789!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ r¿   )Ú	lang_charr„   rn   r…   r�   r   rÀ   rÁ   Úgetr{   Úunion)r•   r\   r›   r£   rÃ   rÄ   Ú	char_listÚsymbols           r¤   r‹   ÚReader.setLanguageList'  sÛ   € ØˆŒÛˆDÜŸ™Ÿ™¤Y°¸TÀKÑ=OÓPˆIÜ�i °Ò=ÀØ'Ÿ_™_Ó.×9Ñ9Ó;�	÷ >à�NŠN˜iÑ'�Nñ	 ð
 �9‰9�Y×ÑØ˜9Ñ%‰FØ�Y‰YÐ'×(Ñ(ØÐ+Ñ,‰FàDˆFÜ˜TŸ^™^Ó,×2Ñ2´3°v³;Ó?ˆŒØŸ™ §¡Ó0ˆ�÷ >Õ=ús   Á DÄ
D	c                 ó~  • U(       a  [        U5      u  nnU R                  U R                  UUUUUUSU R                  UUUUUS9n/ / nnU HÖ  n[	        UUXšX¼US L 5      u  nnU(       a–  U Vs/ s H)  n[        US   US   -
  US   US   -
  5      U:”  d  M'  UPM+     nnU VVs/ s HQ  n[        [        U Vs/ s H  nUS   PM
     sn5      [        U Vs/ s H  nUS   PM
     sn5      5      U:”  d  MO  UPMS     nnnUR                  U5        UR                  U5        MØ     UU4$ s  snf s  snf s  snf s  snnf )NF)Úcanvas_sizeÚ	mag_ratioÚtext_thresholdÚlink_thresholdÚlow_textÚpolyre   Úoptimal_num_charsÚ	thresholdÚbbox_min_scoreÚbbox_min_sizeÚmax_candidatesr   r   é   r   )r   r©   r’   re   r   Úmaxr   ro   )r•   ÚimgÚmin_sizerÔ   rÖ   rÕ   rÒ   rÓ   Ú	slope_thsÚycenter_thsÚ
height_thsÚ	width_thsÚ
add_marginÚreformatrØ   rÙ   rÚ   rÛ   rÜ   Úimg_cv_greyÚtext_box_listÚhorizontal_list_aggÚfree_list_aggÚtext_boxÚhorizontal_listÚ	free_listÚiÚcs                               r¤   ÚdetectÚReader.detect7  s{  € ö Ü-¨cÓ2ÑˆC�à×(Ñ(¨¯©Ø$'Ø2=Ø09Ø5CØ5CØ/7Ø+0Ø-1¯[©[Ø8IØ09Ø5CØ4AØ5Cð )ð &ˆð  .0°˜]ÐÛ%ˆHÜ)7¸À)Ø8CØ8AØ9JÈdÐ9Ró*UÑ&ˆO˜Yö Ù.=ó #:ªo¨ÄØ�a‘D˜1˜Q™4‘K  1¡¨¨!©¡óB.Ø08ñB9§1©o�ð #:á(1ô Rª	 1´SÜ©Ó*ª 1˜!˜Aœ$©Ñ*Ó+¬TÁÓ2CÂ¸A°1°Q´4ÁÑ2CÓ-Dó6FØHPñ6QŸQ©	�	ñ Rà×&Ñ& Ô7Ø× Ñ  Ö+ñ &ð # MÐ1Ð1ùò#:ùò +ùÒ2CùóRs6   Á.&D*ÂD*Â%D9Â9D/ÃD9ÃD4Ã&D9Ã7D9Ä/
D9c                 ó	  • U(       a  [        U5      u  nnU(       a1  SR                  [        U R                  5      [        U5      -
  5      nO\U	(       a  SR                  [        U	5      5      nO:SR                  [        U R                  5      [        U R                  5      -
  5      nU R
                  S;   a  SnUS :X  a  US :X  a  UR                  u  nnSUSU//n/ nUS:X  d  U R                  S:X  aê  U(       dã  / nU Hj  nU/n/ n[        UUU[        S9u  nn[        U R                  [        [        U5      U R                  U R                  UUXEXmXïXpR                  5      nUU-  nMl     U Hj  n/ nU/n[        UUU[        S9u  nn[        U R                  [        [        U5      U R                  U R                  UUXEXmXïXpR                  5      nUU-  nMl     OÞ[        X#U[        S9u  nn[        U5      nU(       a#  U(       a  [        UU5      n[!        U[        5      n[        U R                  [        [        U5      U R                  U R                  UUXEXmXïXpR                  5      nU(       aF  X#-   (       a=  [#        [%        [        U5      S-   5       V s/ s H  n UUU -  UU S-   -   PM     sn 5      nU R
                  S:X  a8  S	n!U V"s/ s H  n"['        U"5      PM     nn"U H  n"[)        U"S   5      U"S'   M     OS
n!U(       a  [+        UUUU!S9nU
S:X  a  U V"s/ s H  n"U"S   PM
     sn"$ US:X  aC  U(       a  U V"s/ s H  n"U"S   U"S   S.PM     sn"$ U V"s/ s H  n"U"S   U"S   U"S   S.PM     sn"$ US:X  a½  U(       aY  U V"V#s/ s HI  n"[,        R.                  " U"S    V#s/ s H  n#['        [1        [        U#5      5      PM     sn#U"S   S.SS9PMK     sn#n"$ U V"V#s/ s HM  n"[,        R.                  " U"S    V#s/ s H  n#['        [1        [        U#5      5      PM     sn#U"S   U"S   S.SS9PMO     sn#n"$ US:X  a  [3        UU5      $ U$ s  sn f s  sn"f s  sn"f s  sn"f s  sn"f s  sn#f s  sn#n"f s  sn#f s  sn#n"f )Nr¿   )r2   r5   Úgreedyr   r   r    )Úmodel_heightrH   ÚrtlÚltr)Úx_thsÚy_thsÚmoder^   )ÚboxesÚtextr   )rú   rû   Ú	confidentÚjsonF)Úensure_asciiÚ
free_merge)r   r…   r{   rƒ   rË   rz   Úshapere   r   r[   r   Úintr“   r”   Úlenr   rÞ   r   ÚrangerÅ   r   r   rý   ÚdumpsÚmapr   )$r•   rç   rì   rí   ÚdecoderÚ	beamWidthÚ
batch_sizeÚworkersÚ	allowlistÚ	blocklistÚdetailÚrotation_infoÚ	paragraphÚcontrast_thsÚadjust_contrastÚ
filter_thsrø   r÷   ræ   Úoutput_formatrß   Úignore_charÚy_maxÚx_maxÚresultÚbboxÚh_listÚf_listÚ
image_listÚ	max_widthÚresult0Ú	image_lenrî   Údirection_modeÚitemÚlsts$                                       r¤   Ú	recognizeÚReader.recognizea  s‰  € ö Ü-¨kÓ:ÑˆC�æØŸ'™'¤# d§n¡nÓ"5´c¸)³nÑ"DÓE‰KÞØŸ'™'¤# i£.Ó1‰KàŸ'™'¤# d§n¡nÓ"5´c¸$¿.¹.Ó6IÑ"IÓJˆKà�?‰?Ð;Ó;Àx¸Wà˜TÓ!¨	°4«Ø&×,Ñ,‰LˆE�5Ø ! 5¨!¨UÐ3Ð4ˆOØˆIð ˜1‹_ $§+¡+°Ó"6ÆØˆFÛ'�Ø˜�Ø�Ü(6°v¸vÀ{ÔcgÑ(hÑ%�
˜IÜ" 4§>¡>´4¼¸Y»ÈÏÉÐZ^×ZhÑZhÐjtØ)¨7¸zÐYhØ%§{¡{ó4�ð ˜'Ñ!’ñ (ó "�Ø�Ø˜�Ü(6°v¸vÀ{ÔcgÑ(hÑ%�
˜IÜ" 4§>¡>´4¼¸Y»ÈÏÉÐZ^×ZhÑZhÐjtØ)¨7¸zÐYhØ%§{¡{ó4�ð ˜'Ñ!’ò "ô %3°?È{ÔkoÑ$pÑ!ˆJ˜	Ü˜J›ˆIÞ¦Ü2°=À*ÓM�
Ü 	¬4Ó0�	ä˜dŸn™n¬d´C¸	³NÀDÇOÁOÐUY×UcÑUcÐeoØ% w¸:ÐUdØ!§;¡;ó0ˆFö  /×";ô 4ÜBGÌÈMÓHZÐ]^ÑH^ÔB_Ó`ÒB_¸Q�V˜I a™K¨	°1°Q±3©Ó8ÑB_Ñ`ób�ð �?‰?˜hÓ&Ø"ˆNÙ-3Ó4ªV T”d˜4–j©VˆFÐ4Û�Ü% d¨1¡gÓ.��Q“ò ð #ˆNæÜ" 6°¸eÈNÑ[ˆFà�Q‹;Ù(.Ó/ª �D˜”G©Ñ/Ð/Ø˜fÓ$ÞÙFLÓMÂf¸d $ q¡'°°a±Ô9ÁfÑMÐMÙV\Ó]ÒV\Èd˜d 1™g¨T°!©WÀÀaÁÔIÑV\Ñ]Ð]Ø˜fÓ$Þñ GMô  Nò  GMð  CœŸ
š
ÈDÐQRÊGÓ,TÊGÀS¬T´#´c¸3³-Ö-@ÉGÑ,TÐ\`ÐabÑ\cÑ#dÐsxÔyñ  GMò  Nð  Nñ W]ô  ^ò  W]ð  OS”D—J’JÈÈQÊÓ(PÊÀ¬¬c´#°s«mÖ)<ÉÑ(PÐX\Ð]^ÑX_ÐlpÐqrÑlsÑtð  DIô  Jñ  W]ò  ^ð  ^Ø˜lÓ*Ü  ¨Ó3Ð3àˆMùò5 aùò 5ùò 0ùò NùÚ]ùò -Uùó  NùÚ(Pùó  ^sN   ÊQËQÌ%Q!ÍQ&Í$Q+ÎQ5Î/#Q0ÏQ5Ï+R Ð#Q;Ð+R Ñ0Q5Ñ;R c                  ó¶   • [        U5      u  n n!U R                  U X¿UUUUUUUUUSUUUUS9u  n"n#U"S   U#S   n#n"U R                  U!U"U#X#UXVXxU	X¬UUUUSU5      n$U$$ )úE
Parameters:
image: file path or numpy-array or a byte stream object
F©rà   rÔ   rÖ   rÕ   rÒ   rÓ   rá   râ   rã   rä   rå   ræ   rÙ   rÚ   rÛ   rÜ   r   )r   rð   r!  )%r•   Úimager  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ç   rì   rí   r  s%                                        r¤   ÚreadtextÚReader.readtext¸  s¦   € ô *¨%Ó0Ñˆˆ[à%)§[¡[°Ø<DØ<DÐWeØ?JÐXaØ=FÐVaØ>HÐU^Ø>HÐUZØ=FÐYgØANÐaoð &1ð 	&3Ñ"ˆ˜ð &5°QÑ%7¸À1¹˜ˆØ—‘ ¨_¸iØ '°JØ '°IÀ}Ø )¸Ø *¨E°5¸%Àó	Pˆð ˆr¯   c                  ó
  ^,^-• [        U5      u  n n!U R                  U X¿UUUUUUUUUSUUUUS9u  n"n#U"S   U#S   n#n"U R                  U!U"U#X#UXVXxU	X¬UUUUSU5      m-/ n$Sn%[        [	        T-5      5       H  n&U$R                  T-U&   S   5        M     S n'U,U-4S jn([        R                  " U%5       H½  m,T,R                  S5      (       d  M  [        ST,-   S	S
S9 n)[        U)R                  5       R                  5       5      R                  SS5      n*[        [	        U$5      5       H<  n&U'" U*U$U&   5      n+U+S:w  d  M  T,SS S:X  d  T,SS S:X  d  M+  [        U(" U&5      5        M>     SSS5        M¿     g! , (       d  f       MÑ  = f)r$  Fr%  r   zcharacters/r   c                 ód   • Sn[        [        U 5      5       H  nX   U:X  d  M  Sn  g   US:X  a  gg )NFTr   éÿÿÿÿ)r  r  )ÚarrÚxÚgrî   s       r¤   ÚsearchÚ#Reader.readtextlang.<locals>.search  s;   € ØˆAÜœ3˜s›8–_�Ø‘6˜1•9Ø�AÙñ %ð �E‹zØð r¯   c                 ó$   >• TU    nUTSS 4-   nU$ )Nr   r   © )rî   ÚaÚbrQ   r  s      €€r¤   ÚtupleaddÚ%Reader.readtextlang.<locals>.tupleadd  s$   ø€ Ø�q‘	ˆAØ�X˜a �]Ð$Ñ$ˆAØˆHr¯   r_   ÚrtrW   rX   Ú
r¿   r+  r   r+   ÚchN)r   rð   r!  r  r  ro   r„   ÚlistdirÚendswithr   r�   rÀ   rÁ   ÚreplaceÚprint).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Ü   r  rß   rç   rì   rí   rÆ   Ú	directoryrî   r/  r5  ÚmyfileÚchartrsÚresrQ   r  s.                                               @@r¤   ÚreadtextlangÚReader.readtextlangÜ  s�  ù€ ô *¨%Ó0Ñˆˆ[à%)§[¡[°Ø<DØ<DÐWeØ?JÐXaØ=FÐVaØ>HÐU^Ø>HÐUZØ=FÐYgØANÐaoð &1ð 	&3Ñ"ˆ˜ð &5°QÑ%7¸À1¹˜ˆØ—‘ ¨_¸iØ '°JØ '°IÀ}Ø )¸Ø *¨E°5¸%Àó	Pˆð ˆØ!ˆ	Ü”s˜6“{Ö#ˆAØ�K‰K˜˜q™	 !™Ö%ñ $ò	ö	ô
 Ÿ
š
 9Ö-ˆHØ× Ñ  ×(Ó(Ü˜=¨(Ñ2°4ÀÒHÈFÜ! &§+¡+£-×":Ñ":Ó"<Ó=×EÑEÀdÈ2ÓN�GÜ"¤3 t£9Ö-˜Ù$ W¨T°!©WÓ5˜Ø "�9Ø'¨¨!˜}¨dÓ2°h¸qÀ°mÀTÕ6IÜ %¡h¨q£kÖ 2ñ	 .÷ IÑHò .çHÖHús   ÃAE3Ä=E3ÅE3Å3
F	c"                 ó4  • [        XU5      u  n"n#U R                  U"UUUUUUUUUUUSUUUU S9u  n$n%/ n&[        U#R                  5      S:X  a  U#/OU#n#[	        U#U$U%5       H5  u  n'n(n)U&R                  U R                  U'U(U)XEUXxXšUXÎUUUUSU!5      5        M7     U&$ )zþ
Parameters:
image: file path or numpy-array or a byte stream object
When sending a list of images, they all must of the same size,
the following parameters will automatically resize if they are not None
n_width: int, new width
n_height: int, new height
Fr%  r   )r   rð   r  r   Úzipro   r!  )*r•   r&  Ún_widthÚn_heightr  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ç   ré   rê   Ú
result_aggÚgrey_imgrì   rí   s*                                             r¤   Úreadtext_batchedÚReader.readtext_batched  så   € ô& 2°%À(ÓKÑˆˆ[à-1¯[©[¸Ø<DÐWeØ<DÐWeØ?JÐXaØ=FÐVaØ>HÐU^Ø>HÐUZØ=FÐYgØANÐaoð .9ð 	.3Ñ*Ð˜]ð ˆ
ä'*¨;×+<Ñ+<Ó'=ÀÓ'B�{‘mÈˆÜ47¸ÐEXÐZgÖ4hÑ0ˆH�o yØ×Ñ˜dŸn™n¨X°È	Ø,3À
Ø,3À	ÐS`Ø,5À_Ø,6¸¸uÀeÈ]ó	\ö ]ñ 5ið Ðr¯   )rƒ   r”   rx   r—   ru   r’   re   rh   r¨   r©   rË   rz   rj   rf   rv   r“   rw   rl   rg   )TNNr#   r%   TTTTTF)é   çffffffæ?çš™™™™™Ù?rN  é 
  ç      ð?çš™™™™™¹?ç      à?rR  rR  rQ  TNçš™™™™™É?rS  rÝ   r   )NNró   é   r   r   NNr   NFrQ  rR  çú~j¼t“h?rR  rP  Tr%   )ró   rT  r   r   NNr   NFrL  rQ  rR  rU  rM  rN  rN  rO  rP  rQ  rR  rR  rR  rR  rP  rQ  rS  rS  rÝ   r   r%   ) NNró   rT  r   r   NNr   NFrL  rQ  rR  rU  rM  rN  rN  rO  rP  rQ  rR  rR  rR  rR  rP  rQ  rS  rS  rÝ   r   r%   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r¥   ry   r‘   r³   r~   rÇ   r‹   rð   r!  r'  rB  rJ  Ú__static_attributes__r2  r¯   r¤   r   r      sè   † àDHØ=DØ<@Ø9=Ø05ô	IyòV!òF#ò9ò|òò1ð  KNØDFØ@CØSWØZ[ô	(2ðT FJØABØLMØ38ØINØISôUðn NOØKLØEGØHMØHKØ13ØBEØILØ\]Ø)ô"ðH RSØKLØEGØHMØHKØ13ØBEØILØ\]Ø)ô<3ð| >BØHIØSTØMOØPUØPSØ9;ØJMØQTØdeØ'1÷)r¯   r   ),Úrecognitionr   r   Úutilsr   r   r   r   r	   r
   r   r   r   r   r   r   ÚconfigÚbidir   ÚnumpyÚnpÚcv2rr   r„   rm   ÚPILr   Úloggingr   rŒ   rý   Úversion_infoÚior   Úsix.moves.urllib.requestr   Úpathlib2r   Úurllib.requestÚpathlibrV  rp   Úobjectr   r2  r¯   r¤   Ú<module>rk     s{   ð÷ 2÷9÷ 9÷ 9ó 9ô Ý Û Û 
Û Û 	Û 
Ý Ý Û Û à×Ñ�AÑ˜!ÓÝÝ4Þå*Ýá	�8Ó	€ôeˆVõ er¯   