+
    ‡)Ùj§2  ã                   ó¸   € ^ RI Ht ^ RIHt ^ RIHt ^ RIHtHtH	t	 ]! 4       t
 ! R R4      t ! R R]4      t ! R	 R
]4      t ! R R]4      t ! R R]4      tR# )é    )Úsync_to_async)Úget_user_model)Ú
Permission)ÚExistsÚOuterRefÚQc                   óˆ   a € ] tR t^
t o R 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
 ltRR ltRR ltRR ltRtV tR# )ÚBaseBackendc                ó   € R # ©N© ©ÚselfÚrequestÚkwargss   &&,ÚU/var/www/eggtrainer/venv/lib/python3.14/site-packages/django/contrib/auth/backends.pyÚauthenticateÚBaseBackend.authenticate   ó   € Ùó    c              ‹  óV   "  € \        V P                  4      ! V3/ VB G R j  x€L
 #  L5ir   )r   r   r   s   &&,r   ÚaauthenticateÚBaseBackend.aauthenticate   s&   é € Ü" 4×#4Ñ#4Ô5°gÑHÀÑH×HÐHÑHùó   ‚ )¢'£)c                ó   € R # r   r   ©r   Úuser_ids   &&r   Úget_userÚBaseBackend.get_user   r   r   c              ƒ  óT   "  € \        V P                  4      ! V4      G R j  x€L
 #  L5ir   )r   r   r   s   &&r   Ú	aget_userÚBaseBackend.aget_user   s   é € Ü" 4§=¡=Ô1°'Ó:×:Ð:Ñ:ùó   ‚(¡&¢(Nc                ó   € \        4       # r   ©Úset©r   Úuser_objÚobjs   &&&r   Úget_user_permissionsÚ BaseBackend.get_user_permissions   ó	   € Ü‹uˆr   c              ƒ  óT   "  € \        V P                  4      ! W4      G R j  x€L
 #  L5ir   )r   r*   r'   s   &&&r   Úaget_user_permissionsÚ!BaseBackend.aget_user_permissions   s!   é € Ü" 4×#<Ñ#<Ô=¸hÓL×LÐLÑLùr#   c                ó   € \        4       # r   r%   r'   s   &&&r   Úget_group_permissionsÚ!BaseBackend.get_group_permissions   r,   r   c              ƒ  óT   "  € \        V P                  4      ! W4      G R j  x€L
 #  L5ir   )r   r1   r'   s   &&&r   Úaget_group_permissionsÚ"BaseBackend.aget_group_permissions    s!   é € Ü" 4×#=Ñ#=Ô>¸xÓM×MÐMÑMùr#   c                óN   € 0 V P                  WR 7      mV P                  WR 7      m# ©©r)   )r*   r1   r'   s   &&&r   Úget_all_permissionsÚBaseBackend.get_all_permissions#   s8   € ð
Ø×&Ñ& xÐ&Ó9ð
à×'Ñ'¨Ð'Ó:ð
ð 	
r   c              ƒ  ó~   "  € 0 V P                  WR 7      G Rj  x€L
 mV P                  WR 7      G Rj  x€L
 m#  L L5i©r8   N)r.   r4   r'   s   &&&r   Úaget_all_permissionsÚ BaseBackend.aget_all_permissions)   sG   é € ð
Ø×-Ñ-¨hÐ-Ó@×@ð
à×.Ñ.¨xÐ.ÓA×Að
ð 	
Ù@ÙAùs   ‚=™9š=³;´=»=c                ó*   € W P                  WR 7      9   # r7   )r9   ©r   r(   Úpermr)   s   &&&&r   Úhas_permÚBaseBackend.has_perm/   s   € Ø×/Ñ/°Ð/ÓBÑBÐBr   c              ƒ  óD   "  € Y P                  W4      G R j  x€L
 9   #  L5ir   )r=   r@   s   &&&&r   Ú	ahas_permÚBaseBackend.ahas_perm2   s   é € Ø×6Ñ6°xÓE×EÑEÐEÑEùs   ‚ —˜ r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   r!   r*   r.   r1   r4   r9   r=   rB   rE   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r
   r
   
   sL   ø‡ € òòIòò;ôôMôôNô
