A>)      !"#$%&'(Safe;A four hexadecimal digits group representing a 16-Bit chunkAn all zeros 16-Bit chunk!A separator between 16-Bit chunksPA double-colon stands for a unique compression of many consecutive 16-Bit chunks=An embedded IPv4 address as representation of the last 32-Bit  Safe  Returns the ) of an IPv6 address. Given an arbitrary list of , returns the corresponding ).*Returns the corresponding ) of an IPv6 address token. Returns + if a list of " constitutes a valid IPv6 Address.(This is the main function which returns , the list of a tokenized IPv6 address text representation validated against RFC 4291 and canonized in conformation with RFC 5952, or -.Returns ,` the list of tokenized pure IPv6 address, always rewriting an embedded IPv4 address if present. Tokenize a ) into , a list of , or -..+An embedded IPv4 address have to be rewritten to output a pure IPv6 Address text representation in hexadecimal digits. But some well-known prefixed IPv6 addresses have to keep visible in their text representation the fact that they deals with IPv4 to IPv6 transition process (RFC 5952 Section 5):-IPv4-compatible IPv6 address like "::1.2.3.4".IPv4-mapped IPv6 address like "::ffff:1.2.3.4"/IPv4-translated address like "::ffff:0:1.2.3.4"1IPv4-translatable address like "64:ff9b::1.2.3.4"(ISATAP address like "fe80::5efe:1.2.3.4"Rewrites an embedded % into the corresponding list of pure  tokens. \ipv4AddrToIPv6AddrTokens (IPv4Addr "127.0.0.1") == [SixteenBits "7f0",Colon,SixteenBits "1"] * /.012345      * /.012345SafeReturns , a random ] token based on a mask "____", each underscore being replaced by a random hexadecimal digit. 4randIPv6AddrChunk "_f__" == Just (SixteenBit "bfd4")Generates a random partial  with n .Given a MAC address, returns , the corresponding  list, or -. wmacAddrToIPv6AddrTokens "fa:1d:58:cc:95:16" == Just [SixteenBit "fa1d",Colon,SixteenBit "58cc",Colon,SixteenBit "9516"]9Given a valid name of a local network interface, returns ,9 the list of tokens of the interface's IPv6 address, or -. getTokIPv6AddrOf "eth0" == Just [SixteenBit "fe80",DoubleColon,SixteenBit "fa1d",Colon,SixteenBit "58cc",Colon,SixteenBit "9516"]:Given a valid name of a local network interface, returns , the corresponding list of % of the interface's MAC Address, or -. bgetTokMacAddrOf "eth0" == Just [SixteenBit "fa1d",Colon,SixteenBit "58cc",Colon,SixteenBit "9516"]None Returns ,) the text representation of a canonized # in conformation with RFC 5952, or -. MmaybeIPv6Addr "0:0::FFFF:192.0.2.128" == Just (IPv6Addr "::ffff:192.0.2.128")Returns , a pure , or -. KmaybePureIPv6Addr "::ffff:192.0.2.128" == Just (IPv6Addr "::ffff:c000:280")Returns , a pure and fully expanded , or -. cmaybeFullIPv6Addr "::ffff:192.0.2.128" == Just (IPv6Addr "0000:0000:0000:0000:0000:ffff:c000:0280") Returns +E if arguments are two textual representations of a same IPv6 address.!fReturns the reverse lookup domain name corresponding of the given IPv6 address (RFC 3596 Section 2.5). }toIP6ARPA (IPv6Addr "4321:0:1:2:3:4:567:89ab") == "b.a.9.8.7.6.5.0.4.0.0.0.3.0.0.0.2.0.0.0.1.0.0.0.0.0.0.0.1.2.3.4.IP6.ARPA.""<Returns the Windows UNC path name of the given IPv6 Address. stoUNC (IPv6Addr "2001:0DB8:002a:1005:230:48ff:fe73:989d") == "2001-db8-2a-1005-230-48ff-fe73-989d.ipv6-literal.net"# Given an , returns the corresponding 6.$ Given an IPv6addr, returns the corresponding 7 address.%Returns , the canonized + of the given local network interface, or -. getIPv6AddrOf "eth0"&Returns a random .'Returns a random #, optionally with the given prefix. .randIPv6AddrWithPrefix (Just "4321:0:1:2:3:4")  !"#$%&'(  !"#$%&' $#!"%&'  !"#$%&'(8       !"#$%&'()*+,-./012345645789:;<=>?@ABCDEF%IPv6Addr-0.6.3-LfgV75dvjlcE4P4PEh5FG6Text.IPv6Addr.TypesText.IPv6Addr.InternalText.IPv6Addr.Manip Text.IPv6Addr IPv6AddrToken SixteenBitAllZerosColon DoubleColonIPv4AddrIPv6Addr$fShowIPv6Addr$fEqIPv6AddrToken$fShowIPv6AddrToken fromIPv6Addripv6TokensToText isIPv6AddrmaybeTokIPv6AddrmaybeTokPureIPv6AddrmaybeIPv6AddrTokensipv4AddrToIPv6AddrTokens expandTokensfromDoubleColon toDoubleColonipv6TokensToIPv6AddrnetworkInterfacesIPv6AddrListmacAddrrandIPv6AddrChunkrandPartialIPv6AddrmacAddrToIPv6AddrTokensgetTokIPv6AddrOfgetTokMacAddrOf maybeIPv6AddrmaybePureIPv6AddrmaybeFullIPv6Addr sameIPv6Addr toIP6ARPAtoUNC toHostNametoIPv6 getIPv6AddrOf randIPv6AddrrandIPv6AddrWithPrefix $fEqIPv6Addr#text-1.2.2.1-9Yh8rJoh8fO2JMLWffT3QsData.Text.InternalTextipv6TokenToTextghc-prim GHC.TypesTruebaseGHC.BaseJustNothingipv4AddrRewrite countIPv4Addr sixteenBitipv4Addr doubleColoncolonipv6AddrFullChunkhexaChar&network-2.6.3.1-G4Up1CPKbp7DeFsnywOnGGNetwork.SocketHostName$iproute-1.7.1-9hsGfRvggCmFA0ueZi5Sd9 Data.IP.AddrIPv6