ó
    Ï›‘hÂg  ã                   ó  • S r SSKJr   SSKJr  SSKJr  SSKJ	r	  SSKJ
r
  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  S/r " S S5      rS r " S S5      r\
" \5       " S S5      5       rS rS rS r S r!\
" \5       " S S 5      5       r"\
" \5       " S! S"5      5       r#\" \5       " S# S$\#5      5       r$\" \5       " S% S&\#5      5       r%g'! \ a    S r N÷f = f)(zBasic components support
é    )Údefaultdict)Únotifyc                  ó   • g ©N© )ÚargÚkws     Ú[C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\zope/interface/registry.pyr   r      s   € Øó    )ÚAdapterRegistry)ÚimplementedBy)Úimplementer)Úimplementer_only)Ú
providedBy)Ú	Interface)ÚComponentLookupError)ÚIAdapterRegistration)ÚIComponents)ÚIHandlerRegistration)ÚISpecification)Ú ISubscriptionAdapterRegistration)ÚIUtilityRegistration)Ú
Registered)ÚUnregisteredÚ
Componentsc                   ó,   • \ rS rSrS rS rS rS rSrg)Ú_UnhashableComponentCounteré2   c                 óX   • UR                  5        Vs/ s H  o"PM     snU l        g s  snf r   )ÚitemsÚ_data)ÚselfÚ	otherdictÚitems      r
   Ú__init__Ú$_UnhashableComponentCounter.__init__5   s$   € à'0§¡Ô'8Ó9Ò'8˜t’dÑ'8Ñ9ˆ�
ùÒ9s   “'c                 ó@   • U R                    H  u  p#X!:X  d  M  Us  $    g©Nr   ©r!   )r"   ÚkeyÚ	componentÚcounts       r
   Ú__getitem__Ú'_UnhashableComponentCounter.__getitem__9   s#   € Ø $§
