+
    =l já  ã                   óð   € R t ^ RIt^ RIt^ RIHt ^ RIHtHtHtH	t	H
t
 ^ RIHt ^ RIHt ^ RIHtHt ^ RIHt ^ RIHtHt R	tR
t]P4                  ! ]
P6                  ! ]4      4      tR R ltR R ltR t R# )a%  
Update messaging text for use in MOTD and APT custom Ubuntu Pro messages.

Messaging files will be emitted to /var/lib/ubuntu-advantage/message-* which
will be sourced by apt-hook/hook.cc and various /etc/update-motd.d/ hooks to
present updated text about Ubuntu Pro service and token state.
N)Úexists)ÚcontractÚdefaultsÚmessagesÚsystemÚutil)Ú_updates)Ú_enabled_services)ÚContractExpiryStatusÚ_is_attached©ÚUAConfig)Úmachine_tokenÚnoticeszmotd-contract-statusz6/usr/lib/update-notifier/update-motd-updates-availablec                ó$   € V ^8„  d   QhR\         /# )é   Úcfgr   )Úformats   "ÚA/usr/lib/python3/dist-packages/uaclient/timer/update_messaging.pyÚ__annotate__r       s   € ÷ -ñ -¤ñ -ó    c                 óú  € \         P                  ! V 4      pVP                   pVP                  R / 4      P                  R/ 4      P                  RR4      p\        P                  ! V 4      pVP                  VP                  RR4      V4      pVP                  R / 4      P                  R/ 4      P                  RR4      pVe9   WaP                  8w  d'   VVR ,          R,          R&   VP                  V4       R# R# R# )ÚmachineTokenInfoÚcontractInfoÚidNÚmachineTokenÚ ÚeffectiveTo)r   Úget_machine_token_fileÚgetr   ÚUAContractClientÚget_contract_machineÚcontract_expiry_datetimeÚwrite)r   Úmachine_token_fileÚ
orig_tokenÚcontract_idÚcontract_clientÚrespÚresp_expirys   &      r   Úupdate_contract_expiryr*       sõ   € Ü&×=Ò=¸cÓBÐØ#×1Ñ1€Jà�‰Ð)¨2Ó.ß	‰ˆ^˜RÓ	 ß	‰ˆT�4‹ð ô
 ×/Ò/°Ó4€OØ×/Ñ/Ø�‰�~ rÓ*¨Kó€Dð 	�‰Ð# RÓ(ß	‰ˆ^˜RÓ	 ß	‰ˆ]˜DÓ	!ð ð 	ÒØ×FÑFÔFð ð 	Ð%Õ& ~Õ6Øñ	
ð 	× Ñ  Ö,ñ Gñ 	 r   c                ó0   € V ^8„  d   QhR\         R\        /# )r   r   Úreturn)r   Úbool)r   s   "r   r   r   ;   s   € ÷ fñ fœhð f¬4ñ fr   c                ó	  € \        V 4      pVP                  '       g   R# \        P                  R4       \        P
                  P                  V P                  R\        4      pVP                  pVP                  p\        P                  ! V 4      pV\        P                  P                  \        P                   P                  \        P"                  P                  39   d/   \%        V 4       \        V 4      pVP                  pVP                  pV\        P&                  P                  \        P(                  P                  39   dG   \*        P,                  ! \*        P.                  P0                  4       \2        P4                  ! V4       R# V\        P                  P                  8X  d|   \*        P,                  ! \*        P.                  P0                  4       \2        P6                  ! V\8        P:                  P=                  V4      P?                  VR7      R,           4       R# V\        P                   P                  8X  d¸   \*        P,                  ! \*        P.                  P0                  4       \@        PB                  V,           pVPD                  pVf   RpMVPG                  R4      p\2        P6                  ! V\8        PH                  P=                  V4      P?                  VVR7      R,           4       R# V\        P"                  P                  8X  Edh   \*        PJ                  ! \*        P.                  P0                  4       R	p	^ p
\M        V 4      PN                   Uu0 uF  q»PP                  kK  	  pp\2        PR                  ! 4       '       d*   R
V9   d"   R
p	\U        V 4      PV                  PX                  p
MC\2        PZ                  ! 4       '       d)   RV9   d"   Rp	\U        V 4      PV                  P\                  p
V
^ 8X  d/   \2        P6                  ! V\8        P0                  R,           4       R# \2        P6                  ! V\8        P^                  P=                  V
4      P?                  V
V	R7      R,           4       R# u upi )zœEmit human-readable status message used by motd.

Used by /etc/update.motd.d/91-contract-ua-esm-status

:param cfg: UAConfig instance for this environment.
Fz&Updating Ubuntu Pro messages for MOTD.r   )Úremaining_daysz