ô
ôC÷Fò Fr   r
   c                   óÖ   a a€ ] tR t^6t oRtRR ltRR ltR tR tR t	R t
R tRR	 ltRR
 ltRR ltRR ltRV 3R lltRV 3R lltRV 3R lltR tR tRR ltR tR tRtVtV ;t# )ÚModelBackendz1
Authenticates against settings.AUTH_USER_MODEL.
c                ón  € Vf    VP                  \        P                  4      pVe   Vf   R #  \        P                  P	                  V4      pVP                  V4      '       d   V P                  V4      '       d   V# R # R #   \        P                   d    \        4       P                  T4        R # i ; ir   )	ÚgetÚ	UserModelÚUSERNAME_FIELDÚ_default_managerÚget_by_natural_keyÚcheck_passwordÚuser_can_authenticateÚDoesNotExistÚset_password©r   r   ÚusernameÚpasswordr   Úusers   &&&&, r   r   ÚModelBackend.authenticate;   sŸ   € ØÒØ—z‘z¤)×":Ñ":Ó;ˆHØÒ˜xÒ/Ùð	Ü×-Ñ-×@Ñ@ÀÓJˆDð ×"Ñ" 8×,Ò,°×1KÑ1KÈD×1QÒ1QØ�ñ 2RÑ,øô ×%Ñ%ô 	/ô ‹K×$Ñ$ X×.ð	/ús   ¯B Â.B4Â3B4c              ‹  óž  "  € Vf    VP                  \        P                  4      pVe   Vf   R #  \        P                  P	                  V4      G R j  x€L
 pVP                  V4      G R j  x€L
 '       d   V P                  V4      '       d   V# R # R #  L@ L)  \        P                   d    \        4       P                  T4        R # i ; i5ir   )	rR   rS   rT   rU   Úaget_by_natural_keyÚacheck_passwordrX   rY   rZ   r[   s   &&&&, r   r   ÚModelBackend.aauthenticateJ   s¸   é € ØÒØ—z‘z¤)×":Ñ":Ó;ˆHØÒ˜xÒ/Ùð
	Ü"×3Ñ3×GÑGÈÓQ×QˆDð ×)Ñ)¨(Ó3×3Ö3¸×8RÑ8RØ÷9ò 9ð �ñ9Ñ3ñ Rñ 4øô ×%Ñ%ô 	/ô ‹K×$Ñ$ X×.ð	/üsX   ‚.C±"B ÁBÁB ÁCÁ,BÁ-	CÁ7CÂCÂB ÂCÂ.C
ÃCÃ	C
Ã
Cc                ó   € \        VRR4      # )zc
Reject users with is_active=False. Custom user models that don't have
that attribute are allowed.
Ú	is_activeT)Úgetattr©r   r^   s   &&r   rX   Ú"ModelBackend.user_can_authenticate[   s   € ô
 �t˜[¨$Ó/Ð/r   c                ó6   € VP                   P                  4       # r   )Úuser_permissionsÚall©r   r(   s   &&r   Ú_get_user_permissionsÚ"ModelBackend._get_user_permissionsb   s   € Ø×(Ñ(×,Ñ,Ó.Ð.r   c                ór   € \         P                  P                  VP                  P	                  4       R 7      # ))Ú	group__in)r   ÚobjectsÚfilterÚgroupsrk   rl   s   &&r   Ú_get_group_permissionsÚ#ModelBackend._get_group_permissionse   s)   € Ü×!Ñ!×(Ñ(°8·?±?×3FÑ3FÓ3HÐ(ÓIÐIr   c                óÞ  € VP                   '       d   VP                  '       g   Ve   \        4       # RV,          p\        W4      '       g’   VP                  '       d    \
        P                  P                  4       pM\        V RV,          4      ! V4      pVP                  RR4      P                  4       p\        YV UUu0 uF  w  rgV: RV: 2kK  	  upp4       \        W4      # u uppi )zÁ
Return the permissions of `user_obj` from `from_name`. `from_name` can
be either "group" or "user" to return permissions from
`_get_group_permissions` or `_get_user_permissions` respectively.
ú_%s_perm_cacheú_get_%s_permissionsÚcontent_type__app_labelÚcodenameÚ.©re   Úis_anonymousr&   ÚhasattrÚis_superuserr   rq   rk   rf   Úvalues_listÚorder_byÚsetattr©r   r(   r)   Ú	from_nameÚperm_cache_nameÚpermsÚctÚnames   &&&&    r   Ú_get_permissionsÚModelBackend._get_permissionsh   sÇ   € ð ×!×!Ð! X×%:×%:Ð%:¸cºoÜ“5ˆLà*¨YÕ6ˆÜ�x×1Ò1Ø×$×$Ð$Ü"×*Ñ*×.Ñ.Ó0‘ä Ð&;¸iÕ&GÔHÈÓR�Ø×%Ñ%Ð&?ÀÓL×UÑUÓWˆEÜØÑQVÔ+WÑQVÁXÀR³rº4Ó,@ÑQVÒ+Wôô �xÓ1Ð1ùó ,Xs   ÃC)c              ƒ  óú  "  € VP                   '       d   VP                  '       g   Ve   \        4       # RV,          p\        W4      '       g�   VP                  '       d    \
        P                  P                  4       pM\        V RV,          4      ! V4      pVP                  RR4      P                  4       p\        TTV UUu0 u Rj  x€L
 w  rgV: RV: 2kK  \        W4      #  LDMu uppi upp4       L5i)zSee _get_permissions().Nrw   rx   ry   rz   r{   r|   rƒ   s   &&&&    r   Ú_aget_permissionsÚModelBackend._aget_permissions}   sÆ   é € à×!×!Ð! X×%:×%:Ð%:¸cºoÜ“5ˆLà*¨YÕ6ˆÜ�x×1Ò1Ø×$×$Ð$Ü"×*Ñ*×.Ñ.Ó0‘ä Ð&;¸iÕ&GÔHÈÓR�Ø×%Ñ%Ð&?ÀÓL×UÑUÓWˆEÜØØÙ<A×BÔB±°›B¢Ó%ä�xÓ1Ð1ó CùÖBõùsG   ‚$C;§9C;Á!A$C;ÃC,ÃC*ÃC(ÃC*ÃC,ÃC;Ã(C*Ã*C,Ã+C;c                ó&   € V P                  WR4      # )z[
Return a set of permission strings the user `user_obj` has from their
`user_permissions`.
r^   ©r‰   r'   s   &&&r   r*   Ú!ModelBackend.get_user_permissions�   s   € ð
 ×$Ñ$ X°FÓ;Ð;r   c              ƒ  óB   "  € V P                  WR4      G Rj  x€L
 #  L5i)zSee get_user_permissions().r^   N©rŒ   r'   s   &&&r   r.   Ú"ModelBackend.aget_user_permissions—   s   é € à×+Ñ+¨H¸6ÓB×BÐBÑBùó   ‚˜™c                ó&   € V P                  WR4      # )zY
Return a set of permission strings the user `user_obj` has from the
groups they belong.
Úgroupr�   r'   s   &&&r   r1   Ú"ModelBackend.get_group_permissions›   s   € ð
 ×$Ñ$ X°GÓ<Ð<r   c              ƒ  óB   "  € V P                  WR4      G Rj  x€L
 #  L5i)zSee get_group_permissions().r–   Nr’   r'   s   &&&r   r4   Ú#ModelBackend.aget_group_permissions¢   s   é € à×+Ñ+¨H¸7ÓC×CÐCÑCùr”   c                óÌ   <€ VP                   '       d   VP                  '       g   Ve   \        4       # \        VR4      '       g   \        SV `  V4      Vn        VP                  # )NÚ_perm_cache)re   r}   r&   r~   Úsuperr9   r›   )r   r(   r)   Ú	__class__s   &&&€r   r9   Ú ModelBackend.get_all_permissions¦   sP   ø€ Ø×!×!Ð! X×%:×%:Ð%:¸cºoÜ“5ˆLÜ�x ×/Ò/Ü#(¡7Ñ#>¸xÓ#HˆHÔ Ø×#Ñ#Ð#r   c                óN   <€ VP                   ;'       d    \        SV `	  WVR 7      # r7   )re   rœ   rB   ©r   r(   rA   r)   r�   s   &&&&€r   rB   ÚModelBackend.has_perm­   s&   ø€ Ø×!Ñ!×OÐO¤e¡gÑ&6°xÈ3Ð&6Ó&OÐOr   c              ƒ  ój   <"  € VP                   ;'       d    \        SV `	  WVR 7      G Rj  x€L
 #  L5ir<   )re   rœ   rE   r    s   &&&&€r   rE   ÚModelBackend.ahas_perm°   s0   øé € Ø×!Ñ!×VÐV¬E©GÑ,=¸hÐRUÐ,=Ó,V×&VÐVÑ&Vùs   ƒ)3¬1­3c                óÜ   a€ VP                   ;'       dY    \        ;QJ d.    V3R lV P                  V4       4       F  '       g   K   R# 	  R# ! V3R lV P                  V4       4       4      # )zE
Return True if user_obj has any permissions in the given app_label.
c              3   óR   <"  € T F  pVR VP                  R4       S8H  x € K  	  R # 5i©Nr{   ©Úindex©Ú.0rA   Ú	app_labels   & €r   Ú	<genexpr>Ú0ModelBackend.has_module_perms.<locals>.<genexpr>·   s-   øé € ð *
á:�ð Ð"�4—:‘:˜c“?Ð# yÖ0Û:ùó   ƒ$'TF)re   Úanyr9   ©r   r(   r«   s   &&fr   Úhas_module_permsÚModelBackend.has_module_perms³   sh   ø€ ð ×!Ñ!÷ 
ð 
§c£cô *
à×0Ñ0°Ô:ó*
§c¤cð 	
¢cð 	
 cô *
à×0Ñ0°Ô:ó*
ó '
ð 	
r   c              ƒ  ó  a"  € VP                   ;'       di    \        ;QJ d6    V3R lV P                  V4      G Rj  x€L
  4       F  '       g   K   R# 	  R# ! V3R lV P                  V4      G Rj  x€L
  4       4      #  LB L5i)zSee has_module_perms()c              3   óR   <"  € T F  pVR VP                  R4       S8H  x € K  	  R # 5ir¦   r§   r©   s   & €r   r¬   Ú1ModelBackend.ahas_module_perms.<locals>.<genexpr>¾   s-   øé € ð *
áA�ð Ð"�4—:‘:˜c“?Ð# yÖ0ÛAùr®   NTF)re   r¯   r=   r°   s   &&fr   Úahas_module_permsÚModelBackend.ahas_module_perms¼   sx   øé € à×!Ñ!÷ 
ð 
§c£cô *
à"×7Ñ7¸ÓA×AÐAó*
§c¤cð 	
¢cð 	
 cô *
à"×7Ñ7¸ÓA×AÐAó*
ó '
ð 	
ãAùs,   ƒB£B½B ¾BÁ!BÁ2B
Á3BÂBc                óò  € \        V\        4      '       d    VP                  R4      w  rVM!\        V\        4      '       g   \        R4      hVe   \        P                  P                  4       # \        \        R4      R7      \        \        R4      R7      ,          p\        V\        4      '       d   V\        VP                  R7      ,          pMV\        XXR7      ,          p\        \        P                  P                  V4      4      pV'       d   V\        R	R
7      ,          pVe   V\        VR7      ,          p\        P                  P                  V4      #   \         d    \        R4      hi ; i)zi
Return users that have permission "perm". By default, filter out
inactive users and include superusers.
r{   zDPermission name should be in the form app_label.permission_codename.z>The `perm` argument must be a string or a permission instance.Úpk)Úgroup__user)r^   ©r¹   )rz   ry   T)r   )re   )Ú
isinstanceÚstrÚsplitÚ
ValueErrorr   Ú	TypeErrorrS   rU   Únoner   r   r¹   r   rq   rr   )	r   rA   re   Úinclude_superusersr)   r«   rz   Úpermission_qÚuser_qs	   &&&&&    r   Ú	with_permÚModelBackend.with_permÃ   s+  € ô
 �dœC× Ò ðØ&*§j¡j°£oÑ#�	˜8ô ˜D¤*×-Ò-ÜØPóð ð Š?Ü×-Ñ-×2Ñ2Ó4Ð4ä¤X¨d£^Ô4´q¼hÀt»nÔ7MÕMˆÜ�dœJ×'Ò'ØœA §¡œMÕ)‰LàœA xÈÔSÕSˆLäœ
