+
    G-jF  ã                   óx   € ^ RI Ht ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	H
t
 ^ RIHt ]! ]4      t ! R R]4      tR	# )
é    )Ú	getLogger)ÚFusion)ÚFusionUtils)Úndarray)Ú	NodeProtoÚTensorProto©Ú	OnnxModelc                   ót   a a€ ] tR t^t oV3R lV 3R lltV3R lR ltV3R lR ltV3R lR ltR	tVt	V ;t
# )
ÚFusionShapec                ó    <€ V ^8„  d   QhRS[ /# )é   Úmodelr	   )ÚformatÚ__classdict__s   "€Úv/Volumes/fast/ai/experiments/nudenet-smoke/.venv/lib/python3.14/site-packages/onnxruntime/transformers/fusion_shape.pyÚ__annotate__ÚFusionShape.__annotate__   s   ø€ ÷ &ñ &™iñ &ó    c                óf   <€ \         SV `  VR R4       \        V4      V n        RV n        RV n        R# )ÚShapeÚConcatNF)ÚsuperÚ__init__r   ÚutilsÚshape_inferÚshape_infer_done)Úselfr   Ú	__class__s   &&€r   r   ÚFusionShape.__init__   s0   ø€ Ü‰Ñ˜ ¨Ô2Ü  Ó'ˆŒ
ØˆÔØ %ˆÖr   c                ó4   <€ V ^8„  d   QhRS[ RS[R,          /# )r   Útensor_protoÚreturnN)r   Úint)r   r   s   "€r   r   r      s    ø€ ÷ ñ ¹[ð ÉSÐSWÍZñ r   c                óÂ   € VP                   P                  P                  R 4      '       d4   \        VP                   P                  P                  P
                  4      # R# )ÚshapeN)ÚtypeÚtensor_typeÚHasFieldÚlenr&   Údim)r   r"   s   &&r   Ú get_dimensions_from_tensor_protoÚ,FusionShape.get_dimensions_from_tensor_proto   sE   € Ø×Ñ×(Ñ(×1Ñ1°'×:Ò:Ü�|×(Ñ(×4Ñ4×:Ñ:×>Ñ>Ó?Ð?ár   c                ó4   <€ V ^8„  d   QhRS[ RS[R,          /# )r   Ú
input_namer#   N)Ústrr$   )r   r   s   "€r   r   r      s   ø€ ÷ ñ ©ð ±°tµñ r   c                óB  € V P                   P                  V4      pVe   \        V4      # V P                  '       g)   V P                   P	                  RR7      V n        RV n        V P
                  e-   V P                  V P
                  P                  V,          4      # R # )NT)Úupdate)r   Ú	get_shaper*   r   Úinfer_runtime_shaper   r,   Ú	known_vi_)r   r/   r&   s   && r   Úget_dimensionsÚFusionShape.get_dimensions   s†   € Ø—
‘
×$Ñ$ ZÓ0ˆØÒÜ�u“:Ðà×$×$Ð$Ø#Ÿz™z×=Ñ=ÀTÐ=ÓJˆDÔØ$(ˆDÔ!à×ÑÒ'Ø×8Ñ8¸×9IÑ9I×9SÑ9SÐT^Õ9_Ó`Ð`ár   c                óh   <€ V ^8„  d   QhRS[ RS[S[S[S[ ,          3,          RS[S[S[ 3,          /# )r   Úconcat_nodeÚinput_name_to_nodesÚoutput_name_to_node)r   Údictr0   Úlist)r   r   s   "€r   r   r   ,   sE   ø€ ÷ A$ñ A$áðA$ñ "¡#¡t©I¥Ð"6Õ7ðA$ñ "¡#¡y .Õ1ñ	A$r   c                óf  € V P                   P                  4       p\        VP                  4      pR pR p\	        V4       EFx  pV P                   P                  V. ROV^ ^ .V4      p	V	f    R # V	w  r«pV^ 8X  d   VP                  ^ ,          pVf.   VP                  ^ ,          pV P                  V4      V8w  d    R # MVP                  ^ ,          V8w  d    R # \        P                  ! V
R^ ^ R7      '       g    R # V^8  d$   \        P                  ! V
R^ .4      '       g    R # M'V P                  P                  V
^^ .4      '       g    R # V P                   P                  VP                  ^,          4      p\        V\        4      '       d*   VP                  ^8X  d   VP!                  4       V8X  d   EKx   R # 	  V P                   P#                  VP                  ^ ,          4      fH   V P                   P%                  VP                  ^ ,          V4       V P'                  R4       RV n        R # R # )NÚaxis)Údefault_valueÚaxesÚReshapeT)Ú	UnsqueezeÚGatherr   )r   Úget_opset_versionr*   ÚinputÚrangeÚmatch_parent_pathÚoutputr6   r   Úcheck_node_attributer   Úcheck_node_input_valueÚget_constant_valueÚ
isinstancer   ÚsizeÚitemÚfind_graph_outputÚreplace_input_of_all_nodesÚincrease_counterÚprune_graph)r   r9   r:   r;   Úopset_versionÚinputsÚrootÚshape_outputÚiÚpathÚ	unsqueezeÚgatherr&   Úvalues   &&&&          r   ÚfuseÚFusionShape.fuse,   sÒ  € ð, Ÿ
™
×4Ñ4Ó6ˆä�[×&Ñ&Ó'ˆØˆØˆÜ�v—ˆAØ—:‘:×/Ñ/ØÚ0Ø�A�q�	Ø#ó	ˆDð Š|Úà'+Ñ$ˆI˜uØ�AŒvØ$Ÿ|™|¨A��ØŠ|Ø—{‘{ 1•~�Ø×&Ñ& tÓ,°Ô6Úð 7à—‘˜Q• 4Ô'Úä×3Ò3°I¸vÀqÐXY×ZÓZÚà˜rÔ!Ü"×7Ò7¸	À6ÈAÈ3×OÒOÚð Pð —z‘z×8Ñ8¸ÀAÈÀs×KÒKÚà—J‘J×1Ñ1°&·,±,¸qµ/ÓBˆEä˜u¤g×.Ò.°5·:±:À´?ÀuÇzÁzÃ|ÐWX×GXÚñC ðF �:‰:×'Ñ'¨×(:Ñ(:¸1Õ(=Ó>ÒFØ�J‰J×1Ñ1°+×2DÑ2DÀQÕ2GÈÔVØ×!Ñ! )Ô,Ø#ˆDÖñ Gr   )rS   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r,   r6   r]   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r   r   s   @@r   r   r      s5   ù‡ € ÷&ó &÷ð ÷ð ÷A$÷ A$ð A$r   r   N)Úloggingr   Úfusion_baser   Úfusion_utilsr   Únumpyr   Úonnxr   r   Ú
onnx_modelr
   r_   Úloggerr   © r   r   Ú<module>rn      s1   ðõ å Ý $Ý ß 'Ý  á	�8Ó	€ô\$�&ö \$r   