¤
ÑˆIØÕØ’ñ !+ð r   c                 ó®   • [        U R                  5       H   u  p4US   U:X  d  M  X4U R                  U'     g    U R                  R                  X45        g r(   )Ú	enumerater!   Úappend)r"   r+   r,   ÚiÚdatas        r
   Ú__setitem__Ú'_UnhashableComponentCounter.__setitem__?   sM   € Ü  §¡Ö,‰GˆAØ�A‰w˜)Õ#Ø )Ð 0�—
‘
˜1‘Ùñ -ð 	�
‰
×Ñ˜9Ð,Õ-r   c                 ó„   • [        U R                  5       H  u  p#US   U:X  d  M  U R                  U	   g    [        U5      er(   )r0   r!   ÚKeyError)r"   r+   r2   r3   s       r
   Ú__delitem__Ú'_UnhashableComponentCounter.__delitem__F   s>   € Ü  §¡Ö,‰GˆAØ�A‰w˜)Õ#Ø—J‘J˜q�MÙñ -ô �yÓ!Ð!r   r)   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r%   r-   r4   r8   Ú__static_attributes__r   r   r
   r   r   2   s   † ò:òò.õ"r   r   c                  ó    • [        [        5      $ r   )r   Úintr   r   r
   Ú_defaultdict_intrA   N   s   € Ü”sÓÐr   c                   ó>   • \ rS rSrS rS rS rS rS rS r	S r
S	rg
)Ú_UtilityRegistrationséR   c                 ód   • [        [        5      U l        Xl        X l        U R                  5         g r   )r   rA   Ú_cacheÚ
_utilitiesÚ_utility_registrationsÚ%_UtilityRegistrations__populate_cache)r"   Ú	utilitiesÚutility_registrationss      r
   r%   Ú_UtilityRegistrations.__init__T   s&   € ä!Ô"2Ó3ˆŒØ#ŒØ&;Ô#à×ÑÕr   c                 óŽ   • [        U R                  R                  5       5       H  u  u  pnUS   nU R                  X5        M      g r(   )ÚiterrH   r    Ú$_UtilityRegistrations__cache_utility)r"   ÚpÚ_r3   r+   s        r
   Ú__populate_cacheÚ&_UtilityRegistrations.__populate_cache\   s>   € Ü" 4×#>Ñ#>×#DÑ#DÓ#FÖG‰N‰Vˆa�TØ˜Q™ˆIØ× Ñ  Ö.ò Hr   c                 ó¾   •  U R                   U   U==   S-  ss'   g ! [         a5    [        U R                   U   5      =o0R                   U'   X2==   S-  ss'    g f = f)Né   )rF   Ú	TypeErrorr   )r"   Úprovidedr+   Úprovs       r
   Ú__cache_utilityÚ%_UtilityRegistrations.__cache_utilitya   sd   € ð	!Ø�K‰K˜Ñ! )Ó,°Ñ1Ô,øÜó 	!ô ,GØ—‘˜HÑ%ó,ð ˆD—;‘;˜xÑ(ð ‹O˜qÑ �Oð	!ús   ‚ �<AÁAc                 ó^   • U R                   U   nX   nUS-  nUS:X  a  X	 US:„  $ X1U'   US:„  $ )NrU   r   )rF   )r"   rW   r+   r,   s       r
   Ú__uncache_utilityÚ'_UtilityRegistrations.__uncache_utilityl   sP   € Ø—;‘;˜xÑ(ˆð Ñ#ˆØ�‰
ˆØ�A‹:ØÐ#ð �q‰yÐð #(�YÑØ�q‰yÐr   c                 óN   •  U R                   U   U   S:„  $ ! [         a     gf = f)Nr   F)rF   rV   )r"   rW   r+   s      r
   Ú_is_utility_subscribedÚ,_UtilityRegistrations._is_utility_subscribed{   s2   € ð	Ø—;‘;˜xÑ(¨Ñ3°aÑ7Ð7øÜó 	áð	ús   ‚ —
$£$c                 óì   • U R                  X5      nX4U4U R                  X4'   U R                  R                  SXU5        U(       d  U R                  R	                  SX5        U R                  X5        g ©Nr   )r_   rH   rG   ÚregisterÚ	subscriberO   )r"   rW   Únamer+   ÚinfoÚfactoryÚ
subscribeds          r
   ÚregisterUtilityÚ%_UtilityRegistrations.registerUtility‚   so   € Ø×0Ñ0°ÓEˆ
ð ˜WÐ$ð 	×#Ñ#ØÐñ	
ð 	�‰× Ñ   X°YÔ?æØ�O‰O×%Ñ% b¨(Ô>à×Ñ˜XÕ1r   c                 óÂ   • U R                   X4	 U R                  R                  SX5        U R                  X5      nU(       d  U R                  R	                  SX5        g g rb   )rH   rG   Ú
unregisterÚ&_UtilityRegistrations__uncache_utilityÚunsubscribe)r"   rW   re   r+   rh   s        r
   ÚunregisterUtilityÚ'_UtilityRegistrations.unregisterUtility�   sS   € Ø×'Ñ'¨Ð(8Ð9Ø�‰×"Ñ" 2 xÔ6à×+Ñ+¨HÓ@ˆ
æØ�O‰O×'Ñ'¨¨HÕ@ð r   )rF   rG   rH   N)r:   r;   r<   r=   r%   rI   rO   rm   r_   ri   ro   r>   r   r   r
   rC   rC   R   s&   † ò ò/ò
	!òòò2õAr   rC   c                   óh  ^ • \ rS rSrSrS&S jrS rU 4S jrS rS r	\
S 5       rS	 rS
 r\
" S S 5      r  S'S jr  S(S jrS rS)S jrS*S jrS rS r  S+S jr  S,S jrS rS)S jrS*S jr  S)S jrS*S jrS r   S+S jrS r S,S jr S r!   S-S  jr"S! r#S.S" jr$S# r%S/S$ jr&S%r'U =r($ )0r   é™   Nc                 ó¬   • [        U[        5      (       d   eXl        U R                  5         U R	                  5         [        U5      U l        S U l        g r   )Ú
isinstanceÚstrr:   Ú_init_registriesÚ_init_registrationsÚtupleÚ	__bases__Ú_v_utility_registrations_cache)r"   re   Úbasess      r
   r%   ÚComponents.__init__ž   sG   € ô ˜$¤×$Ñ$Ð$Ð$ØŒØ×ÑÔØ× Ñ Ô"Ü˜u›ˆŒØ.2ˆÕ+r   c                 óP   • SU R                   R                   SU R                   S3$ )NÚ<Ú Ú>)Ú	__class__r:   ©r"   s    r
   Ú__repr__ÚComponents.__repr__¨   s&   € Ø�4—>‘>×*Ñ*Ð+¨1¨T¯]©]¨O¸1Ð=Ð=r   c                 óÞ   >• [         TU ]  5       nUS   R                  5        VVs0 s H  u  p#UR                  S5      (       a  M  X#_M!     nnn[	        U5      nXAS'   [        U5      $ s  snnf )Né   Ú_v_)ÚsuperÚ
