3
Ì aõV  ã               @   sâ  d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZm	Z	 y$d dl
mZmZmZmZmZmZ W n ek
rx   Y nX G dd„ dƒZejd ej Zejd ej Ze jG dd	„ d	e jƒƒZe jG d
d„ de jƒƒZe jG dd„ de jƒƒZe jG dd„ de jƒƒZe jG dd„ de jƒƒZe jG dd„ de jƒƒZe jG dd„ de jƒƒZ G dd„ dƒZ!dZ"dZ#dZ$ej%j&ejej%j& ej ej'j&ejej'j& ej ej(j&ej)ej(j& ej ej*j&ej)ej*j& ej ej+j&ejej+j& ej ej,j&ej)ej,j& ej e"eje" ej e#eje# ej e$eje$ ej i	Z-dZ.dZ/dZ0dZ1dZ2d Z3d!Z4d"Z5ed# Z6ed$ Z7ed% Z8d&Z9d'Z:d(Z;d)Z<d*Z=d+Z>d,Z?d-Z@d.ZAd/ZBd0ZCd1ZDeDd2 ZEeDd3 ZFd4ZGd5ZHd6ZId7ZJd8ZKd9ZLd:ZMd;ZNd<ZOd=ZPd>ZQd?ZRd@ZSdAe dB ZTdCe dB ZUdDe ZVdEe ZWdFe ZXdGZYdHZZdIZ[dJZ\dKZ]dLZ^dMZ_dNZ`dOZadPZbdQZcdRZddSZedTe\ ZfdUe\ ZgdVe\ ZhdWjieƒZjdXZkdYjieƒZldZZmd[Znd\Zod]Zpd^Zqd_Zrd`jiedaZsdbe Ztdce Zudde dB Zvdee ZwdfZxdgZydhZzdiZ{djZ|dke Z}dlZ~dmZdnZ€doZdpZ‚dqZƒdrZ„dsZ…dtZ†duZ‡dvZˆdwZ‰dxe dB ZŠdyZ‹dzZŒd{Zd|ZŽd}Zd~ZdZ‘d€Z’dZ“d‚Z”dƒe” Z•d„Z–d…Z—d†Z˜d‡Z™dˆZšd‰Z›dŠZœd‹ZdŒjie	dZžeŸeŸdŽœdd„Z d‘eŸd’œd“d”„Z¡d¥d•d–d—d˜œd™dš„Z¢d›eŸdœœddž„Z£d›d›dœœdŸd „Z¤d›eŸdœœd¡d¢„Z¥d›eŸdœœd£d¤„Z¦dS )¦é    N)ÚBASE_UA_URLÚCONFIG_FIELD_ENVVAR_ALLOWLISTÚPRINT_WRAP_WIDTHÚDOCUMENTATION_URL)ÚAnyÚDictÚListÚOptionalÚTupleÚUnionc               @   s   e Zd ZdZdZdZdZdS )ÚTxtColorz[92mz[37mz[91mz[0mN)Ú__name__Ú
__module__Ú__qualname__ÚOKGREENÚDISABLEGREYÚFAILÚENDC© r   r   ú1/usr/lib/python3/dist-packages/uaclient/status.pyr      s   r   u   âœ”u   âœ˜c               @   s   e Zd ZdZeƒ Zeƒ ZdS )ÚApplicationStatuszO
    An enum to represent the current application status of an entitlement
    N)r   r   r   Ú__doc__ÚobjectÚENABLEDÚDISABLEDr   r   r   r   r       s   r   c               @   s   e Zd ZdZdZdZdS )ÚContractStatusz¡
    An enum to represent whether a user is entitled to an entitlement

    (The value of each member is the string that will be used in status
    output.)
    ÚyesÚnoN)r   r   r   r   ÚENTITLEDÚ
