+
    "Ý³jñ ã                  óÐ  a € 0 t $ ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIt ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHtHtHt ^ RIt^ RIt^ RIHtHtH t H!t! ^RI"H#t# ^R	I$H%t% ^R
I&H't' ]PP                  ! ])4      t*]PV                  ! 4       t,Rs-R].R&   Rs/Rs0Rs1],t2Rs3R“t4^dt5Rt6]Pn                  ! R]Pp                  Pr                  R7      t:]Pn                  ! R]Pp                  Pr                  R7      t;]Pn                  ! R4      t<]Pn                  ! R4      t=]Pn                  ! R4      t>]Pn                  ! R4      t?]Pn                  ! R4      t@]Pn                  ! R4      tA]PV                  ! 4       tBRsCR].R&   RtDRtERtF]G! R”4      tHR•tIRtJRtKRtLR  R! ltMR" R# ltNR$ R% ltOR& R' ltPR( R) ltQR* R+ ltRR, R- ltSR. R/ ltTR0 R1 ltUR2 R3 ltVR4 R5 ltWR6 R7 ltXR8]5/R9 R: lltYR; R< ltZR= R> lt[ ! R? R@4      t\RA RB lt]RC RD lt^]RE RF l4       t_RG RH lt`]! ]a4      PÅ                  4       PÆ                  ^,          tdRI RJ lte]! RRK7      RL RM l4       tfRN RO ltgRP RQ lthRR RS ltiRT RU ltjRV RW ltkRXR–/RY RZ lltl]Pn                  ! R[4      tmR\ R] ltnR^ R_ ltoR` Ra ltpRb Rc ltqRd Re ltr]RfRg/Rh Ri ll4       tsRj Rk lttRl Rm ltuRn Ro ltvR—Rq Rr lltwRs Rt ltxRuRpRvRRwRg/Rx Ry lltyRuRpRvRRwRgRzRR{RgR|RR}RgR~RRRR€R/
R� R‚ lltz ! Rƒ R„4      t{R˜R… lt|R† R‡ lt}Rˆ R‰ lt~RŠ R‹ ltRŒ R� lt€RŽR/R� R� llt�RŽR/R‘ R’ llt‚R#   ] d    Rt EL$i ; i)™é    )ÚannotationsN)Úcontextmanager)Ú	lru_cache)ÚPath)ÚCallableÚOptionalÚSequence)Ú	CUDA_HOMEÚ_get_build_directoryÚ_get_cuda_arch_flagsÚload)Úenv_flag)Ú get_jit_compile_baseline_seconds)Úsetup_loggerzOptional[bool]Ú_PACK_BLOCK_EXTENSIONFç      ð?z$^\s*#\s*include\s+([<"])([^">]+)[">])Úflagsz"^\s*#\s*include\s+[<"]([^">]+)[">]z^(?:cpu|cu\d+|rocm[\d.]+|xpu)$z//[^\n]*|/\*[\s\S]*?\*/z&\b(?:Py[A-Z]\w*|PYBIND11_\w+)\b|\bpy::z(?m)\bREGISTER_EXTENSION\s*\(z'\bSTABLE_TORCH_LIBRARY(?:_[A-Z]+)?\s*\(zrelease\s+(\d+)\.(\d+)útuple[int, int] | NoneÚ_NVCC_VERSION_CACHEÚ8ÚGPTQMODEL_KERNEL_REBUILDÚGPTQMODEL_TORCH_EXTENSIONS_DIRÚ GPTQMODEL_TORCH_OPS_LOCK_TIMEOUTg     À‚@gš™™™™™¹?c               ó   € V ^8„  d   QhRR/# ©é   ÚreturnÚstr© )Úformats   "ÚT/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/utils/cpp.pyÚ__annotate__r"   ^   s   € ÷ 	fñ 	f˜ñ 	fó    c            	     óæ   € \         P                  ! R4      p V '       d   \        V 4      # R\        P                  P
                   R\        P                  P                   \        \        RR4       2# )z2Return the interpreter's extension-module ABI tag.ÚSOABIzcpython-Ú.ÚabiflagsÚ )Ú	sysconfigÚget_config_varr   ÚsysÚversion_infoÚmajorÚminorÚgetattr)Úsoabis    r!   Ú_python_abi_tagr1   ^   s`   € ô ×$Ò$ WÓ-€EßÜ�5‹zÐð ”c×&Ñ&×,Ñ,Ð-¨Q¬s×/?Ñ/?×/EÑ/EÐ.FÄwÌsÐT^Ð`bÓGcÐFdÐeÐer#   c               ó   € V ^8„  d   QhRR/# r   r   )r    s   "r!   r"   r"   j   s   € ÷ ñ  #ñ r#   c                 ó˜   € \         P                  p V P                  R4      w  rpV'       d   \        P	                  V4      '       d   V# V # )zHReturn torch.__version__ with only accelerator-wheel local tags removed.Ú+)ÚtorchÚ__version__Ú	partitionÚ$_TORCH_ACCELERATOR_LOCAL_TAG_PATTERNÚmatch)ÚversionÚpublicÚsepÚlocals       r!   Ú_torch_cpu_cache_versionr>   j   sB   € ô ×Ñ€GØ ×*Ñ*¨3Ó/Ñ€F�ß
Ô3×9Ñ9¸%×@Ò@ØˆØ€Nr#   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r-   Úintr.   r   r   r   )r    s   "r!   r"   r"   t   s!   € ÷ >ñ >¨#ð >°cð >¸cñ >r#   c                ó`   € \        V 4      ^8,          \        V4      ^0,          ,          pRVR 2# )zLReturn the stable-ABI target define for a minimum torch major/minor version.z-DTORCH_TARGET_VERSION=0xÚ016X©r@   )r-   r.   Úencoded_versions   && r!   Útorch_stable_abi_target_definerE   t   s0   € ô ˜5“z RÕ'¬C°«J¸"Õ,<Õ=€OØ& °tÐ&<Ð=Ð=r#   c               ó    € V ^8„  d   QhRRRR/# ©r   r   úSequence[str]r   ú	list[str]r   )r    s   "r!   r"   r"   {   s   € ÷ ñ  mð ¸	ñ r#   c                ó²   € . pRpV  FL  pV'       d   RpK  V\         9   d   RpK  VP                  \        4      '       d   K;  VP                  V4       KN  	  V# )zDDrop NVCC scheduling knobs that cannot change generated device code.FT)Ú'_CUDA_BUILD_SCHEDULING_FLAGS_WITH_VALUEÚ
startswithÚ$_CUDA_BUILD_SCHEDULING_FLAG_PREFIXESÚappend)r   ÚrelevantÚ
skip_valueÚflags   &   r!   Ú_cuda_cache_relevant_flagsrR   {   sZ   € ð €HØ€JÛˆßØˆJÙØÔ:Ô:ØˆJÙØ�?‰?Ô?×@Ò@ÙØ�‰˜Öñ ð €Or#   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úreasonr   Útarget_pathz
str | Pathr   ÚNoner   )r    s   "r!   r"   r"   �   s!   € ÷ ñ ¨ð ¸:ð È$ñ r#   c                óª   € R P                  \        P                  ! ^ R7      4      p\        P	                  RV \
        P                  ! 4       VV4       R# )r(   )Úlimitz8[jit-cache-clear] reason=%s pid=%s path=%s
callstack:
%sN)ÚjoinÚ	tracebackÚformat_stackÚlogÚwarningÚosÚgetpid)rT   rU   Ú
stack_texts   $$ r!   Ú_log_cache_clear_callsitera   �   s<   € Ø—‘œ×/Ò/°bÔ9Ó:€JÜ‡K�KØDØÜ
�	Š	‹ØØör#   c               ó   € V ^8„  d   QhRR/# )r   r   úOptional[str]r   )r    s   "r!   r"   r"   ˜   s   € ÷ ñ �Mñ r#   c                 ó@  € \         '       dM   \        P                  P                  \         R R4      p \        P                  P	                  V 4      '       d   V # \
        P                  ! R4      pV'       d   V# R Fv  p\        P                  P                  V4      pV'       g   K,  \        P                  P                  VR R4      p \        P                  P	                  V 4      '       g   Kt  V u # 	  Rp \        P                  P	                  V 4      '       d   V # R# )ÚbinÚnvccz/usr/local/cuda/bin/nvccN)r
   ÚCUDAHOME)	r
   r^   ÚpathrY   ÚisfileÚshutilÚwhichÚenvironÚget)Ú	candidaterh   ÚenvÚhomes       r!   Ú
_nvcc_pathrq   ˜   s¿   € çƒyÜ—G‘G—L‘L¤¨E°6Ó:ˆ	Ü�7‰7�>‰>˜)×$Ò$ØÐÜ�<Š<˜Ó€DßØˆÛ(ˆÜ�z‰z�~‰~˜cÓ"ˆß‰4ÜŸ™Ÿ™ T¨5°&Ó9ˆIÜ�w‰w�~‰~˜i×(Ô(Ø Ò ñ )ð +€IÜ	‡w�w‡~�~�i× Ò ØÐÙr#   c               ó    € V ^8„  d   QhRRRR/# )r   Úargsr   r   r   )r    s   "r!   r"   r"   ­   s   € ÷ Jñ J�cð J˜cñ Jr#   c                 ó  € \        4       pV'       g   R #  \        P                  ! V.V ORRRR7      pTP                  ;'       g    R R,           TP
                  ;'       g    R ,           P                  4       #   \         d     R # i ; i)r(   TF)Úcapture_outputÚtextÚcheckÚ
)rq   Ú
subprocessÚrunÚOSErrorÚstdoutÚstderrÚstrip)rs   Ú	nvcc_pathÚresults   *  r!   Ú
_nvcc_textr�   ­   s}   € Ü“€IßÙðÜ—’ØÐ˜ÐØØØô	
ˆð �]‰]× Ð ˜b DÕ(¨F¯M©M×,?Ð,?¸RÕ@×GÑGÓIÐIøô ô Úðús   –A9 Á9BÂBc               ó   € V ^8„  d   QhRR/# )r   r   útuple[int, int]r   )r    s   "r!   r"   r"   ¿   s   € ÷ #ñ #�ñ #r#   c                 óV  € \         ;_uu_ 4        \        e   \        uuR R R 4       # \        R4      p \        P	                  V 4      pV'       d6   \        VP                  ^4      4      \        VP                  ^4      4      3sMRs\        uuR R R 4       #   + '       g   i     R # ; i)Nz	--version©r   r   )Ú_NVCC_VERSION_LOCKr   r�   Ú_NVCC_RELEASE_PATTERNÚsearchr@   Úgroup)Úversion_textr9   s     r!   Ú_nvcc_versionr‹   ¿   sw   € ÷ 
Ö	ÜÒ*Ü&÷ 
Ò	ô " +Ó.ˆÜ%×,Ñ,¨\Ó:ˆßÜ#& u§{¡{°1£~Ó#6¼¸E¿K¹KÈ»NÓ8KÐ"LÑà"(ÐÜ"÷ 
×	×	Ó	ús   �B¨A$BÂB(	c               ó$   € V ^8„  d   QhRRRRRR/# )r   r-   r@   r.   r   Úboolr   )r    s   "r!   r"   r"   Ï   s!   € ÷ -ñ - ð -¨Sð -°Tñ -r#   c                ó   € \        4       W38¬  # ©N)r‹   )r-   r.   s   &&r!   Únvcc_version_at_leastr�   Ï   s   € Ü‹?˜u˜nÑ,Ð,r#   c               ó   € V ^8„  d   QhRR/# ©r   r   r�   r   )r    s   "r!   r"   r"   Ó   s   € ÷ (ñ (˜Dñ (r#   c                 ó   € \        ^^4      # )z@Return whether nvcc is new enough for required JIT kernel flags.)r�   r   r#   r!   Úis_nvcc_compatibler”   Ó   s   € ô !  QÓ'Ð'r#   c               ó    € V ^8„  d   QhRRRR/# )r   ÚsecondsÚfloatr   r   r   )r    s   "r!   r"   r"   Ù   s   € ÷ #ñ #¨eð #¸ñ #r#   c                óR   € \        R\        V 4      4      pVR8  d   VR R2# VR R2# )zDFormat one duration compactly for user-facing compile progress text.ç        g      $@z.1fÚsú.0f)Úmaxr—   )r–   Úseconds_values   & r!   Ú _format_compile_duration_secondsrž   Ù   s<   € ô ˜œU 7›^Ó,€MØ�tÔØ Ð$ AÐ&Ð&Ø˜CÐ  Ð"Ð"r#   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úelapsed_secondsr—   Úbaseline_secondsr   r   )r    s   "r!   r"   r"   â   s"   € ÷ 1ñ 1¨Uð 1Àeð 1ÐPUñ 1r#   c                óV  € \        \        V4      R4      p\        \        V 4      R4      pVR8:  g   VR8:  d   R# W28:  d   \        RW2,          ,          R4      # W2,
          pR\        P                  ! V) \        VR4      ,          4      ,
          p\        RRV,          ,           R4      # )zMMap elapsed compile time onto a progress ratio that never reaches 100% early.r™   gffffffî?r   g{®Gáz¤?g®Gáz®ï?)rœ   r—   ÚminÚmathÚexp)r    r¡   ÚbaselineÚelapsedÚoverrunÚ
tail_ratios   &&    r!   Ú_compile_progress_ratiorª   â   s’   € ô ”5Ð)Ó*¨CÓ0€HÜ”%˜Ó(¨#Ó.€GØ�3„˜' Sœ.ÙØÔÜ�4˜7Õ-Õ.°Ó5Ð5àÕ €GØ”t—x’x  ¬3¨x¸Ó+=Õ =Ó>Õ>€JÜˆt�t˜jÕ(Õ)¨4Ó0Ð0r#   Útotal_stepsc               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r    r—   r¡   r«   r@   r   r   )r    s   "r!   r"   r"   ñ   s6   € ÷ Tñ TØðTàðTð ð	Tð
 	ñTr#   c               ó¸   € V^8:  d   ^ # \        W4      p\        ^ \        V^,
          \        \        P
                  ! W2^,
          ,          4      4      4      4      # )zFConvert one elapsed/baseline pair into a bounded manual progress step.)rª   rœ   r£   r@   r¤   Úfloor)r    r¡   r«   Úratios   &&$ r!   Ú_compile_progress_stepr°   ñ   sF   € ð �aÔÙÜ# OÓF€EÜˆq”#�k A•o¤s¬4¯:ª:°eÈQ½Õ6OÓ+PÓ'QÓRÓSÐSr#   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r    r—   r¡   r   r   r   )r    s   "r!   r"   r"   ÿ   s"   € ÷ ñ °ð Èð ÐSVñ r#   c           	     ó  € \        \        V 4      R4      p\        \        V4      R4      pVR8:  d   R\        V4       2# W#8:  d   R\        V4       R\        V4       2# R\        V4       R\        V4       R\        W#,
          4       R2# )zFDescribe compile elapsed time against the recorded reference baseline.r™   zelapsed z / estimated ~z (+Ú))rœ   r—   rž   )r    r¡   r§   r¦   s   &&  r!   Ú_compile_progress_subtitler´   ÿ   s³   € ô ”%˜Ó(¨#Ó.€GÜ”5Ð)Ó*¨CÓ0€HØ�3„ØÔ:¸7ÓCÐDÐEÐEØÔàÔ7¸Ó@ÐAð BÜ:¸8ÓDÐEðGð	
ð
 Ô3°GÓ<Ð=ð >Ü6°xÓ@ÐAð BÜ-¨gÕ.@ÓAÐBÀ!ð	Eðr#   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r    r—   r¡   úOptional[float]r   r   r   )r    s   "r!   r"   r"     s'   € ÷ Gñ G¨uð GÈð GÐ\_ñ Gr#   c                óê   € \        V 4      pVe   V^ 8:  d   RV 2# \        V4      pW,
          p\        \        V4      4      p\        V4      R8  d
   RV RV R2# V^ 8¼  d   RMRpRV RV RV V R2# )zCFormat a concise compile-vs-baseline summary for durable log lines.zin çš™™™™™©?z (estimated ~r³   r4   Ú-ú, )rž   Úabs)r    r¡   r§   r¦   ÚdeltaÚ
delta_textÚsigns   &&     r!   Ú_compile_baseline_summaryr¿     s–   € ô /¨Ó?€GØÒÐ#3°qÔ#8Ø�W�IˆÐä/Ð0@ÓA€HØÕ.€EÜ1´#°e³*Ó=€JÜ
ˆ5ƒz�DÔØ�W�I˜]¨8¨*°AÐ6Ð6Ø˜1”*‰3 #€DØ��	˜ x j°°4°&¸¸ÀAÐFÐFr#   c                  ó^   € ] tR tRtRtR R ltR R ltR R ltR	 R
 ltRR/R R llt	Rt
