o
    q¨Êh÷p ã                   @   sê  d Z ddlmZ ddlZddlZddlmZ ddlm	Z	m
Z
mZmZmZmZ ddlT g d¢ZdZd	Zd
ZdZdZdZdZdddddddœZee ee ee e ee e ee e ee e eee e ee e ee e ee ee dœjZdZd
ZdZd	ZdZdZ dZ!dZ"dddddd d!d"d#œZ#d$Z$g d%¢Z%g d&¢Z&g d'¢Z'g d(¢Z(g d)¢Z)e%e%e&e'e'e(e(e)d*œZ*g d+¢Z+i dd,“dd-“d	d.“dd/“d
d0“dd1“d2d3“d4d5“dd6“d7d8“d9d:“d;d<“d=d>“d?d@“dAdB“dCdD“ddE“i dFdG“dHdI“dJdK“dLdM“dNdO“dPdQ“dRdS“dTdU“dVdW“dXdY“dZd[“d\d]“d^d_“d`da“dbdc“ddd“dedf“¥i dgdh“didj“dkdl“dmdn“dodp“dqdr“dsdt“dudv“dwdx“dydz“d{d|“d}d~“dd€“d�d‚“dƒd„“d…d†“d‡dˆ“¥i d‰dŠ“d‹dŒ“d�dŽ“d�d�“d‘d’“d“d”“d•d–“d—d˜“d™dš“dd›“dœd�“dždŸ“d d¡“d¢d£“d¤d¥“d¦d§“d¨d©“¥i dªd«“d¬d­“d®d¯“d°d±“d²d³“d´dµ“d¶d·“d¸d¹“dºd»“d¼d½“d¾d¿“dÀdÁ“dÂdÃ“dÄdÅ“dÆdÇ“dÈdÉ“dÊdË“¥i dÌdÍ“dÎdÏ“dÐdÑ“dÒdÓ“dÔdÕ“dÖd×“dØdÙ“dÚdÛ“dÜdÝ“dÞdß“dàdá“dâdã“dädå“dædç“dèdé“dêdë“dìdí“¥i dîdï“dðdñ“dòdó“dôdõ“död÷“dødù“dúdû“düdý“dþdÿ“�d �d“�d�d“�d�d“�d�d“�d�d	“�d
�d“�d�d“�d�d“¥i �d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d �d!“�d"�d#“�d$�d%“�d&�d'“�d(�d)“�d*�d+“�d,�d-“�d.�d/“�d0�d1“¥i �d2�d3“�d4�d5“�d6�d7“�d8�d9“�d:�d;“�d<�d=“�d>�d?“�d@�dA“�dB�dC“�dD�dE“�dF�dG“�dH�dI“�dJ�dK“�dL�dM“�dN�dO“�dP�dQ“�dR�dS“¥i �dT�dU“�dV�dW“�dX�dY“�dZ�d[“�d\�d]“�d^�d_“�d`�da“�db�dc“�dd�de“�df�dg“�dh�di“�dj�dk“�dl�dm“�dn�do“�dp�dq“�dr�ds“�dt�du“¥i �dv�dw“�dx�dy“�dz�d{“�d|�d}“�d~�d“�d€�d�“�d‚�dƒ“�d„�d…“�d†�d‡“�dˆ�d‰“�dŠ�d‹“�dŒ�d�“�dŽ�d�“�d��d‘“�d’�d““�d”�d•“�d–�d—“¥i �d˜�d™“�dš�d›“�dœ�d�“�dž�dŸ“�d �d¡“�d¢�d£“�d¤�d¥“�d¦�d§“�d¨�d©“�dª�d«“�d¬�d­“�d®�d¯“�d°�d±“�d²�d³“�d´�dµ“�d¶�d·“�d¸�d¹“¥i �dº�d»“�d¼�d½“�d¾�d¿“�dÀ�dÁ“�dÂ�dÃ“�dÄ�dÅ“�dÆ�dÇ“�dÈ�dÉ“�dÊ�dË“�dÌ�dÍ“�dÎ�dÏ“�dÐ�dÑ“�dÒ�dÓ“�dÔ�dÕ“�dÖ�d×“�dØ�dÙ“�dÚ�dÛ“¥i �dÜ�dÝ“�dÞ�dß“�dà�dá“�dâ�dã“�dä�då“�dæ�dç“�dè�dé“�dê�dë“�dì�dí“�dî�dï“�dð�dñ“�dò�dó“�dô�dõ“�dö�d÷“�dø�dù“�dú�dû“�dü�dý“¥i �dþ�dÿ“�d �d“�d�d“�d�d“�d�d“�d�d	“�d
�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“�d�d“¥�d �d!�d"�d#�d$�d%œ¥Z,�d&�d'�d(�d)�d*�d+�d,�d-�d.�d/œ	Z-e.g �d0¢ƒZ/e0e1e0e1e0e1fZ2e1e0e1e0e1e0fZ3�d1�d2„ Z4�d‹�d3�d4„Z5	�d‹�d5�d6„Z6�d‹�d7�d8„Z7�d‹�d9�d:„Z8�dŒ�d;�d<„Z9	�dŒ�d=�d>„Z:G �d?�d@„ �d@e;ƒZ<G �dA�dB„ �dBe=ƒZ>G �dC�dD„ �dDe?ƒZ@dZAd
ZBdZCd2ZDd4ZEdZFeGd7dCƒ\ZHZIZJZKZLZM�dE�dF„ ZN�dG�dH„ ZO�dI�dJ„ ZP�dK�dL„ ZQ�dM�dN„ ZR�dO�dP„ ZS�dQ�dR„ ZT�dS�dT„ ZU�dU�dV„ ZVeeNe!eWiZXeeNe!eNiZYeeVe!eNiZZeAeXeej[d`�dWfeBeXeej\d`�dXfeCeXeej]ds�dYfeDeXeej^ds�dZfeEeXeeOd‡�d[feFeZe!ej[dL�d\feHeYeePd9�d]feIeYeeQd9�d^feJeYeeRd9�d_feKeYeeSd9�d`feLeYeeTd9�dafeMeYeeUd9�dbfiZ_�dc�dd„ d¨�dX�def�df�dd„ d¨�dW�def�dg�dd„ d•�de�dhf�diœZ`�djZa�djZbdZcd9Zd�d��dk�dl„Ze		�dŽ�dm�dn„Zf�d��do�dp„Zg�d��dq�dr„Zh�d��ds�dt„Zi�du�dv„ Zj�dŒ�dw�dx„Zk�d��dy�dz„Zl�d{�d|„ Zm�dŒ�d}�d~„Zn�d��d�d€„Zo�d��d‚„ Zp�d��dƒ�d„„Zq�d…�d†„ Zr�d‡�dˆ„ Zs�d‰�dŠ„ ZtdS (‘  z9
Module for parsing/evaluating Microsoft Excel formulas.
é    )Úprint_functionN)Úunpacké   )Ú
BaseObjectÚ	XLRDErrorÚerror_text_from_codeÚhex_char_dumpÚunpack_string_update_posÚunpack_unicode_update_pos)Ú*)ÚoBOOLÚoERRÚoNUMÚoREFÚoRELÚoSTRGÚoUNKÚdecompile_formulaÚdump_formulaÚevaluate_name_formulaÚ
okind_dictÚrangename3dÚrangename3drelÚcellnameÚcellnameabsÚcolnameÚFMLA_TYPE_CELLÚFMLA_TYPE_SHAREDÚFMLA_TYPE_ARRAYÚFMLA_TYPE_COND_FMTÚFMLA_TYPE_DATA_VALÚFMLA_TYPE_NAMEÚOperandÚRef3Dé   é   é   é   é    é?   ÚCELLÚSHAREDÚARRAYzCOND-FMTzDATA-VALÚNAME)r   r$   r%   r&   r'   r(   )r   r$   é   r'   é   r(   é#   é9   é:   é;   é,   é-   é   é   éÿÿÿÿéþÿÿÿr   r   r   r   r   r   r   ÚoMSNG)r9   r8   r   r   r$   r6   r%   r7   ú,)@r9   r%   r%   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r8   r9   r8   r&   r%   r$   r$   r6   é	   r&   r$   r6   r&   r%   é   r7   r7   r7   r$   r%   r=   r%   r=   r$   r$   r9   r9   r9   r9   r9   r9   r9   r9   r6   r9   r9   r9   r9   r9   r9   r9   )@r9   r7   r7   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r8   r9   r8   é   r7   r$   r$   r6   r<   r<   r$   r6   r>   r%   r=   r=   r=   r=   r6   r%   r=   r%   r=   r6   r6   r9   r9   r9   r9   r9   r9   r9   r9   r6   r9   r9   r9   r9   r9   r9   r9   )@r9   r7   r7   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r8   r9   r8   r>   r7   r$   r$   r6   r<   r<   r6   r%   r>   r%   r=   r=   r=   r=   r6   r%   r=   r%   r=   r6   r6   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   )@r9   r7   r7   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r8   r9   r8   r9   r9   r$   r$   r6   r<   r<   r6   r%   r.   r%   r=   r=   r=   r=   r6   r%   r=   r%   r=   r6   r6   r9   r9   r9   r9   r9   r9   r9   r9   r9   é   é   é   r@   rA   r9   r9   )@r9   r7   r7   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r8   r8   r8   r9   r9   r$   r$   r6   r<   r<   r6   r%   r7   r7   r<   r=   r=   r=   r6   r7   r<   r7   r<   r6   r6   r9   r9   r9   r9   r9   r9   r9   r9   r9   r=   r=   r>   r=   r>   r9   r9   )é   rA   é   é(   r5   é2   éF   éP   )@ÚUnk00ÚExpÚTblÚAddÚSubÚMulÚDivÚPowerÚConcatÚLTÚLEÚEQÚGEÚGTÚNEÚIsectÚListÚRangeÚUplusÚUminusÚPercentÚParenÚMissArgÚStrÚExtendedÚAttrÚSheetÚEndSheetÚErrÚBoolÚIntÚNumÚArrayÚFuncÚFuncVarÚNameÚRefÚAreaÚMemAreaÚMemErrÚMemNoMemÚMemFuncÚRefErrÚAreaErrÚRefNÚAreaNÚMemAreaNÚ	MemNoMemNÚ rx   rx   rx   rx   rx   rx   rx   ÚFuncCEÚNameXÚRef3dÚArea3dÚRefErr3dÚ	AreaErr3drx   rx   )ÚCOUNTr   rC   r%   r   ÚVÚR)ÚIFr$   r6   r%   r6   r€   ÚVRR)ÚISNAr   r   r$   r   r€   r€   )ÚISERRORr   r   r$   r   r€   r€   )ÚSUMr   rC   r%   r   r€   r�   )ÚAVERAGEr   rC   r%   r   r€   r�   é   )ÚMINr   rC   r%   r   r€   r�   r=   )ÚMAXr   rC   r%   r   r€   r�   )ÚROWr   r   r%   r   r€   r�   r<   )ÚCOLUMNr   r   r%   r   r€   r�   é
   )ÚNAr   r   r$   r   r€   rx   r>   )ÚNPVr$   rC   r%   r$   r€   ÚVRé   )ÚSTDEVr   rC   r%   r   r€   r�   é   )ÚDOLLARr   r$   r%   r   r€   r€   é   )ÚFIXEDr$   r6   r%   r6   r€   ÚVVVr.   )ÚSINr   r   r$   r   r€   r€   )ÚCOSr   r   r$   r   r€   r€   r/   )ÚTANr   r   r$   r   r€   r€   r@   )ÚATANr   r   r$   r   r€   r€   é   )ÚPIr   r   r$   r   r€   rx   rB   )ÚSQRTr   r   r$   r   r€   r€   rA   )ÚEXPr   r   r$   r   r€   r€   é   )ÚLNr   r   r$   r   r€   r€   é   )ÚLOG10r   r   r$   r   r€   r€   é   )ÚABSr   r   r$   r   r€   r€   r?   )ÚINTr   r   r$   r   r€   r€   é   )ÚSIGNr   r   r$   r   r€   r€   é   )ÚROUNDr$   r$   r$   r$   r€   ÚVVé   )ÚLOOKUPr$   r6   r%   r$   r€   r�   é   )ÚINDEXr$   r%   r‘   r%   r�   ÚRVVVrC   )ÚREPTr$   r$   r$   r$   r€   r«   é   )ÚMIDr6   r6   r$   r6   r€   r—   )ÚLENr   r   r$   r   r€   r€   é!   )ÚVALUEr   r   r$   r   r€   r€   é"   )ÚTRUEr   r   r$   r   r€   rx   r0   )ÚFALSEr   r   r$   r   r€   rx   é$   )ÚANDr   rC   r%   r   r€   r�   é%   )ÚORr   rC   r%   r   r€   r�   é&   )ÚNOTr   r   r$   r   r€   r€   é'   )ÚMODr$   r$   r$   r$   r€   r«   rD   )ÚDCOUNTr6   r6   r$   r6   r€   ÚRRRé)   )ÚDSUMr6   r6   r$   r6   r€   rÃ   é*   )ÚDAVERAGEr6   r6   r$   r6   r€   rÃ   é+   )ÚDMINr6   r6   r$   r6   r€   rÃ   r4   )ÚDMAXr6   r6   r$   r6   r€   rÃ   r5   )ÚDSTDEVr6   r6   r$   r6   r€   rÃ   é.   )ÚVARr   rC   r%   r   r€   r�   é/   )ÚDVARr6   r6   r$   r6   r€   rÃ   é0   )ÚTEXTr$   r$   r$   r$   r€   r«   é1   )ÚLINESTr   r%   r%   r%   ÚAÚRRVVrE   )ÚTRENDr   r%   r%   r%   rÔ   ÚRRRVé3   )ÚLOGESTr   r%   r%   r%   rÔ   rÕ   é4   )ÚGROWTHr   r%   r%   r%   rÔ   r×   é8   )ÚPVr6   r7   r%   r7   r€   ÚVVVVVr1   )ÚFVr6   r7   r%   r7   r€   rÞ   r2   )ÚNPERr6   r7   r%   r7   r€   rÞ   r3   )ÚPMTr6   r7   r%   r7   r€   rÞ   é<   )ÚRATEr6   rˆ   r%   rˆ   r€   ÚVVVVVVé=   )ÚMIRRr6   r6   r$   r6   r€   ÚRVVé>   )ÚIRRr   r$   r%   r$   r€   ÚRV)ÚRANDr   r   r�   r   r€   rx   é@   )ÚMATCHr$   r6   r%   r6   r€   rƒ   éA   )ÚDATEr6   r6   r$   r6   r€   r—   éB   )ÚTIMEr6   r6   r$   r6   r€   r—   éC   )ÚDAYr   r   r$   r   r€   r€   éD   )ÚMONTHr   r   r$   r   r€   r€   éE   )ÚYEARr   r   r$   r   r€   r€   rF   )ÚWEEKDAYr   r$   r%   r$   r€   r«   éG   )ÚHOURr   r   r$   r   r€   r€   éH   )ÚMINUTEr   r   r$   r   r€   r€   éI   )ÚSECONDr   r   r$   r   r€   r€   éJ   )ÚNOWr   r   r�   r   r€   rx   éK   )ÚAREASr   r   r$   r   r€   r�   éL   )ÚROWSr   r   r$   r   r€   r�   éM   )ÚCOLUMNSr   r   r$   r   r€   r�   éN   )ÚOFFSETr6   r7   r%   r7   r�   ÚRVVVVéR   )ÚSEARCHr$   r6   r%   r6   r€   r—   éS   )Ú	TRANSPOSEr   r   r$   r   rÔ   rÔ   éV   )ÚTYPEr   r   r$   r   r€   r€   é\   )Ú	SERIESSUMr%   r%   r$   r%   r€   ÚVVVAéa   )ÚATAN2r$   r$   r$   r$   r€   r«   éb   )ÚASINr   r   r$   r   r€   r€   éc   )ÚACOSr   r   r$   r   r€   r€   éd   )ÚCHOOSEr$   rC   r%   r$   r€   r�   ée   )ÚHLOOKUPr6   r%   r%   r%   r€   ÚVRRVéf   )ÚVLOOKUPr6   r%   r%   r%   r€   r  éi   )ÚISREFr   r   r$   r   r€   r�   ém   )ÚLOGr   r$   r%   r$   r€   r«   éo   )ÚCHARr   r   r$   r   r€   r€   ép   )ÚLOWERr   r   r$   r   r€   r€   éq   )ÚUPPERr   r   r$   r   r€   r€   ér   )ÚPROPERr   r   r$   r   r€   r€   és   )ÚLEFTr   r$   r%   r$   r€   r«   ét   )ÚRIGHTr   r$   r%   r$   r€   r«   éu   )ÚEXACTr$   r$   r$   r$   r€   r«   év   )ÚTRIMr   r   r$   r   r€   r€   éw   )ÚREPLACEr%   r%   r$   r%   r€   ÚVVVVéx   )Ú
