+
    d‚•iE  ã                   ó   € ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHtHt ^ RIHtHt ^RIHtHtHtHtHt  ! R R]4      t ! R	 R
]4      t  ! R R]4      t!]"R8X  d   ]!! RR4      t#R# R# )é    N)ÚBadStatusLine)Úquote)ÚRequestÚurlopen)Ú	HTTPErrorÚURLError)Úget_langÚget_distÚget_dist_versionÚget_ubuntu_flavorÚget_ubuntu_flavor_namec                   ó   € ] tR t^3tRtR# )ÚMetaReleaseParseError© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__r   ó    Ú9/usr/lib/python3/dist-packages/DistUpgrade/MetaRelease.pyr   r   3   s   † Ûr   r   c                   ó&   a € ] tR t^7t o R tRtV tR# )ÚDistc                ó|   € Wn         W n        W0n        W@n        R V n        R V n        R V n        R V n        R V n        R # ©N)	ÚnameÚversionÚdateÚ	supportedÚreleaseNotesURIÚreleaseNotesHtmlUriÚupgradeToolÚupgradeToolSigÚupgrade_broken)Úselfr   r   r   r   s   &&&&&r   Ú__init__ÚDist.__init__8   s>   € ØŒ	ØŒØŒ	Ø"ŒØ#ˆÔØ#'ˆÔ ØˆÔØ"ˆÔà"ˆÖr   )	r   r   r!   r    r   r"   r#   r$   r   N)r   r   r   r   r&   r   Ú__classdictcell__©Ú__classdict__s   @r   r   r   7   s   ø‡ € ÷
#ð 
#r   r   c                   ó”   a € ] tR t^Et o RtR]P                  9   tRtRt	RR lt
R tR tR	 tR
 tR t]R 4       tR tR tR tRtV tR# )ÚMetaReleaseCorezH
A MetaReleaseCore object abstracts the list of released
distributions.
ÚDEBUG_UPDATE_MANAGERz$/etc/update-manager/release-upgradesz /etc/update-manager/meta-releaseNc           	     óB	  € V'       d   R V n         V P                  RV: RV: 24       WPn        Wn        \        P
                  ! 4       V n        RV n        RV n        Vf   \        P                  ! 4       p\        VR7      V n        \        VR7      V n        \        4       V n        \#        4       V n        RV n        RV n        RpVR,           V n        VR,           V n        RV n        R	V n        \2        P4                  ! 4       p\6        P8                  P;                  V P<                  4      '       d¬    VP?                  V P<                  4       TPI                  R4      '       dy   Rp
