Ë êi®KëA%ãó~—ddlmZddlmZddlmZmZddlmZmZm Z d„Z dd„Z d„Z d „Z dd „Zdd „Zd „Zd„Zd„Zy )é)Úcopyé)Ú ScopedName)Ú ArgumentTypeÚ IfaceFileType)Úappend_iface_fileÚargument_as_strÚsame_base_typecóÆ—t|j«}|jjD�]1}d}|jr|dz}|j r|dz}dj |jj|t|j««}|jtjurt|j«}nf|jtjurt|j«}n4|jtj urt|j«}nd}|€|j#|«�Œ||dz|d<|D]}|j#|«Œ�Œ4|S)z( Return the encoded name of a template. rréz {:02d}{}{}N)rÚcpp_nameÚtypesÚargsÚis_constÚ is_referenceÚformatÚtypeÚvalueÚlenÚderefsrÚDEFINEDÚ definitionÚTEMPLATEÚencoded_template_nameÚSTRUCTÚappend)ÚtemplateÚsndÚadÚflagsÚencodingÚarg_sndÚnames úA/usr/lib/python3.12/site-packages/sipbuild/generator/templates.pyrr s€ô �X×&Ñ&Ó '€Cà�n‰n×!Õ!ˆØˆà �;Š;Ø �Q‰JˆEà �?Š?Ø �Q‰JˆEð ×&Ñ& r§w¡w§}¡}°e¼SÀÇÁ»^ÓLˆà �7‰7”l×*Ñ*Ñ *Ü  §¡Ó/‰GØ �W‰Wœ ×-Ñ-Ñ -Ü+¨B¯M©MÓ:‰GØ �W‰Wœ ×+Ñ+Ñ +Ü  §¡Ó/‰GàˆGà ˆ?Ø �J‰J�xÖ ð" G¨A¡JÑ.ˆG�A‰Jã�Ø— ‘ ˜4Õ ò ð9"ð> €Jócóì—t|j«t|j«k7ryt|j|j«D�]$\}}|jtj ur|sŒ&|jtj urc|jtj urG|j |j k7s,t|j«t|j«k7sŒ£y|jtjurV|jtjur:t|jj|jj|¬«r�Œyt||«r�Œ%yy)z« Return True if the template signatures are the same. A deep comparison is used for mapped type templates where we want to recurse into any nested templates. F)ÚdeepT) rrÚziprrrrrrÚsame_template_signaturerrr )Úsig1Úsig2r'Útype1Útype2s r$r)r)4s €ô  ˆ4�9‰9ƒ~œ˜TŸY™Y›Ò'Øä˜DŸI™I t§y¡y×1‰ ˆˆuð �:‰:œ×-Ñ-Ñ -±dØ ð �:‰:œ×-Ñ-Ñ -°%·*±*Ä ×@TÑ@TÑ2TØ×!Ñ! U×%7Ñ%7Ò7¼3¸u¿|¹|Ó;LÔPSÐTY×T`ÑT`ÓPaÓ;aÙà �Z‰Zœ<×0Ñ0Ñ 0°U·Z±ZÄ<×CXÑCXÑ5XÜ*¨5×+;Ñ+;×+AÑ+AÀ5×CSÑCS×CYÑCYÐ`d×eÙä  uÖ-Ùð%2ð( r%có$—|€yt||||«S)zj Return a copy of an optional CodeBlock object with sub-strings replaced by corresponding values. N©Ú_template_code_block)ÚspecÚusedÚ proto_codeÚ expansionss r$Ú template_coder5Ts€ð ÐØä   d¨J¸ Ó CÐCr%c óD—|D�cgc]}t||||«‘Œc}Scc}w)zi Return a copy of a list of CodeBlock objects with sub-strings replaced by corresponding values. r/)r1r2Úproto_code_blocksr4Úpcs r$Útemplate_code_blocksr9`s4€ñ (ó )Ù'�ô !  t¨R°Õ <Ø'ñ )ð)ùò )s…NcóX—i}t|j«D�]\}}|jtju�r|�‹|j j sŒ=|jD]d}|jtjurŒ |j j|j jk(sŒN|j j}nŒ±|j j}|j|}|jtjurt|j «} n t|«} |jrd| z} | ||<�Œ+|jtjus�ŒI|j|}|jtjus�Œvt|j jj«t|j jj«k(s�ŒË|jt|j j|j j|««�Œ|S)a  Return a dict of expansions to be applied when instantiating mapped type of class templates (including handwritten code). The key is the symbolic name of a template argument and the value is the replacement to be used in a particular instantiation. úconst )Ú enumeraterrrrrÚ is_simpleÚ base_nameÚstrr rrrrÚupdateÚtemplate_expansions) Útemplate_namesÚinstantiation_valuesÚdeclared_namesr4Úarg_nrÚname_argÚdeclaredr#Ú value_argrs r$rArAisà€ð€Jä% n×&9Ñ&9×:ш�Ø �=‰=œL×0Ñ0Ò 0ðÐ)à×*Ñ*×4Ò4Øà .× 3Ô 3�Hà—}‘}¬L×,@Ñ,@Ñ@Ø à×*Ñ*×4Ñ4¸×8KÑ8K×8UÑ8UÓUØ'×2Ñ2×<Ñ<˜Ùð!4ðà×*Ñ*×4Ñ4�ð-×1Ñ1°&Ñ9ˆIà�~‰~¤×!5Ñ!5Ñ5ܘI×0Ñ0Ó1‘ä'¨ Ó2�ð×!Ò!Ø  5Ñ(�à$ˆJ�tÓ à �]‰]œl×3Ñ3Ó 3Ø,×1Ñ1°&Ñ9ˆIð�~‰~¤×!6Ñ!6Ó6¼3¸x×?RÑ?R×?XÑ?X×?]Ñ?]Ó;^ÔbeÐfo×fzÑfz÷gAñgA÷gFñgFócGôÙñ r%)F)N)rÚ scoped_namerÚ specificationrrÚutilsrr r rr)r5r9rArPrLr0r`©r%r$ÚrwsMðõ å#ß6ßEÑEò$óNò@ Dò)ðó?óDò$ ò1óhr%