+
    ˜qgjÿ  ã                   ó¦   € ^ RI t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHtHt RRRR/t	]P                  ! ]4      tRR	 ltR
 tRR ltR tRR ltR tR# )é    N)Údmi)Únet)Ú
url_helperÚutilÚpublicÚeth0ÚprivateÚeth1c                óê  € V'       g"   \        V 4      p\        P                  RV4       V'       g   \        R4      hRP	                  \
        P                  ! ^^¨4      \
        P                  ! ^ ^ÿ4      4      p V P                  P                  W4       V P                  P                  V4       \        P                  RW4       V#   \         d     \        P                  ! \        RTT4       h i ; i)zÔBring up NIC using an address using link-local (ip4LL) IPs.
On DigitalOcean, the link-local domain is per-droplet routed, so there
is no risk of collisions. However, to be more safe, the ip4LL
address is random.
z,selected interface '%s' for reading metadatazPunable to find interfaces to access themeta-data server. This droplet is broken.z169.254.{0}.{1}/16z&brought device '%s' up with address %szRip4LL address assignment of '%s' to '%s' failed. Droplet networking will be broken)Úget_link_local_nicÚLOGÚdebugÚRuntimeErrorÚformatÚrandomÚrandintÚnet_opsÚadd_addrÚlink_upÚ	Exceptionr   Úlogexc)ÚdistroÚnicÚaddrs   && ÚH/usr/lib/python3/dist-packages/cloudinit/sources/helpers/digitalocean.pyÚassign_ipv4_link_localr      sÑ   € ÷ Ü  Ó(ˆÜ�	‰	Ð@À#ÔFçÜð8ó
ð 	
ð
  ×&Ñ&Ü�Š�q˜#Ó¤§¢¨q°#Ó 6ó€DðØ�‰×Ñ Ô*Ø�‰×Ñ˜sÔ#Ü�	‰	Ð:¸CÔFð €Jøô ô Ü�ŠÜð1àØô	
ð 	ðús   Á:AC Ã*C2c                 óÊ   € \         P                  ! 4        Uu. uF(  pV P                  P                  V4      '       g   K&  VNK*  	  ppV'       g   R # \	        VR R7      # u upi )Nc                 ó0   € \         P                  ! V R 4      # )Úifindex)ÚcloudnetÚread_sys_net_int)Úds   &r   Ú<lambda>Ú$get_link_local_nic.<locals>.<lambda>@   s   € ¤8×#<Ò#<¸QÀ	Ô#Jó    )Úkey)r    Úget_devicelistÚ
networkingÚis_physicalÚmin)r   ÚfÚnicss   &  r   r   r   8   s^   € ô ×(Ò(Ô*óá*ˆAØ×Ñ×(Ñ(¨×+÷ 	
ˆÙ*ð 	ð ÷
 ÙÜˆtÑJÔKÐKùòs   ˜#A Á A c                ó<  € V'       g   \         P                  R4       R# \         P                  R4        V P                  P                  V4       \         P                  RV4       R#   \         d(   p\
        P                  ! \         RY4        Rp?R# Rp?ii ; i)zoRemove the ip4LL address. While this is not necessary, the ip4LL
address is extraneous and confusing to users.
zLno link_local address interface defined, skipping link local address cleanupNzcleaning up ipv4LL addresszremoved ip4LL addresses from %sz)failed to remove ip4LL address from '%s'.)r   r   r   Ú
flush_addrr   r   r   )r   r   Úes   && r   Údel_ipv4_link_localr0   C   sw   € ÷ Ü�	‰	ð$ô	
ñ 	ä‡I�IÐ*Ô+ðNØ�‰×!Ñ! #Ô&Ü�	‰	Ð3°SÖ9øäô NÜ�Š”CÐDÀc×MÒMûðNús   ¶1A) Á)BÁ4BÂBc                óp  € R p. p\         P                  ! 4       p\        P                  RV4       V  EFG  pW,          ^ ,          p\        P                  RV4       VP	                  R4      pWt9  d   \        RV: RV: 24      hVP	                  V4      pVP	                  RR4      p	\        P	                  W˜4      p
W¨8w  d   \        P                  R	V	VVV
4       MR
p\        P                  W·V4       RRRVRV
/p. pR FI  pVP	                  VR4      pV'       g   K  V! V4      pV	R8w  g   RV9   d   VR VP                  V4       KK  	  WÜR&   VP                  V4       \        P                  RW¬4       EKJ  	  V'       d,   \        P                  RV4       VP                  RRRV/4       R^RV/# )a  Convert the DigitalOcean Network description into Cloud-init's netconfig
format.

Example JSON:
 {'public': [
       {'mac': '04:01:58:27:7f:01',
        'ipv4': {'gateway': '45.55.32.1',
                 'netmask': '255.255.224.0',
                 'ip_address': '45.55.50.93'},
        'anchor_ipv4': {
                 'gateway': '10.17.0.1',
                 'netmask': '255.255.0.0',
                 'ip_address': '10.17.0.9'},
        'type': 'public',
        'ipv6': {'gateway': '....',
                 'ip_address': '....',
                 'cidr': 64}}
    ],
   'private': [
       {'mac': '04:01:58:27:7f:02',
        'ipv4': {'gateway': '10.132.0.1',
                 'netmask': '255.255.0.0',
                 'ip_address': '10.132.75.35'},
        'type': 'private'}
    ]
 }
c           
      ó  € R RRRRV P                  R4      RV P                  R4      /pRV P                  R4      9   d6   RP                  V P                  R4      V P                  R	4      4      VR&   V# V P                  R
4      VR
&   V# )ÚtypeÚstaticÚcontrolÚautoÚaddressÚ
ip_addressÚgatewayÚ:z{0}/{1}ÚcidrÚnetmask)Úgetr   )ÚpcfgÚsubparts   & r   Ú_get_subnet_partÚ7convert_network_configuration.<locals>._get_subnet_partu   s�   € à�HØ�vØ�t—x‘x Ó-Ø�t—x‘x 	Ó*ð	
ˆð �$—(‘(˜<Ó(Ô(Ø!*×!1Ñ!1Ø—‘˜Ó&¨¯©°Ó(8ó"ˆG�IÑð ˆð "&§¡¨)Ó!4ˆG�IÑàˆr%   znic mapping: %szconsidering %sÚmacz3Did not find network interface on system with mac 'z'. Cannot apply configuration: r3   Úunknownz6Found %s interface '%s' on '%s', assigned name of '%s'zfFound interface '%s' on '%s', which is not a public or private interface. Using default system naming.ÚphysicalÚmac_addressÚnameNr   Úanchorr9   Úsubnetsznic '%s' configuration: %szadded dns servers: %sÚ
nameserverr7   ÚversionÚconfig)Úipv4Úipv6Úanchor_ipv4Úanchor_ipv6)r    Úget_interfaces_by_macr   r   r=   r   ÚNIC_MAPÚappend)rK   Údns_serversr@   Únic_configsÚmacs_to_nicsÚnr   rE   Ú
sysfs_nameÚnic_typeÚif_nameÚmsgÚncfgrH   ÚnetdefÚ
raw_subnetÚsub_parts   &&               r   Úconvert_network_configurationr_   X   s¶  € ò:ð" €KÜ×1Ò1Ó3€LÜ‡I�IÐ Ô.äˆØ�i˜�lˆÜ�	‰	Ð" CÔ(à—g‘g˜e“nˆØÔ*Ýó ¢ð%óð ð "×%Ñ% kÓ2ˆ
Ø—7‘7˜6 9Ó-ˆä—+‘+˜hÓ3ˆØÔ Ü�I‰IØHØØØØõðEð ô �I‰I�c¨
Ô3ð �JØ˜;Ø�Gð
ˆð ˆÛDˆFØŸ™ ¨Ó.ˆJßÙá'¨
Ó3ˆHØ˜8Ô# x°6Ô'9Ø˜YÐ'à�N‰N˜8Ö$ñ Eð "ˆY‰Ø×Ñ˜4Ô Ü�	‰	Ð.°×>ñg ÷j Ü�	‰	Ð)¨;Ô7Ø×Ñ˜F L°)¸[ÐIÔJà�q˜( KÐ0Ð0r%   c                 óÞ   € \         P                  ! WW#R 7      pVP                  4       '       g   \        RV ,          4      h\        P
                  ! VP                  P                  4       4      # ))ÚtimeoutÚsec_betweenÚretrieszunable to read metadata at %s)r   ÚreadurlÚokr   ÚjsonÚloadsÚcontentsÚdecode)Úurlra   rb   rc   Úresponses   &&&& r   Úread_metadatarl   Æ   sS   € Ü×!Ò!Ø¨+ô€Hð �;‰;�=Š=ÜÐ:¸SÕ@ÓAÐAÜ�:Š:�h×'Ñ'×.Ñ.Ó0Ó1Ð1r%   c                  óô   € \         P                  ! R 4      p V R8w  d   R# \         P                  ! R4      pV'       d   \        P                  RV4       RV3# Rp\        P	                  V4       \        V4      h)zsystem-manufacturerÚDigitalOceanzsystem-serial-numberz8system identified via SMBIOS as DigitalOcean Droplet: %sz¦system identified via SMBIOS as a DigitalOcean Droplet, but did not provide an ID. Please file a support ticket at: https://cloud.digitalocean.com/support/tickets/newT)FN)r   Úread_dmi_datar   r   Úcriticalr   )Úvendor_nameÚ
droplet_idrZ   s      r   Úread_sysinfors   Ï   sz   € ô
 ×#Ò#Ð$9Ó:€KØ�nÔ$ØÐä×"Ò"Ð#9Ó:€JßÜ�	‰	ØFØô	
ð �*ÐÐðAð 	ô 	�‰�SÔÜ˜3ÓÐr%   )N)é   rt   é   )rf   Úloggingr   Ú	cloudinitr   r   r    r   r   rQ   Ú	getLoggerÚ__name__r   r   r   r0   r_   rl   rs   © r%   r   Ú<module>r{      sZ   ðó
 Û Û å Ý %ß &à�V˜Y¨Ð
/€à×Ò˜Ó!€ô#òLLôNò*k1ô\2ôr%   