R Fp  pTPK                  Y«4      '       g   K  T P                  T P<                  : RTPM                  Y«4      : R24       \O        Y
: RT: 2TPM                  Y«4      4       Kr  	  . p\6        P8                  P;                  V PP                  4      '       d   VPS                  V PP                  4       \6        P8                  P;                  V PP                  R,           4      '       dI   V PP                  R,           pVPU                  \W        \X        PX                  ! VR,           4      4      4       V F  pV P[                  V4       K  	  V P(                  R9   d   V P                  P]                  4        R# V P(                  R8X  dZ   \^        P`                  ! 4       pVPc                  V P                   4      '       d   V P,                  V n        MV P                  R4       V'       d   V P,                  V n        V'       d%   V ;P*                  V P.                  ,          un        M+V'       d$   V ;P*                  V P0                  ,          un        V P                  RV P*                  ,          4       RV n2        V Pg                  4       '       g   V P                  R4       R# \        Ph                  ! V Pj                  R7      Pm                  4        R#   \2        P@                   d=   p	\B        PD                  PG                  R
T P<                  : RT	: 24        Rp	?	R# Rp	?	ii ; i)Tz MetaRelease.__init__() useDevel=z useProposed=N)Úcachezhttps://changelogs.ubuntu.com/zmeta-releasezmeta-release-ltsz-developmentz	-proposedúERROR: failed to read 'ú':
ÚMETARELEASEz: Ú Ú_z.dz/*.cfgÚltsz Prompt=lts for non-LTS, ignoringzmetarelease-uri: %sz_buildMetaReleaseFile failed)Útarget)ÚURIÚURI_LTSÚURI_UNSTABLE_POSTFIXÚURI_PROPOSED_POSTFIX©ÚneverÚno)7ÚDEBUGÚ_debugÚforceDownloadÚuseDevelopmentReleaseÚ	threadingÚEventÚ
downloadedÚupgradable_toÚnew_distÚaptÚCacher   Úflavorr   Úflavor_namer
   Úcurrent_dist_namer   Úcurrent_dist_versionÚno_longer_supportedÚpromptÚMETARELEASE_URIÚMETARELEASE_URI_LTSÚ METARELEASE_URI_UNSTABLE_POSTFIXÚ METARELEASE_URI_PROPOSED_POSTFIXÚconfigparserÚConfigParserÚosÚpathÚexistsÚCONF_METARELEASEÚreadÚErrorÚsysÚstderrÚwriteÚhas_sectionÚ
has_optionÚgetÚsetattrÚCONFÚappendÚextendÚsortedÚglobÚ
_parse_cfgÚsetÚdistro_infoÚUbuntuDistroInfoÚis_ltsÚmetarelease_informationÚ_buildMetaReleaseFileÚThreadÚdownloadÚstart)r%   rA   ÚuseProposedÚdebugÚforceLTSr@   r/   Úbase_uriÚparserÚeÚsecÚkÚconfigs_listÚdrop_in_dirÚcfg_fileÚdis   &&&&&&&         r   r&   ÚMetaReleaseCore.__init__Q   sh  € ÷ ØˆDŒJØ�Šã$¢kð3ô	
ð
 +ÔØ%:Ô"ä#Ÿ/š/Ó+ˆŒØ!ˆÔØˆŒØŠ=Ü—I’I“KˆEÜ'¨eÔ4ˆŒÜ1¸Ô>ˆÔÜ!)£ˆÔÜ$4Ó$6ˆÔ!Ø#'ˆÔ ØˆŒð 4ˆØ'¨.Õ8ˆÔØ#+Ð.@Õ#@ˆÔ Ø0>ˆÔ-Ø0;ˆÔ-ô ×*Ò*Ó,ˆÜ�7‰7�>‰>˜$×/Ñ/×0Ò0ðØ—‘˜D×1Ñ1Ô2ð ×!Ñ! -×0Ò0Ø#�ó�Að ×(Ñ(¨×0Ô0ØŸ™à#×4Ô4°f·j±jÀÖ6HðJôô   ²²aÐ&8¸&¿*¹*ÀSÓ:LÖMñð ˆä�7‰7�>‰>˜$Ÿ)™)×$Ò$Ø×Ñ §	¡	Ô*ô �7‰7�>‰>˜$Ÿ)™) dÕ*×+Ò+ØŸ)™) dÕ*ˆKØ×Ñ¤¤t§y¢y°¸xÕ1GÓ'HÓ IÔJã$ˆHØ�O‰O˜HÖ%ñ %ð �;‰;˜/Ô)Ø�O‰O×ÑÔ!Ùà�;‰;˜%Ôô ×-Ò-Ó/ˆBØ�y‰y˜×/Ñ/×0Ò0Ø'+×'?Ñ'?�Õ$à—‘Ð>Ô?÷ Ø#'×#;Ñ#;ˆDÔ ç Ø× Ò  D×$IÑ$IÕIÖ ßØ× Ò  D×$IÑ$IÕIÕ à�‰Ð)¨D×,@Ñ,@Õ@ÔAØ'+ˆÔ$Ø×)Ñ)×+Ò+Ø�K‰KÐ6Ô7Ùä×Ò §¡Ô.×4Ñ4Ö6øôE  ×%Ñ%ô Ü—
‘
× Ò à×,Ô,ªað1ôõ ûðús   Ä5Q ÑRÑ"1RÒRc                óL  € \         P                  P                  R \         P                  P                  V P                  4      4      V n         \        V P
                  R4      P                  4         \         P                  P'                  T P
                  4      ^ 8X  d!   \         P(                  ! T P
                  4       R	#   \         EdC    \         P                  ! R\         P                  P                  R4      4      p\         P                  P                  T4      ^ ,          p\         P                  P                  T4      '       gY    \         P                  ! T4       M@  \         d3   p\        P                   P#                  RT,          4        Rp? R# Rp?ii ; i\         P                  P                  T4      '       gZ    \         P$                  ! TR4       M@  \         d3   p\        P                   P#                  RT,          4        Rp? R# Rp?ii ; i\         P                  P                  TR4      p\         P                  P                  T4      '       gY    \         P$                  ! T4       M@  \         d3   p\        P                   P#                  RT,          4        Rp? R# Rp?ii ; i\         P                  P                  T\         P                  P                  T P                  4      4      T n         ELži ; i  \*         d     R	# i ; i)
z/var/lib/update-manager/ÚaÚXDG_CACHE_HOMEz~/.cachezmkdir() failed: '%s'NFiÀ  zupdate-manager-coreT)rU   rV   ÚjoinÚbasenamerO   ÚMETARELEASE_FILEÚopenÚcloseÚIOErrorÚgetenvÚ
expanduserÚsplitrW   ÚmakedirsÚOSErrorr[   r\   r]   ÚmkdirÚgetsizeÚunlinkÚ	Exception)r%   Ú	cache_dirÚcache_parent_dirrv   rV   s   &    r   rm   Ú%MetaReleaseCore._buildMetaReleaseFileÁ   s&  € ä "§¡§¡Ø&¬¯©×(8Ñ(8¸×9MÑ9MÓ(Nó!
ˆÔð
	Ü�×&Ñ&¨Ó,×2Ñ2Ô4ð@	Ü�w‰w�‰˜t×4Ñ4Ó5¸Ô:Ü—	’	˜$×/Ñ/Ô0ñ øôI õ 	ÜŸ	š	Ø ¤"§'¡'×"4Ñ"4°ZÓ"@óˆIô  "Ÿw™wŸ}™}¨YÓ7¸Õ:ÐÜ—7‘7—>‘>Ð"2×3Ò3ð!Ü—K’KÐ 0Õ1øÜô !Ü—J‘J×$Ñ$Ð%;¸aÕ%?Ô@Þ ûð!úô —7‘7—>‘> )×,Ò,ð!Ü—H’H˜Y¨Õ.øÜô !Ü—J‘J×$Ñ$Ð%;¸aÕ%?Ô@Þ ûð!úô —7‘7—<‘< 	Ð+@ÓAˆDÜ—7‘7—>‘> $×'Ò'ð!Ü—H’H˜T•NøÜô !Ü—J‘J×$Ñ$Ð%;¸aÕ%?Ô@Þ ûð!úô %'§G¡G§L¡LØ”b—g‘g×&Ñ& t×';Ñ';Ó<ó%ˆD×!ð7	ûôD ô 	ØÙð	ús¦   Á$C Á3AL ÃB
LÅE&Å%LÅ&F#Å1&FÆLÆF#Æ#'LÇG$Ç#LÇ$H!Ç/&HÈLÈH!È!ALÉ*JÊ LÊJ>Ê&J9Ê2LÊ9J>Ê>ALÌLÌL#Ì"L#c                ó   € Wn         R# )zGvirtual function that is called when the distro is no longer
supported
N)rM   ©r%   Údists   &&r   Údist_no_longer_supportedÚ(MetaReleaseCore.dist_no_longer_supportedð   s
   € ð $(Ö r   c                ó   € Wn         R# )zGvirtual function that is called when a new distro release
is available
N)rF   r”   s   &&r   Únew_dist_availableÚ"MetaReleaseCore.new_dist_availableö   s	   € ð Žr   c                ó°  € V P                  R 4       V P                  pV P                  RV,          4       Rp. p\        P                  ! V P                  4      p VP                  4       '       EdA   R F%  pWTP                  9  g   K  \        RV,          4      h	  VP                  R,          pV P                  RV,          4       VP                  R,          p\        \        P                  P                  V4      4      p^ V^&   \        P                  ! \        V4      4      p	\        VP                  R,          4      p
VP                  R,          p\!        WkWš4      pR	VP                  9   dK   VP                  R	,          Vn        \%        4       pV'       d!   V;P"                  R
V,          ,          un        RVP                  9   dK   VP                  R,          Vn        V P)                  V4      pV'       d   V;P&                  V,          un        RVP                  9   d   VP                  R,          Vn        RVP                  9   d   VP                  R,          Vn        RVP                  9   d   VP                  R,          Vn        VP1                  V4       Wa8X  g   EKR  TpEKW   T P                  P7                  4        RT n        Tf   T P                  R4       R# RpT F`  pTP8                  TP8                  8”  g   K   TP:                  '       g   T P<                  '       g   KF  TpT P                  RT,          4        M	  TR8w  d*   TP:                  '       g   Yðn        T PA                  T4       TR8w  d   Yðn        T PC                  T4       R#   \        P2                   d    \        RT P4                  ,          4      hi ; i)zMetaRelease.parse()zcurrent dist name: '%s'Nr   ÚVersionÚ	SupportedÚDatezRequired key '%s' missingzfound distro name: '%s'ÚReleaseNotesz?lang=%sÚReleaseNotesHtmlÚUpgradeToolÚUpgradeToolSignatureÚUpgradeBrokenzUnable to parse %sz,current dist not found in meta-release file
FÚ znew dist: %sT)r   rœ   r�   rž   )"r?   rK   Úapt_pkgÚTagFilerl   ÚstepÚsectionr   ÚlistÚemailÚutilsÚ	parsedateÚtimeÚmktimeÚtupleÚintr   r    r	   r!   Ú#_get_release_notes_uri_query_stringr"   r#   r$   rc   rZ   rO   r…   r   r   rA   rE   r–   r™   )r%   rK   Úcurrent_distÚdistsÚ	index_tagÚrequired_keyr   ÚrawdateÚ
parseddater   r   r   r•   ÚlangÚqueryrE   s   &               r   ÚparseÚMetaReleaseCore.parseü   s;  € Ø�‰Ð)Ô*Ø ×2Ñ2ÐØ�‰Ð-Ð0AÕAÔBØˆØˆô —O’O D×$@Ñ$@ÓAˆ	ð+	Ø—.‘.×"Ó"Û$L�LØ#×+<Ñ+<Ö<Ü3Ø7¸,ÕFóð ñ %Mð
 !×(Ñ(¨Õ0�Ø—‘Ð5¸Õ<Ô=Ø#×+Ñ+¨FÕ3�Ü!¤%§+¡+×"7Ñ"7¸Ó"@ÓA�
Ø !�
˜1‘Ü—{’{¤5¨Ó#4Ó5�Ü 	× 1Ñ 1°+Õ >Ó?�	Ø#×+Ñ+¨IÕ6�ä˜D¨4Ó;�Ø! Y×%6Ñ%6Ô6Ø+4×+<Ñ+<¸^Õ+L�DÔ(Ü#›:�DßØ×,Ò,°
¸TÕ0AÕAÕ,Ø%¨×):Ñ):Ô:Ø/8×/@Ñ/@Ø*õ0�DÔ,ð !×DÑDÀTÓJ�EßØ×0Ò0°EÕ9Õ0Ø  I×$5Ñ$5Ô5Ø'0×'8Ñ'8¸Õ'G�DÔ$Ø)¨Y×->Ñ->Ô>Ø*3×*;Ñ*;Ø.õ+�DÔ'ð # i×&7Ñ&7Ô7Ø*3×*;Ñ*;¸OÕ*L�DÔ'Ø—‘˜TÔ"Ø×,Ø#'“LðM #ðX 	×$Ñ$×*Ñ*Ô,Ø'+ˆÔ$ð
 ÒØ�K‰KÐGÔHÙð ˆÛˆDØ�y‰y˜<×,Ñ,Ö,ð
 —~—~�~¨d×.H×.HÐ.HÙØ $�Ø—‘˜N¨]Õ:Ô;Ùñ ð ˜BÔ |×'=×'=Ð'=Ø!.ÔØ×)Ñ)¨,Ô7Ø˜BÔØ!.ÔØ×#Ñ# MÔ2ñ øôO �}‰}ô 	Ü'Ø$ t×';Ñ';Õ;óð ð	ús&   ÁN# Á2N# Â	E5N# Ç?B(N# Ê-N# Î#2Oc                ó	  € V P                  R 4       ^ p\        V P                  4      pVP                  RR4       VP                  RR4       \        P
                  ! V P                  \        P                  4      '       d,    \        P                  ! V P                  4      P                  pV^ 8”  dM   V P                  '       g;   VP                  R\        P                  ! \        P                  ! V4      4      4        \        V^R7      p\        P                   P#                  V P                  4      '       dW   \        P
                  ! V P                  \        P                  4      '       g"    \        P$                  ! V P                  4        \)        V P                  R4      pVP+                  4        F#  pVP-                  VP/                  R4      4       K%  	  VP1                  4        VP3                  ^ ^ 4       WPn        VP9                  4        V P4                  er   V P                  R4        V PG                  4        V PP                  '       d=   V PP                  PR                  '       d!   \        PN                  ! V P                  4       MV P                  R4       V PT                  PW                  4        R
#   \         d     EL&i ; i  \         d*   p\'        RT P                  : RT: R	24        R
p?ELsR
p?ii ; i  \6         d     ELi ; i  \:         d§   pTP<                  R8X  ds   \        P                   P#                  T P                  4      '       dD   T P                  RT P                  ,          4       \)        T P                  R4      T n         R
p?EL•T P                  RT,          4        R
p?EL³R
p?i\>        \@        \B        PD                  3 d@   pT P                  RT,          4       \'        RT P                  ,          4        R
p?ELR
p?ii ; i  \H         dL    \J        PL                  ! RT P                  ,          4       \        PN                  ! T P                  4        EL=i ; i)zMetaRelease.download()zCache-ControlzNo-CacheÚPragmazno-cachezIf-Modified-Since)ÚtimeoutzCan't unlink 'z' (Ú)Nzw+zUTF-8i0  zreading file '%s'Úrz%result of meta-release download: '%s'zIFailed to connect to %s. Check your Internet connection or proxy settingsz!have self.metarelease_informationzparse failed for '%s'zNO self.metarelease_information),r?   r   rO   Ú
add_headerrU   Úaccessrƒ   ÚW_OKÚstatÚst_mtimer‹   r@   r­   ÚasctimeÚgmtimer   rV   rW   rŽ   Úprintr„   Ú	readlinesr]   ÚdecodeÚflushÚseekrl   r†   r…   r   Úcoder   r   Úsocketr¾   rº   r�   ÚloggingÚ	exceptionÚremoverF   r$   rD   rh   )r%   ÚlastmodifiedÚreqÚurirv   ÚfÚlines   &      r   ro   ÚMetaReleaseCore.downloadX  s>  € Ø�‰Ð,Ô-ØˆÜ�d×*Ñ*Ó+ˆà�‰�¨
Ô3Ø�‰�x Ô,Ü�9Š9�T×*Ñ*¬B¯G©G×4Ò4ðÜ!Ÿwšw t×'<Ñ'<Ó=×FÑF�ð ˜!Ô D×$6×$6Ð$6Ø�N‰NØ#¤T§\¢\´$·+²+¸lÓ2KÓ%Lôð(	ä˜# rÔ*ˆCô �w‰w�~‰~˜d×3Ñ3×4Ò4¼R¿YºYØ×%Ñ%¤r§w¡w÷>ò >ðÜ—I’I˜d×3Ñ3Ô4ðÜ˜×.Ñ.°Ó5�ØŸM™MžO�DØ—G‘G˜DŸK™K¨Ó0Ö1ñ ,à—‘”	Ø—‘�q˜!”Ø/0Ô,ð �I‰IŒKð" ×'Ñ'Ò3Ø�K‰KÐ;Ô<ð1Ø—
‘
”ð �}�}ˆ} §¡×!=×!=Ð!=Ü—	’	˜$×/Ñ/Ô0øà�K‰KÐ9Ô:Ø�‰×ÑÖøôC ô Úðûô" ô ÝØ48×4IÔ4IË1ÐM÷ò ûðûô ô Úðûô ô 	Ià�v‰v˜Œ}¤§¡§¡°×0EÑ0E×!FÒ!FØ—‘Ð/°$×2GÑ2GÕGÔHÜ/3°D×4IÑ4IÈ3Ó/O�×,Ò,à—‘ÐCÀaÕG×HÒHûäœ-¬¯©Ð8ô 	Ø�K‰KÐ?À!ÕCÔDÜð$Ø&*×&:Ñ&:õ;÷ò ûð	ûô ô 1Ü×!Ò!Ø+¨d×.CÑ.CÕCôô —	’	˜$×/Ñ/×0ð1ús¥   Â*K ÄA0L  Å3 K ÆA5L È	L  È9P1 ËKËKËLË"LÌ L  ÌLÌL  ÌLÌL  ÌLÌL  Ì P.Ì+?OÍ+=OÎ.OÏ!P.Ï.P.Ï/4P)Ð)P.Ð1ARÒRc                ó@   € V P                   P                  4       '       * # r   )rD   Úis_set)r%   s   &r   ÚdownloadingÚMetaReleaseCore.downloading¥  s   € à—?‘?×)Ñ)Ó+Ô+Ð+r   c                óÊ   € R p\        4       pV'       d   VRV,          ,          pVRV P                  ,          ,          pVRVP                  ,          ,          p\        VR4      # )Ú?zlang=%s&zos=%s&zver=%sz/?)r	   rI   r   r   )r%   r•   Úqr¸   s   &&  r   r±   Ú3MetaReleaseCore._get_release_notes_uri_query_string©  sR   € Øˆä‹zˆßØ�˜dÕ"Õ"ˆAà	ˆX˜Ÿ™Õ#Õ#ˆà	ˆX˜Ÿ™Õ$Õ$ˆä�Q˜‹~Ðr   c                óz   € V P                   '       d)   \        P                  P                  VR ,           4       R# R# )Ú
N)r>   r[   r\   r]   )r%   Úmsgs   &&r   r?   ÚMetaReleaseCore._debug¶  s&   € Ø�:�:ˆ:Ü�J‰J×Ñ˜S 4�ZÖ(ñ r   c                óª  € \         P                  ! 4       p VP                  V4       TP                  RR4      '       dJ   TP                  RR4      P                  4       pTR9   d
   RT n
        R# TR8X  d
   RT n
        R# RT n
        R# R#   \         P                   d3   p\        P
                  P                  R T: RT: 24        Rp?R# Rp?ii ; i)	r0   r1   NÚDEFAULTÚPromptr<   r5   Únormalr;   )rS   rT   rY   rZ   r[   r\   r]   r_   r`   ÚlowerrN   )r%   Úconffileru   rv   rN   s   &&   r   rg   ÚMetaReleaseCore._parse_cfgº  s¯   € Ü×*Ò*Ó,ˆð	Ø�K‰K˜Ô!ð ×Ñ˜Y¨×1Ò1Ø—Z‘Z 	¨8Ó4×:Ñ:Ó<ˆFØ˜Ô(Ø%�–Ø˜5”Ø#�–à&�–ñ 2øô ×!Ñ!ô 	Ü�J‰J×ÒÛ5=ºqÐAôõ ûð		ús   —B ÂCÂ 'CÃC)r>   rƒ   rO   rP   rR   rQ   rK   rL   rD   rI   rJ   r@   rl   rF   rM   rN   rE   rA   )FFFFFN)r   r   r   r   Ú__doc__rU   Úenvironr>   rb   rX   r&   rm   r–   r™   rº   ro   ÚpropertyrÚ   r±   r?   rg   r   r(   r)   s   @r   r,   r,   E   st   ø‡ € ñð
 # b§j¡jÑ0€Eð 2€DØ9Ðôm7ò`-ò^(òòXòxKðZ ñ,ó ð,òò)÷'ð 'r   r,   Ú__main__F)$rG   r¥   ri   rS   Úhttp.clientr   rÏ   Úemail.utilsrª   rf   rU   rÎ   r[   r­   rB   Úurllib.parser   Úurllib.requestr   r   Úurllib.errorr   r   r«   r	   r
   r   r   r   r�   r   Úobjectr   r,   r   Úmetar   r   r   Ú<module>rö      sƒ   ðó. Û Û ã Ý %Û Û Û Û 	Û Û 
Û Û å ß +ß ,÷õ ô	˜Iô 	ô#ˆ6ô #ôF'�fô F'ðR ˆzÔÙ˜5 %Ó(‚Dñ r   