×*Ñ*×1Ñ1°,Ó?Ó@ˆßØ”a TÔ*Õ*ˆFØÒ Ø”a )Ô,Õ,ˆFä×)Ñ)×0Ñ0°Ó8Ð8øô3 ô Ü ð5óð ðús   ˜E ÅE6c                ó²   €  \         P                  P                  VR 7      pT P	                  T4      '       d   T# R#   \         P                   d     R# i ; i©r»   N)rS   rU   rR   rY   rX   ©r   r   r^   s   && r   r   ÚModelBackend.get_useræ   sW   € ð	Ü×-Ñ-×1Ñ1°WÐ1Ó=ˆDð ×1Ñ1°$×7Ò7ˆtÐA¸TÐAøô ×%Ñ%ô 	Úð	ús   ‚ = ½AÁAc              ƒ  óÎ   "  €  \         P                  P                  VR 7      G Rj  x€L
 pT P	                  T4      '       d   T# R#  L  \         P                   d     R# i ; i5irÈ   )rS   rU   ÚagetrY   rX   rÉ   s   && r   r!   ÚModelBackend.aget_userí   s`   é € ð	Ü"×3Ñ3×8Ñ8¸GÐ8ÓD×DˆDð ×1Ñ1°$×7Ò7ˆtÐA¸TÐAñ EøÜ×%Ñ%ô 	Úð	üs=   ‚A%„#A	 §A¨A	 ¬A%ÁA%ÁA	 Á	A"ÁA%Á!A"Á"A%r   )NNr   )TTN)rG   rH   rI   rJ   Ú__doc__r   r   rX   rm   rt   r‰   rŒ   r*   r.   r1   r4   r9   rB   rE   r±   r¶   rÅ   r   r!   rK   rL   Ú__classcell__)r�   rN   s   @@r   rP   rP   6   sw   ù‡ € ñôôò"0ò/òJò2ò*2ô&<ôCô=ôD÷$÷P÷Wò