SUBSTITUTEr6   r%   r%   r%   r€   r6  éy   )ÚCODEr   r   r$   r   r€   r€   é|   )ÚFINDr$   r6   r%   r6   r€   r—   é}   )r*   r   r$   r‘   r$   r€   r�   é~   )ÚISERRr   r   r$   r   r€   r€   é   )ÚISTEXTr   r   r$   r   r€   r€   é€   )ÚISNUMBERr   r   r$   r   r€   r€   é�   )ÚISBLANKr   r   r$   r   r€   r€   é‚   )ÚTr   r   r$   r   r€   r�   éƒ   )ÚNr   r   r$   r   r€   r�   éŒ   )Ú	DATEVALUEr   r   r$   r   r€   r€   é�   )Ú	TIMEVALUEr   r   r$   r   r€   r€   éŽ   )ÚSLNr6   r6   r$   r6   r€   r—   é�   )ÚSYDr%   r%   r$   r%   r€   r6  é�   )ÚDDBr%   r7   r%   r7   r€   rÞ   é”   )ÚINDIRECTr   r$   r‘   r$   r�   r«   é¢   )ÚCLEANr   r   r$   r   r€   r€   é£   )ÚMDETERMr   r   r$   r   r€   rÔ   é¤   )ÚMINVERSEr   r   r$   r   rÔ   rÔ   é¥   )ÚMMULTr$   r$   r$   r$   rÔ   ÚAAé§   )ÚIPMTr%   rˆ   r%   rˆ   r€   rä   é¨   )ÚPPMTr%   rˆ   r%   rˆ   r€   rä   é©   )ÚCOUNTAr   rC   r%   r   r€   r�   é·   )ÚPRODUCTr   rC   r%   r   r€   r�   é¸   )ÚFACTr   r   r$   r   r€   r€   é½   )ÚDPRODUCTr6   r6   r$   r6   r€   rÃ   é¾   )Ú	ISNONTEXTr   r   r$   r   r€   r€   éÁ   )ÚSTDEVPr   rC   r%   r   r€   r�   éÂ   )ÚVARPr   rC   r%   r   r€   r�   éÃ   )ÚDSTDEVPr6   r6   r$   r6   r€   rÃ   éÄ   )ÚDVARPr6   r6   r$   r6   r€   rÃ   éÅ   )ÚTRUNCr   r$   r%   r$   r€   r«   éÆ   )Ú	ISLOGICALr   r   r$   r   r€   r€   éÇ   )ÚDCOUNTAr6   r6   r$   r6   r€   rÃ   éÌ   )ÚUSDOLLARr   r$   r%   r$   r€   r«   éÍ   )ÚFINDBr$   r6   r%   r6   r€   r—   éÎ   )ÚSEARCHBr$   r6   r%   r6   r€   r—   éÏ   )ÚREPLACEBr%   r%   r$   r%   r€   r6  éÐ   )ÚLEFTBr   r$   r%   r$   r€   r«   éÑ   )ÚRIGHTBr   r$   r%   r$   r€   r«   éÒ   )ÚMIDBr6   r6   r$   r6   r€   r—   éÓ   )ÚLENBr   r   r$   r   r€   r€   éÔ   )ÚROUNDUPr$   r$   r$   r$   r€   r«   éÕ   )Ú	ROUNDDOWNr$   r$   r$   r$   r€   r«   éÖ   )ÚASCr   r   r$   r   r€   r€   é×   )ÚDBCSr   r   r$   r   r€   r€   éØ   )ÚRANKr$   r6   r%   r6   r€   ÚVRVéÛ   )ÚADDRESSr$   r7   r%   r7   r€   rÞ   éÜ   )ÚDAYS360r$   r6   r%   r6   r€   r—   éÝ   )ÚTODAYr   r   r�   r   r€   rx   éÞ   )ÚVDBr7   r=   r%   r=   r€   ÚVVVVVVVéã   )ÚMEDIANr   rC   r%   r   r€   r�   éä   )Ú
SUMPRODUCTr   rC   r%   r   r€   rÔ   éå   )ÚSINHr   r   r$   r   r€   r€   éæ   )ÚCOSHr   r   r$   r   r€   r€   éç   )ÚTANHr   r   r$   r   r€   r€   éè   )ÚASINHr   r   r$   r   r€   r€   éé   )ÚACOSHr   r   r$   r   r€   r€   éê   )ÚATANHr   r   r$   r   r€   r€   éë   )ÚDGETr6   r6   r$   r6   r€   rÃ   éô   )ÚINFOr   r   r$   r   r€   r€   é÷   )ÚDBr%   r7   r%   r7   r€   rÞ   éü   )Ú	FREQUENCYr$   r$   r$   r$   rÔ   ÚRRi  )z
ERROR.TYPEr   r   r$   r   r€   r€   i  )ÚAVEDEVr   rC   r%   r   r€   r�   i  )ÚBETADISTr6   r7   r%   r   r€   r€   i  )ÚGAMMALNr   r   r$   r   r€   r€   i  )ÚBETAINVr6   r7   r%   r   r€   r€   i  )Ú	BINOMDISTr%   r%   r$   r%   r€   r6  i  )ÚCHIDISTr$   r$   r$   r$   r€   r«   i  )ÚCHIINVr$   r$   r$   r$   r€   r«   i  )ÚCOMBINr$   r$   r$   r$   r€   r«   i  )Ú
CONFIDENCEr6   r6   r$   r6   r€   r—   i  )Ú	CRITBINOMr6   r6   r$   r6   r€   r—   i  )ÚEVENr   r   r$   r   r€   r€   i  )Ú	EXPONDISTr6   r6   r$   r6   r€   r—   i  )ÚFDISTr6   r6   r$   r6   r€   r—   i  )ÚFINVr6   r6   r$   r6   r€   r—   i  )ÚFISHERr   r   r$   r   r€   r€   i  )Ú	FISHERINVr   r   r$   r   r€   r€   i  )ÚFLOORr$   r$   r$   r$   r€   r«   i  )Ú	GAMMADISTr%   r%   r$   r%   r€   r6  i  )ÚGAMMAINVr6   r6   r$   r6   r€   r—   i   )ÚCEILINGr$   r$   r$   r$   r€   r«   i!  )ÚHYPGEOMDISTr%   r%   r$   r%   r€   r6  i"  )ÚLOGNORMDISTr6   r6   r$   r6   r€   r—   i#  )ÚLOGINVr6   r6   r$   r6   r€   r—   i$  )ÚNEGBINOMDISTr6   r6   r$   r6   r€   r—   i%  )ÚNORMDISTr%   r%   r$   r%   r€   r6  i&  )Ú	NORMSDISTr   r   r$   r   r€   r€   i'  )ÚNORMINVr6   r6   r$   r6   r€   r—   i(  )ÚNORMSINVr   r   r$   r   r€   r€   i)  )ÚSTANDARDIZEr6   r6   r$   r6   r€   r—   i*  )ÚODDr   r   r$   r   r€   r€   i+  )ÚPERMUTr$   r$   r$   r$   r€   r«   i,  )ÚPOISSONr6   r6   r$   r6   r€   r—   i-  )ÚTDISTr6   r6   r$   r6   r€   r—   i.  )ÚWEIBULLr%   r%   r$   r%   r€   r6  i/  )ÚSUMXMY2r$   r$   r$   r$   r€   r^  i0  )ÚSUMX2MY2r$   r$   r$   r$   r€   r^  i1  )ÚSUMX2PY2r$   r$   r$   r$   r€   r^  i2  )ÚCHITESTr$   r$   r$   r$   r€   r^  i3  )ÚCORRELr$   r$   r$   r$   r€   r^  i4  )ÚCOVARr$   r$   r$   r$   r€   r^  i5  )ÚFORECASTr6   r6   r$   r6   r€   ÚVAAi6  )ÚFTESTr$   r$   r$   r$   r€   r^  i7  )Ú	INTERCEPTr$   r$   r$   r$   r€   r^  i8  )ÚPEARSONr$   r$   r$   r$   r€   r^  i9  )ÚRSQr$   r$   r$   r$   r€   r^  i:  )ÚSTEYXr$   r$   r$   r$   r€   r^  i;  )ÚSLOPEr$   r$   r$   r$   r€   r^  i<  )ÚTTESTr%   r%   r$   r%   r€   ÚAAVVi=  )ÚPROBr6   r%   r%   r6   r€   ÚAAVi>  )ÚDEVSQr   rC   r%   r   r€   r�   i?  )ÚGEOMEANr   rC   r%   r   r€   r�   i@  )ÚHARMEANr   rC   r%   r   r€   r�   iA  )ÚSUMSQr   rC   r%   r   r€   r�   iB  )ÚKURTr   rC   r%   r   r€   r�   iC  )ÚSKEWr   rC   r%   r   r€   r�   iD  )ÚZTESTr$   r6   r%   r$   r€   rê   iE  )ÚLARGEr$   r$   r$   r$   r€   rê   iF  )ÚSMALLr$   r$   r$   r$   r€   rê   iG  )ÚQUARTILEr$   r$   r$   r$   r€   rê   iH  )Ú
PERCENTILEr$   r$   r$   r$   r€   rê   iI  )ÚPERCENTRANKr$   r6   r%   r$   r€   rê   iJ  )ÚMODEr   rC   r%   r   r€   rÔ   iK  )ÚTRIMMEANr$   r$   r$   r$   r€   rê   iL  )ÚTINVr$   r$   r$   r$   r€   r«   iP  )ÚCONCATENATEr   rC   r%   r   r€   r€   iQ  )ÚPOWERr$   r$   r$   r$   r€   r«   iV  )ÚRADIANSr   r   r$   r   r€   r€   iW  )ÚDEGREESr   r   r$   r   r€   r€   iX  )ÚSUBTOTALr$   rC   r%   r$   r€   r�   iY  )ÚSUMIFr$   r6   r%   r6   r€   ÚRVRiZ  )ÚCOUNTIFr$   r$   r$   r$   r€   rê   i[  )Ú
COUNTBLANKr   r   r$   r   r€   r�   i^  )ÚISPMTr%   r%   r$   r%   r€   r6  i_  )ÚDATEDIFr6   r6   r$   r6   r€   r—   i`  )Ú
DATESTRINGr   r   r$   r   r€   r€   ia  )ÚNUMBERSTRINGr$   r$   r$   r$   r€   r«   ib  )ÚROMANr   r$   r%   r$   r€   r«   if  )ÚGETPIVOTDATAr$   r$   r$   r$   r€   rê   ig  )Ú	HYPERLINKr   r$   r%   r$   r€   r«   ih  )ÚPHONETICr   r   r$   r   r€   r€   ii  )ÚAVERAGEAr   rC   r%   r   r€   r�   ij  )ÚMAXAr   rC   r%   r   r€   r�   ik  )ÚMINAr   rC   r%   r   r€   r�   il  )ÚSTDEVPAr   rC   r%   r   r€   r�   im  )ÚVARPAr   rC   r%   r   r€   r�   in  )ÚSTDEVAr   rC   r%   r   r€   r�   io  )ÚVARAr   rC   r%   r   r€   r�   ip  )ÚBAHTTEXTr   r   r$   r   r€   r€   iq  )ÚTHAIDAYOFWEEKr   r   r$   r   r€   r€   ir  )Ú	THAIDIGITr   r   r$   r   r€   r€   is  )ÚTHAIMONTHOFYEARr   r   r$   r   r€   r€   it  )ÚTHAINUMSOUNDr   r   r$   r   r€   r€   iu  )ÚTHAINUMSTRINGr   r   r$   r   r€   r€   iv  )ÚTHAISTRINGLENGTHr   r   r$   r   r€   r€   )ÚISTHAIDIGITr   r   r$   r   r€   r€   )ÚROUNDBAHTDOWNr   r   r$   r   r€   r€   )ÚROUNDBAHTUPr   r   r$   r   r€   r€   )ÚTHAIYEARr   r   r$   r   r€   r€   )ÚRTDr$   r7   r%   r   r€   r€   )iw  ix  iy  iz  i{  zSkip??ÚVolatileÚIfÚChooseÚSkipÚSumÚAssignÚSpaceÚSpaceVolatile)	r   r   r$   r%   r&   r'   r(   rì   rî   )r=   r&   r�   r>   r¬   r®   rÎ   c                 C   s   t dd„ t| |j|jƒD ƒƒS )Nc                 s   s    � | ]\}}}|||ƒV  qd S ©N© )Ú.0ÚfuncÚnumaÚnumbr(  r(  ú>/var/www/html/env/lib/python3.10/site-packages/xlrd/formula.pyÚ	<genexpr>“  s
   € ÿ
ÿzdo_box_funcs.<locals>.<genexpr>)ÚtupleÚzipÚcoords)Ú	box_funcsÚboxaÚboxbr(  r(  r-  Údo_box_funcs’  s   þr5  c           	      C   sv   |d? d@ }|d? d@ }| }|d@ }|r)|r|dkr|d8 }|r(|dkr(|d8 }n|r/||8 }|r5||8 }||||fS )	Nr.   r   r•   éÿ   é €  é   rB  é   r(  ©	ÚrowvalÚcolvalÚreldeltaÚbrowxÚbcolxÚrow_relÚcol_relÚrowxÚcolxr(  r(  r-  Úadjust_cell_addr_biff8˜  s   €rD  c           	      C   sv   | d? d@ }| d? d@ }| d@ }|}|r)|r|dkr|d8 }|r(|dkr(|d8 }n|r/||8 }|r5||8 }||||fS )	Nr.   r   r•   iÿ?  i    i @  rB  r9  r(  r:  r(  r(  r-  Úadjust_cell_addr_biff_le7©  s   €rE  c                 C   s\   |dkrt d| ||d … ƒ\}}t|||||ƒS t d| ||d … ƒ\}}t|||||ƒS )NrG   ú<HHr%   z<HBr6   ©r   rD  rE  )ÚdataÚposÚbvr=  r>  r?  r;  r<  r(  r(  r-  Úget_cell_addr»  s   
ÿrK  c                 C   s”   |dkr't d| ||d … ƒ\}}}}	t|||||ƒ}
t||	|||ƒ}|
|fS t d| ||d … ƒ\}}}}	t|||||ƒ}
t||	|||ƒ}|
|fS )NrG   z<HHHHr&   z<HHBBrˆ   rG  )rH  rI  rJ  r=  r>  r?  Úrow1valÚrow2valÚcol1valÚcol2valÚres1Úres2r(  r(  r-  Úget_cell_range_addrÆ  s   
ÿ
ÿrR  c           
      C   s²  z| j | }W n ty   td|t| j ƒf | jd� Y dS w |\}}}|| jkrG|r7td||f | jd� |d  krB|ksEJ ‚ J ‚dS || jkr[|rYtd||f | jd� dS |d  kre|krvn n|rttd	||f | jd� d
S |d  kr€|kr�n n|rŽtd|f | jd� dS t| jƒ}d|  kr¤|  kr¤|k s½n |r»td||f | jd� td| | jd� dS | j| }| j| }	d|  krÒ|	ksÕdS  dS ||	fS )Nz:!!! get_externsheet_local_range: refx=%d, not in range(%d)©Úfile)é›ÿÿÿrU  z5/// get_externsheet_local_range(refx=%d) -> addins %riþÿ  )éûÿÿÿrV  z7/// get_externsheet_local_range(refx=%d) -> external %r©éüÿÿÿrX  z@/// get_externsheet_local_range(refx=%d) -> unspecified sheet %r©r8   r8   iÿÿ  z</// get_externsheet_local_range(refx=%d) -> deleted sheet(s)©r9   r9   r   z./// get_externsheet_local_range(refx=%d) -> %rú%--- first/last sheet not in range(%d))éšÿÿÿr\  ©éýÿÿÿr^  )Ú_externsheet_infoÚ
IndexErrorÚprintÚlenÚlogfileÚ_supbook_addins_inxÚ_supbook_locals_inxÚ_all_sheets_map)
ÚbkÚrefxÚblahÚinfoÚref_recordxÚref_first_sheetxÚref_last_sheetxÚnsheetsÚxlrd_sheetx1Úxlrd_sheetx2r(  r(  r-  Úget_externsheet_local_rangeØ  sR   ÿÿý



 

ÿrq  c                 C   sÊ   |dkr|rt d| | jd� dS |dkr|dkrdS t| jƒ}d|  kr/|  kr/|k sIn |rGt d|||f | jd� t d| | jd� d	S | j| }| j| }d|  kr^|ksad
S  d
S ||fS )Nr   z?/// get_externsheet_local_range_b57(raw_extshtx=%d) -> externalrS  rW  r8   rZ  z6/// get_externsheet_local_range_b57(%d, %d, %d) -> ???r[  )é™ÿÿÿrr  r]  )ra  rc  rb  rf  )rg  Úraw_extshtxrl  rm  ri  rn  ro  rp  r(  r(  r-  Úget_externsheet_local_range_b57ý  s.   
 ÿÿ

ÿrt  c                   @   s   e Zd ZdS )ÚFormulaErrorN)Ú__name__Ú
__module__Ú__qualname__r(  r(  r(  r-  ru    s    ru  c                   @   s.   e Zd ZdZdZeZdZd	dd„Zdd„ Z	dS )
r"   a·  
    Used in evaluating formulas.
    The following table describes the kinds and how their values
    are represented.

    .. raw:: html

        <table border="1" cellpadding="7">
        <tr>
        <th>Kind symbol</th>
        <th>Kind number</th>
        <th>Value representation</th>
        </tr>
        <tr>
        <td>oBOOL</td>
        <td align="center">3</td>
        <td>integer: 0 => False; 1 => True</td>
        </tr>
        <tr>
        <td>oERR</td>
        <td align="center">4</td>
        <td>None, or an int error code (same as XL_CELL_ERROR in the Cell class).
        </td>
        </tr>
        <tr>
        <td>oMSNG</td>
        <td align="center">5</td>
        <td>Used by Excel as a placeholder for a missing (not supplied) function
        argument. Should *not* appear as a final formula result. Value is None.</td>
        </tr>
        <tr>
        <td>oNUM</td>
        <td align="center">2</td>
        <td>A float. Note that there is no way of distinguishing dates.</td>
        </tr>
        <tr>
        <td>oREF</td>
        <td align="center">-1</td>
        <td>The value is either None or a non-empty list of
        absolute Ref3D instances.<br>
        </td>
        </tr>
        <tr>
        <td>oREL</td>
        <td align="center">-2</td>
        <td>The value is None or a non-empty list of
        fully or partially relative Ref3D instances.
        </td>
        </tr>
        <tr>
        <td>oSTRG</td>
        <td align="center">1</td>
        <td>A Unicode string.</td>
        </tr>
        <tr>
        <td>oUNK</td>
        <td align="center">0</td>
        <td>The kind is unknown or ambiguous. The value is None</td>
        </tr>
        </table>
    Nú?r   c                 C   s,   |d ur|| _ |d ur|| _|| _|| _d S r'  )ÚkindÚvalueÚrankÚtext)ÚselfÚakindÚavalueÚarankÚatextr(  r(  r-  Ú__init__b  s   
zOperand.__init__c                 C   s    t  | jd¡}d|| j| jf S )Nz?Unknown kind?z#Operand(kind=%s, value=%r, text=%r))r   Úgetrz  r{  r}  )r~  Ú	kind_textr(  r(  r-  Ú__repr__l  s   ÿzOperand.__repr__)NNr   ry  )
rv  rw  rx  Ú__doc__r{  r   rz  r}  rƒ  r†  r(  r(  r(  r-  r"     s    @

r"   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )r#   aõ  
    Represents an absolute or relative 3-dimensional reference to a box
    of one or more cells.

    The ``coords`` attribute is a tuple of the form::

      (shtxlo, shtxhi, rowxlo, rowxhi, colxlo, colxhi)

    where ``0 <= thingxlo <= thingx < thingxhi``.

    .. note::
      It is quite possible to have ``thingx > nthings``; for example
      ``Print_Titles`` could have ``colxhi == 256`` and/or ``rowxhi == 65536``
      irrespective of how many columns/rows are actually used in the worksheet.
      The caller will need to decide how to handle this situation.
      Keyword: :class:`IndexError` :-)

    The components of the coords attribute are also available as individual
    attributes: ``shtxlo``, ``shtxhi``, ``rowxlo``, ``rowxhi``, ``colxlo``, and
    ``colxhi``.

    The ``relflags`` attribute is a 6-tuple of flags which indicate whether
    the corresponding (sheet|row|col)(lo|hi) is relative (1) or absolute (0).

    .. note::
      There is necessarily no information available as to what cell(s)
      the reference could possibly be relative to. The caller must decide what
      if any use to make of ``oREL`` operands.

    .. note:
      A partially relative reference may well be a typo.
      For example, define name ``A1Z10`` as ``$a$1:$z10`` (missing ``$`` after
      ``z``) while the cursor is on cell ``Sheet3!A27``.

      The resulting :class:`Ref3D` instance will have
      ``coords = (2, 3, 0, -16, 0, 26)``
      and ``relflags = (0, 0, 0, 1, 0, 0).<br>

      So far, only one possibility of a sheet-relative component in
      a reference has been noticed: a 2D reference located in the
      "current sheet".

      This will appear as ``coords = (0, 1, ...)`` and
      ``relflags = (1, 1, ...)``.

    .. versionadded:: 0.6.0
    c                 C   sJ   |dd… | _ |dd… | _| jsd| _| j \| _| _| _| _| _| _d S )Nr   rˆ   r‘   ©r   r   r   r   r   r   )r1  ÚrelflagsÚshtxloÚshtxhiÚrowxloÚrowxhiÚcolxloÚcolxhi)r~  Úatupler(  r(  r-  rƒ  £  s   
þzRef3D.__init__c                 C   s,   | j r| j dkrd| jf S d| j| j f S )Nrˆ  zRef3D(coords=%r)zRef3D(coords=%r, relflags=%r))r‰  r1  )r~  r(  r(  r-  r†  ¬  s
   
ÿzRef3D.__repr__N)rv  rw  rx  r‡  rƒ  r†  r(  r(  r(  r-  r#   r  s    0	r#   c                 C   ó   | S r'  r(  ©Úxr(  r(  r-  Únop¼  s   r”  c                 C   s   | | S r'  r(  ©r“  Úyr(  r(  r-  Ú_opr_pow¿  ó    r—  c                 C   s   | |k S r'  r(  r•  r(  r(  r-  Ú_opr_ltÁ  r˜  r™  c                 C   s   | |kS r'  r(  r•  r(  r(  r-  Ú_opr_leÂ  r˜  rš  c                 C   s   | |kS r'  r(  r•  r(  r(  r-  Ú_opr_eqÃ  r˜  r›  c                 C   s   | |kS r'  r(  r•  r(  r(  r-  Ú_opr_geÄ  r˜  rœ  c                 C   s   | |kS r'  r(  r•  r(  r(  r-  Ú_opr_gtÅ  r˜  r�  c                 C   s   | |kS r'  r(  r•  r(  r(  r-  Ú_opr_neÆ  r˜  rž  c                 C   s"   t | ƒ}| d¡r|dd… }|S )zN
    Attempt to emulate Excel's default conversion from number to string.
    z.0Nr9   )ÚstrÚendswith)ÚnumÚsr(  r(  r-  Únum2strgÈ  s   
r£  ú+ú-r   ú/ú^ú&ú<z<=ú=z>=ú>z<>c                 C   s   |  S r'  r(  r’  r(  r(  r-  Ú<lambda>å  s    r¬  rx   c                 C   r‘  r'  r(  r’  r(  r(  r-  r¬  æ  s    c                 C   s   | d S )Ng      Y@r(  r’  r(  r(  r-  r¬  ç  r˜  ú%)rœ   r@   rB   éZ   c           W      C   sò  |t krd}|j}|j}| j}d}|r,td||j||||f | jd� t|d|| jd� |tkr4t	dƒ‚t
| }	d}
g }d}d}d}ttd ƒ}ttd ƒ}|j}dd„ }d	d
„ }dd„ }|dkrb|g}d|
  krm|k �r1n �nÁt||
 ƒ}|d@ }|d@ d? }|r‡|d }n|}t| }|	| }|rªtd|
|||||f | jd� td|| jd� |dkr¹d|||f }t|ƒ‚|�sZd|  krÆdkrÏn n|||ƒ �n{d|  krÙdkrân n|||ƒ �nh|dk�r|rñtd|| jd� t|ƒdksùJ ‚| ¡ }| ¡ }d}d}d dd |j|k … |jdd |j|k … |dd |j|k … |jdd |j|k … g¡} ttƒ}!| |!_|jtk�sB|jtk�rFt|!_nª|jtk�sR|jtk�rSn�|jt  k�ra|jk�r–n n3|jd u�r•|jd u�r•t|jƒdk�syJ ‚t|jƒdk�sƒJ ‚tt|jd |jd ƒ}"t|"ƒg|!_nZ|jt  k�r¤|jk�rïn nIt|!_|jd u�rî|jd u�rît|jƒdk�s¿J ‚t|jƒdk�sÉJ ‚tt|jd |jd ƒ}"|jd j}#|jd j}$|#|$k�rît|"|# ƒg|!_n	 ||!ƒ |�rÿtd|| jd� �nI|d k�rÃ|�rtd!|| jd� t|ƒdk�sJ ‚| ¡ }| ¡ }d"}d}d dd |j|k … |jdd |j|k … |dd |j|k … |jdd |j|k … g¡} ttd || ƒ}!|jtk�sc|jtk�rgt|!_nK|jttfv �r±|jttfv �r±t|!_|jtk�s†|jtk�r‰t|!_|jd u�r°|jd u�r°t|jƒdk�sŸJ ‚t|jƒdk�s©J ‚|j|j |!_n	 ||!ƒ |�rÁtd#|| jd� �n‡|d$k�rÖ|�rÓtd%|| jd� t|ƒdk�sÜJ ‚| ¡ }| ¡ }d&}d}d dd |j|k … |jdd |j|k … |dd |j|k … |jdd |j|k … g¡} ttd || ƒ}!|jtk�s%|jtk�r(t}!n�|jt  k�r6|jk�rkn n3|jd u�rj|jd u�rjt|jƒdk�sNJ ‚t|jƒdk�sXJ ‚tt|jd |jd ƒ}"t|"ƒg|!_nZ|jt  k�ry|jk�rÄn nIt|!_|jd u�rÃ|jd u�rÃt|jƒdk�s”J ‚t|jƒdk�sžJ ‚tt|jd |jd ƒ}"|jd j}#|jd j}$|#|$k�rÃt|"|# ƒg|!_n	 ||!ƒ |�rÔtd'|| jd� �ntd(|  k�râd)k�rìn n||t |ƒ �n^|d*k�ró�nW|d+k�r|tt!d t"dƒƒ �nG|d,k�rL|d-k�rt#||
d | j$dd.�\}%}&nt%||
d dd.�\}%}&|&|
 }|�r8td/||%f | jd� d0|% &d0d1¡ d0 }'|tt'|%t"|'ƒƒ nþ|d2k�r\|dk�sXJ ‚td3ƒ‚|d4k�rÃt(d5||
d |
d6 … ƒ\}(})t) *|(d7¡}*|(d6k�r‚|)d d8 }n0|(d k�r°d6}|�r”td9|| jd� t|ƒdk�s�J ‚|d: }d;|j } tt d t+| ƒ|d:< nd6}|�rÂtd<|(|*||)f | jd� n‡d=|  k�rÏd>k�rÜn n|d?k �sØJ ‚td@ƒ‚dA|  k�rèdk�rDn nZ|dA }+g dB¢|+ },tt,t t g|+ }-t(dCdD|+  ||
d |
d |, … ƒ\}.|+dk�rt-|.ƒ}.t.|.ƒ}'n|+dk�r(t.|.ƒ}'n|+dk�r2dE|. }'nd0t/|.  d0 }'|t|-|.t"|'ƒƒ ntdF| ƒ‚|dk�rUtdG| ƒ‚|
|7 }
qb|dk�re||ƒ �n³|dk�rïdt0|dHkƒ },t(dCdI|,  ||
d |
d |, … ƒd }/t1 *|/d ¡}0|0�sŸtdJ|/ | jd� ||ƒ �ny|0d d… \}1}2|�r¶tdK|/|1|2f | jd� t|ƒ|2k�s¿J ‚|2�rÞt2 dLdM„ ||2 d … D ƒ¡}3dN|1|3f } ||2 d …= n|1dO } ttd t+| ƒ}!||!ƒ �n)|dk�rddt0|dHkƒ },t(dPdI|,  ||
d |
d |, … ƒ\}2}/t3|2dQƒ\}4}2t3|/dRƒ\}5}/|�r/tdS|/|2|5|4f | jd� t1 *|/d ¡}0|0�sGtdT|/ | jd� ||ƒ �nÑ|0d d… \}1}6}7|�r_tdU|1|6|7f | jd� |6|2  k�rl|7k�soJ ‚ J ‚t|ƒ|2k�sxJ ‚t|ƒ|2k�s�J ‚t2 dVdM„ ||2 d … D ƒ¡}3dN|1|3f } ttd t+| ƒ}!|/dk�r||2  }8|8jt t,fv�rÀ|�r¿|8jtk�r¿tdW| jd� n˜|8jdXv�r×|�rÖ|8jd u�rÖtdY| jd� n�|2dk�rè|8j�sèt,d|!_|!_n%|2 d t0|8jƒ }9||9 }:|:jt!k�rt d|!_|!_n	|:j|:j|!_|!_|�rtdZ| jd� n@|/d[k�rX||2  }8|8jt k�rXd|8j  k�r5|2k �rXn n!||2 t0|8jƒ  }:|:jt!k�rOt d|!_|!_n	|:j|:j|!_|!_||2 d …= ||!ƒ �n´|dk�rt(d\||
d |
d … ƒd d };|�r†td]|; | jd� | j4|; }<|<j5�s™t6| |<|;||d ƒ |<j7�s¥|<j8�s¥|<j9�rË|�r±|<j:| jd^d_d`� ttd ƒ}!|�pÃ|<j7�pÃ|<j8�pÃ|<j9}|�pÉ|<j;}nt|<j<ƒdk�sÕJ ‚t= >|<j<d ¡}!t"|!_|<j?d:k�rë|<j|!_nda| j@|<j? |<jf |!_|�rtdbtA|!jƒ| jd� ||!ƒ �n|d6k�rktB||
d ||ƒ}!|�r$tdc|!| jd� |!\}=}>}?}@d }A}Bd}|A|Bd |=|=d |>|>d f}"|�rItdd|"| jd� ttd ƒ}!|dk�redd|?|?|@|@f}Cttt|"|C ƒgƒ}!||!ƒ �n­|dk�rÔtC||
d ||ƒ\}D}E|�r‡tdc|D|E| jd� |D\}F}G}H}I|E\}J}K}L}Md }A}Bd}|A|Bd |F|Jd |G|Kd f}"|�r²tdd|"| jd� ttd ƒ}!|dk�rÎdd|H|L|I|Mf}Cttt|"|C ƒgƒ}!||!ƒ �nD|d8k�rà|||ƒ �n8|dek�	rt(d\||
d |
d … ƒd },|�	r tdf|, | jd� �n|dgk�	r|||ƒ �n
|dhk�	r|||ƒ �nþ|d=k�	rå|dk�	rEtB||
d ||ƒ}!t(d\||
d |
d … ƒd }NtD| |N|ƒ\}A}Bn0tB||
d ||ƒ}!t(di||
d |
d … ƒ\}O}P}Q|�	rktdj|O|P|Q| jd� tE| |O|P|Q|ƒ\}A}B|!\}=}>}?}@|?�	p|@}R|�	p„|R}|A|Bd |=|=d |>|>d f}"||Ad:k O }|�	r¤tdd|"| jd� ttd ƒ}!|R�	rÆdd|?|?|@|@f}Ct|"|C ƒ}St|!_tF| |Sddk�|!_nt|"ƒ}St|!_tG| |Sƒ|!_t"|!_|dk�	rß|Sg|!_||!ƒ �n3|d>k�
rÀ|dk�
rtC||
d ||ƒ\}D}Et(d\||
d |
d … ƒd }NtD| |N|ƒ\}A}Bn2tC||
d ||ƒ\}D}Et(di||
d |
d … ƒ\}O}P}Q|�
r:tdl|O|P|Q| jd� tE| |O|P|Q|ƒ\}A}B||Ad:k O }|D\}F}G}H}I|E\}J}K}L}M|H�
p`|I�
p`|L�
p`|M}R|�
pe|R}|A|Bd |F|Jd |G|Kd f}"|�
rtdd|"| jd� ttd ƒ}!|R�
r¡dd|H|L|I|Mf}Ct|"|C ƒ}St|!_tF| |Sddk�|!_nt|"ƒ}St|!_tG| |Sƒ|!_t"|!_|dk�
rº|Sg|!_||!ƒ �nX|d4k�rþd}Tttd ƒ}!|dk�
rçt(dm||
d |
d … ƒ\}N};|;d8 };|N}Un,t(dn||
d |
dh … ƒ\}N};|;d8 };|N}U|Ndk�r|Nd8 }Nn|Ndk �r|N d }Nnd}T|�r#tdo|U|N|;|Tf | jd� |;|k�r6|�r2tdp| jd� d }T}|T�sd|dk�rGtD| |N|ƒ\}A}Bn|Udk�rQdq\}A}Bn| jH|N }V|Vd6k�r`dr\}A}Bnds\}A}B|T�sl|Ad:k �rzdt|;|Uf } ttd t"| ƒ}!n| j4|; }<|<j5�s�t6| |<|;||d ƒ |<j7�s™|<j8�s™|<j9�r¿|�r¥|<j:| jdudvd`� ttd ƒ}!|�p·|<j7�p·|<j8�p·|<j9}|�p½|<j;}nt|<j<ƒdk�sÉJ ‚t= >|<j<d ¡}!t"|!_|<j?d:k�rß|<j|!_nda| j@|<j? |<jf |!_|�rùtdwtA|!jƒ| jd� ||!ƒ n|tIv �r
d}||ƒ n|�rtdx| | jd� d}|dk�r!tdyƒ‚|
|7 }
d|
  k�r0|k spn |  }|�rXtJ| jdz||  ||ƒ t|ƒdk�rRtd{| jd� t| jd� ||_<t|ƒdk�rfd |_Kn|d |_K||_;||_9||_Ld|_5d S )|Nr   z1::: evaluate_name_formula %r %r %d %d %r level=%drS  r   ©Úfoutz-Excessive indirect references in NAME formulac                 S   s4  t |ƒdksJ ‚| ¡ }| ¡ }t|  \}}}}}d dd |j|k … |jdd |j|k … |dd |j|k … |jdd |j|k … g¡}	t|d ||	ƒ}
