ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ Afc@s}dZdZdZdZddlZddlZddlZddlZdZdZ dZ e d kryendS( is 225.0.0.250s'ff15:7079:7468:6f6e:6465:6d6f:6d63:6173iiNcCsMdtjdkrtnt}dtjdkr?t|n t|dS(Ns-6is-s(tsystargvt MYGROUP_6t MYGROUP_4tsendertreceiver(tgroup((s*/usr/lib64/python2.7/Demo/sockets/mcast.pytmains cCstj|dd}tj|dtj}tjdt}|dtjkrp|jtj tj |n|jtj tj |xKt rttj}|j|d|ddtftjdqWdS(Nis@isii(tsockett getaddrinfotNonet SOCK_DGRAMtstructtpacktMYTTLtAF_INETt setsockoptt IPPROTO_IPtIP_MULTICAST_TTLt IPPROTO_IPV6tIPV6_MULTICAST_HOPStTruetreprttimetsendtotMYPORTtsleep(Rtaddrinfotstttl_bintdata((s*/usr/lib64/python2.7/Demo/sockets/mcast.pyRs "cCsPtj|dd}tj|dtj}|jtjtjd|jdtftj |d|dd}|dtj kr|t j dtj }|jtjtj|n/|t j dd}|jtjtj|xYtrK|jd\}}x|dd kr.|d }qWt|d t|GHqWdS( Niitis=Is@Iiiss (RR R R Rt SOL_SOCKETt SO_REUSEADDRtbindRt inet_ptonRR R t INADDR_ANYRtIP_ADD_MEMBERSHIPRtIPV6_JOIN_GROUPRtrecvfromtstrR(RRRt group_bintmreqRR((s*/usr/lib64/python2.7/Demo/sockets/mcast.pyR1s t__main__( RRRRRR RRRRRt__name__(((s*/usr/lib64/python2.7/Demo/sockets/mcast.pyt s