+
     BiH              	       H  a R t ^ RIt^ RIt^ RIt^ t^t^t^t^t^t	^t
^t^t^	t^
t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^t^ t^@t^t ]PB                  R8X  d
   Rt"]]]] 3t#MRt"]]]]3t#]$! ]%! ]"4      4       U Uu/ uF  p ]"V ,           F  pWbK  	  K  	  upp t&Rt' ! R R4      t(]$! ^]%! ]"4      ,          4      t)]) Uau. uF$  oRPU                  V3R l]+! ]"4       4       4      NK&  	  upt,R t-]-! ])4      t.. t/]) FS  t0^ t1]$! ]%! ]"4      4       F+  t2^]2,          ]0,          '       g   K  ]1]#]2,          ,          t1K-  	  ]/Pg                  ]14       KU  	   ! R	 R
4      t4Rt5]43^,          ](3]%! ]54      ^,
          ,          ,           t6]$! ]%! ]54      4       U Uu/ uF  p ]5V ,           F  pWbK  	  K  	  upp t7]Pp                  ! R4      t9]Pp                  ! R4      t:R t;R t</ t=R t>R t?]@R8X  d"   ^ RIAHBtB ]B! R^RR7       ^ RICHDtD ]D! ]?4       R# R# u upp i u upi u upp i )a  
MultiCall - a class which inherits its methods from a Tkinter widget (Text, for
example), but enables multiple calls of functions per virtual event - all
matching events will be called, not only the most specific one. This is done
by wrapping the event functions - event_add, event_delete and event_info.
MultiCall recognizes only a subset of legal event sequences. Sequences which
are not recognized are treated by the original Tk handling mechanism. A
more-specific event will be called before a less-specific event.

The recognized sequences are complete one-event sequences (no emacs-style
Ctrl-X Ctrl-C, no shortcuts like <3>), for all types of events.
Key/Button Press/Release events can have modifiers.
The recognized modifiers are Shift, Control, Option and Command for Mac, and
Control, Alt, Shift, Meta/M for other platforms.

For all events which were handled by MultiCall, a new member is added to the
event instance passed to the binded functions - mc_type. This is one of the
event type constants defined in this module (such as MC_KEYPRESS).
For Key/Button events (which are handled by MultiCall and may receive
modifiers), another member is added - mc_state. This member gives the state
of the recognized modifiers, as a combination of the modifier constants
also defined in this module (for example, MC_SHIFT).
Using these members is absolutely portable.

The order by which events are called is defined by these rules:
1. A more-specific event will be called before a less-specific event.
2. A recently-binded event will be called before a previously-binded event,
   unless this conflicts with the first rule.
Each function will be called at most once for each event.
Ndarwinzapplication has been destroyedc                   8   a  ] tR t^It o R tR tR tR tRtV t	R# )_SimpleBinderc                    Wn         R \        V,          ^ ,          ,           R,           V n        W n        W0n        . V n        RV n        R# )<>N)type_typessequencewidget
widgetinstbindedfuncs	handlerid)selfr   r   r   s   &&&&(/usr/lib/python3.14/idlelib/multicall.py__init___SimpleBinder.__init__J   s9    	F4LO+C/$    c                   V P                   '       gR   V P                  V P                  3R  lpV P                  P	                  V P
                  V P                  V4      V n         V P                  P                  V4       R# )c                     W n         / p\        \        V4      ^,
          RR4       F+  pW,          pWS9  g   K  RW5&   V! V 4      pV'       g   K)  Vu # 	  R# )   TN)mc_typerangelen)eventlr   	wascalledifuncrs   &&&    r   handler#_SimpleBinder.bind.<locals>.handlerT   sN     '	s1vaxR0A4D,*.	 K1#$H 1r   N)r   r   r   r   bindr   r
   append)r   tripletr   r!   s   &&& r   r#   _SimpleBinder.bindR   s[    ~~~#'#3#3tyy 	% "[[--doo.2mmWFDN%r   c                    V P                   P                  V4       V P                   '       gE   V P                  P                  V P                  V P
                  V P                  4       R V n        R # R # N)r   remover   unbindr   r
   r   )r   r%   r   s   &&&r   r*   _SimpleBinder.unbindb   sP    %KKtt~~N!DN  r   c                &   V P                   '       d?    V P                  P                  V P                  V P                  V P                   4       R# R#   \
        P                   d)   p\        TP                  ^ ,          9   g   h  Rp?R# Rp?ii ; i    N)	r   r   r*   r   r
   tkinterTclErrorAPPLICATION_GONEargs)r   es   & r   __del___SimpleBinder.__del__h   sj    >>>""4??DMM(  ## '166!94 5s   ;A B(BB)r   r   r
   r   r   r   N)
__name__
__module____qualname____firstlineno__r   r#   r*   r4   __static_attributes____classdictcell____classdict__s   @r   r   r   I   s     & " r   r    c              3   x   <"   T F/  w  r^V,          S,          '       g   K  V^ ,          R,           x  K1  	  R# 5i)r   -N ).0r   mss   &  r   	<genexpr>rE   w   s3      )$9DAFa<< !!S$9s   ::c                    R p. pV  FH  p\        V  Uu0 uF  qCV,          kK  	  up4      pVP                  VRR7       VP                  V4       KJ  	  V# u upi )zFor each item of states return a list containing all combinations of
that item with individual bits reset, sorted by the number of set bits.
c                J    ^ pV '       d   \        V ^4      w  rW,          pK   V# )znumber of bits set in n base 2)divmod)nnbrems   &  r   nbitsexpand_substates.<locals>.nbits   s#    Aq\FAIB	r   T)keyreverse)listsortr$   )statesrL   	stateliststatex	substatess   &     r   expand_substatesrW   |   s`     IV4V!))V45	5$/#   5s   A
c                   >   a  ] tR t^t o R tR tR tR tR tRt	V t
R# )_ComplexBinderc                @    VW#V P                   V P                  3R  lpV# )c                 @   R .VR&   W n         W0n        / pRpV F]  p\        \        V4      ^,
          RR4       F/  p	W,          p
W9  g   K  R Wj&   W,          ! V 4      pV'       g   K/   M	  V'       g   K]   M	  . VR&   V F
  pV! 4        K  	  . VR&   V'       d   V# R# )T:NNNNr   )r   mc_stater   r   )r   listsr   r\   ishandlerrunningdoafterhandlerr   r    r   r   r   fs   &&&&&&      r   r!   0_ComplexBinder.__create_handler.<locals>.handler   s     $(&Q#M%NIAs1vaxR0A4D,*.	DK1! 1 1  #%Q# $ "N1 r   )r^   r_   )r   r]   r   r\   r!   s   &&&& r   __create_handler_ComplexBinder.__create_handler   s&    #(%'+'<'<%)%8%8	4 r   c           	     f   Wn         \        V,          ^ ,          V n        W n        W0n        R\
         Uu. uF  p. NK  	  up/V n        . V n        . V n        . V n	        \
         F  p\        V,           Uu. uF  qPP                  R,          V,          NK  	  ppV P                  Wa\        V,          4      pR\        V,          ,           V P                  ,           R,           pV P                  P                  WP                  P                  V P                  W4      34       K  	  R# u upi u upi )r.   Nr   r   )r   r	   typenamer   r   _statesr   
handleridsr^   r_   _state_subsets_ComplexBinder__create_handler_state_codes_state_namesr$   r#   )	r   r   r   r   rD   r   r]   r!   seqs	   &&&&     r   r   _ComplexBinder.__init__   s    	tQ$ w"7w!2w"78 !# A8Fq8IJ8I1%%d+A..8IEJ++EaIGl1o%dmm3C7COO""C)9)9$//:=*H $I J	  #8 Ks   D)6"D.c           	       a aa S^,          S P                   9  Ed   \         Uu. uF  p. NK  	  upS P                   S^,          &   \         F  pS^,          R3 UUu. uF1  p\        V,           F  pS P                   V,          V,          NK  	  K3  	  pppS P                  VS P                  \
        V,          4      pR\        V,          : S P                  : RS^,          : R2pS P                  P                  VS P                  P                  S P                  W4      34       K  	  VV V3R lp	S P                  '       g
   V	! 4        R# S P                  P                  V	4       R# u upi u uppi )   Nr   r@   r   c                  r   < SP                   S^,          ,          S^ ,          ,          P                  S 4      # ro   )r   r$   r   r   r%   s   r   <lambda>%_ComplexBinder.bind.<locals>.<lambda>   (    t''
