§
    ‘Mºf  ã                   ó6  — d dl Z ddlmZmZ ddlmZ  e j        de j        ¦  «        Z e j        d¦  «        Z	 e j        de j        ¦  «        Z
 e j        de j        ¦  «        Z e j        d	e j        ¦  «        Zd
„ Zd„ Zd„ Zdd„Z	 dd„Zd„ Zd„ Zd„ Zd„ ZdS )é    Né   )ÚMAX_ROWÚMAX_COL)Úxrangez(\$?)([A-I]?[A-Z])(\$?)(\d+)z\$?(\d+):\$?(\d+)z!\$?([A-I]?[A-Z]):\$?([A-I]?[A-Z])z-\$?([A-I]?[A-Z]\$?\d+):\$?([A-I]?[A-Z]\$?\d+)z\$?([A-I]?[A-Z]\$?\d+)c                 óÆ   — d}d}t          t          | ¦  «        dz
  dd¦  «        D ]7}| |         }|t          |¦  «        t          d¦  «        z
  dz   |z  z  }|dz  }Œ8|dz
  S )z)'A' -> 0, 'Z' -> 25, 'AA' -> 26, etc
    r   r   éÿÿÿÿÚAé   )r   ÚlenÚord)ÚcolnameÚcolÚpowerÚiÚchs        úI/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/xlwt/Utils.pyÚcol_by_namer      su   € ð €CØ€EÝ•C˜‘L”L ‘N B¨Ñ+Ô+ð ð ˆØ�QŒZˆØ•�B‘”�#˜c™(œ(Ñ" QÑ&¨%Ñ/Ñ/ˆØ�‰ˆˆØ�‰7€Nó    c                 ó>  — t                                | ¦  «        }|st          d| z  ¦  «        ‚|                     ¦   «         \  }}}}t	          |¦  «        }t	          |¦  «        }t          |¦  «        dz
  }t          |                     ¦   «         ¦  «        }||||fS )z…Convert an Excel cell reference string in A1 notation
    to numeric row/col notation.

    Returns: row, col, row_abs, col_abs

    z$Ill-formed single_cell reference: %sr   )Ú_re_cell_exÚmatchÚ	ExceptionÚgroupsÚboolÚintr   Úupper©ÚcellÚmÚcol_absr   Úrow_absÚrows         r   Úcell_to_rowcolr#      s“   € õ 	×Ò˜$ÑÔ€AØð GÝÐ>ÀÑEÑFÔFÐFØ!"§¢¡¤Ñ€GˆS�'˜3Ý�7‰mŒm€GÝ�7‰mŒm€GÝ
ˆc‰(Œ(�Q‰,€CÝ
�c—i’i‘k”kÑ
"Ô
"€CØ��W˜gÐ%Ð%r   c                 óø   — t                                | ¦  «        }|st          d¦  «        ‚|                     ¦   «         \  }}}}t	          |¦  «        dz
  }t          |                     ¦   «         ¦  «        }||fS )zsConvert an Excel cell reference string in A1 notation
    to numeric row/col notation.

    Returns: row, col

    zError in cell formatr   )r   r   r   r   r   r   r   r   s         r   Úcell_to_rowcol2r%   .   ss   € õ 	×Ò˜$ÑÔ€AØð 0ÝÐ.Ñ/Ô/Ð/Ø!"§¢¡¤Ñ€GˆS�'˜3õ ˆc‰(Œ(�Q‰,€CÝ
�c—i’i‘k”kÑ
"Ô
"€CØ�ˆ8€Or   Fc                 óX  — d| cxk    rt           k     sn J ‚d|cxk    rt          k     sn J ‚|dz  }|dz  }d}|rd}nd}|rd}nd}|dk    r"t          t          d¦  «        |z   dz
  ¦  «        }t          t          d¦  «        |z   ¦  «        }||z   |z   |z   t	          | dz   ¦  «        z   S )z\Convert numeric row/col notation to an Excel cell reference string in
    A1 notation.

    r   r
   Ú ú$r	   r   )r   r   Úchrr   Ústr)r"   r   r!   r    Údr   Úchr1Úchr2s           r   Úrowcol_to_cellr.   @   sì   € ð
 �ÐÐÒÐ•gÒÐÐÐÐÐØ�ÐÐÒÐ•gÒÐÐÐÐÐØˆr‰	€AØˆb‰€AØ€DØð ØˆˆàˆØð ØˆˆàˆØˆ1‚u€uÝ•3�s‘8”8˜a‘< 1Ñ$Ñ%Ô%ˆÝ�s�3‰xŒx˜!‰|ÑÔ€Dà�T‰>˜DÑ  7Ñ*­S°°q±©\¬\Ñ9Ð9r   c                 ór   — | |k    sJ ‚||k    sJ ‚t          | |||¦  «        dz   t          ||||¦  «        z   S )zsConvert two (row,column) pairs
    into a cell range string in A1:B2 notation.

    Returns: cell range string
    ú:)r.   )Úrow1Úcol1Úrow2Úcol2Úrow1_absÚcol1_absÚrow2_absÚcol2_abss           r   Úrowcol_pair_to_cellranger9   X   sR   € ð �4Š<ˆ<ˆ<ˆ<Ø�4Š<ˆ<ˆ<ˆ<å�t˜T 8¨XÑ6Ô6Ø