ò
ô!9òFB÷Bò Br   rP   c                   ó&   a € ] tR t^õt o R tRtV tR# )ÚAllowAllUsersModelBackendc                ó   € R # ©Tr   rg   s   &&r   rX   Ú/AllowAllUsersModelBackend.user_can_authenticateö   r   r   r   N©rG   rH   rI   rJ   rX   rK   rL   rM   s   @r   rÑ   rÑ   õ   ó   ø‡ € ÷ð r   rÑ   c                   óN   a € ] tR t^út o RtRtR tR tR tR
R lt	R
R lt
RtV tR	# )ÚRemoteUserBackenda¦  
This backend is to be used in conjunction with the ``RemoteUserMiddleware``
found in the middleware module of this package, and is used when the server
is handling authentication outside of Django.

By default, the ``authenticate`` method creates ``User`` objects for
usernames that don't already exist in the database.  Subclasses can disable
this behavior by setting the ``create_unknown_user`` attribute to
``False``.
Tc                óœ  € V'       g   R# RpRpV P                  V4      pV P                  '       d4   \        P                  P                  ! R/ \        P
                  V/B w  rCM  \        P                  P                  V4      pV P                  WVR7      pV P                  V4      '       d   V# R#   \        P                   d     LEi ; i)a9  
The username passed as ``remote_user`` is considered trusted. Return
the ``User`` object with the given username. Create a new ``User``
object if ``create_unknown_user`` is ``True``.

Return None if ``create_unknown_user`` is ``False`` and a ``User``
object with the given username is not found in the database.
NF©Úcreatedr   )
Úclean_usernameÚcreate_unknown_userrS   rU   Úget_or_createrT   rV   rY   Úconfigure_userrX   ©r   r   Úremote_userrÛ   r^   r\   s   &&&   r   r   ÚRemoteUserBackend.authenticate	  sÆ   € ÷ ÙØˆØˆØ×&Ñ& {Ó3ˆð
 ×#×#Ð#Ü%×6Ñ6×DÒDñ Ü×+Ñ+¨XÐ6ñ‰MˆD�'ðÜ ×1Ñ1×DÑDÀXÓN�ð ×"Ñ" 7¸'Ð"ÓBˆØ×1Ñ1°$×7Ò7ˆtÐA¸TÐAøô ×)Ñ)ô Ùðús   Á&B3 Â3CÃ
Cc              ƒ  óà  "  € V'       g   R# RpRpV P                  V4      pV P                  '       d<   \        P                  P                  ! R/ \        P
                  V/B G Rj  x€L
 w  rCM( \        P                  P                  V4      G Rj  x€L
 pV P                  WVR7      G Rj  x€L
 pV P                  V4      '       d   V# R#  Le L<  \        P                   d     LQi ; i L>5i)zSee authenticate().NFrÚ   r   )
rÜ   rÝ   rS   rU   Úaget_or_createrT   ra   rY   Úaconfigure_userrX   rà   s   &&&   r   r   ÚRemoteUserBackend.aauthenticate'  sÞ   é € çÙØˆØˆØ×&Ñ& {Ó3ˆð
 ×#×#Ð#Ü"+×"<Ñ"<×"KÒ"Kñ #Ü×+Ñ+¨XÐ6ñ#÷ ‰MˆD�'ðÜ&×7Ñ7×KÑKÈHÓU×U�ð ×)Ñ)¨'ÀÐ)ÓI×IˆØ×1Ñ1°$×7Ò7ˆtÐA¸TÐAññ
 VøÜ×)Ñ)ô ÙðúáIùs^   ‚1C.´3C.Á'CÁ(C.Á0"C ÂCÂC ÂC.Â-C,Â.C.Ã	C.ÃC ÃC)Ã&C.Ã(C)Ã)C.c                ó   € V# )z¦
Perform any cleaning on the "username" prior to using it to get or
create the user object.  Return the cleaned username.

By default, return the username unchanged.
r   )r   r\   s   &&r   rÜ   Ú RemoteUserBackend.clean_username>  s	   € ð ˆr   c                ó   € V# )zX
Configure a user and return the updated user.

By default, return the user unmodified.
r   ©r   r   r^   rÛ   s   &&&&r   rß   Ú RemoteUserBackend.configure_userG  s	   € ð ˆr   c              ƒ  óV   "  € \        V P                  4      ! WV4      G Rj  x€L
 #  L5i)zSee configure_user()N)r   rß   rê   s   &&&&r   rå   Ú!RemoteUserBackend.aconfigure_userO  s#   é € ä" 4×#6Ñ#6Ô7¸ÀwÓO×OÐOÑOùr   r   NrÓ   )rG   rH   rI   rJ   rÎ   rÝ   r   r   rÜ   rß   rå   rK   rL   rM   s   @r   rØ   rØ   ú   s4   ø‡ € ñ	ð ÐòBò<Bò.ô÷Pò Pr   rØ   c                   ó&   a € ] tR tRt o R tRtV tR# )ÚAllowAllUsersRemoteUserBackendiT  c                ó   € R # rÓ   r   rg   s   &&r   rX   Ú4AllowAllUsersRemoteUserBackend.user_can_authenticateU  r   r   r   NrÕ   rM   s   @r   rï   rï   T  rÖ   r   rï   N)Úasgiref.syncr   Údjango.contrib.authr   Údjango.contrib.auth.modelsr   Údjango.db.modelsr   r   r   rS   r
   rP   rÑ   rØ   rï   r   r   r   Ú<module>rö      sd   ðÝ &å .Ý 1ß 0Ñ 0áÓ€	÷)Fñ )FôX|B�;ô |Bô~ ô ô
WP˜ô WPôtÐ%6ö r   