UNENTITLEDr   r   r   r   r   *   s   r   c               @   s   e Zd ZdZeƒ Zeƒ ZdS )ÚApplicabilityStatuszQ
    An enum to represent whether an entitlement could apply to this machine
    N)r   r   r   r   r   Ú
APPLICABLEÚINAPPLICABLEr   r   r   r   r    7   s   r    c               @   s   e Zd ZdZdZdZdS )ÚUserFacingAvailabilitya‹  
    An enum representing whether a service could be available for a machine.

    'Availability' means whether a service is available to machines with this
    architecture, series and kernel. Whether a contract is entitled to use
    the specific service is determined by the contract level.

    This enum should only be used in display code, it should not be used in
    business logic.
    r   r   N)r   r   r   r   Ú	AVAILABLEÚUNAVAILABLEr   r   r   r   r#   A   s   r#   c               @   s   e Zd ZdZdZdZdZdS )ÚUserFacingConfigStatuszš
    An enum representing the user-visible config status of UA system.

    This enum will be used in display code and will be written to status.json
    ZinactiveZactivezreboot-requiredN)r   r   r   r   ÚINACTIVEÚACTIVEZREBOOTREQUIREDr   r   r   r   r&   R   s   r&   c               @   s    e Zd ZdZdZdZdZdZdS )ÚUserFacingStatusz¬
    An enum representing the states we will display in status output.

    This enum should only be used in display code, it should not be used in
    business logic.
    ÚenabledÚdisabledzn/au   â€”N)r   r   r   r   r(   r'   r"   r%   r   r   r   r   r)   _   s
   r)   c               @   s.   e Zd ZdZeƒ Zeƒ Zeƒ Zeƒ Zeƒ Z	dS )ÚCanEnableFailureReasonzK
    An enum representing the reasons an entitlement can't be enabled.
    N)
r   r   r   r   r   ÚNOT_ENTITLEDÚALREADY_ENABLEDr"   ÚIS_BETAÚINCOMPATIBLE_SERVICEr   r   r   r   r,   n   s   r,   c               @   s$   e Zd Zdeee ddœdd„ZdS )ÚCanEnableFailureN)ÚreasonÚmessageÚreturnc             C   s   || _ || _d S )N)r2   r3   )Úselfr2   r3   r   r   r   Ú__init__|   s    zCanEnableFailure.__init__)N)r   r   r   r,   r	   Ústrr6   r   r   r   r   r1   {   s   
r1   Z	essentialZstandardZadvancedzError: {issue_id} not found.z#A fix is available in {fix_stream}.z The update is not yet installed.zSThe update is not installed because this system is not attached to a
subscription.
zXThe update is not installed because this system is attached to an
expired subscription.
zQThe update is not installed because this system does not have
{service} enabled.
z The update is already installed.zPFor easiest security on {title}, use Ubuntu Pro. https://ubuntu.com/{cloud}/pro.z {issue} is resolved.z {issue} is not resolved.z% {issue} does not affect your system.z.{count} affected package{plural_str} installedz{issue} is addressed.z{issue} is resolved.z7{issue}: {title}
https://ubuntu.com/security/{url_path}zRError: UA service: {service} is not enabled.
Without it, we cannot fix the system.zgError: The current UA subscription is not entitled to: {service}.
Without it, we cannot fix the system.zAPT install failed.zAPT update failed.zAAPT update failed to read APT config for the following URL{}:
{}.zFailure checking APT policy.zUpdating package listszXFailed to connect to authentication server
Check your Internet connection and try again.z {error}z% Failed to access URL: {url}. {error}zoFailed to access URL: {url}
Cannot verify certificate of server
Please install "ca-certificates" and try again.zhFailed to access URL: {url}
Cannot verify certificate of server
Please check your openssl configuration.z2This command must be run as root (try using sudo).z4{title} is not currently enabled
See: sudo ua statuszCould not enable {title}.zCould not disable {title}.z{title} enabledzoThis machine is already attached to '{account_name}'
To use a different subscription first run: sudo ua detach.z/{title} is already enabled.
See: sudo ua statuszZ{title} is not available for platform {arch}.
Supported platforms are: {supported_arches}.z-{title} is not available for Ubuntu {series}.zY{title} is not available for kernel {kernel}.
Supported flavors are: {supported_kernels}.z\{title} is not available for kernel {kernel}.
Minimum kernel version required: {min_kernel}.zGThis subscription is not entitled to {title}
For more information see: Ú.zKUnable to determine auto-attach platform support
For more information see: z@Auto-attach image support is not available on {cloud_type}
See: z>Auto-attach image support is not available on this image
See: z7This machine is not attached to a UA subscription.
See zKUbuntu Advantage server provided no aptURL directive for {entitlement_name}z*No Ubuntu Advantage operations are runningz0Operation in progress: {lock_holder} (pid:{pid})zAre you sure? (y/N) zEFailed running reboot_cmds script. See: /var/log/ubuntu-advantage.logz>Livepatch support requires a system reboot across LTS upgrade.zsnapd does not have wait command.
Enabling Livepatch can fail under this scenario
Please, upgrade snapd if Livepatch enable fails and try again.z:This FIPS install is out of date, run: sudo ua enable fipsz>FIPS support requires system reboot to complete configuration.z<Disabling FIPS requires system reboot to complete operation.z.{service} {pkg} package could not be installedzsFIPS kernel is running in a disabled state.
  To manually remove fips kernel: https://discourse.ubuntu.com/t/20738
