1)n      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm Safe-Infered Raw data format for each type. &Raw data format for resource records. #Raw data format for DNS questions. $9Raw data format for the flags of DNS Query and Response. -:Raw data format for the header of DNS Query and Response. 5,Raw data format for DNS Query and Response. <Types for resource records. GType for domain. KMaking Question. S  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGnoHIJKpqLMrR  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGnoHIJKpqLM    !#"$%&'()*+,-./0123456789:;< FEDCBA@?>=GnoHIJKpqLMr Safe-InferedN  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNG<FEDCBA@?>=HIJ56789:;-./01234$%&'()*+,!#"  K LM Safe-Infered(stuvwxyz{|}~'stuvwxyz{|}~"stuvwxyz{|}~ Safe-InferedNReceiving DNS data from  and parse it. 9 The second argument is a buffer size for the socket. OParsing DNS data. NONOONNO Safe-InferedPBComposing query. First argument is a number to identify response. QComposing DNS data. PQPQQPPQ Safe-Infered R#Abstract data type of DNS Resolver X(Abstract data type of DNS Resolver seed Y Type for resolver configuration ^Union type for  and  . Specify  to  " resolv.conf" or numeric IP address in  form. aDefault Y.  [ is ` "/etc/ resolv.conf".  \ is 3,000,000 micro seconds.  ] is 512. bMaking X+ from an IP address of a DNS cache server. cGiving a thread-safe R to the function of the second  argument. c should be passed to forkIO. d)Looking up resource records of a domain. e:Looking up a domain and returning an entire DNS Response. RSTUVWXYZ[\]^_`abcdeRSTUVWXYZ[\]^_`abcde^`_YZ[\]aXbRSTUVWcde RSTUVWXYZ[\]^`_abcde Safe-Inferedf Resolving  by F. g Resolving  by E. h Resolving G and its preference by B. i Resolving  by F via B. j Resolving  by E via B. k Resolving  by C. l Resolving G and its preference by ?. m Resolving G and its preference by >. fghijklmfghijklmfghijklmfghijklm Safe-Inferedn  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm      !"#$%&'()*++,-./01233456789::;<=>?@ABCDEFGHIJKLMNOPQRSTUVVWXYZ[\\]^_`abcdefghijklmnopqrstuuvwxyyz{|}~ dns-0.3.3Network.DNS.TypesNetwork.DNS.DecodeNetwork.DNS.EncodeNetwork.DNS.ResolverNetwork.DNS.LookupNetwork.DNS.InternalNetwork.DNS.StateBinary Network.DNSRDATARD_OTHRD_SRVRD_TXTRD_AAAARD_ARD_SOARD_PTRRD_MXRD_CNAMERD_NSResourceRecordrrnamerrtyperrttlrdlenrdataQuestionqnameqtypeRCODERefusedNotImplNameErrServFail FormatErrNoErrOPCODEOP_SSROP_INVOP_STDQorR QR_ResponseQR_QueryDNSFlagsqOrRopcode authAnswer trunCation recDesired recAvailablercode DNSHeader identifierflagsqdCountanCountnsCountarCount DNSFormatheaderquestionanswer authority additionalTYPEUNKNOWNSRVPTRSOACNAMEMXTXTNSAAAAADomain intToType typeToInttoType makeQuestion responseA responseAAAAreceivedecode composeQueryencodeResolvergenIddnsSock dnsTimeout dnsBufsize ResolvSeed ResolvConf resolvInfo resolvTimeout resolvBufsizeFileOrNumericHost RCHostName RCFilePathdefaultResolvConfmakeResolvSeed withResolverlookup lookupRawlookupA lookupAAAAlookupMX lookupAviaMXlookupAAAAviaMX lookupTXT lookupPTR lookupSRVrrDBrookup defaultQuerydefaultResponse $fShowRDATAPStatepsDomain psPositionSGetWStatewsDomain wsPositionSPut initialWStateput8put16put32putInt8putInt16putInt32 putByteString addPositionW fixedSized writeSizedwsPopwsPush getPosition addPositionpushpopget8get16get32getInt8getInt16getInt32 getNBytesgetNByteString initialStateiterSGetrunSGetrunSPut$fMonoidStateTnetwork-2.3.0.11Network.SocketSocketbaseGHC.IOFilePathHostNameGHC.BaseString iproute-1.2.4 Data.IP.AddrIPv4IPv6