R# )Ú_CompileProgressDisplayi"  zCRender either a baseline-backed progress bar or a fallback spinner.c               ó$   € V ^8„  d   QhRRRRRR/# )r   Útitler   r¡   r¶   r   rV   r   )r    s   "r!   r"   Ú$_CompileProgressDisplay.__annotate__%  s*   € ÷ #ñ #ð ð	#ð
 *ð#ð 
ñ#r#   c               	ó0  € Wn         W n        Ve   V^ 8:  d   R M
\        V4      V n        \        P
                  ! 4       V n        R V n        R V n        R V n	        R V n
        \        P                  ! 4       V n        RV n        V P                  f   VP                  V\         R7      V n
        R # VP#                  \%        \&        4      4      P)                  4       P+                  RR7      pVP-                  V4       VP/                  \1        RV P                  4      4       VP3                  RR7       W@n	        \        P4                  ! 4       V n        \        P6                  ! V P8                  RV 2RR7      V n        V P                  P;                  4        R # )	NF)rÃ   Úinterval)Úshow_left_stepsr™   T©Úforcezjit-compile-progress-)ÚtargetÚnameÚdaemon)Ú_loggerÚ_titler—   Ú_baseline_secondsÚtimeÚperf_counterÚ_startedÚ_stop_eventÚ_threadÚ	_progressÚ_spinnerÚ	threadingÚLockÚ_render_lockÚ_closedÚspinnerÚ"_COMPILE_PROGRESS_INTERVAL_SECONDSÚpbÚrangeÚ_COMPILE_PROGRESS_TOTAL_STEPSÚmanualÚsetrÃ   Úsubtitler´   ÚdrawÚEventÚThreadÚ_refresh_loopÚstart)ÚselfÚloggerrÃ   r¡   Úprogresss   &$$$ r!   Ú__init__Ú _CompileProgressDisplay.__init__%  sG  € ð ŒØŒà$Ò,Ð0@ÀAÔ0E‰DÌ5ÐQaÓKbð 	Ôô ×)Ò)Ó+ˆŒØ6:ˆÔØ37ˆŒØˆŒØˆŒÜ%ŸNšNÓ,ˆÔØˆŒà×!Ñ!Ò)Ø"ŸN™N°ÔAc˜NÓdˆDŒMÙà—9‘9œUÔ#@ÓAÓB×IÑIÓK×OÑOÐ`eÐOÓfˆØ�‰�uÔØ×ÑÔ4°S¸$×:PÑ:PÓQÔRØ�‰˜DˆÔ!Ø!ŒÜ$Ÿ?š?Ó,ˆÔÜ ×'Ò'Ø×%Ñ%Ø(¨¨Ð0Øô
ˆŒð
 	�‰×ÑÖr#   c               ó   € V ^8„  d   QhRR/# ©r   r   r—   r   )r    s   "r!   r"   rÄ   J  s   € ÷ =ñ = ñ =r#   c                	ób   € \        R \        P                  ! 4       V P                  ,
          4      # )r™   )rœ   rÐ   rÑ   rÒ   ©rè   s   &r!   r    Ú'_CompileProgressDisplay.elapsed_secondsJ  s!   € Ü�3œ×)Ò)Ó+¨d¯m©mÕ;Ó<Ð<r#   c               ó   € V ^8„  d   QhRR/# ©r   r   rV   r   )r    s   "r!   r"   rÄ   M  s   € ÷ ,ñ ,˜tñ ,r#   c                	ó˜   € V P                   f   Q hV P                   P                  \        4      '       g   V P                  RR7       K9  R # )NFrÈ   )rÓ   ÚwaitrÜ   Ú_draw_currentrð   s   &r!   ræ   Ú%_CompileProgressDisplay._refresh_loopM  sC   € Ø×ÑÒ+Ð+Ð+Ø×"Ñ"×'Ñ'Ô(J×KÒKØ×Ñ UÐÖ+ñ Lr#   c               ó    € V ^8„  d   QhRRRR/# )r   rÉ   r�   r   rV   r   )r    s   "r!   r"   rÄ   R  s   € ÷ -ñ - dð -¨tñ -r#   c               	ó  € V P                   e   V P                  f   R # V P                  '       d   R # V P                  ;_uu_ 4        V P                  '       d    R R R 4       R # V P	                  4       p\        W P                  4      V P                   n        V P                   P                  \        W P                  4      4       V P                   P                  VR7       R R R 4       R #   + '       g   i     R # ; i)NrÈ   )
rÕ   rÏ   rÚ   rÙ   r    r°   Úcurrent_iter_steprâ   r´   rã   )rè   rÉ   r§   s   &$ r!   rö   Ú%_CompileProgressDisplay._draw_currentR  s¯   € Ø�>‰>Ò! T×%;Ñ%;Ò%CÙØ�<�<ˆ<ÙØ××ÓØ�|�|ˆ|Ø÷ Ñð ×*Ñ*Ó,ˆGÜ/EÀg×OeÑOeÓ/fˆD�N‰NÔ,Ø�N‰N×#Ñ#Ô$>¸w×H^ÑH^Ó$_Ô`Ø�N‰N×Ñ eÐÔ,÷ ××Òús   ÁC-Á%A>C-Ã-C>	r    Nc               ó$   € V ^8„  d   QhRRRRRR/# )r   Ú	succeededr�   r    r¶   r   rV   r   )r    s   "r!   r"   rÄ   _  s"   € ÷ ,ñ , $ð ,¸ð ,ÐTXñ ,r#   c               	ón  € Vf   V P                  4       M\        R\        V4      4      pV P                  e   V P                  P	                  4        R # V P
                  e   V P
                  P                  4        V P                  e   V P                  f   R # RV n	        V P                  ;_uu_ 4        V'       d   \        M\        W0P                  4      V P                  n        V P                  P                  \        W0P                  4      4       V P                  P!                  RR7       V P                  P	                  4        R R R 4       V P"                  eA   V P"                  P%                  4       '       d   V P"                  P'                  RR7       R # R # R #   + '       g   i     L`; i)Nr™   TrÈ   r¸   )Útimeout)r    rœ   r—   rÖ   ÚcloserÓ   rá   rÕ   rÏ   rÚ   rÙ   rß   r°   rú   râ   r´   rã   rÔ   Úis_aliverY   )rè   rý   r    r§   s   &$$ r!   r   Ú_CompileProgressDisplay.close_  s=  € Ø,;Ò,C�$×&Ñ&Ô(ÌÈSÔRWÐXgÓRhÓIiˆØ�=‰=Ò$Ø�M‰M×ÑÔ!ÙØ×ÑÒ'Ø×Ñ× Ñ Ô"Ø�>‰>Ò! T×%;Ñ%;Ò%CÙð ˆŒØ××Óç1:Õ-Ô@VÐW^×`vÑ`vÓ@wð �N‰NÔ,ð �N‰N×#Ñ#Ô$>¸w×H^ÑH^Ó$_Ô`Ø�N‰N×Ñ dÐÔ+Ø�N‰N× Ñ Ô"÷ ð �<‰<Ò#¨¯©×(=Ñ(=×(?Ò(?Ø�L‰L×Ñ dÐÖ+ñ )@Ñ#÷ ×ús   Â5BF$Æ$F4	)
rÏ   rÚ   rÍ   rÕ   rÙ   rÖ   rÒ   rÓ   rÔ   rÎ   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rë   r    ræ   rö   r   Ú__static_attributes__r   r#   r!   rÁ   rÁ   "  s+   † ÙMõ#õJ=õ,õ
-ð,È4÷ ,ó ,r#   rÁ   c               ó    € V ^8„  d   QhRRRR/# )r   Úsubdirr   r   r   r   )r    s   "r!   r"   r"   w  s   € ÷ Nñ N¨ð N°ñ Nr#   c                óè   € \         P                  ! \        4      pV'       d!   \        V4      P	                  4       V ,          # \        P
                  ! 4       R,          R,          R,          V ,          # )zCReturn the default on-disk cache root for torch.ops JIT extensions.z.cacheÚ	gptqmodelÚtorch_extensions)r^   ÚgetenvÚ_TORCH_OPS_BUILD_ROOT_ENVr   Ú
expanduserrp   )r
  Úoverride_roots   & r!   Údefault_torch_ops_build_rootr  w  sP   € ô —I’IÔ7Ó8€MßÜ�MÓ"×-Ñ-Ó/°&Õ8Ð8Ü�9Š9‹;˜Õ! KÕ/Ð2DÕDÀvÕMÐMr#   c               ó   € V ^8„  d   QhRR/# rî   r   )r    s   "r!   r"   r"   €  s   € ÷ 	<ñ 	<¨eñ 	<r#   c                 ó¤   € \         P                  ! \        4      p V f   \        #  \	        R\        V 4      4      #   \         d
    \        u # i ; i)zDResolve how long one process waits on another's in-flight JIT build.r™   )r^   r  Ú _TORCH_OPS_FILE_LOCK_TIMEOUT_ENVÚ,_TORCH_OPS_FILE_LOCK_TIMEOUT_DEFAULT_SECONDSrœ   r—   Ú
ValueError)Úraw_timeouts    r!   Ú$_torch_ops_file_lock_timeout_secondsr  €  sK   € ô —)’)Ô<Ó=€KØÒÜ;Ð;ð<Ü�3œ˜kÓ*Ó+Ð+øÜô <Ü;Ò;ð<ús   ¦; »AÁAc               ó    € V ^8„  d   QhRRRR/# )r   Ú	lock_pathr   Útimeout_secondsr—   r   )r    s   "r!   r"   r"   �  s   € ÷ )ñ )¨ð )À5ñ )r#   c             #  ó´  "  € \         f   Rx € R# V P                  P                  RRR7       \        P                  ! \        V 4      \        P                  \        P                  ,          4      pRp \        P                  ! 4       \        RV4      ,           p  \         P                  ! V\         P                  \         P                  ,          4       Rp Tx € T'       d'    \         P                  ! T\         P"                  4       \        P$                  ! T4       R#   \         d<    \        P                  ! 4       T8¼  d    Kr  \        P                  ! \         4        KÎ  i ; i  \         d     Lni ; i  T'       d9    \         P                  ! T\         P"                  4       M  \         d     Mi ; i\        P$                  ! T4       i ; i5i)u°  Serialize on-disk JIT cache mutation across OS processes.

The process-local `_TORCH_OPS_JIT_LOCK` cannot see other interpreters, so
two independent processes sharing one cache directory can race the same
build. This holds an exclusive `flock` on `lock_path` instead. The lock
belongs to this process's open file descriptor, so the kernel releases it
automatically when the holder exits or is killed â€” a dead process can
never leave the cache permanently locked.

Yields True when the lock was acquired within `timeout_seconds`, else
False so the caller can degrade loudly instead of blocking forever. Hosts
without `fcntl` keep the existing process-local-only behavior and yield
True.
NT©ÚparentsÚexist_okFr™   )ÚfcntlÚparentÚmkdirr^   Úopenr   ÚO_CREATÚO_RDWRrÐ   Ú	monotonicrœ   ÚflockÚLOCK_EXÚLOCK_NBr{   ÚsleepÚ!_TORCH_OPS_FILE_LOCK_POLL_SECONDSÚLOCK_UNr   )r  r  Úlock_fdÚacquiredÚdeadlines   &$   r!   Ú_cross_process_build_lockr1  Œ  sG  é € ô" ‚}ØŠ
Ùà×Ñ×Ñ 4°$ÐÔ7Ü�gŠg”c˜)“n¤b§j¡j´2·9±9Õ&<Ó=€GØ€HðÜ—>’>Ó#¤c¨#¨Ó&?Õ?ˆØð>Ü—’˜G¤U§]¡]´U·]±]Õ%BÔCØ�Øð
 ŠçðÜ—’˜G¤U§]¡]Ô3ô 	�Š�Öøô ô >Ü—>’>Ó# xÔ/ÚÜ—
’
Ô<×=ð>ûô ô Ùðû÷ ðÜ—’˜G¤U§]¡]Õ3øÜô Ùðúä
�Š�Õüs–   ‚A1GÁ4'E= Â<D# ÃE= ÃGÃ&%E, ÄGÄ#%E)ÅE= ÅE)Å%E= Å(E)Å)E= Å,E:Å7GÅ9E:Å:GÅ=	GÆ%F-Æ,GÆ-F;Æ8GÆ:F;Æ;GÇGc               ó    € V ^8„  d   QhRRRR/# )r   ÚpathsrH   r   rI   r   )r    s   "r!   r"   r"   ¹  s   € ÷ ñ  ð °)ñ r#   c                óÈ   € . p\        4       pV  FO  p\        \        V4      P                  4       4      pWB9   d   K-  VP	                  V4       VP                  V4       KQ  	  V# )zNNormalize and deduplicate include/library path strings while preserving order.)rá   r   r   r  ÚaddrN   )r3  ÚdedupedÚseenÚraw_pathÚ
normalizeds   &    r!   Ú_dedupe_path_stringsr:  ¹  sY   € ð €GÜ“U€DÛˆÜœ˜h›×2Ñ2Ó4Ó5ˆ
ØÔÙØ�‰�ÔØ�‰�zÖ"ñ ð €Nr#   c               ó    € V ^8„  d   QhRRRR/# )r   rh   r   r   r   r   )r    s   "r!   r"   r"   Î  s   € ÷ ñ  ð ¨ñ r#   c                óÆ   € V P                  4       P                  RR7      p VP                  \        4      pVP                  4       #   \         d    \        T4      u # i ; i)a\  Return a stable, location-independent key for *path*.

Paths inside the package/project root are returned relative to that root so
the cache key is not tied to where the repository is cloned or installed.
Paths outside the project root (system CUDA headers, third-party wheels,
etc.) are kept absolute because they are toolchain/dependency inputs.
F©Ústrict)r  ÚresolveÚrelative_toÚ_FINGERPRINT_ROOTr  r   Úas_posix)rh   r9  Úrelatives   &  r!   Ú_fingerprint_path_keyrD  Î  s`   € ð —‘Ó"×*Ñ*°%Ð*Ó8€JðØ×)Ñ)Ô*;Ó<ˆð ×ÑÓÐøô ô Ü�:‹Òðús   ¢A ÁA ÁA )Úmaxsizec               ó   € V ^8„  d   QhRR/# )r   r   ztuple[Path, ...]r   )r    s   "r!   r"   r"   à  s   € ÷ %ñ %Ð/ñ %r#   c                 ó�  € . p  ^ RI Hp V P                  R V! 4        4       4        ^ RIpV P                  \        VP                  ! 4       R,          4      P                  4       P                  RR	7      4        V P                  R \        4        4       4        V P                  R \        4        4       4       \        4       p. pV  F-  pWd9   d   K  VP                  V4       VP                  V4       K/  	  \!        V4      #   \         d$   p\        P                  RTRR7        Rp?ELRp?ii ; i  \         d#   p\        P                  R
TRR7        Rp?LåRp?ii ; i  \         d#   p\        P                  RTRR7        Rp?LôRp?ii ; i  \         d$   p\        P                  RTRR7        Rp?ELRp?ii ; i)a   Return system/dependency include directories used by the toolchain.

These roots identify headers (e.g. ``torch/``, ``ATen/``, ``c10/``,
``Python.h``, ``cuda*.h``) whose contents are captured by the ABI/toolchain
portion of the cache key rather than by hashing the header files directly.
)Úinclude_pathsc              3  ót   "  € T F.  p\        V4      P                  4       P                  R R7      x € K0  	  R# 5i©Fr=  N©r   r  r?  ©Ú.0Úps   & r!   Ú	<genexpr>Ú(_system_include_roots.<locals>.<genexpr>ì  s0   é € Ð`ÑI_ÀA”T˜!“W×'Ñ'Ó)×1Ñ1¸Ð1×?Ð?ÓI_ùó   ‚68z<Torch include roots unavailable; continuing without them: %sT©Úexc_infoNÚincludeFr=  z:Python include root unavailable; continuing without it: %sc              3  ót   "  € T F.  p\        V4      P                  4       P                  R R7      x € K0  	  R# 5irJ  rK  rL  s   & r!   rO  rP  ö  ó0   é € ÐmÑIlÀA”T˜!“W×'Ñ'Ó)×1Ñ1¸Ð1×?Ð?ÓIlùrQ  zALocal CUDA include roots unavailable; continuing without them: %sc              3  ót   "  € T F.  p\        V4      P                  4       P                  R R7      x € K0  	  R# 5irJ  rK  rL  s   & r!   rO  rP  ú  rV  rQ  zACUDA wheel include roots unavailable; continuing without them: %s)Útorch.utils.cpp_extensionrH  ÚextendÚ	Exceptionr\   Údebugr)   rN   r   Ú	get_pathsr  r?  Ú!detected_local_cuda_include_pathsÚ!detected_cuda_wheel_include_pathsrá   r5  Útuple)ÚrootsÚ_torch_include_pathsÚexcr)   r7  r6  Úroots          r!   Ú_system_include_rootsrd  ß  s�  € ð €EðfÝSà�‰Ñ`ÑI]ÔI_Ó`Ô`ðdÛà�‰”T˜)×-Ò-Ó/°	Õ:Ó;×FÑFÓH×PÑPÐX]ÐPÓ^Ô_ðkØ�‰ÑmÔIjÔIlÓmÔmðkØ�‰ÑmÔIjÔIlÓmÔmô “e€DØ€GÛˆØŒ<ÙØ�‰�ŒØ�‰�tÖñ	 ô
 �‹>Ðøô1 ô fÜ�	‰	ÐPÐRUÐ`dˆ	×eÒeûðfûô ô dÜ�	‰	ÐNÐPSÐ^bˆ	×cÑcûðdûô ô kÜ�	‰	ÐUÐWZÐeiˆ	×jÑjûðkûô ô kÜ�	‰	ÐUÐWZÐeiˆ	×jÒjûðkús_   „#D ¨AD7 Á; E' Â F ÄD4ÄD/Ä/D4Ä7E$ÅEÅE$Å'FÅ2FÆFÆGÆ"G Ç Gc               ó    € V ^8„  d   QhRRRR/# )r   Úinclude_namer   r   r�   r   )r    s   "r!   r"   r"     s   € ÷ ñ °#ð ¸$ñ r#   c                óf   € \        4        F"  pW,          P                  4       '       g   K!   R# 	  R# )aÓ  Return True if *include_name* names a system/dependency header.

The check is conservative: only headers that actually exist under a known
system include directory (torch, Python, CUDA, etc.) are skipped. This lets
legitimate local angle-bracket headers (e.g. ``<wrapper.h>`` under an
extension-specific include root) still be hashed while preventing files
dropped by unrelated kernels (e.g. ``gptqmodel_ext/torch/all.h``) from
leaking into an extension's cache key.
TF)rd  Úis_file)rf  rc  s   & r!   Ú_is_system_or_dependency_headerri    s+   € ô &Ö'ˆØÕ×(Ñ(×*Ô*Úñ (ñ r#   c               ó   € V ^8„  d   QhRR/# ©r   r   rI   r   )r    s   "r!   r"   r"     ó   € ÷ /ñ /¨9ñ /r#   c                 ó†  €  ^ RI p . p\        T R. 4       FŒ  p\        T4      p\	        TP                  R4      4      pTP                  TP                  R4      4       \        T4       F5  pTP                  4       '       g   K  TP                  \        T4      4       K7  	  KŽ  	  \        T4      #   \         d    . u # i ; i)zADiscover CUDA developer headers shipped via NVIDIA Python wheels.NÚ__path__zcu*/includez	*/include)ÚnvidiarZ  r/   r   ÚlistÚglobrY  ÚsortedÚis_dirrN   r   r:  )ro  rH  Ú	base_textÚ	base_pathÚcandidate_pathsrn   s         r!   r^  r^    sª   € ðÛð  "€MÜ˜V Z°Ö4ˆ	Ü˜“Oˆ	Ü˜yŸ~™~¨mÓ<Ó=ˆØ×Ñ˜yŸ~™~¨kÓ:Ô;Ü Ö0ˆIØ×Ñ×!Ô!Ø×$Ñ$¤S¨£^Ö4ó 1ñ	 5ô   Ó.Ð.øô ô ØŠ	ðús   ‚B0 Â0C Â?C c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   rf  r   Úincluding_pathr   Úinclude_search_rootszSequence[Path]r   úOptional[Path]r   )r    s   "r!   r"   r"   ,  s2   € ÷ ñ Øðð ðð )ð	ð
 ñr#   c               óP  € \        V 4      P                  4       pVP                  4       '       d-   VP                  RR7      pVP	                  4       '       d   V# R# VP
                  .VOpV F5  pWc,          P                  RR7      pVP	                  4       '       g   K3  Vu # 	  R# )zUResolve one quoted local include against the current file and explicit include roots.Fr=  N)r   r  Úis_absoluter?  Úexistsr"  )rf  rx  ry  Úinclude_pathÚresolvedÚsearch_rootsrc  rn   s   &$$     r!   Ú_resolve_local_include_pathr�  ,  sž   € ô ˜Ó%×0Ñ0Ó2€LØ×Ñ×!Ò!Ø×'Ñ'¨uÐ'Ó5ˆØ#Ÿ?™?×,Ò,ˆxÐ6°$Ð6à"×)Ñ)ÐAÐ,@ÐA€LÛˆØÕ(×1Ñ1¸Ð1Ó?ˆ	Ø×Ñ×ÔØÒñ ñ r#   c               ó   € V ^8„  d   QhRR/# rk  r   )r    s   "r!   r"   r"   A  rl  r#   c                 ó¸  € . p \         '       dU   \        \         4      P                  4       R,          pVP                  4       '       d   V P	                  \        V4      4       \        P                  ! R4      pV'       dQ   \        V4      P                  4       R,          pVP                  4       '       d   V P	                  \        V4      4       \        V 4      # )zCDiscover CUDA developer headers from the active local CUDA toolkit.rT  Ú	CUDA_PATH)	r
   r   r  rs  rN   r   r^   r  r:  )rH  rn   Ú	cuda_paths      r!   r]  r]  A  sš   € ð  "€MçƒyÜœ“O×.Ñ.Ó0°9Õ<ˆ	Ø×Ñ×ÒØ× Ñ ¤ Y£Ô0ä—	’	˜+Ó&€IßÜ˜“O×.Ñ.Ó0°9Õ<ˆ	Ø×Ñ×ÒØ× Ñ ¤ Y£Ô0ä Ó.Ð.r#   c               ó    € V ^8„  d   QhRRRR/# )r   Úrequired_header_namesrH   r   r�   r   )r    s   "r!   r"   r"   T  s   € ÷ 	ñ 	À]ð 	ÐW[ñ 	r#   c                ó    a€ \        4       oS'       g   R# \        ;QJ d    V3R lV  4       F  '       d   K   R# 	  R# ! V3R lV  4       4      # )zMReturn whether the detected local CUDA toolkit exposes every required header.Fc              3  óš   <a"  € T F?  o\         ;QJ d    V3R  lS 4       F  '       g   K   RM	  RM! V3R  lS 4       4      x € KA  	  R# 5i)c              3  ód   <"  € T F%  p\        V4      S,          P                  4       x € K'  	  R # 5ir�   )r   rh  )rM  r~  Úheader_names   & €r!   rO  ÚF_detected_local_cuda_has_required_headers.<locals>.<genexpr>.<genexpr>[  s)   øé € ÐfÑMe¸\ŒT�,Ó +Õ-×6Ñ6×8Ð8ÓMeùs   ƒ-0TFN)Úany)rM  r‹  Úlocal_cuda_include_pathss   &@€r!   rO  Ú<_detected_local_cuda_has_required_headers.<locals>.<genexpr>Z  s8   ùé € ð á0ˆK÷ 	‹ÔfÑMeÓf��ŠÔfÑMeÓf×fÐfÛ0ùs   „A”A« AT)r]  Úall)r‡  rŽ  s   &@r!   Ú)_detected_local_cuda_has_required_headersr‘  T  sP   ø€ ô  AÓBÐß#Ùß‹3ô á0ó�3Œ3ð Š3ð ˆ3ô á0óó ð r#   r‡  c               ó$   € V ^8„  d   QhRRRRRR/# )r   rH  rH   r‡  r   rI   r   )r    s   "r!   r"   r"   `  s(   € ÷ 
8ñ 
8Ø ð
8ð )ð
8ð ñ	
8r#   c               ó‚   € \        V 4      p\        V4      '       g   VP                  \        4       4       \        V4      # )zPAppend NVIDIA wheel headers when the local CUDA toolkit is absent or incomplete.)r:  r‘  rY  r^  )rH  r‡  Úresolved_include_pathss   &$ r!   Ú cuda_include_paths_with_fallbackr•  `  s9   € ô 2°-Ó@ÐÜ4Ð5J×KÒKØ×%Ñ%Ô&GÓ&IÔJÜÐ 6Ó7Ð7r#   z*^(?P<major>\d+)\.(?P<minor>\d+)(?:\+PTX)?$c               ó   € V ^8„  d   QhRR/# )r   r   zlist[tuple[int, int]]r   )r    s   "r!   r"   r"   p  s   € ÷ 	ñ 	Ð$9ñ 	r#   c                 óØ  € \        4       p \        \        P                  R R 4      ! 4        F±  p\	        V\
        4      '       d   VP                  R4      '       g   K2  VP                  R^4      ^,          P                  R4      pVP                  4       '       d   \        V4      ^8  d   K‚  V P                  \        VRR 4      \        VR,          4      34       K³  	  \        V 4      # )Úget_arch_listc                 ó   € . # r�   r   r   r#   r!   Ú<lambda>Ú,_supported_cuda_arch_pairs.<locals>.<lambda>r  s   € ¹Rr#   Úsm_Ú_ÚafNéÿÿÿÿ)rá   r/   r5   ÚcudaÚ
isinstancer   rL   ÚsplitÚrstripÚisdigitÚlenr5  r@   rr  )ÚpairsÚarchÚsms      r!   Ú_supported_cuda_arch_pairsr©  p  s©   € Ü"%£%€EÜœŸ
™
 O±ZÔ@ÖBˆÜ˜$¤×$Ò$¨D¯O©O¸E×,BÒ,BÙØ�Z‰Z˜˜QÓ Õ"×)Ñ)¨$Ó/ˆØ�z‰z�|Š|œs 2›w¨œ{ÙØ�	‰	”3�r˜#˜2�w“<¤ R¨¥V£Ð-Ö.ñ Cô �%‹=Ðr#   c               ó    € V ^8„  d   QhRRRR/# )r   Ú
capabilityrƒ   r   r   )r    s   "r!   r"   r"   |  s   € ÷ +ñ +¨ð +À?ñ +r#   c                óT   € \        4       pV'       g   V # \        \        V4      V 4      # r�   )r©  r£   rœ   )r«  Ú	supporteds   & r!   Ú_clamp_visible_cuda_capabilityr®  |  s$   € Ü*Ó,€IßØÐÜŒs�9‹~˜zÓ*Ð*r#   c               ó   € V ^8„  d   QhRR/# rk  r   )r    s   "r!   r"   r"   ƒ  s   € ÷ ñ  9ñ r#   c                 ó|  € \         P                  P                  4       '       g   . # . p \        4       p\	        \         P                  P                  4       4       F^  p\        \         P                  P                  V4      4      w  r4V R V 2pWQ9  g   K<  VP                  V4       V P                  V4       K`  	  V # )r&   )
r5   r   Úis_availablerá   rÞ   Údevice_countr®  Úget_device_capabilityr5  rN   )Útokensr7  Údevice_indexr-   r.   Útokens         r!   Ú_visible_cuda_arch_tokensr·  ƒ  s’   € Ü�:‰:×"Ñ"×$Ò$Øˆ	à€FÜ“U€DÜœeŸj™j×5Ñ5Ó7Ö8ˆÜ5´e·j±j×6VÑ6VÐWcÓ6dÓe‰ˆØ�'˜˜5˜'Ð"ˆØÖØ�H‰H�UŒOØ�M‰M˜%Ö ñ 9ð €Mr#   c               ó    € V ^8„  d   QhRRRR/# )r   Úraw_overrider   r   r   )r    s   "r!   r"   r"   ’  s   € ÷ &ñ &¸cð &Àcñ &r#   c           
     ó
  € . p\        4       p\        P                  ! R V P                  4       4       Fƒ  pV'       g   K  VP	                  V4       \
        P                  V4      pV'       g   K=  VP                  \        VP                  R4      4       R\        VP                  R4      4       24       K…  	  \        4        F-  pW29  g   K  VP	                  V4       VP                  V4       K/  	  RP                  V4      # )z[;\s,]+r-   r&   r.   Ú;)rá   Úpcrer¢  r~   rN   Ú_CUDA_ARCH_TOKEN_REr9   r5  r@   r‰   r·  rY   )r¹  Úrequested_tokensÚrequested_basesr¶  r9   s   &    r!   Ú+_merge_cuda_arch_override_with_visible_capsrÀ  ’  sÐ   € Ø"$ÐÜ #£€OÜ—’˜J¨×(:Ñ(:Ó(<Ö=ˆßÙØ×Ñ Ô&Ü#×)Ñ)¨%Ó0ˆß‰5Ø×Ñ¤3 u§{¡{°7Ó';Ó#<Ð"=¸Q¼sÀ5Ç;Á;ÈwÓCWÓ?XÐ>YÐ ZÖ[ñ >ô +Ö,ˆØÖ'Ø×#Ñ# EÔ*Ø×Ñ Ö&ñ -ð
 �8‰8Ð$Ó%Ð%r#   c               ó    € V ^8„  d   QhRRRR/# )r   Úmerge_visible_capsr�   r   rI   r   )r    s   "r!   r"   r"   ¥  s   € ÷ ñ °dð ¸yñ r#   c                ób  € \         P                  ! R4      p V'       dT   V '       dL   \        V4      pW!8w  d;   V\         P                  R&    \	        \        4       4      V\         P                  R&   # \	        \        4       4      #   T\         P                  R&   i ; i  \         d    . u # i ; i)úCReturn the effective NVCC arch flags Torch will emit for this host.ÚTORCH_CUDA_ARCH_LIST)r^   r  rÀ  rl   rp  r   rZ  )rÂ  ÚoverrideÚmerged_overrides   $  r!   Ú_effective_cuda_arch_flagsrÈ  ¥  s”   € ô �yŠyÐ/Ó0€Hðß×*ÜIÈ(ÓSˆOØÔ*Ø5D”—