zåWarning: FIPS kernel is not optimized for your specific cloud.
To fix it, run the following commands:

    1. sudo ua disable fips
    2. sudo apt-get remove ubuntu-fips
    3. sudo ua enable fips --assume-yes
    4. sudo reboot
z*This will install the FIPS core packages.
z`This will install the FIPS core packages and will include priority updates
with security fixes.
z5This will disable access to certified FIPS packages.
z1Enter your token (from {}) to attach this system:z=Enter your new token to renew UA subscription on this system:zOpen a browser to: {}/subscribez({name: <14}{available: <11}{description}z-SERVICE       ENTITLED  STATUS    DESCRIPTIONz4{name: <14}{entitled: <19}{status: <19}{description}z*Contract "{contract_id}" expired on {date}z6Contract "{contract_id}" is not effective until {date}z1Contract "{contract_id}" has never been effectivez@Attach denied:
{{reason}}
Visit {url} to manage contract tokens.)Úurlz8Expired token or contract. To obtain a new token visit: zInvalid token. See zPAttach requires a token: sudo ua attach <TOKEN>
To obtain a token please visit: zFailed to attach machine. See z8Failed to enable default services, check: sudo ua statusz2This machine is now attached to '{contract_name}'
z+This machine is now successfully attached'
z:Cannot {operation} unknown service '{name}'.
{service_msg}zUnexpected error(s) occurred.
For more details, see the log: /var/log/ubuntu-advantage.log
To file a bug run: ubuntu-bug ubuntu-advantage-toolsz~To use '{name}' you need an Ubuntu Advantage subscription
Personal and community subscriptions are available at no charge
See zEnabling default service {name}z-A reboot is required to complete {operation}.zDService {name} is recommended by default. Run: sudo ua enable {name}zThis machine is now detached.z&Unable to automatically detach machinez,One moment, checking your subscription firstz)Successfully refreshed your subscription.z#Unable to refresh your subscriptionz-Successfully processed your ua configuration.zUnable to process uaclient.confz›{service_being_enabled} cannot be enabled with {incompatible_service}.
Disable {incompatible_service} and proceed to enable {service_being_enabled}? (y/N) zNCannot enable {service_being_enabled} when {incompatible_service} is enabled.
zMUbuntu {series} does not provide {cloud} optimized FIPS kernel
For help see: zsInvalid value for {path_to_value} in /etc/ubuntu-advantage/uaclient.conf. Expected {expected_value}, found {value}.z:Failed to find the machine token overlay file: {file_path}z8Found error: {error} when reading json file: {file_path}z]Package fixes cannot be installed.
To install them, run this command as root (try using sudo)zÂ * Introducing Extended Security Maintenance for Applications.
   Receive updates to over 30,000 software packages with your
   Ubuntu Advantage subscription. Free for personal use.

     {url}
z CAUTION: Your {title} service will expire in {remaining_days} days.
Renew UA subscription at {url} to ensure
continued security coverage for your applications.
zÍCAUTION: Your {title} service expired on {expired_date}.
Renew UA subscription at {url} to ensure
continued security coverage for your applications.
Your grace period will expire in {remaining_days} days.
z—*Your {title} subscription has EXPIRED*

{pkg_num} additional security update(s) could have been applied via {title}.

Renew your UA services at {url}
z×*Your {title} subscription has EXPIRED*
Enabling {title} service would provide security updates for following packages:
  {pkg_names}
{pkg_num} {name} security update(s) NOT APPLIED. Renew your UA services at
{url}
z_Enable {title} to receive additional future security updates.
See {url} or run: sudo ua status
z(*Your {title} subscription has EXPIRED*
zš*The following packages could receive security updates with {title} service enabled:
  {pkg_names}
Learn more about {title} service {eol_release}at {url}
zUUbuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
a;  /*
 * Autogenerated by ubuntu-advantage-tools
 * Do not edit this file directly
 *
 * To change what ubuntu-advantage-tools sets, run one of the following:
 * Substitute "apt_https_proxy" for "apt_http_proxy" as necessary.
 *   sudo ua config set apt_http_proxy=<value>
 *   sudo ua config unset apt_http_proxy
 */
z™# Ubuntu-Advantage client config file.
# If you modify this file, run "ua refresh config" to ensure changes are
# picked up by Ubuntu-Advantage client.

zSetting {service} proxyz3"{proxy}" is not a valid url. Not setting as proxy.z/"{proxy}" is not working. Not setting as proxy.zEError trying to use "{proxy}" as proxy to reach "{test_url}": {error}z‡No proxy set in config; however, proxy is configured for: {{services}}.
See {docs_url} for more information on ua proxy configuration.
)Zdocs_url)Ústringr4   c             C   s   t jjƒ rtj| | ƒS | S )z=Return colorized string if using a tty, else original string.)ÚsysÚstdoutÚisattyÚSTATUS_COLORÚget)r:   r   r   r   Úcolorize4  s    r@   zList[List[str]])Úcommandsr4   c             C   sx   d}x&| D ]}|r|d7 }|dj |ƒ7 }q
W dj tj|td ddƒ}d|krXd	}d
}nd}d}djtj|||tjdS )NÚ z && ú z \
é   z  )ÚwidthÚsubsequent_indentÚ
z{
  z
}z{ z }z%{color}{prefix}{content}{suffix}{end})ZcolorÚprefixÚcontentÚsuffixÚend)ÚjoinÚtextwrapÚwrapr   Úformatr   r   r   )rA   rI   ÚcmdZwrapped_contentrH   rJ   r   r   r   Úcolorize_commands9  s&    
rQ   zList[Tuple[str, str]]zOptional[str]z	List[str])Úcolumn_dataÚheaderr4   c                sj   dg}|r|j |ƒ tdd„ | D ƒƒ}|dkrRdj|ƒ‰ |j‡ fdd„| D ƒƒ n|jdd„ | D ƒƒ |S )zžReturn a list of content lines to print to console for a section

    Content lines will be center-aligned based on max value length of first
    column.
    rB   c             S   s   g | ]}t |d  ƒ‘qS )r   )Úlen)Ú.0Úpairr   r   r   ú
<listcomp>`  s    z.get_section_column_content.<locals>.<listcomp>r   z{{:>{}}}: {{}}c                s   g | ]}ˆ j |Ž ‘qS r   )rO   )rU   rV   )Útemplater   r   rW   c  s    c             S   s   g | ]}|d  ‘qS )é   r   )rU   rV   r   r   r   rW   f  s    )ÚappendÚmaxrO   Úextend)rR   rS   rI   Ztemplate_lengthr   )rX   r   Úget_section_column_contentU  s    