ÚUnknownz%d %b %Y)Úexpired_dater/   zn/az	esm-infrazesm-apps)Úpkg_numÚserviceT)0r   Úis_attachedÚLOGÚinfoÚosÚpathÚjoinÚdata_dirÚMOTD_CONTRACT_STATUS_FILE_NAMEÚcontract_statusÚcontract_remaining_daysr   r   r
   ÚACTIVE_EXPIRED_SOONÚvalueÚEXPIRED_GRACE_PERIODÚEXPIREDr*   ÚACTIVEÚNONEr   ÚremoveÚNoticeÚCONTRACT_EXPIREDr   Úensure_file_absentÚ
write_filer   ÚCONTRACT_EXPIRES_SOONÚ	pluralizer   r   Ú!CONTRACT_EXPIRY_GRACE_PERIOD_DAYSr"   ÚstrftimeÚCONTRACT_EXPIRED_GRACE_PERIODÚaddr	   Úenabled_servicesÚnameÚis_current_series_active_esmÚapi_u_pro_packages_updates_v1ÚsummaryÚnum_esm_infra_updatesÚis_current_series_ltsÚnum_esm_apps_updatesÚCONTRACT_EXPIRED_WITH_PKGS)r   Úis_attached_infoÚmotd_contract_status_msg_pathÚexpiry_statusr/   r$   Úgrace_period_remainingÚexp_dtÚ
exp_dt_strr3   r2   ÚsÚenabled_services_namess   &            r   Úupdate_motd_messagesr`   ;   s²  € ô $ CÓ(ÐØ×'×'Ð'Ùä‡H�HÐ5Ô6Ü$&§G¡G§L¡LØ�‰�jÔ"@ó%Ð!ð %×4Ñ4€MØ%×=Ñ=€NÜ&×=Ò=¸cÓBÐàÜ×0Ñ0×6Ñ6Ü×1Ñ1×7Ñ7Ü×$Ñ$×*Ñ*ðô ô
 	˜sÔ#Ü'¨Ó,ÐØ(×8Ñ8ˆØ)×AÑAˆàÜ×#Ñ#×)Ñ)Ü×!Ñ!×'Ñ'ðô ô 	�Š”w—~‘~×6Ñ6Ô7Ü×!Ò!Ð"?Ô@ñF ðE 
Ô.×BÑB×HÑHÔ	HÜ�Š”w—~‘~×6Ñ6Ô7Ü×ÒØ)Ü×*Ñ*×4Ñ4°^ÓD×KÑKØ-ð Ló ð õô	
ñ@ ðs 
Ô.×CÑC×IÑIÔ	IÜ�Š”w—~‘~×6Ñ6Ô7ä×6Ñ6¸ÕGð 	ð $×<Ñ<ˆØŠ>Ø"‰JàŸ™¨Ó4ˆJÜ×ÒØ)Ü×2Ñ2×<Ñ<Øóç‰fØ'Ø5ð ó ð õô		
ñ^ ðK 
Ô.×6Ñ6×<Ñ<Õ	<Ü�Š”G—N‘N×3Ñ3Ô4àˆØˆô .¨cÓ2×CÒCó"
ÙC�q�FŒFÑCð 	ð "
ô ×.Ò.×0Ò0ØÐ4Ô4Ø%�Ü7Øóç‘'×/Ñ/ð øô ×)Ò)×+Ò+ØÐ3Ô3Ø$�Ü7Øóç‘'×.Ñ.ð ð �aŒ<Ü×ÒØ-Ü×)Ñ)¨FÕ2ôñ ô ×ÒØ-Ü×3Ñ3×=Ñ=¸gÓF×MÑMØ#Ø#ð Nó ð õ	ôñ ùò?"
s   Í*R
c                  óÊ   € \        \        4      '       d     \        P                  ! \        R .4       R# R#   \         d!   p \
        P                  T 4        Rp ? R# Rp ? ii ; i)z--forceN)r   ÚUPDATE_NOTIFIER_MOTD_SCRIPTr   ÚsubpÚ	Exceptionr5   Ú	exception)Úexcs    r   Úrefresh_motdrg   ¤   sM   € ô Ô)×*Ò*ð	Ü�KŠKÔ4°iÐ@ÖAñ +øô ô 	Ü�M‰M˜#×Òûð	ús   —7 ·A"ÁAÁA")!Ú__doc__Úloggingr7   Úos.pathr   Úuaclientr   r   r   r   r   Ú&uaclient.api.u.pro.packages.updates.v1r   rR   Ú-uaclient.api.u.pro.status.enabled_services.v1r	   Ú(uaclient.api.u.pro.status.is_attached.v1r
   r   Úuaclient.configr   Úuaclient.filesr   r   r;   rb   Ú	getLoggerÚreplace_top_level_logger_nameÚ__name__r5   r*   r`   rg   © r   r   Ú<module>ru      so   ðñó Û 	Ý ç ?Õ ?õõ L÷õ %ß 1à!7Ð à<ð ð ×Ò˜×:Ò:¸8ÓDÓE€õ-õ6fôR
r   