__reduce__r    Ú
startswithÚlistrx   )r"   Ú	reductionÚkÚvÚfiltered_stater�   s        €r
   r‰   ÚComponents.__reduce__«   sp   ø€ ô
 ‘GÑ&Ó(ˆ	ð ,5°Q©<×+=Ñ+=Ô+?ô 6Ò+?¡4 1Ø!"§¡¨e×!4ó ˜!š$Ñ+?ˆñ 6ä˜“Oˆ	Ø%�!‰Ü�YÓÐùó	6s   ¦A)ÁA)c                 ó@   • [        5       U l        [        5       U l        g r   )r   ÚadaptersrJ   r‚   s    r
   rv   ÚComponents._init_registriesº   s   € ô (Ó)ˆŒÜ(Ó*ˆ�r   c                 ó<   • 0 U l         0 U l        / U l        / U l        g r   )rH   Ú_adapter_registrationsÚ_subscription_registrationsÚ_handler_registrationsr‚   s    r
   rw   ÚComponents._init_registrationsÀ   s"   € Ø&(ˆÔ#Ø&(ˆÔ#Ø+-ˆÔ(Ø&(ˆÕ#r   c                 óÔ   • U R                   nUb2  UR                  U R                  Ld  UR                  U R                  La&  [	        U R                  U R                  5      =ol         U$ r   )rz   rG   rJ   rH   rC   )r"   Úcaches     r
   Ú_utility_registrations_cacheÚ'Components._utility_registrations_cacheÆ   sd   € ð ×3Ñ3ˆà‰MØ×Ñ D§N¡NÒ2Ø×(Ñ(°×0KÑ0KÒKô &Ø—N‘N D×$?Ñ$?óðˆEÔ7ð
 ˆr   c                 ó:   • U R                   R                  SS5      $ )Nry   r   )Ú__dict__Úgetr‚   s    r
   Ú	_getBasesÚComponents._getBases×   s   € à�}‰}× Ñ  ¨bÓ1Ð1r   c                 ó  • [        U Vs/ s H  o"R                  PM     sn5      U R                  l        [        U Vs/ s H  o"R                  PM     sn5      U R                  l        [        U5      U R                  S'   g s  snf s  snf )Nry   )rx   r’   ry   rJ   rž   )r"   r{   Úbases      r
   Ú	_setBasesÚComponents._setBasesÛ   sr   € ä"'Ù&+ó)-Ú&+˜d�MŒM¡eñ)-ó #.ˆ�‰Ôä#(Ù',ó*.Ú',˜t�NŒN¡uñ*.ó $/ˆ�‰Ô ä%*¨5£\ˆ�‰�kÒ"ùò	)-ùò*.s
   ŠB¾Bc                 ó"   • U R                  5       $ r   )r    r‚   s    r
   Ú<lambda>ÚComponents.<lambda>ä   s   € �T—^‘^Ô%r   c                 ó$   • U R                  U5      $ r   )r¤   )r"   r{   s     r
   r§   r¨   å   s   € ˜DŸN™N¨5Ô1r   c                 óˆ  • U(       a  U(       a  [        S5      eU" 5       nUc  [        U5      nUS:X  a  [        U5      nU R                  R	                  X#45      nUb   US S X4:X  a  g U R                  US   X#5        U R                  R                  X#XU5        U(       a   [        [        [        XX1XF5      5      5        g g )Nú$Can't specify factory and component.Ú r†   r   )rV   Ú_getUtilityProvidedÚ_getNamerH   rŸ   ro   r›   ri   r   r   ÚUtilityRegistration)r"   r+   rW   re   rf   Úeventrg   Úregs           r
   ri   ÚComponents.registerUtilityè   sÆ   € æÞÜÐ FÓGÐGÙ›	ˆIàÑÜ*¨9Ó5ˆHà�2‹:Ü˜IÓ&ˆDà×)Ñ)×-Ñ-¨xÐ.>Ó?ˆØ‰?Ø�2�Aˆw˜9Ð+Ó+àØ×"Ñ" 3 q¡6¨8Ô:à×)Ñ)×9Ñ9Ø˜I¨Wô	6ö Ü”:Ü#Ø D°TóDóõ ð r   c           
      ó^  • U(       a  U(       a  [        S5      eU" 5       nUc  Uc  [        S5      e[        U5      nU R                  R                  X#45      nUb  Ub	  XS   :w  a  gUc  US   nU R                  R                  X#U5        [        [        [        XX1/USS  Q76 5      5        g)Nr«   z3Must specify one of component, factory and providedr   FrU   T)	rV   r­   rH   rŸ   r›   ro   r   r   r¯   )r"   r+   rW   re   rg   Úolds         r
   ro   ÚComponents.unregisterUtility  sÈ   € æÞÜÐ FÓGÐGÙ›	ˆIàÑØÑ Üð !+ó ,ð ,ä*¨9Ó5ˆHà×)Ñ)×-Ñ-¨xÐ.>Ó?ˆØ‰K˜iÑ3Ø'¨q©6Ó1ØàÑØ˜A™ˆIð 	×)Ñ)×;Ñ;Ø˜Iô	'ô 	Œ|Ü °ÐJÀ#ÀaÀbÀ'ÒJó
ô 	ð r   c              #   óˆ   #   • [        U R                  R                  5       5       H  u  u  pn[        XU/UQ76 v •  M     g 7fr   )rN   rH   r    r¯   )r"   rW   re   r3   s       r
   ÚregisteredUtilitiesÚComponents.registeredUtilities$  s?   é € ä�t×2Ñ2×8Ñ8Ó:Ö;ñÑˆh˜tä% d°dÐB¸TÒBÔBò <ùs   ‚A Ac                 ó<   • U R                   R                  SXU5      $ rb   )rJ   Úlookup)r"   rW   re   Údefaults       r
   ÚqueryUtilityÚComponents.queryUtility)  s   € Ø�~‰~×$Ñ$ R¨¸ÓAÐAr   c                 óZ   • U R                   R                  SX5      nUc  [        X5      eU$ rb   )rJ   rº   r   )r"   rW   re   Úutilitys       r
   Ú
getUtilityÚComponents.getUtility,  s-   € Ø—.‘.×'Ñ'¨¨HÓ;ˆØ‰?Ü& xÓ6Ð6Øˆr   c              #   óX   #   • U R                   R                  SU5       S h  v•N   g  N7frb   )rJ   Ú	lookupAll©r"   Ú	interfaces     r
   ÚgetUtilitiesForÚComponents.getUtilitiesFor2  s   é € Ø—>‘>×+Ñ+¨B°	Ó:×:Ó:ùs   ‚ *¢(£*c                 ó:   • U R                   R                  SU5      $ rb   )rJ   ÚsubscriptionsrÄ   s     r
   ÚgetAllUtilitiesRegisteredForÚ'Components.getAllUtilitiesRegisteredFor5  s   € Ø�~‰~×+Ñ+¨B°	Ó:Ð:r   c                 ó  • Uc  [        U5      n[        X5      nUS:X  a  [        U5      nX4U R                  X#U4'   U R                  R                  X#XA5        U(       a   [        [        [        XX4X5      5      5        g g ©Nr¬   )	Ú_getAdapterProvidedÚ_getAdapterRequiredr®   r•   r’   rc   r   r   ÚAdapterRegistration©r"   rg   ÚrequiredrW   re   rf   r°   s          r
   ÚregisterAdapterÚComponents.registerAdapter8  sƒ   € àÑÜ*¨7Ó3ˆHÜ& wÓ9ˆØ�2‹:Ü˜GÓ$ˆDà(/¨ð 	×#Ñ# X¸Ð$>ñ 	&à�‰×Ñ˜x°4ÔAæÜ”:Ü#Ø H°Góóõ ð r   c           
      ó`  • Uc  Uc  [        S5      e[        U5      nUc  Uc  [        S5      e[        X5      nU R                  R	                  X#U45      nUb  Ub	  XS   :w  a  gU R                  X#U4	 U R
                  R                  X#U5        [        [        [        XX4/UQ76 5      5        g)Nú(Must specify one of factory and providedú(Must specify one of factory and requiredr   FT)
rV   rÎ   rÏ   r•   rŸ   r’   rl   r   r   rÐ   )r"   rg   rÒ   rW   re   r´   s         r
   ÚunregisterAdapterÚComponents.unregisterAdapterJ  sÁ   € ð ÑØ‰ÜÐ JÓKÐKÜ*¨7Ó3ˆHàÑ 7¡?ÜÐFÓGÐGä& wÓ9ˆØ×)Ñ)×-Ñ-¨xÀ4Ð.HÓIˆØ‰K˜gÑ1Ø%¨Q©Ó/Øà×'Ñ'¨¸TÐ(BÐCØ�‰× Ñ  °TÔ:äŒ|Ü °ÐEÀÒEó
ô 	ð r   c           	   #   óŽ   #   • [        U R                  R                  5       5       H  u  u  pnu  pE[        XX#XE5      v •  M     g 7fr   )rN   r•   r    rÐ   )r"   rÒ   rW   re   r+   rf   s         r
   ÚregisteredAdaptersÚComponents.registeredAdaptersd  sF   é € ä�t×2Ñ2×8Ñ8Ó:Ö;ñÑ'ˆh $Ñ):¨)ä% d°hØ&/ó7ô 7ò <ùs   ‚AAc                 ó:   • U R                   R                  XX45      $ r   )r’   ÚqueryAdapter)r"   ÚobjectrÅ   re   r»   s        r
   rÞ   ÚComponents.queryAdapterj  s   € Ø�}‰}×)Ñ)¨&¸TÓKÐKr   c                 ó\   • U R                   R                  XU5      nUc  [        XU5      eU$ r   )r’   rÞ   r   )r"   rß   rÅ   re   Úadapters        r
   Ú
getAdapterÚComponents.getAdapterm  s/   € Ø—-‘-×,Ñ,¨VÀÓEˆØ‰?Ü& v¸$Ó?Ð?Øˆr   c                 ó:   • U R                   R                  XX45      $ r   )r’   ÚqueryMultiAdapter)r"   ÚobjectsrÅ   re   r»   s        r
   ræ   ÚComponents.queryMultiAdapters  s   € à�}‰}×.Ñ.Ø ó/ð 	/r   c                 ó\   • U R                   R                  XU5      nUc  [        XU5      eU$ r   )r’   ræ   r   )r"   rç   rÅ   re   râ   s        r
   ÚgetMultiAdapterÚComponents.getMultiAdapterx  s/   € Ø—-‘-×1Ñ1°'ÀdÓKˆØ‰?Ü& w¸4Ó@Ð@Øˆr   c              #   ó¢   #   • U R                   R                  [        [        [        U5      5      U5       H  u  p4U" U6 nUc  M  X54v •  M     g 7fr   )r’   rÃ   r‹   Úmapr   )r"   rç   rW   re   rg   râ   s         r
   ÚgetAdaptersÚComponents.getAdapters~  sK   é € Ø!Ÿ]™]×4Ñ4Ü””Z Ó)Ó*¨Hö
‰MˆDñ ˜wÐ'ˆGØÓ"Ø�mÔ#ò
ùs   ‚?AÁ
Ac                 ó  • U(       a  [        S5      eUc  [        U5      n[        X5      nU R                  R	                  X#XAU45        U R
                  R                  X#U5        U(       a   [        [        [        XX4X5      5      5        g g )Nú'Named subscribers are not yet supported)
rV   rÎ   rÏ   r–   r1   r’   rd   r   r   ÚSubscriptionRegistrationrÑ   s          r
   ÚregisterSubscriptionAdapterÚ&Components.registerSubscriptionAdapter†  s‡   € ö ÜÐEÓFÐFØÑÜ*¨7Ó3ˆHÜ& wÓ9ˆØ×(Ñ(×/Ñ/Ø °Ð5ô	
ð 	�‰×Ñ °GÔ<æÜ”:Ü(Ø H°Góóõ ð r   c              #   óN   #   • U R                    H  n[        U /UQ76 v •  M     g 7fr   )r–   rò   ©r"   r3   s     r
   ÚregisteredSubscriptionAdaptersÚ)Components.registeredSubscriptionAdapters›  s%   é € Ø×4Ô4ˆDÜ*¨4Ð7°$Ò7Ô7ò 5ùó   ‚#%c                 ó„  • U(       a  [        S5      eUc  Uc  [        S5      e[        U5      nUc  Uc  [        S5      e[        X5      nUc8  U R                   VVVVV	s/ s H  u  pVpxn	XR:X  a  Xc:X  a  M  XVXxU	4PM     n
nnnnn	O<U R                   VVVVV	s/ s H  u  pVpxn	XR:X  a  Xc:X  a  X�:X  a  M  XVXxU	4PM     n
nnnnn	[	        U
5      [	        U R                  5      :X  a  gX R                  S S & U R
                  R                  X#U5        [        [        [        XX4US5      5      5        gs  sn	nnnnf s  sn	nnnnf )Nrñ   rÖ   r×   Fr¬   T)
rV   rÎ   rÏ   r–   Úlenr’   rn   r   r   rò   )r"   rg   rÒ   rW   re   ÚrrP   ÚnÚfr2   Únews              r
   ÚunregisterSubscriptionAdapterÚ(Components.unregisterSubscriptionAdapterŸ  sP  € ö ÜÐEÓFÐFØÑØ‰ÜÐ JÓKÐKÜ*¨7Ó3ˆHàÑ 7¡?ÜÐFÓGÐGä& wÓ9ˆà‰?ð ×6Ò6÷â6ñ '˜˜a Aà›=¨Q©]ó #�A˜! “?á6ð ô ˆCð ×6Ò6÷â6ñ '˜˜a Aà›=¨Q«]¸q¹|ó #�A˜! “?á6ð ô ô ˆs‹8”s˜4×;Ñ;Ó<Ó<Øà.1×(Ñ(©Ð+Ø�‰×!Ñ! (°gÔ>äŒ|Ü$Ø °¸óó
ô 	ð ùö1ùös   Á D0Á6	D0ÂD9Â3	D9c                 ó8   • U R                   R                  X5      $ r   ©r’   Úsubscribers)r"   rç   rW   s      r
   r  ÚComponents.subscribersÉ  s   € Ø�}‰}×(Ñ(¨Ó;Ð;r   c                 ó   • U(       a  [        S5      e[        X5      nU R                  R                  X#X45        U R                  R                  US U5        U(       a   [        [        [        XX1U5      5      5        g g )Nz$Named handlers are not yet supported)	rV   rÏ   r—   r1   r’   rd   r   r   ÚHandlerRegistration)r"   rg   rÒ   re   rf   r°   s         r
   ÚregisterHandlerÚComponents.registerHandlerÌ  st   € ö ÜÐBÓCÐCÜ& wÓ9ˆØ×#Ñ#×*Ñ*Ø˜WÐ+ô	
ð 	�‰×Ñ ¨$°Ô8æÜ”:Ü# D°DÀ4ÓHóõ ð r   c              #   óN   #   • U R                    H  n[        U /UQ76 v •  M     g 7fr   )r—   r  rö   s     r
   ÚregisteredHandlersÚComponents.registeredHandlersÝ  s%   é € Ø×/Ô/ˆDÜ% dÐ2¨TÒ2Ô2ò 0ùrù   c                 ó$  • U(       a  [        S5      eUc  Uc  [        S5      e[        X5      nUc/  U R                   VVVVs/ s H  u  pEpgXB:w  d  M  XEXg4PM     nnnnnO3U R                   VVVVs/ s H  u  pEpgXB:X  a  Xa:X  a  M  XEXg4PM     nnnnn[        U5      [        U R                  5      :X  a  gX€R                  S S & U R                  R                  US U5        [        [        [        XX1S5      5      5        gs  snnnnf s  snnnnf )Nrñ   r×   Fr¬   T)	rV   rÏ   r—   rû   r’   rn   r   r   r  )	r"   rg   rÒ   re   rü   rý   rþ   r2   rÿ   s	            r
   ÚunregisterHandlerÚComponents.unregisterHandlerá  s  € ÞÜÐEÓFÐFàÑ 7¡?ÜÐFÓGÐGä& wÓ9ˆà‰?ð ×1Ò1öâ1ñ $˜˜aà‘mó  �A˜!“<á1ð ó ˆCð ×1Ò1öâ1ñ $˜˜aà›=¨Q©\ó  �A˜!“<á1ð ó ô ˆs‹8”s˜4×6Ñ6Ó7Ó7Øà),×#Ñ#¡AÐ&Ø�‰×!Ñ! (¨D°'Ô:äŒ|Ü °¸rÓBó
ô 	ð ùõ-ùõs   ÁD
ÁD
Á2D

ÂD

c                 ó<   • U R                   R                  US 5        g r   r  )r"   rç   s     r
   ÚhandleÚComponents.handle  s   € Ø�‰×!Ñ! '¨4Õ0r   c                 ór  • [        U R                  5      nU R                  nSnSnSnSnSUR                  ;  d   eS Ul        U(       a  UR
                  nUR                  n	OS =p‰ UR                  5        H^  u  u  p«u  pÍnUR                  SX«5      U:w  a  U" SX«U5        US-  nOUS-  nUR                  SX¬5      c  US-  nU	" SX¬5        MY  US-  nM`     U?U(       a  U(       d  U(       a  UR	                  U5        UUUUS.$ ! U?U(       a!  U(       d  U(       a  UR	                  U5        f f f = f)ad  
Emergency maintenance method to rebuild the ``.utilities``
registry from the local copy maintained in this object, or
detect the need to do so.

Most users will never need to call this, but it can be helpful
in the event of suspected corruption.

By default, this method only checks for corruption. To make it
actually rebuild the registry, pass `True` for *rebuild*.

:param bool rebuild: If set to `True` (not the default),
   this method will actually register and subscribe utilities
   in the registry as needed to synchronize with the local cache.

:return: A dictionary that's meant as diagnostic data. The keys
   and values may change over time. When called with a false
   *rebuild*, the keys ``"needed_registered"`` and
   ``"needed_subscribed"`` will be non-zero if any corruption was
   detected, but that will not be corrected.

.. versionadded:: 5.3.0
r   Úchangedc                 ó   • g r   r   )rQ   s    r
   r§   ÚAComponents.rebuildUtilityRegistryFromLocalCache.<locals>.<lambda>(  s   €  $r   c                  ó   • g r   r   )Úargss    r
   r§   r  .  s   € °r   r   rU   )Úneeded_registeredÚdid_not_registerÚneeded_subscribedÚdid_not_subscribe)
ÚdictrH   rJ   rž   r  rc   rd   r    Ú
registeredrh   )r"   ÚrebuildÚregsÚutilsr  r  r  r  rc   rd   rW   re   ÚvalueÚ_infoÚ_factorys                  r
   Ú$rebuildUtilityRegistryFromLocalCacheÚ/Components.rebuildUtilityRegistryFromLocalCache  sT  € ô0 �D×/Ñ/Ó0ˆØ—‘ˆØÐØÐØÐØÐð  §¡Ó.Ð.Ð.Ù&ˆŒæØ—~‘~ˆHØŸ™‰Iá#5Ð5ˆHð	%Ø>B¿j¹j¾lÑ:Ñ �Ñ": 5°Ø×#Ñ# B¨Ó7¸5Ó@Ù˜R °Ô7Ø%¨Ñ*Ñ%à$¨Ñ)Ð$à×#Ñ# B¨Ó8Ñ@Ø%¨Ñ*Ð%Ù˜b (Ö2à%¨Ñ*Ò%ñ ?Kð �ÞÖ-Ö1BØ—‘˜eÔ$ð "3Ø 0Ø!2Ø!2ñ	
ð 	
øð	 �ÞÖ-Ö1BØ—‘˜eÕ$ð 2Cˆwús   Á)A2D
 Ä
,D6)	ry   r:   r•   r—   r–   rH   rz   r’   rJ   )r¬   r   )NNr¬   r¬   TN)NNr¬   N)r¬   N)r¬   )NNr¬   r¬   T)NNNr¬   )Nr¬   r¬   T)NNr¬   )F))r:   r;   r<   r=   rz   r%   rƒ   r‰   rv   rw   Úpropertyr›   r    r¤   ry   ri   ro   r·   r¼   rÀ   rÆ   rÊ   rÓ   rØ   rÛ   rÞ   rã   ræ   rê   rî   ró   r÷   r   r  r  r  r  r  r%  r>   Ú__classcell__)r�   s   @r
   r   r   ™   s%  ø† ð &*Ð"ô3ò>õ ò+ò)ð ñó ðò 2ò2ñ Ù%Ù1ó€Ið
 CEØ59ôð: EGØ"&ôò>Cô