3GAJ?FFtLr   )r   rf   rh   ri   r   rj   rk   re   rg   r$   r   r#   r   r^   r_   )
r   r%   r   rD   detailr   r]   r!   rl   doits
   fff       r   r#   _ComplexBinder.bind   s=   1:T---8?+@1B+@DWQZ()0T(:=(:f#1!#4#4a **62155#4 6(:  = //tyy0<QA$0OT]]GAJJO&&T[[-=-=doo>A.L (M N  M$$$F&&t, ,A=s   E/7E4c                   a aa VV V3R  lpS P                   '       g
   V! 4        R# S P                  P                  V4       R# )c                  r   < SP                   S^,          ,          S^ ,          ,          P                  S 4      # rq   )r   r)   rr   s   r   rs   '_ComplexBinder.unbind.<locals>.<lambda>   ru   r   N)r^   r_   r$   )r   r%   r   rw   s   fff r   r*   _ComplexBinder.unbind   s-    L$$$F&&t,r   c                    V P                    F,  w  r V P                  P                  V P                  W4       K.  	  R#   \        P
                   d)   p\        TP                  ^ ,          9   g   h  Rp?Kj  Rp?ii ; ir-   )rg   r   r*   r   r/   r0   r1   r2   )r   rl   idr3   s   &   r   r4   _ComplexBinder.__del__   s_    GC""4??C< ' ## '166!94 5s   &?A<A77A<)r   r_   rg   r^   r   re   r   r   N)r6   r7   r8   r9   ri   r   r#   r*   r4   r:   r;   r<   s   @r   rY   rY      s$     :J.-$- r   rY   z^\w+$z^[1-5]$c                   V '       d   V ^ ,          R8w  g   V R,          R8w  d   R# V ^R P                  R4      p^ pV'       d:   V^ ,          \        9   d(   V^\        V^ ,          ,          ,          ,          pV^  KA  V'       d+   V^ ,          \        9   d   \        V^ ,          ,          pV^  MR# \        V,          \        J d   V'       g	   V'       d   R# RpMtTR Uu. uF  p\        V,          NK  	  up9   d   \
        pM\        pV'       g   RpM:\        V4      ^8X  d)   VP                  V^ ,          4      '       d   V^ ,          pMR# W#V3# u upi )a  Get a string which should describe an event sequence. If it is
successfully parsed as one, return a tuple containing the state (as an int),
the event type (as an index of _types), and the detail - None if none, or a
string if there is one. If the parsing is unsuccessful, return None.
r   r   Nr@   r   )KeyPress
KeyRelease)	split_modifier_names_type_names_binder_classesr   
_keysym_re
_button_rer   match)r
   words	modifiersr   rv   rD   type_res   &      r   _parse_sequencer     s    x{c)Xb\S-@QrN  %EI
