ÿØÿà JFIF    ÿÛ „ !.%+&8&+/1555$;@;4?.451 4,$,44444444444414444444444444444444444444444444444444ÿÀ  á á" ÿÄ     ÿÄ ?    !1AQaq"2‘¡±ÁðBRbrÑá#‚’¢²3S CñÿÄ   ÿÄ !    !1QAa‘2ÿÚ   ? 5˜Z¯V¦cø)›t/? z¨±>Õ5€¶‹Á¤·¼z¼Ü¬+ñ®v¤¨_ˆR­BFn©—˜ý®ç̝P8gýt·ÉSTŦˆìät?þé¼íìN/Þa)ì–í6ô… Ï¿øÃj´¿KÇü]ÿ ªô¹-eKànëÕHTx}ýSÜ›ÿ ”7Ø×&µ<¦  ¥ÑO¶[Ù¯ä¨ÞÃÿ PZ-¬;#õ|•oaÿ ©CìÞz3˜öː/¤­ñTûIØ}š^ mÓ%ªxˆ¥ÉŸu=Z+ISe¿45™¼u;ú&WØ÷€æßQ™®{|íx*TC“#ZŠìZ§²‹ 6pv…³¿¡äª*áZÐ%ÒOáˆo"x«OHk w±æ+¬V(kMúŸ5Vö«$ ÁrÏbàb57/luR ¸ÑÛj Òµì`Мq­û žICÀÊ•©4€Âcà¨Ï€O´<èÐ:›ù(Ë^L8þ‘ÍÌ#¸Ð_Ì©ÙK(Öz 4¬û+¸;ü’V’84‘¬ÃŽ:[â‡ÔÌáõp¢~§ªlæ£ö{®G>J¼"°‡7¯ÆÉèßû ‹É‹§ÁòÃýâßî ^ƾÙõ‹×óH#«LP½ïX=xÑÍ$|W?•~• îëÔ©ª‹ {ÝT…Kÿ ”hûâá)J*ö˜–ÔU;iÇ€/ ÆþjóZ\ýwØ=Ìm ºèËL9 ýèÆð/¨’¥öo=nË.%Îì ŽÕ¯È|{Oj²ƒE6e/ßdÄõ²Ìâ1O®ò×TsəԸhOMýíMˆ¿¼H˜l²,7Â¥#MF/Úf°Ö½± ¸–dr‹NýÊ íjqx{œÉ ä-È ¦ øÄër¨q°ð †nцýÑÄÆ’mä…n<0È™;ÁÝá¯ÁZƒ7FÀmì­ É&9ˆîéi¶ùN§Y• ÃZãAâ?•‡©‰ , ó¾IŸŠc1 4â&y­&pŠ­6;M À 0¹qç»p.á …ŸÅáK@%6·y6ƒ‰3?”úºŽ‰éX5ªPT §µ!=Mž«Ú½‹ÅgÂSâÉaþÓoö–¯ÁÔìR>5éÿ üs¶ÆUcÌ kÇR ]ÿ ù¬¼«VŽ;Â|‡~¢¦”ÏŰæ {L™Õ°Óv¹ò¸írޡעCÃ!íVÕ {¶»sŒNPg/ "uÕbkm²“$ďå¿é¹§°½æz¯6 †s¿!s–wÚÝ“™Œ °.ûj>·+™Òa…©Œ&rÝÎtÛë긪Ît’LAVp%c Úý[ÄzJ¾ÇàXXç@˜ó<êL]·T˜¾¥1Ó©V‡g´æ½¦Ý@¹óø!_@´ÞâSÁ —S3™•& ]@JHÚý©ZŽ €×æÔr»Áf!‡yÞ4Mv*èÓã_{‘åóUuљØ«Oïé*®EvÑ Œ÷‡U \"㪒ÍK+À 4“M¡ï:0¥5í!'<@î´”>Ç»&Z–ïCCV˜Ì5Šo&îhè.žû |ÓK©h$s6KìŒëã)¹hI¦GïOåóI;ììü#É$Š0…Ææ¥TØ.5­¾gn´ “ÂÖ\:hœ89G)J@„}œ:’Ò{/Š"¦_Æ×7Æ3VÇŠÊa]ÚŒÙ€Ä–=®uÁßâACZƒ§§£ Qnâ:«,×{tyø¬iÛcœÜÄ€H½ÄÍCk´÷šß .W'b¤Íåh]÷€=,Žv×cÚEÚHXJX¶îo¨FÒtèöŸ>ªª6[J®Fµ£sGÁeqõfe\íjÒÐïÄÐGˆe1Ø‹.Ø”‘Ëuø Y­ˆÜ ŽG|zùªüMpDnQWÄ”%JŠ™)â*p@Örš«ÕT2Ð%ˆG#ª„ ·¤!°ŸOTÂT¸aÚ%4&h™LµšØüÐ.F¿²ÐÞ_Ç‚¾ÅÃaÜ÷09Æ q€öy˜v‡85õN÷]¬äѼóS{°_MެúÔ#°Ç¸0åÞè2ëôPcvÆw9®ií1Ä8F™˜à‰´+‰Ik1òÝ7“Ñ×ÒsÝ\x‚h`ÞÑ`ó"|µEcý£n˜h`}GÞ !±ù²Ápü²ß6 0ïi󜵩SÈÇ7˜-ÕURO˜¦´f$ªž-Í6(œ}<„ éc øs]ŽŽ„*—¾ ìdŽ„)méª\¿êÎIg¾ØÞ~I#C/¼¼´EÁÈŽi8“©õådô·>euä ƒ'Ê×लR1ÉJE1ÐAát`t;ÇР%Ý<‡¥„ÍÆ`×Oyó)õiI€ñQaŸ4Ûù\áàaÃÔ¹HÃu¹*k€¦<„e S‡&õÏ B!ŽhüÞ`yj}mªf×\¿ Ç~æ­9‡û\՞Ǖg²1Žû5V7 !àöšm° c`ܬøÇìµÒ'P"?…´Ö,"§^•õލsÔ)6˜sæéÍR¼ ò|Sl”‹7 nPW Gòú÷½§O¯‡„l¡kSÞŒr½PÊ@æ¢pŽ-mÿ #Ÿ˜Àº¶Áä¦;ïÔæ$1££`“Õ>„—·ž)ßð³ñ#Ï Ô$¶œ‰ÊE‹À;÷º ¯«P:Ñ”8–IÊtpÞ3ª“>ê“þës4ò2OÏÕ­±zô†Õ§‰.÷ä¸;¿˜“'œ›žª}«Œ{ª±Ì 9ÔóÞÕ‡0 $íWV3Üì¬ —@kÝ4@¿r¼±½¬™›?øØæ´'Áé®CË3-g$˜ö‡×auÚi´Žp/êÛ æF›Ú2v‹ã¿¿,nB1̨ƃqÞa5͝@&Æû“él÷ \C²½UÍc ¯k×¢U ÖéQå™—-r wô ÞÏ<Ò=&=ÿ Ôê Òêˈt,i—;LîÜ á¸*ÚÃ1$êL•LÍ <É)ýÐà’ ;F™{ƒ™˜€&'}‚ãÄK`¡ÞT@I;®žZóè‚s’7®°›+§O­Åq©é»²9<Ô J ¼9O’HL»Ùïì¸rk¼Ž_ý‘TŸu[²ßÚŒ·ü÷B%¯E ŸÔX5êO´ Ç•€’I0 ÉJX` ñ¹õ%;µŸD‘«´€àwÒ™U ûئžÖö\×®×´8 ½‡ºÐÆÓ§?Àkmœ=;d5*@-ì0F Rªýš[Ü6âö̃ڸr*KA9· u*µæ£?U¸Âêí†8@¦X4 e-ò„0s{ HâUpU?¼mñRa°®a%Ð'tÉ×’\¾ÊÉ]t›h>·(Ë@R¼¡Ãt h}’O÷au<+nT…Ö…MӐ??Óe95 q>í/;&JSû °¯ÊéÞ øƒ*Ã2½Ài&:nôUl=¾¿5eˆ3”ñc|Ú2V”>„»&eE;«ÚäC p¢Û úy 9š[ŒÌx¼擼A&DåÒ¯ˆ¤ÀÌ;"˜ ÏQä¸åhÊ}Ûq«Û0WžÒ|»€ø®öCm5•\ÇÀ§Pe3£]0ÃàLDÉ‰1øªxjgwT‚÷¿LΨK‹›ùs—xˆÜ±µ kæ¸f‰‰ÜGk/LÛØ6d9ò¶ùA{ƒA3š/¬D¬khÓk‰`˜"㯒r¿±Óã jx‡°e}<Ñø\3y:'À•/h½Í€Ç4~g ?Û(¼]v‘ªlKÎâ~?O‚W%{Ì:“'©úNq¾›úo(X’¥¯ˆ nFê{Ç€ü?º'ë ø‹ì Þ09ŒÌç9Æ —ËC`j@ÓÄ(+a‹un¸#ÂꟋ{K`‘ÑÍÍ'à´»/Û,KW;Þ4²þð ï Nm|~fGÏ(…³Ã)«1ö­Õ ¥‡¨©ƒÃ™ü-s=à=U66Ï«Ýc蓦W¹íž®›nÔ%êÇìŒ<#Ü×84ån®Ð ÒåOC` ñânÑs‡¢ç 1õ%Îhì½Ã½® e:ݼUZo™`  ÅZŸŒÊ«ê1ÏÄo$q¹Þ€©ˆhÐÉä¯ñ[!…Ú˜àJ:x2$Íß&PåT£6ç— ‡Í*4Ýšçjÿ ‰É nófÐ ó(L5C•åÆ\rMÒ@ò }y-W}™üýVù—ú¢=Ù”c®‘< M ž ´Phr ¦©TD ‘ù.$´÷O‡‘V2Æò.=IUŒ=ž‡â¬i™aþÓåÙ?òUø'ØÖ•.~* šTŒ!•-×áºTâ®ä#õü'´ eýlYÅÓeÕKÂrT"CÚ@u!Óxƒ{š3€}1¿(r}%«nËamjÑ%ÑNEò v ˜à  σöK³,*º.àzù¨™Ó ÚçâU¦*¿ 9{%Ö¹ njûdaXöb) kÛÆ±ûÓ\°M7ˆÂ=û›ç¿Ã‚­V»Cg–8ÙêE- j)k$º`Ã-ùEýeBÆÇ]c¡°ñty&Òd0nõ'¡W+ƒ*|–øµFa\GQªEAÔp5\Ǽ·¼Ç8·õ -â§Ú[ ‡ uZeÖ 3}×d'+¹:ð+K†Û®s!Ï$úe€<Û”x)1»a­¡LC]¸µík…ÚàA»AYº{†ªS[¦5HÒ7ù --,ísòDØ€èk ÞÀîÜ ò@â( ËNˆë›4ô½•/¦o‡€Û7 ê•ÆêòðÜy'Án½µ á˜ݦ ndeo…[ì¶Ê,¥R³Ä=À±—–ß;£™´ñSâ*g§”ïaið‘Jå~™ÓÞ ß³Õ¢»8x埒²52>AÊb&-÷\7´éÄù€T˜,w;3{ï˜k…à¹ÄqÀ«œ{€\ ˆ¾[´¨јr &Úé„Ívˆ±8†¿]|¬ņ4I×pÞS1ÈÖz‰#Ìv‡G!YNògñ:màTz¢Ý1ô©^O=~ë|5Bã™ç•¼µõ•bÆ@úÕS¬ÈŒ#¬zünrŸ û” Z²•èðV"ÁHÚý©wÝ €7¼Ìu1hÑa3Éä û f$o¿É ™Ú›ÝçnpÒ3äÌ3†Í§,Äï]$‰/pê †«À¼¸e9­Æê_C]žƒ·ý·frÁN«, E=›Çq -‰öŒ:aÏ¿±í&£Í:-} 84‘ÿ eƒQÑeëSsuiA ³g㟥ú£?ÿ ʼn*”“÷aühe:ÊWa@ÒÞk±eØ] F Ô—r.åä˜ @ö¥ªZoÐýYL·¥S²G/‡ñ <~*ZÆ´è>JlòàÛÆ½ÿ 窘ìGN¢:I®KšJp/`íIÁÀõ#Ä-€ö­šµŒoF4|ÆQØÆ@Ì|£Ô…¢À{9˜è½Üó›€ôYÒÎYsið;ís¤€à²ˆ‚4qÉVŒI$ ‰"° æµ8cXGjœˏ¡Aâý•ËÜ¢ûï e·çLx']á"oÅÎê3¯Ç—¹”ó0nå‚âg{Œñ> S´˜îè°g238‚ãköÝfÚd´6Ò€;ò÷±¢™¼›º ¢Æ'¥Ðx'e¬ç ]bÈÆV¢ó‹kýBO ðÊâ$Ÿ!×T 3Mýמ žìٍàÌü‘8÷€àæØ8æ©6‰©L´«…oãpð„~Çk‰!ñ;‹”ÛžÍ àž±z Ÿôû øŸÝužÏ;ÿ #|u6™Þ¬ÚˆÐõA4¶â|ôl|Ê2ŽÇ¤ÝÅÇY.<#Aí.k§hóF‚”Y; M½Ö4hŸ4&›­¿tès´%FìL¥£Ãk‰ÇT¤haÁ¤ÚxfÉ`ÑìË›>i 3t‚:,–+^÷´–{Û–Nxi"x‘Ûg î¨>¥Õ܁ùZH,2Û“:8xÊ¢Çí9.É-Ìâã-=çjwµS˜dütžçwýGòú®®ûº_ˆýx$–¡ãøO EÚÛÏ÷R„×w+3£Á£öUMyR²¹âŒ°š›¸Ñãò9§Ó_Dl+Ùßc›úšGÅÌc†Ž!Ko=¶.‘Îÿ c²(2®V mª.ÿ ¹B›¹å ù„öŸSV>™ü¯$y:G¢Z×àøúdî¹û­·ýÇ´:•c LÍõi_‹ö+ÎæGÊè>OŠ•äž´§Þ{X}¨1ÚTc›»Qþ•êô°t¿OP?eæ~É{5]•ÙR£r5†nZ\ã@ &îJõ ¾àC°þV>fé¥/ü5ñÊIº_é5 ;e­h<@ Ä&æÃëE%;X,ÒãÆÞ`Oò¦kŸm#˜!ÀyÄ¢| óLšò¥Ä` ¶R=|ÈCâh5ò3DˆïF†ðÒ#ÅìÛœ?¸yhBãœí ZxßÎÄhºRK„`Þödvײ™ÀÈÑÒgŒuY w³%†ƒÓzõ ÖÏp‚dH®¦A´ù§»ÓÇMæ~)ˆð‡û:ù&Ä •vGD´À n ݇¼Ö8Fö óáà£~Ë¥x`oK|Ä?fxiØü%pìR>éò+Û±éÎ>núlFŤ'tq8LZÏvÃ?„¡ß±È⽆¯³íü@x|PöUäèØã¡ð‚ŒAìÏ"vÍwóŸÍ{ ý0.z È•Ö{,N¡£¡ŸKÕÙž>Ýœþ ÍÀ°<×EA!Å‚D™IúOÍ¡>ôG}Â` ÍßkÜL™Ž Þð™ {IøF²¹òQ3&!ÃÂÞz.d&Ï-sH¸,Ôõ˜ŽP€ 77ˆÝ¼ÊëÜw =cÕ Ú,ØÐ5ÎYÐ)ì´öœgŒ[¤ßv㙑8心>h]§µháYš£²ºÑ.{Ï7Sð•?´~×SÃKýJÛ˜ ™Íäiúu<µX¶1õ^kâçIÑ£sZ4h>j*ÔšD:4­¿_ ÷¸ Õxæÿ ¸?Mù _•­ÊÐ ä ÷ý ÑwL œ­ïnTkÛUÍN©ë:¦fV ¶ÜÔÜMªÅâA½–¿R×TXš-%iTÊT•‡Ù‚JôϐZxWÑè‰f‰òG º ×Õû2aZ7OU3[“×AT–ÞŒ…-‘¤”Ì ì&(ˆ¿­•ƒkï’:ðY¦W‘ Å)“†‘˜³Åtcø˜ñTÂwÚÇ4|üLÇªí–v- qˆèU qPE.†â‘˜µ Æ,ÐÅs]8¾„oúÑ i>ÜxxÈó)ƒ ´æÁâØ$À‰vžŸf$Ž |ãw;ÀÁIJ»b` {¦Ó¤Ú$©YÀ‘n@Óïž«9J¼êG m¤ ܯ¹ÌW4€ÐÒÅÛ‡#褕Ÿn-?í|с¥÷Ú¹¬'´ÞÜ9ÓK `hê£SÄSà?7—Wí_´…óB›»:=Ãïq`<8ñÓŒÑlú2d¬ê³£hÖ[l|$vÝro~'R®‰§°ñmY ͧäP |PUª¹·:3Œ[Û{Xÿ ºâ@‚W–Äé u‚ ¯´*=íή.pûÒdt @G‰¬ s¸ ëÉücr ÞæÑ¨Ê@>¤¢Ö±. Þ'¯°ÌME[YéïĵÂCå½ Ué©Áû'Ê9%eÔðNU”ë‘ÌsD3/®+UI˜9h.WC”빓$#:pz:YÓ ¿xž* ³$Í +$kñAŠ‹†¢ Uê>¸)_š¬÷©ßAÂÔb9ÇU ¯¾á•9¯ÏÏ÷O÷¼¼Fähal1‰3Ì[Ïr•´UCksNÐ] R‘¸¥H+§Šé†c©vÖÞ0iÓ76s†î!§=ß ¼~Ô'°Ãmäoäš³ªøi1úÉ)³yV8 CLÄØÁ‘WYïi€H6ÖÑiámø^ÈY´°Ñ7¥Û*—Ñ©L«Qƒï—Ùrÿ ›£Ð*š¸ˆL©ˆ$ˆ ÷¾D§9È®«qbqC)–ˆïv´çñsÑVT­Ø, <àïºÀO«Jý·õ àfPìð .wFšir´þ’2_Y *Æ€x\« ì€9š@ Ž|F⇥ˆkZ@hÖÄ0t¿-<“‹qµ¾*ZL¤Ú)&BJpÓF5=$„at*Zš$’ÑtdûÝRI1 2މ$€$I$#‰SÞ’Hë¬ï;Á$¡t$’`<(ñÇt)$‡Ð.Êf¢X’Kt=Éé$‚ˆªè¢oÝëòI%Rgcª÷ŠyI%¡‰ÿ !ñ)´õ $¤ Ô’IIGÿÙ cSH"ddlZddlZddlZddlZddlmZmZmZmZmZm Z ddl m Z m Z m Z GddeZGddejZGdd ejZGd d ejZGd d ejZejejdZejejeZejeZejeZejeZejej_dZ dZ!GddZ"GddZ#GddZ$GddZ%eeeegej&_'eej&_eeeegej(_'eej(_de e)de)fdZ*dZ+dS)N)c_char_pc_void_pc_intc_uintc_size_t c_ssize_t)ListUnionIOceZdZdS)LibNetplanExceptionN__name__ __module__ __qualname__(/usr/share/netplan/netplan/libnetplan.pyr r Drr c.eZdZdejfdefdefgZdS)_GErrordomaincodemessageN)rrrctypesc_uint32rr_fields_rrrrrs*6?+fe_y(>STHHHrrceZdZdS)_netplan_stateNrrrrrr#rrrceZdZdS)_netplan_parserNrrrrr!r!'rrr!ceZdZdS)_netplan_net_definitionNrrrrr#r#+rrr#netplancd}|dkretj|}||}|dkr|dz}1|dkrtd|z|dkrdS|jdStd) Ni@rzUnknown error: %dutf-8z&Halting due to string buffer size > 1M)rcreate_string_bufferr valuedecode)functionsizebufferrs r_string_realloc_call_no_errorr09s D   ,T22x 2::!8D  !88%&9D&@AA A QYY4<&&w// / F G GGrctjt}t|g|tj|R}|s,t |jjddSNr)) rPOINTERrboolbyrefr contentsrr,)fnargserrrets r_checked_lib_callr;Ks{ !&. ! ! # #C rr+4+c**+++ , ,C H!#,"6"="=g"F"FGGGHHrcreZdZdZedZdZdZdee e ffdZ dZ de fdZ de d e fd Zd S) ParserFcx|jrdSttj_t jtgtj_tttgtj _ttj _tttgtj _ttj _tttgtj_ttj_ttttgtj_ttj_d|_dSNT) _abi_loaded_NetplanParserPlibnetplan_parser_newrestyperr3netplan_parser_clearargtypesr _GErrorPPnetplan_parser_load_yamlr netplan_parser_load_yaml_from_fd#netplan_parser_load_nullable_fields&netplan_parser_load_nullable_overridesclss r _load_abizParser._load_abiUs ?  F)8&-3^O-L-L,M )1@(I0V$-/4$,9H%QZ8[,57<,4,J,J+K(y/Q#,.3#+@V?W3<>F3;J`Ia=FHM=E2@1A%.05%-rcj|t|_dSrP)rNrBrmrQrRs rrTzState.__init__s) ))++ rchttj|jdSrP)rBrnrr5rQrRs rrVz State.__del__s(  TY 7 788888rcPttj|j|jdSrP)r;rBrorQ)rSparsers rimport_parser_resultszState.import_parser_resultss!#A49fkZZZZZrc|r|dnd}|r|dnd}ttj|j||dSr2)r[r;rBrsrQ)rSfilenameranameroots rwrite_yaml_filezState.write_yaml_filesW+3=xw'''*1;w~~g&&&t#;TYdSSSSSrc|d}|r|dnd}ttj|j||dSr2)r[r;rBrtrQ)rSdefault_filenamerarrs rupdate_yaml_hierarchyzState.update_yaml_hierarchysP&&w//*1;w~~g&&&t#A49dTXYYYYYrcn|}ttj|j|dSrP)r\r;rBrurQ)rS output_filefds r dump_yamlzState.dump_yamls0    ! !#5ty"EEEEErc@t|jSrP)rBrprQrRs r__len__z State.__len__s11$)<<z!State.all_defs..s(FFBRUBKFFFFFFrdict_NetdefIteratorrRs rall_defszState.all_defss)FF/$*E*EFFFFFFrcPtdt|dDS)Nc3(K|] }|j|fVdSrPrrs rrz"State.ethernets..s(MMBRUBKMMMMMMr ethernetsrrRs rrzState.ethernetss)MM/$ *L*LMMMMMMrcPtdt|dDS)Nc3(K|] }|j|fVdSrPrrs rrzState.modems..s(JJBRUBKJJJJJJrmodemsrrRs rrz State.modemss)JJ/$*I*IJJJJJJrcPtdt|dDS)Nc3(K|] }|j|fVdSrPrrs rrzState.wifis..(IIBRUBKIIIIIIrwifisrrRs rrz State.wifis)II/$*H*HIIIIIIrcPtdt|dDS)Nc3(K|] }|j|fVdSrPrrs rrzState.vlans..rrvlansrrRs rrz State.vlansrrcPtdt|dDS)Nc3(K|] }|j|fVdSrPrrs rrz State.bridges..(KKBRUBKKKKKKKrbridgesrrRs rrz State.bridges)KK/$ *J*JKKKKKKrcPtdt|dDS)Nc3(K|] }|j|fVdSrPrrs rrzState.bonds..rrbondsrrRs rrz State.bondsrrcPtdt|dDS)Nc3(K|] }|j|fVdSrPrrs rrz State.tunnels..rrtunnelsrrRs rrz State.tunnelsrrcPtdt|dDS)Nc3(K|] }|j|fVdSrPrrs rrzState.vrfs..s(HHBRUBKHHHHHHrvrfsrrRs rrz State.vrfss)HH/$*G*GHHHHHHrcPtdt|dDS)Nc3(K|] }|j|fVdSrPrrs rrz"State.ovs_ports..(NNBRUBKNNNNNNrz _ovs-portsrrRs r ovs_portszState.ovs_ports)NN/$ *M*MNNNNNNrcPtdt|dDS)Nc3(K|] }|j|fVdSrPrrs rrz#State.nm_devices..rrz nm-devicesrrRs r nm_deviceszState.nm_devicesrrctt|jdSr2)rBnetplan_backend_namerxrQr,rRs rbackendz State.backends5''(E(Edi(P(PQQXXY`aaarctj5}||tjd|ddddS#1swxYwYdS)N)rzMerged config: {})tempfile TemporaryFilerloggingdebugformatread)rStmps r dump_to_logszState.dump_to_logss  # % % C NNsN + + + M.55chhjjAA B B B C C C C C C C C C C C C C C C C C CsAA11A58A5N)rrrr@rhrNrTrVr}rrrrrpropertyrrrrrrrrrrrrrrrrrjrjs3K""["H,,,999[[[TTT ZZZ FFF===((( GGXGNNXNKKXKJJXJJJXJLLXLJJXJLLXLIIXIOOXOOOXObbXbCCCCCrrjceZdZdZedZdZdZedZ edZ edZ edZ ed Z ed Zed Zed Zed ZedZedZedZedZedZedZedZddZedZedZdS)rFc4|jrdStgtj_t tj_tttgtj _ttj _tttgtj _ttj _tgtj _t tj _tgtj _t tj _tttgtj_ttj_tgtj_t tj_tgtj_ttj_tgtj_ttj_tgtj_ttj_tgtj_ttj_tgtj_ttj_tgtj_t,tj_tgtj_t tj_tgtj_t tj_t gtj_ttj_t gtj_ttj_t6tt8gtj_t tj_tgtj_t tj_d|_dSr?)r@rrrBnetplan_netdef_has_matchrFrrDrrnetplan_netdef_get_idrnetplan_netdef_get_filepathnetplan_netdef_get_backendnetplan_netdef_get_typenetplan_netdef_get_set_name_netplan_netdef_get_criticalnetplan_netdef_get_sriov_linknetplan_netdef_get_vlan_linknetplan_netdef_get_bridge_linknetplan_netdef_get_bond_linknetplan_netdef_get_peer_link_netplan_netdef_get_vlan_idr%_netplan_netdef_get_sriov_vlan_filternetplan_netdef_match_interfacernetplan_def_type_namerlrG#_netplan_state_get_vf_count_for_def'_netplan_netdef_is_trivial_compound_itfrLs rrNzNetDefinition._load_abis  ?  F1G0H$-/4$,.DhPX-Y!*,5!)4JHV^3_'02;'/3I2J&/16&.0F/G#,.3#+4JHV^3_'02;'/5K4L(138(06L5M)24J)15K4L(13I(07M6N*35K*25K4L(13I(05K4L(13I(04J3K'028'/>T=U1:C3;rct|dsdStj|jjtj|jjkS)NrQF)hasattrr addressofrQr6)rSothers r__eq__zNetDefinition.__eq__GsDuf%% 5 233v7G H[7\7\\\rcJ|||_||_dSrP)rNrQ_parent)rSnp_staters rrTzNetDefinition.__init__Ls&    rcZtt|jSrP)r4rBrrQrRs r has_matchzNetDefinition.has_matchSs C00;;<<z(NetDefinition.set_name..Y(s7V7VW[W`bcehijekek7l7lrr0rRs`rset_namezNetDefinition.set_nameW,-l-l-l-lmmmrcZtt|jSrP)r4rBrrQrRs rcriticalzNetDefinition.critical[s C44TY??@@@rcrt|j}|rt|j|SdSrP)rBrrQrrrSlink_ptrs r sriov_linkzNetDefinition.sriov_link_s644TY??  9 x88 8trcrt|j}|rt|j|SdSrP)rBrrQrrrs r vlan_linkzNetDefinition.vlan_linkf633DI>>  9 x88 8trcrt|j}|rt|j|SdSrP)rBrrQrrrs r bridge_linkzNetDefinition.bridge_linkms655di@@  9 x88 8trcrt|j}|rt|j|SdSrP)rBrrQrrrs r bond_linkzNetDefinition.bond_linktrrcrt|j}|rt|j|SdSrP)rBrrQrrrs r peer_linkzNetDefinition.peer_link{rrcxt|j}|tdjkrdS|S)N)rBrrQrr+)rSvlan_ids rrzNetDefinition.vlan_ids511$)<< fRjj& & &4rcZtt|jSrP)r4rBrrQrRs rhas_sriov_vlan_filterz#NetDefinition.has_sriov_vlan_filters C==diHHIIIrctt|jdSr2)rBrrrQr,rRs rrzNetDefinition.backends5''(F(Fty(Q(QRRYYZabbbrctt|jdSr2)rBrrrQr,rRs rtypezNetDefinition.types5(()D)DTY)O)OPPWWX_```rc(tfdS)Nc`tj|t|SrP)rBrrQrrs rrz"NetDefinition.id..s(s7P7PQUQZ\]_bcd_e_e7f7frrrRs`rrzNetDefinition.ids,-f-f-f-fgggrc(tfdS)Nc`tj|t|SrP)rBrrQrrs rrz(NetDefinition.filepath..rrrrRs`rfilepathzNetDefinition.filepathrrcnt|j}|o|dSr2)rBrvrQr,)rSmodes rembedded_switch_modez"NetDefinition.embedded_switch_modes.::49EE, G,,,rcZtt|jSrP)r4rBrwrQrRs rdelay_virtual_functions_rebindz,NetDefinition.delay_virtual_functions_rebinds CII$)TTUUUrNc tt|j|o|d|o|d|o|dSr2)r4rBrrQr[)rSitf_name itf_driveritf_macs rmatch_interfacezNetDefinition.match_interfacesiC66 I  111  /w//  5:,,W55 7788 8rc&tjt}t|jj|jtj|}|dkr,t|j j d|S)Nrr)) rr3rrBrrrQr5r r6rr,)rSr9counts rvf_countzNetDefinition.vf_countss%fnW%%''77 8I49V\VbcfVgVghh 199%cl&:&A&A'&J&JKK K rcZtt|jS)z Returns True if the interface is a compound interface (bond or bridge), and its configuration is trivial, without any variation from the defaults. )r4rBrrQrRs ris_trivial_compound_itfz%NetDefinition.is_trivial_compound_itfs" C?? JJKKKr)NNN)rrrr@rhrNrrTrrrrrrrrrrr rr rrrrrrr!rrrrrskK==[=~]]]    ==X=nnXnAAXAX X X X X XJJXJccXcaaXahhXhnnXn--X-VVXV8888XLLXLLLrrc@eZdZdZedZdZdZdZdZ dS)rFc|jrdSttdstdtt gtj_ttj_ tgtj _ttj _ tgtj _dtj _ tgtj _t tj _ d|_dS)N#_netplan_iter_defs_per_devtype_initz The current version of libnetplan does not allow iterating by devtype. Please ensure that both the netplan CLI package and its library are up to date. T)r@rrBr rlr&_netplan_state_new_netdef_pertype_iterrFrrD#_netplan_iter_defs_per_devtype_nextrr#_netplan_iter_defs_per_devtype_free_netplan_netdef_idrLs rrNz_NetdefIterator._load_abis ?  FsABB %' @Nx>X2;=E2:/7+3*')1&rc|||_t|j|o|d|_dSr2)rNrrBr%rQr[iterator)rSrdevtypes rrTz_NetdefIterator.__init__sL   BB8=RYRu^e^l^lmt^u^uvv rcDt|jdSrP)rBr'r*rRs rrVz_NetdefIterator.__del__s // >>>>>rc|SrPrrRs r__iter__z_NetdefIterator.__iter__s rc|t|j}|stt |j|SrP)rBr&r* StopIterationrr)rS next_values r__next__z_NetdefIterator.__next__s7<sPc8mmG,, ''))!((**,,,,,r),rrr ctypes.utilrrrrrrtypingr r r Exceptionr Structurerrr!r#CDLLutil find_libraryrBr3rGrArlrrnetplan_get_id_from_nm_filenamerDr0r;r=rjrrr7rFr<rZr:r>rrrrGsS& IIIIIIIIIIIIIIII""""""""""     )   UUUUUfUUU     V%        f&        f.   fk&+**95566 FN>6>'22 3 3  &.11//'(?@@.4o#+HHH$HHH/V/V/V/V/V/V/V/Vd}C}C}C}C}C}C}C}C@xLxLxLxLxLxLxLxLv+8+8+8+8+8+8+8+8\085).T"+-2"*/7y.Q"+-2"*-c-3----,,,,,r