‘
Ð1Ñ2ðBÜÔ 4Ó 6Ó7à9A”B—J‘JÐ5Ò6ÜÔ(Ó*Ó+Ð+øð :B”B—J‘JÐ5Ò6ûäô ØŠ	ðús9   ˜B  B ¨$B ÁB ÁB Á3B ÂBÂB ÂB.Â-B.ÚenabledTc               ó   € V ^8„  d   QhRR/# )r   rÉ  r�   r   )r    s   "r!   r"   r"   ¸  s   € ÷ 6ñ 6°Tñ 6r#   c              #  ó  "  € \         P                  ! R4      pV '       d	   V'       g   Rx € R# \        V4      pW!8X  d   Rx € R# V\         P                  R&    Rx € V\         P                  R&   R#   T\         P                  R&   i ; i5i)zITemporarily include the visible CUDA capability in manual arch overrides.rÅ  N)r^   r  rÀ  rl   )rÉ  rÆ  rÇ  s   $  r!   Ú$_temporary_merged_cuda_arch_overriderÌ  ·  sl   é € ô �yŠyÐ/Ó0€HßŸ(ÛÙäAÀ(ÓK€OØÔ"ÛÙà)8„B‡J�JÐ%Ñ&ð6Ûà-5Œ�
‰
Ð)Ó*ø¨XŒ�
‰
Ð)Ò*üs"   ‚&B©0BÁA3 ÁBÁ3BÂBc               ó   € V ^8„  d   QhRR/# rk  r   )r    s   "r!   r"   r"   Ì  s   € ÷ ?ñ ? )ñ ?r#   c                 ó   € \        RR7      # )rÄ  T©rÂ  )rÈ  r   r#   r!   Úresolved_cuda_arch_flagsrÐ  Ì  s   € ô &¸Ô>Ð>r#   c               ó   € V ^8„  d   QhRR/# )r   r   r@   r   )r    s   "r!   r"   r"   Ò  s   € ÷ ?ñ ?˜cñ ?r#   c                 óJ   € \        \        \        P                  R^4      4      # )zIReturn the ABI mode local JIT extensions must match for this torch build.Ú_GLIBCXX_USE_CXX11_ABI)r@   r/   r5   Ú_Cr   r#   r!   Útorch_cxx11_abi_flagrÕ  Ò  s   € ô Œw”u—x‘xÐ!9¸1Ó=Ó>Ð>r#   c               ó   € V ^8„  d   QhRR/# r   r   )r    s   "r!   r"   r"   Ø  s   € ÷ @ñ @ ñ @r#   c                 ó   € R\        4        2# )zFReturn the compiler define that keeps local extensions ABI-compatible.z-D_GLIBCXX_USE_CXX11_ABI=)rÕ  r   r#   r!   Útorch_cxx11_abi_definerØ  Ø  s   € ð 'Ô';Ó'=Ð&>Ð?Ð?r#   ÚO3c               ó    € V ^8„  d   QhRRRR/# )r   Ú	opt_levelú
str | Noner   r   )r    s   "r!   r"   r"   Þ  s   € ÷ ñ  jð ¸Jñ r#   c                ó*  € \         P                  ! R4      pVe   TMT pVf   R# \        V4      P                  4       pV'       g   R# VP	                  R4      '       d
   VR,          pVP                  4       pVR9   d   R# VR9   d   V# \        R4      h)zOResolve the effective JIT optimization level, honoring the global env override.ÚGPTQMODEL_NVCC_COMPILE_LEVELNr¹   ºé   NNzJGPTQMODEL_NVCC_COMPILE_LEVEL must be one of O0/O1/O2/O3 or NONE/NOOPT/OFF.>   Ú0ÚOFFÚNONEÚNOOPTÚNO_OPTÚDISABLE>   ÚO0ÚO1ÚO2rÙ  )r^   r  r   r~   rL   Úupperr  )rÛ  rÆ  Ú	raw_levelr9  s   &   r!   Úresolved_jit_opt_levelrì  Þ  s“   € ô �yŠyÐ7Ó8€HØ$Ò0‘°i€IØÒÙä�Y“×%Ñ%Ó'€JßÙØ×Ñ˜S×!Ò!Ø •^ˆ
Ø×!Ñ!Ó#€JàÐGÔGÙØÐ-Ô-ØÐÜ
ØTóð r#   c               ó   € V ^8„  d   QhRR/# r   r   )r    s   "r!   r"   r"   ö  s   € ÷ 
ñ 
˜3ñ 
r#   c                 ó  €  ^ RI p V P                  R\        P                  4      p\	        VP                  ^4      4      V'       d   \	        VP                  ^4      4      MRr2W#3R8¼  d   R# R#   \         d     R# i ; i)zBReturn the C++ standard required by the installed PyTorch headers.Nz(\d+)\.(\d+)zc++20zc++17r…   )r   é   )Úrer9   r5   r6   r@   r‰   rZ  )rð  r9   r-   r.   s       r!   Ú_jit_cxx_standardrñ  ö  sk   € ðÛà—‘˜¬%×*;Ñ*;Ó<ˆÜ˜5Ÿ;™; q›>Ó*Ç5¬C°·±¸A³Ô,?ÈfˆuØ ˜.¨GÔ3ˆwÐ@¸Ð@øÜô Úðús   ‚A*A/ Á-A/ Á/A>Á=A>rÛ  Úenable_bf16Úinclude_abic               ó(   € V ^8„  d   QhRRRRRRRR/# )r   rÛ  rÜ  rò  r�   ró  r   rI   r   )r    s   "r!   r"   r"     s2   € ÷ ñ àðð ðð ð	ð
 ñr#   c                óÞ   € \        V 4      pR\        4        2.pVe   VP                  ^ RV 24       V'       d   VP                  R4       V'       d   VP                  \	        4       4       V# )zBReturn the common C++ compiler flags for torch.ops JIT extensions.ú-std=r¹   z-DENABLE_BF16)rì  rñ  ÚinsertrN   rØ  )rÛ  rò  ró  Úresolved_opt_levelr   s   $$$  r!   Údefault_jit_cflagsrù    sg   € ô 0°	Ó:ÐØÔ&Ó(Ð)Ð*Ð+€EØÒ%Ø�‰�Q˜!Ð.Ð/Ð0Ô1ßØ�‰�_Ô%ßØ�‰Ô+Ó-Ô.Ø€Lr#   Úinclude_lineinfoÚinclude_nvcc_threadsÚinclude_ptxas_optimizationsÚinclude_ptxas_verbosityÚinclude_fatbin_compressionÚinclude_diag_suppressÚnvcc_threadsc               óD   € V ^8„  d   Qh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   zstr | int | Noner   rI   r   )r    s   "r!   r"   r"     sx   € ÷ *ñ *àð*ð ð*ð ð	*ð
 ð*ð ð*ð "&ð*ð "ð*ð !%ð*ð  ð*ð #ð*ð ñ*r#   c        
        ó�  € \        V 4      p
\        V
VVR7      pV'       dx   V	e   \        V	4      M\        P                  ! R\
        4      pVP                  RV.4       V
e7   V
P                  R4      '       d
   V
R,          MT
pVP                  RV 24       V'       dY   V'       d   R.M. pV
e   VP                  RV
 24       VP                  R	4       VP                  R
RP                  V4      .4       V'       d   VP                  R4       V'       d   VP                  RR.4       V'       d   VP                  R4       V# )z?Return the common NVCC flags for torch.ops JIT CUDA extensions.)rÛ  rò  ró  ÚNVCC_THREADSú	--threadsÚOrß  z--optimize=z-vr¹   z-dlcm=caz-XptxasÚ,z	-lineinfoz-Xfatbinz-compress-allz-diag-suppress=179,39,177)
rì  rù  r   r^   r  Ú_DEFAULT_NVCC_THREADSrY  rL   rN   rY   )rÛ  rò  ró  rú  rû  rü  rý  rþ  rÿ  r   rø  r   Úresolved_nvcc_threadsÚoptimization_levelÚptxas_flagss   $$$$$$$$$$     r!   Údefault_jit_cuda_cflagsr    s,  € ô 0°	Ó:ÐÜØ$ØØô€E÷ Ø5AÒ5M¤ LÔ 1ÔSU×S\ÒS\Ð]kô  nCó  TDÐØ�‰�kÐ#8Ð9Ô:ØÒ)à*<×*GÑ*GÈ×*LÒ*LÐ" 2Ö&ÐRdð ð �L‰L˜;Ð'9Ð&:Ð;Ô<ß"ß 7�t‘f¸RˆØÒ)Ø×Ñ Ð#5Ð"6Ð7Ô8Ø×Ñ˜:Ô&Ø�‰�i §¡¨+Ó!6Ð7Ô8ßØ�‰�[Ô!ß!Ø�‰�j /Ð2Ô3ßØ�‰Ð0Ô1Ø€Lr#   c                  óä  € ] tR tRtRt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 llt]R R l4       tR R ltR R lt	R R lt
R R ltR R ltR  R! ltR" R# ltR$ R% ltR& R' ltR( R) ltR* R+ ltR, R- ltR. R/ ltR0 R1 ltR2 R3 ltR4 R5 ltR6 R7 ltR8 R9 ltR: R; ltR< R= ltR> R? ltR@ RA ltRB RC ltRD RE ltRF RG lt RH RI lt!RJ RK lt"RL RM lt#RN RO lt$RP RQ lt%RR RS lt&RTt'R# )UÚTorchOpsJitExtensioniC  zHManage one torch.ops JIT extension with shared cache and rebuild policy.Úextra_cflagsNÚextra_cuda_cflagsÚextra_include_pathsÚextra_ldflagsÚforce_rebuild_envÚverbose_envÚrequires_cudaFÚ merge_visible_cuda_arch_overrideTÚbinary_namesÚpython_abi_dependentÚtorch_stable_abi_targetÚprebuilt_library_envc          (     óh   € V ^8„  d   Qh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R	RR/# ) r   rË   r   Ú	namespaceÚrequired_opsrH   Úsourcesz+Sequence[str] | Callable[[], Sequence[str]]Úbuild_root_envrc   Údefault_build_rootú%Path | str | Callable[[], Path | str]Údisplay_namer  ú5Optional[Sequence[str] | Callable[[], Sequence[str]]]r  r  r  r  r  r  r�   r  r  zOptional[Sequence[str]]r  zbool | Noner  r   r  r   rV   r   )r    s   "r!   r"   Ú!TorchOpsJitExtension.__annotate__F  sÙ   € ÷ 5-ñ 5-ð ð5-ð ð	5-ð
 $ð5-ð =ð5-ð &ð5-ð Bð5-ð ð5-ð Lð5-ð Qð5-ð Sð5-ð Mð5-ð )ð5-ð #ð5-ð  ð!5-ð" +/ð#5-ð$ .ð%5-ð& *ð'5-ð( "8ð)5-ð* ,ð+5-ð, 
ñ-5-r#   c               	ó(  € Wn         W n        \        V4      V n        W@n        WPn        W`n        Wpn        W€n        W�n	        W n
        W°n        WÀn        WÐn        \        V4      V n        \        V4      V n        \        T;'       g    V34      V n        VV n        V'       d   \        V4      MR V n        VV n        \+        V4      V n        RV n        RV n        RV n        R V n        R V n        / V n        / V n        V P=                  4       V n        R # )NFr(   ) rË   r  r_  r  r  r  r  r!  r  r  r  r  r  r  r�   r  r  r  r  r  r  r   Úcompile_baseline_secondsÚ_load_attemptedÚ_load_resultÚ_last_errorÚ_loaded_prebuilt_libraryÚ_namespace_cacheÚ	_op_cacheÚ_source_abi_detection_cacheÚ_get_shared_lockÚ_lock)rè   rË   r  r  r  r  r  r!  r  r  r  r  r  r  r  r  r  r  r  r  s   &$$$$$$$$$$$$$$$$$$$r!   rë   ÚTorchOpsJitExtension.__init__F  s  € ð. Œ	Ø"ŒÜ! ,Ó/ˆÔØŒØ,ÔØ"4ÔØ(ÔØ(ÔØ!2ÔØ#6Ô Ø*ÔØ!2ÔØ&ÔÜ! -Ó0ˆÔÜ04Ð5UÓ0VˆÔ-Ü! ,×"9Ð"9°4°'Ó:ˆÔØ$8ˆÔ!ßI`¤uÐ-DÔ'EÐfjˆÔ$Ø$8ˆÔ!Ü(HÈÓ(NˆÔ%Ø$ˆÔØ!ˆÔØˆÔØ8<ˆÔ%Ø26ˆÔØ,.ˆŒð ð 	Ô(ð ×*Ñ*Ó,ˆŽ
r#   c               ó   € V ^8„  d   QhRR/# )r   r   zthreading.Lockr   )r    s   "r!   r"   r#  ~  s   € ÷ #ñ # ñ #r#   c                ó   € \         # )z<Reuse the single process-local lock for every JIT extension.)Ú_TORCH_OPS_JIT_LOCK)Úclss   &r!   r-  Ú%TorchOpsJitExtension._get_shared_lock}  s
   € ô #Ð"r#   c               ó    € V ^8„  d   QhRRRR/# )r   Úvaluer   r   r   r   )r    s   "r!   r"   r#  ‚  s   € ÷ +ñ +Ð#Hð +ÈTñ +r#   c                	óh   € \        V4      '       d   V! 4       MTp\        V4      P                  4       # r�   )Úcallabler   r  )rè   r6  r  s   && r!   Ú_resolve_pathÚ"TorchOpsJitExtension._resolve_path‚  s&   € Ü& uŸošo‘5”7°5ˆÜ�H‹~×(Ñ(Ó*Ð*r#   c               ó    € V ^8„  d   QhRRRR/# )r   r6  r"  r   rI   r   )r    s   "r!   r"   r#  †  s   € ÷ 0ñ 0àDð0ð 
ñ0r#   c                	ó‚   € Vf   . # \        V4      '       d   V! 4       MTpV Uu. uF  p\        V4      NK  	  up# u upi r�   )r8  r   )rè   r6  r  Úitems   &&  r!   Ú_resolve_sequenceÚ&TorchOpsJitExtension._resolve_sequence†  s;   € ð Š=ØˆIÜ& uŸošo‘5”7°5ˆÙ&.Ó/¡h˜d”�D–	¡hÑ/Ð/ùÒ/s   ¥<c               ó   € V ^8„  d   QhRR/# rk  r   )r    s   "r!   r"   r#  �  s   € ÷ ?ñ ?¨yñ ?r#   c                óˆ   € V P                  V P                  4      pV P                  '       g   \        V4      # \	        V4      # )zIResolve explicit include paths and append CUDA wheel headers when needed.)r>  r  r  r:  r•  )rè   rH  s   & r!   Ú_resolved_extra_include_pathsÚ2TorchOpsJitExtension._resolved_extra_include_paths�  s<   € ð ×.Ñ.¨t×/GÑ/GÓHˆØ×!×!Ð!Ü'¨Ó6Ð6Ü/°Ó>Ð>r#   c               ó    € V ^8„  d   QhRRRR/# rG   r   )r    s   "r!   r"   r#  —  s   € ÷ ñ ¨]ð ¸yñ r#   c                	óŒ   € \        V4      pV P                  e+   \        V P                  !  pW29  d   VP                  V4       V# r�   )rp  r  rE   rN   )rè   r   r  Útarget_defines   &&  r!   Ú_with_stable_abi_targetÚ,TorchOpsJitExtension._with_stable_abi_target—  s>   € Ü˜“;ˆØ×'Ñ'Ò3Ü:¸D×<XÑ<XÑYˆMØÔ,Ø—‘ Ô.Øˆr#   c               ó   € V ^8„  d   QhRR/# rk  r   )r    s   "r!   r"   r#  Ÿ  s   € ÷ Wñ W¨	ñ Wr#   c                	óV   € V P                  V P                  V P                  4      4      # r�   )rG  r>  r  rð   s   &r!   Ú_resolved_extra_cflagsÚ+TorchOpsJitExtension._resolved_extra_cflagsŸ  s$   € Ø×+Ñ+¨D×,BÑ,BÀ4×CTÑCTÓ,UÓVÐVr#   c               ó   € V ^8„  d   QhRR/# rk  r   )r    s   "r!   r"   r#  ¢  s   € ÷ \ñ \¨Yñ \r#   c                	óV   € V P                  V P                  V P                  4      4      # r�   )rG  r>  r  rð   s   &r!   Ú_resolved_extra_cuda_cflagsÚ0TorchOpsJitExtension._resolved_extra_cuda_cflags¢  s$   € Ø×+Ñ+¨D×,BÑ,BÀ4×CYÑCYÓ,ZÓ[Ð[r#   c               ó   € V ^8„  d   QhRR/# ©r   r   r   r   )r    s   "r!   r"   r#  ¥  s   € ÷ ;ñ ; ñ ;r#   c                óâ   € V P                   '       d!   \        P                  ! V P                   4      MRpV'       d   \        V4      P	                  4       # V P                  V P                  4      # )zJReturn the user-visible cache root before applying the loader fingerprint.N)r  r^   r  r   r  r9  r  )rè   rÆ  s   & r!   Úbase_build_rootÚ$TorchOpsJitExtension.base_build_root¥  sR   € ð 6:×5H×5HÐ5H”2—9’9˜T×0Ñ0Ô1ÈdˆßÜ˜“>×,Ñ,Ó.Ð.Ø×!Ñ! $×"9Ñ"9Ó:Ð:r#   c               ó   € V ^8„  d   QhRR/# rî   r   )r    s   "r!   r"   r#  ­  s   € ÷ Yñ Y¨Uñ Yr#   c                ó¨   € \         P                  ! \        4      e   \        4       # V P                  ;'       g    Rp\        \        RV,          4      # )a  Resolve the cross-process build lock wait, honoring the env override.

Without an explicit override the wait scales with this extension's
recorded compile baseline so a waiter never gives up on a slower host
while the builder is still legitimately compiling.
r™   g      @)r^   r  r  r  r%  rœ   r  )rè   r¡   s   & r!   Ú_build_lock_timeout_secondsÚ0TorchOpsJitExtension._build_lock_timeout_seconds­  sE   € ô �9Š9Ô5Ó6ÒBÜ7Ó9Ð9Ø×8Ñ8×?Ð?¸CÐÜÔ?ÀÐGWÕAWÓXÐXr#   c               ó   € V ^8„  d   QhRR/# rR  r   )r    s   "r!   r"   r#  º  s   € ÷ Gñ G¨$ñ Gr#   c                ób   € V P                  4       pVP                  VP                   R2,          # )zFReturn the flock path, kept outside the directory cache clears delete.z.lock)rT  r"  rË   )rè   rT  s   & r!   Ú_cross_process_lock_pathÚ-TorchOpsJitExtension._cross_process_lock_pathº  s1   € ð ×.Ñ.Ó0ˆØ×%Ñ%¨?×+?Ñ+?Ð*@ÀÐ(FÕFÐFr#   c               ó    € V ^8„  d   QhRRRR/# )r   Ú
build_rootr   r   rV   r   )r    s   "r!   r"   r#  À  s   € ÷ ñ ¸ð À$ñ r#   c                óø   € VR,          pVP                  4       '       g   R# \        P                  RV P                  \        P
                  ! 4       V4        VP                  4        R#   \         d     R# i ; i)a‹  Drop a leftover torch FileBaton lock file so a dead build cannot hang new ones.

torch's `_jit_compile` waits on `<build_root>/lock` with no timeout and
no owner check, so a lock file left behind by a killed process would
otherwise block every later build in this directory forever. Only safe
while holding the exclusive cross-process build lock, which proves no
live process is compiling here.
ÚlockNzN%s: removing stale torch JIT build lock left by a dead process: pid=%s path=%s)r}  r\   r]   r!  r^   r_   ÚunlinkÚFileNotFoundError)rè   r_  Ú
baton_paths   && r!   Ú_remove_stale_torch_build_lockÚ3TorchOpsJitExtension._remove_stale_torch_build_lockÀ  sg   € ð   &Õ(ˆ
Ø× Ñ ×"Ò"ÙÜ�‰Ø\Ø×ÑÜ�IŠI‹KØô		
ð	Ø×ÑÖøÜ ô 	Úð	ús   ÁA* Á*A9Á8A9c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úsourcer   rH  rH   r   rI   r   )r    s   "r!   r"   r#  Ø  s"   € ÷ 7ñ 7¸ð 7ÈMð 7Ð^gñ 7r#   c                óÜ   aaaa€ . o\        4       oV Uu. uF,  p\        V4      P                  4       P                  RR7      NK.  	  upoR VVVV3R lloS! \        V4      4       S# u upi )z@Hash one source file plus recursively discovered local includes.Fr=  c               ó    € V ^8„  d   QhRRRR/# ©r   rh   r   r   rV   r   )r    s   "r!   r"   ÚLTorchOpsJitExtension._source_cache_fingerprint_payload.<locals>.__annotate__ß  s   € ÷ -	-ñ -	-˜ð -	- ñ -	-r#   c                óT  <€ V P                  4       P                  R R7      pVS9   d   R# SP                  V4       S	P                  \	        V4      4       VP                  4       '       g   S	P                  R4       R#  VP                  4       pS	P                  \        P                  ! T4      P                  4       4       TP                  RRR7      p\        P                  T4       Fy  w  rVTR8X  d?   \!        TTSR	7      pTf#   S	P                  R
\	        T4       RT 24       K@  S
! T4       KJ  \#        T4      '       d   K]  \!        TTSR	7      pTf   Kq  S
! T4       K{  	  R#   \         d3   pS	P                  R\        T4      P                   24        Rp?R# Rp?ii ; i)Fr=  NÚmissingzread_error=úutf-8Úignore)ÚerrorsÚ"©rx  ry  zmissing_include=Ú:)r  r?  r5  rN   rD  r}  Ú
read_bytesr{   Útyper  ÚhashlibÚsha256Ú	hexdigestÚdecodeÚ_SOURCE_INCLUDE_PATTERNÚfindallr�  ri  )rh   r9  Úsource_bytesrb  Úsource_textÚ	delimiterrf  Úincluded_pathry  ÚpayloadÚvisitÚvisiteds   &       €€€€r!   r‚  ÚETorchOpsJitExtension._source_cache_fingerprint_payload.<locals>.visitß  s~  ø€ ØŸ™Ó*×2Ñ2¸%Ð2Ó@ˆJØ˜WÔ$ÙØ�K‰K˜
Ô#Ø�N‰NÔ0°Ó<Ô=à×$Ñ$×&Ò&Ø—‘˜yÔ)ÙðØ)×4Ñ4Ó6�ð
 �N‰Nœ7Ÿ>š>¨,Ó7×AÑAÓCÔDà&×-Ñ-¨g¸hÐ-ÓGˆKÜ+B×+JÑ+JÈ;Ö+WÑ'�	Ø Ô#Ü$?Ø$Ø'1Ø-Aô%�Mð
 %Ò,ØŸ™Ð)9Ô:OÐPZÓ:[Ð9\Ð\]Ð^jÐ]kÐ'lÔmÙ Ù˜-Ö(ô 7°|×DÒDÙ Ü$?Ø$Ø'1Ø-Aô%�Mð
 %Ô0Ù˜mÖ,ó3 ,Xøô ô Ø—‘ ¬T°#«Y×-?Ñ-?Ð,@ÐAÔBÝûðús   Â E* Å*F'Å5'F"Æ"F'©rá   r   r  r?  )rè   rh  rH  rh   ry  r�  r‚  rƒ  s   &&& @@@@r!   Ú!_source_cache_fingerprint_payloadÚ6TorchOpsJitExtension._source_cache_fingerprint_payloadØ  si   û€ ð  ˆÜ ›UˆÙZgÓhÑZgÐRV¤ T£
× 5Ñ 5Ó 7× ?Ñ ?ÀuÐ ?Ö MÑZgÑhÐ÷-	-ó -	-ñ^ 	Œd�6‹lÔØˆùòe  ió   •2A)c               ó$   € V ^8„  d   QhRRRRRR/# )r   rh  r   rH  rH   r   zlist[tuple[Path, str]]r   )r    s   "r!   r"   r#    s"   € ÷  ñ   Cð  ¸ð  ÐJ`ñ  r#   c                óÜ   aaaa€ . o\        4       oV Uu. uF,  p\        V4      P                  4       P                  RR7      NK.  	  upoR VVVV3R lloS! \        V4      4       S# u upi )z>Collect source text and recursively discovered local includes.Fr=  c               ó    € V ^8„  d   QhRRRR/# rk  r   )r    s   "r!   r"   Ú8TorchOpsJitExtension._source_texts.<locals>.__annotate__  s   € ÷ 	)ñ 	)˜ð 	) ñ 	)r#   c                óÀ  <€ V P                  4       P                  R R7      pVS	9   g   VP                  4       '       g   R# S	P                  V4        VP	                  RRR7      pSP                  Y34       \        P                  T4       F;  w  r4TR8w  d   \        T4      '       d   K  \        TTSR7      pTf   K3  S! T4       K=  	  R#   \
         d     R# i ; i)Fr=  Nro  rp  )Úencodingrq  rr  rs  )r  r?  r}  r5  Ú	read_textr{   rN   r{  r|  ri  r�  )
rh   r9  r~  r  rf  r€  ry  Útextsr‚  rƒ  s
   &     €€€€r!   r‚  Ú1TorchOpsJitExtension._source_texts.<locals>.visit  sÕ   ø€ ØŸ™Ó*×2Ñ2¸%Ð2Ó@ˆJØ˜WÔ$¨J×,=Ñ,=×,?Ò,?ÙØ�K‰K˜
Ô#ðØ(×2Ñ2¸GÈHÐ2ÓU�ð �L‰L˜*Ð2Ô3Ü+B×+JÑ+JÈ;Ö+WÑ'�	ð  Ô#Ô(GÈ×(UÒ(UÙÜ ;Ø Ø#-Ø)=ô!�ð
 !Ô,Ù˜-Ö(ó ,Xøô ô Úðús   ÁC ÃCÃCr…  )rè   rh  rH  rh   ry  r�  r‚  rƒ  s   &&& @@@@r!   Ú_source_textsÚ"TorchOpsJitExtension._source_texts  sg   û€ ð )+ˆÜ ›UˆÙZgÓhÑZgÐRV¤ T£
× 5Ñ 5Ó 7× ?Ñ ?ÀuÐ ?Ö MÑZgÑhÐ÷	)ó 	)ñ0 	Œd�6‹lÔØˆùò7  irˆ  c               ó$   € V ^8„  d   QhRRRRRR/# )r   r  rH   rH  r   z"tuple[bool, bool, tuple[str, ...]]r   )r    s   "r!   r"   r#  3  s(   € ÷ =ñ =àð=ð %ð=ð 
,ñ	=r#   c                óŽ  € V UUu. uF  pV P                  W24       F  pVNK  	  K  	  ppp\        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      pV\        V4      3pV P                  P                  V4      pVe   V# Rp	Rp
Rp\	        4       pV EFr  w  rÞ\
        P                  RV4      p\        P                  V4      '       g   \        P                  V4      '       d   Rp	\        P                  V4      '       d   Rp
