܍~cddlmZmZdZdS))mask_and_ipv4_to_bcast_addrnet_prefix_to_ipv4_maskcg}|D]m}|}|r|dr.|dd}t |dkrX||ng}i}|D]/\}}|dkr|r||i}|||<*|||<0d}|D] \}}|dkrd}|r||i} |D]} d| vr| dd} d} d| vrd} d} t | dkr0| d}|r|} | ssi}i|d<t | d kr5| d }|d vr||d <| rDd D]?}|| vr9| |}|r ||d|<@nZdD]9}|| vr3| |}|r|||<:d|vrUd|vrQ|dd\}}}|r0t||d<||d<t|d||d<d| vr| d|d<d| vr| d|d<d| vr| d}|dd}t |d kr*|ddr|d}|r||d<| | vr| |  ||| | <|D]s\}}|d}|s|d} |dkr| | vr d| | d<|dkrd|vr d| | d<t| S)N#ifaceFTinet6ripv6)dhcpstatic bootproto)addressgateway)netmaskrr broadcastrr/rzdns-nameserversz dns-search hwaddressetherauto) splitlinesstrip startswithsplitlenappenditemslower partitionrrupdate)settingsentrieslinesplit_upifacesconsumecmdargsabsorb real_ifacesinfo iface_detailsuse_ipv6dev_namedev iface_info proto_typekvaladdr_prefixhw_infohw_splithw_addrs >  g&&&GCLLGCLL F}} d '>>F  gKE/E/ $   W ++D11  m # #H }   " ""((**0022C     6 }   " "&q)//117799J///*4 ;' ' :+ 4 499q'--////11C403 6*1-  4 D , ,99q'--////11C,(+ 1 J&&J..&0&;&E&Ec&J&JOD!V0G0O0O 9-04 9-2M&y1433 ;/ !D((045F0G0M0M0O0O ,-t##+/ +=+C+C+E+E <(d""{+113399;;"==q11x==A%%(1+*@*@*I*I%&qkG:29 ;/ { " "  ! ( ( 4 4 4 4$.K ! ! 2 2 dzz$  7==??((** &==;&&04 H%f- '>>goo-1K !' * N) cloudinit.netrrr<r=r;r@s?LONNNNNNNrrrrrr=