z||j }||j }W n tye   | 	|
¡ Y d S w |j
d u sp|j
d u rw| 	|
¡ d S ||j
ƒ}||j
ƒ}|||ƒ}|tkr�|rŽdnd}||
_
| 	|
¡ d S )Nr$   rx   ú(ú)r   r   )rb  ÚpopÚbinop_rulesÚjoinr|  r}  r"   rz  ÚKeyErrorÚappendr{  r   )ÚopcdÚstkÚbopÚaopÚargdictÚresult_kindr*  r|  ÚsymÚotextÚresopÚbconvÚaconvÚbvalÚavalÚresultr(  r(  r-  Údo_binop  s>   ù	

þ



z'evaluate_name_formula.<locals>.do_binopc           
   	   S   sˆ   t |ƒdksJ ‚| ¡ }|j}t|  \}}}}d |dd |j|k … |jdd |j|k … |g¡}	|d ur8||ƒ}| t||||	ƒ¡ d S ©Nr   rx   r±  r²  )	rb  r³  r{  Ú
unop_rulesrµ  r|  r}  r·  r"   )
Úopcoder½  r¹  r»  Úvalr*  r|  Úsym1Úsym2r¿  r(  r(  r-  Ú
do_unaryop'  s   ûz)evaluate_name_formula.<locals>.do_unaryopc                 S   s   d| |f }t |ƒ‚)Nz1ERROR *** Token 0x%02x (%s) found in NAME formula)ru  ©Úop_argÚ	oname_argÚmsgr(  r(  r-  Únot_in_name_formula7  s   ÿz2evaluate_name_formula.<locals>.not_in_name_formular²   é`   r7   r(   ú9Pos:%d Op:0x%02x Name:t%s Sz:%d opcode:%02xh optype:%02xhúStack =r9   ú9ERROR *** Unexpected token 0x%02x ("%s"); biff_version=%dr$   r6   r•   r.   ú
tIsect preú rG   rx   r±  r²  útIsect postr'   ú	tList prer;   ú
tList postr/   ú
tRange preú:útRange postr@   rB   rA   r    r¢   rF   ©Úlenlenú   sz=%d strg=%rú"ú""r¤   útExtended token not implementedr?   ú<BHr%   ú??Unknown??rˆ   ÚtAttrSumr8   úSUM(%s)ú)   subop=%02xh subname=t%s sz=%d nc=%02xhr§   r©   rE   ú)tSheet & tEndsheet tokens not implementedr¬   ©r   r   r$   r&   r©  ÚBBHd©r¹   r¸   úUnhandled opcode: 0x%02xúSize not set for opcode 0x%02xrD   ú BHú#*** formula/tFunc unknown FuncID:%dú    FuncID=%d name=%s nargs=%dc                 s   ó   � | ]}|j V  qd S r'  ©r}  ©r)  Úargr(  r(  r-  r.  $  ó   € z(evaluate_name_formula.<locals>.<genexpr>ú%s(%s)ú()ú<BrB  r7  ú(   FuncID=%d nargs=%d macro=%d prompt=%dú&*** formula/tFuncVar unknown FuncID:%dú!    name: %r, min~max args: %d~%dc                 s   ró  r'  rô  rõ  r(  r(  r-  r.  @  r÷  zIF testarg kind?)r   r   zIF testarg value?z$$$$$$ IF => constantr  ú<Hú   tgtnamex=%dz!!! tgtobj has problems!!!z-----------       --------)ÚheaderÚfooterú%s!%sú    tName: setting text toú  ú   r<   ú  %d bytes of cell ref formular‘   r“   ú<hxxxxxxxxhhÚtRef3d)Úr1c1ÚtArea3drF  ú<hxxxxxxxxHú+   origrefx=%d refx=%d tgtnamex=%d dodgy=%dz!!!! Self-referential !!!!rW  rY  ©éfýÿÿr  ú$<<Name #%d in external(?) file #%d>>z!!! bad tgtobj !!!z------------------ú    tNameX: setting text toúFORMULA: /// Not handled yet: tú!Fatal: token size is not positivez8End of formula. level=%d any_rel=%d any_err=%d stack=%r
ú*** Stack has unprocessed args)MÚSTACK_ALARM_LEVELÚraw_formulaÚbasic_formula_lenÚbiff_versionra  Únamerc  r   ÚSTACK_PANIC_LEVELr   Úszdictr"   r   r   r·  Ú	BYTES_ORDÚonamesru  rb  r³  rµ  r|  r}  r   rz  r{  r5  ÚtIsectFuncsr#   r   r‰  ÚtRangeFuncsr   r:   Ú	LEAF_RANKr	   Úencodingr
   Úreplacer   r   Ú
tAttrNamesr„  Ú	FUNC_RANKr   ÚfloatrŸ  r   ÚintÚ	func_defsÚlistsepÚdivmodÚname_obj_listÚ	evaluatedr   ÚmacroÚbinaryÚany_errÚdumpÚany_relÚstackÚcopyÚdeepcopyÚscopeÚ_sheet_namesÚreprrK  rR  rq  rt  r   r   Ú_externsheet_type_b57Úerror_opcodesÚfprintfrÅ  Úany_external)Wrg  ÚnobjÚnamexri  ÚlevelrH  ÚfmlalenrJ  r=  ÚsztabrI  r0  r/  r-  r9  Úunk_opndÚ
error_opndÚspushrÆ  rÍ  rÒ  ÚoprÉ  ÚoptypeÚopxÚonameÚszrÑ  rº  r»  r¾  r|  r¿  Úresr1  ÚrelfaÚrelfbÚstrgÚnewposr}  ÚsubopÚncÚsubnameÚinxÚnbrz  r{  ÚfuncxÚ
func_attrsÚ	func_nameÚnargsÚargtextÚpromptr+  ÚminargsÚmaxargsÚtestargÚresposÚchosenÚtgtnamexÚtgtobjrB  rC  r@  rA  Úshx1Úshx2r‰  rP  rQ  Úrowx1Úcolx1Úrow_rel1Úcol_rel1Úrowx2Úcolx2Úrow_rel2Úcol_rel2rh  rs  Úraw_shx1Úraw_shx2Úis_relÚref3dÚdodgyÚorigrefxÚextyr(  r(  r-  r   ð  sX  ÿÿ

 
ÿÿÿ
ù	 ÿ€ ÿ
€€
ù	 €€
ù	 ÿ€ ÿ
€€



ÿ

ÿ





ÿÿ€(








*ÿÿÿÿ
*
ÿÿÿÿÿÿ 

€€€


"
ý

ÿ







€



 
ÿ





 
ÿ









ÿÿ






ÿ
ý

ÿ



 � � � �þ    ÿ

r   c	           X         s6  |t krd}ˆttttfv }	|}
ˆ j}|r.td|ˆ|||	|
|f ˆ jd� t|
d|ˆ jd� |t	kr6t
dƒ‚t| }d}g }d}d}ttd ƒ}ttd ƒ}|j}dd„ }d	d
„ }‡ ‡fdd„}|dkre|g}d|  krp|k �
r_n �	nìt|
| ƒ}|d@ }|d@ d? }|rŠ|d }n|}t| }|| }|r­td||||||f ˆ jd� td|ˆ jd� |dkr¼d|||f }t|ƒ‚t|dƒˆ@ rÈ|||ƒ |�so|dk�r	|dkr×d}nd}|dkrã||krã|råJ ‚t||
ƒ\}} d|| f }!|ttd t|!ƒƒ ˆttB @ �s|||ƒ �nVd|  k�rdk�rn n|||ƒ �nA|dk�rÈ|�r.td|ˆ jd� t|ƒdk�s7J ‚| ¡ }"| ¡ }#d}$d}%d  d!d |#j|%k … |#jd"d |#j|%k … |$d!d |"j|%k … |"jd"d |"j|%k … g¡}&ttƒ}'|&|'_|"jtk�s€|#jtk�r„t|'_n3|"jtk�s�|#jtk�r‘n&|"jt  k�rŸ|#jk�r¢n nn|"jt  k�r°|#jk�r¶n nt|'_n	 ||'ƒ |�rÆtd#|ˆ jd� �n—|d$k�rc|�rØtd%|ˆ jd� t|ƒdk�sáJ ‚| ¡ }"| ¡ }#d&}$d}%d  d!d |#j|%k … |#jd"d |#j|%k … |$d!d |"j|%k … |"jd"d |"j|%k … g¡}&ttd |%|&ƒ}'|"jtk�s*|#jtk�r.t|'_n$|"jttfv �rQ|#jttfv �rQt|'_|#jtk�sM|"jtk�rPt|'_n	 ||'ƒ |�ratd'|ˆ jd� �nü|d(k�rë|�rstd)|ˆ jd� t|ƒdk�s|J ‚| ¡ }"| ¡ }#d*}$d}%d  d!d |#j|%k … |#jd"d |#j|%k … |$d!d |"j|%k … |"jd"d |"j|%k … g¡}&ttd |%|&ƒ}'|"jtk�sÅ|#jtk�rÈt}'n|"jt  k�rÖ|#jk�rÙn nn	 ||'ƒ |�rétd+|ˆ jd� �ntd,|  k�r÷d-k�rn n||t |ƒ �n^|d.k�r�nW|d/k�r|tt!d td ƒƒ �nG|d0k�ra|d1k�r0t"|
|d ˆ j#dd2�\}(})nt$|
|d dd2�\}(})|)| }|�rMtd3||(f ˆ jd� d4|( %d4d5¡ d4 }!|tt&d t|!ƒƒ nþ|d6k�rq|dk�smJ ‚td7ƒ‚|d8k�rØtd9|
|d |d: … ƒ\}*}+t' (|*d;¡},|*d:k�r—|+d d< }n0|*d$k�rÅd:}|�r©td=|ˆ jd� t|ƒdk�s²J ‚|d> }#d?|#j }&tt d t)|&ƒ|d>< nd:}|�r×td@|*|,||+f ˆ jd� n‡dA|  k�rädBk�rñn n|dCk �síJ ‚tdDƒ‚dE|  k�rýdk�rYn nZ|dE }-g dF¢|- }.tt*t t g|- }/tdGdH|-  |
|d |d |. … ƒ\}0|-dk�r3t+|0ƒ}0t,|0ƒ}!n|-dk�r=t,|0ƒ}!n|-dk�rGdI|0 }!nd4t-|0  d4 }!|t|/d t|!ƒƒ ntdJ| ƒ‚|dk�rjtdK| ƒ‚||7 }qe|dk�rz||ƒ �nÌ|dk�rdt.|dLkƒ }.tdGdM|.  |
|d |d |. … ƒd }1t/ (|1d ¡}2|2�s´tdN|1 ˆ jd� ||ƒ �n’|2d d… \}3}4|�rËtdO|1|3|4f ˆ jd� t|ƒ|4k�sÔJ ‚|4�rót0 dPdQ„ ||4 d … D ƒ¡}5dR|3|5f }&||4 d …= n|3dS }&ttd t)|&ƒ}'||'ƒ �nB|dk�rÆdt.|dLkƒ }.tdTdM|.  |
|d |d |. … ƒ\}4}1t1|4dUƒ\}6}4t1|1dVƒ\}7}1|�rDtdW|1|4|7|6f ˆ jd� |1dXk�rLdY}2nt/ (|1d ¡}2|2�sdtdZ|1 ˆ jd� ||ƒ �nâ|2d d… \}3}8}9|�r|td[|3|8|9f ˆ jd� |8|4  k�r‰|9k�sŒJ ‚ J ‚t|ƒ|4k�s•J ‚t|ƒ|4k�sžJ ‚t0 d\dQ„ ||4 d … D ƒ¡}5dR|3|5f }&ttd t)|&ƒ}'||4 d …= ||'ƒ �n€|dk�rtd]|
|d |d … ƒd d }:|�rètd^|: ˆ jd� ˆ j2|: };|;j3d>k�r÷|;j4}&nd_ˆ j5|;j3 |;j4f }&|�rtd`t6|&ƒˆ jd� ttd t|&ƒ}'||'ƒ �n*|d:k�rat7|
|d ||	||ƒ}'|�r7tda|'ˆ jd� |'\}} }<}=|<�pA|=}>|>�rHt}?nt}?t8|| |<|=|||ƒ}&t|?d t|&ƒ}'||'ƒ �nå|dk�rÆt9|
|d ||	||ƒ\}@}A|�rtda|@|Aˆ jd� |@\}B}C}D}E|A\}F}G}H}I|B|Fd |C|Gd f}J|D|H|E|If}Kt:|Kƒ�r£t}?nt}?|�r±tdb|J|Kˆ jd� t;|J|K|||ƒ}&t|?d t|&ƒ}'||'ƒ �n€|d<k�rÒt<||ƒ �nt|dck�rôtd]|
|d |d … ƒd }.|�ròtdd|. ˆ jd� �nR|dek�r;t7|
|d ||	||ƒ}'d}|�rtdb|'ˆ jd� |'\}} }<}=|<�p|=}>|>�r"t}?nt}?t8|| |<|=|||ƒ}&t|?d t|&ƒ}'||'ƒ �n|dfk�r t9|
|d ||	||ƒ\}@}A|�rYtda|@|Aˆ jd� |@\}B}C}D}E|A\}F}G}H}I|B|Fd |C|Gd f}J|D|H|E|If}Kt:|Kƒ�r}t}?nt}?|�r‹tdb|J|Kˆ jd� t;|J|K|||ƒ}&t|?d t|&ƒ}'||'ƒ �n¦|dAk�rj|dk�rÍt7|
|d ||	||ƒ}'td]|
|d |d … ƒd }Lt=ˆ |L|ƒ\}M}Nn2t7|
|d ||	||ƒ}'tdg|
|d |d … ƒ\}O}P}Q|�rõtdh|O|P|Qˆ jd� t>ˆ |O|P|Q|ƒ\}M}N|'\}} }<}=|<�p	|=}>|�p|>}|M|Nd ||d | | d f}J||Md>k O }|�r.tdb|Jˆ jd� ttd ƒ}'|>�rQdd|<|<|=|=f}Kt?|J|K ƒ}Rt|'_t@ˆ |R|||ƒ|'_nt?|Jƒ}Rt|'_tAˆ |Rƒ|'_t|'_d |'_B||'ƒ �nÜ|dBk�	r=|dk�r—t9|
|d ||	ƒ\}@}Atd]|
|d |d … ƒd }Lt=ˆ |L|ƒ\}M}Nn2t9|
|d ||	ƒ\}@}Atdg|
|d |d … ƒ\}O}P}Q|�r¿tdi|O|P|Qˆ jd� t>ˆ |O|P|Q|ƒ\}M}N||Md>k O }|@\}B}C}D}E|A\}F}G}H}I|D�på|E�på|H�på|I}>|�pê|>}|M|Nd |B|Fd |C|Gd f}J|�	rtdb|Jˆ jd� ttd ƒ}'|>�	r'dd|D|H|E|If}Kt?|J|K ƒ}Rt|'_t@ˆ |R|||ƒ|'_nt?|Jƒ}Rt|'_tAˆ |Rƒ|'_t|'_||'ƒ �n	|d8k�
r,d}Sttd ƒ}'|dk�	rdtdj|
|d |d … ƒ\}L}:|:d8 }:|L}Tn,tdk|
|d |df … ƒ\}L}:|:d8 }:|L}T|Ldk�	rƒ|Ld8 }Ln|Ldk �	rŽ|L d }Lnd}S|�	r tdl|T|L|:|Sf ˆ jd� |S�	sÎ|dk�	r±t=ˆ |L|ƒ\}M}Nn|Tdk�	r»dm\}M}Nnˆ jC|L }U|Ud:k�	rÊdn\}M}Nndo\}M}Nt}?d }V|Mdpk�	rét&}?ˆ jD|: }Vd4|V %d4d5¡ d4 }&n7|S�	sñ|Md>k �	rødq|:|Tf }&n(ˆ j2|: };|;j3d>k�
r|;j4}&nd_ˆ j5|;j3 |;j4f }&|�
r tdrt6|'jƒˆ jd� t|?|Vt|&ƒ}'||'ƒ n|tEv �
r8d}||ƒ n|�
rDtds| ˆ jd� d}|dk�
rOtdtƒ‚||7 }d|  k�
r^|k ssn |  }|�
r‰tdu||  ||f ˆ jd� t|ƒdk�
rƒtdvˆ jd� tˆ jd� t|ƒdk�
r”d }W|WS |d j}W|WS )wNr   zR::: decompile_formula len=%d fmlatype=%r browx=%r bcolx=%r reldelta=%d %r level=%drS  r   r¯  z(Excessive indirect references in formulac                 S   s¢   t |ƒdksJ ‚| ¡ }| ¡ }t|  \}}}}}d dd |j|k … |jdd |j|k … |dd |j|k … |jdd |j|k … g¡}	t|d ||	ƒ}
| |
¡ d S )Nr$   rx   r±  r²  )rb  r³  r´  rµ  r|  r}  r"   r·  )r¸  r¹  rº  r»  r¼  r½  r*  r|  r¾  r¿  rÀ  r(  r(  r-  rÆ  g  s   ù	z#decompile_formula.<locals>.do_binopc           	   	   S   sr   t |ƒdksJ ‚| ¡ }t|  \}}}}d |dd |j|k … |jdd |j|k … |g¡}| t|d ||ƒ¡ d S rÇ  )rb  r³  rÈ  rµ  r|  r}  r·  r"   )	rÉ  r½  r¹  r»  r*  r|  rË  rÌ  r¿  r(  r(  r-  rÍ  x  s   ûz%decompile_formula.<locals>.do_unaryopc                    s$   d| |t ˆ f }t|ˆ jd� d S )Nz?ERROR *** Unexpected token 0x%02x (%s) found in formula type %srS  )ÚFMLA_TYPEDESCR_MAPra  rc  rÎ  ©rg  Úfmlatyper(  r-  Úunexpected_opcode…  s   ÿz,decompile_formula.<locals>.unexpected_opcoder²   rÓ  r7   r(   z;Pos:%d Op:0x%02x opname:t%s Sz:%d opcode:%02xh optype:%02xhrÕ  r9   rÖ  rC   z<x2Hz<xHBzSHARED FMLA at rowx=%d colx=%dr6   r•   r.   r×  r$   rØ  rG   rx   r±  r²  rÙ  r'   rÚ  r;   rÛ  r/   rÜ  rÝ  rÞ  r@   rB   rA   r    r¢   rF   rß  rá  râ  rã  r¤   rä  r?   rå  r%   ræ  rˆ   rç  r8   rè  ré  r§   r©   rE   rê  r¬   rë  r©  rì  rí  rî  rï  rD   rð  rñ  rò  c                 s   ró  r'  rô  rõ  r(  r(  r-  r.  [  r÷  z$decompile_formula.<locals>.<genexpr>rø  rù  rú  rB  r7  rû  r6  )Ú
CALL_ADDINr   rC   rü  rý  c                 s   ró  r'  rô  rõ  r(  r(  r-  r.  {  r÷  rþ  rÿ  r  r  r  r  r<   r  r‘   r“   r  r  r
  rF  r  r  rW  rY  r  rV  r  r  r  r  z7End of formula. level=%d any_rel=%d any_err=%d stack=%rr  )Fr  r   r!   r   r    r  ra  rc  r   r  r   r  r"   r   r   r·  r  r  ru  Ú_TOKEN_NOT_ALLOWEDr   r  r   r   rb  r³  rµ  r|  r}  r   rz  r   r   r:   r	   r   r
   r!  r   r"  r„  r#  r   r$  rŸ  r   r%  r&  r'  r(  r)  r3  r  r4  r5  rK  ÚcellnamerelrR  ÚsumÚrangename2drelrÒ  rq  rt  r#   r   r   r{  r6  Úaddin_func_namesr7  )Xrg  Úfmlar=  rq  r>  r?  ri  r<  r	  r=  rH  rJ  r>  rI  r0  r/  r-  r?  r@  rA  rÆ  rÍ  rr  rB  rÉ  rC  rD  rE  rF  rÑ  ÚfmtrB  rC  r}  rº  r»  r¾  r|  r¿  rG  rJ  rK  rL  rM  rN  rO  rP  rz  r{  rQ  rR  rS  rT  rU  rV  r+  rW  rX  r\  r]  r@  rA  rj  ÚokindrP  rQ  r`  ra  rb  rc  rd  re  rf  rg  r1  r‰  rh  r^  r_  rs  rh  ri  rk  rl  rm  rn  ÚovaluerÅ  r(  rp  r-  r   P  sÆ  ÿÿ


ÿÿÿ


€
ù	  €
ù	 €€
ù	 €



ÿ

ÿ





ÿÿ€(








*ÿÿ
*
ÿÿ
ÿÿÿÿ 
"



ÿ


€


ÿ


 
ÿ




 
ÿ








ÿÿ







ÿ
ÿ



 � � �½   Dÿÿ
ÿr   c           4      C   sæ  |rt d||t|ƒ| jd� t|d|| jd� |dksJ ‚t| }d}g }	d}
d}|	j}d|  kr7|k �rNn �nt|| ƒ}|d@ }|d@ d? }|rQ|d	 }n|}t| }|| }|rlt d
||||||f | jd� |�sëd|  krydkr˜n ntd||d |d … ƒ\}}|r–t d||f| jd� �nN|dkrÈ|r¦t d|	| jd� t|	ƒdks®J ‚|	 	¡ }|	 	¡ }||| ƒ |rÆt d|	| jd� �n|dk�r|r×t d|	| jd� t|	ƒdksßJ ‚|	 	¡ }|	 	¡ }t|ƒdksïJ ‚t|ƒdks÷J ‚t
t|d |d ƒ}||ƒ |�rt d|	| jd� nÕ|dk�r^|�r!t d|	| jd� t|	ƒdk�s*J ‚|	 	¡ }|	 	¡ }t|ƒdk�s;J ‚t|ƒdk�sDJ ‚t
t|d |d ƒ}||ƒ |�r]t d|	| jd� nˆ|dk�r—td||d |d … ƒ\}}t |d¡}|dk�r„|d d }nd}|�r–t d||||f | jd� nO|dk�rØ|dk�rºt||d  ƒ}||d |d | … }|d }nt||d dd �\}}|| }|�r×t d!||f | jd� n|dk�ræt d"| jd� d S ||7 }q,|dk�rò�n>|dk�r dt|d#kƒ }td$d%|  ||d |d | … ƒ}|�rt d&| | jd� �n|dk�rbdt|d#kƒ }td'd%|  ||d |d | … ƒ\}}t|d(ƒ\} }t|d)ƒ\}!}|�r`t d*|||!| f | jd� �nÎ|d+k�r‚td,||d |d+ … ƒ}"|�r€t d-|" | jd� �n®|dk�r�t||d ||ƒ}#|�r›t d|#| jd� �n“|dk�r¸t||d ||ƒ}#|�r¶t d|#| jd� �nx|d.k�rÚtd,||d |d+ … ƒd }|�rØt d/| | jd� �nV|d0k�røt||d |dd1�}#d}
|�röt d2|#| jd� �n8|d3k�rt||d |dd1�}#d}
|�rt d2|#| jd� �n|d4k�rtd,||d |d+ … ƒd }$t||d+ ||ƒ}#|�r?t d|$|#| jd� |#\}}}%}&|
�pL|%�pL|&}
t| |$|ƒ\}'}(||'d5k O }|'|(d ||d ||d f})|�rtt d2|)| jd� |dk�r~||)gƒ n±|d6k�r÷td,||d |d+ … ƒd }$t||d+ ||ƒ\}*}+|�r«t d|$|*|+| jd� |*\},}-}.}/|+\}0}1}2}3|
�pÄ|.�pÄ|/�pÄ|2�pÄ|3}
t| |$|ƒ\}'}(||'d5k O }|'|(d |,|0d |-|1d f})|�rìt d2|)| jd� |dk�rö||)gƒ n9|dk�rtd||d |d … ƒ\}$}"|�rt d7|$|"f | jd� n|tv �r"d}n|�r.t d8| | jd� d}|dk�r>t d"| jd� d S ||7 }d|  k�rM|k s:n |�rot d9|
  ||	f | jd� t|	ƒdk�rqt d:| jd� d S d S d S );Nr   rS  r   r¯  rG   r²   rÓ  r7   r(   rÔ  r   r$   rF  r  r'   rÚ  z
tlist postr/   rÜ  rÞ  r.   r×  rÙ  r?   rå  r%   ræ  rˆ   ré  r¢   rF   rß  rá  z**** Dud size; exiting ****rD   r©  rð  z   FuncID=%drú  rB  r7  rû  r6   rþ  z   namex=%dr<   r  r‘   )r=  r  r“   r§   r8   r©   z   refx=%d namex=%dr  z.End of formula. any_rel=%d any_err=%d stack=%rr  )ra  rb  rc  r   r  r·  r  r  r   r³  r5  r  r  r"  r„  r
   r%  r(  rK  rR  rq  r7  )4rg  rH  r=  rJ  r=  ri  Úisnamer>  rI  r0  r/  r-  rA  rB  rÉ  rC  rD  rE  rF  rB  rC  rº  r»  rÅ  rL  rM  rN  rJ  rK  rP  rQ  rT  rV  r+  r;  rG  rh  r@  rA  r^  r_  r1  rP  rQ  r`  ra  rb  rc  rd  re  rf  rg  r(  r(  r-  r   ^  sX  
ÿÿ€€
€
€

 €


€


&€
* €
€
€
€
€
€
€
€
€
€

 �õ ÿÿür   c                 C   sT   |d u rd}|s|rd| d  S d| d  S |r | rd|  S dS d||  d d  S )	NTzR%dr   z$%dzR[%d]r�   z%dr8  r(  )rB  Úrowxrelr>  r	  r(  r(  r-  Ú
rownamerel  s   r  c                 C   sP   |d u rd}|s|rd| d  S dt | ƒ S |r | rd|  S dS t ||  d ƒS )NTzC%dr   ú$zC[%d]ÚCr9  ©r   )rC  Úcolxrelr?  r	  r(  r(  r-  Ú
colnamerel  s   r„  c                 C   s   dt |ƒ| d f S )z(Utility function: ``(5, 7)`` => ``'H6'``z%s%dr   r‚  )rB  rC  r(  r(  r-  r     s   r   c                 C   s,   |rd| d |d f S dt |ƒ| d f S )z*Utility function: ``(5, 7)`` => ``'$H$6'``zR%dC%dr   z$%s$%dr‚  )rB  rC  r	  r(  r(  r-  r   "  s   r   c           	      C   s`   |s
|s
t | ||ƒS |r|d u s|r|d u rd}t||||ƒ}t| |||ƒ}|r,|| S || S )NT)r   r„  r  )	rB  rC  r~  rƒ  r>  r?  r	  ÚcÚrr(  r(  r-  ru  (  s   ru  c                 C   s6   d}| dkr
||  S t | dƒ\}}||d  ||  S )z6Utility function: ``7`` => ``'H'``, ``27`` => ``'AB'``ÚABCDEFGHIJKLMNOPQRSTUVWXYZr?   r§   r   )r(  )rC  ÚalphabetÚxdiv26Úxmod26r(  r(  r-  r   4  s
   r   c                 C   sP   |rdS || d kr||d krt | ||ƒS dt | ||ƒt |d |d |ƒf S )z( ``(5, 20, 7, 10)`` => ``'$H$6:$J$20'`` Nr   ú%s:%s)r   )ÚrloÚrhiÚcloÚchir	  r(  r(  r-  Úrangename2d=  s
   $r�  c              
   C   st   | \}}}}|\}	}
}}|	s|
r|d u rd}|s|r |d u r d}dt |||	||||ƒt |d |d |
||||ƒf S )NTr‹  r   )ru  )Úrlo_rhi_clo_chiÚrlorel_rhirel_clorel_chirelr>  r?  r	  rŒ  r�  rŽ  r�  ÚrlorelÚrhirelÚclorelÚchirelr(  r(  r-  rw  E  s   þrw  c                 C   s2   |j }dt| g|dd… ¢R Ž t|dd… Ž f S )z�
    Utility function:
    ``Ref3D(1, 4, 5, 20, 7, 10)`` =>
    ``'Sheet2:Sheet3!$H$6:$J$20'``
    (assuming Excel's default sheetnames)
    r  Nr$   rˆ   )r1  Ú