ñ	å
˜˜t X¨xÑ
8Ô
8ñ	9ð
r   c                 ó°  — |                       ¦   «         } t                               | ¦  «        }|rTt          |                     d¦  «        ¦  «        dz
  }d}t          |                     d¦  «        ¦  «        dz
  }d}||||fS t
                               | ¦  «        }|rrt          |                     d¦  «                              ¦   «         ¦  «        }d}t          |                     d¦  «                              ¦   «         ¦  «        }d}||||fS t                               | ¦  «        }|rPt          |                     d¦  «        ¦  «        \  }}t          |                     d¦  «        ¦  «        \  }}||||fS t                               | ¦  «        }|r+t          |                     d¦  «        ¦  «        \  }}||||fS t          d| z  ¦  «        ‚)zpConvert cell range string in A1 notation to numeric row/col
    pair.

    Returns: row1, col1, row2, col2

    r   r   é   r   zUnknown cell reference %s)r   Ú_re_row_ranger   r   ÚgroupÚ_re_col_ranger   Ú_re_cell_ranger%   Ú_re_cell_refr   )Ú	cellrangeÚresr1   r2   r3   r4   s         r   Úcellrange_to_rowcol_pairrC   g   s´  € ð —’Ñ!Ô!€Iå
×
Ò
˜iÑ
(Ô
(€CØ
ð &Ý�3—9’9˜Q‘<”<Ñ Ô  1Ñ$ˆØˆÝ�3—9’9˜Q‘<”<Ñ Ô  1Ñ$ˆØˆØ�T˜4 Ð%Ð%õ ×
Ò
˜iÑ
(Ô
(€CØ
ð &Ý˜3Ÿ9š9 Q™<œ<×-Ò-Ñ/Ô/Ñ0Ô0ˆØˆÝ˜3Ÿ9š9 Q™<œ<×-Ò-Ñ/Ô/Ñ0Ô0ˆØˆØ�T˜4 Ð%Ð%å
×
Ò
˜yÑ
)Ô
)€CØ
ð &Ý$ S§Y¢Y¨q¡\¤\Ñ2Ô2‰
ˆˆdÝ$ S§Y¢Y¨q¡\¤\Ñ2Ô2‰
ˆˆdØ�T˜4 Ð%Ð%å
×
Ò
˜YÑ
'Ô
'€CØ
ð &Ý$ S§Y¢Y¨q¡\¤\Ñ2Ô2‰
ˆˆdØ�T˜4 Ð%Ð%Ý
Ð/°9Ñ=Ñ
>Ô
>Ð>r   c                 ó  — t          | ¦  «        \  }}}}|t          k    rt          d| z  ¦  «        ‚|t          k    rt          d| t          fz  ¦  «        ‚|t	          | ¦  «        dz  z  }|t	          | ¦  «        dz  z  }||fS )z5 pack row and column into the required 4 byte format z$Column %s greater than IV in formulaz!Row %s greater than %d in formulaé   é   )r#   r   r   r   r   )r   r"   r   r!   r    s        r   Úcell_to_packed_rowcolrG   Ž   s‘   € å!/°Ñ!5Ô!5Ñ€Cˆˆg�wØ
�g‚~€~ÝÐ>ÀÑEÑFÔFÐFØ
�g‚~€~ÝÐ;¸tÅW¸oÑMÑNÔNÐNØ�3�7ˆ{ÑÔ˜rÑ!Ñ!€CØ�3�7ˆ{ÑÔ˜rÑ!Ñ!€CØ�ˆ8€Or   c                 ól   — | dk    s| d         dk    st          | ¦  «        dk    rdS | D ]	}|dv r dS Œ
dS )Nr'   r   ú'é   Fz[]:\?/* T)r   )Ú
sheet_nameÚcs     r   Úvalid_sheet_namerM   ›   s[   € Ø�SÒÐ˜J qœM¨TÒ1Ð1µS¸±_´_ÀrÒ5IÐ5IØˆuØð ð ˆØ�ÐÐØ�5�5ð  àˆ4r   c                 ó|   — t          | ¦  «        st          d| z  ¦  «        ‚d|                      dd¦  «        z   dz   S )Nz-attempt to quote an invalid worksheet name %rrI   z'')rM   r   Úreplace)Úunquoted_sheet_names    r   Úquote_sheet_namerQ   £   sS   € ÝÐ/Ñ0Ô0ð SÝØ;Ð>QÑQñSô Sð 	SàÐ%×-Ò-¨d°EÑ:Ô:Ñ:¸TÑAÐAr   )FF)FFFF)ÚreÚ
ExcelMagicr   r   Úcompatr   ÚcompileÚ
IGNORECASEr   r<   r>   r?   r@   r   r#   r%   r.   r9   rC   rG   rM   rQ   © r   r   ú<module>rX      sK  ðð
 
€	€	€	Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð àˆbŒjÐ8¸"¼-ÑHÔH€Ø�”
Ð/Ñ0Ô0€Ø�”
Ð?ÀÄÑOÔO€Ø�”ÐLÈbÌmÑ\Ô\€ØˆrŒzÐ3°R´]ÑCÔC€ð	ð 	ð 	ð&ð &ð &ð$ð ð ð$:ð :ð :ð :ð2 >Cð
ð 
ð 
ð 
ð$?ð $?ð $?ðN	ð 	ð 	ðð ð ðBð Bð Bð Bð Br   