r]   zDict[str, Any])Ústatusr4   c             C   s–  | d sVt jddddg}x"| d D ]}|jt jf |Žƒ q$W |jdtgƒ dj|ƒS tg}xb| d D ]V}|d	 }|jd
ƒ}|r„|n|d }|d t|ƒt|d ƒ|dœ}|jt	jf |Žƒ qfW | d d }| jdƒrò|jt
| jdƒpèg ddƒ |jdƒ g }	| d d }
|
r |	jd|
fƒ | d d }|r@|	jd|fƒ | d dkrv|	jdt| d ƒfƒ |	jdt|ƒfƒ |	rŒ|jt
|	dƒ dj|ƒS )z&Format status dict for tabular output.ZattachedZSERVICEr$   ZDESCRIPTION)ÚnameÚ	availableÚdescriptionÚservicesrB   rG   ÚentitledZdescription_overridera   r_   r^   )r_   rc   r^   ra   ÚcontractÚtech_support_levelZnoticesZNOTICES)rS   z*
Enable services with: ua enable <service>ZaccountZAccountZSubscriptionÚoriginÚfreezValid untilÚexpireszTechnical support level)rR   )ÚSTATUS_UNATTACHED_TMPLrO   rZ   r\   ÚMESSAGE_UNATTACHEDrL   ÚSTATUS_HEADERr?   r@   ÚSTATUS_TMPLr]   r7   )r^   rI   ÚserviceÚservice_statusrc   Zdescr_overridera   Zfmt_argsre   ÚpairsÚaccount_nameZcontract_namer   r   r   Úformat_tabularj  sL    





