+
    }n jDK  ã                   óZ  € ^ RI t ^ RIt^ RIt^ RIHtHt ^ RIHtHtH	t	 ^ RI
HtHtHtHtHtHtHtHt ^ RIHtHtHtHtHtHtHtHtHt ^ RIHtHt ^ RI H!t! ]PD                  ! ]PF                  ! ]$4      4      t%Rt&Rt'Rt(]PR                  ! 4       t* ! R	 R
4      t+R R lt,RR lt-R R lt.R# )é    N)Ú	lru_cacheÚwraps)ÚAnyÚDictÚOptional)ÚaptÚevent_loggerÚ
exceptionsÚhttpÚmessagesÚsnapÚsystemÚutil)	ÚAPT_NEWS_URLÚBASE_CONTRACT_URLÚBASE_LIVEPATCH_URLÚBASE_SECURITY_URLÚBASE_VULNERABILITY_DATA_URLÚCONFIG_DEFAULTSÚCONFIG_FIELD_ENVVAR_ALLOWLISTÚDEFAULT_CONFIG_FILEÚDEFAULT_DATA_DIR)Ústate_filesÚuser_config_file)Ú	safe_loadÚ_unsetc                   óF  a € ] tR t^Gt o RKtRLtRMtRNV 3R lR llt]V 3R lR l4       t	]V 3R lR l4       t
]V 3R lR	 l4       t]V 3R
 lR l4       t]P                  V 3R lR l4       t]V 3R lR l4       t]P                  V 3R lR l4       t]V 3R lR l4       t]P                  V 3R lR l4       t]V 3R lR l4       t]P                  V 3R lR l4       t]V 3R lR l4       t]P                  V 3R lR l4       t]]! RR7      V 3R lR  l4       4       t]P                  V 3R! lR" l4       t]]! RR7      V 3R# lR$ l4       4       t]P                  V 3R% lR& l4       t]V 3R' lR( l4       t]P                  V 3R) lR* l4       t]V 3R+ lR, l4       t]P                  V 3R- lR. l4       t]V 3R/ lR0 l4       t]P                  V 3R1 lR2 l4       t]V 3R3 lR4 l4       t]P                  V 3R5 lR6 l4       t]V 3R7 lR8 l4       t]P                  V 3R9 lR: l4       t]V 3R; lR< l4       t]P                  V 3R= lR> l4       t]V 3R? lR@ l4       t]P                  V 3RA lRB l4       t]RC 4       t]RD 4       t]V 3RE lRF l4       t]RG 4       tRH t RI t!RJt"V t#R# )OÚUAConfigNc                óŠ   <€ V ^8„  d   QhRS[ S[S[S[3,          ,          RS[ S[P
                  ,          RS[ S[,          RR/# )é   ÚcfgÚuser_configÚseriesÚreturnN)r   r   Ústrr   r   ÚUserConfigData)ÚformatÚ__classdict__s   "€Ú1/usr/lib/python3/dist-packages/uaclient/config.pyÚ__annotate__ÚUAConfig.__annotate__R   sP   ø€ ÷ !ñ !á‘d™3¡˜8•nÕ%ð!ñ Ñ.×=Ñ=Õ>ð!ñ ™•ð	!ð
 
ñ!ó    c                ó˜  € V'       d   RV n         Wn        RV n        M1\        4       V n         \	        V P                   4      w  V n        V n        V'       d   W n        M$ \        P
                  P                  4       V n        RV P                  9   dT   \        P                  P                  / V P
                  P                  4       CV P                  R,          CRR7      V n        W0n        R#   \         dQ   p\        P                  RTR7       \        P                  R4       \        P                  ! 4       T n         Rp?LÂRp?ii ; i)Ú NzError loading user config)Úexc_infozUsing default config valuesÚ	ua_configT)Ú optional_type_errors_become_null)Úcfg_pathr!   Úinvalid_keysÚget_config_pathÚparse_configr"   r   ÚreadÚ	ExceptionÚLOGÚwarningr&   Ú	from_dictÚto_dictr#   )Úselfr!   r"   r#   Úes   &&&& r)   Ú__init__ÚUAConfig.__init__R   s  € ÷ Ø ˆDŒMØŒHØ $ˆDÕä+Ó-ˆDŒMÜ*6°t·}±}Ó*EÑ'ˆDŒH�dÔ'çØ*ÕðEÜ#3×#?Ñ#?×#DÑ#DÓ#F�Ô ð ˜$Ÿ(™(Ô"Ü/×>Ñ>×HÑHØG�4×#Ñ#×+Ñ+Ó-ÐG°·±¸+Õ1FÐGØ15ð  Ió  ˆDÔð
 Žøô ô EÜ—‘Ð7À!�ÔDÜ—‘Ð9Ô:Ü#3×#BÒ#BÓ#D�× Ñ ûðEús   Á#C. Ã.E	Ã9AEÅE	c                ó    <€ V ^8„  d   QhRS[ /# ©r    r$   ©r%   )r'   r(   s   "€r)   r*   r+   v   ó   ø€ ÷ ?ñ ?™cñ ?r,   c                óB   € V P                   P                  R \        4      # )Úcontract_url)r!   Úgetr   ©r<   s   &r)   rE   ÚUAConfig.contract_urlu   ó   € à�x‰x�|‰|˜NÔ,=Ó>Ð>r,   c                ó    <€ V ^8„  d   QhRS[ /# rA   rB   )r'   r(   s   "€r)   r*   r+   z   rC   r,   c                óB   € V P                   P                  R \        4      # )Úsecurity_url)r!   rF   r   rG   s   &r)   rL   ÚUAConfig.security_urly   rI   r,   c                ó    <€ V ^8„  d   QhRS[ /# rA   rB   )r'   r(   s   "€r)   r*   r+   ~   s   ø€ ÷ Añ A™sñ Ar,   c                óB   € V P                   P                  R \        4      # )Úlivepatch_url)r!   rF   r   rG   s   &r)   rP   ÚUAConfig.livepatch_url}   s   € à�x‰x�|‰|˜OÔ-?Ó@Ð@r,   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# rA   ©r   r%   )r'   r(   s   "€r)   r*   r+   ‚   s   ø€ ÷ +ñ +™H¡S�Mñ +r,   c                ó.   € V P                   P                  # ©N)r"   Ú
http_proxyrG   s   &r)   rV   ÚUAConfig.http_proxy�   s   € à×Ñ×*Ñ*Ð*r,   c                ó    <€ V ^8„  d   QhRS[ /# ©r    ÚvaluerB   )r'   r(   s   "€r)   r*   r+   †   s   ø€ ÷ =ñ =¡ñ =r,   c                óx   € WP                   n        \        P                   P                  V P                   4       R # rU   )r"   rV   r   Úwrite©r<   rZ   s   &&r)   rV   rW   …   s(   € à&+×ÑÔ#Ü×$Ñ$×*Ñ*¨4×+;Ñ+;Ö<r,   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# rA   rS   )r'   r(   s   "€r)   r*   r+   ‹   s   ø€ ÷ ,ñ ,™X¡c�]ñ ,r,   c                ó.   € V P                   P                  # rU   )r"   Úhttps_proxyrG   s   &r)   r`   ÚUAConfig.https_proxyŠ   s   € à×Ñ×+Ñ+Ð+r,   c                ó    <€ V ^8„  d   QhRS[ /# rY   rB   )r'   r(   s   "€r)   r*   r+   �   s   ø€ ÷ =ñ =¡ñ =r,   c                óx   € WP                   n        \        P                   P                  V P                   4       R # rU   )r"   r`   r   r\   r]   s   &&r)   r`   ra   Ž   s(   € à',×ÑÔ$Ü×$Ñ$×*Ñ*¨4×+;Ñ+;Ö<r,   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# rA   rS   )r'   r(   s   "€r)   r*   r+   ”   s   ø€ ÷ 3ñ 3¡H©S¥Mñ 3r,   c                ó.   € V P                   P                  # rU   )r"   Úua_apt_https_proxyrG   s   &r)   rf   ÚUAConfig.ua_apt_https_proxy“   s   € à×Ñ×2Ñ2Ð2r,   c                ó    <€ V ^8„  d   QhRS[ /# rY   rB   )r'   r(   s   "€r)   r*   r+   ˜   s   ø€ ÷ =ñ =©ñ =r,   c                óx   € WP                   n        \        P                   P                  V P                   4       R # rU   )r"   rf   r   r\   r]   s   &&r)   rf   rg   —   s(   € à.3×ÑÔ+Ü×$Ñ$×*Ñ*¨4×+;Ñ+;Ö<r,   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# rA   rS   )r'   r(   s   "€r)   r*   r+   �   s   ø€ ÷ 2ñ 2¡8©C¥=ñ 2r,   c                ó.   € V P                   P                  # rU   )r"   Úua_apt_http_proxyrG   s   &r)   rl   ÚUAConfig.ua_apt_http_proxyœ   s   € à×Ñ×1Ñ1Ð1r,   c                ó    <€ V ^8„  d   QhRS[ /# rY   rB   )r'   r(   s   "€r)   r*   r+   ¡   s   ø€ ÷ =ñ =¡sñ =r,   c                óx   € WP                   n        \        P                   P                  V P                   4       R # rU   )r"   rl   r   r\   r]   s   &&r)   rl   rm       s(   € à-2×ÑÔ*Ü×$Ñ$×*Ñ*¨4×+;Ñ+;Ö<r,   c                ó    <€ V ^8„  d   QhRS[ /# rA   rB   )r'   r(   s   "€r)   r*   r+   ¦   s   ø€ ÷ ñ ©sñ r,   c                óF   € V P                   P                  pVf   \        # V# rU   )r"   Úvulnerability_data_url_prefixr   ©r<   Úvals   & r)   rr   Ú&UAConfig.vulnerability_data_url_prefix¥   s#   € à×Ñ×<Ñ<ˆØŠ;Ü.Ð.Øˆ
r,   c                ó    <€ V ^8„  d   QhRS[ /# rY   rB   )r'   r(   s   "€r)   r*   r+   ­   s   ø€ ÷ =ñ =±3ñ =r,   c                óx   € WP                   n        \        P                   P                  V P                   4       R # rU   )r"   rr   r   r\   r]   s   &&r)   rr   ru   ¬   s(   € à9>×ÑÔ6Ü×$Ñ$×*Ñ*¨4×+;Ñ+;Ö<r,   )Úmaxsizec                ó0   <€ V ^8„  d   QhRS[ S[,          /# rA   rS   )r'   r(   s   "€r)   r*   r+   ³   s   ø€ ÷ ñ ¡x±¥}ñ r,   c                óî   € V P                   P                  pV'       d   V# V P                   P                  pV'       d7   \        P	                  \
        P                  P                  R RR7      4       V# R# )Úapt_http_proxyÚglobal_apt_http_proxy©ÚoldÚnewN)r"   r|   r{   ÚeventÚinfor   ÚWARNING_DEPRECATED_FIELDr'   ©r<   Ú
global_valÚold_apt_vals   &  r)   r|   ÚUAConfig.global_apt_http_proxy±   sh   € ð ×%Ñ%×;Ñ;ˆ
ßØÐà×&Ñ&×5Ñ5ˆßÜ�J‰JÜ×1Ñ1×8Ñ8Ø(Ð.Eð 9ó ôð
 ÐÙr,   c                ó    <€ V ^8„  d   QhRS[ /# rY   rB   )r'   r(   s   "€r)   r*   r+   Ã   s   ø€ ÷ =ñ =©3ñ =r,   c                óê   € WP                   n        R V P                   n        \        P                  P                  P                  4        \        P                   P                  V P                   4       R # rU   )r"   r|   r{   r   ÚfgetÚcache_clearr   r\   r]   s   &&r)   r|   r†   Â   sN   € à16×ÑÔ.Ø*.ˆ×ÑÔ'Ü×&Ñ&×+Ñ+×7Ñ7Ô9Ü×$Ñ$×*Ñ*¨4×+;Ñ+;Ö<r,   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# rA   rS   )r'   r(   s   "€r)   r*   r+   Ë   s   ø€ ÷ ñ ©±­ñ r,   c                óî   € V P                   P                  pV'       d   V# V P                   P                  pV'       d7   \        P	                  \
        P                  P                  R RR7      4       V# R# )Úapt_https_proxyÚglobal_apt_https_proxyr}   N)r"   rŽ   r�   r€   r�   r   r‚   r'   rƒ   s   &  r)   rŽ   ÚUAConfig.global_apt_https_proxyÉ   sh   € ð ×%Ñ%×<Ñ<ˆ
ßØÐà×&Ñ&×6Ñ6ˆßÜ�J‰JÜ×1Ñ1×8Ñ8Ø)Ð/Gð 9ó ôð
 ÐÙr,   c                ó    <€ V ^8„  d   QhRS[ /# rY   rB   )r'   r(   s   "€r)   r*   r+   Û   s   ø€ ÷ =ñ =©Cñ =r,   c                óê   € WP                   n        R V P                   n        \        P                  P                  P                  4        \        P                   P                  V P                   4       R # rU   )r"   rŽ   r�   r   r‰   rŠ   r   r\   r]   s   &&r)   rŽ   r�   Ú   sN   € à27×ÑÔ/Ø+/ˆ×ÑÔ(Ü×'Ñ'×,Ñ,×8Ñ8Ô:Ü×$Ñ$×*Ñ*¨4×+;Ñ+;Ö<r,   c                ó    <€ V ^8„  d   QhRS[ /# rA   ©Úint)r'   r(   s   "€r)   r*   r+   â   s   ø€ ÷ ñ ©ñ r,   c                ó>   € V P                   P                  pVf   R# V# )Ni`T  )r"   Úupdate_messaging_timerrs   s   & r)   r–   ÚUAConfig.update_messaging_timerá   s    € à×Ñ×5Ñ5ˆØŠ;ÙØˆ
r,   c                ó    <€ V ^8„  d   QhRS[ /# rY   r“   )r'   r(   s   "€r)   r*   r+   é   s   ø€ ÷ =ñ =©Cñ =r,   c                óx   € WP                   n        \        P                   P                  V P                   4       R # rU   )r"   r–   r   r\   r]   s   &&r)   r–   r—   è   s(   € à27×ÑÔ/Ü×$Ñ$×*Ñ*¨4×+;Ñ+;Ö<r,   c                ó    <€ V ^8„  d   QhRS[ /# rA   r“   )r'   r(   s   "€r)   r*   r+   î   s   ø€ ÷ ñ ¡ñ r,   c                ó>   € V P                   P                  pVf   R# V# )Ni@8  )r"   Úmetering_timerrs   s   & r)   rœ   ÚUAConfig.metering_timerí   s    € à×Ñ×-Ñ-ˆØŠ;ÙØˆ
r,   c                ó    <€ V ^8„  d   QhRS[ /# rY   r“   )r'   r(   s   "€r)   r*   r+   õ   s   ø€ ÷ =ñ =¡Cñ =r,   c                óx   € WP                   n        \        P                   P                  V P                   4       R # rU   )r"   rœ   r   r\   r]   s   &&r)   rœ   r�   ô   s(   € à*/×ÑÔ'Ü×$Ñ$×*Ñ*¨4×+;Ñ+;Ö<r,   c                ó    <€ V ^8„  d   QhRS[ /# rA   ©Úbool)r'   r(   s   "€r)   r*   r+   ú   s   ø€ ÷ ñ ¡dñ r,   c                ó>   € V P                   P                  pVf   R# V# )NF)r"   Úpoll_for_pro_licensers   s   & r)   r¤   ÚUAConfig.poll_for_pro_licenseù   s"   € ð
 ×Ñ×3Ñ3ˆØŠ;ÙØˆ
r,   c                ó    <€ V ^8„  d   QhRS[ /# rY   r¡   )r'   r(   s   "€r)   r*   r+     s   ø€ ÷ =ñ =©$ñ =r,   c                óx   € WP                   n        \        P                   P                  V P                   4       R # rU   )r"   r¤   r   r\   r]   s   &&r)   r¤   r¥     s(   € à05×ÑÔ-Ü×$Ñ$×*Ñ*¨4×+;Ñ+;Ö<r,   c                ó    <€ V ^8„  d   QhRS[ /# rA   r“   )r'   r(   s   "€r)   r*   r+   	  s   ø€ ÷ ñ ©3ñ r,   c                ó>   € V P                   P                  pVf   R# V# )NiX  )r"   Úpolling_error_retry_delayrs   s   & r)   rª   Ú"UAConfig.polling_error_retry_delay  s"   € ð ×Ñ×8Ñ8ˆØŠ;ÙØˆ
r,   c                ó    <€ V ^8„  d   QhRS[ /# rY   r“   )r'   r(   s   "€r)   r*   r+     s   ø€ ÷ =ñ =©sñ =r,   c                óx   € WP                   n        \        P                   P                  V P                   4       R # rU   )r"   rª   r   r\   r]   s   &&r)   rª   r«     s(   € à5:×ÑÔ2Ü×$Ñ$×*Ñ*¨4×+;Ñ+;Ö<r,   c                ó    <€ V ^8„  d   QhRS[ /# rA   r¡   )r'   r(   s   "€r)   r*   r+     s   ø€ ÷ ñ ™$ñ r,   c                ó>   € V P                   P                  pVf   R# V# )NT)r"   Úapt_newsrs   s   & r)   r°   ÚUAConfig.apt_news  s    € à×Ñ×'Ñ'ˆØŠ;ÙØˆ
r,   c                ó    <€ V ^8„  d   QhRS[ /# rY   r¡   )r'   r(   s   "€r)   r*   r+     s   ø€ ÷ =ñ =™dñ =r,   c                óx   € WP                   n        \        P                   P                  V P                   4       R # rU   )r"   r°   r   r\   r]   s   &&r)   r°   r±     s(   € à$)×ÑÔ!Ü×$Ñ$×*Ñ*¨4×+;Ñ+;Ö<r,   c                ó    <€ V ^8„  d   QhRS[ /# rA   rB   )r'   r(   s   "€r)   r*   r+   #  s   ø€ ÷ ñ ™cñ r,   c                óF   € V P                   P                  pVf   \        # V# rU   )r"   Úapt_news_urlr   rs   s   & r)   r¶   ÚUAConfig.apt_news_url"  s#   € à×Ñ×+Ñ+ˆØŠ;ÜÐØˆ
r,   c                ó    <€ V ^8„  d   QhRS[ /# rY   rB   )r'   r(   s   "€r)   r*   r+   *  s   ø€ ÷ =ñ =¡#ñ =r,   c                óx   € WP                   n        \        P                   P                  V P                   4       R # rU   )r"   r¶   r   r\   r]   s   &&r)   r¶   r·   )  s(   € à(-×ÑÔ%Ü×$Ñ$×*Ñ*¨4×+;Ñ+;Ö<r,   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rA   ©r   ÚLXDGuestAttachEnum)r'   r(   s   "€r)   r*   r+   /  s   ø€ ÷ ñ Ñ"2×"EÑ"Eñ r,   c                ón   € V P                   P                  pVf   \        P                  P                  # V# rU   )r"   Úlxd_guest_attachr   r¼   ÚOFFrs   s   & r)   r¾   ÚUAConfig.lxd_guest_attach.  s/   € à×Ñ×/Ñ/ˆØŠ;Ü#×6Ñ6×:Ñ:Ð:Øˆ
r,   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rY   r»   )r'   r(   s   "€r)   r*   r+   6  s   ø€ ÷ =ñ =Ñ&6×&IÑ&Iñ =r,   c                ó´   € Vf   \         P                  P                  pWP                  n        \         P                  P                  V P                  4       R # rU   )r   r¼   r¿   r"   r¾   r\   r]   s   &&r)   r¾   rÀ   5  s>   € àŠ=Ü$×7Ñ7×;Ñ;ˆEØ,1×ÑÔ)Ü×$Ñ$×*Ñ*¨4×+;Ñ+;Ö<r,   c                óB   € V P                   P                  R \        4      # )Údata_dir)r!   rF   r   rG   s   &r)   rÄ   ÚUAConfig.data_dir<  s   € à�x‰x�|‰|˜JÔ(8Ó9Ð9r,   c                óº   € V P                   P                  R R4      p \        \        VP	                  4       4      #   \
         d    \        P                  u # i ; i)Ú	log_levelÚDEBUG)r!   rF   ÚgetattrÚloggingÚupperÚAttributeErrorrÈ   )r<   rÇ   s   & r)   rÇ   ÚUAConfig.log_level@  sH   € à—H‘H—L‘L ¨gÓ6ˆ	ð	!Üœ7 I§O¡OÓ$5Ó6Ð6øÜô 	!Ü—=‘=Ò ð	!ús   ž< ¼AÁAc                ó    <€ V ^8„  d   QhRS[ /# rA   rB   )r'   r(   s   "€r)   r*   r+   I  s   ø€ ÷ Eñ E™#ñ Er,   c                óP   € V P                   P                  R \        R ,          4      # )Úlog_file)r!   rF   r   rG   s   &r)   rÐ   ÚUAConfig.log_fileH  s   € à�x‰x�|‰|˜J¬¸
Õ(CÓDÐDr,   c                ó¨   € V P                   P                  R4      pV'       d/   \        V\        4      '       d   V# \        P                  RV4       / # )z>Return a dictionary of any features provided in uaclient.conf.ÚfeatureszDUnexpected uaclient.conf features value. Expected dict, but found %s)r!   rF   Ú
isinstanceÚdictr8   r9   )r<   rÓ   s   & r)   rÓ   ÚUAConfig.featuresL  sF   € ð —8‘8—<‘< 
Ó+ˆßÜ˜(¤D×)Ò)Ø�ä—‘ð3àôð
 ˆ	r,   c                óÎ
  € R F^  p\        W4      pVf   \        P                  RV4       K*  \        V\        4      '       d
   V^ 8  g   KI  \
        P                  ! WR7      h	  V P                  '       g   V P                  '       d:   V P                  '       g   V P                  '       d   \
        P                  ! 4       h\        P                  ! RV P                  \        P                  4       \        P                  ! RV P                  \        P                  4       \        P                  ! RV P                  \        P                  4       \        P                  ! RV P                  \        P                  4       \        P                  ! RV P                   \        P"                  4       \        P                  ! RV P$                  \        P&                  4       V P                  '       g   V P                  '       dF   \(        P*                  ! V P                  V P                  \(        P,                  P.                  4       MhV P                  '       g   V P                  '       dE   \(        P*                  ! V P                  V P                  \(        P,                  P0                  4       . p\2        P4                  ! 4       '       dµ   \2        P6                  ! V P                   V P$                  4       V P                   '       g+   \2        P8                  ! \2        P:                  4      '       g=   V P$                  '       g<   \2        P8                  ! \2        P<                  4      '       d   VP?                  R4       ^ RI H!p ^ RI"H#p V! V 4      PH                  p\J        ;QJ d    R	 V 4       F  '       g   K   R
M	  RM! R	 V 4       4      pV'       dž   VPM                  V P                   V P$                  4       V P                   '       g"   VP9                  VP:                  4      '       g4   V P$                  '       g3   VP9                  VP<                  4      '       d   VP?                  R4       \O        V4      ^ 8”  d;   RPQ                  V4      p\S        \T        PV                  PY                  VR7      4       ^ RI-H.p	 V P^                  \`        Pb                  Pd                  8w  d4   V	! V 4      Pf                  '       g   \S        \T        Ph                  4       R# \j        Pl                  Po                  \j        Pp                  ! V P^                  R7      4       R# )r–   Nz1No config set for %s, default value will be used.©ÚkeyrZ   r   Úhttpsr   )Ú	livepatch)Ú_enabled_servicesc              3   óJ   "  € T F  qP                   R 8X  g   K  Vx € K  	  R# 5i)rÛ   N)Úname)Ú.0Úents   & r)   Ú	<genexpr>Ú*UAConfig.process_config.<locals>.<genexpr>¨  s   é € ð  
Ù+�C¯x©x¸;Ñ/F�CŠCÓ+ùs   ‚#™
#TFrÛ   z, )Úservices)Ú_is_attached)Úguest_attach)r–   rœ   )9rÉ   r8   ÚdebugrÔ   r”   r
   ÚInvalidPosIntConfigValuer|   rŽ   rl   rf   ÚInvalidProxyCombinationConfigr   Úvalidate_proxyÚPROXY_VALIDATION_APT_HTTP_URLÚPROXY_VALIDATION_APT_HTTPS_URLrV   ÚPROXY_VALIDATION_SNAP_HTTP_URLr`   ÚPROXY_VALIDATION_SNAP_HTTPS_URLr   Úsetup_apt_proxyÚAptProxyScopeÚGLOBALÚUACLIENTr   Úis_snapd_installedÚconfigure_snap_proxyÚget_config_option_valueÚHTTP_PROXY_OPTIONÚHTTPS_PROXY_OPTIONÚappendÚuaclientrÛ   Ú-uaclient.api.u.pro.status.enabled_services.v1rÜ   Úenabled_servicesÚanyÚconfigure_livepatch_proxyÚlenÚjoinÚprintr   Ú!PROXY_DETECTED_BUT_NOT_CONFIGUREDr'   Ú(uaclient.api.u.pro.status.is_attached.v1rä   r¾   r   r¼   r¿   Úis_attachedÚ-WARNING_LXD_GUEST_ATTACH_SET_BUT_NOT_ATTACHEDr   Úlxd_pro_config_filer\   ÚLXDProConfig)
r<   ÚproprZ   Úservices_with_proxiesrÛ   rÜ   rú   Úlivepatch_enabledrã   rä   s
   &         r)   Úprocess_configÚUAConfig.process_config[  sù  € ó
ˆDô ˜DÓ'ˆEØŠ}Ü—	‘	ØGÈöô   ¤s×+Ò+¨u°q®yÜ ×9Ò9Øôð ñ
ð ×&×&Ð&¨$×*E×*EÐ*EØ×"×"Ð" d×&=×&=Ð&=ô ×:Ò:Ó<Ð<ä×ÒØØ×&Ñ&Ü×.Ñ.ô	
ô
 	×ÒØØ×'Ñ'Ü×/Ñ/ô	
ô
 	×ÒØ�D×*Ñ*¬D×,NÑ,Nô	
ô 	×ÒØØ×#Ñ#Ü×/Ñ/ô	
ô
 	×ÒØ�D—O‘O¤T×%HÑ%Hô	
ô 	×ÒØ�T×%Ñ%¤t×'KÑ'Kô	
ð ×%×%Ð%¨×)D×)DÐ)DÜ×ÒØ×*Ñ*Ø×+Ñ+Ü×!Ñ!×(Ñ(õð
 ×#×#Ð# t×'>×'>Ð'>Ü×ÒØ×&Ñ&Ø×'Ñ'Ü×!Ñ!×*Ñ*ôð !#ÐÜ×"Ò"×$Ò$Ü×%Ò% d§o¡o°t×7GÑ7GÔHà—O—O�OÜ×0Ò0´×1GÑ1G×HÒHà×$×$Ð$Ü×0Ò0´×1HÑ1H×IÒIà%×,Ñ,¨VÔ4å&õ	
ñ -¨TÓ2×CÑCÐß›Cñ  
Ù+ó 
ŸCŸCšCñ  
Ù+ó 
ó 
Ð÷ Ø×/Ñ/Ø—‘ ×!1Ñ!1ôð —O—O�OØ×5Ñ5Ø×/Ñ/÷ò ð ×$×$Ð$Ø×5Ñ5Ø×0Ñ0÷ò ð &×,Ñ,¨[Ô9äÐ$Ó%¨Ô)Ø—y‘yÐ!6Ó7ˆHÜÜ×:Ñ:×AÑAØ%ð Bó ôõ 	Jð ×!Ñ!Ô%5×%HÑ%H×%LÑ%LÔLÙ  Ó&×2×2Ð2ä”(×HÑHÖIä×+Ñ+×1Ñ1Ü×(Ò(°d×6KÑ6KÔLör,   c                óT  € V P                   e3   \        V P                   4       F  p\        P                  RV4       K  	  RV P                  9   dW   \        P                  R4       \        P                  R4       \        P                  R4       \        P                  R4       R # R # )Nz&Ignoring invalid uaclient.conf key: %sr0   z)legacy "ua_config" found in uaclient.confzPlease do the following:z…  1. run `sudo pro config set field=value` for each field/value pair present under "ua_config" in /etc/ubuntu-advantage/uaclient.confzQ  2. Delete "ua_config" and all sub-fields in /etc/ubuntu-advantage/uaclient.conf)r3   Úsortedr8   r9   r!   )r<   Úinvalid_keys   & r)   Úwarn_about_invalid_keysÚ UAConfig.warn_about_invalid_keysÑ  s‡   € Ø×ÑÒ(Ü% d×&7Ñ&7Ö8�Ü—‘Ø<¸köñ  9ð ˜$Ÿ(™(Ô"ô �K‰KÐCÔDÜ�K‰KÐ2Ô3Ü�K‰Kð7ôô
 �K‰Kð7öñ #r,   )r!   r2   r3   r#   r"   )rl   rf   )r|   rŽ   )r{   r�   )NNN)$Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úua_scoped_proxy_optionsÚglobal_scoped_proxy_optionsÚ&deprecated_global_scoped_proxy_optionsr>   ÚpropertyrE   rL   rP   rV   Úsetterr`   rf   rl   rr   r   r|   rŽ   r–   rœ   r¤   rª   r°   r¶   r¾   rÄ   rÇ   rÐ   rÓ   r	  r  Ú__static_attributes__Ú__classdictcell__)r(   s   @r)   r   r   G   sc  ø‡ € ØIÐð#Ðð.Ð*÷
!ò !ðF ÷?ó ð?ð ÷?ó ð?ð ÷Aó ðAð ÷+ó ð+ð ×Ñ÷=ó ð=ð ÷,ó ð,ð ×Ñ÷=ó ð=ð ÷3ó ð3ð ×Ñ÷=ó ð=ð ÷2ó ð2ð ×Ñ÷=ó ð=ð ÷ó ðð #×)Ñ)÷=ó *ð=ð Ù�tÔ÷ó ó ðð ×!Ñ!÷=ó "ð=ð Ù�tÔ÷ó ó ðð ×"Ñ"÷=ó #ð=ð ÷ó ðð ×"Ñ"÷=ó #ð=ð ÷ó ðð ×Ñ÷=ó ð=ð ÷ó ðð × Ñ ÷=ó !ð=ð ÷ó ðð ×%Ñ%÷=ó &ð=ð ÷ó ðð ‡_�_÷=ó ð=ð ÷ó ðð ×Ñ÷=ó ð=ð ÷ó ðð ×Ñ÷=ó ð=ð ñ:ó ð:ð ñ!ó ð!ð ÷Eó ðEð ñó ðòt÷lð r,   r   c                ó$   € V ^8„  d   QhR\         /# rA   rB   )r'   s   "r)   r*   r*   ç  s   € ÷ ñ œñ r,   c                 ó`   € \         P                  P                  R4      p V '       d   V # \        # )z4Get config path to be used when loading config dict.ÚUA_CONFIG_FILE)ÚosÚenvironrF   r   )Úconfig_files    r)   r4   r4   ç  s$   € ä—*‘*—.‘.Ð!1Ó2€KßØÐäÐr,   c                ó  € \         P                   ! \        4      pV '       g   \        4       p \        P	                  RV 4       \
        P                  P                  V 4      '       d/   VP                  \        \        P                  ! V 4      4      4       / p\
        P                  P                  4        F÷  w  r4VP                  4       pVP                  R4      '       g   K.  VR,          pVP                  R4      '       d™   VR,          pVP!                  R4      '       d]   \
        P                  P                  V4      '       d!   \        \        P                  ! V4      4      pM\"        P$                  ! VR7      hRV9  d	   Wd/VR&   KÙ  WAR,          V&   Kæ  V\&        9   g   Kó  WBV&   Kù  	  VP                  V4       R	V9   d*   \
        P                  P)                  VR	,          4      VR	&   R FC  p\*        P,                  ! W,          4      '       d   K'  \"        P.                  ! W1V,          R
7      h	  \1        VP3                  4       4      P5                  \6        4      pV F  pVP9                  V4       K  	  W3# )ar  Parse known Pro config file

Attempt to find configuration in cwd and fallback to DEFAULT_CONFIG_FILE.
Any missing configuration keys will be set to CONFIG_DEFAULTS.

Values are overridden by any environment variable with prefix 'UA_'.

@param config_path: Fullpath to pro configfile. If unspecified, use
    DEFAULT_CONFIG_FILE.

@return: Dict of configuration values.
z%Using client configuration file at %sÚua_:é   NNÚ	features_:é	   NNÚyaml)ÚfilepathrÓ   rÄ   rØ   )rE   rL   )Úcopyr   r4   r8   ræ   r  ÚpathÚexistsÚupdater   r   Ú	load_filer  ÚitemsÚlowerÚ
startswithÚendswithr
   ÚInvalidFeatureYamlConfigValuer   Ú
expanduserr   Úis_service_urlÚInvalidURLConfigValueÚsetÚkeysÚ
differenceÚVALID_UA_CONFIG_KEYSÚpop)	Úconfig_pathr!   Úenv_keysrÙ   rZ   Ú
field_nameÚfeature_field_namer3   r  s	   &        r)   r5   r5   ð  sÜ  € ô �)Š)”OÓ
$€CçÜ%Ó'ˆä‡I�IÐ5°{ÔCÜ	‡w�w‡~�~�k×"Ò"Ø�
‰
”9œV×-Ò-¨kÓ:Ó;Ô<Ø€HÜ—j‘j×&Ñ&Ö(‰
ˆØ�i‰i‹kˆØ�>‰>˜%× Ô à˜R�ˆJØ×$Ñ$ [×1Ò1à%/°¥^Ð"ð —>‘> &×)Ò)Ü—w‘w—~‘~ e×,Ò,Ü )¬&×*:Ò*:¸5Ó*AÓ B™ä(×FÒFØ%*ôð ð  SÔ(Ø'9Ð&A�C˜
“Oà:?˜
•OÐ$6Ó7ØÔ5Ö5Ø',˜Ó$ñ5 )ð6 ‡J�JˆxÔØ�SÔÜŸ'™'×,Ñ,¨S°­_Ó=ˆˆJ‰Û/ˆÜ×"Ò" 3¥8×,Ô,Ü×2Ò2°sÀcÅ(ÔKÐKñ 0ô �s—x‘x“z“?×-Ñ-Ô.BÓC€LÛ#ˆØ�‰�Öñ $ð ÐÐr,   c                ó$   € V ^8„  d   QhR\         /# )r    Úoverride_keyrB   )r'   s   "r)   r*   r*   /  s   € ÷ ñ ´ñ r,   c                ó   a € V 3R lpV# )aÌ  Decorator used to override function return by config settings.

To identify if we should override the function return, we check
if the config object has the expected override key, we use it
has, we will use the key value as the function return. Otherwise
we will call the function normally.

@param override_key: key to be looked for in the settings_override
 entry in the config dict. If that key is present, we will return
 its value as the function return.
c                 ó4   <a € \        S 4      V V3R  l4       pV# )c                  ó¦   <€ \        4       w  rV P                  R / 4      P                  S\        4      pV\        8w  d   SR8X  d   VR3# V# S! 4       # )Úsettings_overridesÚ
cloud_typeN)r5   rF   ÚUNSET_SETTINGS_OVERRIDE_KEY)r!   Ú_Úvalue_overrideÚfr?  s      €€r)   Únew_fÚ>apply_config_settings_override.<locals>.wrapper.<locals>.new_f=  sY   ø€ ä!“^‰FˆCØ ŸW™WÐ%9¸2Ó>×BÑBØÔ9óˆNð Ô!<Ô<Ø <Ô/Ø*¨DÐ1Ð1Ø%Ð%á“3ˆJr,   )r   )rH  rI  r?  s   f €r)   ÚwrapperÚ/apply_config_settings_override.<locals>.wrapper<  s    ù€ Ü	ˆq‹õ	ó 
ð	ð ˆr,   © )r?  rK  s   f r)   Úapply_config_settings_overriderN  /  s   ø€ õð" €Nr,   )rV   r`   r{   r�   rl   rf   r|   rŽ   r–   rœ   r°   r¶   rr   r¾   )
rE   rÄ   rÓ   rÐ   rÇ   rL   rr   rC  r0   rP   rU   )/r(  rÊ   r  Ú	functoolsr   r   Útypingr   r   r   rø   r   r	   r
   r   r   r   r   r   Úuaclient.defaultsr   r   r   r   r   r   r   r   r   Úuaclient.filesr   r   Úuaclient.yamlr   Ú	getLoggerÚreplace_top_level_logger_namer  r8   rE  ÚUA_CONFIGURABLE_KEYSr8  Úget_event_loggerr€   r   r4   r5   rN  rM  r,   r)   Ú<module>rX     s›   ðÛ Û Û 	ß &ß &Ñ &÷	÷ 	ó 	÷
÷ 
õ 
÷ 9Ý #à×Ò˜×:Ò:¸8ÓDÓE€à&Ð ðÐ ð$Ð ð 	×%Ò%Ó'€÷]ñ ]õ@ô<÷~r,   