Bôò;ò;ð @DØ04ôð$ )-Ø=?ôò47ôLôð :<Ø"&ô/ô
ò$ð FJØ24Ø*.ôò*8ð
 @Bô(òT<ð +/Ø&(Ø"ôò"3ô òD1÷A
ò A
r   c                 ó<   •  U R                   $ ! [         a     gf = frÍ   )Ú__component_name__ÚAttributeError)r+   s    r
   r®   r®   J  s%   € ðØ×+Ñ+Ð+øÜó Ùðús   ‚ Ž
šc                 óh   • [        [        U 5      5      n[        U5      S:X  a  US   $ [        S5      e)NrU   r   zWThe utility doesn't provide a single interface and no provided interface was specified.)r‹   r   rû   rV   )r+   rW   s     r
   r­   r­   Q  s9   € Ü”J˜yÓ)Ó*€HÜ
ˆ8ƒ}˜ÓØ˜‰{ÐÜ
ð	3óð r   c                 óh   • [        [        U 5      5      n[        U5      S:X  a  US   $ [        S5      e)NrU   r   zaThe adapter factory doesn't implement a single interface and no provided interface was specified.)r‹   r   rû   rV   )rg   rW   s     r
   rÎ   rÎ   [  s9   € Ü”M 'Ó*Ó+€HÜ
ˆ8ƒ}˜ÓØ˜‰{ÐÜ
ð	3óð r   c                 óª  • Uc   U R                   nO&[        R                  " U5      (       a  [        S5      e/ nU Hq  nUc  [
        nOS[        R                  " U5      (       d8  [        U[        5      (       a  [        U5      nO[        S[        U5      -  5      eUR                  U5        Ms     [        U5      $ ! [         a    [        S5      ef = f)NzoThe adapter factory doesn't have a __component_adapts__ attribute and no required specifications were specifiedzLthe required argument should be a list of interfaces, not a single interfacez?Required specification must be a specification or class, not %r)Ú__component_adapts__r+  rV   r   r   r   rt   Útyper   r1   rx   )rg   rÒ   Úresultrü   s       r
   rÏ   rÏ   e  sÜ   € ØÑð	Ø×3Ñ3‰Hô 
×	"Ò	" 8×	,Ñ	,Üð1ó
ð 	
ð
 €FÛˆØ‰9Ü‰AÜ×*Ò*¨1×-Ñ-Ü˜!œT×"Ñ"Ü! !Ó$‘äð5Ü7;¸A³wñ?óð ð 	�‰�aÖñ ô �‹=Ðøô1 ó 	ÜðJóð ð	ús   …B< Â<Cc                   óN   • \ rS rSrSS jrS rS rS rS rS r	S	 r
S
 rS rSrg)r¯   i„  Nc                 óL   • Xl         X l        X0l        X@l        XPl        X`l        g r   )ÚregistryrW   re   r+   rf   rg   )r"   r4  rW   re   r+   Údocrg   s          r
   r%   ÚUtilityRegistration.__init__‡  s    € Ø ŒØ ŒØŒ	Ø"ŒØŒ	Ø�r   c                 ó"  • SR                  U R                  R                  U R                  [	        U R
                  SS 5      U R                  [	        U R                  S[        U R                  5      5      U R                  U R                  5      $ )Nz"{}({!r}, {}, {!r}, {}, {!r}, {!r})r:   )Úformatr�   r:   r4  ÚgetattrrW   re   r+   Úreprrg   rf   r‚   s    r
   rƒ   ÚUtilityRegistration.__repr__�  se   € Ø3×:Ñ:Ø�N‰N×#Ñ#Ø�M‰MÜ�D—M‘M :¨tÓ4°d·i±iÜ�D—N‘N J´°T·^±^Ó0DÓEØ�L‰L˜$Ÿ)™)ó
ð 	
r   c                 ó   • [        U 5      $ r   ©Úidr‚   s    r
   Ú__hash__ÚUtilityRegistration.__hash__˜  ó   € Ü�$‹xˆr   c                 ó0   • [        U 5      [        U5      :H  $ r   ©r:  ©r"   Úothers     r
   Ú__eq__ÚUtilityRegistration.__eq__›  ó   € Ü�D‹zœT %›[Ñ(Ð(r   c                 ó0   • [        U 5      [        U5      :g  $ r   rC  rD  s     r
   Ú__ne__ÚUtilityRegistration.__ne__ž  rH  r   c                 ó0   • [        U 5      [        U5      :  $ r   rC  rD  s     r
   Ú__lt__ÚUtilityRegistration.__lt__¡  ó   € Ü�D‹zœD ›KÑ'Ð'r   c                 ó0   • [        U 5      [        U5      :*  $ r   rC  rD  s     r
   Ú__le__ÚUtilityRegistration.__le__¤  rH  r   c                 ó0   • [        U 5      [        U5      :„  $ r   rC  rD  s     r
   Ú__gt__ÚUtilityRegistration.__gt__§  rO  r   c                 ó0   • [        U 5      [        U5      :¬  $ r   rC  rD  s     r
   Ú__ge__ÚUtilityRegistration.__ge__ª  rH  r   )r+   rg   rf   re   rW   r4  r   ©r:   r;   r<   r=   r%   rƒ   r?  rF  rJ  rM  rQ  rT  rW  r>   r   r   r
   r¯   r¯   „  s/   † ôò
òò)ò)ò(ò)ò(õ)r   r¯   c                   óJ   • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)rÐ   i®  c                 óX   • XX4XV4u  U l         U l        U l        U l        U l        U l        g r   )r4  rÒ   rW   re   rg   rf   )r"   r4  rÒ   rW   re   r+   r5  s          r
   r%   ÚAdapterRegistration.__init__±  s,   € ð  °Ð?ñ	ˆŒ˜œ t¤}°d´iØ	Œ�t•yr   c                 óŠ  • SR                  U R                  R                  U R                  SSR	                  U R
                   Vs/ s H  oR                  PM     sn5      -   S-   [        U R                  SS 5      U R                  [        U R                  S[        U R                  5      5      U R                  5      $ s  snf )Nz {}({!r}, {}, {}, {!r}, {}, {!r})Ú[ú, Ú]r:   )r8  r�   r:   r4  ÚjoinrÒ   r9  rW   re   rg   r:  rf   ©r"   rü   s     r
   rƒ   ÚAdapterRegistration.__repr__¶  s�   € Ø1×8Ñ8Ø�N‰N×#Ñ#Ø�M‰MØ�$—)‘)°·²Ó?²¨AŸZœZ±Ñ?Ó@Ñ@À3ÑFÜ�D—M‘M :¨tÓ4°d·i±iÜ�D—L‘L *¬d°4·<±<Ó.@ÓAÀ4Ç9Á9ó
ð 	
ùò @s   ÁC c                 ó   • [        U 5      $ r   r=  r‚   s    r
   r?  ÚAdapterRegistration.__hash__¿  rA  r   c                 ó0   • [        U 5      [        U5      :H  $ r   rC  rD  s     r
   rF  ÚAdapterRegistration.__eq__Â  rH  r   c                 ó0   • [        U 5      [        U5      :g  $ r   rC  rD  s     r
   rJ  ÚAdapterRegistration.__ne__Å  rH  r   c                 ó0   • [        U 5      [        U5      :  $ r   rC  rD  s     r
   rM  ÚAdapterRegistration.__lt__È  rO  r   c                 ó0   • [        U 5      [        U5      :*  $ r   rC  rD  s     r
   rQ  ÚAdapterRegistration.__le__Ë  rH  r   c                 ó0   • [        U 5      [        U5      :„  $ r   rC  rD  s     r
   rT  ÚAdapterRegistration.__gt__Î  rO  r   c                 ó0   • [        U 5      [        U5      :¬  $ r   rC  rD  s     r
   rW  ÚAdapterRegistration.__ge__Ñ  rH  r   )rg   rf   re   rW   r4  rÒ   NrY  r   r   r
   rÐ   rÐ   ®  s0   † ò@ò

òò)ò)ò(ò)ò(õ)r   rÐ   c                   ó   • \ rS rSrSrg)rò   iÕ  r   N)r:   r;   r<   r=   r>   r   r   r
   rò   rò   Õ  s   † âr   rò   c                   ó4   • \ rS rSrS r\S 5       rSrS rSr	g)r  iÚ  c                 óL   • XX4U4u  U l         U l        U l        U l        U l        g r   )r4  rÒ   re   Úhandlerrf   )r"   r4  rÒ   re   ru  r5  s         r
   r%   ÚHandlerRegistration.__init__Ý  s%   € à °Ð3ñ	ˆŒ˜œ t¤y°$´,ÀÅ	r   c                 ó   • U R                   $ r   )ru  r‚   s    r
   rg   ÚHandlerRegistration.factoryá  s   € à�|‰|Ðr   Nc                 ó^  • SR                  U R                  R                  U R                  SSR	                  U R
                   Vs/ s H  oR                  PM     sn5      -   S-   U R                  [        U R                  S[        U R                  5      5      U R                  5      $ s  snf )Nz{}({!r}, {}, {!r}, {}, {!r})r^  r_  r`  r:   )r8  r�   r:   r4  ra  rÒ   re   r9  rg   r:  rf   rb  s     r
   rƒ   ÚHandlerRegistration.__repr__ç  s€   € Ø-×4Ñ4Ø�N‰N×#Ñ#Ø�M‰MØ�$—)‘)°·²Ó?²¨AŸZœZ±Ñ?Ó@Ñ@À3ÑFØ�I‰IÜ�D—L‘L *¬d°4·<±<Ó.@ÓAÀ4Ç9Á9ó
ð 	
ùò @s   ÁB*)ru  rf   re   r4  rÒ   )
r:   r;   r<   r=   r%   r'  rg   rW   rƒ   r>   r   r   r
   r  r  Ú  s'   † ò4ð ñó ðð €Hõ
r   r  N)&Ú__doc__Úcollectionsr   Ú
zope.eventr   ÚImportErrorÚzope.interface.adapterr   Úzope.interface.declarationsr   r   r   r   Úzope.interface.interfacer   Úzope.interface.interfacesr   r   r   r   r   r   r   r   r   Ú__all__r   rA   rC   r   r®   r­   rÎ   rÏ   r¯   rÐ   rò   r  r   r   r
   Ú<module>r„     s?  ðñå #ðÝ!õ
 3Ý 5Ý 3Ý 8Ý 2Ý .Ý :Ý :Ý 1Ý :Ý 4Ý FÝ :Ý 0Ý 2ð ð	€÷"ñ "ò8÷DAñ DAñN ˆ[Ó÷m
ð m
ó ðm
ò`òòòñ> Ð!Ó"÷&)ð &)ó #ð&)ñR Ð!Ó"÷#)ð #)ó #ð#)ñL Ð2Ó3ô	Ð2ó 	ó 4ð	ñ Ð&Ó'ô
Ð-ó 
ó (ñ
øðM ó ôðús   ŠC< Ã<	DÄD