fdZdZdZddZy)c<||jk(sJ|d|dS)z6Return a udev comparison clause, like `ACTION=="add"`.z==""upperkeyvalues 4/usr/lib/python3/dist-packages/cloudinit/net/udev.pycompose_udev_equalityr s! #))+  e $$c>||jk(sJd|d|dS)zBReturn a udev attribute comparison clause, like `ATTR{type}=="1"`.zATTR{z}=="r)lower) attributers r compose_udev_attr_equalityrs"  ) )) )(% 00r c<||jk(sJ|d|dS)z4Return a udev assignment clause, like `NAME="eth0"`.z="rrrs r compose_udev_settingrs! #))+  U ##r Nc |sd}djtddtddtd|td|td |g}d |zS) zReturn a udev rule to set the name of network interface with `mac`. The rule ends up as a single line looking something like: SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}="ff:ee:dd:cc:bb:aa", NAME="eth0" z?*z, SUBSYSTEMnetACTIONaddDRIVERSaddressNAMEz%s )joinr rr) interfacemacdriverrules r generate_udev_rulers]  99 !+u 5 !(E 2 !)V 4 &y# 6  3   D D=r )N)r rrrr r r!s% 1 $ r