sheetranger�  )Úbookrk  r1  r(  r(  r-  r   R  s
   þr   c           	      C   s\   |j }|j}t| |dd… |dd… ƒ}t|dd… |dd… |||ƒ}|s(|S d||f S )zÞ
    Utility function:
    ``Ref3D(coords=(0, 1, -32, -22, -13, 13), relflags=(0, 0, 1, 1, 1, 1))``

    In R1C1 mode => ``'Sheet1!R[-32]C[-13]:R[-23]C[12]'``

    In A1 mode => depends on base cell ``(browx, bcolx)``
    Nr$   rˆ   r  )r1  r‰  Úsheetrangerelrw  )	r˜  rk  r>  r?  r	  r1  r‰  ÚshdescÚrngdescr(  r(  r-  r   ^  s   	 r   c                 C   s`   |dkr	| | }ndddddœ  |d| ¡}d|v r$d| dd	¡ d S d
|v r.d| d S |S )Nr   z?internal; any sheet?zinternal; deleted sheetzinternal; macro sheetz<<external>>)r8   r9   r^  rX  z
?error %d?ú'z''rØ  )r„  r!  )ÚshnamesÚshxÚshnamer(  r(  r-  Úquotedsheetnameo  s   
üûr   c                 C   s8   |   ¡ }t||ƒ}||d kr|dt||d ƒ 7 }|S )Nr   rÝ  )Úsheet_namesr   )r˜  ÚsloÚshir�  rš  r(  r(  r-  r—    s
   
r—  c                 C   sR   |\}}|\}}|s|st | ||ƒS |d  kr|d kr%n J ‚|r%|s'J ‚dS )Nr   r   rx   )r—  )r˜  ÚsrangeÚ	srangerelr¢  r£  ÚslorelÚshirelr(  r(  r-  r™  †  s   *r™  )NN)r   )r   r   )NNNr   r   r   )Nr   )NNr   )ur‡  Ú
__future__r   r1  ÚoperatorÚoprÚstructr   Úbiffhr   r   r   r   r	   r
   ÚtimemachineÚ__all__r   r   r   r   r    r!   ÚALL_FMLA_TYPESro  r„  rt  r   r   r:   r   r   r   r   r   r   r'  Úsztab0Úsztab1Úsztab2Úsztab3Úsztab4r  r  r&  r"  Úsetr7  ÚminÚmaxr  r  r5  rD  rE  rK  rR  rq  rt  Ú	Exceptionru  Úobjectr"   r/  r#   ÚtAddÚtSubÚtMulÚtDivÚtPowerÚtConcatÚrangeÚtLTÚtLEÚtEQÚtGEÚtGTÚtNEr”  r—  r™  rš  r›  rœ  r�  rž  r£  r$  Ú_arith_argdictÚ_cmp_argdictÚ_strg_argdictÚaddÚsubÚmulÚtruedivr´  rÈ  r  r#  r  r  r   r   r   r  r„  r   r   ru  r   r�  rw  r   r   r   r—  r™  r(  r(  r(  r-  Ú<module>   sf   ú







ôòøøþýüûúùø	÷
öõôóòñðïîíìëêéèçæåäãâá à!ß"Þ#Ý$Ü%Û&Ú'Ù(Ø)×*Ö+Õ,Ô-Ó.Ò/Ñ0Ð1Ï2Î3Í4Ì5Ë6Ê7É8È9Ç:Æ;Å<Ä=Ã>Â?Á@ÀA¿B¾C½D¼E»FºG¹H¸I·J¶KµL´M³N²O±P°Q¯R®S­T¬U«VªW©X¨Y§Z¦[¥\¤]£^¢_¡` aŸbžc�dœe›fšg™h˜i—j–k•l”m“n’o‘p�q�rŽs�tŒu‹vŠw‰xˆy‡z†{…|„}ƒ~‚�  �ÿ  �þ  �ý  �ü  �û  �ú  �ù  �ø 	 �÷ 
 �ö  �õ  �ô  �ó  �ò  �ñ  �ð  �ï  �î  �í  �ì  �ë  �ê  �é  �è  �ç  �æ  �å  �ä  �ã  �â  �á   �à ! �ß " �Þ # �Ý $ �Ü % �Û & �Ú ' �Ù ( �Ø ) �× * �Ö + �Õ , �Ô - �Ó . �Ò / �Ñ 0 �Ð 1 �Ï 2 �Î 3 �Í 4 �Ì 5 �Ë 6 �Ê 7 �É 8 �È 9 �Ç : �Æ ; �Å < �Ä = �Ã > �Â ? �Á @ �À A �¿ B �¾ C �½ D �¼ E �» F �º G �¹ H �¸ I �· J �¶ K �µ L �´ M �³ N �² O �± P �° Q �¯ R �® S �­ T �¬ U �« V �ª W �© X �¨ Y �§ Z �¦ [ �¥ \ �¤ ] �£ ^ �¢ _ �¡ ` �  a �Ÿ b �ž c �� d �œ e �› f �š g �™ h �˜ i �— j �– k �• l �” m �“ n �’ o �‘ p �� q �� r �Ž s �� t �Œ u �‹ v �Š w �‰ x �ˆ y �‡ z �† { �… | �„ } �ƒ ~ �‚  ��   � �ÿ   � �þ   � �
ù  ÷ÿ&ÿ\A	ôý    eþ     %	