E!H/Q/%(333	!Hq[(58$!Ht-F ,FG,FqKNN,FGG G GFZ1_uQx!8!81XFF"" Hs   !Ec                 R   V ^,          '       dX   R\         V ^ ,          ,          ,           \        V ^,          ,          ^ ,          ,           R,           V ^,          ,           R,           # R\         V ^ ,          ,          ,           \        V ^,          ,          ^ ,          ,           R,           # )ro   r   r@   r   )rk   r	   )r%   s   &r   _triplet_to_sequencer   2  s{    qzz<
++F71:,>q,AA#Eqz 	 <
++F71:,>q,AA#EEr   c                f   a  S \         9   d   \         S ,          #  ! V 3R lRS 4      pV\         S &   V# )zReturn a MultiCall class which inherits its methods from the
given widget class (for example, Tkinter.Text). This is used
instead of a templating mechanism.
c                   |   <a  ] tR tRt o V3R ltRV3R lltRV3R lltV3R ltV3R ltRV3R llt	R	 t
R
tV tR# )#MultiCallCreator.<locals>.MultiCalliB  c                   < SP                   ! V .VO5/ VB  / V n        \        \        \        4      4       Uu. uF  p\
        V,          ! VSV 4      NK  	  upV n        R # u upi r(   )r   _MultiCall__eventinfor   r   r	   r   _MultiCall__binders)r   r2   kwargsr   r   s   &*, r   r   ,MultiCallCreator.<locals>.MultiCall.__init__E  s^    OOD24262  "D',S['9;'9! .a0FDA'9;DN ;s   A!Nc                .  < \        V4      \        J d   \        V4      ^8  d   VR,          R8X  d   VRR R8X  d   WP                  9   d   V P                  V,          pV^ ,          eA   V^,           F3  pV P                  V^,          ,          P                  WT^ ,          4       K5  	  W$^ &   V^ ,          e:   V^,           F,  pV P                  V^,          ,          P                  WR4       K.  	  MV. .V P                  V&   SP                  WW#4      # ro   :Nro   Nz<<Nz>>)r   strr   r   r   r*   r#   )r   r
   r   addeir%   r   s   &&&&  r   r#   (MultiCallCreator.<locals>.MultiCall.bindN  s     H~$X):|t#(=///))(3B!u(')!uuG NN71:6==g!uM (- qE!u(')!uuG NN71:6;;GJ (- 37D$$X.;;tt99r   c                  < \        V4      \        J d   \        V4      ^8  d   VR,          R8X  d|   VRR R8X  dr   WP                  9   db   V P                  V,          w  r4VeI   V F,  pV P                  V^,          ,          P                  WS4       K.  	  RV P                  V,          ^ &   SP                  WV4      # r   )r   r   r   r   r   r*   )r   r
   funcidr   tripletsr%   r   s   &&&   r   r*   *MultiCallCreator.<locals>.MultiCall.unbind`  s    H~$X):|t#(=+++!%!1!1(!;##+wqz299'H $,48D$$X.q1==88r   c                H  < WP                   9  d   R . .V P                   V&   V P                   V,          w  r4V Fd  p\        V4      pVf   SP                  WV4       K&  Ve*   V P                  V^,          ,          P	                  Wc4       VP                  V4       Kf  	  R # r(   )r   r   	event_addr   r#   r$   r   virtual	sequencesr   r   rl   r%   r   s   &&*    r   r   -MultiCallCreator.<locals>.MultiCall.event_addk  s     ...-12J  )!--g6ND )#.?$$TC8'wqz277FOOG, !r   c                *  < WP                   9  d   R # V P                   V,          w  r4V Fd  p\        V4      pVf   SP                  WV4       K&  Ve*   V P                  V^,          ,          P	                  Wc4       VP                  V4       Kf  	  R # r(   )r   r   event_deleter   r*   r)   r   s   &&*    r   r   0MultiCallCreator.<locals>.MultiCall.event_delete|  sz    ...!--g6ND )#.?''s;'wqz299'HOOG, !r   c                   < Ve   WP                   9  d   SP                  W4      # \        \        \        V P                   V,          ^,          4      4      SP                  W4      ,           # r(   )r   
event_infotuplemapr   )r   r   r   s   &&r   r   .MultiCallCreator.<locals>.MultiCall.event_info  sb    '1A1A"A((77S!5!%!1!1'!:1!=? @((78 8r   c                P   V P                    FU  pV P                   V,          w  r#V'       g   K"  V F-  p V P                  V^,          ,          P                  WB4       K/  	  KW  	  R#   \        P                   d)   p\
        TP                  ^ ,          9   g   h  Rp?Ko  Rp?ii ; i)r   N)r   r   r*   r/   r0   r1   r2   )r   r   r   r   r%   r3   s   &     r   r4   +MultiCallCreator.<locals>.MultiCall.__del__  s    ++!%!1!1'!:4#+& NN71:6==gL $, ,  '// &#3qvvay#@ % $A&s   )A((B%=B  B%)	__binders__eventinfo)NNNr(   )r6   r7   r8   r9   r   r#   r*   r   r   r   r4   r:   r;   )r=   r   s   @r   	MultiCallr   B  s-     	;	:$		9	-"	-	8		& 		&r   r   )_multicall_dict)r   r   s   f r   MultiCallCreatorr   :  s9    
  v&&Y&V Y&v (OFr   c                 T  a \         P                  ! V 4      pVP                  R 4       \        \        V P                  4       P                  R4      R,          4      w  r#VP                  RW#^,           3,          4       \        \         P                  4      ! V4      oSP                  4        SP                  4        ^ .3V3R llpV! R4       V! R4       V! R4       V! R4       V! R	4       V! R
4       V! R4       V! R4       V! R4       V! R4       V! R4       V! R4       R# )zTest MultiCall+:r   NNz+%d+%dc                    <a  V 3R  lpSP                  RV^ ,          ,          V4       SP                  RV^ ,          ,          S 4       V^ ;;,          ^,          uu&   R# )c                    < \        S4       R # r(   )print)r   rl   s   &r   r!   -_multi_call.<locals>.bindseq.<locals>.handler  s
    #Jr   z<<handler%d>>N)r#   r   )rl   rI   r!   texts   f& r   bindseq_multi_call.<locals>.bindseq  sC    			/!A$&0qt+S1	!	r   z<Key>z<Control-Key>z<Alt-Key-a>z<Control-Key-a>z<Alt-Control-Key-a>z<Key-b>z<Control-Button-1>z
<Button-2>z<Alt-Button-1>z
<FocusOut>z<Enter>z<Leave>N)r/   Topleveltitler   intgeometryr   r   Textpack	focus_set)parenttoprU   yr   r   s   &    @r   _multi_callr     s    


6
"CIIsFOO%++C045DALLQCL()GLL)#.DIIKNNs  GOM!"I !LLIIr   __main__)mainzidlelib.idle_test.test_mainmenuF)	verbosityexit)run)ShiftControl)Option)Command)r   )Altr   )MetaM))r   Key)r   )ButtonPressButton)ButtonRelease)Activate)	Circulate)Colormap)	Configure)
Deactivate)Destroy)Enter)Expose)FocusIn)FocusOut)Gravity)Leave)Map)Motion)
MouseWheel)Property)Reparent)Unmap)
Visibility)E__doc__resysr/   MC_KEYPRESSMC_KEYRELEASEMC_BUTTONPRESSMC_BUTTONRELEASEMC_ACTIVATEMC_CIRCULATEMC_COLORMAPMC_CONFIGUREMC_DEACTIVATE
MC_DESTROYMC_ENTER	MC_EXPOSE
MC_FOCUSINMC_FOCUSOUT
MC_GRAVITYMC_LEAVEMC_MAP	MC_MOTIONMC_MOUSEWHEELMC_PROPERTYMC_REPARENTMC_UNMAPMC_VISIBILITYMC_SHIFT
MC_CONTROLMC_ALTMC_META	MC_OPTION
MC_COMMANDplatform
_modifiers_modifier_masksr   r   r   r1   r   rf   join	enumeraterk   rW   rh   rj   rD   r    r   r$   rY   r	   r   r   compiler   r   r   r   r   r   r   r6   unittestr   idlelib.idle_test.htestr   )numbernamerD   s   00pr   <module>r     s  < 
 
  Q}q12BA|1{1lAxbIR*2
x2Fyb+b+2(R}dTFT7	t* <<8FJY
CODJ!68W=O (-S_'=9'=V%/%7%7T <%7 '=9 4 & &Z S_$
% !" !A  )$-j$9) ) !"
$ "'* 	A	A3z?#Fa<<##A $  
[ [~
 "#a'=*:c&k!m*LL $)V#51#5!' |!/ #51 ZZ!
ZZ
#
%#NF dN: z	*aeD+ O9@"\1s   =H*HH