\        P                  V4       Fè  pVR8H  ;'       g    VP                  R4      ;'       g    VR9   pV'       d   Rp	VP                  R4      ;'       g{    VP                  R4      ;'       gb    VP                  R	4      ;'       gI    VP                  R
4      ;'       d0    VP                  R4      ;'       g    VP                  R4      '       * pV'       g   KÕ  RpVP                  V4       Kê  	  EKu  	  T	T
;'       d    T\        \        V4      4      3pVV P                  V&   V# u uppi )z6Detect ABI requirements and report non-stable headers.c              3  ó¢   "  € T FE  w  r\        V4      \        P                  ! VP                  R 4      4      P	                  4       3x € KG  	  R# 5i)ro  N)rD  rw  rx  Úencodery  )rM  rh   rv   s   &  r!   rO  Ú;TorchOpsJitExtension._source_abi_details.<locals>.<genexpr>?  s>   é € ð 
á*‘
�ô # 4Ó(¬'¯.ª.¸¿¹ÀWÓ9MÓ*N×*XÑ*XÓ*ZÕ[Û*ùs   ‚AAFTr(   zPython.hz	pybind11/zATen/zc10/zcaffe2/ztorch/ztorch/csrc/stable/ztorch/headeronly/>   útorch/python.hútorch/extension.h)r’  r_  r,  rm   rá   Ú_C_COMMENT_PATTERNÚsubÚ_PYTHON_ABI_USAGE_PATTERNrˆ   Ú_REGISTER_EXTENSION_PATTERNÚ"_STABLE_TORCH_REGISTRATION_PATTERNÚ_TORCH_INCLUDE_PATTERNr|  rL   r5  rr  )rè   r  rH  rh  r=  Úsource_textsÚ
source_keyÚ	cache_keyÚcachedÚpython_dependentÚstable_registrationÚstable_torch_headersÚnon_stable_headersr�  r~  Úmarker_textrf  Úpython_includeÚis_non_stableÚdetecteds   &&&                 r!   Ú_source_abi_detailsÚ(TorchOpsJitExtension._source_abi_details3  sc  € ñ "ô
á!�Ø×*Ñ*¨6ÖA�ó áAñ Ù!ð 	ñ 
÷
 ”Uñ 
á*ó
—U‘Uñ 
á*ó
ó 
ˆ
ð  ¤ }Ó!5Ð6ˆ	Ø×1Ñ1×5Ñ5°iÓ@ˆØÒØˆMà ÐØ#ÐØ#ÐÜ'*£uÐÜ*‰NˆAÜ,×0Ñ0°°[ÓAˆKÜ(×/Ñ/°×<Ò<Ô@[×@bÑ@bÐcn×@oÒ@oØ#'Ð Ü1×8Ñ8¸×EÒEØ&*Ð#Ü 6× >Ñ >¸{Ö K�à  JÑ.÷ Oð OØ#×.Ñ.¨{Ó;÷Oð Oà#Ð'NÑNð ÷
 "Ø'+Ð$à ×+Ñ+¨GÓ4÷ 	ð 	Ø#×.Ñ.¨vÓ6÷	ð 	à#×.Ñ.¨yÓ9÷	ð 	ð %×/Ñ/°Ó9÷ ð à(×3Ñ3Ð4HÓI÷ Lð LØ+×6Ñ6Ð7JÓKôð ÷ !‘=Ø+0Ð(Ø&×*Ñ*¨<Ö8ô- !Lñ +ð> Ø×8Ð8Ð$8Ü”&Ð+Ó,Ó-ð
ˆð
 7?ˆ×(Ñ(¨Ñ3Øˆùóm
s   †#Ic               ó$   € V ^8„  d   QhRRRRRR/# ©r   r  rH   rH  r   ztuple[bool, bool]r   )r    s   "r!   r"   r#  r  s"   € ÷ ñ ¨ð À}ð ÐYjñ r#   c                ó6   € V P                  W4      pVR,          # )zIDetect Python and torch ABI requirements from sources and local includes.ºNr   N)r­  )rè   r  rH  r¬  s   &&& r!   Ú_source_abi_flagsÚ&TorchOpsJitExtension._source_abi_flagsr  s   € ð ×+Ñ+¨GÓCˆØ˜�|Ðr#   c               ó$   € V ^8„  d   QhRRRRRR/# r°  r   )r    s   "r!   r"   r#  x  s"   € ÷ 
ñ 
¨=ð 
Èð 
Ð[lñ 
r#   c                	óð   € V P                  VV4      w  r4pV P                  e+   V'       d#   \        V P                   RV^ ,          : 24      hV P                  e   V P                  MTV P                  R J3# )NzE explicitly requests the Torch stable ABI but uses non-stable header )r­  r  ÚRuntimeErrorr!  r  )rè   r  rH  Údetected_python_abi_dependentr�  r¨  s   &&&   r!   Ú_resolved_abi_flagsÚ(TorchOpsJitExtension._resolved_abi_flagsx  s‘   € Ø?C×?WÑ?WØØó@
Ñ<Ð%Ð*<ð ×'Ñ'Ò3×8JÜØ×$Ñ$Ð%Ð%jØ% aÕ(Ñ+ð-óð ð ×(Ñ(Ò4ð ×%Ò%à.Ø×(Ñ(°Ð4ð	
ð 	
r#   c               ó   € V ^8„  d   QhRR/# r   r   )r    s   "r!   r"   r#  ‰  s   € ÷ ñ  Cñ r#   c                óÞ  € V P                   V P                  .V P                  OpV P                  V P                  4      pV P                  4       pV P                  4       pV P                  4       pV P                  W%4      w  rgV'       d   VP                  R\        4        24       MVP                  R4       V'       d'   V P                  w  r‰VP                  RV RV	 24       M@V P                  '       d   \        P                  M	\        4       p
VP                  RV
 24       V P                  '       d7   TP                  R\        P                   P"                  ;'       g    R 24       VP%                  V P'                  4       4       V F#  pVP%                  V P)                  Wµ4      4       K%  	  VP%                  V4       VP%                  \+        V4      4       VP%                  R V 4       4       VP%                  V P                  V P,                  4      4       \.        P0                  ! R	P3                  V4      P5                  R
4      4      P7                  4       pVR,          # )zMHash the effective op surface and source metadata to avoid stale cache reuse.zpython_abi=zpython_abi=agnosticztorch_abi=stable-r&   ztorch=ztorch_cuda=Únonec              3  óJ   "  € T F  p\        \        V4      4      x € K  	  R # 5ir�   )rD  r   )rM  r~  s   & r!   rO  Ú:TorchOpsJitExtension._cache_fingerprint.<locals>.<genexpr>¤  s    é € ÐcÑUbÀ\Ô,¬T°,Ó-?×@Ð@ÓUbùs   ‚!#Ú ro  :Né   N)rË   r  r  r>  r  rK  rO  rB  r¹  rN   r1   r  r  r5   r6   r>   r:   r   rY  Ú_cuda_cache_fingerprint_payloadr†  rR   r  rw  rx  rY   r—  ry  )rè   r�  r  r  r  rH  r  Útorch_stable_abir-   r.   Útorch_versionrh  Údigests   &            r!   Ú_cache_fingerprintÚ'TorchOpsJitExtension._cache_fingerprint‰  sâ  € ð #Ÿi™i¨¯©ÐL¸$×:KÑ:KÐLˆØ×(Ñ(¨¯©Ó6ˆØ×2Ñ2Ó4ˆØ ×<Ñ<Ó>ÐØ×:Ñ:Ó<ˆØ15×1IÑ1IÈ'Ó1aÑ.ÐßØ�N‰N˜[¬Ó):Ð(;Ð<Õ=à�N‰NÐ0Ô1ßØ×7Ñ7‰LˆEØ�N‰NÐ.¨u¨g°Q°u°gÐ>Õ?à15×1C×1CÐ1CœE×-Ò-ÔIaÓIcˆMØ�N‰N˜V M ?Ð3Ô4Ø××ÐØ�N‰N˜[¬¯©×);Ñ);×)EÐ)E¸vÐ(FÐGÔHØ�‰�t×;Ñ;Ó=Ô>ÛˆFØ�N‰N˜4×AÑAÀ&ÓXÖYñ ð 	�‰�|Ô$Ø�‰Ô1Ð2CÓDÔEØ�‰ÑcÑUbÓcÔcØ�‰�t×-Ñ-¨d×.@Ñ.@ÓAÔBÜ—’ §	¡	¨'Ó 2× 9Ñ 9¸'Ó BÓC×MÑMÓOˆØ�c�{Ðr#   c               ó   € V ^8„  d   QhRR/# rk  r   )r    s   "r!   r"   r#  ©  s   € ÷ "ñ "°ñ "r#   c                ób  € V P                   '       g   R.# R.p\        P                  ! R4      pV'       dX   VP                  RV 24       \	        V P
                  R7      pV'       d$   VP                  RRP                  V4       24       V# \        P                  P                  4       '       g   VP                  R4       V# \        4       p\        \        P                  P                  4       4       F:  p\        P                  P                  V4      w  rgVP                  V R	V 24       K<  	  V'       g   VP                  R
4       M,VP                  RRP                  \        V4      4       24       \!        4       pV'       d$   VP                  RRP                  V4       24       V# )zPCapture the effective CUDA target set so cached binaries stay device-compatible.z
cuda_ext=0z
cuda_ext=1rÅ  z
arch_list=rÏ  zresolved_arch_flags=r  zcuda_available=0r&   zvisible_caps=nonezvisible_caps=)r  r^   r  rN   rÈ  r  rY   r5   r   r±  rá   rÞ   r²  r³  r5  rr  rÐ  )rè   r�  rÆ  Ú
arch_flagsÚcapabilitiesrµ  r-   r.   s   &       r!   rÂ  Ú4TorchOpsJitExtension._cuda_cache_fingerprint_payload©  sX  € ð ×!×!Ð!Ø �>Ð!à�.ˆÜ—9’9Ð3Ó4ˆßØ�N‰N˜Z¨ zÐ2Ô3Ü3Ø#'×#HÑ#HôˆJ÷ Ø—‘Ð!5°c·h±h¸zÓ6JÐ5KÐLÔMØˆNä�z‰z×&Ñ&×(Ò(Ø�N‰NÐ-Ô.ØˆNä!$£ˆÜ!¤%§*¡*×"9Ñ"9Ó";Ö<ˆLÜ Ÿ:™:×;Ñ;¸LÓI‰LˆEØ×Ñ ˜w a¨ wÐ/Ö0ñ =÷ Ø�N‰NÐ.Õ/à�N‰N˜]¨3¯8©8´F¸<Ó4HÓ+IÐ*JÐKÔLä-Ó/ˆ
ßØ�N‰NÐ1°#·(±(¸:Ó2FÐ1GÐHÔIØˆr#   c               ó   € V ^8„  d   QhRR/# rR  r   )r    s   "r!   r"   r#  Í  s   € ÷ Bñ B˜Dñ Br#   c                óL   € V P                  4       V P                  4       ,          # )zMReturn the fingerprinted filesystem directory that caches this JIT extension.)rT  rÆ  rð   s   &r!   r_  ÚTorchOpsJitExtension.build_rootÍ  s!   € ð ×#Ñ#Ó%¨×(?Ñ(?Ó(AÕAÐAr#   c               ó   € V ^8„  d   QhRR/# r’   r   )r    s   "r!   r"   r#  Ò  s   € ÷ ?ñ ? tñ ?r#   c                óŠ   € \        \        RR7      '       d   R# V P                  '       g   R# \        V P                  RR7      # )zGCheck whether this extension should ignore and replace cached binaries.F©ÚdefaultT)r   Ú_GLOBAL_KERNEL_REBUILD_ENVr  rð   s   &r!   Úforce_rebuild_enabledÚ*TorchOpsJitExtension.force_rebuild_enabledÒ  s7   € ô Ô.¸×>Ó>ÙØ×%×%Ð%ÙÜ˜×.Ñ.¸Ô>Ð>r#   c               ó   € V ^8„  d   QhRR/# r’   r   )r    s   "r!   r"   r#  Û  s   € ÷ kñ k ñ kr#   c                	ó  a€ \        \        P                  V P                  R 4      oSR J;'       dO    \        ;QJ d)    V3R lV P
                   4       F  '       d   K   R# 	  R# ! V3R lV P
                   4       4      # )Nc              3  ó<   <"  € T F  p\        SV4      x € K  	  R # 5ir�   )Úhasattr)rM  Úop_namer  s   & €r!   rO  Ú6TorchOpsJitExtension._ops_available.<locals>.<genexpr>Ý  s   øé € Ð,jÑXiÈW¬W°YÀ×-HÐ-HÓXiùs   ƒFT)r/   r5   Úopsr  r�  r  )rè   r  s   &@r!   Ú_ops_availableÚ#TorchOpsJitExtension._ops_availableÛ  s]   ø€ ÜœEŸI™I t§~¡~°tÓ<ˆ	Ø Ð$×jÐj¯«Ô,jÐX\×XiÒXiÓ,j¯¬ÐjªÐj¨Ô,jÐX\×XiÒXiÓ,jÓ)jÐjr#   c               ó   € V ^8„  d   QhRR/# r’   r   )r    s   "r!   r"   r#  ß  s   € ÷ ñ ¨ñ r#   c                	óx  € \        \        P                  V P                  R 4      pVf   R V n        / V n        R# V P                   Uu. uF  p\        W4      '       d   K  VNK  	  ppV'       d   R V n        / V n        R# Wn        V P                   Uu/ uF  q"\        W4      bK  	  upV n        R# u upi u upi )NFT)r/   r5   rÝ  r  r*  r+  r  rÚ  )rè   r  rÛ  rn  s   &   r!   Ú_refresh_runtime_cacheÚ+TorchOpsJitExtension._refresh_runtime_cacheß  s¥   € ÜœEŸI™I t§~¡~°tÓ<ˆ	ØÒØ$(ˆDÔ!ØˆDŒNÙØ*.×*;Ò*;Ó_Ñ*;˜wÄ7È9×C^—7�7Ñ*;ˆÐ_ßØ$(ˆDÔ!ØˆDŒNÙØ )ÔØNR×N_ÒN_Ó`ÑN_À7¤7¨9Ó#>Ò>ÑN_Ñ`ˆŒÙùò `ùò as   ÁB2Á B2ÂB7c               ó    € V ^8„  d   QhRRRR/# )r   r_  r   r   z
list[Path]r   )r    s   "r!   r"   r#  î  s   € ÷ ñ °$ð ¸:ñ r#   c           	     	óf  € \        4       p. pV P                   F”  p\         F‡  pW V 2,          pWb9  d#   VP                  V4       VP	                  V4       \        VP                  V R V 24      4       F-  pWr9  g   K  VP                  V4       VP	                  V4       K/  	  K‰  	  K–  	  V# )Ú*)rá   r  Ú_SHARED_LIBRARY_SUFFIXESr5  rN   rr  rq  )rè   r_  r7  Ú
candidatesÚbinary_nameÚsuffixÚexactr9   s   &&      r!   Ú_candidate_binary_pathsÚ,TorchOpsJitExtension._candidate_binary_pathsî  s£   € Ü›%ˆØ!#ˆ
Ø×,Ô,ˆKß2�Ø" }°V°HÐ%=Õ=�ØÔ$Ø—H‘H˜U”OØ×%Ñ% eÔ,Ü# J§O¡O°{°mÀ1ÀVÀHÐ4MÓ$NÖO�EØÖ(ØŸ™ œØ"×)Ñ)¨%Ö0ó Pó 3ñ -ð Ðr#   c               ó   € V ^8„  d   QhRR/# )r   r   rz  r   )r    s   "r!   r"   r#  ý  s   € ÷ Cñ C¨nñ Cr#   c                	óÐ   € V P                   '       g   R # \        P                  ! V P                   4      pV'       g   R # \        V4      P	                  4       P                  RR7      # )NFr=  )r  r^   r  r   r  r?  )rè   Ú
configureds   & r!   Ú_configured_prebuilt_libraryÚ1TorchOpsJitExtension._configured_prebuilt_libraryý  sM   € Ø×(×(Ð(ÙÜ—Y’Y˜t×8Ñ8Ó9ˆ
ßÙÜ�JÓ×*Ñ*Ó,×4Ñ4¸EÐ4ÓBÐBr#   c               ó    € V ^8„  d   QhRRRR/# )r   Úlibrary_pathr   r   r�   r   )r    s   "r!   r"   r#    s   € ÷ 6ñ 6¸dð 6Àtñ 6r#   c           	     óâ  € V P                   V8X  d+   V P                  '       d   VP                  4       '       d   R# VP                  4       '       g5   V P                   RV RV P                   R2V n        RV n        RV n        R# V P                  4       '       d\   V P                   V8w  dK   V P                   e   RV P                    R2MR	pV P                   R
V RV R2V n        RV n        RV n        R#  \        P                  P                  \        V4      4       T P                  4       '       gQ   T P                   RT RRP                  T P                  4       RT P                   R2T n        RT n        RT n        R# RT n        RT n        Yn         R	T n        R#   \         dA   pT P                   RT RT RT P                   R2T n        RT n        RT n         Rp?R# Rp?ii ; i)zGLoad an explicitly configured library without evaluating JIT callbacks.Tz: configured prebuilt library `z` does not exist. Unset `z:` to enable JIT compilation, or provide a compatible file.FNz from `Ú`r(   z+: required torch.ops are already registeredz2; cannot verify that configured prebuilt library `z�` provides them. PyTorch cannot unload operator registrations in-process, so start a new process before selecting a different prebuilt library.z` is incompatible: z	. Unset `z2` loaded but did not register required torch.ops (rº   z
). Unset `)r)  r'  rh  r!  r  r(  r&  rÞ  r5   rÝ  Úload_libraryr   rZ  râ  rY   r  )rè   rô  Úloaded_detailrb  s   &&  r!   Ú!_load_configured_prebuilt_libraryÚ6TorchOpsJitExtension._load_configured_prebuilt_library  s6  € ð ×)Ñ)¨\Ô9Ø×!×!Ð!Ø×$Ñ$×&Ò&áØ×#Ñ#×%Ò%à×$Ñ$Ð%Ð%DÀ\ÀNð SØ×3Ñ3Ð4Ð4nðpð Ôð $(ˆDÔ Ø %ˆDÔÙØ×Ñ× Ò  T×%BÑ%BÀlÔ%Rð ×0Ñ0Ò<ð ˜$×7Ñ7Ð8¸Ñ:àð ð ×$Ñ$Ð%Ð%PÐQ^ÐP_ð `5Ø5A°Nð Crðrð Ôð
 $(ˆDÔ Ø %ˆDÔÙð		Ü�I‰I×"Ñ"¤3 |Ó#4Ô5ð ×*Ñ*×,Ò,à×$Ñ$Ð%Ð%DÀ\ÀNð S'Ø'+§y¡y°×1BÑ1BÓ'CÐ&DÀJÈt×OhÑOhÐNið jHðHð Ôð
 $(ˆDÔ Ø %ˆDÔÙØ#ˆÔØ ˆÔØ(4Ô%ØˆÔÙøô+ ô 	à×$Ñ$Ð%Ð%DÀ\ÀNÐReÐfiÐejð kØ×3Ñ3Ð4Ð4nðpð Ôð $(ˆDÔ Ø %ˆDÔÝûð	ús   Ã8(F# Æ#G.Æ.5G)Ç)G.c               ó    € V ^8„  d   QhRRRR/# )r   r_  r   r   r�   r   )r    s   "r!   r"   r#  =  s   € ÷ 
ñ 
°Tð 
¸dñ 
r#   c                	ó^  € V P                  V4       F]  pVP                  4       '       g   K   \        P                  P	                  \        V4      4       V P                  4       '       d    R # K_  	  R#   \         d-   p\        P                  RT P                  Y#4        Rp?K•  Rp?ii ; i)Tz2%s: failed to load cached torch.ops library %s: %sNF)rì  rh  r5   rÝ  r÷  r   rÞ  rZ  r\   r[  r!  )rè   r_  rô  rb  s   &&  r!   Ú_try_load_prebuilt_libraryÚ/TorchOpsJitExtension._try_load_prebuilt_library=  s“   € Ø ×8Ñ8¸ÖDˆLØ×'Ñ'×)Ò)ÙðvÜ—	‘	×&Ñ&¤s¨<Ó'8Ô9Ø×&Ñ&×(Ò(Úñ )ñ Eñ øô ô vÜ—	‘	ÐNÐPT×PaÑPaÐco×uÒuûðvús   ®>A5Á5B,Â !B'Â'B,c               ó   € V ^8„  d   QhRR/# ró   r   )r    s   "r!   r"   r#  I  s   € ÷  Bñ  B˜Tñ  Br#   c           	     ó®  € V P                   ;_uu_ 4        RV n        RV n        RV n        RV n        / V n        V P                  4       e    RRR4       R# V P                  4       pVP                  4       '       d«   V P                  4       p\        V P                  4       VR7      ;_uu_ 4       pV'       g5   \        P                  RV P                  V4        RRR4       RRR4       R# \        V P                   R2VR7       \         P"                  ! VRR	7       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)
zDBest-effort cache clear for the next process-local JIT load attempt.Fr(   N©r  zŒ%s: skipping on-disk cache clear; timed out after %.0fs waiting for the cross-process JIT build lock (another process may be building here).z.clear_cache©rT   rU   T©Úignore_errors)r.  r&  r'  r(  r*  r+  rñ  rT  r}  rX  r1  r\  r\   r]   r!  ra   rj   Úrmtree)rè   r_  Úlock_timeout_secondsÚbuild_lock_acquireds   &   r!   Úclear_cacheÚ TorchOpsJitExtension.clear_cacheI  s  € ð �Z�Z‹ZØ#(ˆDÔ Ø %ˆDÔØ!ˆDÔð %)ˆDÔ!ØˆDŒNØ×0Ñ0Ó2Ò>Ø÷ ‰Zð ×-Ñ-Ó/ˆJØ× Ñ ×"Ò"Ø'+×'GÑ'GÓ'IÐ$Ü.Ø×1Ñ1Ó3ÐEY÷õ à(ß.ÜŸ™ðcà ×-Ñ-Ø0ô	ð ÷÷ ‰Zô2 .Ø"&×"3Ñ"3Ð!4°LÐAØ$.õô —M’M *¸DÕA÷÷ ‰Z÷÷ ú÷ �ZˆZús;   •7EÁ%EÁ<3EÂ/+D0	ÃEÃ,2D0	ÄEÄ0E Ä;EÅE	c               ó   € V ^8„  d   QhRR/# r   r   )r    s   "r!   r"   r#  k  s   € ÷  ñ   Cñ  r#   c                ó   € V P                   # )z3Return the most recent human-readable load failure.)r(  rð   s   &r!   Úlast_error_messageÚ'TorchOpsJitExtension.last_error_messagek  s   € ð ×ÑÐr#   c               ó   € V ^8„  d   QhRR/# r   r   )r    s   "r!   r"   r#  p  s   € ÷ ñ ¨3ñ r#   c                	óL  € V P                   f   R# \        P                  P                  R4      ^ ,          p \        ;QJ d*    . R VP                  R4      R,           4       F  NK  	  5M#! R VP                  R4      R,           4       4      pY P                   8  d:   T P                   w  r4T P                   RT RT R	T RT R
\        P                   2# R#   \        \        3 d8    T P                   w  r4T P                   RT RT R\        P                  : 2u # i ; i)Nr(   r4   c              3  ó8   "  € T F  p\        V4      x € K  	  R # 5ir�   rC   )rM  Úparts   & r!   rO  ÚATorchOpsJitExtension._stable_abi_runtime_error.<locals>.<genexpr>u  s   é € Ð%XÑ<W°D¤c¨$§i iÓ<Wùó   ‚r&   r²  z0: cannot verify torch stable ABI requirement >= z; unrecognized torch version z: requires torch >= z (compiled against the torch z stable ABI); found torch )	r  r5   r6   r7   r_  r¢  Ú	TypeErrorr  r!  )rè   Útorch_publicÚtorch_major_minorr-   r.   s   &    r!   Ú_stable_abi_runtime_errorÚ.TorchOpsJitExtension._stable_abi_runtime_errorp  s4  € Ø×'Ñ'Ò/ÙÜ×(Ñ(×2Ñ2°3Ó7¸Õ:ˆð	ß %¤Ñ%X¸L×<NÑ<NÈsÓ<SÐTVÖ<WÓ%X§¡Ñ%X¸L×<NÑ<NÈsÓ<SÐTVÖ<WÓ%XÓ XÐð ×;Ñ;Ô;Ø×7Ñ7‰LˆEà×$Ñ$Ð%Ð%9¸%¸ÀÀ%Àð I/Ø/4¨g°Q°u°gÐ=WÔX]×XiÑXiÐWjðlðñ øô œ:Ð&ô 	Ø×7Ñ7‰LˆEà×$Ñ$Ð%Ð%UÐV[ÐU\Ð\]Ð^cÐ]dð e.Ü.3×.?Ñ.?Ñ-BðDòð	ús   ¸
C ÁAC ÃAD#Ä"D#c               ó   € V ^8„  d   QhRR/# r’   r   )r    s   "r!   r"   r#  „  s   € ÷ vñ v�dñ vr#   c                óè  € V P                  4       pV'       d   RV n        RV n        Wn        R# V P	                  4       pVe1   V P
                  ;_uu_ 4        V P                  V4      uuRRR4       # V P                  '       d+   V P                  '       d   V P                  4       '       g   R# V P                  e.   V P                  4       '       g   RV n        RV n        RV n        R# V P                  4       '       d(   V P                  4        RV n        RV n        RV n        R# V P                  '       dI   \        P                  P                  4       '       g%   RV n        RV n        V P                   R2V n        R# V P
                  ;_uu_ 4        V P                  4       pV P                  '       d&   V P                  '       d   V'       g    RRR4       R# V P                  e)   V'       g!   RV n        RV n        RV n         RRR4       R# V P                  4       '       d1   V P                  4        RV n        RV n        RV n         RRR4       R# V P                  '       d   V'       g   V P                  uuRRR4       # V P!                  4       pV P#                  4       pV P%                  4       p\'        V P)                  4       VR7      ;_uu_ 4       pV'       g˜   RV n        RV n        V P                   RVR R	V P)                  4        R
\*         R2V n        \,        P/                  RV P                  4       \1        4       P3                  V P                   R24        RRR4       RRR4       R# V'       dr   VP5                  4       '       d\   \1        4       P3                  V P                   RV R24       \7        V P                   R2VR7       \8        P:                  ! VRR7       VP=                  RRR7       V'       g@   V P?                  V4      '       d)   RV n        RV n        RV n         RRR4       RRR4       R# V PA                  V4       \1        4       pVP3                  V P                   RV R24       \C        VRV P                   R2V PD                  R7      p	\F        PH                  ! 4       p
Rp V PK                  V PL                  4      pV PO                  4       pRV PP                  RTR\S        V4      RRRV PT                  '       d   \W        V PT                  RR7      MR/pV PY                  4       pV'       d   WþR&   V P[                  4       pV'       d   VVR&   V'       d   WÞR&   V PK                  V P\                  4      pV'       d   VVR &   \_        V P`                  R!7      ;_uu_ 4        \c        R?/ VB  RRR4       Rp \F        PH                  ! 4       T
,
          pT	Pƒ                  TTR:7       \F        PH                  ! 4       T
,
          pT P                  4       ;'       g    T P?                  T4      pRT n        TT n        T'       d`   T P                  4        RT n        TP3                  T P                   R;\�        TT PD                  4       R<24        RRR4       RRR4       R# T P                   R=2T n        TP3                  T P                   R>24        RRR4       RRR4       R#   + '       g   i     ELª; i  + '       g   i     ELV; i  \d         EdL   p\F        PH                  ! 4       T
,
          pRT n        RT n        T P                   R"T 2R#T 2R$T 2R%\f        Ph                  ! 4        2R&\j        Pl                  ! 4        2R'\j        Pn                  ! R(R4       2R)\j        Pn                  ! R*R4       2.pT Pq                  T4      pT'       d/   TPs                  R+R,Pu                  R- T 4       4      ,           4        \w        TPy                  4       4      pR,Pu                  R. TR/,           4       4      p\{        T4      ^8”  d   TR0\{        T4      ^,
           R12,          pTPs                  R2T R324       M-  \|         d    pTPs                  R4T R524        Rp?MRp?ii ; iR6Pu                  T4      T n        \,        P                  RT P                  RR77       TP3                  T P                   R8\�        TT PD                  4       R924        Rp?\F        PH                  ! 4       T
,
          pT	Pƒ                  TTR:7       RRR4       RRR4       R# Rp?ii ; i  \F        PH                  ! 4       T
,
          pT	Pƒ                  TTR:7       i ; i  + '       g   i     M; i RRR4       R#   + '       g   i     R# ; i)@z=Load the extension from cache or JIT-compile it on first use.TFNr(   z: CUDA is not available.r  z: timed out after r›   z0s waiting for the cross-process JIT build lock `zE`; another process may be stuck building this extension. Adjust via `z`.z%sz5: JIT build lock wait timed out; using fallback path.z$: clearing cached JIT extension at `z.force_rebuildr  r  r  z(: compiling torch.ops JIT extension in `zCompiling extension: z...)ré   rÃ   r¡   rË   r  Úbuild_directoryÚis_python_moduleÚverboserÒ  r  r  r  r  )rÉ  z+: failed to build torch.ops JIT extension: zbuild_root=zbase_build_root=zpython=zpid=zTORCH_EXTENSIONS_DIR=ÚTORCH_EXTENSIONS_DIRzGPTQMODEL_TORCH_EXTENSIONS_DIR=r   zcandidate_binaries=rº   c              3  ó^   "  € T F#  q R VP                  4       '       d   RMR 2x € K%  	  R# 5i)rt  r}  rn  N)r}  )rM  rh   s   & r!   rO  Ú,TorchOpsJitExtension.load.<locals>.<genexpr>  s*   é € Ð'yÑixÐae¨&°¸d¿k¹k¿mºm±(ÐQZÐ1[Õ(\Óixùs   ‚+-c              3  ó8   "  € T F  qP                   x € K  	  R # 5ir�   ©rË   )rM  Úentrys   & r!   rO  r     s   é € Ð+QÁL¸5¯J®JÃLùr  :Né   Nz, ... (+z more)zbuild_root_entries=[Ú]z!build_root_entries=<unavailable: Ú>z | rR  z#: torch.ops JIT compilation failed z; using fallback path.)rý   r    z : torch.ops JIT extension ready r&   z=: build completed but required torch.ops were not registered.z@: torch.ops JIT build finished without registering required ops.r   )Br  r&  r'  r(  rñ  r.  rù  rÕ  r*  rÞ  râ  r  r5   r   r±  r!  r_  rT  rX  r1  r\  r  r\   r]   r   Úinfor}  ra   rj   r  r#  rý  re  rÁ   r%  rÐ   rÑ   r>  r  rB  rË   r   r  r   rK  rO  r  rÌ  r  r   rZ  ÚplatformÚpython_versionr^   r_   r  rì  rN   rY   rr  Úiterdirr¥  r{   r[  r¿   r   )rè   Ústable_abi_errorÚconfigured_prebuiltÚforce_rebuildr_  rT  r  r  ré   Úprogress_displayÚstartedÚbuild_invocation_succeededÚresolved_sourcesr  Úkwargsr  r  r  rb  r§   Údiagnostic_linesrv  ÚentriesÚpreviewÚsnapshot_excÚreadys   &                         r!   r   ÚTorchOpsJitExtension.load„  sá  € ð  ×9Ñ9Ó;ÐßØ#'ˆDÔ Ø %ˆDÔØ/ÔÙð
 #×?Ñ?ÓAÐØÒ*Ø——“Ø×=Ñ=Ð>QÓR÷ ’ð ××Ð D×$5×$5Ð$5¸d×>XÑ>X×>ZÒ>ZÙà× Ñ Ò,°T×5OÑ5O×5QÒ5QØ#'ˆDÔ Ø $ˆDÔØ!ˆDÔÙà×Ñ× Ò Ø×'Ñ'Ô)Ø#'ˆDÔ Ø $ˆDÔØ!ˆDÔÙà××Ð¤e§j¡j×&=Ñ&=×&?Ò&?Ø#'ˆDÔ Ø %ˆDÔØ"&×"3Ñ"3Ð!4Ð4LÐMˆDÔÙà�Z�Z‹ZØ ×6Ñ6Ó8ˆMØ×#×#Ð#¨×(9×(9Ð(9Ç-Ø÷ ‰Zð ×$Ñ$Ò0¿Ø'+�Ô$Ø$(�Ô!Ø#%�Ô Ø÷ ‰Zð ×"Ñ"×$Ò$Ø×+Ñ+Ô-Ø'+�Ô$Ø$(�Ô!Ø#%�Ô Ø÷ ‰Zð ×#×#Ð#¯MØ×(Ñ(÷! ŠZð" Ÿ™Ó*ˆJØ"×2Ñ2Ó4ˆOà#'×#CÑ#CÓ#EÐ Ü*Ø×-Ñ-Ó/ÐAU÷õ à$ß*Ø+/�DÔ(Ø(-�DÔ%à×,Ñ,Ð-Ð-?Ð@TÐUXÐ?Yð Z9Ø9=×9VÑ9VÓ9XÐ8Yð ZMÜMmÐLnÐnpðrð Ô$ô
 —K‘K  d×&6Ñ&6Ô7Ü “N×'Ñ'¨4×+<Ñ+<Ð*=Ð=rÐ(sÔtØ ÷÷+ ‰Z÷H ! _×%;Ñ%;×%=Ò%=Ü “N×'Ñ'¨4×+<Ñ+<Ð*=Ð=aÐbqÐarÐrtÐ(uÔvÜ-Ø"&×"3Ñ"3Ð!4°NÐCØ$3õô —M’M /ÀÕFà× Ñ ¨¸Ð Ô=ç$¨×)HÑ)HÈ×)TÒ)TØ+/�DÔ(Ø(,�DÔ%Ø')�DÔ$Ø÷;÷+ ‰Zðh ×3Ñ3°JÔ?ä%›�Ø—‘˜t×0Ñ0Ð1Ð1YÐZdÐYeÐegÐhÔiÜ#:Ø!Ø1°$×2CÑ2CÐ1DÀCÐHØ%)×%BÑ%Bô$Ð ô
 ×+Ò+Ó-�Ø-2Ð*ð>jØ'+×'=Ñ'=¸d¿l¹lÓ'KÐ$Ø*.×*LÑ*LÓ*NÐ'à §	¡	Ø!Ð#3Ø)¬3¨z«?Ø*¨EØ!ÐPT×P`×P`ÐP`¤8¨D×,<Ñ,<ÀeÕ#LÐfkð�Fð $(×#>Ñ#>Ó#@�Lß#Ø1=˜~Ñ.Ø(,×(HÑ(HÓ(JÐ%ß(Ø6G˜Ð2Ñ3ß*Ø8KÐ4Ñ5Ø$(×$:Ñ$:¸4×;MÑ;MÓ$N�Mß$Ø2?˜˜Ñ/Ü=Ø $× EÑ E÷ö ô ™˜vš÷ð 26Ñ.ôH #×/Ò/Ó1°GÕ;�GØ$×*Ñ*Ð5OÐahÐ*Ôiä×+Ò+Ó-°Õ7�Ø×3Ñ3Ó5×dÐd¸×9XÑ9XÐYcÓ9d�Ø'+�Ô$Ø$)�Ô!ßØ×/Ñ/Ô1Ø')�DÔ$Ø—K‘KØ×,Ñ,Ð-Ð-MÜ4°W¸d×>[Ñ>[Ó\Ð]Ð]^ð`ôð  ÷k÷+ ‰ZðX '+×&7Ñ&7Ð%8Ð8uÐ#v�Ô Ø—‘˜t×0Ñ0Ð1Ð1qÐrÔsØ÷s÷+ ‰Z÷3 —�ú÷Z÷ ð ûô
 !õ !!Ü"×/Ò/Ó1°GÕ;�GØ+/�DÔ(Ø(-�DÔ%à×,Ñ,Ð-Ð-XÐY\ÐX]Ð^Ø% j \Ð2Ø*¨?Ð*;Ð<Ø!¤(×"9Ò"9Ó";Ð!<Ð=ØœrŸyšy›{˜mÐ,Ø/´·	²	Ð:PÐRTÓ0UÐ/VÐWØ9¼"¿)º)ÐDdÐfhÓ:iÐ9jÐkð(Ð$ð '+×&BÑ&BÀ:Ó&N�Oß&Ø(×/Ñ/Ø1Ø"Ÿi™iÑ'yÑixÓ'yÓyõzôðeÜ"(¨×);Ñ);Ó)=Ó">˜Ø"&§)¡)Ñ+QÀGÈCÆLÓ+QÓ"Q˜Ü˜w›<¨"Ô,Ø#¨´#°g³,ÀÕ2CÐ1DÀFÐ'KÕK˜GØ(×/Ñ/Ð2FÀwÀiÈqÐ0QÕRøÜ"ô eØ(×/Ñ/Ð2SÐT`ÐSaÐabÐ0c×dÑdûðeúà',§z¡zÐ2BÓ'C�DÔ$Ü—I‘I˜d D×$4Ñ$4¸t�IÔDØ—K‘KØ×,Ñ,Ð-Ð-PÜ4°W¸d×>[Ñ>[Ó\Ð]Ð]sðuôó !ä"×/Ò/Ó1°GÕ;�GØ$×*Ñ*Ð5OÐahÐ*Ôi÷Q÷+ ‰Zûðr!!ûôF #×/Ò/Ó1°GÕ;�GØ$×*Ñ*Ð5OÐahÐ*Õiú÷Q÷ úð ÷+ �Z�ZŠZúsZ  Á\Æ4g Ç
g Çg Çg Ç3g Èg È)&g Ég É+g É3g Ê	Ag ËBg	Í*g Í<g	Îg	ÎA5g	Ðg	Ð'g	Ð=g ÑA9g	Ó	B
\4Õ\4Õ0\4Õ=&\4Ö$#\4×\ ×
\4×A!g	Ù 'g	Ù(Ag	Ú5g Û3g	Û:g Ü\	Ü \1Ü+	\4Ü4fÝ C+fà,A:b'
â&fâ'câ2cãfãcãA0fåfå/g	å4g æfæfæ1f?æ?g	çgçg ç g1	c               ó   € V ^8„  d   QhRR/# )r   r   Úobjectr   )r    s   "r!   r"   r#  <  s   € ÷ 	tñ 	t &ñ 	tr#   c                óP  € V P                   e   V P                   # V P                  4       '       g1   \        V P                  4       ;'       g    V P                   R24      hV P                  4       '       d   V P                   # \        V P                   RV P                   R24      h)zCReturn the cached torch.ops namespace after loading this extension.z: runtime unavailable.z : required torch.ops namespace `ú` is unavailable.)r*  r   r·  r  r!  râ  r  rð   s   &r!   Únamespace_objectÚ%TorchOpsJitExtension.namespace_object<  s–   € ð × Ñ Ò,Ø×(Ñ(Ð(Ø�y‰y�{Š{Ü˜t×6Ñ6Ó8×hÐh¸t×?PÑ?PÐ>QÐQgÐ<hÓiÐiØ×&Ñ&×(Ò(Ø×(Ñ(Ð(Ü˜d×/Ñ/Ð0Ð0PÐQU×Q_ÑQ_ÐP`Ð`qÐrÓsÐsr#   c               ó    € V ^8„  d   QhRRRR/# )r   rÛ  r   r   r:  r   )r    s   "r!   r"   r#  G  s   € ÷ ñ ˜#ð  &ñ r#   c                ó  € V P                   P                  V4      pVe   V# V P                  4       p\        W14      '       g)   \	        V P
                   RV P                   RV R24      h\        W14      pW@P                   V&   V# )z7Return a cached torch.ops handle for one registered op.z: torch.ops `r&   r<  )r+  rm   r=  rÚ  ÚAttributeErrorr!  r  r/   )rè   rÛ  r¤  r  Úops   &&   r!   rB  ÚTorchOpsJitExtension.opG  s…   € ð —‘×#Ñ# GÓ,ˆØÒØˆMØ×)Ñ)Ó+ˆ	Ü�y×*Ò*Ü  D×$5Ñ$5Ð#6°mÀDÇNÁNÐCSÐSTÐU\ÐT]Ð]nÐ!oÓpÐpÜ�YÓ(ˆØ"$�‰�wÑØˆ	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ë   Úclassmethodr-  r9  r>  rB  rG  rK  rO  rT  rX  r\  re  r†  r’  r­  r³  r¹  rÆ  rÂ  r_  rÕ  rÞ  râ  rì  rñ  rù  rý  r  r  r  r   r=  rB  r  r   r#   r!   r  r  C  sQ  † ÙRð5-ð OSð5-ð TXð5-ð VZð5-ð PTð5-ð ,0ð5-ð &*ð5-ð  $ð!5-ð" 26ð#5-ð$ 15ð%5-ð& -1ð'5-ð( ;?ð)5-ð* /3÷+5-ðn ô#ó ð#õ+õ0õ?õõWõ\õ;õYõGõõ07õr õD=õ~õ
õ"õ@"õHBõ
?õkõõõCõ6õp
õ BõD õ
õ(võp	t÷ñ r#   r  c           	     ó¬  € \         ;_uu_ 4        \        '       gì   T;'       g    \        WR7      p\        P                  P                  V4      '       dE    \        RVR7       \        P                  ! V4       V'       d   \        P                  RV 24       \        P                  P                  V4      '       g7   V'       d   \        P                  RV4       \        P                  ! VRR	7       \        RR
V RV/VB  Rs RRR4       R#   \         d#   p\        P                  RT 24        Rp?LŸRp?ii ; i  + '       g   i     R# ; i)aŠ  
A safe wrapper for torch.utils.cpp_extension.load() that removed old cached kernel on first load. Pytorch has a bug where it does not check previous cached kernel for current pytorch compatibility as it
only does it a naive name check based on pytorch/cuda version but same pytorch version can have multiple variants (cpu, cuda, etc) which are not cross compatible resulting in hidden errors.
)r  z$safe_load_cpp_ext.first_init_cleanupr  z7[safe_cpp_extension_load] Removed old build directory: z<[safe_cpp_extension_load] Failed to remove build directory: Nz"Creating extension directory %s...T)r   rË   r  r   )Ú_cpp_ext_lockÚ_cpp_ext_initializedr   r^   rh   r}  ra   rj   r  r\   r[  rZ  ÚerrorÚmakedirsr   )rË   r  r  r2  Úes   &&&, r!   Úsafe_load_cpp_extrK  U  s  € ÷ 
Žç#Ó#Ø-×\Ð\Ô1EÀdÔ1\ˆOÜ�w‰w�~‰~˜o×.Ò.ð	bÜ-ØEØ$3õô —M’M /Ô2ßÜŸ	™	Ð$[Ð\kÐ[lÐ"mÔnô —7‘7—>‘> /×2Ò2ßÜ—I‘IÐBÀOÔTä—’˜O°dÕ;ô ñ Øðà /ðð òð $(Ð à÷? 
‰øô !ô bÜ—I‘IÐ \Ð]^Ð\_Ð`×aÑaûðbú÷ 
�ˆúsH   �E¥1EÁADÂ$EÃ EÃA EÄD?ÄD:Ä5EÄ:D?Ä?EÅE	c               ó   € V ^8„  d   QhRR/# rR  r   )r    s   "r!   r"   r"   ƒ  s   € ÷ Añ A ñ Ar#   c                 óÀ   € \        \        4      P                  4       P                  ^,          p V R,          pVP	                  4       '       d   V# V R,          R,          # )zNResolve the pack_block custom-op source file from source or editable installs.zpack_block_cpu.cppÚgptqmodel_ext©r   Ú__file__r?  r  r}  ©Úproject_rootÚsource_paths     r!   Ú_pack_block_source_pathrT  ƒ  sR   € ô œ“>×)Ñ)Ó+×3Ñ3°AÕ6€LØÐ!5Õ5€KØ×Ñ×ÒØÐØ˜/Õ)Ð,@Õ@Ð@r#   c               ó   € V ^8„  d   QhRR/# rR  r   )r    s   "r!   r"   r"   �  s   € ÷ =ñ = ñ =r#   c                 óÀ   € \        \        4      P                  4       P                  ^,          p V R,          pVP	                  4       '       d   V# V R,          R,          # )zNResolve the floatx CPU custom-op source file from source or editable installs.zfloatx_cpu.cpprN  rO  rQ  s     r!   Ú_floatx_cpu_source_pathrW  �  sR   € ô œ“>×)Ñ)Ó+×3Ñ3°AÕ6€LØÐ!1Õ1€KØ×Ñ×ÒØÐØ˜/Õ)Ð,<Õ<Ð<r#   c               ó   € V ^8„  d   QhRR/# ©r   r   r  r   )r    s   "r!   r"   r"   —  ó   € ÷ +ñ +Ð3ñ +r#   c                 ój   € \         f'   \        RRRR RR RRR\        4        2.. R	R
R
R7      s \         # )z:Build the shared pack_block torch.ops loader on first use.Úgptqmodel_pack_block_cpur  Úpack_block_cpuc                 ó*   € \        \        4       4      .# r�   )r   rT  r   r#   r!   rš  Ú'_pack_block_extension.<locals>.<lambda>   ó   € œSÔ!8Ó!:Ó;Ñ<r#   ÚGPTQMODEL_EXT_BUILDc                 ó   € \        R 4      # ©r]  ©r  r   r#   r!   rš  r_  ¢  s   € Ô'CÐDTÔ'Ur#   ú-O3rö  ÚGPTQMODEL_EXT_VERBOSEF©rË   r  r  r  r  r  r!  r  r  r  r  r  rc  )Ú_PACK_BLOCK_TORCH_OPS_EXTENSIONr  rñ  r   r#   r!   Ú_pack_block_extensionri  —  sR   € ô 'Ò.Ü*>Ø+Ø!Ø,Ù<Ø0ÙUØ)Ø 5Ô):Ó)<Ð(=Ð!>Ð?ØØ/ØØ!&ô+
Ð'ô +Ð*r#   c               ó   € V ^8„  d   QhRR/# rY  r   )r    s   "r!   r"   r"   ­  rZ  r#   c                 ój   € \         f'   \        RRRR RR RRR\        4        2.. R	R
R
R7      s \         # )z:Build the shared floatx CPU torch.ops loader on first use.Úgptqmodel_floatx_cpuÚgptqmodel_floatxc                 ó*   € \        \        4       4      .# r�   )r   rW  r   r#   r!   rš  Ú'_floatx_cpu_extension.<locals>.<lambda>¶  r`  r#   ra  c                 ó   € \        R 4      # )Ú
floatx_cpurd  r   r#   r!   rš  ro  ¸  s
   € Ô'CÀLÔ'Qr#   rq  re  rö  rf  Frg  )Údequantize_fp8_cpuÚdequantize_fp4_cpu)Ú_FLOATX_CPU_TORCH_OPS_EXTENSIONr  rñ  r   r#   r!   Ú_floatx_cpu_extensionru  ­  sR   € ô 'Ò.Ü*>Ø'Ø(ØEÙ<Ø0ÙQØ%Ø 5Ô):Ó)<Ð(=Ð!>Ð?ØØ/ØØ!&ô+
Ð'ô +Ð*r#   r  c               ó    € V ^8„  d   QhRRRR/# ©r   r  r�   r   zOptional[object]r   )r    s   "r!   r"   r"   Ã  s   € ÷ '!ñ '!¨$ð '!Ð;Kñ '!r#   c                óŠ  € \        \        P                  P                  R4      '       d   RsRs\
        # \        '       d   \
        '       d   \
        # \        4       pVP                  4       '       g   \        P                  RV4       RsRsR#  ^ RIH
p \        P                  P                  R4      pV '       d   R\        P                  R&    VP                  RR7      R,          sV '       d9   Vf"   \        P                  P                  RR4       MV\        P                  R&   \        P                  R	V4       Rs\
        #   T '       d:   Tf"   \        P                  P                  RR4       i T\        P                  R&   i i ; i  \          d*   p\        P                  R
T4       Rs Rp?Rs\
        # Rp?ii ; i)z8Ensure the pack_block CPU extension is built and loaded.r]  Tz/pack_block_cpu extension source not found at %sN©Ú	extensionrf  Ú1r"  z'pack_block_cpu extension loaded from %sz)pack_block_cpu extension build failed: %s)rÚ  r5   rÝ  r  Ú!_PACK_BLOCK_EXTENSION_INITIALISEDr   rT  r}  r\   r[  rz  r^   rl   rm   r   ÚpoprZ  )r  rS  Úextension_apiÚprevious_verboserb  s   $    r!   Úload_pack_block_extensionr€  Ã  sr  € ô
 Œu�y‰y×"Ñ"Ð$4×5Ò5Ø,0Ð)Ø $ÐÜ$Ð$ç(Ó(×-BÓ-BÜ$Ð$ä)Ó+€KØ×Ñ×ÒÜ�	‰	ÐCÀ[ÔQØ $ÐØ,0Ð)Ùð%Ý8äŸ:™:Ÿ>™>Ð*AÓBÐßØ25ŒB�J‰JÐ.Ñ/ð	KØ$1×$6Ñ$6Ð<LÐ$6Ó$MÐN^Õ$_Ð!çØ#Ò+Ü—J‘J—N‘NÐ#:¸DÕAà:J”B—J‘JÐ6Ñ7Ü�	‰	Ð;¸[ÔIð )-Ð%Ü Ð ø÷ Ø#Ò+Ü—J‘J—N‘NÐ#:¸DÕAà:J”B—J‘JÐ6Ò7ð	 ûô ô %Ü�	‰	Ð=¸sÔCØ $ÔØ(,Ð%Ü Ð ûð	%ús8   Â,F Â=F ÃE Ã*AF ÅAFÆF ÆGÆF=Æ=Gc               ó    € V ^8„  d   QhRRRR/# rw  r   )r    s   "r!   r"   r"   í  s   € ÷ ñ ¨$ð Ð;Kñ r#   c                óL  € \        \        P                  RR4      pVe'   \        VR4      '       d   \        VR4      '       d   V# \	        4       pVP                  4       '       g   \        P                  RV4       R#  ^ RIH	p \        P                  P                  R4      pV '       d   R\        P                  R&    VP                  R	R
7      R	,          pV '       d9   Vf"   \        P                  P                  RR4       MV\        P                  R&   \        P                  RV4       V#   T '       d:   Tf"   \        P                  P                  RR4       i T\        P                  R&   i i ; i  \         d"   p\        P                  RT4        Rp?R# Rp?ii ; i)z4Ensure the floatx CPU extension is built and loaded.rm  Nrr  rs  z+floatx_cpu extension source not found at %sry  rf  r{  rq  r"  z#floatx_cpu extension loaded from %sz%floatx_cpu extension build failed: %s)r/   r5   rÝ  rÚ  rW  r}  r\   r[  r  rz  r^   rl   rm   r   r}  rZ  )r  r  rS  r~  r  rz  rb  s   $      r!   Úload_floatx_cpu_extensionrƒ  í  sP  € ô œŸ	™	Ð#5°tÓ<€IØÒ¤¨Ð4H×!IÒ!IÌgÐV_Ðau×NvÒNvØÐä)Ó+€KØ×Ñ×ÒÜ�	‰	Ð?ÀÔMÙð@Ý8äŸ:™:Ÿ>™>Ð*AÓBÐßØ25ŒB�J‰JÐ.Ñ/ð	KØ%×*Ñ*°Ð*Ó=¸lÕKˆIçØ#Ò+Ü—J‘J—N‘NÐ#:¸DÕAà:J”B—J‘JÐ6Ñ7Ü�	‰	Ð7¸ÔEØÐø÷ Ø#Ò+Ü—J‘J—N‘NÐ#:¸DÕAà:J”B—J‘JÐ6Ò7ð	 ûô ô @Ü�	‰	Ð9¸3×?Ð?Ùûð@ús8   Á?,E7 Â,E7 Ã D1 ÃAE7 Ä1AE4Å4E7 Å7F#ÆFÆF#)z.soz.pydz.dylibz.dll)r  z--split-compile)z
--threads=z--split-compile=r   )rÙ  )NF)ƒÚ__conditional_annotations__Ú
__future__r   rw  Úloggingr¤   r^   r(  rj   ry   r+   r)   r×   rÐ   rZ   r!  ÚImportErrorÚ
contextlibr   Ú	functoolsr   Úpathlibr   Útypingr   r   r	   r¼  r5   rX  r
   r   r   r   ro   r   Újit_compile_baselinesr   ré   r   Ú	getLoggerr  r\   rØ   r2  r   Ú__annotations__r|  rh  rt  rF  rG  rç  rß   rÜ   ÚcompileÚFlagÚ	MULTILINEr{  r   r8   r›  r�  rž  rŸ  r‡   r†   r   r  rÔ  r  Ú	frozensetrK   rM   r  r  r,  r1   r>   rE   rR   ra   rq   r�   r‹   r�   r”   rž   rª   r°   r´   r¿   rÁ   r  r  r1  r:  rP  r?  r  rA  rD  rd  ri  r^  r�  r]  r‘  r•  r½  r©  r®  r·  rÀ  rÈ  rÌ  rÐ  rÕ  rØ  rì  rñ  rù  r  r  rK  rT  rW  ri  ru  r€  rƒ  )r„  s   @r!   Ú<module>r“     sì  øð÷ #Ð "ã Û Û Û 	Û Û Û Û 
Û Û Û Û ðÛõ &Ý Ý ß /Ñ /ã Û ß aÓ aå Ý CÝ  ð ×Ò˜Ó!€ð
  —n’nÓ&Ð à(,Ð �~Ó ,Ø$)Ð !à"&Ð Ø"&Ð à#€ð Ð à<Ð Ø #Ð Ø%(Ð "ØŸ,š,Ø+Ø
�)‰)×
Ñ
ôÐ ð ŸšØ)Ø
�)‰)×
Ñ
ôÐ ð (,§|¢|Ð4UÓ'VÐ $Ø—\’\Ð"<Ó=Ð Ø ŸLšLÐ)RÓSÐ Ø"ŸlšlÐ+KÓLÐ Ø%)§\¢\Ð2\Ó%]Ð "ØŸšÐ%>Ó?Ð Ø—^’^Ó%Ð Ø.2Ð Ð+Ó 2ð Ð Ø7Ð Ø<Ð Ù*3Ð4TÓ*UÐ 'Ø'IÐ $ð $FÐ  Ø/4Ð ,Ø$'Ð !õ	fõõ>õõ$õõ*Jõ$#õ -õ(õ#õ1ðTð 5÷	Tõõ&G÷ R,ñ R,õjNõ	<ð ô)ó ð)õXñ$ ˜“N×*Ñ*Ó,×4Ñ4°QÕ7Ð õñ" �4Ôô%ó ð%õPõ"/õ&õ*/õ&	ð
8ð ,.÷
8ð —l’lÐ#PÓQÐ õ	õ+õõ&õ&ð$ ð6¸Dö 6ó ð6õ(?õ?õ@÷õ0
ðà ðð ðð ÷	ð&*à ð*ð ð*ð ð	*ð
 #ð*ð "&ð*ð ).ð*ð %)ð*ð (-ð*ð #(ð*ð &*÷*÷ZOñ Oôd+õ\Aõ=õ+õ,+ð,'!°÷ '!ðT°÷ ñ øðk6 ô ØƒEðús   ¼M Í	M%Í$M%