Тестовое задание C#  ОСНОВНОЕ ЗАДАНИЕ (суть задания):  Имеется два входных файла – файл_с_текстом и файл_словаря. Файл_с_текстом содержит текст в виде последовательностей текстовых строк, разделенных стандартным разделителем строки. Файл_словаря содержит произвольное количество строк, каждая из которых содержит ровно одно слово.  Пример файла_с_текстом: ----НАЧАЛО ФАЙЛА---- Файл_с_текстом содержит текст  в виде последовательностей строк,  разделенных стандартным разделителем  строки. Файл_с_текстом содержит текст  в виде последовательностей строк,  разделенных стандартным разделителем строки. ----КОНЕЦ ФАЙЛА----  Пример файла_словаря: ----НАЧАЛО ФАЙЛА---- текст  виде изображение файл ----КОНЕЦ ФАЙЛА----  Необходимо создать программу, создающую корректный HTML_файл, содержащий весь текст из файла_с_текстом в котором помечены жирным и наклонным шрифтом все слова из файла_словаря. HTML_файл должен отображаться в любом Internet-браузере (IE, Firefox, Chrome и др.) корректно, показывая весь текст, с выделением указанных слов.  Пример отображения HTML_файла в окне произвольного браузера (на основе примера выше): ----НАЧАЛО ВЫВОДА ---- Файл_с_текстом содержит текст  в виде последовательностей строк,  разделенных стандартным разделителем  строки. Файл_с_текстом содержит  текст в виде последовательностей строк,  разделенных стандартным разделителем строки. ----КОНЕЦ ВЫВОДА ----     ОБЯЗАТЕЛЬНЫЕ ТРЕБОВАНИЯ:  1.	Максимальные размеры входных файлов: файл_с_текстом – 2 Мб, файл_словаря – 100 000 строк (2 Мб). 2.	При обработке файла_с_текстом нельзя целиком его загружать в память компьютера. Файл_словаря наоборот нужно целиком загрузить в память, используя эффективные по времени структуры данных. 3.	Сгенерированный HTML_файл должен быть загружен любым браузером (в том числе IE, FireFox и другими) за время не более 5-10 секунд. 4.	Если получившийся HTML_файл превыщает размер N строк, то его необходимо разбить на несколько файлов, каждый не более N строк. При разбиении необходимо учитывать структуру текста. Желательно не делить одно предложение на 2 разных HTML_файла. (N задается через константу или через параметры командной строки в интервале от 10 строк до 100000 строк) 5.	В программе необходимо предусмотреть обработку нештатных ситуаций (Например, выбранный файл заблокирован, или имеет неправильную структуру и т.д.)  6.	Программа должна обеспечивать корректную обработку исключительных ситуаций (exceptions). 7.	В решении необходимо использовать стандартные классы – например, если в программе требуется список или словарь, тогда нужно использовать не собственные вручную написанные списки и словари, а имеющиеся в стандартной библиотеке. 8.	Программу нужно реализовать на C#.  ТРЕБОВАНИЯ К ПОСТАВКЕ (список файлов) 1.	Все поставляется в виде одного архива минимального размера. 2.	В архиве упакованы следующие папки: a.	Папка с исходным кодом b.	Папка с готовым к исполнению модулем.  Данная папка также включает в себя 2-3 тестовых примера, на которых программу легко можно проверить. 2.	Папка с документацией. Включает в себя руководство программиста и руководство пользователя.  ТРЕБОВАНИЯ К КАЧЕСТВУ: 1.	Наличие стиля форматирования – обязательное. Комментарии – обязательные для классов и для публичных методов-свойств.   2.	Требования к исполняемому коду – код должен корректно выполнять вышеописанный функционал.   ДОПОЛНИТЕЛЬНЫЕ ТРЕБОВАНИЯ: Желательно: •	Использовать многоуровневую архитектуру •	Обеспечить расширяемость решения •	Использовать паттерны проектирования •	Использовать юнит-тесты