(20pt) This question concerns the multi-pattern matching and searching (see slides 43-45 of Regular Expressions chapter) problems; assume the English alphabet Σ = {a, b, . . . , z}. (a) (10pt) Construct the minimal DFAs to solve the multi-pattern matching and searching problem for the patterns p1 = for, p2 = or, p3 = xor (one DFA for matching and one for searching). (b) (5pt) Write a (pretty) regular expression for each language, L, accepted by the DFAs at (a). (c) (5pt) For each L above, how many equivalence classes does ≈L have? Indicate one string for each class. Show your work. You can use Thomson’s construction, or directly build a correct NDFSM or DFA, or even the minimal DFA. Either way, you need to argue why your construction is correct.