rq   c             C   sJ   dd„ t tjjƒ ƒD ƒ| d< dd„ | jdg ƒD ƒ}|| d< | jddƒ | S )Nc             S   s8   g | ]0\}}|j ƒ tks*|jd ƒs*|dkr||dœ‘qS )ZUA_FEATURESZUA_CONFIG_FILE)r_   Úvalue)Úlowerr   Ú
startswith)rU   r_   rr   r   r   r   rW   ¦  s   
z)_format_status_output.<locals>.<listcomp>Zenvironment_varsc             S   s    g | ]}|j d dƒdkr|‘qS )r`   r   )r?   )rU   rm   r   r   r   rW   ®  s   rb   rf   rB   )ÚsortedÚosÚenvironÚitemsr?   Úpop)r^   Zavailable_servicesr   r   r   Ú_format_status_output¤  s    rz   c             C   s   ddl m} tjt| ƒ|dS )Nr   )ÚDatetimeAwareJSONEncoder)Úcls)Úuaclient.utilr{   ÚjsonÚdumpsrz   )r^   r{   r   r   r   Úformat_json_statusº  s    r€   c             C   s   dd l }|jt| ƒddS )Nr   F)Údefault_flow_style)ÚyamlÚdumprz   )r^   r‚   r   r   r   Úformat_yaml_statusÂ  s    r„   )N)§Úenumr~   r;   rM   rv   Úuaclient.defaultsr   r   r   r   Útypingr   r   r   r	   r
   r   ÚImportErrorr   r   r   ZOKGREEN_CHECKr   ZFAIL_XÚuniqueÚEnumr   r   r    r#   r&   r)   r,   r1   Z	ESSENTIALZSTANDARDZADVANCEDr(   rr   r'   r"   r   r%   r   r   r>   Z$MESSAGE_SECURITY_FIX_NOT_FOUND_ISSUEZ#MESSAGE_SECURITY_FIX_RELEASE_STREAMZ%MESSAGE_SECURITY_UPDATE_NOT_INSTALLEDZ2MESSAGE_SECURITY_UPDATE_NOT_INSTALLED_SUBSCRIPTIONZ-MESSAGE_SECURITY_UPDATE_NOT_INSTALLED_EXPIREDZ!MESSAGE_SECURITY_SERVICE_DISABLEDZ!MESSAGE_SECURITY_UPDATE_INSTALLEDZMESSAGE_SECURITY_USE_PRO_TMPLZMESSAGE_SECURITY_ISSUE_RESOLVEDÚ#MESSAGE_SECURITY_ISSUE_NOT_RESOLVEDZ!MESSAGE_SECURITY_ISSUE_UNAFFECTEDZMESSAGE_SECURITY_AFFECTED_PKGSZMESSAGE_USN_FIXEDZMESSAGE_CVE_FIXEDZMESSAGE_SECURITY_URLZ'MESSAGE_SECURITY_UA_SERVICE_NOT_ENABLEDZ(MESSAGE_SECURITY_UA_SERVICE_NOT_ENTITLEDZMESSAGE_APT_INSTALL_FAILEDZMESSAGE_APT_UPDATE_FAILEDZ%MESSAGE_APT_UPDATE_INVALID_URL_CONFIGZMESSAGE_APT_POLICY_FAILEDZMESSAGE_APT_UPDATING_LISTSZMESSAGE_CONNECTIVITY_ERRORZLOG_CONNECTIVITY_ERROR_TMPLZ$LOG_CONNECTIVITY_ERROR_WITH_URL_TMPLZ.MESSAGE_SSL_VERIFICATION_ERROR_CA_CERTIFICATESZ-MESSAGE_SSL_VERIFICATION_ERROR_OPENSSL_CONFIGÚMESSAGE_NONROOT_USERÚMESSAGE_ALREADY_DISABLED_TMPLZMESSAGE_ENABLED_FAILED_TMPLZMESSAGE_DISABLE_FAILED_TMPLZMESSAGE_ENABLED_TMPLÚMESSAGE_ALREADY_ATTACHEDÚMESSAGE_ALREADY_ENABLED_TMPLÚMESSAGE_INAPPLICABLE_ARCH_TMPLÚ MESSAGE_INAPPLICABLE_SERIES_TMPLÚ MESSAGE_INAPPLICABLE_KERNEL_TMPLÚ$MESSAGE_INAPPLICABLE_KERNEL_VER_TMPLÚMESSAGE_UNENTITLED_TMPLZ&MESSAGE_UNABLE_TO_DETERMINE_CLOUD_TYPEZ*MESSAGE_UNSUPPORTED_AUTO_ATTACH_CLOUD_TYPEZMESSAGE_UNSUPPORTED_AUTO_ATTACHrj   Ú!MESSAGE_MISSING_APT_URL_DIRECTIVEZMESSAGE_NO_ACTIVE_OPERATIONSÚMESSAGE_LOCK_HELDÚPROMPT_YES_NOZMESSAGE_REBOOT_SCRIPT_FAILEDZ%MESSAGE_LIVEPATCH_LTS_REBOOT_REQUIREDZ$MESSAGE_SNAPD_DOES_NOT_HAVE_WAIT_CMDZ MESSAGE_FIPS_INSTALL_OUT_OF_DATEZMESSAGE_FIPS_REBOOT_REQUIREDZ$MESSAGE_FIPS_DISABLE_REBOOT_REQUIREDZ"MESSAGE_FIPS_PACKAGE_NOT_AVAILABLEZNOTICE_FIPS_MANUAL_DISABLE_URLZ&NOTICE_WRONG_FIPS_METAPACKAGE_ON_CLOUDZPROMPT_FIPS_PRE_ENABLEZPROMPT_FIPS_UPDATES_PRE_ENABLEZPROMPT_FIPS_PRE_DISABLErO   ZPROMPT_ENTER_TOKENZPROMPT_EXPIRED_ENTER_TOKENZPROMPT_UA_SUBSCRIPTION_URLri   rk   rl   Z MESSAGE_ATTACH_FORBIDDEN_EXPIREDZ MESSAGE_ATTACH_FORBIDDEN_NOT_YETZMESSAGE_ATTACH_FORBIDDEN_NEVERZMESSAGE_ATTACH_FORBIDDENZMESSAGE_ATTACH_EXPIRED_TOKENZMESSAGE_ATTACH_INVALID_TOKENZMESSAGE_ATTACH_REQUIRES_TOKENZMESSAGE_ATTACH_FAILUREZ'MESSAGE_ATTACH_FAILURE_DEFAULT_SERVICESZMESSAGE_ATTACH_SUCCESS_TMPLZ'MESSAGE_ATTACH_SUCCESS_NO_CONTRACT_NAMEZ'MESSAGE_INVALID_SERVICE_OP_FAILURE_TMPLZMESSAGE_UNEXPECTED_ERRORZ&MESSAGE_ENABLE_FAILURE_UNATTACHED_TMPLÚMESSAGE_ENABLE_BY_DEFAULT_TMPLZ#MESSAGE_ENABLE_REBOOT_REQUIRED_TMPLÚ%MESSAGE_ENABLE_BY_DEFAULT_MANUAL_TMPLZMESSAGE_DETACH_SUCCESSZ!MESSAGE_DETACH_AUTOMATION_FAILUREZMESSAGE_REFRESH_CONTRACT_ENABLEZ MESSAGE_REFRESH_CONTRACT_SUCCESSZ MESSAGE_REFRESH_CONTRACT_FAILUREZMESSAGE_REFRESH_CONFIG_SUCCESSZMESSAGE_REFRESH_CONFIG_FAILUREÚMESSAGE_INCOMPATIBLE_SERVICEÚ)MESSAGE_INCOMPATIBLE_SERVICE_STOPS_ENABLEZMESSAGE_FIPS_BLOCK_ON_CLOUDÚERROR_INVALID_CONFIG_VALUEZ&INVALID_PATH_FOR_MACHINE_TOKEN_OVERLAYZERROR_JSON_DECODING_IN_FILEZMESSAGE_SECURITY_APT_NON_ROOTZMESSAGE_ANNOUNCE_ESM_TMPLZ"MESSAGE_CONTRACT_EXPIRED_SOON_TMPLZ*MESSAGE_CONTRACT_EXPIRED_GRACE_PERIOD_TMPLZ'MESSAGE_CONTRACT_EXPIRED_MOTD_PKGS_TMPLZ&MESSAGE_CONTRACT_EXPIRED_APT_PKGS_TMPLZ"MESSAGE_DISABLED_MOTD_NO_PKGS_TMPLZ)MESSAGE_CONTRACT_EXPIRED_APT_NO_PKGS_TMPLZMESSAGE_DISABLED_APT_PKGS_TMPLZMESSAGE_UBUNTU_NO_WARRANTYZMESSAGE_APT_PROXY_CONFIG_HEADERZMESSAGE_UACLIENT_CONF_HEADERZMESSAGE_SETTING_SERVICE_PROXYÚ%MESSAGE_NOT_SETTING_PROXY_INVALID_URLÚ%MESSAGE_NOT_SETTING_PROXY_NOT_WORKINGÚMESSAGE_ERROR_USING_PROXYZ)MESSAGE_PROXY_DETECTED_BUT_NOT_CONFIGUREDr7   r@   rQ   r]   rq   rz   r€   r„   r   r   r   r   Ú<module>   sh  $
	

	



			: