<?xml version="1.0" encoding="utf-8"?>
<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0" xmlns:l="http://www.w3.org/1999/xlink">
 <description>
  <title-info>
   <genre>comp_programming</genre>
   <author>
    <first-name>Пит</first-name>
    <last-name>Гудлиф</last-name>
   </author>
   <book-title>97 этюдов для программистов. Опыт ведущих экспертов</book-title>
   <annotation>
    <p>Приобщитесь к мудрости экспертов и запомните то, что должен знать каждый программист, с каким бы языком и на какой платформе он ни работал. 97 кратких и очень полезных советов повысят ваш профессионализм посредством новых подходов к старым проблемам, лучших практик и разумных подсказок, предназначенных для оттачивания мастерства.</p>
    <p>Авторы этой книги, очень опытные и признанные в отрасли специалисты, передадут вам практические знания и принципы, полезные для проектов любого типа. Статьи касаются разных тем: от рекомендаций по написанию кода до культуры, от выбора алгоритмов до гибкого программирования, от приемов реализации до профессионализма, от стиля до сущности. Новички смогут познакомиться с фундаментальными положениями, а для профессионалов сборник сможет стать отправной точкой для обсуждений.</p>
   </annotation>
   <date>2010</date>
   <coverpage>
    <image l:href="#cover.jpg"/></coverpage>
   <lang>ru</lang>
   <src-lang>en</src-lang>
   <translator>
    <first-name>С.</first-name>
    <last-name>Маккавеев</last-name>
   </translator>
  </title-info>
  <src-title-info>
   <genre>comp_programming</genre>
   <author>
    <first-name>Pete</first-name>
    <last-name>Goodliffe</last-name>
   </author>
   <book-title>97 Things Every Programmer Should Know. Collective Wisdom from the Experts</book-title>
   <date>2010</date>
   <lang>en</lang>
  </src-title-info>
  <document-info>
   <author>
    <first-name></first-name>
    <last-name></last-name>
   </author>
   <program-used>ABBYY FineReader PDF 15, FictionBook Editor Release 2.6.7</program-used>
   <date value="2023-01-21">2023</date>
   <src-ocr>ABBYY FineReader PDF 15</src-ocr>
   <id>363FE004-912C-4242-A650-C7A7A8378582</id>
   <version>1.0</version>
   <history>
    <p>v 1.0 — конвертация из PDF</p>
   </history>
  </document-info>
  <publish-info>
   <book-name>Пит Гудлиф, Роберт Мартин, Диомидис Спинеллис, Кевлин Хенни и др. «97 этюдов для программистов. Опыт ведущих экспертов»</book-name>
   <publisher>Символ-Плюс</publisher>
   <city>СПб</city>
   <year>2012</year>
   <isbn>978-5-93286-198-1, 978-0-596-80948-5 (англ)</isbn>
   <sequence name="Профессионально"/>
  </publish-info>
  <custom-info info-type="">97 Things Every Programmer Should Know
Collective Wisdom from the Experts

Pete Goodliffe, Robert Martin, Diomidis Spinellis, Kevlin Henney and others
Edited by Kevlin Henney

Authorized Russian translation of the English edition of 97 Things Every Programmer Should Know ISBN 978-0-596-80948-5 © 2010 O’Reilly Media Inc. This translation is published and sold by permission of O’Reilly Media Inc., the owner of all rights to publish and sell the same.</custom-info>
 </description>
 <body>
  <title>
   <p>Пит Гудлиф, Роберт Мартин, Диомидис Спинеллис, Кевлин Хенни и др</p>
   <p>97 этюдов для программистов</p>
   <p>Опыт ведущих экспертов</p>
  </title>
  <epigraph>
   <p>Отсутствующим друзьям посвящается</p>
  </epigraph>
  <section>
   <title>
    <p>Предисловие</p>
   </title>
   <epigraph>
    <p>Новейший компьютер способен лишь с большей скоростью усложнить древнейшую проблему отношений между людьми, и в конечном итоге участнику общения по-прежнему придется решать, что и как говорить.</p>
    <text-author>Эдвард Р. Мэроу (Edward R. Murrow)</text-author>
   </epigraph>
   <p><strong>Программистам есть, над чем думать</strong>. Языки программирования, приемы программирования, среды разработки, стили написания кода, инструменты, процессы разработки, планы работ, совещания, архитектуры программ, шаблоны проектирования, динамика командного взаимодействия, код, технические требования, дефекты, качество кода. И другое. Много чего еще.</p>
   <p>Здесь мы находим искусство, ремесло и науку, которые простираются далеко за рамки программы. Деятельность программиста объединяет дискретный мир компьютеров и текучий мир человеческих занятий. Программисты служат связующим звеном между бизнесом с его расплывчатыми договорными истинами и выверенной, бескомпромиссной областью, где царят биты, байты и построенные на их основе пользовательские типы.</p>
   <p>Учитывая объемы знаний, работы и разнообразие способов ее выполнения, никакой человек или источник не может претендовать на знание «истинного пути». Поэтому, опираясь на народную мудрость и накопленный опыт, книга «97 этюдов для программистов» предлагает не столько упорядоченную общую картину, сколько пеструю мозаику мнений о том, что должно быть известно каждому программисту. Она касается разных тем: от рекомендаций по написанию кода до культуры, от выбора алгоритмов до гибкого программирования, от приемов реализации до профессионализма, от стиля до сущности.</p>
   <p>Отдельные статьи не стыкуются между собой, да и цель ставилась скорее противоположная. Ценность отдельной статьи здесь как раз в том, что она не похожа на другие. А ценность сборника в целом состоит в том, что статьи дополняют, подтверждают одна другую и даже противоречат друг другу. Они не связаны общим сюжетом: читатель сам может оценить материал, поразмышлять над ним и увязать прочитанное, сравнив новое с собственными контекстом, знаниями и опытом.</p>
   <subtitle>Лицензионные права</subtitle>
   <p>Все статьи публикуются по свободной лицензии. Они свободно доступны в Интернете под лицензией Creative Commons Attribution 3.0 License, что означает возможность использования отдельных статей в собственной работе при условии ссылки на их авторов:</p>
   <p><a l:href="http://creativecommons.org/licenses/by/3.0/us/"><emphasis>http://creativecommons.org/licenses/by/3.0/us/</emphasis></a></p>
   <subtitle>Контакты</subtitle>
   <p>На веб-странице книги перечислены найденные ошибки и приводятся дополнительные сведения:</p>
   <p><a l:href="http://www.oreilly.com/catalog/9780596809485/"><emphasis>http://www.oreilly.com/catalog/9780596809485/</emphasis></a></p>
   <p>Сопроводительный сайт, где опубликованы все статьи, биографии авторов и другие данные, находится по адресу:</p>
   <p><a l:href="http://programmer.97things.oreilly.com/"><emphasis>http://programmer.97things.oreilly.com</emphasis></a></p>
   <p>Вы также можете следить за новостями и исправлениями книги в Twitter:</p>
   <p><a l:href="http://twitter.com/97TEPSK"><emphasis>http://twitter.com/97TEPSK</emphasis></a></p>
   <p>Комментарии и технические вопросы, касающиеся этой книги, можно отправить электронной почтой:</p>
   <p><a l:href="mailto:%20bookquestions@oreilly.com"><emphasis>bookquestions@oreilly.com</emphasis></a></p>
   <p>Дополнительная информация о наших книгах, Центрах ресурсов и сети O’Reilly</p>
   <p>Network приведена на нашем веб-сайте:</p>
   <p><a l:href="http://www.oreilly.com/"><emphasis>http://www.oreilly.com/</emphasis></a></p>
   <subtitle>Safari<sup>®</sup> Books Online</subtitle>
   <image l:href="#i_001.jpg"/>
   <p>Safari Books Online — цифровая библиотека, которая дает возможность быстро находить ответы на ваши вопросы в 7500 технических книг, справочников и видеозаписей.</p>
   <p>Подписка Safari дает право читать любую страницу и смотреть любое видео в режиме онлайн. Читайте книги на сотовых телефонах и мобильных устройствах. Получайте доступ к новым изданиям до выхода их из печати. Получайте эксклюзивный доступ к рукописям в процессе работы и отправляйте замечания авторам. Копируйте текст примеров кода, загружайте главы, создавайте закладки и заметки, печатайте страницы — вот лишь некоторые из множества функций, экономящих ваше время.</p>
   <p>O’Reilly Media опубликовала эту книгу в Safari Books Online. Чтобы получить полный цифровой доступ к этой книге и книгам схожей тематики, выпущенным O’Reilly и другими издательствами, оформите бесплатную подписку на <emphasis>http:// my.safaribooksonline.com</emphasis>.</p>
   <subtitle>Благодарности</subtitle>
   <p>Проекту «97 этюдов для программистов» прямо или косвенно отдали свое время и знания многие люди. Все они заслуживают благодарности.</p>
   <p>Ричард Монсон-Хейфел (Richard Monson-Haefel) — редактор серии «97 Things» и редактор первой книги из этой серии, «97 Things Every Software Architect Should Know»,<a l:href="#n_1" type="note">[1]</a> в написании которой я принимал участие. Спасибо Ричарду за идею серии и за ее открытость для потенциальных участников, а также за то, что он так энергично поддерживал мои предложения по данной книге.</p>
   <p>Хочу поблагодарить всех тех, кто отдал свое время и силы, участвуя в создании текстов для этого проекта: как тех, чьи статьи опубликованы в этой книге, так и тех, чьи тексты не попали в нее, но опубликованы на веб-сайте. Большое количество и высокое качество материала весьма затруднили процесс окончательного отбора — жестко фиксированное в названии книги число не оставило места для дополнительных статей.</p>
   <p>Я также благодарен за дополнительные отзывы, комментарии и предложения, авторами которых были Джованни Аспрони (Giovanni Asproni), Пол Колин Глостер (Paul Colin Gloster) и Микаэль Хунгер (Michael Hunger).</p>
   <p>Спасибо O’Reilly за предоставленную этому проекту поддержку — от вики-хостинга, сделавшего книгу реальностью, до обеспечения всех стадий процесса публикации в бумажном виде. Сотрудники O’Reilly, которых я хотел бы особо поблагодарить: Майк Лукидес (Mike Loukides), Лорел Акерман (Laurel Ackerman), Эди Фридман (Edie Freedman), Эд Стивенсон (Ed Stephenson) и Рейчел Монахан (Rachel Monaghan).</p>
   <p>Дело не только в том, что текст книги рождался в среде Веб: через Веб проект также приобрел известность и популярность. Спасибо всем, кто распространял сведения о нем через социальные сети, блоги и прочими путями.</p>
   <p>Хочу также поблагодарить свою жену Кэролин за то, что привносит порядок в мой хаос, и двух моих сыновей, Стефана и Янника, за то, что часть этого порядка они вновь превращают в хаос.</p>
   <p>Надеюсь, что эта книга станет для вас источником информации, открытий и вдохновения.</p>
   <p>Приятного чтения!</p>
   <p><emphasis>Кевлин Хенни</emphasis></p>
   <p><emphasis>(Kevlin Henney)</emphasis></p>
  </section>
  <section>
   <title>
    <p>Будьте благоразумны</p>
    <p>Себ Роуз</p>
   </title>
   <epigraph>
    <p>В любом деле будь благоразумен и думай о последствиях.</p>
    <text-author>Неизвестный</text-author>
   </epigraph>
   <image l:href="#i_002.jpg"/>
   <p><strong>Как бы успокаивающе ни выглядел график работы </strong>в начале итерации, в какой-то момент неизбежно возникает нехватка времени. Если приходится разрываться между «сделать правильно» и «сделать быстро», часто возникает соблазн «сделать быстро» с оговоркой, что вы исправите решение позже, когда появится время. Вы совершенно искренне даете обещание именно так и поступить — даете самому себе, команде или заказчику. Но очень часто на следующей итерации возникают уже другие проблемы, которым и приходится посвящать свое внимание. Такую отложенную работу называют <emphasis>техническим долгом</emphasis>, и хорошего от него не жди. В своей классификации технических долгов Мартин Фаулер называет такой вид долга <emphasis>умышленным техническим долгом</emphasis>, и его не следует путать с <emphasis>непреднамеренным техническим долгом</emphasis>.<a l:href="#n_2" type="note">[2]</a></p>
   <p>Технический долг подобен кредиту: в краткосрочной перспективе он выгоден, но по нему приходится выплачивать проценты до полного погашения займа. Срезая углы при написании кода, вы затрудняете как разработку новой функциональности, так и рефакторинг. Это создает благоприятную почву для появления ошибок и нестабильных <emphasis>тестовых сценариев</emphasis> (<emphasis>test cases</emphasis>). Чем дольше долг существует, тем тяжелее последствия. К тому времени, как дойдут руки внести запланированные исправления, может оказаться, что на основе изначального сомнительного кода уже выстроена целая гора не вполне верных с точки зрения проектирования решений, а это значительно осложнит рефакторинг и исправление этого кода. На самом деле, к решению изначальной проблемы часто возвращаются лишь тогда, когда <emphasis>уже нет выбора</emphasis>, кроме как вернуться и все исправить. И зачастую к этому моменту исправление оказывается уже настолько сложным, что вы просто не можете себе позволить потерять так много времени или пойти на подобный риск.</p>
   <p>Бывают ситуации, когда приходится идти на создание технического долга, если необходимо уложиться в срок или частично реализовать некую функциональность. Старайтесь не оказываться в таких ситуациях, однако если положение совершенно безвыходное, действуйте. Но (и это увесистое <emphasis>но</emphasis>) вы должны вести учет своего технического долга и гасить его как можно скорее, иначе проблемы растут, как снежный ком. И если уж вы пошли на такой компромисс, составьте карточку с заданием (task card) или создайте запись в системе учета дефектов, чтобы не забыть о проблеме.</p>
   <p>Если вы планируете погасить свой долг на следующей итерации, потери будут минимальными. На непогашенный долг капают проценты, за которыми нужно постоянно следить, чтобы видеть реальную конечную цену. Это подчеркивает влияние технического долга проекта на его бизнес-стоимость и позволяет разумно расставлять акценты в вопросах погашения такого долга. Способ начисления и отслеживания процентов зависит от конкретного проекта, но отслеживать их должны вы.</p>
   <p>Гасите технические долги как можно скорее. Поступать иначе — неблагоразумно.</p>
  </section>
  <section>
   <title>
    <p>Применяйте принципы функционального программирования</p>
    <p>Эдвард Гарсон</p>
   </title>
   <image l:href="#i_003.jpg"/>
   <p><strong>Функциональное программирование </strong>недавно снова обратило на себя внимание большинства в сообществе программистов. Отчасти благодаря тому, что <emphasis>эмерджентные свойства</emphasis> функциональной парадигмы созвучны решению задач, возникающих в нашей отрасли в связи с ростом значимости многоядерных архитектур. И хотя данное применение, несомненно, важно, однако не оно является главным основанием для моего наставления <emphasis>познать функциональное программирование</emphasis>.</p>
   <p>Овладев парадигмой функционального программирования, программист может значительно повысить качество кода, создаваемого в других контекстах. Глубокое понимание парадигмы функционального программирования и ее применение на практике помогут вам проектировать системы, обладающие гораздо большей степенью <emphasis>ссылочной прозрачности</emphasis> (<emphasis>referential transparency</emphasis>).</p>
   <p>Ссылочная прозрачность является качеством очень желательным: она предполагает, что функции неизменно дают одинаковые результаты на одинаковых входных данных независимо от места и времени обращения к этим функциям. Вычисление функции, таким образом, слабо зависит от побочных эффектов изменяющегося (mutable) состояния — в идеале не зависит от них вообще.</p>
   <p>Один из главных источников дефектов в коде на императивном языке программирования — изменяемые (mutable) переменные. Каждому читателю наверняка приходилось разбираться, почему в каком-либо конкретном случае некоторое значение не соответствовало ожидаемому. Семантика областей видимости может препятствовать появлению таких коварных ошибок или, по крайней мере, значительно сужать возможную область их появления. Но истинной причиной их возникновения может быть сама концепция проектирования такого кода, который беспорядочно полагается на изменяемость (mutability).</p>
   <p>И в этом отношении нам определенно не стоит ждать особой помощи от собственной отрасли. Вводные тексты по объектно-ориентированному программированию скрыто пропагандируют подобные конструкции. В них часто приводятся примеры групп объектов, которые обладают относительно долгим сроком жизни и обмениваются вызовами методов, изменяющих состояние (mutator methods), что небезопасно. Однако грамотное проектирование на основе тестов (test-driven design), особенно если обеспечена «имитация ролей, а не объектов (mock roles, not objects)»,<a l:href="#n_3" type="note">[3]</a> позволяет избавиться от излишеств изменчивости в архитектуре.</p>
   <p>В итоге, как правило, получается архитектура с более удачным распределением обязанностей и множеством мелких функций, которые работают с полученными аргументами, а не обращаются напрямую к изменяемым переменным-членам. Дефектов становится меньше, а также упрощается их отладка, ведь легче найти, откуда взялось неверное значение в такой конструкции, чем пытаться выяснить, в каком конкретном контексте появляется ошибочное присваивание. Это <emphasis>значительно повышает</emphasis> ссылочную прозрачность, и решительно ничто не может так способствовать глубокому усвоению этих идей, как изучение функционального языка программирования, где такая модель вычислений является нормой.</p>
   <p>Конечно, такой подход оптимален не всегда. Например, зачастую в объектно-ориентированных системах лучшие результаты этот стиль дает при разработке модели предметной области (то есть когда сотрудничество объектов служит снижению сложности бизнес-правил), чем при разработке интерфейса пользователя.</p>
   <p>Овладейте парадигмой функционального программирования, чтобы разумно применять полученные знания в других областях. Взять хотя бы ваши иерархии объектов — они станут просто светиться качеством ссылочной прозрачности и окажутся значительно ближе к своим функциональным аналогам, чем можно было бы предположить. На самом деле, некоторые даже высказывают мнение, что в своем высшем проявлении функциональное программирование и объектно-ориентированный подход оказываются <emphasis>лишь отражениями друг друга</emphasis>, своего рода вычислительными инь и ян.</p>
  </section>
  <section>
   <title>
    <p>Выясните, как поступит пользователь (и вы — не пользователь)</p>
    <p>Жиль Колборн</p>
   </title>
   <image l:href="#i_004.jpg"/>
   <p><strong>Мы все склонны полагать, что другие люди рассуждают так же, как мы. </strong>Но это не так. В психологии это называется <emphasis>эффектом ложного согласия</emphasis>. Если люди думают или поступают иначе, чем мы, мы часто (подсознательно) считаем их в чем-то неполноценными.</p>
   <p>Этот эффект объясняет, почему программисту так трудно поставить себя на место пользователя. Пользователи рассуждают иначе, чем программисты. Прежде всего, они значительно меньше времени проводят за компьютером. Они не знают и не хотят знать, как работает компьютер. Это означает, что пользователи не могут прибегать к арсеналу приемов решения проблем, которым в совершенстве овладели программисты. Им не знакомы шаблоны и визуальные приметы, которыми пользуются программисты при работе с интерфейсами, для навигации по ним и для освоения интерфейсов.</p>
   <p>Чтобы понять образ мыслей пользователя, лучше всего понаблюдать за ним. Предложите ему выполнить задание с помощью программы, аналогичной той, которую вы разрабатываете. Задача должна быть реальной. «Сложить числа в колонке» — неплохо, но еще лучше: «подсчитать собственные расходы за последний месяц». Не следует брать слишком конкретные задачи, например «Вы не могли бы выделить эти ячейки в таблице и ввести ниже формулу суммирования?» — в этом вопросе содержится слишком явная подсказка. Предложите пользователю рассказывать о своих действиях по ходу работы. Не перебивайте его. Не пытайтесь помочь. Спрашивайте себя: «Почему он делает так?» и «Почему она не делает этого?».</p>
   <p>Прежде всего, вы обнаружите, что есть ряд действий, которые все пользователи выполняют схожим образом. Они пытаются выполнять задачи в одном и том же порядке и делают одинаковые ошибки в одних и тех же местах. Такое базовое поведение нужно класть в основу проектирования. Сравните данный подход с тем, что обычно происходит на встречах по проектированию системы, когда собравшиеся прислушиваются к вопросам вроде такого: «А вдруг пользователь захочет…». Так в приложении появляются многочисленные функции и возникает путаница в отношении того, что нужно пользователям. Если наблюдать за пользователями, такой путаницы не будет.</p>
   <p>Вы можете столкнуться с тем, что пользователь где-то застрял. Когда вы сами застреваете, то осматриваетесь по сторонам. Когда застревает пользователь, его область внимания, напротив, сужается. Ему становится сложнее увидеть решение в другой области экрана. Вот одна из причин, почему вспомогательный текст — плохое решение для плохого пользовательского интерфейса. Если необходимо дать инструкции или сопроводительный текст, размещать их нужно в непосредственной близости от проблемной области. Именно сужение поля внимания пользователя служит причиной тому, что всплывающие подсказки более полезны, чем встроенная справка.</p>
   <p>Обычно пользователи находят способ с грехом пополам довести дело до конца. Если они находят какой-то путь к цели, то будут идти по нему и впредь, каким бы запутанным он ни был. Лучше дать им один действительно очевидный способ решения задачи вместо двух или трех неочевидных (но более быстрых).</p>
   <p>Вы также обнаружите большое расхождение между тем, чего пользователь, по его словам, хочет, и тем, что он делает в действительности. Это тревожный факт, ведь обычно требования пользователей собираются путем их опроса. Вот почему лучший способ собирать требования — наблюдать за пользователями. Час наблюдений за пользователями даст вам больше информации, чем день гаданий о том, что им нужно.</p>
  </section>
  <section>
   <title>
    <p>Автоматизируйте свой стандарт форматирования кода</p>
    <p>Филип ван Лаенен</p>
   </title>
   <image l:href="#i_005.jpg"/>
   <p><strong>Вероятно, вы тоже через это проходили</strong>. В начале проекта у всех полно благих замыслов — назовем их «новопроектными обещаниями».<a l:href="#n_4" type="note">[4]</a> Довольно часто многие из этих обещаний фиксируются документально. Обещания, связанные с кодом, попадают в стандарт оформления кода данного проекта. На первом собрании проекта ведущий разработчик оглашает этот документ, и в идеале все соглашаются старательно соблюдать предложенные требования. Однако по ходу работы над проектом все эти благие намерения одно за другим забываются. Когда проект наконец завершен, код выглядит весьма запутанно, и, похоже, никто не понимает, как так получилось.</p>
   <p>Когда же все пошло наперекосяк? Вполне вероятно, что как раз на том первом собрании. Некоторые его участники были невнимательны. Другие не поняли, в чем смысл стандарта. Хуже того, кое-кто был против предложенного и прямо на собрании затевал против стандарта восстание. И даже те, кто понял и согласился, в какой-то момент работы на проекте были вынуждены под давлением обстоятельств упростить себе жизнь. Ведь хорошо отформатированный код не будет оценен клиентом, которому нужны новые функции в приложении. Кроме того, соблюдение стандарта оформления кода может оказаться весьма утомительным делом, если его не автоматизировать. Попробуйте расставить отступы в плохо написанном классе, и вы убедитесь в этом сами.</p>
   <p>Но если это так трудно, зачем нам вообще создавать стандарт оформления кода? Одна из целей единообразного форматирования кода — не позволить никому «приватизировать» код путем форматирования его своим особым способом. Также не следует допускать применения разработчиками определенных антипаттернов, чтобы избежать ряда известных ошибок. В целом стандарт оформления должен облегчать работу над проектом и поддерживать постоянную скорость разработки от начала до конца. Отсюда следует, что поддержка стандарта должна быть единогласной: плохо, если один разработчик делает отступы размером в три пробела, а другой — в четыре.</p>
   <p>Существует множество инструментов, с помощью которых можно создавать отчеты о качестве кода, а также документировать и поддерживать стандарт форматирования кода, но это только часть решения. Стандарт следует автоматизировать и внедрять принудительно там, где это возможно. Вот некоторые примеры:</p>
   <p>• Сделайте форматирование кода частью процедуры сборки, чтобы оно происходило автоматически при каждой компиляции кода.</p>
   <p>• Применяйте средства статического анализа кода для поиска нежелательных антипаттернов. Прерывайте сборку при их обнаружении.</p>
   <p>• Научитесь настраивать эти инструменты, что поможет находить антипаттерны, специфические для вашего проекта.</p>
   <p>• Не просто замеряйте процент покрытия тестами, но и делайте автоматическую оценку результатов. Прерывайте сборку, если процент покрытия тестами недопустимо низкий.</p>
   <p>Постарайтесь внедрить эти принципы в отношении всех требований к коду, которые вы считаете важными. Полностью автоматизировать все, что вас беспокоит, вы не сможете. Те аспекты, которые невозможно обнаружить или исправить автоматически, следует включить в дополнительный набор правил — как приложение к автоматизированной части стандарта. Однако вам придется принять тот факт, что у вас и ваших коллег есть возможность соблюдать правила из этого приложения менее строго.</p>
   <p>Наконец, стандарт кодирования должен эволюционировать, а не быть высеченным в камне. С течением времени потребности проекта меняются, и то, что казалось разумным в начале, совсем не обязательно останется таковым через несколько месяцев.</p>
  </section>
  <section>
   <title>
    <p>Красота — следствие простоты</p>
    <p>Йорн Ольмхейм</p>
   </title>
   <image l:href="#i_006.jpg"/>
   <p><strong>У Платона есть одно высказывание</strong>, которое, как мне кажется, особенно полезно было бы знать и принимать близко к сердцу всем разработчикам программного обеспечения:</p>
   <cite>
    <p>Красота стиля, гармония, изящество и хороший ритм основываются на простоте.</p>
   </cite>
   <p>Одно это предложение объединяет ценности, которыми нам, разработчикам, надлежит восхищаться.</p>
   <p>Есть ряд вещей, которых мы стремимся достичь в нашем коде:</p>
   <p>• Читаемость</p>
   <p>• Простота сопровождения</p>
   <p>• Скорость разработки</p>
   <p>• Неуловимая красота</p>
   <p>Платон говорит нам, что все эти качества возможны только благодаря простоте. Что такое красивый код? Вероятно, это очень субъективный вопрос. Восприятие красоты сильно зависит от личного опыта, как зависит от него наше восприятие чего бы то ни было. Изучавшие искусство иначе воспринимают красоту (по крайней мере, иначе к ней подходят), чем получившие техническое образование. Люди с гуманитарным образованием обычно рассматривают красоту программы, сравнивая ее с произведением искусства, тогда как люди с техническим образованием чаще рассуждают о симметриях и золотом сечении, пытаясь все свести к формулам. По моему опыту, именно на простоте строятся в большинстве своем доводы обеих сторон.</p>
   <p>Поразмышляйте об исходном коде всех программ, которые вам доводилось встречать. Если вы никогда не занимались изучением кода, написанного другими людьми, прямо сейчас отложите чтение, найдите какой-нибудь открытый исходный код и изучите его. Я серьезно! Поищите в Интернете код на вашем любимом языке, написанный известным и признанным специалистом.</p>
   <p>Вы вернулись? Хорошо. На чем мы остановились? Ах, да… Я обнаружил, что примеры кода, которые находят отклик в моей душе и кажутся мне красивыми, имеют некоторые общие свойства. Прежде всего, это простота кода. Я считаю, что каким бы сложным ни было приложение или система в целом, отдельные его части должны быть простыми: простые объекты, выполняющие единственную задачу, и в них настолько же простые специализированные методы с хорошо понятными именами. Некоторые считают, что требовать, чтобы методы содержали не более 5-10 строк кода, — это крайность, и в некоторых языках этого очень трудно достичь. Однако мне все же кажется, что такая лаконичность очень желательна.</p>
   <p>Вывод таков: красивый код — значит простой код. Все составные части просты, решают простые задачи и связаны простыми отношениями с другими частями системы. Благодаря этому мы можем облегчить сопровождение кода своих систем, а понятный, простой, легко тестируемый код обеспечит высокую скорость разработки на протяжении всего времени существования системы.</p>
   <p>Простота — источник и непременный атрибут красоты.</p>
  </section>
  <section>
   <title>
    <p>Прежде чем приступать к рефакторингу</p>
    <p>Раджит Аттапатту</p>
   </title>
   <image l:href="#i_007.jpg"/>
   <p><strong>Рано или поздно каждому программисту приходится выполнять рефакторинг </strong>существующего кода. Но прежде чем броситься в бой, поразмыслите о нескольких вещах, которые могут сберечь вам и коллегам уйму времени (и уберечь от головной боли):</p>
   <p>• <emphasis>Лучше всего начинать рефакторинг с оценки состояния существующего в проекте кода и написанных для него тестов</emphasis>. Так вы сможете выяснить достоинства и недостатки кода в его текущем состоянии, чтобы сохранить его сильные стороны и избежать уже сделанных ошибок. Каждому кажется, что его система будет лучше, чем нынешняя… до тех пор, пока не выяснится, что новый код не лучше, а может, даже хуже, чем предыдущая версия, — и все потому, что мы не стали учиться на ошибках, допущенных в старой системе.</p>
   <p>• <emphasis>Сопротивляйтесь желанию переписать все заново</emphasis>. Лучше всего повторно использовать как можно больше кода. Каким бы уродливым он ни казался, этот код уже протестировали, прорецензировали и все прочее. Выкинуть старый код, а особенно если он использовался в рабочей системе, — значит выкинуть месяцы (или годы) работы над протестированным и проверенным в боях кодом, который может содержать неведомые вам обходные решения или исправления дефектов. Если не учесть этого, в новом коде могут проявиться те же загадочные ошибки, которые уже были исправлены в старом коде. В результате вы потеряете массу времени и сил, а также знания, копившиеся годами.</p>
   <p>• <emphasis>Множество мелких изменений лучше, чем одно масштабное</emphasis>. Внося небольшие изменения, легче оценить их воздействие на систему при помощи стандартных каналов обратной связи, таких, например, как тестирование. Грустно видеть, как после внесенного изменения «падает» добрая сотня модульных тестов. Вызванные подобными результатами раздражение и нервозность могут спровоцировать вас на принятие сомнительных решений. Значительно легче справляться, если в каждый момент времени «падают» лишь один-два теста.</p>
   <p>• <emphasis>После каждой итерации разработки важно убедиться, что все имеющиеся тесты успешно отрабатывают.</emphasis> Если имеющиеся тесты не покрывают внесенные вами изменения, создайте новые тесты. Не выбрасывайте тесты из старого кода бездумно. Внешне может казаться, что некоторые из них не применимы к новой архитектуре системы, но будет совершенно не лишним потратить время и разобраться, с какой целью был создан конкретный тест.</p>
   <p>• <emphasis>Личные предпочтения и самолюбие оставьте в стороне</emphasis>. Зачем чинить то, что и так работает? Если стиль или организация кода противоречат вашим вкусам, это не является достаточной причиной для рефакторинга. Равно как и ваша уверенность, что вы сможете написать код лучше, чем предыдущий программист.</p>
   <p>• <emphasis>Появление новой технологии — недостаточно веская причина для проведения рефакторинга</emphasis>. Очень плохо, когда за рефакторинг берутся только потому, что имеющийся код на годы отстал от крутых новейших технологий, и нам кажется, что новый язык или платформа позволят решить задачу намного элегантнее. Код вашей системы лучше всего оставить в покое, за исключением случаев, когда анализ затрат и результатов показывает, что новый язык или платформа могут дать существенный выигрыш в функциональности, простоте сопровождения или производительности.</p>
   <p>• <emphasis>Помните, что люди ошибаются</emphasis>. Новая структура кода не всегда гарантирует, что новый код будет лучше предыдущего или хотя бы того же качества. Мне приходилось быть свидетелем и участником нескольких провалившихся попыток реорганизации. Приятного было мало, но ведь людям свойственно ошибаться.</p>
  </section>
  <section>
   <title>
    <p>Осторожно: общий код</p>
    <p>Уди Дахан</p>
   </title>
   <image l:href="#i_008.jpg"/>
   <p><strong>Мой первый проект в компании</strong>. Я только что защитил диплом, мне не терпится проявить себя, так что я допоздна засиживаюсь на работе и тщательно изучаю существующий код. Работая над своей первой задачей, я применяю все, чему меня учили: комментарии, журналы событий, выделение общего кода в библиотеки (где это возможно), все дела. Мне кажется, что я полностью готов к рецензированию кода, но коллеги словно окатывают меня холодным душем: я получаю за повторное использование кода!</p>
   <p>Как так? Во время моей учебы в колледже повторное использование кода превозносилось в числе лучших практик разработки программ. Все прочитанные мною статьи и учебники, наставлявшие меня опытные профессиональные программисты — неужели все они ошибались?</p>
   <p>Оказывается, я упустил из виду нечто очень важное.</p>
   <p>Контекст.</p>
   <p>Тот факт, что две напрямую не связанные части системы пользуются одной и той же логикой, означает меньше, чем мне казалось. До того как я поместил общий код в одну библиотеку, эти части работали независимо одна от другой. Они могли независимо развиваться. Логика каждой из них могла измениться в соответствии с меняющимися требованиями бизнес-среды. Те четыре строчки похожего кода возникли случайно — временная аномалия, совпадение. Ну, то есть это было совпадением, пока за дело не взялся я.</p>
   <p>Созданные мною библиотеки общего кода связали шнурки ботинок в один клубок. Любое движение в первой предметной области требовало синхронизации со второй предметной областью. Пока функции были независимы, стоимость их сопровождения была пренебрежимо мала, но как только появилась общая библиотека, объемы необходимого тестирования выросли на порядок.</p>
   <p>Сократив абсолютное число строк кода системы, я вместе с тем увеличил количество зависимостей. Контекст этих зависимостей крайне важен: находись они в одном месте, общий код можно было бы оправдать и извлечь из него пользу. Но если не держать эти зависимости под контролем, они запустят свои щупальца в более важные вопросы функционирования системы, даже если сам по себе код с виду безупречен.</p>
   <p>Коварство таких ошибок — в правильности основополагающих идей. Подобные приемы применять в должном контексте полезно, а вот в неверном контексте от них больше убытков, чем пользы. Теперь, если я работаю с кодом существующего проекта и не знаю, где могут использоваться различные его части, я гораздо осторожнее подхожу к совместному использованию кода.</p>
   <p>Осторожнее с общим кодом. Изучите контекст. И лишь затем действуйте.</p>
  </section>
  <section>
   <title>
    <p>Правило бойскаута</p>
    <p>Роберт Мартин, известный также как «Дядюшка Боб»</p>
   </title>
   <image l:href="#i_009.jpg"/>
   <p><strong>У бойскаутов есть правило</strong>: «Оставь после себя лагерь чище, чем он был, когда ты пришел». Если на земле валяется мусор, ты убираешь его, даже если намусорили другие. Ты намеренно улучшаешь условия существования для следующей группы, которая придет в лагерь. (А исходно это правило, установленное основателем скаутского движения Робертом Стивенсоном Смитом Бейден-Пауэллом, звучало так: «Постарайся, чтобы этот мир стал лучше, чем до того, как ты в него пришел».)</p>
   <p>Представьте, что мы следуем похожему правилу для нашего кода: «Всегда сохраняй модуль в репозиторий в лучшем состоянии, чем он был, когда ты его оттуда загрузил». Кто бы ни написал этот модуль изначально, что если потратить хоть немного сил, чтобы улучшить его? К чему это может привести?</p>
   <p>Думаю, следуй мы все этому простому правилу, нам больше не пришлось бы видеть неумолимую деградацию наших программных систем. Напротив, они становились бы все лучше по мере своего развития. На смену отдельным людям, беспокоящимся лишь о собственных фрагментах работы, пришли бы целые команды, заботящиеся о системах в целом.</p>
   <p>Мне кажется, такое правило не слишком сложно в исполнении. Необязательно доводить до совершенства каждый модуль, который вы возвращаете в репозиторий. Просто сделайте его <emphasis>чуть лучше</emphasis>, чем он был, когда попал к вам в руки. Естественно, это означает, что, расширяя модули собственным кодом, вы создаете чистый код. Кроме того, нужно навести порядок хотя бы еще в одном месте, прежде чем сохранять модуль. Достаточно лишь дать какой-то переменной более удачное имя или разбить длинную функцию на две более коротких. Можно устранить циклическую зависимость или добавить интерфейс, устраняющий зависимость между политикой и реализацией.</p>
   <p>Честно говоря, мне кажется, что это обычные правила приличия — как мыть руки после туалета или выбрасывать мусор в мусорное ведро, а не на пол. Скажем прямо, оставлять беспорядок в коде должно быть столь же социально неприемлемо, как сорить на улице. Такого попросту не следует делать.</p>
   <p>Здесь скрыто больше, чем кажется. Одно дело — следить за порядком в собственном коде, и совсем другое — следить за порядком в коде всей команды. Команды помогают одна другой и подчищают код одна за другой. Каждая следует правилу бойскаута, потому что оно приносит пользу всем, а не только одной конкретной команде.</p>
  </section>
  <section>
   <title>
    <p>Прежде чем пенять на других, проверь собственный код</p>
    <p>Аллан Келли</p>
   </title>
   <image l:href="#i_010.jpg"/>
   <p><strong>Разработчику — любому из нас! — </strong>часто бывает трудно признать, что его код не работает. Это кажется настолько неправдоподобным, что мы скорее готовы допустить наличие ошибки в компиляторе.</p>
   <p>В действительности, очень и очень редко код оказывается неработоспособным из-за ошибки в компиляторе, интерпретаторе, операционной системе, сервере приложений, базе данных, менеджере памяти или любом другом элементе системного программного обеспечения. Да, там встречаются ошибки, но гораздо реже, чем нам хотелось бы думать.</p>
   <p>Однажды я действительно столкнулся с ошибкой в компиляторе (удаление переменной цикла при оптимизации), но во всех остальных случаях мои претензии к компилятору или операционной системе оказывались беспочвенными. Я тратил массу своего времени, времени службы поддержки и времени начальства, а в результате оказывался в неловком положении, когда обнаруживалось, что ошибка — моя собственная.</p>
   <p>Когда применяемые в проекте средства разработки проверены временем, широко используются и входят в многочисленные технологические цепочки, нет особых оснований сомневаться в их качестве. Конечно, если это одна из ранних версий инструмента, или им пользуются лишь несколько человек в мире, или это редко загружаемый проект с открытым исходным кодом и номером версии 0.1, вполне можно заподозрить этот инструмент. (Точно так же можно с подозрением отнестись к альфа-версии коммерческого инструмента.)</p>
   <p>Учитывая, насколько редки ошибки в компиляторах, гораздо выгоднее тратить время и силы на поиск ошибок в собственном коде, а не пытаться доказать, что компилятор ошибается. Тут действуют все обычные соображения по отладке: изолировать проблему, поставить заглушки вместо вызовов, окружить проблемный участок проверками; проверить выполнение соглашений по вызовам, общие библиотеки и номера версий; описать проблему коллеге; выяснить, не поврежден ли стек, и установить соответствие типов переменных; попробовать выполнить код на разных компьютерах и в разных конфигурациях сборки, например отладочной и окончательной (release).</p>
   <p>Подвергайте сомнению собственные допущения и допущения других людей. Допущения в основе работы инструментов разных производителей могут не совпадать; то же верно и для разных инструментов одного и того же производителя.</p>
   <p>Если коллега сообщает об ошибке, которую вы не можете воспроизвести, подойдите и посмотрите, как она у него возникает. Его действия или последовательность их выполнения, возможно, никогда не приходили вам в голову.</p>
   <p>Моя личная система такова: если я не могу обнаружить ошибку и начинаю грешить на компилятор, пришло время проверить целостность стека. Это особенно полезно, когда при добавлении кода трассировки локализация проблемы меняется.</p>
   <p>Многопоточность — еще один источник ошибок, из-за которых программисты начинают орать на компьютер и раньше срока седеют. Все советы писать простой код многократно увеличиваются в цене для многопоточных систем. При поиске таких ошибок трудно системно полагаться на отладку и модульное тестирование, поэтому простота конструкции приобретает первостепенное значение.</p>
   <p>Итак, прежде чем забрасывать обвинениями компилятор, вспомните совет Шерлока Холмса — «Если исключить все невозможное, то, что останется, и будет истиной, какой бы неправдоподобной она ни казалась» — и следуйте ему, а не совету Дирка Джентли:<a l:href="#n_5" type="note">[5]</a> «Если исключить все неправдоподобное, то, что останется, и будет истиной, какой бы невозможной она ни казалась».</p>
  </section>
  <section>
   <title>
    <p>Тщательно выбирайте инструменты</p>
    <p>Джованни Аспрони</p>
   </title>
   <image l:href="#i_011.jpg"/>
   <p><strong>Современные приложения крайне редко создают «с чистого листа». </strong>Их собирают из уже существующих кубиков — компонентов, библиотек и фреймворков, и тому есть ряд веских причин:</p>
   <p>• Объемы, сложность и изощренность приложений растут, а времени на их создание отводится все меньше. Выгоднее тратить время и интеллект разработчиков на код бизнес-логики, чем на код инфраструктуры приложения.</p>
   <p>• В широко используемых компонентах и фреймворках меньше шансов столкнуться с ошибками, чем в разработанных самостоятельно.</p>
   <p>• Высококачественный инструментарий доступен бесплатно в сети Интернет, благодаря чему снижаются затраты на разработку и упрощается поиск заинтересованных разработчиков с нужным опытом.</p>
   <p>• Создание и сопровождение программного обеспечения требует большого объема человеческого труда, поэтому бывает дешевле купить готовые продукты, чем создавать их.</p>
   <p>Однако правильный выбор ингредиентов для нового приложения может оказаться сложной задачей, требующей взвешенного подхода. Делая свой выбор, нужно учитывать несколько факторов:</p>
   <p>• Каждый инструмент рассчитан на применение в определенном контексте, в который входят инфраструктура, модель управления, модель данных, коммуникационные протоколы и тому подобное, вследствие чего может возникать <emphasis>несоответствие </emphasis>инструментов <emphasis>архитектуре</emphasis> приложения. Такое несоответствие приводит к необходимости применять «грязные» методы и обходные маршруты при решении задач, что неоправданно усложняет код.</p>
   <p>• У каждого инструмента собственный график выхода новых версий, и обновление какого-либо из них может стать чрезвычайно сложной и затратной по времени задачей, поскольку новая функциональность, архитектурные изменения и даже исправления, связанные с ошибками, иногда приводят к несовместимости с другими инструментами. Чем больше в проекте инструментов, тем острее может становиться эта проблема.</p>
   <p>• Есть инструменты, требующие серьезной настройки, часто в виде одного или нескольких конфигурационных файлов XML, количество и размер которых может быстро выйти из-под контроля. В итоге приложение выглядит так, будто оно написано на XML, и лишь вдобавок к этому имеется кучка строк кода на одном из языков программирования. Сложность конфигурирования затрудняет сопровождение и дальнейшее развитие приложения.</p>
   <p>• Может возникнуть жесткая привязка к определенному производителю (vendor lock-in), когда код, интенсивно использующий его продукты, вдруг оказывается ограничен такими параметрами, как простота сопровождения, производительность, возможность развития, цена и другими.</p>
   <p>• Если планируется использовать бесплатное программное обеспечение, может выясниться, что на практике оно не такое уж и бесплатное. Возможно, придется оплачивать коммерческую поддержку этого программного продукта, а она может оказаться недешевой.</p>
   <p>• Нужно учитывать условия лицензионных соглашений, даже если это бесплатное программное обеспечение. Например, в некоторых компаниях не допускается использование программного обеспечения с лицензией GNU по причине его вирусной природы, в том смысле, что такая лицензия позволяет распространять новый продукт только совместно с его исходным кодом.</p>
   <p>Моя личная стратегия смягчения этих проблем состоит в том, чтобы начинать с малого — лишь с тех инструментов, которые абсолютно необходимы. Как правило, на старте самое главное — устранить необходимость программирования инфраструктуры низкого уровня (и сопутствующих проблем). Скажем, в случае работы над распределенным приложением это достигается посредством использования связующего программного обеспечения (middleware) вместо работы с сокетами напрямую. Затем при необходимости можно добавить другие инструменты. Кроме того, я стараюсь отделить внешние инструменты от объектов моей предметной области с помощью интерфейсов и слоев. Это позволяет с минимальными потерями заменить какой-либо инструмент, если понадобится. Положительный побочный эффект такого подхода — как правило, на выходе я получаю приложение меньшего размера и с меньшим количеством внешних инструментов, чем изначально предполагалось.</p>
  </section>
  <section>
   <title>
    <p>Пишите код на языке предметной области</p>
    <p>Дэн Норт</p>
   </title>
   <image l:href="#i_012.jpg"/>
   <p><strong>Представьте себе текст двух программ</strong>. В одной вы встречаете такое:</p>
   <p><code>if (portfolioIdsByTraderId.get(trader.getId())</code></p>
   <p><code>   containsKey(portfolio.getId())) {…}</code></p>
   <p>Вы чешете затылок, пытаясь осмыслить, что делает этот код. Похоже, он получает идентификатор объекта трейдера, и по этому идентификатору находится ассоциативный массив в, э-э-э… очевидно, ассоциативном массиве ассоциативных массивов; затем проверяется, есть ли в этом внутреннем массиве еще один идентификатор — из объекта портфеля. Вы снова чешете затылок. Ищете объявление переменной portfolioIdsByTraderId и обнаруживаете следующее:</p>
   <p><code>Map&lt;int, Map&lt;int, int&gt;&gt; portfolioIdsByTraderId;</code></p>
   <p>Понемногу вы начинаете понимать, что это как-то связано с наличием у трейдера доступа к определенному портфелю. Конечно, вы найдете такой же фрагмент поиска — а скорее похожий, но немного отличающийся код, — когда в другом месте понадобится узнать, есть ли у трейдера доступ к некоторому портфелю.</p>
   <p>В тексте другой программы вы видите:</p>
   <p><code>if (trader.canView(portfolio)) {…}</code></p>
   <p>Никаких головоломок. Вам не нужно знать, как объект трейдера определяет доступность портфеля. Где-то в недрах программы, наверное, все же зарыт ассоциативный массив ассоциативных массивов. Но это заботы объекта trader, а не ваши.</p>
   <p>Внимание, вопрос. Над кодом какой из программ вы предпочли бы работать?</p>
   <p>Давным-давно у нас были только самые элементарные структуры данных: биты, байты и символы (на самом деле, те же байты, но мы делали вид, что это буквы и специальные символы). С десятичными числами выходило посложнее, ведь счисление по основанию 10 плохо вписывается в двоичную систему, так что у нас было несколько размеров для чисел с плавающей запятой. Затем появились массивы и строки (по сути, разновидность массивов). Потом в нашем распоряжении оказались стеки и очереди, хеши, связные списки, списки с пропусками и масса других замечательных структур данных, <emphasis>которых нет в реальном мире</emphasis>. Термин «компьютерная наука» тогда означал в основном трудоемкое отображение реального мира на наши ограниченные структуры данных. Настоящие гуру могут даже вспомнить, как именно удавалось решать задачу.</p>
   <p>Затем появились пользовательские типы! Ладно, это ни для кого не новость, но они несколько меняют правила игры. Если в вашей предметной области есть такие понятия, как «трейдер» и «портфель», вы можете моделировать их с помощью типов, назначив типам такие имена, как Trader и Portfolio. Но, что еще важнее, <emphasis>и отношения между типами</emphasis> можно моделировать через термины из той же предметной области.</p>
   <p>Если вы не используете в коде термины предметной области, значит вы формируете подразумеваемое (читай: секретное) правило, что <emphasis>вот эта</emphasis> переменная типа int в этом месте обозначает трейдера, а <emphasis>вон то</emphasis> int в том месте обозначает портфель. (И лучше их не путать!) А если вы реализуете некоторое бизнес-правило («некоторым трейдерам нельзя просматривать некоторые портфели — это незаконно») с помощью нетривиального алгоритма в коде, — например поиска существования значения в ассоциативном массиве, — вы вряд ли облегчаете жизнь ребятам, которые будут проводить аудит и проверку на соответствие законодательству.</p>
   <p>Следующему программисту, который будет работать с этим кодом, ваше тайное знание может быть недоступно, так почему не описать все явно? Применение одного ключа для поиска другого, используемого в проверке существования, не слишком очевидная штука. Можно ли рассчитывать, что кто-нибудь догадается, что таким образом реализуются бизнес-правила, препятствующие конфликту интересов?</p>
   <p>Явное применение понятий предметной области в коде дает возможность другим программистам понять его назначение со значительно меньшими усилиями, чем при попытках сопоставить алгоритм с тем, что им известно о предметной области. Кроме того, при совершенствовании модели предметной области, которое происходит по мере расширения ваших знаний о ней, вам будет легче дорабатывать код. Если правильно организовать инкапсуляцию, велики шансы, что правило будет располагаться в одном-единственном месте, и вы сможете менять его так, что никакой вызывающий код этого не заметит.</p>
   <p>Программист, который спустя несколько месяцев продолжит работу над вашим кодом, будет вам благодарен. И этим программистом можете оказаться вы сами.</p>
  </section>
  <section>
   <title>
    <p>Код — это проектирование</p>
    <p>Райан Браш</p>
   </title>
   <image l:href="#i_013.jpg"/>
   <p><strong>Представьте себе, вы утром просыпаетесь </strong>и узнаете, что в строительной промышленности произошел эпохальный прорыв. Теперь миллионы дешевых и невероятно быстрых роботов умеют создавать различные материалы буквально из воздуха, почти не расходуя энергии, и сами себя чинят. Но это еще не все: если есть четкие чертежи, роботы построят по ним здание без всякого вмешательства человека, и стоимость этой работы будет пренебрежимо мала.</p>
   <p>Можно представить себе, как это преобразит строительную промышленность, но какие изменения произойдут на более высоком уровне? Как поведут себя архитекторы и проектировщики, когда стоимость строительства станет пренебрежимо мала? Сегодня дорогостоящему строительству обязательно предшествует создание и тщательное тестирование физических и компьютерных моделей. Станем ли мы так утруждать себя, если строительство будет фактически бесплатным? Что за проблема, если здание развалится? Найдем, в чем ошибка, и наши чудо-роботы построят нам новое.</p>
   <p>Возможны и другие последствия. С уходом в прошлое моделей не доведенные до конца проекты зданий будут развиваться по мере того, как здание раз за разом строится заново, и проектировщики вносят в него улучшения, имея в виду желаемую конечную цель. Стороннему наблюдателю трудно будет отличить незаконченный проект здания от сданного в эксплуатацию объекта.</p>
   <p>Наша способность предсказывать сроки работ уйдет в небытие. Стоимость строительства легче рассчитать, чем стоимость проектирования: мы примерно знаем, сколько стоит установка балки и сколько балок нам нужно. Поскольку доля предсказуемых задач стремится к нулю, преобладающее значение станет иметь трудно предсказуемое время проектирования. Результаты получаются быстрее, но планирование работ становится ненадежным.</p>
   <p>Конечно, конкуренция останется действующим фактором. Когда стоимость строительства ничтожна, преимущество на рынке получает компания, способная быстро выполнять проектирование. Основным интересом инженерных контор, таким образом, станет ускоренное проектирование. Неизбежно произойдет так, что кто-то, не обладая глубоким пониманием проекта, увидит непроверенный вариант, осознает преимущества выхода на рынок с опережением конкурентов и скажет: «Ладно, и так сойдет».</p>
   <p>Некоторые проекты, связанные с жизнью и здоровьем людей, будут прорабатываться тщательнее, но во многих случаях покупатели привыкают терпеть неприятности, которые им несет незавершенное проектирование. Ведь компании всегда могут послать своих чудо-роботов и «залатать» проданные ими бракованные здания или автомобили. Все это приводит нас к неожиданному заключению: нашей единственной отправной точкой было резкое снижение стоимости строительства, а в результате мы <emphasis>получили снижение качества</emphasis>.</p>
   <p>Не стоит удивляться, что рассказанная история стала реальностью в программной индустрии. Если мы согласимся, что основу кода составляет проектирование — творческий, а не механический процесс, — это объясняет <emphasis>кризис программной отрасли</emphasis>. У нас <emphasis>кризис проектирования</emphasis>: потребность в качественных, проверенных архитектурных решениях для приложений превышает наши способности их создавать. Обстоятельства вынуждают работать на основе незавершенных проектов.</p>
   <p>К счастью, эта же модель содержит подсказки, как улучшить положение. Физическое моделирование равносильно автоматизированному тестированию: архитектура приложения не может считаться завершенной, пока она не подверглась суровой проверке набором тестов. Чтобы сделать такие тесты более эффективными, мы находим способы справляться с гигантским числом состояний крупных систем. Совершенствование языков и практик проектирования дает нам надежду. Наконец, есть неоспоримый факт: выдающиеся проекты зданий создаются выдающимися проектировщиками, посвятившими себя овладению своим мастерством. С написанием кода все точно так же.</p>
  </section>
  <section>
   <title>
    <p>Важность форматирования кода</p>
    <p>Стив Фримен</p>
   </title>
   <image l:href="#i_014.jpg"/>
   <p><strong>В незапамятные времена </strong>я работал над проектом на языке COBOL, в котором всем участникам запрещалось изменять размер отступа, если не было необходимости изменить код. Все потому, что однажды кто-то что-то сломал — строка кода переползла на следующую и попала в специальные колонки в начале строки. Запрет действовал, даже если форматирование кода вводило в заблуждение, — а такое случалось, — так что приходилось очень внимательно читать код, ведь доверять ему было нельзя. Уверен, убытки от этой политики были гигантскими, потому что она тормозила работу программистов.</p>
   <p>Исследователи показали, что у программиста отнимает больше времени перемещение по коду и его чтение (чтобы <emphasis>найти то место</emphasis>, которое нужно изменить), чем собственно набор кода, поэтому желательно оптимизировать эти операции. Вот три способа это сделать.</p>
   <p><emphasis>Возможность быстрого просмотра</emphasis></p>
   <p>Зрение человека прекрасно приспособлено для поиска в потоке нужного незначимого (пережиток тех времен, когда нам приходилось бдительно следить, не <emphasis>появился</emphasis> ли в саванне лев). Стало быть, я могу облегчить себе жизнь тем, что стандартизирую и уберу на задний план все не связанное с предметной областью — всю «случайную сложность», вносимую большинством коммерческих языков. Если код с одинаковым поведением и выглядит одинаково, моя система восприятия поможет мне быстро находить отличия. Поэтому я также соблюдаю соглашения о размещении членов класса внутри компилируемого файла: константы, поля, открытые методы, закрытые методы.</p>
   <p><emphasis>Выразительная верстка</emphasis></p>
   <p>Все мы научились не жалеть времени на выбор подходящих имен — согласитесь, это приближает наш код к выразительному описанию выполняемых действий и отличает его от простого перечисления шагов. Верстка кода — другая составляющая такой выразительности. Прежде всего необходимо, чтобы вся команда разработки согласилась использовать программу автоматического форматирования для основных конструкций. Собственные поправки в форматирование кода я могу вносить вручную во время кодирования. Если не возникает острых разногласий, команда быстро приходит к общему стилю, «доведенному вручную». Средство автоматического форматирования не в состоянии понять мои намерения (мне ли не знать, я когда-то сам написал такую программу), а мне более важно, чтобы переносы строк и группировка строк отражали смысл кода, а не синтаксис языка. (Кевин Макгвайр<a l:href="#n_6" type="note">[6]</a> вылечил мою рабскую зависимость от средств автоматического форматирования кода.)</p>
   <p><emphasis>Компактный формат</emphasis></p>
   <p>Чем больше кода умещается на экране, тем больше кода я вижу без разрыва контекста, возникающего при прокрутке текста на экране и при переключении между файлами. Тем меньше информации о контексте мне нужно держать в голове. Длинные комментарии к процедурам и обилие пробелов имели смысл во времена восьмибуквенных имен файлов и построчных принтеров, но сегодня я работаю в интегрированной среде разработки с поддержкой цветной подсветки синтаксиса и перекрестных ссылок. Теперь меня ограничивает разрешение экрана, и каждый его пиксел должен работать таким образом, чтобы облегчить мне понимание кода. Я хочу, чтобы форматирование помогало мне понимать код, и не более того.</p>
   <p>Мой друг (непрограммист) однажды заметил, что код похож на стихи. У меня возникает такое же ощущение при виде действительно хорошего кода: каждый фрагмент текста имеет свое значение и помогает мне понять замысел автора. К сожалению, написание кода не слывет таким же романтичным занятием, как сочинение стихотворений.</p>
  </section>
  <section>
   <title>
    <p>Рецензирование кода</p>
    <p>Маттиас Карлссон</p>
   </title>
   <image l:href="#i_015.jpg"/>
   <p><strong>Проводить рецензирование кода (code review) необходимо</strong>. Почему? <emphasis>Оно повышает качество кода и снижает относительную долю дефектов</emphasis>. Но вы, возможно, неверно представляете себе, почему так происходит.</p>
   <p>Многие программисты неприязненно относятся к рецензированию, что бывает связано с их неудачным личным опытом. Мне встречались организации, где весь код проходил формальное рецензирование, прежде чем он мог попасть в систему для коммерческого использования. Часто рецензирование проводит архитектор или ведущий разработчик — практика, которую можно назвать <emphasis>«архитектор проверяет все</emphasis>». Это записано в руководстве по процессу разработки программного обеспечения компании, и программисты обязаны подчиняться.</p>
   <p>Возможно, в некоторых организациях действительно необходим такой строгий и формальный процесс, но таких меньшинство. В большинстве же организаций подобный подход контрпродуктивен. Авторы рецензируемого кода словно предстают перед комиссией по досрочному освобождению. Рецензирующим требуется успевать и читать код, и отслеживать все особенности эволюционирующей системы: они могут быстро стать узким местом всего процесса, так что процесс вскоре деградирует.</p>
   <p>Рецензирование кода должно быть не просто методом исправления ошибок в коде, а средством <emphasis>распространения знаний</emphasis> и установления общих основ написания кода. Дав другим программистам познакомиться со своим кодом, вы тем самым делаете каждого совладельцем кода. Пусть любой из участников команды <emphasis>пройдется по коду</emphasis> вместе с остальными. Не нужно искать ошибки; при рецензировании кода нужно стараться изучить его и понять, как он работает.</p>
   <p>Во время рецензировании кода будьте доброжелательны. Комментарии должны быть <emphasis>конструктивными</emphasis>, а <emphasis>не колкими</emphasis>. Назначьте <emphasis>роли</emphasis> для проведения рецензирования, чтобы не получилось, что на оценку кода влияют отношения старшинства в команде. Например, один рецензент может сосредоточиться на документации, другой — на исключениях, а третий — рассмотреть функциональность. При таком подходе нагрузка по рецензированию более равномерно распределится между членами команды.</p>
   <p>Договоритесь, что определенный день недели будет регулярным <emphasis>днем рецензирования кода</emphasis>. Выделите для этого мероприятия пару часов. Каждый раз меняйте автора рецензируемого кода по кругу. Кроме того, не забывайте на каждом собрании по рецензированию менять роли участников рецензирования. <emphasis>Вовлекайте в рецензирование новичков</emphasis>. Несмотря на малый опыт, они могут дать вам новую точку зрения благодаря своим свежим университетским знаниям. <emphasis>Привлекайте экспертов</emphasis> — они обладают опытом и знаниями. Они быстрее и точнее укажут на код, чреватый ошибками. Рецензирование кода будет проходить легче, если соглашения команды по написанию кода проверяются автоматизированным инструментом. В этом случае на собрании по рецензированию никогда не придется обсуждать форматирование кода.</p>
   <p>Пожалуй, в главной мере успех рецензирования определяется тем, будет ли оно <emphasis>интересно</emphasis> людям. Рецензирование ориентировано на участвующих в нем людей. Если собрание по рецензированию проходит в неприятной или скучной атмосфере, трудно будет кого-либо мотивировать. Проводите <emphasis>рецензирование кода в неформальной обстановке</emphasis>, и пусть главной задачей мероприятия станет распространение знаний среди членов команды. Оставьте в стороне сарказм, а вместо него принесите тортик или бутерброды.</p>
  </section>
  <section>
   <title>
    <p>Пиши код с умом</p>
    <p>Йехиль Кимхи</p>
   </title>
   <image l:href="#i_016.jpg"/>
   <p><strong>Попытки доказать корректность программного обеспечения вручную </strong>приводят к формальному доказательству, которое длиннее самого кода и содержит ошибки с большей вероятностью, чем сам код. Желательно применять автоматизированные средства, но это не всегда возможно. Ниже описывается срединный путь: полуформальное доказательство корректности.</p>
   <p>Метод основан на разделении исследуемого кода на короткие фрагменты размером от одной строки, которая может содержать вызов функции, до блоков длиной не более 10 строк и обсуждении их корректности. Доказательство должно оказаться достаточно убедительным для вашего коллеги, играющего роль «адвоката дьявола».</p>
   <p>Фрагменты следует выбирать таким образом, чтобы в конечной точке блока <emphasis>состояние программы </emphasis>(а именно счетчик адреса команд и значения всех «живых» объектов) удовлетворяло простому в описании свойству, а функциональность этого фрагмента (преобразование состояния) легко описывалась в виде одной независимой задачи. Соблюдение предложенных правил упрощает ведение доказательства. Такие свойства конечной точки фрагмента обобщают понятия <emphasis>пред-условий </emphasis>и <emphasis>пост-условий</emphasis> для функций, а также <emphasis>инвариантов </emphasis>для циклов и классов (в отношении экземпляров классов). Необходимо стремиться, чтобы фрагменты как можно меньше зависели друг от друга, что облегчает доказательство и очень пригодится, если предполагается изменять эти фрагменты.</p>
   <p>Многие хорошо известные (хотя и, видимо, реже применяемые) и имеющие статус «качественных» практики написания кода также облегчают проведение доказательств. Таким образом, одно лишь <emphasis>намерение </emphasis>провести в будущем доказательство корректности своего кода способствует улучшению его стиля и структуры. Не стоит удивляться, что большинство подобных практик проверяется статическими анализаторами кода:</p>
   <p>• Избегайте операторов <emphasis>goto</emphasis>, потому что они создают сильную зависимость между фрагментами, разнесенными в коде.</p>
   <p>• Избегайте изменяемых глобальных переменных, потому что они делают зависимыми между собой все фрагменты, в которых используются.</p>
   <p>• Область видимости каждой переменной должна быть наименьшей из возможных. Например, локальный объект можно объявить непосредственно перед первым использованием.</p>
   <p>• Делайте объекты <emphasis>неизменяемыми </emphasis>(<emphasis>immutable</emphasis>), где это возможно.</p>
   <p>• Улучшайте читаемость кода посредством пробелов — как горизонтальных, так и вертикальных. Например, выравнивайте отступы для родственных структур и разделяйте фрагменты кода пустыми строками.</p>
   <p>• Пишите самодокументируемый код, выбирая содержательные (но достаточно короткие) имена для объектов, функций, типов и т. д.</p>
   <p>• Если фрагмент оказывается вложенным, превратите его в функцию.</p>
   <p>• Каждая функция должна решать единственную задачу и быть короткой. <emphasis>Ограничение длины функции 24 строками</emphasis>, введенное много лет назад, по-прежнему действует. Размер и разрешение экрана по сравнению с 60-ми годами прошлого века увеличились, но человеческие возможности восприятия остались прежними.</p>
   <p>• У функции не должно быть много аргументов (хорошая практика — не более четырех). Это не ограничивает объем передаваемых функции данных: объединение родственных аргументов в одном объекте локализует <emphasis>инварианты объекта</emphasis>, что упрощает доказательство в плане проверки согласованности и состояний объектов.</p>
   <p>• В общем случае каждая единица кода, начиная с фрагмента и заканчивая целой библиотекой, должна иметь <emphasis>ограниченный интерфейс</emphasis>. Сокращение потока информации упрощает доказательство. Это означает, что следует избегать методов, возвращающих <emphasis>внутреннее состояние </emphasis>(<emphasis>getters</emphasis>). Нужно не запрашивать у объекта информацию для обработки, а требовать, чтобы он выполнил работу с той информацией, которая у него уже есть. Иными словами, <emphasis>инкапсуляция — это ограниченные интерфейсы, и только они.</emphasis></p>
   <p>• Чтобы сохранить <emphasis>инварианты </emphasis>класса, следует избегать <emphasis>методов, присваивающих значения</emphasis> (<emphasis>setters</emphasis>). Они часто влекут нарушение инвариантов, определяющих состояния объекта.</p>
   <p>Доказательство корректности кода, как и его обсуждение, позволит вам лучше в нем разобраться. Сообщайте о своих открытиях — это пойдет всем на пользу.</p>
  </section>
  <section>
   <title>
    <p>Комментарий о комментариях</p>
    <p>Кэл Эванс</p>
   </title>
   <image l:href="#i_017.jpg"/>
   <p><strong>На моем первом занятии по программированию в колледже </strong>преподаватель выдал нам по два бланка для составления текста программы на BASIC. На доске он написал задание: «Составить программу для ввода и вычисления среднего из 10 результатов в боулинге». Затем преподаватель вышел из комнаты. Трудна ли эта задача? Не помню своего решения, но, кажется, там был цикл FOR/NEXT и не более 15 строк кода.</p>
   <p>В каждом бланке для кода программы — молодым людям, читающим этот текст, поясняю, что мы тогда писали код от руки, прежде чем ввести его в компьютер — было около 70 строк. Мне было совершенно непонятно, почему преподаватель выдал нам по два бланка. Так как почерк у меня всегда был отвратительный, я воспользовался вторым бланком, чтобы аккуратно переписать свой код, надеясь заработать пару очков за стиль.</p>
   <p>К большому моему удивлению, получив свою работу обратно на следующем занятии, я обнаружил, что оценка за нее была выставлена чуть выше проходной. (Это стало предзнаменованием всего моего последующего обучения в колледже.) Поверх моего тщательно переписанного кода было выведено: «А комментарии?»</p>
   <p>И преподаватель, и я понимали, что делает эта программа, но этого было недостаточно. Часть задачи состояла в том, чтобы научить меня следующему: мой код должен быть понятен другому программисту, который придет после меня. Этот урок я помню до сих пор.</p>
   <p>Комментарии — это не порок. Они столь же необходимы в программировании, как основные конструкции ветвлений и циклов. В большинстве современных языков есть средства типа javadoc, которые анализируют написанные в определенном формате комментарии и автоматически составляют справочник по API (интерфейсу прикладного программирования). Иметь такой справочник неплохо, но этого совершенно недостаточно. Код должен содержать пояснения о своем предполагаемом назначении. Когда вы пишете код по древнему принципу «если это было трудно написать, то и читать должно быть не легче», то оказываете медвежью услугу своему клиенту, своему работодателю, своим коллегам, а в будущем и себе.</p>
   <p>С другой стороны, не нужно слишком увлекаться комментированием. Следите, чтобы ваши комментарии проясняли код, а не осложняли его чтение. Вставьте в код уместные комментарии, из которых будет ясно, что этот код должен делать. Комментарии в заголовке должны дать любому программисту достаточно информации, чтобы использовать ваш код, не читая его, а комментарии в коде должны помочь тому разработчику, который будет исправлять или расширять код.</p>
   <p>На одной моей работе у меня возникло несогласие с проектным решением, принятым «наверху». С язвительной иронией, свойственной молодым программистам, я поместил текст почтового сообщения, содержавшего указания «сверху», в блок комментариев в заголовке файла. Однако оказалось, что менеджеры этой компании лично просматривали код, попадавший в репозиторий. Так я впервые познакомился с термином <emphasis>шаг, стоивший дальнейшей карьеры</emphasis>.</p>
  </section>
  <section>
   <title>
    <p>Комментируйте только то, о чем не скажет код</p>
    <p>Кевлин Хенни</p>
   </title>
   <image l:href="#i_018.jpg"/>
   <p><strong>Расхождение между теорией и практикой </strong>на практике больше, чем в теории. Это наблюдение определенно применимо к комментариям. В теории общая идея комментирования кода выглядит достойно: дать читателю детальное объяснение происходящего. Что может быть полезнее, чем давать полезное? А вот на практике комментарии часто вредят. Как и любой вид писательского творчества, написание комментариев требует мастерства. Это мастерство в значительной мере включает в себя понимание того, когда комментарии писать не нужно.</p>
   <p>Если код написан с нарушениями синтаксиса, то компиляторы, интерпретаторы и другие средства разработки обязательно воспротивятся. Если код некорректен с функциональной точки зрения, большая часть ошибок выявится в результате рецензирования, статического анализа, тестирования и боевого применения на коммерческом предприятии. А что с комментариями? В книге «The Elements of Programming Style»<a l:href="#n_7" type="note">[7]</a> (Computing McGraw-Hill) Керниган и Плоджер замечают, что «неверный комментарий имеет нулевое или отрицательное значение». И все же такие негодные комментарии успешно приживаются в коде на зависть ошибкам всех видов. Они постоянно отвлекают внимание и дезинформируют. Они служат незаметным, но постоянно действующим тормозом мышления программиста.</p>
   <p>Что можно сказать о комментариях, которые формально не являются ошибочными, но не повышают ценности кода? Такие комментарии — просто шум. Иногда комментарии лишь повторяют уже сказанное в коде на естественном языке, то есть попугайничают, не сообщая читателю ничего нового; такое повторение не придает коду ни веса, ни правильности. Закомментированный код не выполняется, поэтому он бесполезен как при чтении кода, так и при его выполнении. Кроме того, он очень быстро устаревает. Комментарии относительно номеров версий и блоки закомментированного кода — это попытки решить вопросы контроля версий и истории кода. Такие вопросы решаются (и гораздо эффективнее) с помощью систем управления версиями.</p>
   <p>Засилье в коде бессодержательных и неправильных комментариев провоцирует программистов попросту игнорировать все комментарии, пропуская их при чтении либо выключая их отображение. Программисты — люди изобретательные, и найдут способы обойти все, что покажется им вредоносным: свернут комментарии, изменят цветовую схему так, чтобы комментарии были одного цвета с фоном, или удалят комментарии специально написанным сценарием. Чтобы спасти код от такого неуместного приложения творческих способностей программистов и чтобы снизить риск того, что кто-то пропустит действительно ценные комментарии, следует считать комментарии частью кода. Каждый комментарий должен иметь какую-то ценность для читателя, иначе это просто мусор, который нужно убрать или переработать.</p>
   <p>Какой же комментарий можно считать ценным? Только такой комментарий, который сообщает то, чего не говорит и не может сказать код. Если комментарий лишь разъясняет то, что должен самостоятельно сказать фрагмент кода, это указывает на необходимость изменить структуру кода или принятые соглашения по написанию кода, чтобы код говорил за себя сам. Чем комментировать недостаточно точные имена методов и классов, лучше их переименовать. Чем комментировать блоки в длинных функциях, выделите их в маленькие самостоятельные функции, названия которых будут отражать назначения этих блоков. Старайтесь сообщать максимум информации посредством кода. Если вы не можете описать все, что хотелось бы, с помощью одного лишь кода, возможно, тут будет уместен комментарий. Комментируйте то, что <emphasis>не способен</emphasis> сказать код, а не просто то, чего код не говорит.</p>
  </section>
  <section>
   <title>
    <p>Непрерывное обучение</p>
    <p>Клинт Шэнк</p>
   </title>
   <image l:href="#i_019.jpg"/>
   <p><strong>Мы живем в интересные времена</strong>. Разработка распределена по всему миру, и, как выясняется, очень многие способны выполнять вашу работу. Чтобы сохранить конкурентоспособность на рынке рабочей силы, нужно непрерывно учиться. Иначе вы превратитесь в динозавра, застрявшего на своем рабочем месте, пока в один прекрасный день не окажется, что вы стали не нужны, или что вашу работу отдали туда, где ее готовы делать дешевле.</p>
   <p>Как же решать эту задачу? Одни работодатели не скупятся и организуют обучение, развивающее уже нанятых программистов. Другие вообще не могут позволить себе выделить на это время или средства. Самое надежное — самому позаботиться о своем образовании.</p>
   <p>Вот перечень способов продолжать учиться. Многое из перечисленного можно бесплатно получить в Интернете:</p>
   <p>• Читайте книги, журналы, блоги, ленты Twitter и веб-сайты. Если вы хотите глубже освоить какой-то предмет, можно зарегистрироваться в списке рассылки или группе новостей.</p>
   <p>• Если вы хотите по-настоящему изучить новую технологию, необходима практика: напишите немного кода.</p>
   <p>• Старайтесь работать с наставником, ведь если вы самый продвинутый специалист компании, это может помешать вашему образованию. Конечно, чему-то научиться можно у любого человека, но гораздо большему вы научитесь у более толкового или более опытного коллеги. Если не можете найти наставника, подумайте о переходе на другое место работы.</p>
   <p>• Используйте виртуальных наставников. Ищите в Интернете авторов или разработчиков, которые действительно вам интересны, и читайте все, что они пишут. Подпишитесь на их блоги.</p>
   <p>• Изучите программную среду и библиотеки, которыми пользуетесь. Поняв, как работает определенный инструмент, вы сможете более эффективно его применять. Если это инструменты с открытым исходным кодом, вам крупно повезло. Пройдитесь по коду в отладчике, чтобы узнать, как он устроен. Вы сможете увидеть код, который написали и прошерстили действительно толковые люди.</p>
   <p>• Сделав ошибку, разобравшись с дефектом или столкнувшись с проблемой, постарайтесь до конца разобраться в происшедшем. Вполне возможно, что кто-то уже сталкивался с такой проблемой и описал ее в Сети. Google вам в помощь.</p>
   <p>• Хороший способ изучить какой-либо предмет — это учить ему других или рассказывать о нем. Если вам предстоит выступать перед другими людьми и отвечать на их вопросы, это даст вам серьезную мотивацию изучить предмет. Попробуйте организовать небольшой семинар для коллег за обедом либо выступить перед специализированной группой пользователей (user group) или на местной конференции.</p>
   <p>• Запишитесь в группу изучения какой-либо технологии (типа сообщества для обсуждения вопросов применения паттернов проектирования — patterns community) или сами организуйте такую группу. Это может быть группа изучения языка, технологии или предмета, который вас интересует.</p>
   <p>• Участвуйте в конференциях. Если нет возможности поехать на конференцию, в Интернете можно найти бесплатные видеозаписи выступлений, которые публикуют организаторы многих конференций.</p>
   <p>• Долго ехать на работу? Слушайте подкасты.</p>
   <p>• Вы пользуетесь средствами статистического анализа кода? Читаете предупреждения, выдаваемые вашей IDE? Разберитесь в сообщениях этих программ и причинах их появления.</p>
   <p>• Следуйте советам книги «The Pragmatic Programmer: From Journeyman to Master»<a l:href="#n_8" type="note">[8]</a> и каждый год изучайте какой-нибудь новый язык. Или хотя бы новую технологию, или инструмент. Такое горизонтальное расширение знаний даст новые идеи для той связки технологий, которую вы используете сейчас.</p>
   <p>• Новые знания не обязательно должны ограничиваться технологиями. Глубже изучите свою предметную область; это позволит лучше понимать технические требования и поможет решать бизнес-задачи. Еще один полезный вариант — изучить способы повышения личной продуктивности.</p>
   <p>• Снова поступите в университет.</p>
   <p>Было бы замечательно, если бы мы могли, как Нео в «Матрице», просто записать необходимую информацию в свой мозг. Но это невозможно, а потому получение знаний требует времени. Необязательно посвящать учению каждую свободную минуту. Отвести для него немного времени, скажем раз в неделю, — уже лучше, чем ничего. Существует жизнь (как минимум должна существовать) и вне работы. Технологии меняются быстро. Не отставайте.</p>
  </section>
  <section>
   <title>
    <p>Удобство — не атрибут качества</p>
    <p>Грегор Хоп</p>
   </title>
   <image l:href="#i_020.jpg"/>
   <p><strong>О важности и сложности проектирования хороших API </strong>(интерфейсов прикладного программирования) сказано много. Трудно все сделать правильно с первого раза и еще труднее изменить что-либо в пути; это похоже на воспитание детей. Опытные программисты уже поняли, что хороший API предлагает одинаковый уровень абстракции для всех методов, обладает единообразием и симметрией, а также образует словарь для выразительного языка. Увы, знать принципы — это одно, а следовать им на практике — другое. Вы же знаете, что есть сладкое вредно.</p>
   <p>Но перейдем от слов к делу и разберем конкретную «стратегию» проектирования API, которая встречается мне постоянно: проектировать API так, чтобы он был удобным. Как правило, все начинается с одного из следующих «озарений»:</p>
   <p>• Почему клиентские классы должны выполнять два вызова, чтобы выполнить одно действие?</p>
   <p>• Зачем создавать еще один метод, если он делает почти то же самое, что уже существующий? Добавлю простой switch.</p>
   <p>• Слушайте, это элементарно: если строка второго параметра оканчивается на «.txt», метод автоматически понимает, что первый параметр является именем файла, так что не нужно создавать два метода.</p>
   <p>Намерения благие, но приведенные решения чреваты снижением читаемости кода, использующего ваш API. Следующий вызов метода</p>
   <p><code>parser.processNodes(text, false);</code></p>
   <p>несет смысловую нагрузку только для того, кто знает, как метод реализован, либо прочел документацию. Этот метод создавался скорее для удобства автора, а не пользователя: «Я не хочу заставлять программиста делать два вызова» на практике означало «Мне не хотелось писать два метода». В принципе нет ничего плохого, если удобство используется как средство против монотонности, громоздкости и неуклюжести. Но если вдуматься, противоядием для этих симптомов служат эффективность, элегантность, последовательность — и не обязательно удобство. API предполагают сокрытие внутренней сложности системы, поэтому вполне резонно ожидать, что проектирование хорошего API требует некоторых усилий. Вполне возможно, что удобнее написать один большой метод, а не тщательно продуманный набор операций, но каким из вариантов проще пользоваться?</p>
   <p>В таких ситуациях более удачные архитектурные решения могут основываться на метафоре API как естественного языка. API должен предлагать выразительный язык, обеспечивающий вышележащему уровню словарь, которого достаточно, чтобы задавать полезные вопросы и получать на них ответы. Это не значит, что каждому возможному вопросу будет сопоставлен лишь один метод или глагол. Обширный словарь позволяет передавать оттенки смысла. Например, мы предпочитаем говорить run (бежать), а не walk(true) (идти), хотя можно рассматривать эти действия как одну и ту же операцию, выполняемую с разной скоростью. Последовательный и хорошо продуманный словарь API способствует выразительности и прозрачности кода более высокого уровня. А что еще важнее — словарь, допускающий сочетания слов, дает возможность другим программистам использовать API способами, которые вы не предвидели, — и это действительно большое удобство для его пользователей! Когда у вас в очередной раз возникнет соблазн сложить в один метод API сразу несколько операций, вспомните, что слова <emphasis>ПрибериКомнатуНеШумиИСделайДомашнееЗадание</emphasis> нет в словарях, хотя оно пришлось бы весьма кстати для такой популярной операции.</p>
  </section>
  <section>
   <title>
    <p>Развертывание приложения: раннее и регулярное</p>
    <p>Стив Берчук</p>
   </title>
   <image l:href="#i_021.jpg"/>
   <p><strong>Отладку процедуры развертывания (deployment) и установки </strong>часто откладывают до этапа завершения проекта. В некоторых проектах создание средств установки возлагается на выпускающего продукт инженера, который воспринимает эту задачу как «неизбежное зло». Промежуточные демонстрации приложения проводятся в специально подготовленной среде, чтобы все работало, как надо. В результате команда не получает опыта работы с процессом и средой развертывания до того момента, когда времени для внесения изменений уже может не остаться.</p>
   <p>Процедура развертывания или установки — первое, что видит заказчик, и если она проста, это первый шаг к надежной (или хотя бы простой в отладке) производственной среде. Развертываемое программное обеспечение — это то, чем будет пользоваться клиент. Если вы не обеспечите правильное развертывание приложения, у ваших клиентов появятся вопросы еще до того, как они приступят к плотной работе с вашими программами.</p>
   <p>Начиная проект с процедуры установки, вы получаете время на ее совершенствование по ходу цикла разработки продукта и возможность вносить изменения в код приложения с целью облегчить его установку. Периодический запуск и тестирование процедуры установки в чистой среде позволит также проверить, не осталось ли в коде зависимостей от среды разработки или тестирования.</p>
   <p>Задвигая развертывание на последнее место, вы можете тем самым усложнить процесс развертывания, ведь вам придется искать обходные маршруты для допущений, сделанных в коде. То, что казалось удачной идеей в IDE, где имеется полный контроль над средой, может значительно усложнить процедуру развертывания. Обо всех компромиссах лучше узнать заранее.</p>
   <p>Может казаться, что «способность развернуть приложение» на ранних стадиях не имеет большой ценности для бизнеса по сравнению с возможностью увидеть, как приложение работает на компьютере разработчика. Однако нужно учесть тот простой факт, что реальную ценность для бизнеса представляет лишь конечный продукт, способный работать в среде клиента. А это в любом случае невозможно на начальном этапе и еще потребует значительной работы. Если вы откладываете создание процедуры развертывания, считая ее тривиальной, следует тем более решить этот вопрос сразу, раз решение настолько дешево. Если же процедура слишком сложная или в ней слишком много неясного, нужно работать с ней так же, как с кодом приложения: экспериментировать, оценивать и переделывать по мере необходимости.</p>
   <p>Процедура установки или развертывания критически важна для успешной работы ваших клиентов или вашей сервисной команды, поэтому необходимо постоянно тестировать и совершенствовать ее. Тестирование и совершенствование исходного кода происходят на всем протяжении проекта. Развертывание приложения заслуживает такого же отношения.</p>
  </section>
  <section>
   <title>
    <p>Отличайте исключения в бизнес-логике от технических</p>
    <p>Дэн Берг Джонссон</p>
   </title>
   <image l:href="#i_022.jpg"/>
   <p><strong>Есть, в общем-то, две главные причины </strong>возникновения ошибок времени выполнения (runtime errors): технические проблемы, препятствующие работе приложения, и бизнес-логика, препятствующая использованию приложения неверным способом. Большинство современных языков, таких как LISP, Java, Smalltalk и C#, сигнализируют о возникновении ситуаций обоих типов при помощи исключений. Но эти две ситуации настолько различны, что их следует тщательно разделять. Представлять их посредством единой иерархии исключений — не говоря уже об одинаковых классах исключений — значит создавать возможность путаницы в будущем.</p>
   <p>Ошибка программирования может породить неразрешимую техническую проблему. Например, если пытаться получить 83-й элемент массива размером 17 элементов, программа сойдет с рельс и сгенерирует исключение. Более тонкий вариант — вызов кода библиотеки с недопустимыми аргументами, приводящий к тому же результату, но внутри библиотеки.</p>
   <p>Было бы ошибкой пытаться на месте разрешать все подобные ситуации, возникшие по нашей вине. Вместо этого мы даем возможность исключениям всплыть на самый верхний уровень архитектуры, где некий общий механизм обработки исключений сделает все возможное, чтобы привести систему в безопасное состояние, например откатит транзакцию, отразит событие в файле журнала и известит администратора, а также вежливо сообщит о произошедшем пользователю.</p>
   <p>Вариант этой ситуации встречается при обращении к вашей библиотеке, когда вызывающий нарушил контракт метода, например, передав совершенно неприемлемый аргумент или не настроив должным образом связанный объект. Это ситуация того же типа, что с обращением к 83-му элементу из 17: вызывающий должен был проверить, и это ошибка программиста на стороне клиентского кода. Правильная реакция — генерировать техническое исключение.</p>
   <p>Иная, но тоже техническая ситуация возникает, когда программа не может продолжить работу из-за проблем с окружением, например из-за недоступности базы данных. В такой ситуации следует предположить, что инфраструктура сделала все возможное, чтобы решить проблему — попыталась восстановить соединение должное число раз, — и не справилась. Даже если истинная причина в другом, положение для вызывающего кода аналогичное: он мало чем может исправить ситуацию. Поэтому мы сообщаем о ситуации посредством исключения, которое дойдет до универсального механизма обработки исключений.</p>
   <p>С другой стороны, случаются ситуации, когда вызов не может быть завершен по логике предметной области. Это исключительная ситуация, иначе говоря, необычная и нежелательная, но в ней нет странности или ошибки программирования (примером может служить попытка снять со счета больше средств, чем на нем находится). Иными словами, такая ситуация является частью контракта, а генерация исключения — это <emphasis>альтернативный маршрут возврата</emphasis>, часть модели, о которой клиентский код должен знать и которую должен быть готов обработать. Для таких случаев рекомендуется создать отдельное исключение или отдельную иерархию исключений, чтобы клиентский код мог обработать ситуацию особым образом.</p>
   <p>Объединение технических исключений и исключений бизнес-логики в одну иерархию размывает различия между ними и может запутать вызывающего относительно контракта метода, предусловий вызова и ситуаций, которые должны обрабатываться. Разделение этих случаев придает ясности и повышает вероятность того, что технические исключения будут обрабатываться стандартными механизмами каркаса приложения, а исключения предметной области будут рассмотрены и обработаны клиентским кодом.</p>
  </section>
  <section>
   <title>
    <p>Больше осознанной практики</p>
    <p>Джон Джаггер</p>
   </title>
   <image l:href="#i_023.jpg"/>
   <p><strong>Осознанная практика — это не просто выполнение задания</strong>. Если на вопрос «Зачем я выполняю задание?» вы отвечаете: «Чтобы выполнить это задание», это не осознанная практика.</p>
   <p>Осознанная практика нужна для того, чтобы улучшить ваши способности к выполнению задачи. Цель — повышение мастерства и техники. Осознанная практика — это повторение. Осознанная практика — это решение задачи с целью повышения мастерства в одном или нескольких аспектах задачи. Осознанная практика — это повторы повторений. Вы продвигаетесь медленно, выполняя задачу снова и снова, пока не достигнете желаемого уровня мастерства. Осознанная практика выполняется, чтобы овладеть способами решения задания, а не для того, чтобы его выполнить.</p>
   <p>Главная цель коммерческой разработки — конечный продукт, а главная цель осознанной практики — повышение эффективности труда. Это разные вещи. Прикиньте, сколько времени вы тратите на работу над чужим проектом? А сколько времени на работу над собой?</p>
   <p>Сколько осознанной тренировки необходимо для приобретения мастерства?</p>
   <p>• Питер Норвиг (Peter Norvig) пишет,<a l:href="#n_9" type="note">[9]</a> что «возможно, 10000 часов… — это и есть то самое магическое число».</p>
   <p>• В книге «Leading Lean Software Development: Results Are not the Point» (Addison-Wesley Professional, 2009) Мэри Поппендик (Mary Poppendieck) пишет, что «разработчикам, достигшим высшего уровня производительности, требуется не менее 10000 часов целенаправленной тренировки, чтобы стать экспертами».</p>
   <p>Мастерство растет постепенно, а не возникает скачком после 10-тысячного часа! Однако 10000 часов — это серьезно: примерно 20 часов в неделю в течение 10 лет. Требуется такое упорство, что вы можете усомниться, получится ли из вас эксперт.</p>
   <p>Получится. Величие есть по преимуществу вопрос сознательного выбора. Вашего выбора. Исследования последних двадцати лет показывают, что главным фактором приобретения компетенции является время, потраченное на целенаправленную тренировку. Врожденные способности — не главный фактор. Вот что пишет Мэри Поппендик:</p>
   <cite>
    <p>Многие исследователи высших профессиональных достижений сходятся в том, что врожденный талант является всего лишь фиксированной отправной точкой: нужны какие-то минимальные природные способности, чтобы начать заниматься спортом или определенной профессиональной деятельностью. Начиная с этого порогового значения, преуспевают те, кто трудится упорнее всего.</p>
   </cite>
   <p>Нет смысла осознанно практиковаться в том, что вы и так умеете делать мастерски. Осознанной тренировкой мы развиваем то, что умеем недостаточно хорошо. Питер Норвиг пишет:</p>
   <cite>
    <p>Ключ [к достижению мастерства] — <emphasis>осознанная</emphasis> практика: не просто многократное повторение одного и того же, но смелость взяться за задачу, которая несколько превышает ваши нынешние способности, попытаться ее решить, анализировать эффективность своих действий во время и после работы над решением, а также исправить допущенные ошибки.</p>
   </cite>
   <p>А Мэри Поппендик пишет:</p>
   <cite>
    <p>Осознанная практика — это не повторение того, что вы уже умеете; это выбор сложной задачи, попытка заняться тем, в чем вы не вполне компетентны. Нельзя рассчитывать, что это будет приятное времяпрепровождение.</p>
   </cite>
   <p>Осознанная практика — это учеба, которая изменяет вас, изменяет ваше поведение. Удачи.</p>
  </section>
  <section>
   <title>
    <p>Предметно-ориентированные языки</p>
    <p>Микаэль Хунгер</p>
   </title>
   <image l:href="#i_024.jpg"/>
   <p><strong>Если прислушаться к разговору экспертов </strong>в какой-либо области, будь то игроки в шахматы, воспитатели детского сада или страховые агенты, можно заметить, что их лексика существенно отличается от повседневной. Отчасти такова причина появления предметно-ориентированных языков (domain specific language, DSL): у каждой предметной области есть собственный специализированный словарь для описания явлений, присущих этой области.</p>
   <p>Если говорить о программировании, DSL представляют собой выполняемые выражения на языке, присущем предметной области. Выражения языка строятся на ограниченном словаре и грамматике, так что специалисты в данной предметной области способны читать и понимать выражения на этом языке, а в идеале еще и писать собственные. Языки DSL, ориентированные на разработчиков и ученых, существуют уже довольно давно. Достаточно древними примерами могут послужить «малые языки» настроечных файлов UNIX, а также языки на базе мощных макросов LISP.</p>
   <p>Обычно DSL делятся на <emphasis>встроенные</emphasis> и <emphasis>независимые</emphasis>:</p>
   <p><emphasis>Встроенные DSL</emphasis></p>
   <p>Создаются на универсальных языках программирования, синтаксис которых подогнан под структуры естественного языка. Проще всего делать это с языками, предоставляющими широкие возможности для синтаксического украшательства и гибкого форматирования (например, Ruby и Scala), тогда как с другими все сложнее (например, Java). Большинство встроенных DSL — суть обертки существующих API, библиотек и бизнес-логики. Они снижают входной порог применения уже существующей функциональности. Приложения на встроенных DSL можно запускать как обычные приложения. В зависимости от реализации и предметной области они могут использоваться для наполнения структур данных, описания зависимостей, запуска процессов или задач, сообщения с другими системами или проверки корректности вводимых пользователями данных. Синтаксис встроенного DSL ограничен возможностями базового языка. Существует множество шаблонов — например построитель выражений, цепочка методов, аннотация — для подгонки базового языка к нужному DSL. Если базовый язык не требует перекомпиляции, встроенный DSL при тесном взаимодействии с экспертом в предметной области можно создать достаточно быстро.</p>
   <p><emphasis>Независимые DSL</emphasis></p>
   <p>Представляют собой текстовое или графическое описание языка, причем текстовые DSL встречаются чаще графических. Текстовые выражения могут проходить обработку в цепочке, включающей в себя лексический анализатор, анализатор синтаксиса, преобразователь модели, генераторы и любые другие средства постобработки. Как правило, выражения не независимых DSL преобразуются во внутренние модели, служащие основой для дальнейшей обработки. Полезно определить грамматику (например, в виде РФБН<a l:href="#n_10" type="note">[10]</a>). Грамматика служит отправным пунктом для создания элементов инструментальной цепочки (например, редактора, визуализатора, генератора анализаторов синтаксиса). Для простых DSL может оказаться достаточно анализатора синтаксиса, созданного вручную — например, на основе регулярных выражений. Если требования к анализатору синтаксиса достаточно сложны, созданный вручную анализатор синтаксиса может стать слишком громоздким, и следует обратить взор на такие инструменты для работы с грамматиками и DSL, как openArchitectureWare, ANTLR, SableCC, AndroMDA. Довольно часто независимые DSL определяют в виде диалектов XML, но с чтением в этом случае могут быть сложности, особенно у неспециалистов.</p>
   <p>Всегда следует принимать во внимание целевую аудиторию вашего DSL. Из кого она состоит — из разработчиков, менеджеров, клиентов или конечных пользователей? В зависимости от целевой аудитории нужно выбирать технический уровень языка, доступные пользователю функции, инструмент для подсказки по синтаксису (например, IntelliSense), средства ранней валидации, визуализации и представления. Скрывая технические детали, DSL отдает власть пользователям, предоставляя им возможность адаптировать системы к собственным потребностям, не прибегая к помощи разработчиков. DSL позволяет еще и увеличить скорость разработки благодаря распределению задач после того, как создан начальный каркас языка. Язык может развиваться постепенно. Существуют также различные способы перевести существующие языки и грамматики на новый DSL.</p>
   <p>Не бойтесь что-нибудь сломать</p>
  </section>
  <section>
   <title>
    <p>Майк Льюис</p>
   </title>
   <image l:href="#i_025.jpg"/>
   <p><strong>Каждый поработавший в нашей отрасли </strong>наверняка встречался с проектом, код которого внушал опасения. Части такой системы сильно взаимосвязаны, и изменение кода одной функции почему-то приводит к нарушению работы совсем другой. При добавлении нового модуля приходится ограничиваться минимальными изменениями и, затаив дыхание, ждать последствий. Это все равно что играть в <emphasis>дженгу</emphasis> перекрытиями небоскреба — однозначно ведет к катастрофе.</p>
   <p>Внесение изменений так изматывает нервы только потому, что система больна. Она нуждается в лечении, иначе ее состояние будет лишь ухудшаться. Вы знаете, в чем пороки системы, но боитесь принять решительные меры. Опытный хирург знает, что необходимо сделать разрезы, чтобы провести операцию, но он знает также, что разрезы временные и потом заживут. Результат операции оправдывает перенесенные страдания, и состояние пациента должно стать лучше, чем до хирургического вмешательства.</p>
   <p>Не бойтесь своего кода. Кому какое дело, что код не работает в процессе работы над ним? Именно боязнь перемен и привела ваш проект к нынешнему жалкому состоянию. Потраченное на рефакторинг время многократно окупится в течение жизненного цикла вашего проекта. Да к тому же переработка нездоровой системы сделает всех участников команды специалистами в ее устройстве. Такой опыт нужно ценить, а не жаловаться на него. А вот работа над системой, постоянно вызывающей тошноту, не лучший выбор в жизни.</p>
   <p>Переопределите внутренние интерфейсы. Реструктурируйте модули. Реорганизуйте код, полученный путем копирования-вставки. Упростите архитектуру, сократив число зависимостей. Сложность кода можно существенно снизить, устранив из него патологические случаи, а они часто возникают из-за неправильно организованной взаимосвязи между частями системы. Медленно переходите от старой структуры к новой, не забывая в процессе о тестировании. Попытка осуществить рефакторинг «в один заход» может вызвать столько проблем, что возникнет сомнение в целесообразности переработки вообще.</p>
   <p>Станьте хирургом, смело удаляющим пораженные ткани во имя исцеления. Такой подход заразителен и вдохновит ваших коллег к проведению давно откладывавшейся зачистки в других проектах. Ведите список «гигиенических» работ, которые, по мнению команды, принесли бы пользу проекту. Убедите руководство в том, что, несмотря на отсутствие видимых результатов, такие работы сокращают издержки и ускоряют выпуск новых версий. Постоянно проявляйте заботу о «здоровье» кода в целом.</p>
  </section>
  <section>
   <title>
    <p>Не прикалывайтесь с тестовыми данными</p>
    <p>Род Бегби</p>
   </title>
   <image l:href="#i_026.jpg"/>
   <cite>
    <p>Был поздний вечер. Я подбирал фиктивные данные, что бы протестировать верстку страницы, находившейся в работе. Имена пользователей я придумал в честь участников группы «The Clash». Названия компаний? Сгодятся названия песен «Sex Pistols». Теперь нужны какие-нибудь биржевые символы — четырехбуквенные слова, состоящие из заглавных букв.</p>
    <p>Я выбрал те самые четырехбуквенные слова.<a l:href="#n_11" type="note">[11]</a></p>
    <p>Вроде вполне безобидно. Просто небольшое развлечение для меня или тех разработчиков, которые увидят это завтра, пока я не подключу реальный источник данных.</p>
    <p>А на следующее утро руководитель проекта сделал несколько снимков экрана для презентации.</p>
   </cite>
   <p><strong>История программирования </strong>пестрит множеством подобных воспоминаний. Шалости разработчиков и дизайнеров, которые «никто никогда не увидит», вдруг представали всеобщему обозрению.</p>
   <p>Важен не вид утечки, а то, что результаты бывают смертельными для отдельных лиц, команд или компаний. Вот некоторые примеры:</p>
   <p>• Во время показа текущей версии клиент щелкает по кнопке, функциональность которой еще не реализована, и получает сообщение: «Придурок, не трогай эту кнопку».</p>
   <p>• Программист, сопровождавший старую систему, получил задание добавить диалоговое сообщение об ошибке и решил вывести то, что записывается во внутренний журнал. И вот у пользователей при ошибках появляются сообщения типа «Твою мать, Бэтмен, сбой транзакции БД!».</p>
   <p>• Человек перепутал интерфейс для ввода тестовых данных и интерфейс администрирования рабочей системы. Он вводит «прикольные» данные, и вот покупатели видят на витрине вашего интернет-магазина «Фаллоимитатор в виде Билла Гейтса» ценой 1000000 $.</p>
   <p>Если старую поговорку «пока правда обувается, ложь уже обойдет полсвета» перевести на современный язык, то можно сказать, что в наше время такие ляпы прославятся в Twitter, LiveJournal или Facebook до того, как в часовом поясе разработчиков проснется кто-то, способный их исправить.</p>
   <p>Вполне возможно, что и ваш исходный код не избежит пристального интереса. Когда в 2004 архивы с исходным кодом Windows 2000 появились в файлообменных сетях, некоторые весельчаки профильтровали их в поисках сквернословия, ругательств и прочих забавных вещей.<a l:href="#n_12" type="note">[12]</a> (Признаюсь, с той поры я иногда прибегаю к комментарию: // TERRIBLE HORRIBLE NO GOOD VERY BAD HACK (УЖАСНО ОТВРАТИТЕЛЬНО БЕСПОЛЕЗНО ДРЯННОЙ ТРЮК!)</p>
   <p>Короче, когда вы пишете в коде любой текст, будь то комментарии, вывод в журнал, диалоговое окно или тестовые данные, думайте о том, как это будет выглядеть, если текст попадет в открытый доступ. И тогда никому не придется краснеть.</p>
  </section>
  <section>
   <title>
    <p>Не проходите мимо ошибки!</p>
    <p>Пит Гудлиф</p>
   </title>
   <image l:href="#i_027.jpg"/>
   <cite>
    <p>Как-то вечером я шел по улице на встречу с друзьями в баре. Мы давненько не пили вместе пиво, я спешил и думал только о встрече с ними. Поэтому я плохо смотрел себе под ноги. Споткнувшись о край тротуара, я упал плашмя, но решил не обращать на это внимания.</p>
    <p>Нога болела, но я же спешил на встречу с друзьями! Я собрался с силами и двинулся дальше. По ходу дела боль усиливалась. Поначалу я думал, что просто проходит болевой шок, но вскоре понял, что дело серьезнее.</p>
    <p>И все же я направился в сторону бара. Когда я добрался туда, мне было уже невыносимо больно. Вечер не особенно удался — боль не давала о себе забыть. Утром я пошел к доктору, и выяснилось, что у меня сломана голень. Остановись я, когда стало больно, мне удалось бы избежать многих осложнений, вызванных тем, что я продолжал идти дальше. Предположу, то было мое худшее в жизни утреннее похмелье.</p>
   </cite>
   <p><strong>Слишком многие программисты </strong>пишут код в духе моего поведения в тот вечер.</p>
   <p><emphasis>Ошибка? Какая еще ошибка? Это просто ерунда. Честно. Можно не обращать на нее внимания</emphasis>. Для создания надежного кода такая стратегия <emphasis>не годится</emphasis>. Скажу больше, это попросту лень. (Вредная ее разновидность.) Что бы вы там себе ни воображали по поводу отсутствия ошибок в собственном коде, их всегда нужно проверять и всегда обрабатывать. Обязательно. Поступая иначе, вы не экономите время, но запасаетесь потенциальными проблемами на будущее.</p>
   <p>Сообщить об ошибке в коде можно разными способами, например:</p>
   <p>• Вернуть в результате работы функции <strong>код ошибки</strong>, который означает, что функция отработала неверно. Код ошибки очень легко игнорировать. В коде ничто не укажет на проблему. Вообще теперь стало принято игнорировать значения, возвращаемые некоторыми стандартными функциями С. Часто ли вы проверяете значение, возвращаемое функцией printf?</p>
   <p>• <strong>errno </strong>— любопытный маразм языка С, специальная глобальная переменная, которая должна сигнализировать об ошибке. Ее легко игнорировать, ее неудобно применять и она служит источником всяческих неприятностей: что, например, делать, если в программе несколько потоков, вызывающих одну и ту же функцию? Одни платформы помогают избежать проблем в таких ситуациях, другие — нет.</p>
   <p>• <strong>Исключения</strong> — это более организованный способ уведомлять об ошибках и обрабатывать их, причем способ, встроенный в язык. Игнорировать исключения невозможно. Или все же можно? Мне часто встречался код типа</p>
   <p><code>try {</code></p>
   <p><code>   //…что-то выполнить…</code></p>
   <p><code>}</code></p>
   <p><code>catch (…) {} // игнорировать ошибки</code></p>
   <p>Единственное достоинство этой ужасной конструкции — подчеркнуть, что в коде происходит нечто сомнительное с точки зрения морали.</p>
   <p>Игнорируя ошибку, закрывая глаза и делая вид, что ничего не произошло, вы подвергаетесь большому риску. Как моя нога сильнее пострадала потому, что я не остановился немедленно, так и движение напролом через красные флажки может привести к очень серьезным проблемам. Проблемы нужно решать при первой же возможности. Не затягивайте выплату долгов.</p>
   <p>Если не обрабатывать ошибки, вот что вы получите:</p>
   <p>• <strong>Нестабильный код. </strong>Код со множеством восхитительных и трудных для обнаружения ошибок.</p>
   <p>• <strong>Небезопасный код. </strong>Взломщики часто пользуются недостатками обработки ошибок для взлома программных систем.</p>
   <p>• <strong>Плохая структура. </strong>Если в вашем коде постоянно проявляются ошибки, которые трудно обрабатывать, то, вероятно, у вас неудачный интерфейс. Формулируйте его таким образом, чтобы ошибки становились менее назойливыми, а их обработка не была столь обременительна.</p>
   <p>Следует не только проверять все возможные ошибки в коде, но и обнажать все потенциально ошибочные состояния в интерфейсах. Не скрывайте их — нет смысла притворяться, что ваши службы всегда будут работоспособны.</p>
   <p>Почему мы не выполняем проверку на ошибки? Вот некоторые стандартные оправдания:</p>
   <p>• Обработка ошибок загромождает код, затрудняя его чтение и отслеживание «нормального» потока выполнения.</p>
   <p>• Это лишняя работа, а на меня давят сроки сдачи.</p>
   <p>• Я уверен, что эта функция никогда не вернет ошибку (printf всегда работает, malloc всегда выделяет память, а если нет, наши проблемы гораздо серьезнее…)</p>
   <p>• Это прототип, нет смысла делать его пригодным для коммерческого применения.</p>
   <p>С какими из них вы согласны? Что вы могли бы на них возразить?</p>
  </section>
  <section>
   <title>
    <p>Не просто учите язык, поймите его культуру</p>
    <p>Андерс Норас</p>
   </title>
   <image l:href="#i_028.jpg"/>
   <p><strong>В средней школе мне пришлось изучать иностранный язык</strong>. В то время мне казалось, что достаточно хорошего знания английского языка, и потому я благополучно проспал три года уроков французского. Спустя несколько лет я поехал отдыхать в Тунис. Официальный язык этой страны — арабский, но так как это бывшая французская колония, в Тунисе широко распространен французский. По-английски говорят только в местах пребывания туристов. Из-за своего невежества в языках мне пришлось проводить время главным образом близ бассейна за чтением книги «Finnegans Wake» (Поминки по Финнегану), в которой Джеймс Джойс продемонстрировал свое владение как формой, так и языком. Джойс играючи соединил вместе более 40 языков, и чтение книги стало для меня удивительным, хотя и непростым опытом. Это переживание новых средств выражения, сотканных автором из иностранных слов и фраз, осталось со мной на протяжении всей моей карьеры программиста.</p>
   <p>В своей новаторской книге «The Pragmatic Programmer: From Journeyman to Master»<a l:href="#n_13" type="note">[13]</a> (Addison-Wesley Professional) Энди Хант и Дэйв Томас рекомендуют каждый год изучать какой-нибудь новый язык программирования. Я попробовал последовать их совету и за годы работы приобрел опыт программирования на многих языках. Самый важный вывод из моих приключений полиглота: для изучения языка недостаточно освоить его синтаксис, нужно понять его культуру.</p>
   <p>Можно на любом языке писать, как на Фортране, но, чтобы по-настоящему изучить язык, нужно принять его полностью.</p>
   <p>Не ищите себе оправданий, если ваш код C# состоит из длинного метода Main и преимущественно <emphasis>статических</emphasis> вспомогательных методов. Лучше разберитесь, почему имеет смысл применять классы. Не избегайте малопонятных лямбда-выражений в функциональных языках, заставьте себя пользоваться ими.</p>
   <p>Овладев приемами нового языка, вы с удивлением обнаружите, что по-новому пользуетесь теми языками, которые знали раньше.</p>
   <p>Я научился эффективно использовать делегирование в C# после того, как освоил Ruby; раскрытие всех возможностей обобщений. NET (generics) навело меня на мысли о том, как с большей пользой применять обобщения в Java; после LINQ мне было легко изучать Scala.</p>
   <p>Переход с одного языка на другой помогает также лучше понять шаблоны проектирования. Программисты на C обнаруживают, что в C# и Java одинаково широко употребляется шаблон итератора. В Ruby и других динамических языках можно все еще пользоваться шаблоном посетителя (visitor), но ваша реализация не будет похожа на пример из книги Банды Четырех (The Gang of Four).</p>
   <p>Одни утверждают, что «Поминки по Финнегану» невозможно читать, другие восторгаются стилистической красотой книги. Чтобы облегчить чтение книги, были сделаны ее моноязычные переводы. Забавно, что первый перевод был французским.</p>
   <p>С кодом ситуация во многом аналогична. Если писать код в стиле «Поминок», чтобы в нем было чуть-чуть Python, немного Java и примесь Erlang, проект превращается в месиво. Но если вы изучаете новые языки, чтобы расширить свой кругозор и встретить новые идеи для решения задач разными способами, вы обнаружите, что код, который вы пишете на старом проверенном языке, становится более красивым с каждым новым изученным языком.</p>
  </section>
  <section>
   <title>
    <p>Не прибивайте программу гвоздями к стене</p>
    <p>Верити Стоб</p>
   </title>
   <image l:href="#i_029.jpg"/>
   <p><strong>Однажды я написала опрос-розыгрыш по C++</strong>, в котором в шутку предложила такую стратегию обработки исключений:</p>
   <cite>
    <p>Путем размещения в коде многочисленных конструкций try…catch иногда удается избежать аварийного завершения программы. О полученном в результате состоянии можно сказать, что «тело прибито в вертикальном положении».</p>
   </cite>
   <p>Несмотря на легкомыслие, я всего лишь излагала урок, извлеченный из Его Величества Горького Опыта.</p>
   <p>То был базовый класс приложения в нашей самописной библиотеке C++. В коде класса многие годы ковырялись шаловливыми ручонками то один программист, то другой. Класс содержал код обработки исключений, ускользнувших от всех других обработчиков. Взяв пример с Йоссариана из «Уловки-22», мы решили или, скорее, нам показалось (слово «решили» предполагает больше мыслительных усилий, чем ушло на создание этого монстра), что экземпляр этого класса должен жить вечно или умереть в попытках это сделать.</p>
   <p>С этой целью мы сплели воедино множество обработчиков исключений. Мы смешали обработку структурированных исключений Windows с собственными исключениями (помните __try…__except в C++? Я тоже не помню). Когда неожиданно возникало исключение, мы вызывали методы снова, запихивая в них те же параметры. Когда я вспоминаю это, мне нравится думать, что, создавая вложенный обработчик try…catch внутри предложения catch другого обработчика, я испытывала смутное подозрение, что как-то случайно съехала с надежного шоссе хорошей практики на ароматную, но нездоровую дорогу к безумию. Впрочем, это я понимаю, скорее, задним умом.</p>
   <p>Стоит ли говорить, что, когда возникали проблемы в приложениях, основанных на этом классе, приложения исчезали бесследно, словно жертвы мафии, сброшенные с причала. Не оставалось даже пузырей на воде в качестве подсказки о печальном происшествии, несмотря на наличие подпрограмм аварийной регистрации, отвечавших за протоколирование события. В конце концов — по прошествии немалого времени — мы критически переоценили свое творение и устыдились. Все это месиво мы заменили маленьким и надежным механизмом генерации отчета. Но тому предшествовал не один десяток критических сбоев приложения.</p>
   <p>Я не стала бы отнимать у вас время этой историей, ибо трудно представить, что кто-то еще мог бы соперничать с нашей глупостью, но недавно в сети у меня случилась дискуссия с типом, академический чин которого предполагает большее понимание подобных вопросов. Обсуждался код на Java в удаленных транзакциях. Тип утверждал, что если в коде случился сбой, исключение должно быть перехвачено и блокировано на месте. («И <emphasis>что же</emphasis> с ним тогда делать? — спросила я. — Приготовить его на ужин?»)</p>
   <p>Он процитировал правило проектировщиков пользовательских интерфейсов: ПОЛЬЗОВАТЕЛЬ НИКОГДА НЕ ДОЛЖЕН ВИДЕТЬ СООБЩЕНИЕ ОБ ИСКЛЮЧИТЕЛЬНОЙ СИТУАЦИИ, как будто это правило решает проблему, напиши его прописными буквами или как-то еще. Интересно, может, это он автор кода для банкоматов, прославившихся своими синими экранами смерти в некоторых чахлых блогах, и не получил ли он душевную травму на всю жизнь.</p>
   <p>Во всяком случае, если вам доведется встретиться с ним, кивайте, улыбайтесь и не слушайте, пока будете бочком пробираться к двери.</p>
  </section>
  <section>
   <title>
    <p>Не полагайтесь на «автоматические чудеса»</p>
    <p>Алан Гриффитс</p>
   </title>
   <image l:href="#i_030.jpg"/>
   <p><strong>Если взглянуть на любую деятельность</strong>, процесс или дисциплину с достаточно большого расстояния, все вроде бы просто. Менеджеры, у которых нет опыта разработки программ, считают, что работа программиста проста, а программисты, у которых нет опыта руководства, точно так же относятся к работе менеджера.</p>
   <p>Программирование — некоторое занятие, на которое тратят некоторую часть своего времени некоторые люди. А самая трудная часть работы — мыслительный процесс — менее всего заметна и менее всего ценится непосвященными. Десятилетиями предпринимаются попытки избавиться от потребности в квалифицированных мыслящих кадрах. Одна из наиболее ранних и памятных попыток — усилия Грэйс Хоппер (Grace Hopper) сделать языки программирования не такими таинственными. Благодаря этому, как предсказывали некоторые, потребность в программистах узкой специализации может исчезнуть. Результат (COBOL) способствовал материальному благополучию многих программистов узкой специализации в последующие десятилетия.</p>
   <p>Навязчивая идея, будто разработку программного обеспечения можно упростить, если исключить из нее программирование, представляется совершенно наивной программисту, который понимает, о чем речь. Но ход мыслей, приводящий к этой ошибке, заложен в человеческой природе, и программисты подвержены этой ошибке так же, как и все остальные.</p>
   <p>В любом проекте найдется множество вещей, с которыми отдельный программист может не соприкасаться тесно: получение технических требований от пользователей, утверждение бюджета, настройка сервера сборки, развертывание приложения в тестовой или производственной среде, перевод бизнеса на новые процессы или программы и тому подобное.</p>
   <p>Если вы не заняты активно в каком-то виде деятельности, возникает подсознательное стремление считать, что он прост и происходит «по какому-то волшебству сам по себе». Пока длится это волшебство, все хорошо. Но когда (обычно уместно именно слово «когда», а не «если») волшебство прекращается, проект сталкивается с неприятностями.</p>
   <p>Мне встречались проекты, в которых разработчики бесплодно тратили недели своего времени, поскольку никто не осознавал, что их работа зависит от того, «правильная» ли версия DLL загружена. Когда начинались периодические сбои, проверялись все возможные причины, пока кто-то не обращал внимание, что загружалась «неверная» версия DLL.</p>
   <p>В другом подразделении все шло гладко: проекты завершались вовремя, без отладок до глубокой ночи и исправлений в последний момент. Настолько гладко, что высшее руководство решило, что все работает «само собой» и можно обойтись без руководителя проекта. Через полгода проекты в этом подразделении стали идти, как везде: с задержками, ошибками и непрерывными заплатками.</p>
   <p>Не нужно разбираться во всех «волшебствах», благодаря которым работает ваш проект, но понимать их хотя бы частично не повредит, как и ценить тех, кто разбирается в некоторых вещах лучше вас.</p>
   <p>Самое главное, если волшебство вдруг перестанет работать, нужно знать, как его возобновить.</p>
  </section>
  <section>
   <title>
    <p>Не повторяй свой код</p>
    <p>Стив Смит</p>
   </title>
   <image l:href="#i_031.jpg"/>
   <p><strong>«Don’t Repeat Yourself (DRY)» </strong>(«не повторяйся») является, вероятно, одним из главнейших принципов программирования. Этот принцип сформулировали Энди Хант и Дэйв Томас в книге «Программист-прагматик», и он лежит в основе многих других широко известных правильных подходов и шаблонов проектирования в разработке программного обеспечения. Разработчик, научившийся распознавать дублирование и умеющий устранять его с помощью надлежащих приемов и подходящей абстракции, способен писать гораздо более понятный код, чем тот, кто постоянно загрязняет приложение ненужными повторениями.</p>
   <p><strong>Дублирование кода — это балласт</strong></p>
   <p>Каждая строка кода приложения требует сопровождения, и она служит источником возможных ошибок в будущем. Дублирование приводит к ненужному увеличению объема кода, что повышает вероятность появления ошибок и делает систему излишне сложной. Увеличение объема системы из-за дублирования, во-первых, мешает разработчикам полностью разобраться в системе, а во-вторых, не позволяет гарантировать, что изменения, внесенные в одном месте, не потребуется повторить в других местах, где дублируется эта логика. Принцип DRY требует, чтобы «каждый элемент информации имел в системе единственное, однозначное и надежное представление».</p>
   <p><strong>Повторение в процессах указывает на необходимость автоматизации</strong></p>
   <p>Многие процессы в разработке программного обеспечения многократно повторяются и легко автоматизируются. Принцип DRY применим как к исходному коду приложения, так и в подобных контекстах. Ручное тестирование проходит медленно, подвержено ошибкам и повторять его трудно, поэтому по возможности следует применять <emphasis>автоматизированные наборы тестов</emphasis> (<emphasis>test suites</emphasis>). Интеграция приложения вручную занимает много времени и подвержена ошибкам, поэтому процесс сборки нужно выполнять как можно чаще — желательно после каждой записи кода в репозиторий. Там, где есть трудоемкие ручные процессы, которые можно автоматизировать, их нужно автоматизировать и стандартизировать. Цель — обеспечить наличие единственного способа решения задачи и сделать его как можно менее трудоемким.</p>
   <p><strong>Повторение в логике указывает на необходимость абстракции</strong></p>
   <p>Повторения в логике бывают разных видов. Очень легко обнаруживаются и исправляются случаи копирования и вставки конструкций <emphasis>if-then</emphasis> и <emphasis>switch-case</emphasis>. Многие шаблоны проектирования явным образом направлены на сокращение или удаление дублирования логики в приложении. Если объект требует выполнения некоторых действий, прежде чем его можно использовать, полезно применить шаблон Abstract Factory или Factory Method. Если у объекта много разных вариантов поведения, полезно организовать их с помощью шаблона Strategy, а не больших структур <emphasis>if-then</emphasis>. Фактически само создание шаблонов проектирования является попыткой сократить расходование сил, затрачиваемых на решение стандартных проблем и их обсуждение. Кроме того, применение принципа DRY к структурам, таким как схемы баз данных, приводит к нормализации.</p>
   <p><strong>Дело принципа</strong></p>
   <p>Другие принципы программного обеспечения также связаны с DRY. Принцип «один и только один раз» (Once and Only Once), который применим только к функциональному поведению кода, можно рассматривать как подмножество DRY. Принцип «открыт/закрыт» (Open/Closed), гласящий, что «элементы программного обеспечения должны быть открыты для расширения, но закрыты для модификации» на практике действует только тогда, когда выполняется принцип DRY. Аналогично на DRY основан известный «принцип единственной ответственности» (Single Responsibility Principle), который требует, чтобы у класса была только одна причина изменения.</p>
   <p>Если принцип DRY применять в отношении структуры, логики, процесса или функции, он служит базовым руководством для разработчиков программного обеспечения и способствует созданию более простых, легких в сопровождении и более качественных программ. Но хотя и существуют ситуации, в которых повторение оказывается необходимым для достижения нужной производительности или выполнения других требований (например, денормализация данных в базе данных), применять повторение следует только для решения реальных, а не воображаемых проблем.</p>
  </section>
  <section>
   <title>
    <p>Этот код не трогать!</p>
    <p>Кэл Эванс</p>
   </title>
   <image l:href="#i_017.jpg"/>
   <p><strong>С каждым из нас такое когда-нибудь да случалось</strong>. Ваш код загружен на промежуточный (staging) сервер для системного тестирования, и руководитель отдела тестирования сообщает вам, что есть проблема. Вы сразу готовы ответить: «Дайте-ка я быстро все исправлю: я знаю, в чем дело».</p>
   <p>Однако в более широком смысле проблема в том, что вы как разработчик считаете, что вам должен быть предоставлен доступ к серверу, где осуществляется тестирование.</p>
   <p>В большинстве случаев, если речь идет о веб-разработке, архитектуру можно разбить на следующие части:</p>
   <p>• Локальная разработка и модульное тестирование на машине разработчика</p>
   <p>• Сервер разработки, где проводится автоматическое или ручное интеграционное тестирование</p>
   <p>• Промежуточный (staging) сервер, где команда контроля качества и пользователи осуществляют приемочное тестирование</p>
   <p>• Боевой (production) сервер</p>
   <p>Да, существуют и другие серверы и сервисы, например для управления исходным кодом или дефектами ПО, но идея понятна. В такой модели разработчик — даже ведущий — ни при каких условиях не должен иметь доступа дальше сервера разработки. Основная разработка происходит на локальной машине программиста с использованием его любимых IDE, виртуальных машин и некоторой полезной для успеха дела черной магии.</p>
   <p>После сохранения кода в репозиторий, будь то вручную или автоматически, код должен быть развернут на сервере разработки, где его можно протестировать и при необходимости подправить, чтобы убедиться, что он корректно работает в этой среде. И начиная с этого момента разработчику остается только наблюдать за процессом.</p>
   <p>Администратору промежуточного сервера следует упаковать и перенести код на промежуточный сервер, где с ним будет работать группа контроля качества. Подобно тому как разработчики не должны иметь доступ за пределы сервера разработки, группа контроля качества и пользователи не должны выходить за пределы среды тестирования. Если версия готова к приемочному тестированию, собирайте версию и выкатывайте ее: не предлагайте пользователям «по-быстрому глянуть вот на это» на сервере разработки. Помните, за исключением ситуаций «один воин в поле», на сервере есть код и других авторов, которые могут быть не готовы к показу его пользователям. Ответственный за выпуск версий — единственный человек, у которого должен быть доступ к обоим серверам.</p>
   <p>Ни в коем случае — ни при каких обстоятельствах — разработчик не должен быть допущен к боевому серверу. Если возникнут проблемы, команда поддержки должна либо справиться с ними сама, либо предложить вам внести исправления. Когда вы сохраните исправление в репозиторий, команда поддержки возьмет «заплатку» оттуда. Кое-какие ужаснейшие осложнения на проектах с моим участием возникали из-за того, что кое-кто (<emphasis>догадайтесь, кто</emphasis>) нарушил это правило. Если приложение сломалось, боевой сервер — не место для внесения исправлений.</p>
  </section>
  <section>
   <title>
    <p>Инкапсулируйте поведение, а не только состояние</p>
    <p>Эйнар Ландре</p>
   </title>
   <image l:href="#i_032.jpg"/>
   <p><strong>В теории систем существует концепция изоляции</strong>, которая входит в число наиболее полезных, если речь идет о крупных и сложных системных структурах. В индустрии разработки ПО все хорошо понимают ценность изоляции одной сущности внутри другой, иначе говоря, инкапсуляции. В языках программирования для обеспечения изоляции применяются подпрограммы и функции, модули и пакеты, классы и т. д.</p>
   <p>Модули и пакеты решают задачи инкапсуляции крупного масштаба, в то время как классы, подпрограммы и функции призваны решать те же задачи на более низком уровне. За годы работы я обнаружил, что из всех видов инкапсуляции тяжелее всего программистам дается инкапсуляция в классах. Нередко встречается класс, единственный метод main которого имеет 3000 строк, или же класс, в котором есть только методы set и get для его элементарных атрибутов. Такие примеры показывают, что разработчики этих классов не вполне освоили объектно-ориентированное мышление и не умеют воспользоваться мощью объектов как моделирующих конструкций. Для тех, кто знаком с терминами POJO (Plain Old Java Object — простой Java-объект в старом стиле) и POCO (Plain Old C# Object или Plain Old CLR Object), замечу: изначально они выражали возврат к основам ООП как парадигмы моделирования — понятным и простым, но не тупым объектам.</p>
   <p>Объект инкапсулирует как состояние, так и поведение, причем поведение определяется фактическим состоянием. Возьмем объект «дверь». У него четыре состояния: открыта, закрыта, открывается, закрывается. Он предоставляет две операции: «открыть», «закрыть». В зависимости от состояния операции «открыть» и «закрыть» ведут себя по-разному. Это неотъемлемое свойство объекта делает процесс проектирования концептуально простым. Все сводится к двум простым задачам: назначению и делегированию обязанностей различных объектов, включая и протоколы межобъектного взаимодействия.</p>
   <p>Лучше всего показать, как это работает, на примере. Допустим, у нас есть три класса: Customer (Покупатель), Order (Корзина) и Item (Товар). Объект Customer — естественный источник правил проверки платежеспособности и определения максимальной суммы, доступной для списания. Объект Order знает, какой Customer с ним связан, так что операция addItem (добавитьТовар) делегирует фактическую проверку платежеспособности методу customer.validateCredit(item.price()) (покупатель.проверитьПлатежеспособность(товар.цена())). Если постусловие метода не выполнено, можно сгенерировать исключение и отменить покупку.</p>
   <p>Менее опытные в ООП разработчики иногда решают обернуть все бизнес-правила в один объект, который часто называют OrderManager (МенеджерЗаказов) или OrderService (СлужбаЗаказов). В такой архитектуре объекты Order, Customer и Item, по сути, служат табличными типами. Вся логика выводится из классов и увязывается в одном большом процедурном методе, содержащем множество конструкций <emphasis>if-then-else</emphasis>. В методы такого рода легко вкрадываются ошибки, и сопровождать их почти невозможно. Почему? Потому что инкапсуляция нарушена.</p>
   <p>Заключение напоследок: не нарушайте инкапсуляцию и используйте мощь своего языка программирования, чтобы ее поддерживать.</p>
  </section>
  <section>
   <title>
    <p>Числа с плавающей запятой недействительны</p>
    <p>Чак Эллисон</p>
   </title>
   <image l:href="#i_033.jpg"/>
   <p><strong>Числа с плавающей запятой не являются «действительными числами» </strong>в математическом смысле, хотя в некоторых языках программирования, например в Pascal и Fortran, носят название таковых (real). Действительные числа имеют бесконечную точность, и потому они непрерывны и не подвержены искажениям. Числа с плавающей запятой имеют ограниченную точность, а потому конечны и похожи на «непослушные» целые, так как неравномерно распределены по всему своему диапазону.</p>
   <p>Чтобы проиллюстрировать это, попробуйте присвоить 2147483647 (самое большое 32-разрядное целое со знаком) 32-разрядной переменной типа float (скажем, x), а потом напечатайте его. Вы увидите 2147483648. Теперь напечатайте x - 64. Результат — снова 2147483648. Теперь выведите x - 65, и вы получите 2147483520! Почему? Потому что промежуток между соседними float составляет в этом диапазоне 128, и операции с такими числами округляются до ближайшего числа с плавающей запятой.</p>
   <p>В стандарте IEEE числа с плавающей запятой имеют фиксированную точность и записываются как числа по основанию 2 в научной нотации: 1.d<sub>1</sub>d<sub>2</sub>…d<sub>p1</sub> х 2<emphasis><sup>e</sup></emphasis>, где <emphasis>p</emphasis> — это точность (24 для типа float, 53 для типа double). Интервал между двумя последовательными числами — величина 2<sup>1-</sup><emphasis><sup>p</sup></emphasis><sup>+</sup><emphasis><sup>e</sup></emphasis>, которая хорошо аппроксимируется величиной ε|<emphasis>x</emphasis>|, где ε — <emphasis>машинный эпсилон</emphasis> (2<sup>1-<emphasis>p</emphasis></sup>).</p>
   <p>Зная интервал между соседними числами в окрестности некоторого числа с плавающей запятой, можно избежать классических ошибок в вычислениях. Например, при проведении итеративных вычислений, таких как поиск корня уравнения, нет смысла требовать большей точности, чем способна дать числовая система в окрестности решения. Следите, чтобы затребованная точность не оказалась меньше интервала между числами в окрестности решения, иначе вы войдете в бесконечный цикл.</p>
   <p>Поскольку числа с плавающей запятой — лишь приближения действительных чисел, неизбежно наличие небольшой ошибки. Эта ошибка, называемая <emphasis>ошибкой округления</emphasis>, бывает причиной неожиданных результатов. Например, при вычитании очень близких чисел наиболее значимые цифры погашают друг друга, и тогда в результате положение наиболее значимых занимают те цифры, которые были наименее значимыми (и содержали в себе ошибку округления). В сущности, это непоправимо искажает все последующие вычисления. Такое явление называется <emphasis>размыванием</emphasis> (<emphasis>smearing</emphasis>). Нужно внимательно следить за своими алгоритмами, чтобы предотвратить это <emphasis>катастрофическое явление</emphasis>. Для иллюстрации возьмем решение уравнения <emphasis>x</emphasis><sup>2 </sup><emphasis>- 100000x + 1 = 0</emphasis> по формуле корней квадратного уравнения. Поскольку операнды выражения<emphasis> -b + sqrt(b</emphasis><sup>2</sup><emphasis> - 4)</emphasis> почти равны по величине, можно вместо этого вычислить корень <emphasis>r</emphasis><sub>1</sub> <emphasis>= -b - sqrt(b</emphasis><sup>2</sup><emphasis> - 4)</emphasis>, а затем получить <emphasis>r</emphasis><sub>2</sub> <emphasis>= 1/r</emphasis><sub>1</sub>, так как в квадратном уравнении <emphasis>ax</emphasis><sup>2</sup> <emphasis>+ bx + c = 0</emphasis> корни удовлетворяют соотношению <emphasis>r</emphasis><sub>1</sub><emphasis>r</emphasis><sub>2</sub> <emphasis>= c/a</emphasis>.</p>
   <p>Размывание может происходить и более скрытым образом. Допустим, что библиотека в коде наивно вычисляет <emphasis>e<sup>x</sup></emphasis> по формуле <emphasis>1 + x + x<sup>2</sup>/2 + x<sup>3</sup>/3! +…</emphasis>. Этот способ отлично работает для положительных <emphasis>x</emphasis>, но посмотрите, что произойдет, если <emphasis>x</emphasis> будет большим отрицательным числом. Члены с четными степенями окажутся большими положительными числами, а вычитание значений нечетных степеней почти не скажется на результате. Проблема в данном случае в том, что округление в больших положительных членах происходит в гораздо более значимых позициях, чем у правильного решения. Результат отклоняется к плюс бесконечности! Проблема решается просто: для отрицательных <emphasis>x</emphasis> используйте формулу <emphasis>e<sup>x</sup> = 1/e</emphasis><sup>|</sup><emphasis><sup>x</sup></emphasis><sup>|</sup>.</p>
   <p>Нечего и говорить, что числа с плавающей запятой нельзя использовать в финансовых приложениях — для них в таких языках, как Python и C#, есть классы десятичных чисел. Числа с плавающей запятой предназначены для эффективных научных расчетов. Но эффективность бесполезна, если теряется точность, поэтому помните, откуда идут ошибки округления, и пишите соответствующий код!</p>
  </section>
  <section>
   <title>
    <p>Удовлетворяйте свое честолюбие через Open Source</p>
    <p>Ричард Монсон-Хейфел</p>
   </title>
   <image l:href="#i_034.jpg"/>
   <p><strong>Как правило, программы, которые вы пишете на работе</strong>, не удовлетворяют ваши самые честолюбивые мечты программиста. Может статься, вы разрабатываете ПО для огромной страховой компании, а хотели бы работать в Google, Apple, Microsoft или начать собственный стартап, который совершит следующую революцию. Вы никогда не придете к своей цели, разрабатывая программы для систем, которые вам не интересны.</p>
   <p>К счастью, для вашей проблемы есть решение: open source, то есть проекты с открытым исходным кодом. В мире тысячи проектов с открытым исходным кодом, причем многие весьма активные, в которых программист может получить любой опыт, какой душа пожелает. Если вас влечет идея разработки операционной системы, выберите для себя какой-нибудь из десятка имеющихся проектов операционных систем. Если вы хотите работать над музыкальными программами, приложениями для анимации, криптографии, робототехники, играми для ПК, массовыми онлайн-играми, программами для мобильных телефонов или заниматься чем-то еще, вы почти наверняка найдете по крайней мере один действующий проект с открытым исходным кодом в соответствующей области.</p>
   <p>Разумеется, за все нужно платить. Вам придется пожертвовать своим личным временем, ведь едва ли ваш работодатель позволит вам заниматься разработкой видеоигры с открытым исходным кодом в рабочее время. Кроме того, участие в открытых проектах очень редко приносит доход: некоторые зарабатывают на этом, но большинство — нет. Вы должны быть готовы отказаться от части развлечений (это не смертельно, если вы станете меньше играть в видеоигры или смотреть телевизор). Чем больше труда вы будете вкладывать в проект с открытым исходным кодом, тем быстрее осознаете, где лежат ваши истинные амбиции как программиста. Необходимо также учитывать условия вашего контракта с работодателем — иногда условия контракта ограничивают участие в посторонних проектах даже в личное время. Кроме того, нужно следить за тем, чтобы не нарушать законы об интеллектуальной собственности в отношении авторских прав, патентов, торговых знаков и коммерческой тайны.</p>
   <p>Открытые проекты дают невероятные возможности для мотивированного программиста. Во-первых, вы можете увидеть, каким способом кто-то другой реализует интересные вам вещи: очень многому можно научиться, читая код, написанный другими людьми. Во-вторых, вы можете привнести в проект свой код и свои идеи; не все ваши блестящие идеи будут приняты, но некоторые пройдут. Да и просто решение задач проекта и создание кода позволят вам узнать что-то новое. В-третьих, вы познакомитесь с замечательными людьми, которые настолько же увлечены выбранным вами проектом, насколько и вы. Эта дружба через open source может продлиться до конца жизни. В-четвертых, если вы компетентны в своем деле, то сможете внести свой практический опыт в технологию, которая вам нравится.</p>
   <p>Начать работать в открытых проектах довольно просто. Существует огромный объем документации по инструментам, которые вам понадобятся (системам управления исходным кодом, редакторам, языкам программирования, системам сборки и т. д.). Выберите проект, с которого хотите начать, и изучите инструменты, которые в нем используются. Документация о собственно проектах обычно бывает скудной, но это едва ли имеет большое значение, потому что лучше всего учиться, самостоятельно исследуя код. Для начала можно предложить свою помощь в составлении документации. Либо вызваться написать код для тестирования. Это может выглядеть не столь заманчиво, но написание тестового кода для чужих программ позволяет учиться гораздо быстрее, чем практически все прочие виды программистской деятельности. Пишите тестовый код, действительно хороший тестовый код. Ищите дефекты, предлагайте исправления, заводите друзей, работайте над проектом, который вам нравится, и удовлетворяйте свои честолюбивые программистские желания.</p>
  </section>
  <section>
   <title>
    <p>Золотое правило проектирования API</p>
    <p>Майкл Фезерс</p>
   </title>
   <image l:href="#i_035.jpg"/>
   <p><strong>Проектировать интерфейсы прикладного программирования (API) сложно</strong>, особенно в общем случае. Разрабатывая API, у которого будут сотни или тысячи пользователей, нужно думать о том, что со временем его, скорее всего, придется изменять, и эти изменения способны нарушить работу клиентского кода. Кроме того, нужно учесть возможное воздействие на ваш API со стороны его пользователей. Если класс API вызывает собственный метод, следует помнить, что пользователь способен создать подкласс вашего класса и переопределить этот метод, а это может привести к катастрофе. И вы не сможете изменить этот метод, потому что некоторые ваши пользователи придали ему другой смысл. Вы попадаете в зависимость от своих пользователей в том, что касается выбора внутренней реализации.</p>
   <p>Разработчики API решают эту проблему разными способами, хотя проще всего заблокировать свой API. Скажем, в Java весьма соблазнительной может стать идея навешивать на большинство классов и методов модификатор final. В C#, в свою очередь, классы и методы можно объявить как sealed. В любом языке можно попробовать представить API с помощью синглтона или воспользоваться фабрикой <emphasis>статических </emphasis>методов для защиты от тех, кто попытается переопределить поведение и использовать ваш код способами, которые ограничат ваши возможности в будущем. Все это кажется разумным, но так ли это в действительности?</p>
   <p>За последние 10 лет мы постепенно пришли к пониманию того, что модульное тестирование — крайне важный элемент практики, но этот урок еще не везде усвоен в нашей отрасли. Свидетельств тому предостаточно, и они вокруг нас. Возьмите произвольный непротестированный класс, использующий API стороннего разработчика, и попробуйте написать для него модульные тесты. Скорее всего, у вас возникнут проблемы. Выяснится, что код, использующий API, приклеен к нему намертво. Невозможно эмулировать классы API так, чтобы можно было понять, как взаимодействует с ними ваш код, или обеспечить возврат значений для тестирования.</p>
   <p>Положение со временем улучшится, но только если при проектировании API мы станем рассматривать тестирование как реальный сценарий использования. К сожалению, это несколько сложнее, чем просто тестировать наш код. Здесь уместно вспомнить <strong>золотое правило проектирования API</strong>: <emphasis>недостаточно написать тесты для разрабатываемого API; вы должны написать модульные тесты для кода, использующего ваш API</emphasis>. Следуя этому правилу, вы на собственном опыте узнаете, какие трудности ожидают ваших пользователей, когда они попытаются протестировать свой код самостоятельно.</p>
   <p>Нет какого-то единого решения, облегчающего разработчикам тестирование кода на основе вашего API. Ключевые слова static, final и sealed по сути своей не являются плохими конструкциями. Иногда они бывают полезны. Но важно помнить о проблеме тестирования, а для этого вы должны испытать ее на себе. Как только это сделано, ее можно решать так же, как любую другую проблему проектирования.</p>
  </section>
  <section>
   <title>
    <p>Миф о гуру</p>
    <p>Райан Браш</p>
   </title>
   <image l:href="#i_036.jpg"/>
   <p><strong>Каждому, кто достаточно давно работает в компьютерной отрасли</strong>, приходилось слышать вопросы типа:</p>
   <cite>
    <p>У меня генерируется исключение <emphasis>XYZ</emphasis>. Не знаете ли, в чем проблема?</p>
   </cite>
   <p>Задающие подобные вопросы редко утруждаются тем, чтобы показать трассировку стека, журнал приложения или дать какой-либо контекст, способствующий пониманию проблемы. По-видимому, они считают, что вы мыслите в какой-то другой плоскости, где решения открываются вам без всякого анализа фактов. Они считают вас гуру.</p>
   <p>Мы ожидаем подобных вопросов от людей, не знакомых с программным обеспечением, от тех, кому работа системы кажется практически волшебством. Меня беспокоит, что с этим мы сталкиваемся и в сообществе программистов. Аналогичные вопросы возникают при проектировании программ, например: «Я пишу приложение для управления складом. Следует ли мне использовать оптимистическую блокировку?». Ирония состоит в том, что, как правило, спрашивающий лучше подготовлен к тому, чтобы ответить на вопрос, чем тот, кому он задан. Вопрошающий, вероятнее всего, знает контекст, знает требования и способен прочесть материалы о преимуществах и недостатках тех или иных стратегий. И при этом от вас ждут разумного ответа безо всякого контекста. Они ждут чуда.</p>
   <p>Пора отрасли разработки попрощаться с мифом о гуру. «Гуру» — обычные люди. Они применяют логику и систематически анализируют проблемы так же, как все мы. Они обращаются к приемам быстрого принятия решений и интуиции. Возьмите лучшего программиста, которого вы когда-либо встречали: было время, когда этот человек меньше знал о программировании, чем вы сейчас. Если какой-то человек кажется вам гуру, то лишь благодаря тому, что он годы посвятил учебе и совершенствованию своего мыслительного процесса. «Гуру» — это просто умный человек с неутолимым любопытством.</p>
   <p>Конечно, природные способности людей сильно различаются. Уровень сообразительности, знаний и продуктивности многих живущих на свете хакеров для меня недостижим. Несмотря на это, разрушение мифа о гуру принесет пользу. Например, если я работаю с тем, кто умнее меня, я должен буду проделать рутинную работу и снабдить этого человека достаточным объемом контекста, зная который, он сможет эффективно применить свое мастерство. Избавление от мифа гуру также означает разрушение иллюзорного барьера на пути к совершенствованию. Вместо этого волшебного барьера я буду видеть непрерывный маршрут своего развития.</p>
   <p>Наконец, одной из главных помех в развитии программного проекта являются толковые люди, умышленно распространяющие миф о гуру. Они могут делать это из честолюбия или в расчете повысить собственную значимость в глазах клиентов или работодателей. Ирония в том, что такое поведение может делать толковых людей менее ценными, поскольку они не способствуют профессиональному росту своих коллег. Нам не нужны гуру. Нам нужны специалисты, готовые развивать других специалистов в своей отрасли. Места хватит всем.</p>
  </section>
  <section>
   <title>
    <p>Тяжелый труд не оправдывает себя</p>
    <p>Олве Маудал</p>
   </title>
   <image l:href="#i_037.jpg"/>
   <p><strong>Каждому программисту предстоит убедиться</strong>, что напряженная работа зачастую не оправдывается. Можно вводить себя или своих коллег в заблуждение, будто, задерживаясь в офисе после работы, вы делаете значительный вклад в проект. Но на самом деле, работая меньше, можно достичь большего — иногда ощутимо большего. Если вы стараетесь сосредоточенно и «продуктивно» работать более 30 часов в неделю, вы, скорее всего, перерабатываете. Стоит подумать о том, чтобы уменьшить свою рабочую нагрузку, благодаря чему вы сможете работать эффективнее и сделаете больше.</p>
   <p>Может показаться, что мое утверждение противоречит здравому смыслу и вообще спорно. Однако оно является прямым следствием того факта, что программирование и вообще разработка программного обеспечения требуют непрерывного расширения знаний. По ходу работы над проектом вы станете лучше понимать предметную область и, можно надеяться, найдете более эффективные способы достижения цели. Чтобы не заниматься напрасной работой, необходимо выделять время на изучение результатов того, что делаете, размышлять над увиденным и соответствующим образом корректировать свое поведение.</p>
   <p>Профессиональное программирование обычно мало напоминает бег на дистанцию в несколько километров, где в конце асфальтированной дороги видна цель. Большинство программных проектов можно скорее сравнить со спортивным ориентированием. На марафонскую дистанцию. В темноте. И вместо карты местности лишь набросок от руки. Если вы сорветесь с места и побежите изо всех сил в одном направлении, это может произвести на кого-то впечатление, но таким способом вы едва ли добьетесь успеха. Вы должны двигаться в ровном темпе и корректировать свой курс по мере того, как становится понятнее, где находитесь и куда направляетесь.</p>
   <p>Кроме того, нужно постоянно расширять свои знания о разработке программного обеспечения в целом и приемах программирования в частности. Полезно читать книги, участвовать в конференциях, общаться с другими профессионалами, экспериментировать с новыми технологиями и осваивать мощные инструменты, упрощающие работу. Профессиональный программист должен постоянно следить за прогрессом в своей отрасли — так же как нейрохирург или летчик должны это делать в своей. Вы должны посвящать свободное время (вечера, выходные и праздники) самообразованию, поэтому нельзя тратить свободные вечера, выходные и праздники на сверхурочную работу над текущим проектом. Вы же не ждете, что нейрохирурги будут оперировать по 60 часов в неделю, а летчики по 60 часов в неделю пилотировать? Конечно, нет. Подготовка и образование — важнейшая часть их профессии.</p>
   <p>Сосредоточьтесь на своем проекте, постарайтесь отыскать для него как можно больше интересных решений, совершенствуйте мастерство, обдумывайте свои действия и корректируйте поведение. Не позорьте себя и нашу профессию, действуя как белка в колесе. Профессиональный программист должен знать, что пытаться сосредоточенно и «продуктивно» работать по 60 часов в неделю — дело неразумное. Действуйте профессионально: готовьтесь, осуществляйте, наблюдайте, обдумывайте и корректируйте.</p>
  </section>
  <section>
   <title>
    <p>Как пользоваться системой отслеживания ошибок</p>
    <p>Мэтт Доар</p>
   </title>
   <image l:href="#i_038.jpg"/>
   <p><strong>Как бы вы их ни называли</strong> — <emphasis>баги, дефекты</emphasis> или даже <emphasis>побочные эффекты проектирования,</emphasis> — избавиться от них полностью невозможно. Чтобы проект успешно двигался вперед, очень важно уметь правильно составить отчет об ошибке, а также знать, на что обращать в нем внимание.</p>
   <p>В хорошем отчете об ошибке должны быть описаны три вещи:</p>
   <p>• Как воспроизвести ошибку — максимально точно — и как часто при этом проявляет себя ошибка.</p>
   <p>• Что должно было произойти — как вам это видится.</p>
   <p>• Что фактически происходит — хотя бы те данные, которые вы смогли зафиксировать.</p>
   <p>Объем и качество предоставленной информации в такой же мере характеризует составителя отчета, как и саму ошибку. Короткий злой отчет («Эта функция — отстой!») мало что сообщает разработчикам помимо того, что у вас было плохое настроение. Отчет, содержащий подробные сведения о контексте происшедшего, облегчает воспроизведение ошибки и вызывает уважение у всей команды, даже если ошибка задерживает выпуск версии.</p>
   <p>Отчет об ошибке похож на беседу, и всю ее, с самого начала, может видеть каждый. Не перекладывайте вину на других и не отрицайте само существование ошибки. Лучше попросите дать дополнительную информацию или подумайте, что вы могли упустить.</p>
   <p>Изменение состояния ошибки, например с <emphasis>открыта </emphasis>на <emphasis>закрыта</emphasis>, является публичным заявлением вашего мнения об ошибке. Не жалейте времени, чтобы сразу объяснить, почему посчитали возможным закрыть данную ошибку. Так вы избавите себя в будущем от долгих и утомительных объяснений с недовольными менеджерами и клиентами. Изменение приоритета ошибки также является публичным заявлением, и если ошибка кажется тривиальной лично вам, для кого-то другого она может оказаться поводом прекратить пользоваться продуктом.</p>
   <p>Не перегружайте поля отчета информацией, необходимой лично вам. Пометка «ВАЖНО:» в заголовке отчета, возможно, облегчит вам сортировку результатов определенного отчета об ошибках, но в конце концов и другие начнут копировать эту пометку, причем обязательно с опечатками. А может быть, ее потребуется удалить и применить для другого отчета. Лучше использовать новое значение или новое поле и описать, как оно используется, чтобы другим не пришлось повторяться.</p>
   <p>Сделайте так, чтобы каждый знал, над какими именно ошибками должна работать команда. Обычно для этих целей применяется общедоступный запрос с очевидным наименованием. Убедитесь, что этот запрос одинаков для всех, а если необходимо изменить его, обязательно известите команду о том, что план работы меняется.</p>
   <p>Наконец, помните, что обнаруженная ошибка <emphasis>не является</emphasis> стандартной единицей измерения труда, точно так же как число строк кода — точной оценкой потраченных усилий.</p>
  </section>
  <section>
   <title>
    <p>Улучшайте код, удаляя его</p>
    <p>Пит Гудлиф</p>
   </title>
   <image l:href="#i_027.jpg"/>
   <p><strong>Меньше — значит больше</strong>. Это избитая короткая максима, но иногда она действительно верна.</p>
   <p>За последние несколько недель в числе проведенных мною улучшений нашего кода было удаление некоторых его фрагментов.</p>
   <p>Мы создавали проект, следуя принципам экстремального программирования, в том числе YAGNI (You Aren’t Gonna Need It — Вам это не понадобится). Но человеческая природа несовершенна, и в некоторых местах мы допустили промахи.</p>
   <p>Я заметил, что нашему продукту требовалось неоправданно много времени, чтобы выполнять некоторые задачи — простые задачи, которые должны были бы выполняться почти мгновенно. Все потому, что мы излишне усложнили их реализацию — разного рода фенечками и бантиками, которые фактически не требовались, но в какой-то момент казались полезными.</p>
   <p>Итак, я упростил код, повысил производительность продукта и уменьшил уровень глобальной энтропии кода, и все благодаря удалению из кода проекта лишних функций. К счастью, мои модульные тесты помогли мне убедиться, что в результате своих действий я ничего не сломал.</p>
   <p>Вот такой простой и весьма приятный опыт.</p>
   <p>Но откуда же возник этот ненужный код? Почему один из программистов вдруг решил написать лишнего и почему это не вскрылось во время рецензирования (code review) или парного программирования? Почти наверняка дело обстояло так:</p>
   <p>• Эти дополнительные функции были интересны программисту, и он с удовольствием их написал. (<emphasis>Совет: Пишите полезный код, а не прикольный код.</emphasis>)</p>
   <p>• Кто-то решил, что это может понадобиться в будущем, так почему не написать код сразу. (<emphasis>Совет: Это противоречит YAGNI. Не пишите прямо сейчас то, что прямо сейчас не нужно</emphasis>.)</p>
   <p>• «Излишество» не выглядело столь уж большим, и проще было сходу реализовать эту функцию, чем обращаться к клиенту и выяснять, нужна ли она ему. <emphasis>(Совет: Писать и сопровождать лишний код всегда дольше. Да и клиент — славный малый. Маленький кусочек лишнего кода со временем разрастается, как снежный ком, в огромный кусок работы по сопровождению.)</emphasis></p>
   <p>• Чтобы оправдать дополнительную функцию, программист придумал новые требования, которых не было ни в документации, ни на обсуждениях. Фактически это поддельные технические требования. (<emphasis>Совет: Требования к системе устанавливаются не программистами, а заказчиком</emphasis>.)</p>
   <p>Так над чем вы сейчас работаете? Это действительно нужно?</p>
  </section>
  <section>
   <title>
    <p>Установи меня!</p>
    <p>Маркус Бэйкер</p>
   </title>
   <image l:href="#i_039.jpg"/>
   <p><strong>Мне нисколько не интересна ваша программа</strong>.</p>
   <p>У меня полно своих проблем и длиннющий список задач. На ваш сайт я зашел лишь благодаря непроверенным слухам, будто ваша программа решит все мои проблемы. Уж простите мне мое недоверие.</p>
   <p>Если исследования движения взгляда верны, я уже прочел заголовок и шарю по странице в поисках синей подчеркнутой ссылки <emphasis>Загрузить сейчас</emphasis>. Кстати, если я зашел на эту страницу из браузера, работающего под Linux, и мой IP принадлежит Великобритании, то можно предположить, что мне нужна версия для Linux с зеркала в Европе, так что об этом, пожалуйста, не спрашивайте. Я так понимаю, что диалоговое окно загрузки файла откроется сразу, так что я отправлю эту штуку в свою папку для загруженных файлов и продолжу чтение.</p>
   <p>Выполняя любое действие, человек анализирует соотношение затрат и выгоды. Если ваша программа хоть на секунду упадет ниже приемлемого для меня качества, я тут же ее выброшу и найду что-то другое. Немедленное вознаграждение — вот в чем сила.</p>
   <p>Первый барьер — <emphasis>установка</emphasis>. Думаете, невелика беда? Так загляните в свою папку загруженных файлов. Полно файлов <emphasis>.tar</emphasis> и <emphasis>.zip</emphasis>, верно? Какую часть из них вы распаковали? Сколько установили? У меня, например, лишь третья часть из них служит чем-то, кроме балласта для жесткого диска.</p>
   <p>Даже если я хочу получить обслуживание на дому, я не желаю, чтобы вы входили в мой дом без приглашения. Прежде чем набрать команду <strong>install</strong>, я бы хотел точно знать, где вы собираетесь размещать свои данные. Это мой компьютер, и я хочу по возможности соблюдать на нем порядок. Я хочу также иметь возможность удалить вашу программу в ту же секунду, как я разочаруюсь в ней. Заподозрив, что это невозможно, я просто не буду ее устанавливать. Моя машина работает стабильно, и я хочу, чтобы так было и впредь.</p>
   <p>Если у вашей программы графический интерфейс, я хотел бы выполнить какую-нибудь простую задачу и увидеть результат. «Мастера» тут не помогут, потому что они делают какие-то вещи, которых я не понимаю. Весьма вероятно, что я захочу прочесть или записать файл. Я не хочу создавать проект, импортировать каталоги или сообщать вам свой электронный адрес. Если все работает, переходим к учебнику (tutorial).</p>
   <p>Если ваше программное обеспечение — библиотека, я продолжаю читать вашу веб-страницу в поисках краткого руководства для начинающих. Мне нужно что-то вроде «Hello, World» в пяти незамысловатых строках кода, и чтобы результат был точно таким, как описывает ваш веб-сайт. Никаких огромных файлов XML или шаблонов, которые нужно заполнить, — лишь один файл с исходным кодом. Не забывайте, я загрузил еще и продукт вашего конкурента. Ага, того самого, который на всех форумах твердит, насколько его продукт лучше вашего. Если все работает, переходим к учебнику.</p>
   <p>У вас ведь есть учебник, да? На понятном мне языке?</p>
   <p>И если в учебнике говорится о моей проблеме, я приободряюсь. Теперь, когда я читаю о том, что я смогу делать, мне становится интересно и даже увлекательно. Я откидываюсь в кресле и прихлебываю чай — я ведь уже говорил, что живу в Великобритании? Теперь я поиграю с вашими примерами и попробую научиться пользоваться вашим творением. Если оно решит мои проблемы, я пошлю вам благодарственное письмо. Я буду также посылать сообщения об ошибках, когда приложение падает, и предложения по новым функциям. Я даже расскажу своим друзьям, что ваша программа лучше других, даже если не пробовал программы ваших конкурентов. И все потому, что вы с таким вниманием отнеслись к моим первым робким шагам.</p>
   <p>И как только я мог усомниться в вас?</p>
  </section>
  <section>
   <title>
    <p>Межпроцессная коммуникация влияет на время отклика приложения</p>
    <p>Рэнди Стэффорд</p>
   </title>
   <image l:href="#i_040.jpg"/>
   <p><strong>Время отклика имеет критическое значение для эргономики программ</strong>. Мало что так раздражает, как ожидание ответа программной системы, особенно если взаимодействие с ней состоит из повторяющихся циклов воздействия и отклика.<a l:href="#n_14" type="note">[14]</a> Возникает ощущение, будто программа крадет у вас время и снижает продуктивность. Однако причины замедленного отклика программисты осознают не всегда, особенно в современных приложениях. В литературе, посвященной контролю производительности, по-прежнему много внимания уделяется структурам данных и алгоритмам, то есть вопросам, способным оказывать влияние на производительность в некоторых случаях, но едва ли в современных многоуровневых приложениях корпоративного уровня.</p>
   <p>Мой опыт показывает, что когда в таких приложениях возникает проблема производительности, поиски ее решения следует начинать не с изучения структур данных и алгоритмов. Время отклика больше всего зависит от количества взаимодействий между удаленными процессами (interprocess communications, IPC), осуществляемых в ответ на воздействие. Да, встречаются и другие локальные узкие места, но число взаимодействий между удаленными процессами обычно имеет решающее значение. Каждое взаимодействие между удаленными процессами добавляет некоторую ненулевую задержку в общее время отклика, и эти отдельные добавки суммируются, особенно если возникают последовательно.</p>
   <p>Каноническим примером служит пульсирующая нагрузка в приложениях, использующих объектно-реляционное отображение (ORM). Пульсирующая нагрузка описывает последовательное выполнение множественных обращений к базе данных для чтения данных, необходимых для построения графа объектов (см. шаблон Lazy Load<a l:href="#n_15" type="note">[15]</a> в книге Мартина Фаулера «Patterns of Enterprise Application Architecture»,<a l:href="#n_16" type="note">[16]</a> Addison-Wesley Professional). Когда клиентом базы данных является сервер приложений промежуточного уровня (middle-tier), который компонует веб-страницу, обращения к базе данных обычно происходят последовательно в едином потоке. Их периоды ожидания суммируются, образуя суммарное время отклика. Даже если каждое обращение к базе данных длится всего 10 мс, страница, требующая 1000 обращений (что не редкость), появится с задержкой не менее чем в 10 секунд. Другими примерами могут служить обращение к веб-службам, HTTP-запросы веб-браузера, вызов распределенных объектов, шаблон связи «запрос-ответ» и взаимодействие с таблицей данных по специальным сетевым протоколам. Чем больше удаленных IPC требуется для ответа на воздействие, тем большим будет время отклика.</p>
   <p>Существует ряд относительно очевидных и широко известных стратегий сокращения количества взаимодействий между удаленными процессами в расчете на одно воздействие. Одна из таких стратегий заключается в применении принципа бережливости — мы можем оптимизировать интерфейс между процессами, чтобы передавались только те данные, которые нужны непосредственно, а объем взаимодействия был минимален. Другая стратегия — как можно более широкое распараллеливание связей между процессами, чтобы общее время отклика определялось в основном IPC с наибольшей задержкой. Третья стратегия — кэшировать результаты предшествующих IPC, чтобы в будущем вместо IPC использовать обращение к локальному кэшу.</p>
   <p>Проектируя приложение, следите за количеством взаимодействий между процессами, происходящих в ответ на каждое воздействие. Анализируя приложения с низкой производительностью, я часто сталкивался с тем, что отношение количества IPC к воздействию составляет 1000:1 и больше. Сокращение этого отношения путем кэширования, распараллеливания или других приемов даст значительно больший эффект, чем изменение структуры данных или модификация алгоритма сортировки.</p>
  </section>
  <section>
   <title>
    <p>Сборка должна быть чистой</p>
    <p>Йоханнес Бродуолл</p>
   </title>
   <image l:href="#i_041.jpg"/>
   <p><strong>Приходилось ли вам видеть список предупреждений компилятора </strong>(warnings) размером с очерк на тему, как не стоит писать код, и думать при этом: «Конечно, с этим надо что-то делать… только сейчас у меня нет на это времени»? И наоборот, случалось ли вам увидеть единственное предупреждение, появившееся во время компиляции, и тут же исправить его?</p>
   <p>Когда я начинаю новый проект с нуля, нет никаких предупреждений, нет беспорядка, нет проблем. Но объем кода растет, и, если не принять меры, не исключено, что беспорядок, хлам, предупреждения и проблемы начнут постепенно накапливаться. В большом потоке «шума» значительно тяжелее отыскать действительно важное предупреждение среди сотен других, которые мне не интересны.</p>
   <p>Чтобы предупреждения снова стали полезными, я стараюсь придерживаться политики полной недопустимости предупреждений во время сборки. Даже если предупреждение несущественно, я его устраняю. Если оно не критично, но все же относится к делу, я исправляю код. Если компилятор сообщает об опасности исключения с нулевым указателем, я исправляю источник этой опасности, даже если «знаю», что в реальной обстановке эта проблема никогда не возникнет. Если встроенная в код документация (Javadoc или ее аналог) ссылается на параметры, которые удалены или переименованы, я исправляю документацию.</p>
   <p>Если мне не интересно предупреждение и оно совсем несущественное, я советуюсь с командой, не изменить ли нам политику выдачи предупреждений. Например, я считаю, что документирование параметров и возвращаемого значения метода во многих случаях не приносит никакой пользы, и нет нужды выводить предупреждение об их отсутствии. Или вот еще: при переходе на новую версию языка программирования могут появиться предупреждения в коде — там, где их раньше не было. Например, когда в Java 5 появились обобщения (generics), старый код, не обозначавший типы параметров обобщений, запестрил предупреждениями. Мне не нужны такие назойливые предупреждения (пока, во всяком случае). Предупреждения, не согласованные с реальностью, бесполезны.</p>
   <p>Обеспечив неизменно чистую сборку, я уже не должен при рассмотрении каждого предупреждения решать, существенно оно или нет. Проигнорировать что-либо — это тоже работа мысли, а я стараюсь избавляться от всей лишней мыслительной работы. Благодаря чистой сборке мне легче передать свою работу другому человеку. Если я оставлю все эти предупреждения, кому-то другому придется разбираться с ними и решать, какие из них важны, а какие нет. А еще вероятнее, что этот новый человек просто проигнорирует все предупреждения, включая существенные.</p>
   <p>Предупреждения во время сборки полезны. Нужно лишь избавиться от бесполезного шума, чтобы начать извлекать пользу. Не откладывайте это до «генеральной уборки» кода. Если что-то начинает мозолить глаза, разберитесь с этим сразу же. Нужно либо исправить источник предупреждения, либо подавить его вывод, либо изменить политику вывода предупреждений вашей среды разработки. Чистая сборка нужна не только для проверки ошибок компиляции и «упавших» тестов. Предупреждения — важная и неизбежная часть поддержания гигиены кода.</p>
  </section>
  <section>
   <title>
    <p>Умей пользоваться утилитами командной строки</p>
    <p>Кэрролл Робинсон</p>
   </title>
   <image l:href="#i_042.jpg"/>
   <p><strong>Сегодня многие средства разработки программного обеспечения </strong>поставляются в виде <emphasis>интегрированных сред разработки</emphasis> (IDE). Помимо двух популярных примеров — Visual Studio от Microsoft и Eclipse от сообщества открытых проектов — существует и множество других. В пользу IDE можно сказать многое. Ими легко пользоваться и они избавляют программиста от необходимости вникать во множество мелких деталей, включая процесс сборки.</p>
   <p>Однако легкость использования имеет свой недостаток. Обычно инструментом легко пользоваться, когда он принимает решения за программиста и автоматически проделывает большой объем работы за кулисами. Поэтому если в качестве среды программирования вы используете только IDE, вполне возможно, вы никогда до конца не поймете, что фактически делают ваши инструменты. Жмете на кнопку, творится волшебство, и в папке вашего проекта появляется исполняемый файл.</p>
   <p>Работая с инструментами в командной строке, вы гораздо больше узнаете о том, что делают ваши инструменты во время сборки проекта. Составление собственных <emphasis>make</emphasis>-файлов поможет осмыслить все этапы сборки исполняемого файла (компиляция, ассемблирование, компоновка и т. д.). Эксперименты с многочисленными ключами командных строк этих инструментов — ценная и познавательная практика. Начать работу с инструментами командной строки для сборки можно со средств командной строки с открытым исходным кодом, таких как GCC, или тех, что поставляются в составе вашей коммерческой IDE. В конце концов, правильно спроектированная IDE — это всего лишь графический интерфейс к набору инструментов командной строки.</p>
   <p>Так вы обретете лучшее понимание процедуры сборки. Кроме того, определенные задачи в командной строке выполняются проще и эффективнее, чем в IDE. Например, возможности поиска и замены таких утилит, как <emphasis>grep</emphasis> и <emphasis>sed</emphasis>, зачастую превышают аналогичные функции IDE. Инструменты командной строки ориентированы на сценарное выполнение задач, что позволяет автоматизировать, например, выполнение ежедневной сборки в заданное время, создание нескольких версий проекта и прогон наборов тестов. В IDE автоматизация такого рода может быть затруднена (или вообще невозможна), потому что параметры сборки обычно указываются через диалоговые окна GUI, а процедура сборки запускается щелчком мыши. Если вы никогда не выходили за рамки IDE, то, возможно, не догадываетесь о возможности автоматизации таких задач.</p>
   <p>Минуточку. Разве IDE существуют не для того, чтобы облегчить разработку и повысить продуктивность программиста? Что ж, все так. Я вовсе не предлагаю прекратить пользоваться IDE. Просто вам следует заглянуть «под капот» и понять, какие задачи IDE выполняет за вас. И наилучший способ это сделать — научиться применять инструменты командной строки. После этого, вернувшись к своей IDE, вы гораздо лучше будете понимать, что она за вас делает и как можно управлять процессом сборки. С другой стороны, освоив работу с инструментами командной строки и познав их мощь и гибкость, вы, возможно, предпочтете пользоваться командной строкой вместо IDE.</p>
  </section>
  <section>
   <title>
    <p>Как следует изучи более двух языков программирования</p>
    <p>Рассел Уиндер</p>
   </title>
   <image l:href="#i_043.jpg"/>
   <p><strong>Психология программирования</strong>: давно уже известно, что профессионализм программиста непосредственно зависит от количества различных парадигм программирования, которыми он владеет — не просто что-то слышал и знает о них, но умеет реально использовать их в работе.</p>
   <p>Каждый программист начинает с какого-то одного языка. Этот язык оказывает преобладающее влияние на то, как программист видит программное обеспечение. Но каким бы долгим ни был опыт работы программиста с этим языком, если он работает только с ним одним, то и будет знать только этот язык. Мышление программиста, знающего лишь один язык, ограничено возможностями этого языка.</p>
   <p>Программист, изучающий второй язык, встретится с трудностями, особенно если вычислительная модель второго языка отличается от первого. C, Pascal, Fortran — все они основаны на одной вычислительной модели. Переход с Fortran на C вызывает некоторые трудности, но их не так много. Переход с C или Fortran на C++ или Ada сопровождается фундаментальными трудностями с пониманием поведения программ. Переход с C++ на Haskell означает существенные изменения, а потому существенные трудности. Переход с языка C на Prolog станет весьма существенным испытанием.</p>
   <p>Можно перечислить некоторые парадигмы вычислений: процедурная, объектно-ориентированная, функциональная, логическая, парадигма потоков данных и т. д. Переход между этими парадигмами создает наибольшие трудности.</p>
   <p>Чем полезны такие трудности? Здесь играют роль наши представления о реализациях алгоритмов, а также идиомах и шаблонах этих реализаций. В частности, взаимное обогащение идеями лежит в основе достижения мастерства. Идиомы решения задач, применимые в одном языке, могут оказаться недоступны в другом. Пытаясь перенести идиомы из одного языка в другой, мы начинаем лучше понимать оба эти языка и задачу, которую решаем.</p>
   <p>Взаимное обогащение при использовании разных языков программирования дает мощнейшие эффекты. Пожалуй, наиболее очевидным из них является все растущее применение декларативных режимов описания в системах, реализованных посредством императивных языков. Любой знаток функционального программирования может легко применить декларативный подход, даже при работе с таким языком, как C. Применение декларативных методов обычно приводит к созданию более коротких и понятных программ. Скажем, C++ определенно выступает за такой подход, обеспечивая всестороннюю поддержку обобщенного (generic) программирования, в котором декларативный режим описания является почти обязательным.</p>
   <p>Как следствие всего сказанного выше каждому программисту надлежит уметь хорошо программировать хотя бы в двух разных парадигмах, а в идеале хотя бы в перечисленных пяти. Программист всегда должен стремиться к освоению новых языков, предпочтительно с незнакомыми ему парадигмами. Даже если в своей повседневной работе он неизменно использует один и тот же язык программирования, нельзя недооценивать то более искусное применение этого языка, которое станет возможным благодаря идеям из других парадигм. Работодателям следует это учесть и закладывать в бюджет обучение сотрудников языкам, которые в данное время на проектах не используются, как средство научить работников более искусно применять те языки, которые реально используются.</p>
   <p>Неделя начального курса — это хорошо, но не достаточно для изучения нового языка. Чтобы приобрести рабочие навыки применения языка, обычно нужно потратить несколько месяцев хотя бы факультативно. Важно практическое освоение идиом, а не просто изучение синтаксиса и вычислительной модели.</p>
  </section>
  <section>
   <title>
    <p>Знай свою IDE</p>
    <p>Хейнц Кабуц</p>
   </title>
   <image l:href="#i_044.jpg"/>
   <p><strong>В восьмидесятые годы среда программирования</strong>, как правило, не сильно отличалась от текстового редактора с наворотами — в лучшем случае. Это сегодня мы воспринимаем подсветку синтаксиса как нечто само собой разумеющееся, а в то время она была роскошью, доступной далеко не каждому. Средства форматирования кода существовали в виде внешних инструментов, применение которых корректировало расстановку пробелов. Отладчики тоже «жили» отдельно как программы для пошагового выполнения кода, и для работы с ними требовалось знать массу загадочных сочетаний клавиш.</p>
   <p>В девяностые годы компании начали осознавать потенциал прибыли от более удобных и полезных инструментов разработки. Интегрированная среда разработки (Integrated Development Environment, IDE) объединила уже предлагавшиеся ранее функции редактирования с компилятором, отладчиком, средствами форматирования и другими инструментами. Как раз в это время стали популярны меню и мышь, а значит, отпала надобность заучивать разработчикам сложные комбинации клавиш для работы со своим редактором. Достаточно было выбрать команду из меню.</p>
   <p>В двадцать первом веке IDE настолько распространились, что некоторые компании, нацеленные на доли рынка в других областях, раздают их бесплатно. Современная IDE предлагает множество восхитительных функций. Мне особенно нравится автоматический рефакторинг, в частности функция <emphasis>Extract Method</emphasis>, позволяющая выделить фрагмент кода и сделать из него метод. Средства рефакторинга найдут все параметры, которые нужно передать методу, благодаря чему становится чрезвычайно просто модифицировать код. Моя IDE даже найдет другие фрагменты кода, которые можно заменить вызовом этого метода, и спросит у меня, следует ли это сделать.</p>
   <p>Другая замечательная возможность современных IDE — способность принуждать к соблюдению стиля, принятого в компании. Например, в Java некоторые программисты стали объявлять все параметры final (на мой взгляд, это пустая трата времени). Тем не менее раз такое правило установлено, мне достаточно задать его в настройках IDE, и я стану получать предупреждения для всех параметров, которые не объявлены как final. С помощью правил стиля можно также искать возможные ошибки, такие как проверка равенства автоматически упакованных (autoboxed) объектов посредством ссылочной семантики, как в случае использования оператора == для примитивов, упакованных в соответствующие объекты.</p>
   <p>К сожалению, современные IDE не требуют, чтобы мы прилагали усилия к освоению этих самых IDE. Когда я начал программировать на C под UNIX, мне пришлось потратить немало времени, чтобы научиться работать в редакторе <emphasis>vi</emphasis>, что обусловлено его кривой обучения. Но потраченное на старте время сторицей окупилось с годами. Даже черновик этой статьи набран в <emphasis>vi</emphasis>. У современных IDE кривая обучения такая, что мы никогда не выходим за пределы базовых приемов работы с ними.</p>
   <p>Первое, что я делаю при изучении IDE, — запоминаю управляющие сочетания клавиш. Когда я набираю код, пальцы лежат на клавиатуре, и нажатие <emphasis>Ctrl+Shift+I</emphasis> позволяет встроить переменную (операция рефакторинга <emphasis>Inline Variable</emphasis>), не нарушая рабочего потока, тогда как навигация по меню указателем мыши отвлекла бы меня. Такие отвлечения создают ненужные переключения контекста и значительно снижают мою продуктивность, если я пытаюсь делать все «ленивым» образом. То же справедливо в отношении владения клавиатурой: освойте печать вслепую, и вы не пожалеете о потраченном времени.</p>
   <p>Наконец, у программистов есть проверенные временем конвейерные UNIX-утилиты, позволяющие манипулировать кодом различными способами. Например, если при рецензировании кода я замечаю, что программисты назвали многие классы одинаково, я легко могу обнаружить эти повторения с помощью утилит <emphasis>find, sed, sort, uniq</emphasis> и <emphasis>grep</emphasis>, например:</p>
   <p><code>find. -name ”*.java” | sed ’s/.*\///’ | sort | uniq — c | grep — v ”~ *1 " | sort — r</code></p>
   <p>Мы ожидаем, что посетивший нас сантехник умеет пользоваться паяльной лампой. Давайте же потратим немного времени и поучимся более эффективно работать со своими IDE.</p>
  </section>
  <section>
   <title>
    <p>Знай свои возможности</p>
    <p>Грег Колвин</p>
   </title>
   <epigraph>
    <p>Нужно знать предел своих возможностей.</p>
    <text-author>«Грязный Гарри»</text-author>
   </epigraph>
   <image l:href="#i_045.jpg"/>
   <p><strong>Ваши ресурсы ограничены. </strong>Отведенные на выполнение работы время и деньги определены конкретно, в том числе время и деньги, необходимые для поддержания ваших знаний, навыков и инструментов на современном уровне. Существует предел интенсивности, скорости, изобретательности и длительности для вашей работы. Возможности ваших инструментов ограничены. Мощность машин, для которых вы пишете программы, ограничена. Поэтому вы должны учитывать пределы своих ресурсов.</p>
   <p>Как учесть эти границы? Нужно знать себя, своих сотрудников, свой бюджет и свою технику. Инженеру-программисту нужно знать пространственно-временную сложность своих структур данных и алгоритмов, архитектуру и показатели производительности своих систем. Ваша задача — создать оптимальное сочетание программного обеспечения и систем.</p>
   <p>Пространственная и временная сложность задаются в виде функции <emphasis>О(f(n))</emphasis>, где <emphasis>n</emphasis> равно размеру входных данных. Эта функция определяет асимптотическое поведение памяти или времени для <emphasis>n</emphasis>, стремящегося к бесконечности. Важные классы сложности для <emphasis>f</emphasis>(<emphasis>n</emphasis>) — это <emphasis>ln</emphasis>(<emphasis>n</emphasis>), <emphasis>n, n In</emphasis>(<emphasis>n</emphasis>), <emphasis>ne</emphasis> и <emphasis>e<sup>n</sup></emphasis>. Как ясно видно из графиков этих функций, когда <emphasis>n</emphasis> растет, <emphasis>O</emphasis>(<emphasis>ln</emphasis>(<emphasis>n</emphasis>)) становится гораздо меньше <emphasis>O</emphasis>(<emphasis>n</emphasis>) и <emphasis>O</emphasis>(<emphasis>n ln</emphasis>(<emphasis>n</emphasis>)), а те, в свою очередь, становятся гораздо меньше <emphasis>O</emphasis>(<emphasis>n<sup>e</sup></emphasis>) и <emphasis>O</emphasis>(<emphasis>e<sup>n</sup></emphasis>). В формулировке Шона Пэрента (Sean Parent): для практически достижимых <emphasis>n</emphasis> все классы сложности близки к функциям констант, линейным либо бесконечным.</p>
   <empty-line/>
   <image l:href="#i_046.jpg"/>
   <p>Анализ сложности осуществляется в терминах некой абстрактной машины, но программы работают на реальных компьютерах. Современные компьютерные системы образуют целые иерархии физических и виртуальных машин, включающие библиотеки времени выполнения для языков программирования, операционные системы, процессоры, кэш-память, оперативную память, жесткие диски и сети. В приведенной таблице показаны пределы времени произвольного доступа к данным и пределы емкости памяти для типичного сервера, подключенного к сети.</p>
   <image l:href="#i_047.jpg"/>
   <p>Заметим, что вариативность памяти и скорости составляет несколько порядков. Для компенсации различий на всех уровнях системы интенсивно применяется кэширование и упреждающий просмотр, но они действенны только тогда, когда доступ предсказуем. Если часто происходят кэш-промахи, система будет тормозить. Например, случайное чтение каждого байта на жестком диске может занять 32 года. Даже случайное чтение каждого байта оперативной памяти может занять 11 минут. Случайный доступ непредсказуем. А что предсказуемо? Зависит от системы, но обычно выигрыш приносят повторный доступ к недавно считанным данным и последовательный доступ к элементам данных.</p>
   <p>Алгоритмы и структуры данных различаются эффективностью использования кэша. Например:</p>
   <p>• Линейный поиск эффективно использует упреждающий просмотр, но требует <emphasis>O</emphasis>(<emphasis>n</emphasis>) сравнений.</p>
   <p>• Двоичный поиск в отсортированном массиве требует всего <emphasis>O</emphasis>(<emphasis>log</emphasis>(<emphasis>n</emphasis>)) сравнений.</p>
   <p>• Поиск по дереву ван Эмде Боаса (van Emde Boas) имеет сложность <emphasis>O</emphasis>(<emphasis>log</emphasis>(<emphasis>n</emphasis>)) и нечувствителен к кэшу.</p>
   <p>Что выбрать? Для окончательного анализа нужны измерения. В таблице ниже показано время поиска в массивах 64-разрядных целых чисел с помощью этих трех методов. На моем компьютере:</p>
   <p>• Линейный поиск составляет конкуренцию другим методам на малых массивах, но проигрывает экспоненциально на больших.</p>
   <p>• Поиск ван Эмде Боаса побеждает без вариантов благодаря схеме предсказуемого доступа.</p>
   <image l:href="#i_048.jpg"/>
  </section>
  <section>
   <epigraph>
    <p>Каждый сам решает, что для него лучше.</p>
    <text-author>— Punch</text-author>
   </epigraph>
   <empty-line/>
   <empty-line/>
  </section>
  <section>
   <title>
    <p>Знай, что сохранишь в репозиторий</p>
    <p>Дэн Берг Джонссон</p>
   </title>
   <image l:href="#i_022.jpg"/>
   <p><strong>Я похлопал трех программистов по плечу </strong>и поинтересовался, чем они заняты. «Я провожу рефакторинг этих методов», — был ответ первого. «Я добавляю кое-какие параметры в эту веб-операцию», — отвечал второй. Третий сказал: «Я работаю над этим сценарием использования».</p>
   <p>Может показаться, что первые двое были поглощены деталями своей работы, и только третий видел картину шире, и его подход лучше. Я поинтересовался, когда и что они собираются поместить в репозиторий, и тут картина резко изменилась. Первые два вполне ясно представляли, какие это будут файлы, и собирались закончить работу примерно в течение часа. Третий сказал: «Предполагаю, что закончу через несколько дней. Наверное, я добавлю некоторые классы и как-то модифицирую службы».</p>
   <p>Дело не в том, что два программиста не обладали цельной картиной происходящего. Они просто выбрали задачи, которые, по их мнению, вели в нужном направлении и могли быть выполнены за пару часов. Покончив с этими задачами, они выберут новую функцию или рефакторинг для работы. Таким образом, они писали свой код, исходя из четко обозначенных задач и имея небольшую, но реалистичную цель.</p>
   <p>Третий программист оказался неспособен провести декомпозицию задачи и работал сразу по всем направлениям. Он не имел представления о том, во что это выльется, и в принципе занимался рискованной работой в надежде, что в какой-то момент у него появится код для записи в репозиторий. Вероятнее всего, написанный на старте этого долгого предприятия код оказался малопригодным для того решения, которое получилось в итоге.</p>
   <p>Как поступили бы первые два программиста, потребуй их задачи более двух часов работы каждая? Поняв, что не рассчитали свои силы, они, скорее всего, отказались бы от внесенных изменений, выбрали задачи помельче и начали все сначала. Продолжай они работу, произошла бы расфокусировка, а в репозиторий попал бы сомнительный код. Лучше отбросить сделанные изменения, но сохранить понимание сути.</p>
   <p>Третий программист, возможно, продолжил бы свои гадания и в отчаянии старался бы сшить из своих заплаток код, который можно сохранить в репозиторий. В конце концов, как же можно выбрасывать внесенные изменения — ведь это будет означать, что вы напрасно трудились! К сожалению, если не выбрасывать такой код, в репозиторий попадает слегка странноватый код, не решающий определенную задачу.</p>
   <p>Бывают моменты, когда даже программисты, которые ориентированы на частое сохранение кода в репозиторий, не могут найти ничего полезного, с чем бы они могли справиться за пару часов. Тогда они переходят в режим написания ненадежного кода и балуются с кодом, но, конечно, выкидывают свои изменения, когда некое озарение возвращает их на путь истинный. Даже такие бессмысленные, на первый взгляд, периоды работы имеют цель: лучше изучить код, чтобы суметь выявить задачу, решение которой принесет немедленную пользу.</p>
   <p>Определите, что сдадите в репозиторий на сей раз. Если не удается завершить задачу, удалите свои изменения и определите новую задачу на основе приобретенного понимания. Займитесь рискованными экспериментами, если это необходимо, но следите за тем, чтобы случайно и незаметно не соскользнуть в режим написания сомнительного кода. Не помещайте в репозиторий плоды рискованных экспериментов.</p>
  </section>
  <section>
   <title>
    <p>Место для больших наборов взаимосвязанных данных — в базе данных</p>
    <p>Диомидис Спинеллис</p>
   </title>
   <image l:href="#i_049.jpg"/>
   <p><strong>Если ваше приложение </strong>должно обрабатывать большой долговечный набор взаимосвязанных элементов данных, можете, не раздумывая, поместить его в реляционную базу данных. В прошлом РСУБД было мало, они были сложными, дорогими в содержании и неуклюжими животными. Эти времена миновали. Сегодня найти РСУБД нетрудно: вполне возможно, что на вашей машине уже установлена РСУБД или даже две. Некоторые весьма продвинутые РСУБД, такие как MySQL и PostgreSQL, доступны в исходном коде, поэтому вопрос о затратах на их покупку больше не стоит. Более того, так называемые «встраиваемые системы баз данных» можно подключать к вашему приложению в виде библиотек, почти не требующих настройки и администрирования; к таким относятся две интересные открытые СУБД, SQLite и HSQLDB. Подобные системы крайне эффективны.</p>
   <p>Если данные вашего приложения не помещаются в ОЗУ системы, индексированная таблица РСУБД будет работать на несколько порядков быстрее, чем ассоциативные массивы библиотеки языка, где узким местом станет загрузка страниц виртуальной памяти. Возможности современных баз данных легко наращиваются по мере роста ваших потребностей. При надлежащем подходе вы сможете масштабировать встроенную базу данных до более крупной базы данных, если это понадобится. Затем вы сможете перейти с бесплатной базы с открытым кодом на коммерческую систему, предлагающую более развитую поддержку или возможности.</p>
   <p>Изучив SQL достаточно хорошо, вы будете с удовольствием создавать приложения, построенные вокруг баз данных. После того как нормализованные данные сохранены в базе, можно легко получать фактическую информацию об этих данных с помощью прозрачно сформулированных запросов SQL; не нужно писать для этого сложный код. Аналогичным образом в такие наборы данных можно вносить сложные изменения при помощи единственной команды SQL. Для разовых модификаций, например при необходимости изменить способ организации хранимых данных, не нужно даже писать код — достаточно запустить приложение прямого SQL-доступа к базе данных. Этот интерфейс позволит также экспериментировать с запросами в обход цикла редактирования-компиляции обычных языков программирования.</p>
   <p>Другое преимущество кода, ориентированного на использование РСУБД, — это поддержка связей между элементами данных. Можно описать <emphasis>ограничения </emphasis>(<emphasis>constraints</emphasis>), обеспечивающие целостность данных, что позволит избежать риска появления висячих ссылок, если вы забудете обновить свои данные в случае с пограничными условиями. Например, ограничение можно сформулировать так, что при удалении пользователя будут удалены и все сообщения, отправленные этим пользователем.</p>
   <p>Можно также в любой момент создавать быстрые связи между хранящимися в базе записями путем простой генерации индекса. Не требуется проводить дорогостоящий и обширный рефакторинг полей класса. Кроме того, когда код построен на основе базы данных, к этим данным могут безопасно обращаться другие приложения. Благодаря этому легко добавить в ваше приложение параллельную обработку и написать отдельные его части с использованием наиболее подходящих языков или платформ. Например, можно написать XML-сервер веб-приложения на Java, некоторые сценарии для аудита — на Ruby, а интерфейс визуализации — с помощью Processing.<a l:href="#n_17" type="note">[17]</a></p>
   <p>Наконец, следует помнить, что РСУБД приложит максимум усилий, чтобы оптимизировать ваши SQL-запросы, благодаря чему вы сможете сконцентрироваться на функциональности своего приложения, а не на тонкой настройке алгоритмов. Более развитые базы данных способны даже использовать преимущества многоядерных процессоров, причем совершенно без вашего участия. По мере совершенствования технологий будет расти и производительность вашего приложения.</p>
  </section>
  <section>
   <title>
    <p>Учите иностранные языки</p>
    <p>Клаус Маркардт</p>
   </title>
   <image l:href="#i_050.jpg"/>
   <p><strong>Программистам нужно общаться</strong>. И общаться много.</p>
   <p>В жизни программиста бывают периоды, когда общение в основном происходит с компьютером — точнее, с выполняемыми на нем программами. Это общение основано на выражении идей в понятном машине виде. Возможность превращать идеи в реальность посредством программ и практически без использования физического вещества по-прежнему вызывает восторг.</p>
   <p>Программист должен бегло владеть языком машины — реальной или виртуальной — и абстракциями, которые можно связать с этим языком с помощью инструментов разработчика. Важно знать много разных абстракций, иначе некоторые идеи очень трудно выразить. Хороший программист должен уметь выходить за пределы повседневной рутины и осознавать, что существуют и другие языки, более выразительные для других задач. В какой-то момент эти знания обязательно окупятся.</p>
   <p>Программистам нужно общаться не только с машинами, но и со своими коллегами. Современный крупный проект — это больше социальное предприятие, чем просто приложение искусства программирования. В нем требуется понять и выразить больше, чем позволяют доступные машинам абстракции. Лучшие из известных мне программистов обычно очень хорошо владеют родным языком, а часто также и другими языками. И это важно не только для общения: умение хорошо говорить на каком-либо языке означает способность ясно мыслить, без чего невозможно абстрагировать задачу. А это тоже часть программирования.</p>
   <p>Общаться приходится не только с машиной, самим собой и коллегами, но и с многими другими связанными с проектом лицами, которые могут не иметь технической подготовки. Они заняты тестированием и контролем качества, развертыванием приложений или маркетингом и продажей. Иногда это конечные пользователи в каком-то офисе (или в магазине, или у себя дома). Необходимо их понимать и знать, с какими проблемами они сталкиваются, а это почти невозможно, если вы не умеете говорить с ними на одном языке — языке их мира, их предметной области. Когда вам кажется, что разговор с ними прошел удачно, они, возможно, так не считают.</p>
   <p>Если вы общаетесь с бухгалтерами, нужно примерно представлять, что такое «учет затрат по местам их возникновения», «вложенный капитал», «чистые активы» и т. п. Если вы беседуете со специалистами по маркетингу или юристами, их жаргон и язык (а значит, миропонимание) должны быть в какой-то мере известны и вам. Всеми этими языками, специфическими для предметной области проекта, должен владеть кто-то из проекта — в идеале программисты. В конечном счете программисты отвечают за практическую реализацию идей посредством компьютеров.</p>
   <p>И конечно, жизнь состоит не только из программных проектов. Как заметил Карл Великий, <emphasis>знать второй язык — значит иметь вторую душу.</emphasis> Вы оцените пользу знания иностранных языков, когда придется общаться со знакомыми за рамками отрасли программной разработки. Поймете, когда лучше слушать, чем говорить. Узнаете, что большая часть общения происходит без слов.</p>
  </section>
  <section>
   <epigraph>
    <p>О чем нельзя говорить, о том следует молчать.</p>
    <text-author>Людвиг Витгенштейн</text-author>
   </epigraph>
   <empty-line/>
  </section>
  <section>
   <title>
    <p>Учитесь делать оценки</p>
    <p>Джованни Аспрони</p>
   </title>
   <image l:href="#i_011.jpg"/>
   <p><strong>Будучи программистом</strong>, вы должны уметь предоставлять своим менеджерам, коллегам и пользователям оценки предстоящей вам работы, чтобы у них было достаточно точное представление о времени, стоимости, технологиях и других ресурсах, необходимых им для достижения своих целей.</p>
   <p>Для проведения надежной оценки необходимо владеть некоторыми приемами. Однако сначала следует разобраться, что собой представляют оценки и для чего они могут быть использованы — как ни странно, многие разработчики и менеджеры плохо в этом разбираются.</p>
   <p>Вот типичный диалог между менеджером проекта и программистом:</p>
   <cite>
    <p><emphasis>Менеджер</emphasis>: Можешь оценить, сколько тебе нужно времени, чтобы разработать функцию <emphasis>X</emphasis>?</p>
    <p><emphasis>Программист</emphasis>: Месяц.</p>
    <p><emphasis>Менеджер</emphasis>: Это слишком долго! У нас есть всего неделя.</p>
    <p><emphasis>Программист</emphasis>: Мне нужно хотя бы три.</p>
    <p><emphasis>Менеджер</emphasis>: Больше двух я тебе дать не могу.</p>
    <p><emphasis>Программист</emphasis>: По рукам!</p>
   </cite>
   <p>В итоге программист предлагает «оценку», приемлемую для менеджера. Но поскольку она как бы сделана программистом, менеджер будет считать, что программист несет за нее ответственность. Для понимания того, что неправильно в этом диалоге, нам нужны три определения: оценки, цели и обязательства:</p>
   <p>• Оценка — это приблизительный подсчет или суждение относительно значения, числа, количества или протяженности чего-либо. Это определение предполагает, что оценка является фактической мерой, основанной на надежных данных и прежнем опыте; мечты и пожелания должны быть исключены при ее расчете. Это определение предполагает также, что оценка приблизительна и не может быть дана точно, например, оценка продолжительности разработки не может составить 234,14 дня.</p>
   <p>• Цель — это описание бизнес-задачи, которую требуется решить, например «система должна поддерживать одновременную работу не менее 400 пользователей».</p>
   <p>• Обязательство — это обещание обеспечить указанную функциональность с определенным уровнем качества к определенному сроку или событию. Например, «функция поиска будет доступна в следующей версии продукта».</p>
   <p>Оценки, цели и обязательства не зависят друг от друга, но цели и обязательства должны основываться на надежных оценках. Как отмечает Стив Макконнелл,<a l:href="#n_18" type="note">[18]</a> «главная задача оценок в программировании — не предсказание результата проекта, а определение реалистичности целей проекта и возможности их достижения при правильном управлении». Таким образом, полученные оценки должны обеспечить возможность надлежащего планирования и управления проектом, что позволит заинтересованным участникам проекта брать обязательства исходя из реалистичных целей.</p>
   <p>В приведенном выше диалоге менеджер в действительности требовал от программиста не оценки, а принятия обязательства в отношении невысказанной цели, которая была в голове этого менеджера. Когда вам в следующий раз предложат сделать оценку, убедитесь, что все стороны хорошо представляют, о чем идет речь, и тогда шансы на успех ваших проектов вырастут. А вот теперь пора освоить несколько приемов…</p>
  </section>
  <section>
   <title>
    <p>Научитесь говорить «Hello, World»</p>
    <p>Томас Гест</p>
   </title>
   <image l:href="#i_051.jpg"/>
   <p><strong>Пол Ли, под ником leep</strong>, более известный под прозвищем Хоппи, слыл местным экспертом по вопросам программирования. Мне потребовалась помощь. Я подошел к его рабочему столу и спросил, не посмотрит ли он вместе со мной кое-какой код.</p>
   <p>«Конечно, — сказал Хоппи, — бери стул». Я осторожно придвинулся, стараясь не опрокинуть пирамиду пустых банок из-под колы, громоздившуюся рядом с ним.</p>
   <p>«Что за код?»</p>
   <p>«В функции в файле», — сказал я.</p>
   <p>«Ладно, посмотрим на эту функцию». Хоппи отодвинул в сторону экземпляр «K&amp;R»<a l:href="#n_19" type="note">[19]</a> и придвинул ко мне клавиатуру.</p>
   <p>«А где IDE?» Выяснилось, что у Хоппи не было IDE, лишь некий редактор, в котором я не умел работать. Он забрал клавиатуру обратно. Несколько нажатий на клавиши, и перед нами предстал файл — довольно большой файл, а затем и функция — довольно большая функция. Он листал ее, пока не добрался до условно выполняемого блока, о котором я хотел спросить.</p>
   <p>«Что здесь произойдет при отрицательном x? — спросил я. — Здесь явно ошибка».</p>
   <p>Все то утро я пытался заставить x принять отрицательное значение, но большая функция в большом файле была частью большого проекта, и меня совершенно измотала необходимость повторно компилировать и повторно запускать свои эксперименты. Может быть, такой эксперт, как Хоппи, просто сообщит мне верный ответ?</p>
   <p>Хоппи признался, что он не вполне уверен в результатах. К моему удивлению, он не потянулся за «K&amp;R». Вместо этого он скопировал блок кода в новый буфер редактора, заново расставил отступы и обернул его в функцию. После этого он написал функцию main, выполнявшую бесконечный цикл, в котором она предлагала пользователю ввести значение, передавала его функции и выводила результат. Он сохранил буфер в виде нового файла <emphasis>tryit.c</emphasis>.</p>
   <p>Все это я мог бы сделать и сам, разве что не так быстро. Но следующий его шаг был очень прост, и в то время такой способ работы был мне совершенно незнаком:</p>
   <p><code>$ cc tryit.c &amp;&amp;./a.out</code></p>
   <p>Надо же! Его программа, придуманная всего за несколько минут до того, работала полным ходом. Мы опробовали несколько значений, и мои подозрения подтвердились (хоть в чем-то я оказался прав!), и <emphasis>лишь затем</emphasis> он дополнительно сверился с соответствующим разделом «K&amp;R». Я поблагодарил Хоппи и ушел, снова стараясь не обрушить его пирамиду банок из-под колы.</p>
   <p>Вернувшись на рабочее место, я закрыл свою IDE. Я так привык работать над большими проектами в рамках больших продуктов, что стал думать, будто именно так и должен работать. А ведь компьютер, предназначенный для решения самых глобальных проблем, может решать и мелкие задачи. Я открыл текстовый редактор и набрал:</p>
   <p><code>#include &lt;stdio.h&gt; int main() {</code></p>
   <p><code>printf("Hello, World\n");</code></p>
   <p><code>return 0;</code></p>
   <p><code>}</code></p>
  </section>
  <section>
   <title>
    <p>Пусть ваш проект говорит сам за себя</p>
    <p>Дэниэл Линднер</p>
   </title>
   <image l:href="#i_052.jpg"/>
   <p><strong>Скорее всего, в вашем проекте имеется система управления версиями</strong>. Весьма вероятно также, что она подключена к серверу непрерывной интеграции, который проверяет корректность проекта с помощью автоматизированных тестов. Это замечательно.</p>
   <p>Можно подключить средства статического анализа кода к серверу непрерывной интеграции и получать метрики кода. Эти метрики сообщают специфические характеристики вашего кода и их изменения во времени. Когда введены метрики кода, всегда имеется красная черта, которую нельзя пересекать. Допустим, что вначале у вас покрыто тестами 20 % кода, и вы не хотите, чтобы эта величина опускалась ниже 15 %. Непрерывная интеграция позволяет следить за всеми этими числами, но все равно вам придется регулярно проверять их значения. Было бы хорошо, если бы проект самостоятельно выполнял эту работу и извещал вас в случае ухудшения ситуации.</p>
   <p>Вам нужно дать своему проекту возможность заговорить. Например, с помощью электронной почты или мгновенного обмена сообщениями. Так вы сможете информировать разработчиков о последних ухудшениях или улучшениях показателей. Но еще более эффективно — материализовать проект в офисе посредством <emphasis>оконечного устройства обратной связи</emphasis> (<emphasis>extreme feedback device, XFD</emphasis>).</p>
   <p>Идея XFD состоит в управлении физическим устройством — например лампой, миниатюрным фонтаном, роботом или даже подключенной к USB пусковой ракетной установкой — на основе результатов автоматического анализа. Когда нарушаются допустимые границы, устройство сообщает об этом, изменяя свое состояние. Если это лампа, она загорится, яркая и беспристрастная. Невозможно пропустить это сообщение, даже если вы уже идете к двери, направляясь домой.</p>
   <p>В зависимости от типа устройства обратной связи вы услышите звук «ломающейся» сборки, увидите красные сигналы некачественного кода или даже почувствуете дурной запах кода. Устройства могут быть установлены в разных офисах, если разработка ведется распределенно. Можно поставить уличный светофор в офисе менеджера проекта и сигнализировать с его помощью, в каком состоянии находится работа. Менеджер проекта это оценит.</p>
   <p>Выбор подходящего вам устройства определяется вашими творческими способностями. Если культура проекта «гиковская», можете попробовать снабдить талисман своей команды радиоуправляемыми игрушками. Если вам нравится более профессиональный подход, попробуйте воспользоваться элегантными дизайнерскими лампами. Поищите вдохновения в Интернете. Все, что подключается к сети или имеет пульт управления, может быть использовано как устройство обратной связи.</p>
   <p>Оконечное устройство обратной связи как бы дает голос вашему проекту. Теперь проект физически живет вместе с разработчиками. Он жалуется на них или хвалит их в соответствии с установленными командой правилами. Такое очеловечивание можно развить далее при помощи программы синтеза речи и пары динамиков. Теперь ваш проект действительно говорит сам за себя.</p>
  </section>
  <section>
   <title>
    <p>Компоновщик не таит в себе никаких чудес</p>
    <p>Уолтер Брайт</p>
   </title>
   <image l:href="#i_053.jpg"/>
   <p><strong>Удручающе часто </strong>(со мной это снова случилось как раз перед написанием этого текста) встречается следующий взгляд программистов на процесс превращения исходного кода на компилируемом языке в статически скомпонованный выполняемый модуль:</p>
   <p>1. Отредактировать исходный код.</p>
   <p>2. Скомпилировать исходный код в объектные файлы.</p>
   <p>3. Происходит волшебство.</p>
   <p>4. Запустить исполняемый файл.</p>
   <p>Шаг 3 — это, конечно, <emphasis>компоновка (linking</emphasis>). Почему же я говорю такие возмутительные вещи? Я занимаюсь технической поддержкой уже не первый десяток лет, и ко мне регулярно приходят с одними и теми же проблемами:</p>
   <p>1. Компоновщик сообщает, что def определен более одного раза.</p>
   <p>2. Компоновщик сообщает, что символ abc не найден (unresolved).</p>
   <p>3. Почему мой исполняемый файл такой большой?</p>
   <p>Затем следует вопрос «Что мне теперь делать?» с вкраплениями слов «вроде бы» и «как-то там», и все это в атмосфере полнейшей озадаченности. Эти «вроде бы» и «как-то там» свидетельствуют о том, что процесс компоновки воспринимается как некое волшебство, понятное только колдунам и чародеям. Процесс компиляции не приводит к формулировкам такого рода, то есть программисты в целом понимают, как работают компиляторы или хотя бы в чем их назначение.</p>
   <p>Компоновщик — это тупая, приземленная и прямолинейная программа. Ее задача — склеить область кода и область данных объектных файлов, соединить ссылки на символы с их определениями, выбросить неразрешенные символы из библиотеки и записать исполняемый файл. Все! Никаких чудес и магии! То, что написание компоновщика является утомительным трудом, обычно связано с декодированием и генерацией файлов, формат которых бывает безобразно сложным, но суть компоновщика от этого не меняется.</p>
   <p>Итак, допустим, что компоновщик сообщает вам, что def определен более одного раза. Во многих языках программирования, включая C, C++ и D, существуют объявления и определения. Объявления обычно помещаются в файлы заголовков, например:</p>
   <p><code>extern int iii;</code></p>
   <p>что генерирует внешнюю ссылку на символ iii. Напротив, определение фактически отводит память для хранения символа, обычно находится в файле реализации и выглядит примерно так:</p>
   <p><code>int iii = 3;</code></p>
   <p>Сколько определений может существовать для каждого символа? Как в фильме «Горец», «в живых останется только один». Что произойдет, если определение iii обнаружится более чем в одном файле реализации?</p>
   <p><code>// Файл a.c </code></p>
   <p><code>int iii = 3;</code></p>
   <p><code>// Файл b.c</code></p>
   <p><code>double iii(int x) { return 3.7; }</code></p>
   <p>Компоновщик сообщит о неоднократном определении iii.</p>
   <p>Определение может быть только одно, более того, оно должно быть обязательно. Если iii появляется только в объявлении, но для него нет определения, компоновщик сообщит о том, что символ iii не найден.</p>
   <p>Чтобы выяснить, почему у исполняемого модуля такой размер, взгляните на файл карты (map), который компоновщик может вывести по запросу. Этот файл содержит перечень всех символов в исполняемом модуле с их адресами. Из него вы узнаете, какие модули были взяты из библиотек и их размеры. Теперь станет ясно, почему так раздулась ваша программа. Часто обнаруживаются библиотечные модули, о подключении которых вы и не догадывались. Чтобы разобраться, временно удалите подозрительный модуль из библиотеки и повторите компоновку заново. Ошибка «неопределенный символ» поможет узнать, кто обращается к этому модулю.</p>
   <p>Хотя не всегда очевидно, почему компоновщик выводит то или иное сообщение, в компоновщиках нет ничего волшебного. Механика проста, а вот в конкретных деталях приходится разбираться каждый раз.</p>
  </section>
  <section>
   <title>
    <p>Долговечность временных решений</p>
    <p>Клаус Маркардт</p>
   </title>
   <image l:href="#i_050.jpg"/>
   <p><strong>Почему мы создаем временные решения?</strong></p>
   <p>Обычно виной тому срочная задача. Бывает, что это внутренняя задача разработчиков — создать недостающий инструмент для цепи разработки. Бывает, что задача внешняя, ориентированная на пользователей, например обходной путь для восполнения отсутствующей функциональности.</p>
   <p>В большинстве систем и команд можно найти модуль, который каким-то образом выделяется в системе. Считается, что это черновой вариант, и его нужно будет впоследствии переделать, потому что он не соответствует стандартам и правилам, по которым живет остальной код. Вам обязательно придется услышать жалобы разработчиков по этому поводу. Причины появления такого кода бывают разными, но основная причина появления на свет промежуточных решений — это их полезность.</p>
   <p>Однако промежуточные решения обладают инертностью (или моментом инерции, если вам так больше нравится). Временное решение уже есть — крайне полезное и всеми принятое, — так что нет острой необходимости создавать что-то взамен. Решая, какие действия более других повысят ценность продукта, заинтересованный участник проекта найдет множество задач, приоритет которых будет выше, чем доведение до ума временного решения. Почему? Потому что временное решение уже есть, оно работает, и оно принято. Единственный его видимый недостаток — оно не соответствует выбранным стандартам и правилам, но, за исключением некоторых нишевых продуктов, это слабый аргумент в пользу изменений.</p>
   <p>Вот так и остается временное решение. Навсегда.</p>
   <p>А если временное решение станет источником проблем, маловероятно, что при починке будет также поставлена задача привести его в соответствие с принятыми стандартами качества. Что же делать? Быстрое промежуточное изменение временного решения часто устраняет проблему и всех устраивает. У него те же достоинства, что и у первоначального временного решения, просто оно… новее.</p>
   <p>Представляет ли это проблему?</p>
   <p>Все зависит от проекта и вашего личного интереса в поддержании стандарта качества готового кода. Если в системе слишком много временных решений, ее энтропия или внутренняя сложность возрастает, а удобство сопровождения снижается. Однако в первую очередь, возможно, следует задавать иной вопрос. Не забывайте, что мы обсуждаем решение. Возможно, вы и сами не рады такому решению — как вряд ли рад ему кто-то другой, — но стимул перерабатывать решение слаб.</p>
   <p>Так что же можно сделать, если это для нас проблема?</p>
   <p>1. Прежде всего, избегать временных решений.</p>
   <p>2. Изменить факторы, влияющие на решение руководителя проекта.</p>
   <p>3. Оставить все, как есть.</p>
   <p>Рассмотрим эти варианты более подробно:</p>
   <p>1. Во многих случаях отказ от временного решения неприемлем. Есть реальная задача, которую необходимо решить, и оказывается, что стандарты слишком жесткие для этого. Можно попробовать изменить стандарты — достойное, хотя и трудоемкое свершение, — но на это уйдет время, а проблему нужно решать прямо сейчас.</p>
   <p>2. Эти факторы коренятся в культуре проекта, а она противится насильственным изменениям. Успеха можно достичь лишь в очень маленьких проектах — особенно когда работаешь один — и если удастся навести порядок, не спрашивая разрешения. Успех возможен и тогда, когда в коде проекта такой беспорядок, что это заметно тормозит работу, и все согласны, что нужно потратить некоторое время на наведение порядка.</p>
   <p>3. Если предыдущий вариант не действует, положение дел сохраняется автоматически.</p>
   <p>Среди множества созданных вами решений некоторые будут временными и в большинстве своем полезными. Лучший способ избавиться от временных решений — это сделать их избыточными, предложив более элегантные и полезные решения. И да пребудет с вами душевный покой, чтобы принять то, что вы не можете изменить, и силы изменить то, что можете, и мудрость, чтобы отличить одно от другого.</p>
  </section>
  <section>
   <title>
    <p>Интерфейсы должно быть легко использовать правильно и трудно — неправильно</p>
    <p>Скотт Мейерс</p>
   </title>
   <image l:href="#i_054.jpg"/>
   <p><strong>Одна из наиболее распространенных задач </strong>в разработке программного обеспечения — это спецификация интерфейса. Интерфейсы существуют на высшем уровне абстракции (интерфейсы пользователя), на низшем (интерфейсы функций) и на промежуточных уровнях (интерфейсы классов, библиотек и т. д.). Независимо от того, чем вы заняты — согласовываете с конечными пользователями их будущее взаимодействие с системой, сотрудничаете с разработчиками, разрабатывая спецификацию API, или объявляете закрытые функции класса, — проектирование интерфейса составляет важную часть вашей работы. Если вы справитесь с ней хорошо, пользоваться вашими интерфейсами будет сплошное удовольствие, а производительность пользователей возрастет. Если вы справитесь с задачей плохо, ваши интерфейсы станут источником разочарований и ошибок.</p>
   <p>Хорошие интерфейсы обладают следующими свойствами:</p>
   <p><emphasis>Их легко использовать правильно</emphasis></p>
   <p>Пользователи хорошо спроектированного интерфейса почти всегда используют его правильно, потому что таков для этого интерфейса путь наименьшего сопротивления. Если это графический интерфейс пользователя, они почти всегда щелкают по нужному значку, кнопке или пункту меню, потому что это действие оказывается наиболее очевидным и простым. Если это интерфейс прикладного программирования, они почти всегда передают вызовам правильные параметры с правильными значениями, делая то, что кажется наиболее естественным. Если интерфейс таков, что им легко пользоваться правильно, <emphasis>все работает само</emphasis>.</p>
   <p><emphasis>Их трудно использовать неправильно</emphasis></p>
   <p>Хорошие интерфейсы учитывают, какие ошибки бывают у пользователей, и мешают их делать, а в идеале вообще этого не позволяют. Например, графический интерфейс пользователя может сделать неактивными или скрыть команды, не имеющие смысла в текущем контексте, а интерфейс прикладного программирования может решить проблему порядка аргументов, разрешив передавать параметры в любой последовательности.</p>
   <p>Хороший подход к проектированию интерфейсов, которыми легко пользоваться правильно, — практиковаться в работе с ними до их создания. Создайте макет графического интерфейса пользователя (например, на доске с маркерами или на основе разложенных на столе листков для заметок) и поиграйте с макетом, прежде чем писать код. Напишите обращения к API, прежде чем объявлять функции. Разберите стандартные сценарии применения и определите, какого поведения ожидаете от интерфейса. По каким элементам в конечном итоге хотелось бы щелкнуть? Какие параметры в итоге хотелось бы передавать? Простые в работе интерфейсы естественны, потому что позволяют делать именно то, что вам нужно. Такие интерфейсы чаще удаются, если разрабатывать их с точки зрения пользователя. (Это одна из сильных сторон разработки через тестирование, TDD.) Чтобы затруднить некорректное использование интерфейса, нужны две вещи. Во-первых, следует предугадывать, какие ошибки могут делать пользователи, и находить способы их предотвращать. Во-вторых, следует понаблюдать за ошибками, которые допускают первые пользователи предварительной версии интерфейса, и модифицировать интерфейс — да-да, модифицировать интерфейс! — с целью воспрепятствовать таким ошибкам. Лучший способ предотвратить некорректное использование — это сделать его невозможным. Если пользователи упорно стараются отменить неотменяемое действие, сделайте это действие отменяемым. Если они постоянно передают интерфейсу прикладного программирования неверное значение, постарайтесь модифицировать этот API, чтобы принимать те значения, которые хотят передать пользователи.</p>
   <p>А самое главное, помните, что интерфейсы существуют для удобства их пользователей, а не их создателей.</p>
  </section>
  <section>
   <title>
    <p>Пусть невидимое станет более видимым</p>
    <p>Джон Джаггер</p>
   </title>
   <image l:href="#i_023.jpg"/>
   <p><strong>Во многих отношениях невидимость </strong>справедливо поощряется как принцип разработки качественного программного обеспечения. В нашем профессиональном языке немало метафор невидимости, таких как прозрачность механизма и инкапсуляция. Программное обеспечение и процесс его разработки могут, если перефразировать Дугласа Адамса (Douglas Adams), оказаться <emphasis>в основном невидимыми</emphasis>:<a l:href="#n_20" type="note">[20]</a></p>
   <p>• Исходный код не обладает врожденным присутствием или врожденным поведением и не подчиняется физическим законам. Его можно увидеть, когда он загружен в редактор, но закройте редактор — и он исчезнет. Если долго над этим думать, то начинаешь сомневаться, существует ли он вообще — как дерево, которое упало, но некому было это услышать.</p>
   <p>• Работающее приложение обнаруживает свое присутствие и поведение, но ничего не сообщает об исходном коде, на основе которого создано. Домашняя страница Google приятно лаконична, но за кулисами, несомненно, скрыто немало серьезного.</p>
   <p>• Если вы сделали 90 % работы и безнадежно увязли в отладке остальных 10 %, то, видимо, нельзя считать, что сделано 90 %? Исправление ошибок — это не движение вперед. Вам не платят за отладку. Отладка — пустая трата времени. Хорошо, если пустая трата времени будет более заметна, чтобы можно было видеть ее реальную цену и, прежде всего, постараться не допускать этого.</p>
   <p>• Если кажется, что ваш проект идет по графику, а через неделю обнаруживается, что он опаздывает на полгода, то у вас есть проблемы, главная из которых, возможно, не в том, что он опаздывает на полгода, а в существовании невидимых силовых полей, способных скрыть полугодовую задержку! Отсутствие видимого прогресса — то же самое, что отсутствие прогресса вообще.</p>
   <p>Невидимость таит в себе опасность. Рассуждение становится яснее, когда есть конкретный предмет для обдумывания. Легче управлять вещами, которые можно видеть, и видеть в непрерывном изменении:</p>
   <p>• При написании модульных тестов вы узнаете, насколько легко проводить модульное тестирование для конкретного модуля кода. Модульное тестирование выявляет присутствие (или отсутствие) качеств, которые желательны для кода, такие <emphasis>как слабая связанность</emphasis> (<emphasis>coupling</emphasis>) и <emphasis>сильная связность</emphasis> (<emphasis>cohesion</emphasis>).</p>
   <p>• Прогон модульных тестов демонстрирует, как ведет себя код. Он позволяет обнаружить присутствие (или отсутствие) характеристик времени выполнения, желательных для приложения, например устойчивости и корректности.</p>
   <p>• С помощью доски и карточек можно сделать прогресс наглядным и конкретным. Можно увидеть, что задачи находятся в состоянии <emphasis>Не начата, В процессе </emphasis>и <emphasis>Завершена</emphasis>, и при этом не придется заходить в неочевидную систему управления проектом и не придется упрашивать программистов составлять фиктивные отчеты о состоянии проекта.</p>
   <p>• Итеративная разработка повышает наглядность прогресса (или его отсутствия), поскольку чаще фиксируются факты того, что разработка ведется. Создание программного обеспечения, готового к выпуску, отражает реальное положение вещей, в отличие от оценок.</p>
   <p>Лучше всего разрабатывать программы, имея многочисленные наглядные показатели. Наглядность дает уверенность в том, что прогресс является реальным, а не вымышленным; спланированным, а не непреднамеренным; воспроизводимым, а не случайным.</p>
  </section>
  <section>
   <title>
    <p>Передача сообщений улучшает масштабируемость параллельных систем</p>
    <p>Рассел Уиндер</p>
   </title>
   <image l:href="#i_043.jpg"/>
   <p><strong>Уже на первых лекциях по информатике программистов учат</strong>, что конкурентные вычисления — и в особенности параллельные как особый подвид конкурентных — вещь трудная, и что лишь лучшим дается надежда справиться с этой задачей, и что даже лучшие не справляются. При этом неизменно уделяется большое внимание потокам, семафорам, мониторам и трудностям организации потоковой безопасности при одновременном доступе к переменным.</p>
   <p>Сложных проблем здесь действительно много, и решать их бывает очень трудно. Но в чем корень проблем? Общая память. Практически все проблемы конкурентных вычислений, о которых постоянно приходится слышать, касаются общей памяти с изменяемыми данными: состояние гонки (race conditions), взаимная блокировка (deadlock), активная блокировка (livelock) и т. п. Кажется, ответ очевиден: забудьте о конкурентности либо держитесь подальше от общей памяти!</p>
   <p>Отказ от конкурентности почти наверняка не вариант. Количество ядер в компьютерах возрастает чуть ли не каждый квартал, поэтому достижение настоящего параллелизма становится все важнее. Мы не можем больше полагаться на непрерывный рост тактовой частоты процессоров как основу производительности приложений. Производительность может вырасти только за счет параллелизма. Конечно, можно не заботиться о производительности приложений, но едва ли это понравится пользователям.</p>
   <p>Так можно ли отказаться от общей памяти? Определенно, да.</p>
   <p>Вместо потоков и общей памяти можно воспользоваться процессами и передачей сообщений. Под <emphasis>процессом</emphasis> здесь понимается защищенное независимое состояние исполняющегося кода, а не обязательно процесс операционной системы. Такие языки, как Erlang (а до него occam), показали, что процессы — весьма удачный механизм программирования конкурентных и параллельных систем. В таких системах меньше проблем синхронизации, чем в многопоточных системах с общей памятью. Кроме того, существует формальная модель взаимодействующих последовательных процессов (Communicating Sequential Processes, CSP), которую можно применять при разработке таких систем.</p>
   <p>Можно пойти дальше и организовать вычисления в виде <emphasis>системы, управляемой потоком данных</emphasis> (<emphasis>dataflow system</emphasis>). В такой системе нет явно запрограммированного потока управления. Вместо этого создается направленный граф операторов, соединенных путями передачи данных, а затем в систему подаются данные. Контроль вычислений осуществляется по готовности данных внутри системы. И никаких проблем синхронизации.</p>
   <p>При этом для системной разработки применяются главным образом такие языки, как C, C++, Java, Python и Groovy, о которых программистам говорят, что они служат для разработки многопоточных систем с общей памятью. Как же быть? Решение в том, чтобы использовать — или создавать, если их не существует, — библиотеки и среды, которые предлагают схемы процессов и пересылки сообщений, полностью исключающие применение общей изменяемой памяти.</p>
   <p>В итоге отказ от общей памяти в пользу передачи сообщений станет, скорее всего, наиболее удачным методом реализации систем, эффективно использующих параллелизм, получивший сегодня повсеместную прописку в компьютерном железе. Занимательно выходит — процессы как единица конкурентного исполнения появились раньше потоков, но в будущем, по-видимому, потоки станут использоваться для реализации процессов.</p>
  </section>
  <section>
   <title>
    <p>Послание потомкам</p>
    <p>Линда Райзинг</p>
   </title>
   <image l:href="#i_055.jpg"/>
   <p><strong>Возможно, дело в том, что в большинстве своем программисты — умные люди</strong>, но за многие годы моего преподавания и тесной совместной работы с ними у меня сложилось впечатление, будто сложность задач, над которыми они бьются, оправдывает для них создание решений столь же сложных (возможно, и для них самих спустя несколько месяцев после написания кода) для понимания и сопровождения.</p>
   <p>Помню один случай с Джо, слушателем моего курса по структурам данных, который пришел показать мне результат своего труда.</p>
   <p>— Держу пари, вы не догадаетесь, что делает этот код! — радостно воскликнул он.</p>
   <p>— Ты прав, — согласилась я, не слишком вглядываясь в его текст и думая, как донести до него важную мысль. — Уверена, ты хорошо потрудился над этим примером. Боюсь, правда, ты упустил нечто важное. Скажи, Джо, у тебя есть младший брат?</p>
   <p>— Да, конечно! Его зовут Фил, и он слушает ваш вводный курс. Он тоже учится программировать! — гордо объявил Джо.</p>
   <p>— Это замечательно, — отвечала я. — Интересно, сможет ли он понять этот код?</p>
   <p>— Ни за что, — сказал Джо, — это сложная штука!</p>
   <p>— Давай предположим, — продолжила я, — что это реальный рабочий код и что через несколько лет Филу предложат работу по внесению изменений в этот код. Что ты сделал для Фила?</p>
   <p>Джо моргал, глядя на меня.</p>
   <p>— Мы знаем, что Фил — толковый парень, верно?</p>
   <p>Джо кивнул.</p>
   <p>— И не хочу хвастаться, но я тоже довольно толковая!</p>
   <p>Джо ухмыльнулся.</p>
   <p>— Итак, мне нелегко понять, что ты тут сделал, и твоему очень способному младшему брату тоже. Скорее всего, придется поломать над этим голову. В таком случае, что можно сказать о написанном тобой коде?</p>
   <p>Как мне показалось, Джо увидел свой код в новом свете.</p>
   <p>— Представим себе дело так, — сказала я, стараясь как можно лучше играть роль доброго наставника. — Каждая строка твоего кода — это послание человеку будущего, которым может оказаться твой младший брат. Попробуй объяснить этому умному человеку, как решить эту трудную задачу. Так ли ты видишь это будущее? Что этот умный программист увидит твой код и воскликнет: «Ничего себе! Как здорово! Мне совершенно понятно, что здесь происходит, и я поражен элегантностью — нет, красотой — этого кода. Надо немедленно показать его коллегам по команде. Это же шедевр!»</p>
   <p>— Джо, можешь ли ты написать код, который решает эту задачу, но притом прекрасен, как песня? Да, как запавшая в память мелодия. Я думаю, что тот, кто сумел найти такое сложное решение, как предложенное тобой сегодня, может также написать что-нибудь красивое. Гм-м… Не начать ли мне выставлять оценки за красоту? Как ты считаешь, Джо?</p>
   <p>Джо забрал свою работу и посмотрел на меня. Легкая улыбка пробежала по его лицу.</p>
   <p>— Я все понял, профессор. Пойду улучшать мир для Фила. Спасибо.</p>
  </section>
  <section>
   <title>
    <p>Упущенные возможности применения полиморфизма</p>
    <p>Кирк Пеппердин</p>
   </title>
   <image l:href="#i_056.jpg"/>
   <p><strong>Полиморфизм — одна из грандиозных идей</strong>, лежащих в фундаменте ООП. Это слово, заимствованное из греческого языка, означает множество (<emphasis>poly</emphasis>) форм (<emphasis>morph</emphasis>). В контексте программирования полиморфизм означает многообразие форм некоторого метода или класса объектов. Но полиморфизм — это не просто альтернативные реализации. Уместное применение полиморфизма создает миниатюрные локализованные контексты исполнения и позволяет обойтись без громоздких блоков <emphasis>if-then-else</emphasis>. Находясь в контексте, мы можем напрямую выполнять нужные действия, тогда как, находясь вне этого контекста, мы вынуждены сначала воссоздать его и лишь затем выполнять нужные действия. Аккуратное использование альтернативных реализаций позволяет выделить контекст, а значит, решить ту же задачу через меньший объем более удобочитаемого кода. Лучше всего продемонстрировать это на примере. Возьмем следующий код для (нереально) простой корзины покупок:</p>
   <p><code>public class ShoppingCart {</code></p>
   <p><code>   private ArrayList&lt;Item&gt; cart = new ArrayList&lt;Item&gt;();</code></p>
   <p><code>   public void add(Item item) { cart.add(item); }</code></p>
   <p><code>   public Item takeNext() { return cart.remove(0); }</code></p>
   <p><code>   public boolean isEmpty() { return cart.isEmpty(); } </code></p>
   <p><code>}</code></p>
   <p>Допустим, некоторые товары в нашем интернет-магазине можно скачать из сети Интернет, а другие требуют доставки. Создадим другой класс, который поддерживает эти операции:</p>
   <p><code>public class Shipping {</code></p>
   <p><code>   public boolean ship(Item item, SurfaceAddress address) {… } </code></p>
   <p><code>   public boolean ship(Item item, EMailAddress address) {… }</code></p>
   <p><code>}</code></p>
   <p>Когда клиент рассчитался, нужно доставить покупки:</p>
   <p><code>while (!cart.isEmpty()) { </code></p>
   <p><code>   shipping.ship(cart.takeNext(), <emphasis>???</emphasis>);</code></p>
   <p><code>}</code></p>
   <p>Параметр <emphasis>???</emphasis> — это не какой-то очередной оператор Элвиса;<a l:href="#n_21" type="note">[21]</a> это неразрешенный вопрос о том, как нужно доставить товар — электронной или обычной почтой. Контекста для ответа на этот вопрос уже нет. Можно было сохранить метод доставки в виде boolean или enum, а затем использовать <emphasis>if-then-else</emphasis>, чтобы заполнить значение недостающего параметра. А другое решение — создать два класса, расширяющих Item. Назовем их DownloadableItem и SurfaceItem. Теперь напишем немного кода. Я сделаю из Item интерфейс, который поддерживает единственный метод ship (доставить). Чтобы доставить содержимое корзины, вызываем item. ship(shipper). Оба класса, DownloadableItem и SurfaceItem, реализуют ship:</p>
   <p><code>public class DownloadableItem implements Item {</code></p>
   <p><code>   public boolean ship(Shipping shipper, Customer customer) {</code></p>
   <p><code>     shipper.ship(this, customer.getEmailAddress());</code></p>
   <p><code>   }</code></p>
   <p><code>}</code></p>
   <p><code>public class SurfaceItem implements Item {</code></p>
   <p><code>   public boolean ship(Shipping shipper, Customer customer) </code><code> {</code></p>
   <p><code>     shipper.ship(this, customer.getSurfaceAddress());</code></p>
   <p><code>   }</code></p>
   <p><code>}</code></p>
   <p>В этом примере мы делегировали ответственность за Shipping (доставку) каждому Item (товару). Поскольку каждый товар знает, как его следует доставлять, такая организация позволяет справиться с доставкой, не прибегая к <emphasis>if-then-else</emphasis>. Этот код также демонстрирует применение двух шаблонов проектирования, которые часто хорошо сочетаются между собой: Command и Double Dispatch. Эффективное применение этих шаблонов основано на правильном использовании полиморфизма. При выполнении этих условий число блоков <emphasis>if-then-else</emphasis> сокращается.</p>
   <p>В некоторых ситуациях гораздо практичнее использовать не полиморфизм, а <emphasis>if-then-else</emphasis>, однако при написании кода в стиле полиморфизма он имеет меньший объем, более удобочитаем и менее хрупок. Количество упущенных возможностей несложно подсчитать — оно совпадает с числом операторов <emphasis>if-then-else</emphasis> в коде.</p>
  </section>
  <section>
   <title>
    <p>Невероятно, но факт: тестировщики — ваши друзья</p>
    <p>Берк Хафнагель</p>
   </title>
   <image l:href="#i_057.jpg"/>
   <p><strong>Сами себя они могут называть </strong><emphasis>контролем качества</emphasis> или <emphasis>обеспечением качества</emphasis>, но многие программисты зовут их просто <emphasis>напастью</emphasis>. Мой опыт показывает, что у программистов часто враждебные отношения с теми, кто тестирует их программы. «Они слишком придирчивы» или «Они хотят, чтобы все было идеально» — вот обычные жалобы. Знакомо, да?</p>
   <p>Не знаю, по какой причине, но у меня всегда был другой взгляд на работу тестировщиков. Может быть потому, что «тестировщиком» на моей первой работе была секретарь фирмы. Весьма приятная дама Маргарет занималась делопроизводством и пыталась научить пару молодых программистов профессиональному поведению в присутствии клиентов. Она также обладала даром в считанные секунды обнаруживать любой дефект программы, даже самый малозаметный.</p>
   <p>В то время я работал над программой, которую написал бухгалтер, считавший себя программистом. Естественно, с ней были большие проблемы. Когда мне казалось, что я исправил какой-то кусок, Маргарет пыталась поработать с ним, и чаще всего после нескольких нажатий на клавиши оказывалось, что программа неправильно работает, но уже каким-то новым образом. Временами это приводило в отчаяние и вызывало неловкость, но Маргарет была настолько приятным человеком, что мне никогда не приходило в голову обвинить ее в моем жалком положении. Наконец, настал день, когда Маргарет смогла без проблем запустить программу, создать счет-фактуру, распечатать ее и выйти из программы. Я испытал восторг. Более того, когда мы установили программу на машине клиента, все заработало правильно. Клиент не столкнулся с проблемами, потому что сначала Маргарет помогла мне обнаружить и исправить эти проблемы.</p>
   <p>Вот почему я говорю, что тестировщики — ваши друзья. Может казаться, будто тестировщики портят вашу репутацию, сообщая о малозначительных проблемах. Но когда клиент в восторге от программы, потому что ему не портят жизнь все эти «досадные мелочи», которые группа контроля качества заставила вас исправить, вы на высоте. Мысль понятна?</p>
   <p>Представьте себе такую ситуацию: вы тестируете программу, использующую «сногсшибательные алгоритмы искусственного интеллекта» для нахождения и исправления проблем с конкурентным доступом. Вы запускаете программу и обнаруживаете, что на заставке слово «интеллект» написано с ошибкой. Несколько дурное предзнаменование, но ведь это лишь опечатка, верно? Затем выясняется, что экран настройки предлагает флажки (checkboxes) вместо переключателей (radiobuttons), а некоторые сочетания клавиш не работают. Все это мелочи, но по мере их накопления вы начинаете задумываться, что за люди создавали программу. Если они неспособны справиться с простыми вещами, каковы шансы, что их искусственный интеллект действительно сумеет найти и исправить такие замысловатые вещи, как проблемы конкурентного доступа?</p>
   <p>Возможно, эти гении настолько погрузились в задачи разработки искусственного интеллекта, что не обратили внимания на мелочевку, а «придирчивых тестировщиков» у них не было, так что вам приходится сталкиваться с этой самой мелочевкой. Однако в результате вы начинаете сомневаться в компетентности этих программистов.</p>
   <p>Следовательно, как ни странно, тестировщики, полные решимости найти все мелкие недостатки вашего кода, в действительности — ваши друзья.</p>
  </section>
  <section>
   <title>
    <p>Один бинарный файл</p>
    <p>Стив Фримен</p>
   </title>
   <image l:href="#i_014.jpg"/>
   <p><strong>Мне приходилось встречать проекты</strong>, где при сборке переписывалась часть кода, чтобы для каждой среды исполнения генерировался собственный бинарный файл. Такой подход всегда излишне усложняет вещи и создает риск появления несовместимых версий при каждой установке. Как минимум при этом собирается несколько почти идентичных экземпляров программы, каждый из которых предназначен для установки в соответствующей ему среде. Возникает слишком много подвижных частей, а значит, больше возможностей для ошибки.</p>
   <p>Однажды я работал в команде, где после каждого изменения свойства нужно было сохранять код и проводить полный цикл сборки, поэтому тестировщики простаивали всякий раз, как находилась малейшая неточность (я уже говорил, что к тому же проект собирался невероятно долго?). Работал я и в такой команде, где системные администраторы требовали полной пересборки программы при вводе ее в эксплуатацию (с помощью наших же сценариев сборки), так что невозможно было гарантировать, что в эксплуатацию попадала та версия, которая прошла тестирование. И так далее.</p>
   <p>Правило простое: <emphasis>создавать единственный бинарный файл, который можно точно идентифицировать и провести через все этапы конвейера выпуска продукта</emphasis>. Все специфические особенности среды исполнения должны оставаться <emphasis>частью среды</emphasis>. Например, их можно хранить в контейнере с компонентами (component container), в заранее согласованном файле или в определенных папках.</p>
   <p>Если во время сборки вашего проекта производятся манипуляции с кодом или настройки целевой среды хранятся в самом коде, значит, приложение было спроектировано недостаточно хорошо: ключевые функции приложения не отделены от функций, определяемых платформой. Или еще хуже: команда знает, как нужно поступить, но не считает внесение нужных изменений достаточно приоритетной задачей.</p>
   <p>Бывают, конечно, исключения: иногда приходится делать сборку для нескольких вариантов целевой среды, в которых ограничения по ресурсам существенно разнятся. Однако это не относится к тем из нас (и таких большинство), кто создает приложения типа «отправить данные из базы данных на экран и обратно». Другой вариант — работа с плохо написанным унаследованным (legacy) кодом, в котором навести порядок сразу слишком тяжело. В таких случаях следует двигаться постепенно, но начинайте это движение как можно раньше.</p>
   <p>И еще одно: храните информацию о среде выполнения в системе управления версиями, как и код. Нет ничего хуже, чем испортить конфигурацию среды и не иметь возможности узнать, какие в нее были внесены изменения. Настройки среды должны храниться в отдельном репозитории, так как они меняются с другой скоростью и по другим причинам, чем код. Некоторые команды используют для этого распределенные системы управления версиями (например, bazaar и git), поскольку в них проще сохранять в репозиторий изменения, сделанные в производственной (production) среде — а они неизбежно случаются.</p>
  </section>
  <section>
   <title>
    <p>Правду скажет только код</p>
    <p>Петер Зоммерлад</p>
   </title>
   <image l:href="#i_058.jpg"/>
   <p><strong>В конечном счете семантика программы </strong>определяется работающим кодом. Если он есть у вас только в виде бинарного файла, его будет непросто прочесть! Однако исходный код, как правило, доступен, если это ваша собственная программа, типичная коммерческая разработка, проект с открытым исходным кодом или программа на динамически интерпретируемом языке. При чтении исходного кода смысл программы должен быть очевиден. Можно с уверенностью узнать, что делает программа, только глядя в исходный код. Даже самое точное описание технических требований не скажет всей правды: в нем содержится не детальное описание того, что фактически делает программа, а общие пожелания составителя требований. Документ с архитектурой может содержать описание планируемой архитектуры, но в нем не будут описаны нужные детали реализации. Эти документы могут устареть в сравнении с текущей реализацией… или просто потеряться. Быть может, их даже и не писали. Возможно, единственное, что осталось, — это исходный код.</p>
   <p>Учтя все сказанное, задайте себе вопрос, насколько понятно ваш код может рассказать вам или другому программисту, что он делает.</p>
   <p>Вы можете сказать: «О, так в моих комментариях есть все, что нужно знать». Но учтите, что комментарии — это не работающий код. Они могут вводить в заблуждение так же, как любая другая документация. Традиционно считалось, что комментарии — безусловно хорошая практика, поэтому некоторые программисты без всяких раздумий пишут обширные комментарии, даже повторяя и разъясняя в них факты, и без того очевидные из собственно кода. Это плохой способ сделать код понятным.</p>
   <p>Если ваш код нуждается в комментариях, попробуйте провести рефакторинг так, чтобы они стали не нужны. Пространные комментарии загромождают экран, а ваша IDE может автоматически их скрывать. Если нужно пояснить изменение, сделайте это не в коде, а с помощью сообщения при сохранении кода в систему управления версиями.</p>
   <p>Что можно сделать, чтобы ваш код действительно говорил правду и как можно яснее? Старайтесь выбирать хорошие имена. Структурируйте код с учетом сильносвязанной (cohesive) функциональности, что также облегчает выбор имен. Уменьшите (decouple) связанность кода, чтобы достичь ортогональности. Напишите автоматизированные тесты, раскрывающие запланированное поведение, и проверьте интерфейсы. Безжалостно переделывайте код, если найдете способ написать проще и лучше. Старайтесь, чтобы ваш код был как можно проще для чтения и понимания.</p>
   <p>Относитесь к своему коду как к любому другому творческому тексту — стихотворению, эссе, записи в открытом блоге или важному электронному письму. Тщательно формулируйте то, что хотите выразить, чтобы код делал то, для чего предназначен, и как можно проще сообщал, что он делает, — так, чтобы ваши намерения были ясны, когда их нельзя уже будет узнать у вас самого.</p>
   <p>Помните, что полезным кодом пользуются гораздо дольше, чем предполагают его авторы. Те, кто будут сопровождать ваш код, останутся вам благодарны. А если вы сами занимаетесь сопровождением, и код, с которым вы работаете, не спешит раскрыть свои тайны, как можно раньше начните применять вышеупомянутые принципы. Придайте здравый смысл коду, чтобы сохранить собственный здравый рассудок.</p>
  </section>
  <section>
   <title>
    <p>Возьмите сборку (и ее рефакторинг) на себя</p>
    <p>Стив Берчук</p>
   </title>
   <image l:href="#i_021.jpg"/>
   <p><strong>Не столь уж редки случаи</strong>, когда команды, в целом дисциплинированно соблюдающие хорошие практики написания кода, пренебрежительно относятся к сценариям сборки. Их считают либо малозначительными, либо настолько сложными, что обслуживать их может только секта специалистов по выпуску продукта (release engineers). Если сценарии сборки сложны в сопровождении, содержат дублирование и ошибки, это приводит к проблемам того же масштаба, что и плохо спроектированный код.</p>
   <p>Почему ответственные и грамотные разработчики считают сборку проекта некой второстепенной работой? Одно из объяснений — сценарии сборки часто пишут на ином языке, чем исходный код. Второе — сценарии сборки не являются «кодом». Такие объяснения противоречивы, ведь большинство разработчиков с удовольствием изучает новые языки, а именно в результате сборки появляются исполняемые модули, которые разработчики и конечные пользователи будут тестировать и запускать. Код бесполезен, если из него не собирается исполняемый модуль, а ведь именно сборка определяет компонентную архитектуру приложения. Сборка — важная часть процесса разработки, и решения в области сборки способны упрощать и сам код, и процесс его написания.</p>
   <p>Если в сценариях сборки используются неверные идиомы, такие сценарии тяжело сопровождать и, что хуже, тяжело улучшать. Стоит потратить некоторое время, чтобы разобраться, как правильно вносить изменения. Если приложение собирается с неверными версиями зависимых библиотек или во время сборки заданы неверные параметры конфигурации, это может вызвать ошибки в самом приложении.</p>
   <p>Традиционно тестирование всегда возлагалось на группу контроля качества. Сейчас мы понимаем, что тестирование в процессе написания кода — необходимое условие для получения предсказуемого результата. Аналогично и владельцем процесса сборки должна быть команда разработчиков.</p>
   <p>Понимание процесса сборки может упростить весь жизненный цикл разработки и сократить издержки. Если процесс сборки легко осмыслить и применить, это дает возможность новому разработчику быстро и легко включиться в работу. Если конфигурацию приложения автоматизировать в рамках процесса сборки, это поможет гарантировать получение одинаковых результатов, когда над проектом работает несколько человек, и избежать реплик в духе «А у меня все работает». Многие инструменты сборки генерируют отчеты о качестве кода, заблаговременно вскрывающие потенциальные проблемы. Потратив время и научившись самостоятельно управлять процессом сборки, вы облегчите жизнь себе и всем остальным участникам вашей команды. Вы сможете сосредоточиться на разработке новой функциональности, что принесет пользу клиентам и сделает вашу работу более приятной.</p>
   <p>Изучите процесс сборки достаточно хорошо, чтобы знать, когда и как изменять его. Сценарии сборки — это тоже код. Они слишком важны, чтобы доверить их кому-то другому, хотя бы по той причине, что приложение не закончено, пока оно не собрано. Задача программирования не завершена, пока мы не поставили работающее приложение пользователю.</p>
  </section>
  <section>
   <title>
    <p>Программируйте парами и входите в поток</p>
    <p>Гудни Хаукнес, Кари Россланд и Анн Кэтрин Гэгнат</p>
   </title>
   <image l:href="#i_059.jpg"/>
   <p><strong>Представьте себе, что вы совершенно поглощены </strong>своей работой: сосредоточены, увлечены и заняты. Вы потеряли счет времени. Вы счастливы. Вы в состоянии потока. В масштабах всей команды разработчиков трудно достичь и поддерживать состояние потока из-за многочисленных помех, отвлечений и прочих препятствий, которые легко могут его нарушить.</p>
   <p>Если вы уже участвовали в парном программировании, то, вероятно, знаете, как оно способствует достижению состояния потока. Если нет, то мы хотим поделиться своим опытом, чтобы побудить вас заняться парным программированием немедленно! Чтобы парное программирование было успешным, требуются некоторые усилия со стороны отдельных участников команды и всей команды в целом.</p>
   <p>Будучи частью команды, проявляйте терпение по отношению к менее опытным разработчикам. Преодолейте свой страх перед более опытными разработчиками. Осознайте, что все люди разные, и научитесь это ценить. Помните о сильных и слабых качествах — как своих, так и других членов команды. Вас может удивить, сколь многому способны научить коллеги.</p>
   <p>Применяйте парное программирование для распространения навыков и знаний среди всех участников проекта. Задачи нужно решать парами и часто производить ротацию участников пар и выполняемых каждой парой задач. Сообща установите правило для такой ротации. Если нужно, откажитесь от этого правила или подправьте его. Наш опыт показывает, что не обязательно доводить задачу до конца, прежде чем передать ее следующей паре. Может показаться, будто это неразумно, однако на практике мы обнаружили, что это эффективно.</p>
   <p>Существует множество ситуаций, когда состояние потока может быть нарушено, но парное программирование позволяет его сохранить:</p>
   <p>• <emphasis>Снижается роль «фактора грузовика»</emphasis>. Вот слегка пугающий мысленный эксперимент: сколько членов вашей команды должно попасть под грузовик, чтобы стал невозможным выпуск конечного продукта? Иными словами, насколько выпуск вашего конечного продукта зависит от определенных участников команды? Являются ли знания привилегией или находятся в общем доступе? Если вы осуществляете ротацию задач между парами, всегда найдется кто-то еще, обладающий знаниями, необходимыми для завершения работы. На состояние потока вашей команды «фактор грузовика» не повлияет.</p>
   <p>• <emphasis>Эффективно решаются проблемы</emphasis>. Если вы программируете в паре и сталкиваетесь со сложной проблемой, вам всегда есть с кем ее обсудить. В таком диалоге варианты решения найдутся скорее, чем если вы будете биться над проблемой в одиночестве. В результате ротации задач внутри команды ваше решение будет повторно рассмотрено и критически оценено следующей парой, поэтому не столь важно, если ваше первоначальное решение окажется неоптимальным.</p>
   <p>• <emphasis>Плавно проходит интеграция</emphasis>. Если ваша текущая задача требует обращения к другому фрагменту кода, можно надеяться, что названия методов, документы и тесты достаточно содержательны, чтобы получить представление о том, что этот код делает. Если это не так, то, работая в паре с автором этого фрагмента кода, вы сможете лучше понять и быстрее интегрировать его в свой код. Кроме того, в процессе обсуждения вы получите возможность улучшить именование, документацию и способы тестирования.</p>
   <p>• <emphasis>Можно безболезненно прерываться</emphasis>. Если кто-то подошел к вам с вопросом, или звонит телефон, или нужно срочно ответить на письмо, или нужно принять участие в совещании, ваш партнер по парному программированию может продолжить работу над кодом. Когда вы вернетесь, ваш напарник все еще будет в состоянии потока, и вы сможете быстро наверстать упущенное и присоединиться к нему.</p>
   <p>• <emphasis>Новые участники команды быстро вливаются в проект</emphasis>. Если в команде применяется парное программирование и правильно организована ротация пар и задач, новички быстро знакомятся как с кодом, так и с другими членами команды.</p>
   <p>Поток дает невероятную продуктивность. Но это состояние легко утратить. Старайтесь всеми силами войти в рабочий поток, а затем, когда это получилось, удерживайтесь в нем!</p>
  </section>
  <section>
   <title>
    <p>Предпочитайте примитивам предметно-ориентированные типы данных</p>
    <p>Эйнар Ландре</p>
   </title>
   <image l:href="#i_032.jpg"/>
   <p><strong>23 сентября 1999 года </strong>космический аппарат Mars Climate Orbiter стоимостью 327,6 миллионов долларов потерялся при выходе на орбиту Марса из-за программной ошибки на Земле. Ошибку впоследствии окрестили <emphasis>смешением единиц измерений</emphasis> (<emphasis>metric mix-up</emphasis>). Программное обеспечение наземной станции производило расчеты в фунтах силы, а космический аппарат ожидал указаний в ньютонах,<a l:href="#n_22" type="note">[22]</a> в результате чего наземная станция недооценила мощность ускорителей аппарата в 4,45 раза.</p>
   <p>Это один из многих примеров отказов программного обеспечения, которых можно было избежать благодаря более строгой и предметно-ориентированной типизации. Это также наглядная демонстрация назначения многих возможностей языка Ada, спроектированного преимущественно для создания встраиваемого отказоустойчивого программного обеспечения. В Ada применяется строгая типизация со статической проверкой как примитивных, так и определенных пользователем типов:</p>
   <p><code>type Velocity_In_Knots is new Float range 0.0.. 500.00;</code></p>
   <p><code>type Distance_In_Nautical_Miles is new Float range 0.0.. 3000.00;</code></p>
   <p><code>Velocity: Velocity_In_Knots;</code></p>
   <p><code>Distance: Distance_In_Nautical_Miles;</code></p>
   <p><code>Some_Number: Float;</code></p>
   <p><code>Some_Number:= Distance + Velocity; — Компилятор отловит здесь ошибочное использование типов.</code></p>
   <p>Разработчики приложений, сбои в которых менее критичны, также могут выиграть от более широкого применения предметно-ориентированной типизации. Предметно-ориентированные типы можно использовать вместо имеющихся в языках программирования и библиотеках базовых типов данных, таких как строки и числа с плавающей запятой. В Java, C++, Python и других современных языках абстрактный тип данных известен как class. Применение таких классов, как Velocity_In_Knots (скорость в узлах) и Distance_In_Nautical_Miles (расстояние в морских милях) значительно повышает качество кода:</p>
   <p>• Такой код легче читать, поскольку он выражает понятия предметной области, а не просто описывает строки (String) или действительные числа (Float).</p>
   <p>• Такой код легче тестировать, потому что он инкапсулирует поведение, которое легко проверить.</p>
   <p>• Такой код облегчает повторное использование в разных приложениях или системах.</p>
   <p>Этот подход в равной мере пригоден для использования в языках как со статической, так и с динамической типизацией. Единственное отличие в том, что в языках со статической типизацией разработчик получает некоторую помощь от компилятора, тогда как при динамической типизации больше приходится полагаться на модульное тестирование. Могут различаться стили проверки, но подход и стиль выражения одинаковы.</p>
   <p>Мораль: начинайте пробовать предметно-ориентированные типы с целью повышения качества разрабатываемых программ.</p>
  </section>
  <section>
   <title>
    <p>Предотвращайте появление ошибок</p>
    <p>Жиль Колборн</p>
   </title>
   <image l:href="#i_004.jpg"/>
   <p><strong>Сообщения об ошибках</strong> — наиболее ответственный вид взаимодействия между пользователем и системой. Они возникают, когда общение пользователя с системой находится на грани разрыва.</p>
   <p>Проще всего считать, будто ошибки возникают по вине пользователей в результате ввода неверных данных. Но ошибки, которые люди совершают, предсказуемы и происходят системно. Поэтому можно «отлаживать» взаимодействие между пользователем и системой так же, как вы отлаживаете взаимодействие между другими компонентами системы.</p>
   <p>Допустим, пользователь должен ввести дату в определенном диапазоне. Чем позволять ему ввести любую дату, не лучше ли предоставить средство вроде списка или календаря, которое покажет только допустимые даты? Это исключит всякую возможность ввода даты за пределами разрешенного диапазона.</p>
   <p>Другая распространенная проблема — ошибки форматирования. Например, если пользователь видит текстовое поле для даты и вводит однозначно трактуемую дату «29 июля 2012», неправильно будет забраковать ее только потому, что данные имеют не тот формат, который предпочитаете вы (например, «ММ/ДД/ГГГГ»). Еще хуже отклонить дату «29/07/2012» только из-за лишних пробелов; такие проблемы пользователям сложнее всего осознать, ведь им кажется, что дата имеет верный формат.</p>
   <p>Ошибка возникает потому, что нам проще отклонить данные, чем разбирать три или четыре формата даты, получивших широкое распространение. Подобные мелкие ошибки раздражают пользователя, так что ему сложно сосредоточиться, и он делает все новые ошибки. Чтобы избежать этого, с пониманием отнеситесь к желанию пользователя вводить именно информацию, а не данные.</p>
   <p>Другой способ избежать ошибки форматирования — предложить пользователю подсказку, например, с помощью метки в поле ввода, которая показывает нужный формат («ДД/ММ/ГГГГ»). Другой способ подсказать — разделить поле на три части по два, два и четыре символа.</p>
   <p>Подсказки — это не то же самое, что инструкции: подсказки ненавязчивы и лаконичны, а инструкции многословны. Подсказки появляются в момент взаимодействия, а инструкции — до этого момента. Подсказки подчеркивают контекст, а инструкции диктуют поведение.</p>
   <p>Обычно инструкции малоэффективны в предотвращении ошибок. Пользователи склонны считать, что интерфейсы должны действовать согласно их прежнему опыту («Любому должно быть понятно, что означает <emphasis>29 июля 2012</emphasis>!»). Поэтому инструкции никто не читает. Подсказки уводят пользователей от совершения ошибок.</p>
   <p>Еще один способ избежать ошибок — предлагать значения по умолчанию. Например, пользователи, как правило, вводят значения, которые соответствуют датам <emphasis>сегодня, завтра, мой день рождения, срок сдачи моего проекта</emphasis> или <emphasis>дате, указанной в этой же форме в прошлый раз</emphasis>. В зависимости от контекста одна из этих дат вполне может оказаться хорошим вариантом для значения по умолчанию.</p>
   <p>Какова бы ни была причина ошибки, совершенной пользователем, система должна ошибки прощать. Этому можно содействовать, обеспечив возможность многоуровневой отмены (<emphasis>undo</emphasis>) всех выполненных операций — в особенности тех, которые могут удалить или изменить данные пользователя.</p>
   <p>Запись каждой операции отмены в файл журнала и его последующий анализ могут пролить свет на то, какие особенности интерфейса заставляют пользователей бессознательно совершать ошибки, например постоянно нажимать «не на ту» кнопку. Часто оказывается, что такие ошибки вызваны неудачными подсказками, которые вводят пользователя в заблуждение, или непродуманным порядком выполнения действий, который можно перепроектировать, чтобы предотвратить появление ошибок.</p>
   <p>Какой бы подход вы ни избрали, большинство ошибок являются системными и возникают из взаимного недопонимания между пользователем и приложением. Если вы поймете, как пользователи думают, как они воспринимают информацию, как принимают решения и вводят данные, тогда вы сможете отладить взаимодействие между вашими программами и вашими пользователями.</p>
  </section>
  <section>
   <title>
    <p>Профессиональный программист</p>
    <p>Роберт Мартин (Дядюшка Боб)</p>
   </title>
   <image l:href="#i_009.jpg"/>
   <p><strong>Кого можно считать профессиональным программистом?</strong></p>
   <p>Самая главная черта профессионального программиста — <emphasis>личная ответственность</emphasis>. Профессиональные программисты отвечают за свою карьеру, свои оценки, свои обязательства по срокам, свои ошибки и свое мастерство. Профессиональный программист не перекладывает эту ответственность на других.</p>
   <p>• <emphasis>Профессионал сам отвечает за свою карьеру</emphasis>. Чтение и обучение — ваша ответственность. Быть в курсе последних достижений отрасли и технологий — ваша ответственность. Слишком часто программисты считают, что обучать их — задача работодателя. Извините, это совершенно неверно. Как вы думаете, врачи тоже так считают? А юристы? Нет, они учатся в свое свободное время и на собственные средства. Они проводят значительную часть свободного времени, изучая журналы и решения суда. Они поддерживают свой профессиональный уровень. Так должны поступать и мы. Отношения между вами и работодателем хорошо описаны в вашем контракте. Если коротко, работодатель обещает вам платить, а вы обещаете хорошо работать.</p>
   <p>• <emphasis>Профессионал отвечает за написанный код</emphasis>. Он не выпускает код, если <emphasis>не уверен</emphasis> в его работе. Задумайтесь на минуту. Как вы можете считать себя профессионалом, если готовы выпустить код, в котором у вас нет уверенности? Профессиональные программисты ожидают, что отдел контроля качества <emphasis>ничего</emphasis> не найдет в их коде, потому что они <emphasis>выпускают его не раньше, чем тщательно протестируют</emphasis>. Конечно, группа контроля качества что-нибудь да обнаружит, ведь идеальных людей нет. Но как профессионалы мы должны <emphasis>стремиться</emphasis> к тому, чтобы контролю качества ничего не досталось.</p>
   <p>• <emphasis>Профессионал — это командный игрок.</emphasis> Он отвечает за результат всей команды, а не только за свою работу. Профессионалы помогают друг другу, учат друг друга, учатся друг у друга и даже прикрывают друг друга при необходимости. Когда один участник команды спотыкается, другие вступаются за него, зная, что когда-нибудь им самим понадобится прикрытие.</p>
   <p>• <emphasis>Профессионал не приемлет длинных списков дефектов</emphasis>. Огромный список дефектов — это признак неряшливой работы. Системы, в которых система управления дефектами содержит тысячи записей, — это трагедия беспечности. Более того, в большинстве проектов сама потребность в автоматизированной системе управления дефектами есть симптом беспечности. Только очень крупные системы могут иметь такое большое количество ошибок, что для управления ими требуется автоматизация.</p>
   <p>• <emphasis>Профессионал поддерживает порядок</emphasis>. Он гордится своим мастерством. Его код понятен, хорошо структурирован и легко читается. Профессионалы следуют оговоренным стандартам и лучшим практикам. Они никогда, <emphasis>ни при каких обстоятельствах</emphasis> не работают впопыхах. Представьте себе, что вы можете покинуть собственное тело и наблюдать, как врач делает вам операцию на открытом сердце. У этого врача есть крайний (в буквальном смысле) срок завершения работы. Он должен закончить операцию до того, как аппарат искусственного сердца повредит слишком много кровяных клеток в вашем организме. Как, по-вашему, он должен себя вести? Вы бы хотели, чтобы он вел себя как типичный программист, пишущий код в спешке и беспорядке? Хотите ли вы услышать от него: «Как-нибудь потом все это исправлю»? Или все же он должен тщательно придерживаться правил своей науки, рассчитывать время и быть уверенным, что избранный им подход — лучший из доступных ему? Чего хотите вы — беспорядка или профессионализма?</p>
   <p>Профессионалы обладают чувством ответственности. Они отвечают за собственную карьеру. Они отвечают за правильную работу своего кода. Они отвечают за уровень своего мастерства. Они не отказываются от своих принципов, когда на них давят сроки. На самом деле, когда давление растет, профессионалы еще крепче держатся за тот порядок, который считают правильным.</p>
  </section>
  <section>
   <title>
    <p>Держите все в системе управления версиями</p>
    <p>Диомидис Спинеллис</p>
   </title>
   <image l:href="#i_049.jpg"/>
   <p><strong>Храните все, что касается любых ваших проектов</strong>, в системе управления версиями. Необходимые для этого ресурсы уже имеются: бесплатные инструменты типа Subversion, Git, Mercurial и CVS, вдоволь дискового пространства, дешевые и мощные серверы, повсеместный доступ в Интернет и даже службы хостинга проектов. После того как вы установили систему управления версиями, сохранить ваши труды в репозиторий очень просто: достаточно лишь выполнить соответствующую команду в чистом каталоге с кодом. А освоить нужно всего две новые основные операции: <emphasis>запись</emphasis> (<emphasis>commit</emphasis>) в репозиторий изменений, сделанных вами в коде, и <emphasis>обновление</emphasis> (<emphasis>update</emphasis>) вашей рабочей версии проекта до той, которая находится в репозитории.</p>
   <p>После того как проект помещен в систему управления версиями, можно без труда просмотреть его историю, узнать, кто написал каждый фрагмент кода, и обратиться к конкретной версии файла или проекта с помощью уникального идентификатора. А что еще важнее — теперь вы можете делать рискованные изменения в коде, и больше не нужно оставлять закомментированный код на случай, если он потребуется в будущем. Ведь старая версия надежно хранится в репозитории. Можно (и нужно) <emphasis>помечать</emphasis> (<emphasis>tag</emphasis>) стабильные версии понятными вам именами, чтобы потом быстро получить именно ту версию, которая работает у вашего клиента. Можно создавать отдельные <emphasis>ветви</emphasis> (<emphasis>branches</emphasis>) и разрабатывать их параллельно: в большинстве проектов есть активно разрабатываемая ветвь и одна или несколько ветвей более ранних версий, для которых осуществляется активная поддержка.</p>
   <p>Система управления версиями минимизирует трения между разработчиками. Когда программисты работают над независимыми частями программного обеспечения, их интеграция проходит «на ура». Когда они одновременно изменяют одни и те же файлы, система сообщит об этом и позволит разрешить конфликты. Можно настроить систему так, чтобы она оповещала всех разработчиков о каждом внесенном изменении, что даст каждому общее представление о ходе развития проекта.</p>
   <p>Организуя работу над проектом, не жадничайте: поместите в систему управления версиями <emphasis>все, что относится к проекту</emphasis>. Помимо исходного кода занесите в репозиторий документацию, инструменты, сценарии для сборки, описания тестовых сценариев, графический материал и даже библиотеки. Когда весь проект надежно помещен в репозиторий (для которого регулярно делается резервная копия), возможный ущерб от потери диска или данных становится минимальным. Чтобы начать разработку на новой машине, достаточно получить копию (check out) проекта из репозитория. Это упрощает распространение, сборку и тестирование кода на разных платформах: на любой машине единственная команда обновления гарантирует вам загрузку последней версии программного обеспечения.</p>
   <p>После того как вы оцените прелести работы с системой управления версиями, присмотритесь к следующим правилам, которые сделают вашу работу и работу вашей команды еще более эффективной:</p>
   <p>• Сохраняйте каждое логическое изменение в виде отдельной операции. Если вы объедините большую кучу изменений в одну запись (commit), вам будет трудно разделить их впоследствии. Это особенно важно, когда проводится рефакторинг или изменение стиля в рамках всего проекта, что может легко скрыть другие модификации.</p>
   <p>• Сопровождайте каждое изменение поясняющим сообщением. Как минимум кратко опишите, что вы изменили. И если вам требуется сохранить на будущее причины сделанных изменений, лучшего места не найти.</p>
   <p>• Наконец, не стоит сохранять в репозиторий такой код, который ломает сборку проекта, иначе вы быстро навлечете на себя недовольство других участников проекта.</p>
   <p>Жизнь с системой управления версиями слишком приятна, чтобы портить ее ошибками, которых легко избежать.</p>
  </section>
  <section>
   <title>
    <p>Брось мышь и медленно отойди от клавиатуры</p>
    <p>Берк Хафнагель</p>
   </title>
   <image l:href="#i_057.jpg"/>
   <p><strong>Вы уже несколько часов работаете </strong>над какой-то неподдающейся задачей, а решения все не видно. Вы встаете, чтобы размять ноги, или направляетесь к автомату по продаже напитков, а на обратном пути ответ вдруг становится очевиден.</p>
   <p>Случалось ли с вами такое? Приходилось ли вам задумываться, почему так происходит? Все дело в том, что, когда вы пишете код, активна логическая часть вашего мозга, а творческая отключена. Она никак не сможет себя проявить, пока логическая сторона не сделает перерыв в работе.</p>
   <p>Вот вам пример из жизни. Я причесывал кое-какой старый код и наткнулся на «занятный» метод. Он предназначался для проверки правильности формата времени в строке вида <emphasis>hh: mm: ss xx</emphasis>, где <emphasis>hh</emphasis> — это часы, <emphasis>mm</emphasis> — минуты, <emphasis>ss</emphasis> — секунды, а <emphasis>xx</emphasis> принимает значение <emphasis>AM</emphasis> или <emphasis>PM</emphasis>.</p>
   <p>Метод содержал следующий код для преобразования двух символов (представляющих час) в число и проверки, что час находится в заданном диапазоне:</p>
   <p><code>try {</code></p>
   <p><code>   Integer.parseInt(time.substring(0, 2));</code></p>
   <p><code>} catch (Exception x) { </code></p>
   <p><code>   return false;</code></p>
   <p><code>}</code></p>
   <p><code>if (Integer.parseInt(time.substring(0, 2)) &gt; 12) { </code></p>
   <p><code>   return false;</code></p>
   <p><code>}</code></p>
   <p>Тот же самый код появлялся еще дважды с соответствующими изменениями в смещении символов и в значении верхней границы, чтобы проверить правильность минут и секунд. Заканчивался метод следующими строками, проверяющими <emphasis>AM</emphasis> и <emphasis>PM</emphasis>:</p>
   <p><code>if (!time.substring(9, 11). equals("AM") &amp;</code></p>
   <p><code>    !time.substring(9, 11). equals("PM")) { </code></p>
   <p><code>   return false;</code></p>
   <p><code>}</code></p>
   <p>Если ни одно из этого ряда условий не оказывалось ложным (при этом возвращается false), метод возвращал true.</p>
   <p>Если приведенный код кажется слишком многословным и трудным для понимания, не волнуйтесь. Мне тоже так показалось, и я решил, что нашел код, который стоит подчистить. Я переработал его и написал несколько модульных тестов, чтобы проверить, по-прежнему ли правильно работает новый код.</p>
   <p>Закончив работу, я остался доволен результатами. Новый вариант легко читался, был вдвое меньшего размера и точнее, поскольку прежний код проверял только верхнюю границу часов, минут и секунд.</p>
   <p>Когда я собирался на работу на следующий день, меня посетила идея: а почему бы не проверить правильность строки с помощью регулярного выражения? Через несколько минут у меня была рабочая реализация, состоящая всего из одной строки кода:</p>
   <p><code>public static boolean validateTime(String time) {</code></p>
   <p><code>   return time.matches("(0[1–9]|1[0–2]):[0–5][0–9]:[0–5][0–9] ([AP]M)");</code></p>
   <p><code>}</code></p>
   <p>Смысл не в том, что в итоге мне удалось заменить 30 с лишним строк кода одной, а в том, что пока я не отошел от компьютера, мне казалось, что мой первый вариант был лучшим решением задачи.</p>
   <p>Поэтому, когда вы в следующий раз столкнетесь с неподатливой задачей, сделайте себе одолжение. По-настоящему разобравшись в сути проблемы, займитесь чем-то, что включит творческую часть вашего мозга: нарисуйте схему проблемы на бумаге, послушайте музыку или просто выйдите из дома. Иногда лучшее, что вы можете сделать, чтобы решить задачу, — это бросить мышь и отойти от клавиатуры.</p>
  </section>
  <section>
   <title>
    <p>Читайте код</p>
    <p>Карианне Берг</p>
   </title>
   <image l:href="#i_060.jpg"/>
   <p><strong>Мы, программисты, странные создания</strong>. Мы любим писать код. Но что касается чтения кода, мы обычно сторонимся этого дела. В конце концов, писать код гораздо увлекательней, а читать код трудно — иногда почти невозможно. Особенно тяжело читать код, написанный другими. Не всегда из-за того, что он плохо написан, но потому, что другой человек думает и решает задачи иначе, чем вы. А вам не приходило в голову, что чтение чужого кода может помочь улучшить ваш собственный код?</p>
   <p>Когда вы в следующий раз будете читать какой-нибудь код, остановитесь и задумайтесь. Трудно его читать или легко? Если трудно, то почему? Он плохо отформатирован? Система именования непоследовательна или нелогична? Несколько задач смешались в одном фрагменте кода? Возможно, выбранный язык затрудняет чтение кода. Старайтесь учиться на чужих ошибках, чтобы не повторять их в своем коде. Вас могут ожидать сюрпризы. Например, приемы разрыва зависимостей могут быть полезны для введения слабого связывания, но они могут также затруднить чтение кода. А код, который одни считают <emphasis>элегантным</emphasis>, другие могут назвать <emphasis>нечитаемым</emphasis>.</p>
   <p>Если код читается легко, обратите на него внимание и посмотрите, нельзя ли чему-то научиться у этого кода. Возможно, в нем применяется шаблон проектирования, который вам не знаком или который вы пытались реализовать ранее. Или он содержит методы более короткие и более точно именованные, чем ваши. В некоторых проектах с открытым исходным кодом можно встретить массу примеров великолепного, понятного кода, тогда как в других вы столкнетесь с прямо противоположным! Скачайте немного кода из репозиториев таких проектов и поизучайте его.</p>
   <p>Чтение собственного старого кода из проекта, над которым вы больше не работаете, тоже может оказаться поучительным опытом. Начните с какого-нибудь самого старого кода и постепенно продвигайтесь к коду, который пишете сегодня. Возможно, вы обнаружите, что читать старый код совсем не так легко, как было в то время, когда вы его писали. Ваш ранний код может вызвать у вас определенное смущение, типа того, которое испытываешь, когда тебе рассказывают о том, что ты говорил накануне вечером, выпивая в пабе. Посмотрите, как с годами росло ваше мастерство; это может стать весьма ободряющим открытием. Выясните, какие части кода тяжело читать, и подумайте, продолжаете ли вы писать код в том же стиле сегодня.</p>
   <p>Итак, когда вы в следующий раз почувствуете необходимость улучшить свое мастерство программирования, не беритесь за книги. Читайте код.</p>
  </section>
  <section>
   <title>
    <p>Читайте гуманитарные книги</p>
    <p>Кейт Брэйтуэйт</p>
   </title>
   <image l:href="#i_061.jpg"/>
   <p><strong>Во всех проектах, кроме самых маленьких</strong>, люди работают с другими людьми. Во всех исследовательских областях, кроме самых абстрактных, люди пишут программы для людей, чтобы помочь им достичь определенную цель. Люди пишут программы вместе с людьми и для людей. Этот бизнес строится вокруг людей. К сожалению, программистов обучают тому, что мало помогает им в общении с людьми, для которых и с которыми они работают. К счастью, существует целая область знаний, которая может в этом помочь.</p>
   <p>К примеру, Людвиг Витгенштейн (Ludwig Wittgenstein) в своей книге «Philosophical Investigations»<a l:href="#n_23" type="note">[23]</a> (Wiley-Blackwell) и других работах весьма убедительно утверждает, что ни один человеческий язык не является — и не может являться — форматом сериализации для передачи идей или образов из головы одного человека в голову другого. Нам следует помнить об этом уже тогда, когда мы «собираем требования». Витгенштейн также показывает, что наша способность понимать друг друга связана не с общими определениями, а с единым опытом и образом жизни. Возможно, по этой причине у программистов, глубоко вникающих в предметную область, все получается лучше, чем у тех, кто держится от нее в стороне.</p>
   <p>Лакофф (Lakoff) и Джонсон (Johnson) в своей книге «Metaphors We Live By»<a l:href="#n_24" type="note">[24]</a> (University of Chicago Press) утверждают, что язык в значительной степени метафоричен и что метафоры языка позволяют нам заглянуть в собственное восприятие мира. Даже такой на первый взгляд конкретный термин, как <emphasis>денежный поток</emphasis> (<emphasis>cash flow</emphasis>), употребляемый нами в разговоре о финансах, может быть понят метафорично: «деньги — это жидкость». А как эта метафора влияет на наши представления о системах, оперирующих деньгами? Или другой пример: мы говорим об уровнях в стеке протоколов, где есть протоколы высокоуровневые, а есть низкоуровневые. Это сильная метафора: пользователь — «вверху», а технологии «внизу». Метафора вскрывает наше представление о структуре системы, которую мы строим. Она также может означать привычку мыслить шаблонно, которую мы время от времени можем с пользой для себя ломать.</p>
   <p>Мартин Хайдеггер (Martin Heidegger) внимательно изучал пути познания человеком инструментов через опыт их применения. Программисты создают и используют инструменты, мы думаем об инструментах, создаем инструменты, модифицируем и переделываем их. Инструменты — это объекты нашего интереса. Но для их пользователей, как показывает Хайдеггер в своей книге «Being and Time»<a l:href="#n_25" type="note">[25]</a> (Harper Perennial), инструмент — невидимая сущность, постижение которой происходит только во время ее применения. Для пользователей инструменты становятся объектами интереса только тогда, когда они не работают. Об этой разнице стоит помнить, когда разговор идет об удобстве работы.</p>
   <p>Элеонора Рош (Eleanor Rosch) опровергла модель категоризации Аристотеля, упорядочивающую наше понимание мира. Когда мы, программисты, спрашиваем пользователей, чего они хотят от системы, мы обычно стараемся получить определения, основывающиеся на предикатах. Нам это очень удобно. Термы в предикатах легко превращаются в атрибуты класса или колонки таблицы. Подобные категории являются точными, непересекающимися и логически верными. Но, к сожалению, как показывает Рош в «Natural Categories»<a l:href="#n_26" type="note">[26]</a> (Естественные категории) и более поздних своих работах, люди представляют себе мир иными способами. Представление людьми мира основано на примерах. Некоторые из таких примеров, так называемые прототипы, лучше других, и поэтому основанные на них категории размыты, пересекаются одна с другой, могут обладать насыщенной внутренней структурой. Пока мы не перестанем настаивать на ответах в духе системы категорий Аристотеля, мы не сможем задать пользователям правильные вопросы об их мире, и нам будет трудно добиться необходимого общего понимания.</p>
  </section>
  <section>
   <title>
    <p>Почаще изобретайте колесо</p>
    <p>Джейсон П. Сэйдж</p>
   </title>
   <image l:href="#i_062.jpg"/>
   <empty-line/>
   <p><emphasis>Пользуйтесь готовыми решениями — глупо снова изобретать колесо…</emphasis></p>
   <empty-line/>
   <p><strong>Приходилось вам слышать подобный совет? </strong>Ну, еще бы! Каждый разработчик или студент часто слышит такие высказывания. Но почему? Почему на повторное изобретение колеса так косо смотрят? Потому что существующий код, как правило, работает. Он уже в какой-то форме прошел контроль качества и строгое тестирование и теперь успешно применяется. Кроме того, время и силы, потраченные на изобретение нового решения, едва ли окупятся в той же мере, как использование готового продукта или кода. Стоит ли браться за изобретение колеса? Зачем? В каких случаях?</p>
   <p>Вероятно, вы знакомы с публикациями о шаблонах в разработке или с книгами, посвященными проектированию программного обеспечения. Какой бы замечательной ни была предлагаемая в них информация, они часто вгоняют в сон. В какой мере просмотр фильма о парусном спорте отличается от самостоятельного хождения под парусом, в такой же мере использование готового кода отличается от процесса, когда вы разрабатываете собственное приложение с нуля, тестируете его, ломаете, чините и постепенно улучшаете его.</p>
   <p>Изобретение колеса — это не просто упражнение в правильном размещении конструкций кода: оно требует глубокого понимания внутреннего устройства различных готовых компонентов. Вы знаете, как работают менеджеры памяти? Виртуальные страницы? Можете сами их реализовать? А как насчет двунаправленных связных списков? Классов динамических массивов? Клиентов ODBC? Можете написать графический интерфейс пользователя, который работает так же, как тот, что вы сейчас используете, и который вам нравится? Можете сами создать виджет для браузера? Знаете, когда нужно писать систему с мультиплексированием, а когда — многопоточную? Как решить, какая база данных лучше — в файле или в памяти?</p>
   <p>Большинству разработчиков никогда не приходилось создавать такие базовые программные компоненты, а потому они лишь поверхностно разбираются в работе этих «колес». В результате все подобные модули и библиотеки считаются таинственным черным ящиком, который каким-то образом работает. Если вы видите только поверхность воды, этого недостаточно для понимания опасностей, таящихся в ее глубине. Если вы ничего не знаете о создании более низкоуровневого программного обеспечения, это ограничивает вашу способность создавать действительно выдающиеся продукты.</p>
   <p>Попытаться изобрести колесо и потерпеть неудачу полезнее успеха с первой же попытки. Уроки, полученные методом проб и ошибок, имеют эмоциональную составляющую, которую простое чтение технической книги не способно создать!</p>
   <p>Запоминать факты и читать умные книги важно, но в становлении выдающегося программиста приобретение опыта имеет такое же значение, как накопление фактов. Изобретение колеса так же важно для образования и мастерства программиста, как поднятие тяжестей для культуриста.</p>
  </section>
  <section>
   <title>
    <p>Не поддавайтесь очарованию шаблона Singleton</p>
    <p>Сэм Сааристе</p>
   </title>
   <image l:href="#i_063.jpg"/>
   <p><strong>Шаблон Singleton решает многие ваши проблемы</strong>. Вы знаете, что вам нужен единственный экземпляр. Вы получаете гарантию, что этот экземпляр будет инициализирован перед использованием. Архитектура остается простой благодаря наличию глобальной точки доступа. Все прекрасно. Ну что может не понравиться в этом классическом шаблоне проектирования?</p>
   <p>Если подумать, то весьма многое. Как ни соблазнительно применение синглтонов, они, как показывает опыт, приносят больше вреда, чем пользы. Они затрудняют тестирование и усложняют сопровождение. К сожалению, это понимание не столь распространено, как хотелось бы, и синглтоны сохраняют свое обаяние для множества программистов. Хотя есть основания задуматься, так ли они хороши:</p>
   <p>• <emphasis>Ограничение на число экземпляров класса часто иллюзорно</emphasis>. Во многих случаях утверждение, что в будущем не понадобятся дополнительные экземпляры, ничем не подкреплено. Домыслы в основе архитектуры приложения обязательно приведут к неприятностям в будущем. Технические требования меняются. Хорошая архитектура это учитывает. Синглтоны — нет.</p>
   <p>• <emphasis>Синглтоны создают неявные зависимости между концептуально независимыми модулями кода</emphasis>. Беда в том, что, во-первых, эти зависимости незаметны, а во-вторых, создают ненужные связи между модулями. Этот запашок в коде становится острее, когда вы пытаетесь писать модульные тесты, основанные на слабом связывании и возможности выборочно применять реализации-макеты вместо настоящих. Синглтоны не дают осуществлять такое простое моделирование.</p>
   <p>• <emphasis>Синглтоны неявно хранят состояние, что опять-таки препятствует модульному тестированию</emphasis>. Модульное тестирование предполагает, что тесты независимы друг от друга, благодаря чему их можно выполнять в любом порядке, а программу можно возвращать в известное состояние перед выполнением каждого модульного теста. Как только появляются синглтоны с изменяемым (mutable) состоянием, обеспечить такие условия может оказаться затруднительно. Кроме того, такое глобально доступное долгоживущее состояние затрудняет интерпретацию кода человеком, особенно в многопоточной среде.</p>
   <p>• <emphasis>Многопоточность создает дополнительные капканы в использовании шаблона синглтона</emphasis>. Поскольку простая блокировка доступа не очень эффективна, получила распространение так называемая блокировка с двойной проверкой (DCLP). К несчастью, иногда это просто другая разновидность рокового влечения. Оказалось, что во многих языках DCLP не является потоково-безопасной, и даже в тех, где она является потоково-безопасной, сохраняются возможности для ее неправильной работы.</p>
   <p>Избавление от синглтонов может стать в окончательном итоге сложной задачей:</p>
   <p>• <emphasis>Явное уничтожение объектов синглтонов не поддерживается</emphasis>. В отдельных контекстах это может оказаться проблемой, например в архитектуре с подключаемыми модулями, где модуль можно безопасно выгрузить, только если все его объекты удалены из памяти.</p>
   <p>• <emphasis>При завершении программы порядок неявной зачистки синглтонов не определен</emphasis>. Это может вызвать проблемы в приложениях, содержащих синглтоны с взаимными зависимостями. При завершении таких приложений одни синглтоны могут продолжать обращаться к другим, которые к тому моменту уже уничтожены.</p>
   <p>Некоторые из перечисленных недостатков можно преодолеть с помощью специальных механизмов. Однако за это приходится расплачиваться усложнением кода, чего удалось бы избежать, если бы в проекте использовались иные подходы к архитектуре.</p>
   <p>Поэтому ограничьте использование шаблона Singleton теми классами, для которых действительно не должно никогда создаваться более одного экземпляра. Не стоит пользоваться глобальной точкой входа в синглтон в произвольных участках кода. Прямое обращение к синглтону должно происходить лишь в нескольких четко определенных местах и быть доступным коду в целом только через узкий интерфейс. Весь остальной код не знает, как реализован интерфейс — через синглтон или какой-то другой класс, — а потому не зависит от реализации. В результате всего этого разрушаются связи, мешающие модульному тестированию, и облегчается сопровождение. Так что надеюсь, что, когда вы в следующий раз решите реализовать синглтон или к нему обратиться, вы дважды подумаете, стоит ли это делать.</p>
  </section>
  <section>
   <title>
    <p>Путь к повышению эффективности программ заминирован грязным кодом</p>
    <p>Кирк Пеппердин</p>
   </title>
   <image l:href="#i_056.jpg"/>
   <p><strong>Как правило, настройка производительности системы </strong>требует изменения исходного кода. Когда необходимо изменить код, каждый его фрагмент, слишком сложный или сильно связанный с другими, оказывается «бомбой грязного кода», способной свести на нет все ваши усилия. Первой жертвой грязного кода становится график работ. Если движение вперед происходит равномерно, легко предсказать, когда закончится работа. Но неожиданные столкновения с грязным кодом делают весьма затруднительным разумное планирование.</p>
   <p>Допустим, вы обнаружили место, где теряется производительность. В этом случае обычно пытаются снизить сложность алгоритма, создающего недопустимую нагрузку. Вы сообщаете своему менеджеру, что исправление займет у вас, скажем, три-четыре часа. Работая над исправлениями, вы обнаруживаете, что перестал работать зависимый участок кода. Родственные фрагменты кода часто связаны друг с другом, что вызвано объективной необходимостью, и такое нарушение работы, скорее всего, предполагалось и учитывалось в оценке времени. Но что если исправление этой зависимости приведет к нарушению работы и других зависимых частей? Более того, чем дальше эти зависимости находятся от исходной точки, тем менее вероятно, что вы их обнаружите и учтете в своей оценке. Внезапно начальная оценка раздувается от трех-четырех часов до трех-четырех недель. Часто одна подобная неожиданность увеличивает сроки сразу на 1–2 дня. Не столь уж редко «небольшой» рефакторинг затягивается на несколько месяцев. В таких ситуациях ущерб, нанесенный доверию к действующей команде и ее «политическому капиталу», может быть тяжелым и даже смертельным. Вот если бы у нас был инструмент, позволяющий обнаружить и оценить такой риск…</p>
   <p>На самом деле, существует много способов измерить и проконтролировать степень и глубину связанности и сложности нашего кода. С помощью программных метрик можно посчитать встречаемость в коде определенных характеристик. Эти количественные показатели коррелируют с качеством кода. Отметим две метрики из тех, которые оценивают связанность кода: <emphasis>число входов</emphasis> (<emphasis>fan-in</emphasis>) и <emphasis>число выходов</emphasis> (<emphasis>fan-out</emphasis>). Например, для классов fan-out определяется как количество классов, к которым прямо или косвенно обращается оцениваемый класс. Это можно представить себе как количество всех классов, которые нужно скомпилировать, прежде чем можно начать компилировать ваш класс. С другой стороны, fan-in — это количество классов, которые зависят от данного класса. Зная fan-out и fan-in, можно по формуле <emphasis>I = fo </emphasis>/ <emphasis>(fi + fo)</emphasis> рассчитать коэффициент нестабильности. Чем ближе <emphasis>I </emphasis> к нулю для конкретного класса или модуля, тем он стабильнее. Когда значение <emphasis>I</emphasis> близко к 1, модуль становится нестабильным. Изменение кода стабильных модулей сопряжено с меньшим риском, тогда как в нестабильных модулях более вероятно наличие бомб грязного кода. Задача рефакторинга — приблизить <emphasis>I</emphasis>  к нулю.</p>
   <p>При использовании метрик нужно помнить, что это всего лишь эмпирические правила. Исходя из чистой математики мы увидим, что увеличивая <emphasis>fi</emphasis>, не изменяя при этом <emphasis>fo</emphasis>, мы приближаем <emphasis>I</emphasis> к нулю. Однако слишком большая величина fan-in имеет и обратную сторону: такие классы труднее изменить, не нарушая работу классов, зависимых от них. Кроме того, не решая проблемы fan-out, вы на самом деле не снижаете свои риски, поэтому нужно соблюдать некоторое равновесие.</p>
   <p>Недостатком программных метрик является то, что огромное количество цифр, выдаваемых инструментами для снятия метрик, может произвести устрашающее впечатление на непосвященных. Тем не менее программные метрики способны стать мощным средством в борьбе за чистый код. Они помогают обнаружить и ликвидировать бомбы грязного кода, составляющие серьезный риск для операций по повышению производительности.</p>
  </section>
  <section>
   <title>
    <p>Простота достигается сокращением</p>
    <p>Пол У. Гомер</p>
   </title>
   <image l:href="#i_064.jpg"/>
   <p><strong>«Делай заново…»,</strong> — сказал мне начальник, твердо удерживая пальцем клавишу Delete. С привычной тоской я смотрел на экран, где безвозвратно исчезал мой код — строка за строкой.</p>
   <p>Мой начальник Стефан не отличался особой красноречивостью, но определял плохой код с первого взгляда. И он хорошо знал, что с ним нужно делать.</p>
   <p>Я поступил на ту работу в качестве человека, изучающего программирование, — с запасами энергии и энтузиазма, но без малейшего понятия, как писать код. Я пребывал в ужасном заблуждении, будто любые проблемы решаются путем добавления еще одной переменной в подобающем месте либо путем добавления еще одной строки кода. В плохие дни мой код деградировал — его логика не совершенствовалась, более того, он становился все пространнее, сложнее и неустойчивее.</p>
   <p>Желание решить вопрос посредством минимальных изменений в блоке кода — даже если они ужасны — вполне естественно, особенно при недостатке времени. Большинство программистов сохраняет плохой код, опасаясь, что, если начать все заново, потребуется гораздо больше усилий, чем если просто вернуться к началу. Это бывает верно для почти рабочего кода, но встречается и такой код, которому уже ничто не поможет.</p>
   <p>Слишком много времени впустую тратится на попытки спасти плохую работу. Если что-то начинает высасывать ресурсы, от этого следует избавиться. И побыстрее.</p>
   <p>Не хочу сказать, что так уж легко расстаться с набранным текстом, выбранными именами, форматированием. Реакция моего начальника была излишне жесткой, однако она заставляла меня переосмысливать свой код во время второй (а иногда и третьей) попытки. Тем не менее лучший способ исправить плохой код — приготовиться безжалостно его перерабатывать, переносить туда-сюда или удалять.</p>
   <p>Код должен быть простым. Количество переменных, функций, объявлений и прочих синтаксических элементов языка должно быть минимальным. Лишние строки, лишние переменные… <emphasis>все</emphasis> лишнее должно немедленно уничтожаться. А того, что осталось, должно быть минимально достаточно, чтобы выполнить задание, реализовать алгоритм или осуществить вычисления. Все прочее — бесполезный, ненужный шум, появившийся по ошибке. Он запутывает алгоритм работы и скрывает действительно важные вещи в коде.</p>
   <p>Конечно, если этого окажется недостаточно, удалите вообще все и начните сначала. Такое «рисование по памяти» часто позволяет избавиться от ненужного хлама.</p>
  </section>
  <section>
   <title>
    <p>Принцип единственной ответственности</p>
    <p>Роберт Мартин (Дядюшка Боб)</p>
   </title>
   <image l:href="#i_009.jpg"/>
   <empty-line/>
   <p><strong>Вот один из наиболее фундаментальных принципов качественного проектирования:</strong></p>
   <cite>
    <p>Собрать вместе те вещи, которые изменяются по одной и той же причине, и разделить те, которые изменяются по разным причинам.</p>
   </cite>
   <p>Этот принцип иначе известен как <emphasis>принцип единственной ответственности</emphasis>, или SRP (single responsibility principle). Если коротко, он гласит, что причина изменения любой подсистемы, класса и даже функции должна быть ровно одна. Классический пример — класс с методами для работы с бизнес-правилами, отчетами и базами данных:</p>
   <p><code>public class Employee {</code></p>
   <p><code>public Money calculatePay()…</code></p>
   <p><code>public String reportHours()… </code></p>
   <p><code>public void save()…</code></p>
   <p><code>}</code></p>
   <p>Кое-кто из программистов считает, что сочетание этих трех функций в одном классе вполне уместно. В конце концов, классы и должны собирать вместе функции, работающие с одними и теми же переменными. Однако проблема в том, что все три функции изменяются по совершенно разным причинам. Функция calculatePay (рассчитать зарплату) изменяется вместе с бизнес-правилами расчета заплаты. Функция reportHours (отчитаться о часах) изменяется, когда требуется другой формат отчета. Функция save (сохранить) изменяется, когда администратор базы данных меняет схему базы данных. В совокупности эти три причины делают Employee очень неустойчивым классом. Он будет меняться по <emphasis>каждой</emphasis> из этих причин. И что еще важнее, эти изменения затронут любые классы, которые зависят от Employee.</p>
   <p>В хорошей архитектуре система разделена на компоненты, которые можно развернуть независимо. Независимость развертывания означает, что изменение одного компонента не требует повторного развертывания других. Но если Employee интенсивно используется многими классами в других компонентах, каждое изменение Employee может требовать повторного развертывания других компонентов, что сводит на нет основное преимущество компонентного подхода к проектированию (или SOA, если вам нравится это более модное название). Следующее простое разделение решает проблему:</p>
   <p><code>public class Employee {</code></p>
   <p><code>   public Money calculatePay()…</code></p>
   <p><code>}</code></p>
   <p><code>public class EmployeeReporter {</code></p>
   <p><code>   public String reportHours(Employee e)…</code></p>
   <p><code>}</code></p>
   <p><code>public class EmployeeRepository {</code></p>
   <p><code>   public void save(Employee e)…</code></p>
   <p><code>}</code></p>
   <p>Каждый класс можно поместить в отдельный компонент. Или, выражаясь точнее, все классы, создающие отчеты, поместить в компонент отчетов. Все классы, связанные с базами данных, можно поместить в компонент хранилища. А все бизнес-правила поместить в компонент бизнес-правил.</p>
   <p>Внимательный читатель заметит, что в приведенном решении остаются зависимости. Другие классы по-прежнему зависят от Employee. Поэтому если Employee изменится, вполне возможно, что эти классы придется заново скомпилировать и развернуть. Таким образом, Employee невозможно модифицировать, а потом развернуть независимо. Однако другие классы можно модифицировать и независимо развернуть. Никакая их модификация не требует перекомпиляции и повторного развертывания остальных классов. Даже Employee можно независимо развернуть, если тщательно применить <emphasis>принцип инверсии зависимости</emphasis> (DIP, dependency inversion principle), но это уже тема для другой книги.<a l:href="#n_27" type="note">[27]</a></p>
   <p>Продуманное применение принципа единственной ответственности, то есть разделение тех сущностей, которые изменяются по разным причинам, является одной из основ создания архитектур со структурой независимо развертываемых компонентов.</p>
  </section>
  <section>
   <title>
    <p>Сначала скажите «да»</p>
    <p>Алекс Миллер</p>
   </title>
   <image l:href="#i_065.jpg"/>
   <p><strong>Недавно я был в продуктовом магазине </strong>и обыскался там эдамаме, зеленых соевых бобов (я лишь приблизительно догадывался, что это какие-то овощи). Я не знал, где мне искать этот продукт: в овощном отделе, в отделе замороженных продуктов или на полках с консервами? Наконец я сдался и обратился за помощью к сотруднице магазина. Она тоже не знала!</p>
   <p>Сотрудница магазина могла отреагировать на мою просьбу по-разному. Она могла дать мне понять, что только дурак не знает, где это искать, или отделаться туманными намеками, или даже просто сказать, что у них нет такого товара. Но она посчитала возможным найти решение и помочь покупателю. Позвав других сотрудников, она уже через пару минут отвела меня к нужному товару. Эдамаме оказались в отделе замороженных продуктов.</p>
   <p>В данной ситуации сотрудница выслушала просьбу и стала исходить из того, что проблема решится, и просьба будет удовлетворена. Она начала с того, что сказала <emphasis>да</emphasis> вместо <emphasis>нет</emphasis>.</p>
   <p>Когда мне впервые пришлось занять должность технического руководителя, мне казалось, что главное в моей работе — защищать мои прекрасные программы от потока нелепых требований, исходившего от менеджеров по продукту и бизнес-аналитиков. В большинстве разговоров я рассматривал любую просьбу как атаку, требующую защитной реакции, а не положительного ответа.</p>
   <p>В какой-то момент на меня снизошло прозрение, и я увидел, что возможен другой подход к работе, который отличается от моего всего лишь начальным <emphasis>да</emphasis> вместо начального <emphasis>нет</emphasis>. Я пришел к убеждению, что начинать разговор с <emphasis>положительного</emphasis> ответа — важнейшая часть работы технического руководителя.</p>
   <p>Эта простая перемена радикально изменила мой подход к работе. Оказалось, существует много способов говорить. Когда слышишь: «Послушай, это приложение станет в сто раз круче, если мы сделаем все окна круглыми и прозрачными!», можно отвергнуть это предложение как нелепое. Но обычно лучше сначала спросить: «А почему?». Часто существует реальный и убедительный довод, почему этот человек требует круглые прозрачные окна. Например, ведутся переговоры с новым крупным клиентом, у которого комиссия по стандартизации требует эти самые круглые прозрачные окна.</p>
   <p>Обычно, ознакомившись с контекстом просьбы, обнаруживаешь, что открываются новые возможности. Зачастую просьба может быть выполнена в рамках существующего продукта каким-то другим способом, что позволяет ответить <emphasis>да</emphasis>, нисколько не напрягаясь: «Собственно говоря, вы можете загрузить в пользовательских настройках «шкурку» (skin) с круглыми прозрачными окнами и активизировать ее».</p>
   <p>Иногда у людей появляются идеи, которые кажутся несовместимыми с вашим видением продукта. Я обнаружил, что в этом случае обычно полезно обратиться с вопросом «почему» к самому себе. Порой сама попытка объяснить себе причину помогает понять ошибочность первой реакции. Если это не так, то можно облегчить ситуацию, включив в обсуждение других ответственных лиц. Помните, что цель всего этого — сказать <emphasis>да</emphasis> другому человеку и попытаться сделать так, чтобы все получилось, и не только ради него, но ради себя и всей своей команды.</p>
   <p>Если вы сможете убедительно объяснить, почему предложенная функция не совместима с существующим продуктом, это даст возможность конструктивно обсудить, нужный ли продукт вы создаете. Независимо от результатов обсуждения каждый участник более четко осознает, чем продукт является, а чем не является.</p>
   <p>Начинать с <emphasis>да</emphasis> — значит работать вместе со своими коллегами, а не против них.</p>
  </section>
  <section>
   <title>
    <p>Шаг назад. Теперь автоматизируй, автоматизируй, автоматизируй…</p>
    <p>Кэй Хорстман</p>
   </title>
   <image l:href="#i_066.jpg"/>
   <p><strong>Я работал с программистами</strong>, которые в ответ на просьбу посчитать количество строк кода в модуле открывали файлы в текстовом процессоре и пользовались функцией «счетчик строк». То же самое они повторяли через неделю. И еще через неделю. Это было ужасно.</p>
   <p>Я участвовал в проекте с неуклюжей процедурой развертывания: требовалось подписать код, скопировать подписанный код на сервер, выполнить множество щелчков мышью. Кто-то автоматизировал процедуру, и этот сценарий запускался сотни раз во время финального тестирования — гораздо чаще, чем ожидалось. Это было замечательно.</p>
   <p>Так почему же люди делают одну и ту же работу многократно, вместо того чтобы остановиться и потратить время на ее автоматизацию?</p>
   <p><emphasis>Распространенное заблуждение № 1: автоматизация нужна только для тестирования</emphasis></p>
   <p>Да, автоматизация тестирования — это классно, но зачем останавливаться на этом? Любой проект изобилует повторяющимися задачами: управление версиями, компиляция, сборка JAR-файлов, генерация документации, развертывание системы и составление отчетов. Для многих из перечисленных задач эффективнее использовать сценарий, а не указатель мыши. Выполнение рутинных задач ускоряется и становится надежным.</p>
   <p><emphasis>Распространенное заблуждение № 2: у меня есть IDE, поэтому мне не нужна автоматизация</emphasis></p>
   <p>Приходилось ли вам участвовать в спорах с коллегами на тему «А на моей машине все компилируется (все загружается из репозитория, все тесты проходят)»? Современные IDE предлагают тысячи настроек, и фактически невозможно гарантировать, что у всех участников команды настройки будут одинаковыми. Системы автоматизации сборки, такие как Ant или Autotools, обеспечивают контроль и повторяемость.</p>
   <p><emphasis>Распространенное заблуждение № 3: для автоматизации придется изучать экзотические инструменты</emphasis></p>
   <p>Можно успешно построить систему автоматизации на базе хорошего языка командной оболочки (например, bash или PowerShell). Если требуется взаимодействовать с веб-сайтами, воспользуйтесь такими инструментами, как iMacros или Selenium.</p>
   <p><emphasis>Распространенное заблуждение № 4: я не могу автоматизировать эту задачу, потому что не смогу работать с файлами этого формата</emphasis></p>
   <p>Если ваш процесс требует работы с документами Word, электронными таблицами или графикой, автоматизация действительно может стать сложной проблемой. Но так ли вам необходимы эти форматы? А нельзя ли использовать обычный текст? Значения, разделяемые запятой? XML? Средства генерации графики из текстовых файлов? Часто достаточно немного изменить процесс, чтобы получить хорошие результаты и резко сократить рутинные операции.</p>
   <p><emphasis>Распространенное заблуждение № 5: у меня нет времени со всем этим разбираться</emphasis></p>
   <p>Чтобы начать, вам не обязательно досконально изучать bash или Ant. Учитесь на ходу. Когда вы видите задачу, которую можно и нужно автоматизировать, изучите свои инструменты лишь настолько, насколько требуется в данный момент. И занимайтесь этим в самом начале проекта, когда обычно легче найти время. После первого удачного опыта вы (и ваш начальник) убедитесь, что автоматизация окупает потраченные усилия.</p>
  </section>
  <section>
   <title>
    <p>Пользуйтесь инструментами для анализа кода</p>
    <p>Сара Маунт</p>
   </title>
   <image l:href="#i_067.jpg"/>
   <p><strong>Важность тестирования </strong>вколачивают в головы разработчиков программного обеспечения, когда они делают свои первые шаги на этом поприще. Широко распространившиеся в последние годы модульное тестирование, разработка на основе тестирования и методы гибкого программирования свидетельствуют о росте интереса к максимально эффективному использованию тестирования на всех стадиях цикла разработки. Однако тестирование — лишь один из многочисленных инструментов, с помощью которых можно повысить качество кода.</p>
   <p>В те далекие времена, когда язык C еще был молод, процессорное время и память всех видов обходились очень дорого. В первых компиляторах C это учитывалось, поэтому количество проходов по коду сокращалось за счет отказа от некоторых видов семантического анализа. В результате компилятор проверял лишь небольшую часть тех ошибок, которые можно было обнаружить на этапе компиляции.</p>
   <p>Чтобы компенсировать этот недостаток, Стивен Джонсон написал инструмент под названием <emphasis>lint</emphasis> — для прочесывания кода на предмет блох, — и реализовал в нем некоторые методы статического анализа, исключенные из компилятора C. Однако средства статического анализа прославились тем, что давали большое количество ложных срабатываний и часто предупреждали о нарушении стилистических правил, следовать которым необязательно.</p>
   <p>Сегодняшний пейзаж языков, компиляторов и средств статического анализа весьма отличается от прежнего. Память и процессорное время стали относительно дешевыми, поэтому компиляторы могут позволить себе проверку большего числа ошибок. Почти для каждого языка существует хотя бы один инструмент, выявляющий нарушения стилистических правил, стандартные ошибки и иногда трудные для обнаружения ошибки типа возможного разыменования нулевого указателя. Более сложные инструменты, такие как Splint для C или Pylint для Python, допускают настройку, то есть возможность выбрать ошибки и предупреждения, о которых будет сообщать инструмент, с помощью файла конфигурации, параметров командной строки или настроек IDE. Splint даже позволяет аннотировать код комментариями, поясняющими работу программы.</p>
   <p>Если эти средства не помогают, и вам приходится искать простые ошибки или нарушения стандартов, которые не обнаруживают ваш компилятор, IDE или инструмент типа lint, можно написать собственный статический анализатор. Это не так трудно, как может показаться. Большинство языков, особенно <emphasis>динамических</emphasis>, в составе стандартной библиотеки предлагают абстрактное синтаксическое дерево и инструменты компилирования. Вам не помешает заглянуть в дальние уголки стандартных библиотек, используемых разработчиками языка, с которым вы работаете, так как там встречаются сокровища, полезные для статического анализа и динамического тестирования. Так, в стандартной библиотеке Python есть дизассемблер, который сообщит вам, какой байт-код использовался для генерации некоторого скомпилированного кода или объекта. Многим покажется, будто это какой-то загадочный инструмент для команды разработчиков python-dev, разрабатывающей компилятор Python, но для повседневной работы он удивительно полезен. Например, с помощью этой библиотеки можно дизассемблировать последнюю трассировку стека и точно выяснить, какая команда байт-кода сгенерировала последнее необработанное исключение.</p>
   <p>Так что не ограничивайте свой контроль качества одним тестированием — используйте инструменты для анализа и не бойтесь создавать свои собственные.</p>
  </section>
  <section>
   <title>
    <p>Тестируйте требуемое, а не случайное поведение</p>
    <p>Кевлин Хенни</p>
   </title>
   <image l:href="#i_018.jpg"/>
   <p><strong>Типичное заблуждение при тестировании</strong> — воображать, что тестировать необходимо именно то, что делает реализация. На первый взгляд в этом не видно ничего дурного. Однако если сформулировать эту проблему иначе, она становится понятнее: частой ошибкой при тестировании является привязка тестов к особенностям реализации, тогда как эти особенности являются случайными и не имеют отношения к требуемой функциональности.</p>
   <p>Когда тесты жестко связаны с особенностями реализации, изменения в реализации, которые в действительности совместимы с требуемым поведением, могут привести к отказу тестов. Из-за этого будут возникать ложные сообщения об ошибках. Обычно программисты реагируют на это исправлением теста или исправлением кода. Принятие ложного срабатывания за истинное часто есть следствие страха, неуверенности и сомнений. Это равносильно принятию случайного поведения за требуемое. При исправлении теста программист либо изменяет тест так, чтобы он проверял требуемое поведение (что хорошо), либо привязывает тест к новой реализации (что плохо). Тесты должны быть достаточно точными, но они должны быть и правильными.</p>
   <p>Например, требования к тройственному сравнению, такому как String.compareTo в Java или strcmp в C, таковы: результат должен быть отрицательным, если левая часть меньше правой, положительным, если левая часть больше правой, и нулем, если они равны. Такого рода сравнение используется во многих API, включая функцию сравнения для qsort в C и compareTo в интерфейсе Java Comparable. Обычно в реализациях для обозначения <emphasis>меньше</emphasis> и <emphasis>больше</emphasis> используются конкретные значения -1 и +1, в связи с чем программисты иногда ошибочно предполагают, что именно эти значения и выражают действительное требование, и пишут тесты, основанные на этом предположении.</p>
   <p>Похожая проблема возникает, когда тесты жестко привязаны к количеству пробелов, наличию определенных слов и другим аспектам форматирования и представления текста, которые являются особенностью реализации. Наличие пробелов не должно влиять на результат, если только вы не пишете, скажем, XML-генератор с настройкой форматирования. Аналогичным образом жестко фиксированное расположение кнопок и меток на элементах управления пользовательского интерфейса уменьшает возможность в будущем менять эти несущественные детали. Мелкие изменения в реализации и несущественные изменения в форматировании внезапно приводят к тому, что проект не собирается.</p>
   <p>Слишком конкретные тесты часто создают проблему при модульном тестировании по принципу белого ящика. Тесты белого ящика используют структуру кода, чтобы определить, какие тесты нужны. Типичная ошибка при таком тестировании — создание тестов, которые в конечном итоге проверяют, что код делает то, что он делает. Простое подтверждение того, что и так очевидно из кода, не имеет никакой ценности и приводит к возникновению ложного чувства прогресса и надежности.</p>
   <p>Чтобы быть эффективными, тесты должны проверять обязательства по контракту, а не бессмысленно повторять реализацию. Они должны рассматривать тестируемые модули как черные ящики, описывая контракты интерфейса в исполняемой форме. Поэтому следите, чтобы проверяемое поведение совпадало с требуемым поведением.</p>
  </section>
  <section>
   <title>
    <p>Тестируйте точно и конкретно</p>
    <p>Кевлин Хенни</p>
   </title>
   <image l:href="#i_018.jpg"/>
   <p><strong>При тестировании модуля кода важно проверять </strong>его требуемое и существенное поведение, а не случайное поведение конкретной реализации. Но из этого не следует, что тесты могут быть неопределенными. Тесты должны быть точными <emphasis>и</emphasis> конкретными.</p>
   <p>В качестве иллюстрации можно взять тестирование проверенных и надежных классических процедур сортировки. Программисты не так часто пишут код алгоритмов сортировки, и все же каждый считает, будто знает, каким должен быть результат. Ведь сортировка так хорошо всем знакома. Однако это поверхностное знакомство может помешать обнаружить определенные неверные допущения.</p>
   <p>Если спросить у программиста, что он собирается тестировать, в подавляющем большинстве случаев он ответит что-то вроде: «Нужно проверить, что результат будет отсортированной последовательностью элементов». Это правда, но не вся правда. Если программисту предложить уточнить проверяемое условие, то многие добавят, что результирующая последовательность должна быть той же длины, что и исходная. Верно, но и этого мало. Возьмем, например, последовательность:</p>
   <p>3 1 4 1 5 9</p>
   <p>Последовательность, приведенная ниже, удовлетворяет постусловию сортировки в неубывающем порядке и условию равенства длин исходной и результирующей последовательностей:</p>
   <p>3 3 3 3 3 3</p>
   <p>Хотя результат соответствует спецификации, едва ли это то, что мы хотели получить! Пример взят из реального производственного кода (к счастью, ошибка была обнаружена до его выпуска). В этом случае опечатка или секундная потеря концентрации привела к тому, что сложный алгоритм всего лишь заполнял результат первым элементом исходного массива.</p>
   <p>Полное постусловие состоит в том, что результат отсортирован <emphasis>и</emphasis> содержит перестановку исходных значений. Оно накладывает правильные ограничения на требуемое поведение. То, что результат имеет одинаковую длину с входными данными, очевидно и не требует повторения.</p>
   <p>Даже такая формулировка постусловия не гарантирует, что это хороший тест. Хороший тест должен легко читаться. Он должен быть достаточно понятным и простым, чтобы сразу можно было увидеть, корректен он или нет. Если у вас нет готового кода для проверки того, что последовательность отсортирована и что одна последовательность содержит перестановку значений другой, не исключено, что тестирующий код окажется сложнее, чем тестируемый. Как заметил Тони Хоар (Tony Hoare):</p>
   <cite>
    <p>Есть два способа конструировать программное обеспечение: можно сделать его таким простым, чтобы отсутствие дефектов было очевидно, а можно сделать таким сложным, что в нем не будет очевидных дефектов.</p>
   </cite>
   <p>Использование конкретных примеров устраняет такую случайно внесенную сложность и возможность случайности вообще. Пусть, например, дана последовательность:</p>
   <p>3 1 4 1 5 9</p>
   <p>Результат сортировки таков:</p>
   <p>1 1 3 4 5 9</p>
   <p>Никакой другой результат не подойдет. Другого ответа быть не может.</p>
   <p>Конкретные примеры помогают проиллюстрировать общее поведение доступным и однозначным способом. Результатом добавления элемента в пустую коллекцию будет не только то, что она станет непустой: в коллекции должен появиться один элемент, причем он будет равен добавленному. Два или более элементов тоже означают, что коллекция не пуста, но это ошибка. Один элемент в коллекции, но с другим значением — тоже ошибка. Результатом добавления строки в таблицу является не просто то, что в ней становится на одну строку больше; следует проверить и то, что по ключу этой строки можно найти ее в таблице. И так далее.</p>
   <p>Описывая поведение, тесты должны быть не только правильными — они должны быть точными.</p>
  </section>
  <section>
   <title>
    <p>Тестируйте во сне (и по выходным)</p>
    <p>Раджит Аттапатту</p>
   </title>
   <image l:href="#i_007.jpg"/>
   <p><strong>Успокойтесь</strong>. Я имею в виду не оффшорные центры разработки программного обеспечения, не сверхурочную работу по выходным и не ночные смены. Я просто хочу обратить ваше внимание на то, какая огромная вычислительная мощь находится в нашем распоряжении. Точнее, как мало мы ее используем, чтобы хоть немного облегчить жизнь программиста. Вы постоянно сталкиваетесь с нехваткой вычислительной мощности в течение рабочего дня? Если так, то чем заняты ваши серверы тестирования в нерабочее время? Очень часто тестовые серверы простаивают ночью и по выходным. Вы можете использовать этот резерв.</p>
   <p>• <emphasis>Был ли за вами грешок сохранить изменения в репозиторий, не прогнав все тесты?</emphasis> Одна из главных причин, по которой программисты не прогоняют наборы тестов перед сохранением изменений в репозиторий, — тестирование выполняется слишком долго. Когда горят сроки и растет давление, программист вполне естественно начинает срезать углы. Одно из решений этой проблемы — разбить набор тестов хотя бы на два профиля. Создайте меньший обязательный профиль тестов, который быстро отрабатывает и который можно будет запускать перед каждым сохранением. Все остальные профили (и обязательный на всякий случай тоже) можно автоматизировать и запускать по ночам, чтобы иметь к утру готовый результат.</p>
   <p>• <emphasis>У вас была возможность проверить стабильность работы вашего продукта? </emphasis>Для выявления утечек памяти и других проблем со стабильностью критически важно проводить тесты, которые выполняются часами и сутками. Их редко запускают в дневное время, потому что они отнимают время и ресурсы. Зато можно автоматически выполнять нагрузочное тестирование в ночное время и по выходным. С 6 вечера пятницы до 6 утра понедельника у вас есть 60 часов, которые можно занять тестированием.</p>
   <p>• <emphasis>Удается ли вам получить доступ к среде для тестирования производительности в удобное для вас время?</emphasis> Мне приходилось видеть, как команды ругаются одна с другой, выбивая себе доступ к среде для тестирования производительности. Мало кому удается получить в достаточном количестве удобное время для тестирования в рабочие часы, хотя по окончании рабочего дня серверы практически простаивают. В то же время серверы и сеть не так сильно загружены ночью и по выходным. Это идеальное время для выполнения тестов на производительность и получения надежных результатов.</p>
   <p>• <emphasis>Не слишком ли много у вас разных конфигураций, чтобы тестировать их вручную?</emphasis> Часто продукт рассчитан на работу на нескольких платформах. Например, 32-разрядные и 64-разрядные версии для Linux, Solaris и Windows или просто для нескольких версий одной операционной системы. Дело осложняется еще и тем, что современные приложения допускают применение множества транспортных механизмов и протоколов (HTTP, AMQP, SOAP, CORBA и т. д.). Проверка всех возможных сочетаний требует очень много времени и чаще всего выполняется ближе к выпуску продукта в силу ограниченности ресурсов. Увы, некоторые ужасные ошибки обнаруживаются лишь на этой стадии, когда уже слишком поздно.</p>
   <p>Запуск автоматизированных тестов по ночам или на выходных позволит чаще проверять все эти сочетания. Стоит чуть пораскинуть мозгами и приложить некоторые познания в написании сценариев, и вы сможете создать с помощью планировщика <emphasis>cron</emphasis> несколько заданий, которые будут запускать тесты по ночам и на выходных. Существует также множество полезных инструментов для тестирования. В некоторых организациях созданы даже серверные сетки, распределяющие серверы между разными отделами и командами с целью более эффективного использования ресурсов. Если в вашей организации есть такие средства, вы можете отдать тесты на выполнение в ночное время или на выходных.</p>
  </section>
  <section>
   <title>
    <p>Тестирование — это инженерная строгость в разработке программного обеспечения</p>
    <p>Нил Форд</p>
   </title>
   <image l:href="#i_068.jpg"/>
   <p><strong>Разработчики программного обеспечения обожают </strong>использовать вымученные метафоры, пытаясь рассказать о своей работе родственникам, супругам и прочим далеким от техники людям. Часто мы ссылаемся на такие области, как строительство мостов, или другие «строгие» инженерные дисциплины. Но все эти метафоры быстро разваливаются на части, стоит их шатнуть чуть сильнее. Оказывается, что разработка программного обеспечения во многих ключевых аспектах <emphasis>отличается</emphasis> от «строгих» инженерных дисциплин.</p>
   <p>В сравнении с «реальной» инженерией разработка программ находится примерно на том уровне, где были строители мостов в далеком прошлом. В те дни стандартный подход был такой: сначала построить мост, а потом пустить по нему тяжелую повозку. Если выдержит, значит, мост хороший. Если нет — что ж, возвращаемся к чертежной доске. За последние несколько тысяч лет инженеры развили математику и физику до такой степени, что отпала необходимость строить объект, чтобы понять, как он работает, — для поиска надежных решений строительство уже не требуется. Ничего подобного в программировании нет и, вероятно, не будет, потому что программное обеспечение имеет очень существенные отличия. Классическое исследование разницы между программной и обычной инженерией провел Джек Ривс (Jack Reeves) в статье «What is Software Design?»,<a l:href="#n_28" type="note">[28]</a> опубликованной в «C++ Journal» в 1992 году. Статья, написанная почти два десятилетия назад, и сегодня на удивление верна. Ривс в своем сравнении нарисовал мрачную картину, но в 1992 году еще не было одной вещи: серьезного и повсеместного подхода к тестированию программного обеспечения.</p>
   <p>Тестировать «реальные» объекты тяжело, потому что, прежде чем тестировать, их нужно построить, а это отбивает охоту возводить рискованную постройку только для того, чтобы посмотреть, что из этого получится. Но в отрасли программного обеспечения «строительство» обходится смехотворно дешево. Мы создали целую экосистему инструментов, с помощью которых его легко осуществить: модульное тестирование, объекты-макеты, средства тестирования и многое другое. Другие инженеры были бы безумно рады возможности что-то построить и протестировать в реальных условиях. Мы, разработчики программного обеспечения, должны принять тестирование в качестве главного (но не единственного) механизма верификации для программ. Не нужно ждать появления своего рода «высшей математики» для программирования, потому что в нашем распоряжении уже есть инструменты, гарантирующие хорошую инженерную практику. В этом смысле у нас есть оружие против менеджеров, которые говорят нам, что «нет времени для тестирования». Строитель моста никогда не услышит от своего начальника: «Не трать время на расчет прочности этого здания — мы не укладываемся в график». Если признать, что тестирование — это реальный способ добиться воспроизводимости и качества в отрасли ПО, это позволит нам, разработчикам, отвергать доводы против тестирования как безответственные с профессиональной точки зрения.</p>
   <p>Тестирование точно так же требует времени, как его требует и расчет прочности моста. Оба процесса служат гарантии качества конечного продукта. Разработчикам программного обеспечения пора взять на себя ответственность за то, что они производят. Одного тестирования недостаточно, но оно необходимо. Тестирование <emphasis>и есть</emphasis> инженерная строгость в разработке программного обеспечения.</p>
  </section>
  <section>
   <title>
    <p>Думайте состояниями</p>
    <p>Никлас Нильссон</p>
   </title>
   <image l:href="#i_069.jpg"/>
   <p><strong>У тех, кто живет в реальном мире</strong>, странные представления о том, что такое состояние. Сегодня утром я заехал в местный магазин, чтобы подготовиться к очередному дню переработки кофеина в код. Я предпочитаю это делать за чашечкой латте, а поскольку я не нашел в продаже молока, то обратился к сотруднице магазина.</p>
   <p>«У нас абсолютно, ну совершенно абсолютно закончились запасы молока».</p>
   <p>Программисту странно слышать такое высказывание. Либо у вас закончилось молоко, либо нет. Не существует каких-то промежуточных степеней отсутствия молока. Возможно, мне пытались сообщить, что молока не будет целую неделю, но результат тот же: придется весь день пить эспрессо.</p>
   <p>В большинстве практических ситуаций такое легкомысленное отношение людей к состояниям не вызывает никаких проблем. К несчастью, многие программисты тоже имеют весьма смутное представление о состояниях, а это уже проблема.</p>
   <p>Рассмотрим простой интернет-магазин, который принимает к оплате только кредитные карты и не выписывает клиентам счета. При этом класс Order (заказ) содержит такой метод:</p>
   <p><code>public boolean isComplete() {</code></p>
   <p><code> return isPaid() &amp;&amp; hasShipped();</code></p>
   <p><code>}</code></p>
   <p>Разумно, так? Так вот, хоть это выражение и выделено в аккуратный метод, а не разбросано по всему коду путем копирования и вставки, его вообще не должно существовать. А то, что оно существует, указывает на проблему. Какую? Нельзя доставить заказ, прежде чем он оплачен. Поэтому hasShipped не может вернуть true, пока isPaid не вернет true, а в этом случае часть выражения избыточна. Возможно, вам все же нужен метод isComplete для ясности кода, но тогда он должен выглядеть как-то так:</p>
   <p><code>public boolean isComplete() {</code></p>
   <p><code> return hasShipped();</code></p>
   <p><code>}</code></p>
   <p>В своей работе я постоянно сталкиваюсь и с недостающими, и с избыточными проверками. Я привел крошечный пример, но если добавить сюда отмену заказа и возврат денег, дело усложняется, и потребность в правильной обработке состояний возрастает. В данном случае заказ может находиться только в одном из трех разных состояний:</p>
   <p>• <strong>В процессе</strong>: можно добавлять и удалять товары. Нельзя осуществлять доставку.</p>
   <p>• <strong>Оплачен</strong>: нельзя добавлять и удалять товары. Можно доставлять.</p>
   <p>• <strong>Доставлен</strong>: конец. Больше никаких изменений.</p>
   <p>Наличие этих состояний важно, и перед выполнением операций следует проверять, что вы в нужном состоянии, а также проверять, что из текущего состояния вы перейдете в допустимое. Короче, нужно защищать объекты тщательно и в правильных местах.</p>
   <p>Но как начать думать состояниями? Выделить выражения в осмысленные методы — очень хорошее начало, но это лишь начало. Главное — понимать конечные автоматы. Знаю, у вас сохранились неприятные воспоминания о них из курса информатики, но оставьте это в прошлом. Конечные автоматы — это не особенно сложно. Рисуйте их, тогда их легче понять и обсуждать. Запускайте свой код в тестовом режиме, чтобы разделить допустимые и недопустимые состояния, а также переходы между ними, и поддерживать их корректность. Изучите шаблон State. Освоившись с ним, почитайте о контрактном программировании (design by contract). Оно помогает обеспечить допустимость состояния путем проверки данных и самого объекта на входе и выходе из каждого открытого метода.</p>
   <p>Если состояние некорректно, значит, в коде ошибка, и вы рискуете потерять данные, если не прервете выполнение. Если вам кажется, что проверки состояний замусоривают код, научитесь скрывать их с помощью специальных инструментов, генерации кода, вплетений (weaving) или аспектов. Независимо от того, какой метод вы выберете, подход на основе состояний сделает ваш код более простым и надежным.</p>
  </section>
  <section>
   <title>
    <p>Одна голова хорошо, но две — часто лучше</p>
    <p>Эдриан Уайбл</p>
   </title>
   <image l:href="#i_070.jpg"/>
   <p><strong>Программирование требует вдумчивости</strong>, а вдумчивость может существовать только в уединении. Такой стереотип присущ многим программистам.</p>
   <p>Но стиль «одинокого волка» в программировании уже давно отступает перед командным подходом, который, смею утверждать, улучшает качество работы, повышает производительность и позволяет разработчикам получать большее удовольствие от работы. Новый подход заставляет разработчиков работать друг с другом теснее, а также работать с теми, кто не участвует в разработке, — системными и бизнес-аналитиками, специалистами в области контроля качества и пользователями.</p>
   <p>Что это означает для разработчиков? Уже недостаточно быть экспертом в области технологии программирования. Вы должны научиться эффективно работать с другими людьми.</p>
   <p>Сотрудничество на работе — это не игра в вопросы и ответы и не долгие совещания. Сотрудничество — это засучить рукава вдвоем с коллегой и приступить к трудной задаче.</p>
   <p>Я большой поклонник парного программирования. Можно назвать это «экстремальным сотрудничеством». Когда я работаю в паре, мое мастерство программиста растет. Если я слабее своего партнера в предметной области или в какой-либо технологии, то просто учусь на его опыте. Когда я сильнее в каком-то аспекте, то начинаю лучше понимать, что я знаю и чего не знаю, поскольку мне приходится давать объяснения. В любом случае мы оба вносим свой вклад и учимся друг у друга.</p>
   <p>Работая в паре, мы привносим свой коллективный опыт — как опыт в предметной области, так и технический — для решения стоящей перед нами задачи. Вместе мы способны предложить свое уникальное видение и опыт, что позволяет нам решать задачи эффективно и рационально. Даже при наличии значительной разницы в уровне знаний предметной области или в технологических вопросах, более опытный партнер все равно чему-то учится у второго — ну, скажем, узнаёт о новых «горячих клавишах» либо встречается с новым инструментом или библиотекой. Для менее опытного партнера такая работа — замечательный способ «набрать скорость».</p>
   <p>Парное программирование популярно у сторонников гибкой разработки, хотя и не только у них. Иногда противники парной работы интересуются: «А почему я должен платить двум программистам за выполнение работы одного?» Конечно, не должны. Но дело в том, что работа в паре повышает качество, улучшает понимание предметной области, технологий и приемов работы (скажем, неочевидных приемов работы с интегрированной средой разработки, IDE), а также уменьшает отрицательное влияние лотерейного риска (когда один из ваших специалистов-разработчиков выигрывает в лотерею и увольняется на следующий же день).</p>
   <p>Какова долгосрочная выгода от того, что вы узнаете о новой «горячей клавише»? Какой мерой мы измерим улучшение качества продукта, достигнутое работой в паре? Какой мерой измерить пользу от того, что ваш партнер не дал вам зайти в тупик в решении сложной проблемы? Одно исследование свидетельствует о приросте эффективности и скорости на 40 %.<a l:href="#n_29" type="note">[29]</a> А как оценить уменьшение «лотерейного риска»? Большинство плюсов работы в паре трудно измерить.</p>
   <p>Кто должен работать в паре и с кем? Если вы новичок в команде, то важно, чтобы вашим напарником оказался опытный специалист. Столь же важно, чтобы он обладал хорошими навыками общения и наставничества. Если у вас недостаточно знаний в предметной области, работайте в паре с тем, кто ее хорошо знает.</p>
   <p>Если нет уверенности, экспериментируйте: сотрудничайте с коллегами. Создавайте пары для решения интересных сложных проблем. Посмотрите, что у вас получится. Попробуйте несколько раз.</p>
  </section>
  <section>
   <title>
    <p>Две ошибки могут гасить одна другую (и тогда их трудно исправлять)</p>
    <p>Аллан Келли</p>
   </title>
   <image l:href="#i_010.jpg"/>
   <p><strong>Код никогда не лжет, но может быть внутренне противоречивым</strong>. Иногда противоречия вызывают недоумение: как это вообще может работать?</p>
   <p>В своем интервью<a l:href="#n_30" type="note">[30]</a> Аллан Клампп (Allan Klumpp), ведущий разработчик программного обеспечения для лунного модуля Apollo, раскрыл тот факт, что ПО управления двигателями содержало дефект, из-за которого спускаемый модуль должен был вести себя неустойчиво. Однако в программе была еще одна ошибка, компенсировавшая первую, и при посадке Apollo 11 и 12 на Луну это ПО успешно использовалось, прежде чем ошибки были обнаружены и исправлены.</p>
   <p>Рассмотрим функцию, которая возвращает код завершения. Допустим, она возвращает false, когда должна была бы вернуть true. Теперь представим, что в вызывающей функции не реализована проверка возвращаемого значения. Все работает прекрасно, пока однажды кто-то не обнаружит отсутствие проверки и не вставит ее.</p>
   <p>Или рассмотрим приложение, которое хранит состояние в виде документа XML. Допустим, что один из узлов некорректно записывается как TimeToLive (время жизни) вместо TimeToDie (время смерти), как следовало бы, если верить документации. Все будет хорошо, пока код записи и код чтения содержат одну и ту же ошибку. Но исправьте ее в одном месте или добавьте новое приложение, читающее тот же документ, и симметрия рухнет, как и весь код.</p>
   <p>Когда в коде два дефекта, а отказ на вид только один, может стать бесполезным сам методический подход к исправлению ошибок. Получив сообщение об ошибке, разработчик обнаруживает дефект, исправляет его и проводит тестирование. Возникает тот же самый отказ, но уже в силу действия второго дефекта. Тогда отменяется первое исправление, код снова исследуется, и обнаруживается второй дефект, который и исправляется. Но первый дефект снова на месте, снова возникает тот же отказ, и тогда откатывается второе исправление. Процесс повторяется, но теперь разработчик отказался от двух исправлений и пытается найти третье, чего ему никогда не удастся.</p>
   <p>Взаимодействие двух дефектов в коде, проявляющих себя одинаковым сбоем, не только затрудняет решение проблемы, но и заводит разработчиков в тупик, где они обнаруживают, что их ранние решения проблемы были правильными.</p>
   <p>Такое случается не только с кодом: проблемы встречаются в документах, содержащих технические требования. И они способны распространяться, подобно вирусу, из одного места в другое. Ошибка в коде компенсирует ошибку в письменной спецификации.</p>
   <p>Вирус может поразить и человека: пользователи обнаруживают, что когда программа говорит «левая», она имеет в виду «правая», и подстраивают под нее свои действия. Они даже сообщают о проблеме новым пользователям: «Запомни, когда приложение говорит, что нужно щелкнуть левой кнопкой, это значит, что нужно щелкнуть правой». Стоит исправить ошибку, и пользователям придется переучиваться.</p>
   <p>Одиночные ошибки, как правило, легко обнаруживаются и исправляются. Проблемы возникают в случае множества ошибок, требующих множества исправлений. Частично это вызвано тем, что простые проблемы легко исправлять, и потому их обычно не откладывают, а более сложные проблемы копятся до лучших времен.</p>
   <p>Нет простого ответа на вопрос, как решать проблемы, возникающие в связи с родственными дефектами. Нужно помнить об их существовании, иметь ясную голову и готовность при необходимости рассмотреть все возможности.</p>
  </section>
  <section>
   <title>
    <p>Написание кода в духе Убунту для друзей</p>
    <p>Аслам Хан</p>
   </title>
   <image l:href="#i_071.jpg"/>
   <p><strong>Очень часто мы программируем в изоляции</strong>, и наши программы отражают как нашу личную интерпретацию проблемы, так и очень личное ее решение. Мы можем работать в команде, но и тогда мы изолированы как команда. Мы легко забываем, что код, созданный в такой изоляции, будут выполнять, использовать и расширять другие люди. Легко упустить из вида социальную сторону программирования. Создание программ — одновременно и техническое, и социальное занятие. Нам следует чаще оглядываться вокруг, чтобы понять, что мы работаем не изолированно и что мы несем общую ответственность за возможный успех не только группы разработчиков, но и каждого человека вокруг нас.</p>
   <p>Можно написать код высокого качества в отрыве от реальности, полностью уйдя в себя. С одной стороны, это эгоцентричный подход (<emphasis>эго</emphasis> не в смысле высокомерия, а в смысле личности). Это философия Дзен, и в момент создания программы в этом случае действительно существуете только вы. Я всегда стараюсь жить в текущем моменте, поскольку это помогает приблизиться к лучшему качеству, но при этом я живу в <emphasis>своем</emphasis> текущем моменте. А как же быть с текущим моментом моей команды? Мой момент и момент моей команды — совпадают ли они?</p>
   <p>На языке зулу философия Убунту определяется как «Умунту нгумунту нгабанту», что в первом приближении можно перевести так: «Личность — это личность через (другие) личности». Я становлюсь лучше, поскольку ты делаешь меня лучше своими добрыми поступками. Но, с другой стороны, вы хуже делаете свое дело, если я плохо делаю свое. Для разработчиков это сводится к тому, что «разработчик — это разработчик через (других) разработчиков». Если опуститься до «железа», то «код — это код через (другой) код».</p>
   <p>Качество кода, который пишу я, влияет на качество кода, который пишете вы. А что если мой код низкого качества? Даже если вы напишете очень чистый код, там, где вы будете пользоваться моим кодом, качество вашего кода упадет примерно до уровня моего кода. Можно применять множество шаблонов и приемов, чтобы ограничить ущерб, но полностью от него уже не избавиться. Я заставил вас делать больше, чем требовалось, просто потому, что не думал о вас, когда жил в своем моменте.</p>
   <p>Я могу считать свой код чистым, но все же можно сделать его еще лучше, придерживаясь духа Убунту. Как выглядит код в духе Убунту? Он выглядит, как хороший, ясный код. И речь идет даже не о коде как артефакте. Все дело в акте создания этого артефакта. Программирование для своих друзей в духе Убунту поможет вашей команде жить, согласуясь с собственными ценностями, и укреплять свои принципы. Следующий человек, который каким-либо образом прикоснется к вашему коду, станет лучше как личность и как разработчик.</p>
   <p>Дзен — это дело личное. Убунту — это Дзен для группы людей. Крайне редко мы пишем программы исключительно для самих себя.</p>
  </section>
  <section>
   <title>
    <p>Утилиты UNIX — ваши друзья</p>
    <p>Диомидис Спинеллис</p>
   </title>
   <image l:href="#i_049.jpg"/>
   <p><strong>Если бы, отправляясь в изгнание на необитаемый остров</strong>, я должен был выбирать между IDE и набором инструментов UNIX, я бы, не колеблясь, выбрал утилиты UNIX. Вот причины, по которым следует овладеть искусством работы с утилитами UNIX.</p>
   <p>Во-первых, IDE ориентированы на конкретные языки, а утилиты UNIX могут работать с любым материалом в текстовом виде. В современных условиях разработки, когда новые языки и нотации появляются каждый год, затраты на изучение работы с утилитами UNIX окупятся многократно.</p>
   <p>Кроме того, IDE предлагают только те команды, которые решили реализовать их создатели, тогда как средствами UNIX можно выполнить любую мыслимую задачу. Их можно представить себе как классические (до появления Bionicle) блоки Lego: вы создаете собственные команды, просто комбинируя маленькие, но универсальные утилиты UNIX. К примеру, следующая последовательность представляет собой текстовую реализацию анализа сигнатуры по Каннингему — последовательность использования точки с запятой, фигурных скобок и кавычек в любом файле может многое сказать о его содержимом:</p>
   <p><code>for i in *.java; do </code></p>
   <p><code>   echo — n "$i: "</code></p>
   <p><code>   sed ’s/[~"{};]//g' $i | tr — d '\n'</code></p>
   <p><code>   echo</code></p>
   <p><code>done</code></p>
   <p>Далее, каждая изученная вами операция IDE специфична для данной задачи, например добавление нового шага в конфигурацию отладочной сборки проекта. Напротив, более глубокое изучение утилит UNIX повышает вашу эффективность при решении любых задач. Например, я применил утилиту <emphasis>sed</emphasis>, использованную в приведенной выше последовательности команд, чтобы преобразовать процедуру сборки проекта для кросскомпиляции на многопроцессорных архитектурах.</p>
   <p>Утилиты UNIX были разработаны в ту эпоху, когда многопользовательские компьютеры располагали ОЗУ размером в 128 Кбайт. При их создании была проявлена такая изобретательность, что сейчас они могут очень эффективно обрабатывать огромные наборы данных. Большинство утилит представляет собой фильтры, обрабатывающие по одной строке за раз, а потому нет верхней границы объема данных, которые они могут обработать. Вы хотите узнать, сколько редакций хранится в дампе английской Википедии, имеющем размер полтерабайта? Простой вызов команды</p>
   <p><code>grep ‘ &lt;revision&gt;’ | wc — l</code></p>
   <p>без труда даст вам ответ. Если какая-то последовательность команд покажется вам полезной в общем случае, можно создать на ее основе сценарий интерпретатора команд, применив в нем некоторые исключительно мощные программные конструкции, такие как направление данных в циклы и условные операторы. Еще более впечатляет, что конвейерное выполнение команд UNIX (как в предыдущем примере) естественным образом распределяет нагрузку по нескольким конвейерам обработки современных многоядерных процессоров.</p>
   <p>Принцип «прекрасное в малом» и открытость реализаций утилит UNIX делают их доступными повсеместно, даже на платформах с ограниченными ресурсами, таких как медиа-проигрыватель, подключаемый к телевизору, или маршрутизатор DSL. Такие устройства едва ли располагают мощным графическим интерфейсом пользователя, но часто содержат приложение BusyBox, предлагающее наиболее часто используемые утилиты. Если вы занимаетесь разработкой под Windows, среда Cygwin предложит вам все мыслимые утилиты UNIX как в виде исполняемых файлов, так и в виде исходного кода.</p>
   <p>Наконец, если вас не удовлетворяют существующие утилиты UNIX, вы можете легко расширить их набор. Напишите программу, которая решает нужную вам задачу, на любом понравившемся вам языке, соблюдая следующие простые правила: программа должна выполнять одну единственную задачу, читать данные со стандартного ввода в виде строк текста и печатать результат на стандартный вывод без всяких заголовков и прочих украшательств. Параметры, влияющие на функционирование утилиты, задаются в командной строке. Следуйте этим правилам, и тогда «Земля — твое, мой мальчик, достоянье».</p>
  </section>
  <section>
   <title>
    <p>Правильно выбирайте алгоритмы и структуры данных</p>
    <p>Ян Кристиаан ван Винкель</p>
   </title>
   <image l:href="#i_072.jpg"/>
   <cite>
    <p>Крупный банк с большим количеством филиалов пожаловался, что купленные для кассиров новые компьютеры работают слишком медленно. Это было еще до повсеместного использования интернет-банкинга, и банкоматы тоже не были так широко распространены, как сейчас. Люди ходили в банк гораздо чаще, а из-за медленно работающих компьютеров выстраивались очереди. Через какое-то время банк пригрозил разорвать контракт с поставщиком.</p>
    <p>Поставщик направил в банк специалиста по анализу и настройке производительности, чтобы выяснить, в чем причина задержек. Тот быстро нашел на терминале программу, съедавшую почти всю производительность процессора. Посредством инструмента профилирования он нашел в этой программе функцию, виновную в происходящем. Ее исходный код выглядел так:</p>
    <p><code>for (i=0; i&lt;strlen(s); ++i) {</code></p>
    <p><code>  if (… s[i]…)…</code></p>
    <p><code>}</code></p>
    <p>При этом строка s обычно содержала несколько тысяч символов. Код (который был написан в самом банке) быстро изменили, и с тех пор банковские кассиры зажили счастливо…</p>
   </cite>
   <p><strong>Почему программисту не пришло в голову </strong>ничего умнее, чем написать код с квадратичной сложностью без всякой необходимости?</p>
   <p>При каждом вызове strlen программа просматривает каждый из нескольких тысяч символов строки, пока не будет обнаружен завершающий ее нулевой символ. Строка при этом не меняется. Заранее вычислив ее длину, программист избавился бы от тысяч вызовов strlen (и миллионов итераций цикла):</p>
   <p><code>n=strlen(s);</code></p>
   <p><code>for (i=0; i&lt;n; ++i) {</code></p>
   <p><code>   if (… s[i]…)…</code></p>
   <p><code>}</code></p>
   <p>Всем известен принцип «сделай так, чтобы код работал, потом сделай так, чтобы он работал быстро», который направлен против оптимизаций на микроуровне. Но по приведенному примеру можно решить, что программист исполнил макиавеллевское адажио «сначала сделай так, чтобы код работал медленно».</p>
   <p>Подобная бездумность встречается, и нередко. И дело не только в том, что не нужно «заново изобретать колесо». Иногда молодые программисты бросаются, не особо раздумывая, писать код и вдруг «изобретают» пузырьковую сортировку. При этом они, случается, еще и хвастают этим.</p>
   <p>Обратной стороной выбора правильного алгоритма является выбор структуры данных. Этот выбор может серьезно повлиять на скорость работы: если для хранения коллекции в миллион объектов, по которой нужно выполнять поиск, вы используете связный список — а не структуру с хешированием данных либо двоичное дерево, — пользователю найдется что сказать насчет вашего умения программировать.</p>
   <p>Программисты должны не изобретать колесо, а по возможности использовать имеющиеся библиотеки. Но, чтобы избежать таких проблем, как у вышеупомянутого банка, они должны также обладать знаниями об алгоритмах и возможностях их масштабирования. Что делает современные текстовые редакторы такими же медлительными, как старые программы 1980-х типа WordStar — только ли навороченный интерфейс? Многие говорят, что в программировании важнейшее значение имеет повторное использование кода. Но прежде всего программист должен знать, когда, что и как использовать повторно. Для этого ему нужно знать предметную область, а также алгоритмы и структуры данных.</p>
   <p>Хороший программист должен также знать, когда стоит использовать плохой алгоритм. Например, если предметная область такова, что в ней не может быть больше пяти элементов (скажем, количество костей в покере на костях), вы понимаете, что сортировать придется не более пяти элементов. В таком случае пузырьковая сортировка действительно может оказаться наиболее разумным выбором. На каждой улице бывает праздник.</p>
   <p>Поэтому прочтите несколько хороших книг — и хорошенько в них разберитесь. А если вы глубоко изучите «Искусство программирования» Дональда Кнута, вам может даже повезти: найдите у автора ошибку, и вы получите от него чек на один шестнадцатеричный доллар ($2.56).</p>
  </section>
  <section>
   <title>
    <p>Многословный журнал лишит вас сна</p>
    <p>Йоханнес Бродуолл</p>
   </title>
   <image l:href="#i_041.jpg"/>
   <p><strong>Когда я встречаю систему</strong>, которая достаточно давно разрабатывается или функционирует, первым признаком реальных неприятностей всегда оказывается «грязный» журнал. Вы знаете, о чем я говорю: это когда переход по ссылке при нормальной работе с веб-страницей приводит к целому потоку сообщений, записываемых в единственный журнал системы. Слишком большое количество записей в журнале может быть столь же бесполезным, как и их полное отсутствие.</p>
   <p>Если ваши системы похожи на мои, то когда заканчивается ваша работа, начинается работа других людей. После завершения разработки система будет долго и успешно обслуживать клиентов (если вам повезет). Как вы узнаете о проблемах, если система в эксплуатации, и что вы будете с ними делать?</p>
   <p>Возможно, кто-то осуществляет мониторинг системы вместо вас, а возможно, это делаете вы. В любом случае мониторинг, вероятно, включает в себя просмотр журналов. Если что-то случилось, и вас будят среди ночи, желательно, чтобы причина была веской. Если моя система при смерти, я должен знать об этом. Но если она просто икнула, я бы предпочел, чтобы мой сладкий сон не нарушали.</p>
   <p>Во многих системах первым признаком неприятностей служит запись сообщения в какой-нибудь журнал. Обычно это журнал регистрации ошибок. Так что окажите себе услугу: организуйте процесс таким образом, чтобы с первого же дня разработки, как только что-то появляется в журнале ошибок, вас будили среди ночи телефонным звонком. Если во время системного тестирования вы сможете смоделировать нагрузку на свою систему, чистый журнал ошибок, скорее всего, засвидетельствует надежность вашей системы, а «грязный» послужит первым сигналом тревоги.</p>
   <p>Распределенные системы создают дополнительный уровень сложности. Вы должны решить, как действовать в случае отказа внешних зависимостей. Если система сильно распределена, это может происходить часто. Учтите это обстоятельство при выборе политики ведения журнала.</p>
   <p>В целом, лучшим свидетельством того, что все в порядке, служит регулярное появление сообщений низкого приоритета. Меня устраивает, когда на каждое существенное событие в приложении появляется примерно одно сообщение уровня INFO.</p>
   <p>Слишком подробный журнал говорит о том, что систему трудно контролировать во время эксплуатации. Если вы исходите из того, что журнал ошибок должен оставаться пустым, вам будет гораздо легче разобраться в проблеме, когда в нем что-то все-таки появится.</p>
  </section>
  <section>
   <title>
    <p>WET размазывает узкие места производительности</p>
    <p>Кирк Пеппердин</p>
   </title>
   <image l:href="#i_056.jpg"/>
   <p><strong>Значимость принципа DRY </strong>(Don’t Repeat Yourself — не повторяйся) состоит в том, что он формализует следующую идею: каждый элемент знаний в системе должен иметь единственное представление. Иными словами, знание должно ограничиваться единственной реализацией. Полную противоположность DRY представляет WET (Write Every Time — пиши каждый раз). Наш код можно назвать «сырым» (WET), когда знание представлено в коде одновременно несколькими способами. Скрытое влияние DRY и WET на производительность становится понятным после рассмотрения их многочисленных эффектов на конкретном примере.</p>
   <p>Рассмотрим некоторую функциональность нашей системы (назовем ее <emphasis>X</emphasis>), являющуюся узким местом для процессора. Допустим, что функция <emphasis>X</emphasis> потребляет 30 % мощности процессора. Теперь предположим, что у функции <emphasis>X</emphasis> есть 10 различных реализаций. В среднем каждая реализация потребляет 3 % процессорного времени. Поскольку такой уровень использования процессора не вызывает беспокойства, при беглом анализе можно не заметить, что эта функция создает узкое место. Но допустим, что мы каким-то образом выяснили, что функция <emphasis>X</emphasis> — узкое место. Тогда ставится задача найти и исправить каждую реализацию. Для WET у нас есть 10 разных реализаций, которые нужно найти и исправить. В случае DRY мы сразу увидим загрузку процессора в 30 %, а размер кода для исправления будет в 10 раз меньше. К тому же не потребуется выискивать все многочисленные реализации.</p>
   <p>Есть один сценарий, в котором мы часто нарушаем DRY, а именно при работе с коллекциями. Стандартный прием реализации запроса заключается в проходе по коллекции и применении запроса к каждому ее элементу:</p>
   <p><code>public class UsageExample {</code></p>
   <p><code>   private ArrayList&lt;Customer&gt; allCustomers = new ArrayList&lt;Customer&gt;();</code></p>
   <p><code>   //…</code></p>
   <p><code>   public ArrayList&lt;Customer&gt; findCustomersThatSpendAtLeast(Money amount) {</code></p>
   <p><code>     ArrayList&lt;Customer&gt; customersOfInterest = new ArrayList&lt;Customer&gt;();</code></p>
   <p><code>     for (Customer customer: allCustomers) {</code></p>
   <p><code>       if (customer.spendsAtLeast(amount)) </code></p>
   <p><code>         customersOfInterest.add(customer);</code></p>
   <p><code>     } </code></p>
   <p><code>     return customersOfInterest;</code></p>
   <p><code> }</code></p>
   <p><code>}</code></p>
   <p>Сделав эту коллекцию напрямую доступной клиентам, мы нарушили принцип инкапсуляции. Это не только снижает потенциал рефакторинга, но и заставляет пользователей кода нарушать DRY, поскольку каждому из них придется заново реализовывать потенциально идентичный запрос. Такой ситуации легко избежать, если убрать открытые коллекции из API. В данном примере можно ввести новый предметно-ориентированный тип коллекции с именем CustomerList. Этот класс семантически лучше согласован с предметной областью. Естественным образом он станет местом, в котором содержатся все наши запросы.</p>
   <p>Наличие этого нового типа-коллекции позволит также легко выяснить, являются ли эти запросы узким местом в смысле производительности. Включив запросы в класс, мы устраняем необходимость открывать клиентам варианты представления, такие как ArrayList. Это дает нам свободу для последующего изменения реализаций без нарушения контрактов с клиентами:</p>
   <p><code>public class CustomerList {</code></p>
   <p><code>   private ArrayList&lt;Customer&gt; customers = new ArrayList&lt;Customer&gt;();</code></p>
   <p><code>   private SortedList&lt;Customer&gt; customersSortedBySpendingLevel =</code></p>
   <p><code>     new SortedList&lt;Customer&gt;();</code></p>
   <p><code>   //…</code></p>
   <p><code>   public CustomerList findCustomersThatSpendAtLeast(Money amount) {</code></p>
   <p><code>      return new CustomerList(</code></p>
   <p><code>         customersSortedBySpendingLevel.elementsLargerThan(amount));</code></p>
   <p><code>}</code></p>
   <p><code>}</code></p>
   <p><code>public class UsageExample {</code></p>
   <p><code>   public static void main(String[] args) {</code></p>
   <p><code>     CustomerList customers = new CustomerList();</code></p>
   <p><code>     //…</code></p>
   <p><code>     CustomerList customersOfInterest =</code></p>
   <p><code>       customers.findCustomersThatSpendAtLeast(someMinimalAmount);</code></p>
   <p><code>     //…</code></p>
   <p><code>   }</code></p>
   <p><code>}</code></p>
   <p>В этом примере следование принципу DRY позволило нам ввести измененную систему индексирования, в которой используется SortedList, а ключом служит объем трат наших покупателей. И, если абстрагироваться от данного примера, намного важнее, что следование DRY помогло найти и исправить узкое место. Пиши мы код по принципу WET, сделать это было бы труднее.</p>
  </section>
  <section>
   <title>
    <p>Когда программисты и тестировщики сотрудничают</p>
    <p>Джанет Грегори</p>
   </title>
   <image l:href="#i_073.jpg"/>
   <p><strong>Когда тестировщики и программисты начинают сотрудничать</strong>, происходят чудеса. Меньше времени уходит на игру в пинг-понг дефектами в системе отслеживания дефектов. Меньше времени тратится на обсуждение того, является ли поведение ошибкой или новой функцией, а больше — на разработку качественного программного обеспечения, отвечающего ожиданиям заказчиков. Существует много возможностей наладить сотрудничество еще до того, как начнется написание кода.</p>
   <p>Тестировщики могут помочь заказчикам написать приемочные тесты на языке их предметной области с помощью таких инструментов, как Fit (Framework for Integrated Test). Если передать эти тесты программистам перед тем, как они начнут писать код, те смогут применить практику <emphasis>разработки на основе приемочного тестирования </emphasis>(<emphasis>acceptance test-driven development, ATDD</emphasis>). Программисты пишут фреймворки для прогона тестов, а потом код с проверкой на прохождение этих тестов. Далее эти тесты входят в набор регрессионных тестов. При такой организации сотрудничества функциональное тестирование проходит быстро, и остается больше времени на экспериментальное тестирование граничных условий или сценариев более изощренных рабочих процессов.</p>
   <p>Можно пойти еще дальше. Будучи тестировщиком, я могу изложить свои соображения по тестированию еще до того, как программисты начнут писать код новой функции. Если я интересуюсь соображениями программистов, они почти всегда предоставляют мне сведения, позволяющие мне добиться лучшего покрытия кода или сократить затраты времени на ненужные тесты. Часто нам удавалось предотвратить появление дефектов за счет того, что тесты проясняют многие первоначальные идеи. Например, в одном из проектов, где я участвовала, я передала программистам Fit-тесты, которые показывали, какие результаты ожидаются при поиске по маске. Программист до этого твердо намеревался реализовать только поиск по конкретным словам. Нам удалось пообщаться с заказчиком, и мы смогли договориться о правильной интерпретации поиска до того, как начать писать код. В результате мы предотвратили возникновение дефекта и сэкономили всем уйму времени.</p>
   <p>Программисты могут сотрудничать с тестировщиками и в деле автоматизации. Они знакомы с хорошей практикой написания кода и способны помочь тестировщикам создать надежный комплекс автоматизированных тестов, что послужит интересам всей команды. Мне часто приходилось видеть, как проекты по автоматизации тестирования завершались неудачей из-за неумелого проектирования тестов. Либо тесты пытаются проверить слишком многое, либо тестировщики недостаточно разбираются в технологии, чтобы сделать тесты независимыми от кода. Тестировщики часто создают узкие места, поэтому полезно, когда программисты работают с ними вместе над такими задачами, как автоматизация. Определив вместе с тестировщиками, что можно протестировать на раннем этапе — возможно, с помощью какого-нибудь простого инструмента, — программисты получают дополнительный канал обратной связи, что в конечном итоге позволяет им создать более качественный код.</p>
   <p>Если тестировщики перестанут думать лишь о том, как бы им сломать программу или найти ошибки в коде разработчиков, то и программисты перестанут считать, что тестировщики стараются только «достать» их, и будут более склонны к сотрудничеству. Когда программисты понимают, что они отвечают за качество своего кода, легкость его тестирования становится естественным дополнительным качеством, и команда может совместно автоматизировать больше регрессионных тестов. Таково чудо успешной групповой работы.</p>
  </section>
  <section>
   <title>
    <p>Пишите код так, как будто вам предстоит сопровождать его всю оставшуюся жизнь</p>
    <p>Юрий Зубарев</p>
   </title>
   <image l:href="#i_074.jpg"/>
   <p><strong>Можно задать вопрос </strong>о том, что должен знать и уметь любой программист, 97 разным людям и получить 97 разных ответов. Это может одновременно ошеломить и напугать. Все советы хороши, все принципы здравы, все истории убедительны, но с чего начать? И, что еще более важно, как, однажды начав применять лучшие практики, оставаться на должном уровне и сделать их составной частью своей практики программирования?</p>
   <p>Я думаю, что ответ — в вашем настрое или просто в вашем подходе. Если вам безразличны ваши коллеги-разработчики, тестировщики, менеджеры, сотрудники отделов продаж и маркетинга, а также конечные пользователи, у вас не возникнет побуждения вести, к примеру, разработку на основе тестов или писать понятные комментарии в коде. Думаю, что есть простой способ изменить свое отношение и развить в себе стремление выпускать продукты самого лучшего качества:</p>
   <cite>
    <p>Пишите код так, как будто вам предстоит сопровождать его всю оставшуюся жизнь.</p>
   </cite>
   <p>Вот и все. Если вы примете эту мысль, начнут происходить удивительные вещи. Согласившись с тем, что любой из ваших прежних или нынешних работодателей имеет право позвонить вам среди ночи и попросить объяснить, на чем основаны решения, сделанные вами при написании некоего метода ТооВаг, вы начнете свой путь к мастерству в программировании. Вам самим захочется придумывать лучшие имена для переменных и методов. Вы постараетесь не допускать, чтобы блоки кода состояли из сотен строк. Вы будете искать, изучать и применять шаблоны проектирования. Вы станете писать комментарии, тестировать код и непрерывно осуществлять его рефакторинг. Поддерживать весь написанный вами код в течение всей оставшейся жизни? Эта задача будет становиться все более грандиозной. У вас просто не останется иного выбора, кроме как работать лучше, изобретательнее и эффективнее.</p>
   <p>Если вдуматься, то код, написанный вами много лет назад, продолжает влиять на вашу карьеру, нравится вам это или нет. Каждый метод, класс или модуль, который вы спроектировали или написали, хранит отпечаток ваших знаний, отношения к работе, упорства, профессионализма, степени вовлеченности и уровня удовольствия. Люди формируют о вас свое мнение на основе кода, который они видят. Если это мнение постоянно оказывается отрицательным, ваша карьера не будет развиваться так быстро, как вам хотелось бы. Каждая строка вашего кода должна быть на благо вашей карьере, ваших клиентов и ваших пользователей — пишите код так, как если бы вам пришлось сопровождать его всю оставшуюся жизнь.</p>
  </section>
  <section>
   <title>
    <p>Пишите маленькие функции на основе примеров</p>
    <p>Кейт Брэйтуэйт</p>
   </title>
   <image l:href="#i_061.jpg"/>
   <p><strong>Мы хотим писать правильный код </strong>и иметь на руках свидетельство его правильности. В обоих случаях будет полезным принять во внимание «размер» функции. Не в смысле объема кода, который реализует функцию — хотя и это интересно, — а как размер математической функции, которую демонстрирует наш код.</p>
   <p>Например, в игре <emphasis>го</emphasis> есть положение, называемое <emphasis>атари</emphasis>, в котором фишки игрока могут быть захвачены противником: фишка с двумя и более свободными соседними клетками (называемыми <emphasis>степенями свободы</emphasis>), не находится в положении атари. Подсчитать количество степеней свободы у фишки бывает нелегко, но, когда оно известно, определить атари легко. Можно для начала написать такую функцию:</p>
   <p><code>boolean atari(int libertyCount)</code></p>
   <p><code>   libertyCount &lt; 2</code></p>
   <p>Здесь спрятано больше, чем кажется на первый взгляд. Математическую функцию можно рассматривать как множество — некоторое подмножество декартова произведения области определения (здесь это int) и области принимаемых значений (здесь — boolean). Будь эти множества одинакового размера, как в Java, в множестве int х boolean было бы 2L*(Integer.MAX_VALUE+(—1L*Integer.MIN_VALUE)+1L), или 8589934592 элементов. Половина из них принадлежит подмножеству, являющемуся нашей функцией, поэтому для полного доказательства корректности нашей функции нужно проверить около 4,3 х 109 случаев.</p>
   <p>На этом и основывается утверждение, что тестами нельзя доказать отсутствие дефектов. Тесты способны продемонстрировать, что функциональность реализована. Но проблема размера сохраняется.</p>
   <p>Выход подсказывает предметная область. Природа <emphasis>го</emphasis> такова, что число степеней свободы фишки является не любым целым числом, а одним из чисел {1,2,3,4}. Поэтому можно написать другой вариант кода:</p>
   <p><code>LibertyCount = {1,2,3,4}</code></p>
   <p><code>boolean atari(LibertyCount libertyCount)</code></p>
   <p><code>   libertyCount == 1</code></p>
   <p>Это уже гораздо легче поддается обработке: вычисляемая функция — это множество, в котором максимум восемь элементов. Фактически проверка четырех случаев может дать полную уверенность, что функция корректна. Это одна из причин, почему при написании программ лучше использовать типы, тесно связанные с предметной областью, а не встроенные типы языка. Использование предметно-ориентированных типов часто позволяет значительно уменьшить размер функций. Один из способов выяснить, какими должны быть эти типы, — это найти примеры и определить термины предметной области до того, как писать функцию.</p>
  </section>
  <section>
   <title>
    <p>Тесты пишутся для людей</p>
    <p>Джерард Мезарос</p>
   </title>
   <image l:href="#i_075.jpg"/>
   <p><strong>Вы покрываете автоматизированными тестами </strong>весь готовый код или его фрагменты. Поздравляем! Пишете сначала тесты, а потом код? Еще лучше! Уже благодаря этому вас можно причислить к программистам, практикующим передовые подходы в разработке программного обеспечения. Но хороши ли ваши тесты? Как это определить? Один из способов — спросить себя: «А для кого я пишу эти тесты?». Если ответом будет «я пишу их для себя, чтобы сократить затраты на исправление ошибок» или «для компилятора, чтобы их можно было выполнить», то вполне возможно, что вы пишете не самые лучшие тесты. Так для кого же нужно писать тесты? Для того, кто будет пытаться понять ваш код.</p>
   <p>Хорошие тесты играют роль документации для тестируемого ими кода. Они описывают, как работает код. Для каждого сценария использования тесты делают следующее:</p>
   <p>• Описывают контекст, начальную точку или предусловия, которые должны удовлетворяться.</p>
   <p>• Иллюстрируют, как вызывается приложение.</p>
   <p>• Описывают ожидаемые результаты или постусловия, которые необходимо проверить.</p>
   <p>В различных сценариях использования варианты этих действий будут слегка различаться. Тот, кто попытается понять ваш код, должен иметь возможность посмотреть на несколько тестов и, сравнив эти три части рассматриваемых тестов, суметь определить, что заставляет программу в разных случаях работать по-разному. Каждый тест должен ясно иллюстрировать причинно-следственные связи между этими тремя частями.</p>
   <p>Отсюда следует, что невидимая часть теста столь же важна, как и видимая. Обилие кода в тесте отвлекает внимание читателя на несущественные мелочи. По возможности скрывайте такие мелочи в понятных вызовах методов, и в этом вам здорово поможет прием рефакторинга Extract Method (Извлечь метод). И постарайтесь дать каждому тесту выразительное название, чтобы оно описывало конкретный сценарий использования, а читающему тесты человеку не пришлось анализировать каждый тест в попытке понять, в чем заключаются различия между сценариями. Во всех случаях имя класса теста и имя метода класса должны содержать хотя бы начальную точку и способ вызова приложения. Это позволит простым прочтением имен методов проверить покрытие кода тестами. В имена методов тестов полезно бывает включить ожидаемые результаты, если только это не сделает имена слишком длинными для чтения или восприятия.</p>
   <p>Тестировать сами тесты — тоже хорошая идея. Можно проверить, смогут ли они обнаружить ошибки, которые должны находить, если ввести эти ошибки в производственный (production) код (разумеется, в локальную копию кода, которую вы потом выкинете). Проверьте, что тесты выдают полезные и осмысленные отчеты. Нужно также проверить, что ваши тесты говорят языком, понятным тому, кто разбирается с вашим кодом. Это можно сделать, только если дать прочесть тесты программисту, который не знаком с вашим кодом, и выслушать его впечатления. Если ему что-то непонятно, не связывайте это с нехваткой умственных способностей. Более вероятно, что это вы не сумели написать ясный код. (Попробуйте поменяться ролями и почитать его тесты!)</p>
  </section>
  <section>
   <title>
    <p>Нужно заботиться о коде</p>
    <p>Пит Гудлиф</p>
   </title>
   <image l:href="#i_027.jpg"/>
   <p><strong>Не нужно быть Шерлоком Холмсом</strong>, чтобы понять, что хорошие программисты пишут хороший код. Ну, а плохие — нет. Они создают уродливые вещи, которые всем остальным приходится доводить до ума. Но вы-то хотите писать хороший код, правда? Тогда вам нужно стремиться стать хорошим программистом.</p>
   <p>Хороший код не возникает сам по себе из ничего. Его появление не вызвано благоприятным расположением планет. Чтобы сделать код хорошим, нужно над ним работать, и немало. Вы создадите хороший код только тогда, когда действительно к этому стремитесь.</p>
   <p>Хорошее программирование не является результатом одной лишь технической компетентности. Я встречал очень умных программистов, которые способны создавать сильные и впечатляющие алгоритмы, в совершенстве знают стандарты своего языка и пишут при этом совершенно отвратительный код. Его тяжело читать, с ним тяжело работать и его тяжело модифицировать. Я встречал и программистов с более скромными способностями, которые тяготеют к очень простому коду, но пишут элегантные и выразительные программы, работать с которыми одно удовольствие.</p>
   <p>Опыт работы в отрасли разработки программного обеспечения привел меня к заключению, что на практике разница между просто компетентными программистами и выдающимися программистами заключается в одном: это <emphasis>отношение к работе</emphasis>. Хорошее программирование требует профессионального подхода и стремления написать как можно лучший код с учетом ограничений, накладываемых окружающей действительностью и требованиями отрасли.</p>
   <p><emphasis>Код, ведущий в ад, вымощен благими намерениями</emphasis>. Чтобы стать отличным программистом, нужно отказаться от благих намерений и действительно проявить <emphasis>заботу</emphasis> о коде — воспитывать в себе позитивный взгляд на написание кода и вырабатывать здоровое отношение к работе. Выдающийся код есть плод тщательных усилий искусных мастеров, а не поделка, небрежно сляпанная программистом, или таинственное создание самопровозглашенных гуру от кодирования.</p>
   <p>Вы хотите писать хороший код. Вы хотите быть хорошим программистом. Тогда вы должны стремиться к следующему:</p>
   <p>• Какими бы ни были условия работы, вы отказываетесь наскоро писать код, который <emphasis>предположительно</emphasis> решает задачу. Вы стремитесь писать красивый код, корректность которого очевидна (и доказывается хорошо написанными тестами).</p>
   <p>• Вы пишете код, доступный для <emphasis>понимания</emphasis> (другие программисты могут быстро разобраться в нем и продолжить работу), легкий в <emphasis>сопровождении</emphasis> (вы или другие программисты легко сможете модифицировать его в будущем) и <emphasis>верный</emphasis> (вы сделали все возможное, чтобы показать, что вы действительно решили задачу, а не просто создали видимость работающей программы).</p>
   <p>• Вы хорошо ладите с другими программистами. Программист не должен быть отшельником. Редкий программист работает в одиночку: большинство трудится в составе команды программистов, будь то в рамках компании или проекта с открытым исходным кодом. Вы учитываете особенности других программистов и пишете код так, чтобы они могли его прочесть. Вы стремитесь помочь команде создать как можно лучший продукт, а не показать, какой вы умный.</p>
   <p>• Когда к вам в руки попадает код, вы стараетесь, чтобы после вас он стал немного лучше (лучше организован, лучше протестирован, более понятен…).</p>
   <p>• Вы любите код и программирование, поэтому вы постоянно изучаете новые языки, идиомы и новые приемы. Но применяете их только тогда, когда это уместно.</p>
   <p>К счастью, вы читаете эти советы потому, что действительно любите код. Вам это интересно. Это ваше увлечение. Получайте удовольствие от программирования. Радуйтесь, написав код для решения сложной задачи. Пишите программы, которыми можно гордиться.</p>
  </section>
  <section>
   <title>
    <p>Ваши заказчики имеют в виду не то, что говорят</p>
    <p>Нэйт Джексон</p>
   </title>
   <image l:href="#i_076.jpg"/>
   <p><strong>Я еще не встречал заказчика</strong>, который не был бы рад возможности рассказать мне, что ему нужно — обычно до мельчайших подробностей. Проблема в том, что заказчики не всегда рассказывают всю правду. В целом заказчики не лгут, но они говорят на своем языке заказчиков, а не на языке разработчиков. У них свой словарь и свой контекст. Они опускают важные детали. Они говорят так, будто вы тоже проработали в их компании лет двадцать. А осложняется это все тем, что на самом деле заказчики часто сами не знают, что им нужно! У одних есть понимание общей картины, но они редко в состоянии толково выразить свое представление. У других общее представление может быть менее ярким, но они знают, чего им не нужно. Так как же можно разработать программный проект для того, кто не способен правдиво рассказать, что именно ему нужно? Выход достаточно прост. Нужно больше взаимодействовать с заказчиком.</p>
   <p>Начинайте задавать своим заказчикам вопросы как можно раньше, и задавайте вопросы чаще. Не стоит повторять их же словами то, что они сказали о своих пожеланиях. Помните: они имели в виду не то, что сказали вам. Я часто провожу такую проверку: в разговоре с заказчиком заменяю термины заказчика своими собственными и наблюдаю за его реакцией. Вы не поверите, как часто термин <emphasis>заказчик</emphasis> имеет смысл, совершенно отличный от термина <emphasis>клиент</emphasis>. Тем не менее человек, который объясняет вам, что он хочет видеть в программном продукте, считает эти слова взаимозаменяемыми и уверен, что вы понимаете, какой свой статус он имеет в виду в конкретный момент. А вас это дезориентирует, и качество вашей программы страдает.</p>
   <p>Обсуждайте рабочие темы со своими заказчиками бесчисленное количество раз до тех пор, пока не придете к выводу, что вам действительно понятно, что им требуется. Попробуйте вместе с ними переформулировать задачу два-три раза. Обсуждайте с ними то, что происходит непосредственно перед выполнением задачи, и то, что следует за выполнением задачи, чтобы лучше понять контекст. Если есть возможность, обсудите ту же тему с разными людьми в разное время. Рассказы почти всегда будут разными, что выявит отдельные, но связанные факты. Рассказывая об одном и том же, два человека часто противоречат друг другу. Лучше всего разобраться с этими расхождениями, прежде чем приступать к сверхсложной задаче разработки.</p>
   <p>Используйте в беседах наглядные средства. Это могут быть такие простые вещи, как доска во время совещания или простой макет на стадии проектирования, либо такие сложные, как действующий прототип. Общеизвестно, что использование наглядных средств во время обсуждения помогает удержать внимание и закрепить информацию в памяти. Пользуйтесь этим обстоятельством, чтобы обеспечить успех своего проекта.</p>
   <p>В прежнюю эпоху своей жизни мне довелось поработать «мультимедийным программистом» в команде, выпускавшей гламурные продукты. Одна наша заказчица очень подробно описала, как она представляет себе внешний вид проекта. Цветовая схема, обсуждавшаяся на проектных совещаниях, предполагала проведение презентации на черном фоне. Мы думали, что все оговорено. Целые команды дизайнеров принялись выдавать сотни многослойных графических файлов. Уйму времени мы убили на формирование конечного продукта. В тот день, когда мы показали клиентке плоды своего труда, нас ждала ошеломительная новость. Увидев продукт и цвет фона, она произнесла: «Когда я говорила „черный“, я имела в виду „белый“». Как видите, «черное» не всегда значит «черное».</p>
  </section>
  <section>
   <title>
    <p>Авторы</p>
   </title>
   <section>
    <title>
     <p>Алан Гриффитс (Alan Griffiths)</p>
    </title>
    <image l:href="#i_030.jpg"/>
    <p>Алан Гриффитс прошел через многие модные поветрия в процессах разработки, технологиях и языках программирования. За эти годы он создал работоспособные программы и процессы разработки для многих организаций, печатался в ряде журналов, выступал на конференциях и подружился со многими людьми. Твердо убежденный в том, что здравый смысл — редкий и ценный рыночный товар, Алан сейчас работает независимым консультантом в собственной компании Octopull Limited.</p>
    <p><emphasis>«Не полагайтесь на “автоматические чудеса”», стр. 78</emphasis></p>
   </section>
   <section>
    <title>
     <p>Алекс Миллер (Alex Miller)</p>
    </title>
    <image l:href="#i_065.jpg"/>
    <p>Алекс Миллер — технический руководитель и инженер в Terracotta, Inc., специализирующейся на разработке решений кластеризации с открытым исходным кодом на Java. До Terracotta Алекс работал в BEA Systems над линейкой продуктов AquaLogic и был главным архитектором в MetaMatrix. В сферу его интересов попадают Java, конкурентные вычисления, распределенные системы, языки запросов и проектирование программного обеспечения.</p>
    <p>Алекс с удовольствием ведет свой блог <a l:href="http://tech.puredanger.com/"><emphasis>http://tech.puredanger.com</emphasis></a>. Вместе с другими разработчиками Terracotta он написал выпущенное в 2008 году «The Definitive Guide to Terracotta» (Полное руководство по Terracotta), Apress. Алекс часто выступает на встречах пользователей и конференциях и является одним из основателей конференции Strange Loop в Сент-Льюисе (<a l:href="http://thestrangeloop.com/"><emphasis>http://thestrangeloop.com</emphasis></a>).</p>
    <p><emphasis>«Сначала скажите “да”», стр. 174</emphasis></p>
   </section>
   <section>
    <title>
     <p>Аллан Келли (Allan Kelly)</p>
    </title>
    <image l:href="#i_010.jpg"/>
    <p>Аллан Келли — профессионал в области разработки программного обеспечения, но сейчас работает в роли менеджера команды разработки. Он помогает командам разработчиков повышать эффективность своего труда и внедрять методы гибкого программирования. Аллан работает в Лондоне, предлагает мелким и крупным компаниям услуги по обучению, коучингу и консультированию.</p>
    <p>Аллан часто публикуется в журналах, появляется на конференциях и является соавтором «Changing Software Development: Learning to Be Agile» (John Wiley &amp; Sons). У Келли степень бакалавра по информатике и MBA по администрированию. В настоящее время он пишет книгу о шаблонах бизнес-стратегий для компаний, выпускающих программное обеспечение. Подробнее узнать о нем можно на сайте <a l:href="http://www.allankelly.net/"><emphasis>http://www.allankelly.net</emphasis></a>.</p>
    <p><emphasis>«Прежде чем пенять на других, проверь собственный код», стр. 38</emphasis></p>
    <p><emphasis>«Две ошибки могут гасить одна другую (и тогда их трудно исправлять)», стр. 192</emphasis></p>
   </section>
   <section>
    <title>
     <p>Андерс Норас (Anders Norås)</p>
    </title>
    <image l:href="#i_028.jpg"/>
    <p>Андерс Норас — закаленный разработчик программного обеспечения и оратор. «Энтерпрайзность» EJB подтолкнула его к Microsoft.NET в 2002 году. Он быстро прославился в сообществе Microsoft, поскольку опыт работы с Java дал ему хорошую фору. В 2006 он восстановил свои отношения с бывшей любовью — Java, и сегодня он — полиглот, отбирающий лучшие решения обеих платформ для создания более качественных программ. Андерс — основатель проекта Quaere и участник нескольких проектов с открытым исходным кодом. Он выступает на многих конференциях и встречах групп пользователей, где обычно показывает мало слайдов и много кода. Андерс живет в Норвегии, где работает главным технологическим евангелистом в Objectware. Ведет свой блог по адресу <a l:href="http://andersnoras.com/"><emphasis>http://andersnoras.com</emphasis></a>.</p>
    <p><emphasis>«Не просто учите язык, поймите его культуру», стр. 74</emphasis></p>
   </section>
   <section>
    <title>
     <p>Анн Кэтрин Гэгнат (Ann Katrin Gagnat)</p>
    </title>
    <image l:href="#i_077.jpg"/>
    <p>Анн Кэтрин Гэгнат четыре года работает с Java и занимает должность системного разработчика в Steria AS в Норвегии. Профессионально интересуется гибкой разработкой, шаблонами и написанием легко читаемого кода.</p>
    <p><emphasis>«Программируйте парами и входите в поток», стр. 148</emphasis></p>
   </section>
   <section>
    <title>
     <p>Аслам Хан (Aslam Khan)</p>
    </title>
    <image l:href="#i_071.jpg"/>
    <p>Аслам Хан больше половины своей жизни занимался созданием программного обеспечения. Он по-прежнему верит, что истина заключается в исполняемом коде, но трезво уравновешивает эту веру другим своим базовым принципом: люди важнее компиляторов. Как архитектор программного обеспечения и инструктор Аслам занимается тем, что помогает командам проектировать и выпускать хорошее программное обеспечение, не упуская при этом возможности развлекаться и заводить хороших друзей. Аслам входит в команду factor10 и работает редактором в сообществе архитекторов на DZone. Адрес его блога: <a l:href="http://aslamkhan.net/"><emphasis>http://aslamkhan.net</emphasis></a>.</p>
    <p><emphasis>«Написание кода в духе Убунту для друзей», стр. 194</emphasis></p>
   </section>
   <section>
    <title>
     <p>Берк Хафнагель (Burk Hufnagel)</p>
    </title>
    <image l:href="#i_057.jpg"/>
    <p>С 1978 года Берк Хафнагель как архитектор и разработчик программного обеспечения занимается созданием правильных пользовательских интерфейсов. Проведя большую часть своей жизни за проектированием и созданием программ, Берк выработал привычку к тому, чтобы разрабатывать практичные решения сложных задач.</p>
    <p>Он — библиофил и технофил, интересуется эзотерической тематикой.</p>
    <p>Берк был одним из соавторов книги «97 Things Every Software Architect Should Know»,<a l:href="#n_31" type="note">[31]</a> O’Reilly. Он выступал в 2008 году на конференции JavaOne с речью, посвященной улучшению условий работы пользователя, и на региональных конференциях Международной ассоциации программных архитекторов в 2007 и 2009 годах. Он также написал статью для библиотеки IASA Skills Library на тему «незаметного слона», а именно связи между опытом взаимодействия пользователя и качеством проектирования пользовательского интерфейса.</p>
    <p><emphasis>«Невероятно, но факт: тестировщики — ваши друзья», стр. 140</emphasis></p>
    <p><emphasis>«Брось мышь и медленно отойди от клавиатуры», стр. 158</emphasis></p>
   </section>
   <section>
    <title>
     <p>Верити Стоб (Verity Stob)</p>
    </title>
    <image l:href="#i_029.jpg"/>
    <p>Верити Стоб — это псевдоним программистки, живущей в Лондоне. Хотя она демонстрирует знание C++ и обычных интерпретируемых языков с фигурными скобками, а также проектирует и пишет код для различных платформ, пожалуй, наиболее удачны и безвредны ее программы для Windows, написанные на CodeGear Delphi.</p>
    <p>Свыше 20 лет Верити писала якобы занимательные статьи и колонки для разных журналов, газет и веб-сайтов, включая легендарный (т. е. давно почивший) «.EXE Magazine», разбивающий общие представления (т. е. почивший несколько позднее) «Dr. Dobb’s Journal» и непристойный (т. е. действительно приносящий доход) «The Register». В 2005 году она опубликовала собрание своих трудов под названием «The Best of Verity Stob» (Apress), достигнув тем самым главной цели своей жизни — дважды получить гонорар за одну и ту же работу.</p>
    <p>Верити считает посвященную ей в Википедии статью карикатурой на краткость.</p>
    <p><emphasis>«Не прибивайте программу гвоздями к стене», стр. 76</emphasis></p>
   </section>
   <section>
    <title>
     <p>Грег Колвин (Greg Colvin)</p>
    </title>
    <image l:href="#i_045.jpg"/>
    <p>Грег Колвин успешно занимается «кодежом» с 1972 года. В свободное от написания кода и чтения специальной литературы время он гуляет со своей собакой по пляжу или играет блюз в местных кабачках.</p>
    <p><emphasis>«Знай свои возможности», стр. 112</emphasis></p>
   </section>
   <section>
    <title>
     <p>Грегор Хоп (Gregor Hohpe)</p>
    </title>
    <image l:href="#i_020.jpg"/>
    <p>Грегор Хоп — инженер-программист, работающий в Google. Известность приобрел благодаря своим идеям насчет асинхронной передачи сообщений и сервисно-ориентированной архитектуры, которыми он делится в ряде публикаций, включая фундаментальный труд «Enterprise Integration Patterns»<a l:href="#n_32" type="note">[32]</a> (Addison-Wesley Professional). Подробнее о его работе можно узнать на сайте <a l:href="http://www.eaipatterns.com/"><emphasis>http://www.eaipatterns.com</emphasis></a>.</p>
    <p><emphasis>«Удобство — не атрибут качества», стр. 58</emphasis></p>
   </section>
   <section>
    <title>
     <p>Гудни Хаукнес (Gudny Hauknes)</p>
    </title>
    <image l:href="#i_078.jpg"/>
    <p>Гудни Хаукнес — ведущий разработчик программного обеспечения в норвежском отделении консультативной фирмы Steria. Закончив в 1987 году Норвежский Технологический университет (NTH/NTNU), она занимала различные должности в системных разработках, управлении проектами и контроле качества.</p>
    <p>Особенно ее интересуют способы организации спокойной совместной работы, приятной и эффективной, а также, разумеется, создание качественного программного обеспечения.</p>
    <p><emphasis>«Программируйте парами и входите в поток», стр. 148</emphasis></p>
   </section>
   <section>
    <title>
     <p>Диомидис Спинеллис (Diomidis Spinellis)</p>
    </title>
    <image l:href="#i_049.jpg"/>
    <p>Диомидис Спинеллис — профессор факультета науки и технологии управления в Университете экономики и бизнеса города Афины, Греция. Он ведет исследования в области разработки программного обеспечения, компьютерной безопасности и языков программирования. Автор двух отмеченных наградами книг из серии «Open Source Perspective»: «Code Reading: The Open Source Perspective»<a l:href="#n_33" type="note">[33]</a> и «Code Quality» (обе изданы в Addison-Wesley Professional), а также десятков научных статей. Его последняя работа — сборник «Beautiful Architecture»<a l:href="#n_34" type="note">[34]</a> (O’Reilly). Диомидис входит в редколлегию IEEE Software и ведет постоянную колонку «Tools of the Trade». Он участвует в разработке FreeBSD, а также UMLGraph и других программных пакетов, библиотек и инструментов с открытым исходным кодом. Получил степень магистра в области разработки ПО и доктора информатики в Имперском колледже Лондона. Диомидис — старший член ACM и IEEE, а также член Usenix Association.</p>
    <p><emphasis>«Место для больших наборов взаимосвязанных данных — в базе данных», стр. 116</emphasis></p>
    <p><emphasis>«Держите все в системе управления версиями», стр. 156</emphasis></p>
    <p><emphasis>«Утилиты UNIX — ваши друзья», стр. 196</emphasis></p>
   </section>
   <section>
    <title>
     <p>Джанет Грегори (Janet Gregory)</p>
    </title>
    <image l:href="#i_073.jpg"/>
    <p>Соавтор «Agile Testing: A Practical Guide for Agile Testers and Teams» (Addison-Wesley Professional), Джанет Грегори — консультант, помогающий командам создавать качественные системы с помощью методов гибкого программирования. Джанет живет и работает в Канаде, и ее главная страсть — внедрение гибких методов создания качественного программного обеспечения. В качестве инструктора и тестировщика она помогала компаниям внедрять практики гибкого программирования и успешно перевела несколько команд традиционного тестирования в мир гибкого программирования. Ее цель — помочь бизнес-пользователям и тестировщикам осознать свою роль в проектах с гибким программированием. Джанет читает курсы на тему гибкого тестирования и часто выступает на международных конференциях, посвященных гибкому программированию и тестированию. Подробности см. по адресу <a l:href="http://janetgregory.ca/"><emphasis>http://janetgregory.ca</emphasis></a>.</p>
    <p><emphasis>«Когда программисты и тестировщики сотрудничают», стр. 204</emphasis></p>
   </section>
   <section>
    <title>
     <p>Джейсон П. Сэйдж (Jason P. Sage)</p>
    </title>
    <image l:href="#i_062.jpg"/>
    <p>Джейсон П. Сэйдж — консультант по компьютерам и владелец предприятия. Его основные интересы — системное проектирование, интеграция, управление отношениями с клиентами (CRM), оригинальное серверное программное обеспечение, обработка данных и программы для трехмерной графики. Джейсон — настоящий энтузиаст программирования; он отправился в свое путешествие в 1981 году в возрасте 10 лет при помощи Timex Sinclair с двумя килобайтами памяти и кассетным магнитофоном. За прошедшее время он написал множество разнообразных программ, начиная с игр и кончая операционной системой для программного обеспечения управления складскими запасами в одной из крупнейших компаний страны, торгующей продовольственными товарами. Он часто появляется в сетевых форумах, помогая коллегам-программистам и учащимся разного возраста.</p>
    <p><emphasis>«Почаще изобретайте колесо», стр. 164</emphasis></p>
   </section>
   <section>
    <title>
     <p>Джерард Мезарос (Gerard Meszaros)</p>
    </title>
    <image l:href="#i_075.jpg"/>
    <p>Джерард Мезарос — независимый консультант, инструктор и преподаватель в области программного обеспечения с 25-летним опытом создания программ и почти 10-летним опытом применения методов гибкого программирования, таких как Scrum, eXtreme Programming и Lean. Он регулярно выступает на таких конференциях по разработке и тестированию программного обеспечения, как OOPSLA, Agile200x и STAR. Написал книгу «xUnit Test Patterns: Refactoring Test Code»<a l:href="#n_35" type="note">[35]</a> (Addison-Wesley) и ведет сайт <a l:href="http://xunitpatterns.com/"><emphasis>http://xunitpatterns.com</emphasis></a>.</p>
    <p><emphasis>«Тесты пишутся для людей», стр. 210</emphasis></p>
   </section>
   <section>
    <title>
     <p>Джованни Аспрони (Giovanni Asproni)</p>
    </title>
    <image l:href="#i_011.jpg"/>
    <p>Джованни Аспрони — независимый контрагент и консультант, проживающий в Великобритании. Несмотря на то, что он часто работает архитектором, руководителем команды, преподавателем или наставником, в душе он остается программистом, который предпочитает простой код. Он регулярно выступает на конференциях, входит в комитет конференции London XPDay и руководит конференцией ACCU. Джованни является членом ACCU, AgileAlliance, ACM и IEEE.</p>
    <p><emphasis>«Тщательно выбирайте инструменты», стр. 40</emphasis></p>
    <p><emphasis>«Учитесь делать оценки», стр. 120</emphasis></p>
   </section>
   <section>
    <title>
     <p>Джон Джаггер (Jon Jagger)</p>
    </title>
    <image l:href="#i_023.jpg"/>
    <p>Джон Джаггер — независимый консультант/инструктор/программист/наставник/энтузиаст, специализирующийся на гибком программировании (люди и процесс), разработке на основе тестов, UML, проектировании, анализе, объектно-ориентированном программировании и языках с фигурными скобками (C#, C, C++, Java). Он член британской комиссии по C, бывший член британской комиссии по C++, а также член и главный эксперт (PUKE — Principal UK Expert) британской комиссии по ECMA-стандартизации C#.</p>
    <p>Джон также придумал игру «Average Time To Green», опубликовал множество статей в Интернете и журналах и выступил соавтором двух книг: «Microsoft<sup>® </sup>Visual C#<sup>®</sup>.NET Step by Step» (Microsoft Press) и «C# Annotated Standard» (Morgan Kaufmann).</p>
    <p>Джон женат на прелестной Натали, он счастливый отец Элли, Пенни и Патрика. Безумно увлекается рыбалкой в проточной воде.</p>
    <p><emphasis>«Больше осознанной практики», стр. 64</emphasis></p>
    <p><emphasis>«Пусть невидимое станет более видимым», стр. 132</emphasis></p>
   </section>
   <section>
    <title>
     <p>Дэн Берг Джонссон (Dan Bergh Johnsson)</p>
    </title>
    <image l:href="#i_022.jpg"/>
    <p>Дэн Берг Джонссон — ведущий консультант, партнер и официальный представитель Omegapoint AB. Энтузиаст проектирования на основе предметной области, давний поклонник гибкого программирования, наследник традиций искусства в программировании и «школы разработки OOPSLA». Один из основателей шведской группы предметно-ориентированного проектирования DDD Sverige, регулярно участвует в работе <a l:href="http://domaindrivendesign.org/"><emphasis>http://domaindrivendesign.org/</emphasis></a> и часто выступает на международных конференциях. О своей любви к профессии он рассказывает в блоге «Dear Junior: Letters to a Junior Programmer» по адресу <a l:href="http://dearjunior.blogspot.com/"><emphasis>http://dearjunior.blogspot.com</emphasis></a>.</p>
    <p><emphasis>«Отличайте исключения в бизнес-логике от технических», стр. 62</emphasis></p>
    <p><emphasis>«Знай, что сохранишь в репозиторий», стр. 114</emphasis></p>
   </section>
   <section>
    <title>
     <p>Дэн Норт (Dan North)</p>
    </title>
    <image l:href="#i_012.jpg"/>
    <p>Дэн Норт пишет программы и консультирует команды по методам гибкого и упрощенного программирования. Он ставит во главу угла хорошее отношение к людям и написание простых, практичных программ. Он также считает, что большинство проблем, с которыми сталкиваются команды, вызвано плохо налаженным общением — как, впрочем, и все остальные проблемы тоже.</p>
    <p>Поэтому он уделяет такое внимание «правильному выбору слов» и так увлечен разработкой на основе поведения, проблемами обмена информацией и методами обучения. Дэн работает в IT-отрасли с момента окончания учебы в 1991 году и иногда пишет в блоге <a l:href="http://dannorth.net/"><emphasis>http://dannorth.net</emphasis></a>.</p>
    <p><emphasis>«Пишите код на языке предметной области», стр. 42</emphasis></p>
   </section>
   <section>
    <title>
     <p>Дэниэл Линднер (Daniel Lindner)</p>
    </title>
    <image l:href="#i_052.jpg"/>
    <p>Дэниэл Линднер разрабатывал программное обеспечение в течение 15 лет — как ради денег, так и за интерес (проекты с открытым исходным кодом). Является одним из основателей компании по разработке программного обеспечения в Карлсруэ (Германия) и читает лекции по разработке программного обеспечения. Он также участвует в общественной жизни.</p>
    <p><emphasis>«Пусть ваш проект говорит сам за себя», стр. 124</emphasis></p>
   </section>
   <section>
    <title>
     <p>Жиль Колборн (Giles Colborne)</p>
    </title>
    <image l:href="#i_004.jpg"/>
    <p>Жиль Колборн в течение двух десятилетий занимался вопросами эргономики в British Aerospace, Institute of Physics Publishing и Euro RSCG. За это время он провел сотни часов, наблюдая за пользователями в лабораторных и реальных условиях. В 2004 году он основал cxpartners — проектную компанию, ориентированную на пользователя, которая исследует поведение пользователя и проектирует пользовательские интерфейсы для заказчиков со всего света, включая Nokia, Marriott и eBay. Колборн был президентом британской ассоциации профессионалов в области юзабилити в течение 2003–2007 годов и работал в Британском институте стандартизации, создавая стандарты и руководящие документы по универсальности доступа.</p>
    <p><emphasis>«Выясните, как поступит пользователь (и вы — не пользователь)», стр. 26</emphasis></p>
    <p><emphasis>«Предотвращайте появление ошибок», стр. 152</emphasis></p>
   </section>
   <section>
    <title>
     <p>Йехиль Кимхи (Yechiel Kimchi)</p>
    </title>
    <image l:href="#i_016.jpg"/>
    <p>Йехиль Кимхи — математик (докторская степень Еврейского университета в Иерусалиме за работу в теории множеств), исследователь в области информатики (более 10 лет преподает на факультете информатики в Технионе, Израиль) и разработчик программного обеспечения — более 15 лет работает на большие «хай-тековские» компании и как консультант в собственной небольшой фирме.</p>
    <p>Начав писать на С, а потом перейдя на C++, он интересуется ООП и способами разработки программ, которые были бы одновременно корректными, легкими в сопровождении и эффективными. Помимо этого он разработал эвристики для эффективного решения NP-сложных задач, но своим величайшим достижением считает влияние, оказанное на техническое образование тысяч израильских инженеров-программистов.</p>
    <p><emphasis>«Пиши код с умом», стр. 50</emphasis></p>
   </section>
   <section>
    <title>
     <p>Йорн Ольмхейм (Jørn Ølmheim)</p>
    </title>
    <image l:href="#i_006.jpg"/>
    <p>Йорн Ольмхейм профессионально занимается программированием уже более 10 лет: поработал и разработчиком, и архитектором, и автором/докладчиком. В настоящее время работает в Statoil, создавая программное обеспечение для ряда исследовательских проектов — в основном с использованием Java, Ruby и Python, а иногда добавляя Fortran и C/C++, если требуются высокоскоростные вычисления. В числе его главных интересов — практика гибкого программирования с упором на мастерство разработчика, языки программирования и автономные системы.</p>
    <p>В свободное время Йорн увлекается лыжами, горным велосипедом и общением со своими близкими.</p>
    <p><emphasis>«Красота — следствие простоты», стр. 30</emphasis></p>
   </section>
   <section>
    <title>
     <p>Йоханнес Бродуолл (Johannes Brodwall)</p>
    </title>
    <image l:href="#i_041.jpg"/>
    <p>Йоханнес Бродуолл — ведущий научный специалист норвежского отделения консультативной компании Steria. Он любит взглянуть на проект с общей точки зрения, чтобы понять, как сочетание различных дисциплин и технологий может (и может ли) представлять ценность для пользователей программных систем. Он активно участвует в работе сообщества гибкой разработки в Осло. Больше всего времени отнимают у него Oslo Extreme Programming Meetup и ежегодные конференции Smidig 200x (<emphasis>smidig</emphasis> на норвежском означает «agile» — гибкий). Он регулярно выступает на мероприятиях, проводимых в районе Осло, и часто пишет о разработке программного обеспечения в своем блоге по адресу <a l:href="http://johannesbrodwall.com/"><emphasis>http://johannesbrodwall.com</emphasis></a>.</p>
    <p><emphasis>«Сборка должна быть чистой», стр. 104</emphasis></p>
    <p><emphasis>«Многословный журнал лишит вас сна», стр. 200</emphasis></p>
   </section>
   <section>
    <title>
     <p>Кари Россланд (Kari Røssland)</p>
    </title>
    <image l:href="#i_079.jpg"/>
    <p>Кари Россланд — разработчик программного обеспечения в норвежском отделении консультативной компании Steria. За три года, прошедшие после получения степени магистра информатики в NTNU (Тронхейм, Норвегия), Кари приняла участие в нескольких проектах. Ее особенно интересуют гибкая разработка и приятное и эффективное сотрудничество между участниками программных проектов.</p>
    <p><emphasis>«Программируйте парами и входите в поток», стр. 148</emphasis></p>
   </section>
   <section>
    <title>
     <p>Карианне Берг (Karianne Berg)</p>
    </title>
    <image l:href="#i_060.jpg"/>
    <p>Карианне Берг получила диплом магистра в Университете Бергена, Норвегия, и в данное время работает в норвежской консультационной фирме Objectware. Ей нравится помогать людям достигать успеха в разработке; она участвует в организации конференций ROOTS и Smidig, а также Oslo XP Meetup. Карианне выступала на нескольких конференциях, и последний раз ее видели на Smidig 2009. Основные сферы ее интересов включают гибкую разработку, шаблоны и фреймворк Spring.</p>
    <p><emphasis>«Читайте код», стр. 160</emphasis></p>
   </section>
   <section>
    <title>
     <p>Кевлин Хенни (Kevlin Henney)</p>
    </title>
    <image l:href="#i_018.jpg"/>
    <p>Кевлин Хенни — независимый консультант и инструктор. В основном он занимается шаблонами и архитектурой, приемами программирования и языками, процессами и практикой разработки. Вел колонки в разных журналах и сетевых изданиях, включая «The Register», «Better Software», «Java Report», «CUJ» и «C++ Report». Кевлин — соавтор двух книг серии «Pattern-Oriented Software Architecture» (Архитектура ПО, ориентированная на шаблоны): «A Pattern Language for Distributed Computing» и «On Patterns and Pattern Languages» (Wiley). Он также участвовал в написании книги «97 Things Every Software Architect Should Know».<a l:href="#n_36" type="note">[36]</a></p>
    <p><emphasis>«Комментируйте только то, о чем не скажет код», стр. 54</emphasis></p>
    <p><emphasis>«Тестируйте требуемое, а не случайное поведение», стр. 180</emphasis></p>
    <p><emphasis>«Тестируйте точно и конкретно», стр. 182</emphasis></p>
   </section>
   <section>
    <title>
     <p>Кейт Брэйтуэйт (Keith Braithwaite)</p>
    </title>
    <image l:href="#i_061.jpg"/>
    <p>Кейт Брэйтуэйт — один из главных консультантов Zuhlke. Он также руководит в этой организации Центром практики гибкого программирования. Эта группа осуществляет обучение, инструктирование, наставничество, системное программирование и прямолинейную разработку с целью усиления способностей клиентских команд. Кейт занимался сопровождением компиляторов, моделированием сетей GSM и портированием систем спутниковой навигации для стартапов, промышленных компаний и глобальных сервисных организаций. Он зарабатывал деньги написанием кода на C, C++, Java, Python и Smalltalk. Кейт все более сосредоточивается на использовании «проверенных примеров» или «автоматизированных тестов» как эффективных инструментов для сбора и анализа технических требований, системного проектирования и управления проектами.</p>
    <p>Его блог см. по адресу <a l:href="http://peripateticaxiom.blogspot.com/"><emphasis>http://peripateticaxiom.blogspot.com</emphasis></a>; его презентации на конференциях можно найти здесь: <a l:href="http://www.keithbraithwaite.demon.co.uk/profes"><emphasis>http://www.keithbraithwaite.demon.co.uk/profes</emphasis></a><emphasis> sional/presentations/</emphasis>.</p>
    <p><emphasis>«Читайте гуманитарные книги», стр. 162</emphasis></p>
    <p><emphasis>«Пишите маленькие функции на основе примеров», стр. 208</emphasis></p>
   </section>
   <section>
    <title>
     <p>Кирк Пеппердин (Kirk Pepperdine)</p>
    </title>
    <image l:href="#i_056.jpg"/>
    <p>Кирк Пеппердин работает независимым консультантом и предлагает услуги, связанные с оптимизацией производительности кода на Java. Прежде чем углубиться в Java, Кирк разрабатывал и доводил до ума системы, написанные на C/C++, Smalltalk и ряде других языков. Кирк написал много статей и выступал на ряде конференций, посвященных настройке производительности. Он способствовал превращению <a l:href="http://www.javaperformancetuning.com/"><emphasis>http://www.javaperformancetuning.com</emphasis></a> в ресурс, посвященный информации и рекомендациям по настройке производительности.</p>
    <p><emphasis>«Упущенные возможности применения полиморфизма», стр. 138</emphasis></p>
    <p><emphasis>«Путь к повышению эффективности программ заминирован грязным кодом», стр. 168</emphasis></p>
    <p><emphasis>«WET размазывает узкие места производительности», стр. 202</emphasis></p>
   </section>
   <section>
    <title>
     <p>Клаус Маркардт (Klaus Marquardt)</p>
    </title>
    <image l:href="#i_050.jpg"/>
    <p>Опыт Клауса Маркардта в разработке программного обеспечения включает в себя системы жизнеобеспечения, международные проекты, фреймворки и линейки продуктов, а также гибкую разработку на режимных объектах. Он описал ряд диагнозов и терапевтических мер для программных систем исходя из собственного интереса к взаимному влиянию технологий, людей, процессов и организации; их можно найти на сайте <a l:href="http://www.sustainable-architecture.eu/"><emphasis>http://www.sustainable-architecture.eu</emphasis></a>. Кроме того, Клаус любит создавать шаблоны, вести на конференциях встречи, где исследуются новые возможности, и интересоваться в жизни чем-то еще помимо программирования.</p>
    <p><emphasis>«Учите иностранные языки», стр. 118</emphasis></p>
    <p><emphasis>«Долговечность временных решений», стр. 128</emphasis></p>
   </section>
   <section>
    <title>
     <p>Клинт Шэнк (Clint Shank)</p>
    </title>
    <image l:href="#i_019.jpg"/>
    <p>Клинт Шэнк — разработчик программного обеспечения, консультант и наставник в Sphere of Influence, Inc. - компании, которая лидирует в проектных инновациях, применяя нестандартные подходы для создания невероятных программ, потрясающих во всех смыслах. Обычно он консультирует по вопросам проектирования и конструирования приложений промышленного масштаба.</p>
    <p>Особенно его привлекают практики гибкого программирования, такие как непрерывная интеграция и разработка на основе тестирования, языки программирования Java, Groovy, Ruby и Scala, фреймворки Spring и Hibernate, а также проектирование и архитектура приложений в целом.</p>
    <p>Клинт ведет блог по адресу <a l:href="http://clintshank.javadevelopersjournal.com/"><emphasis>http://clintshank.javadevelopersjournal.com</emphasis></a>, он один из авторов сборника статей «97 Things Every Software Architect Should Know».<a l:href="#n_37" type="note">[37]</a></p>
    <p><emphasis>«Непрерывное обучение», стр. 56</emphasis></p>
   </section>
   <section>
    <title>
     <p>Кэй Хорстман (Cay Horstmann)</p>
    </title>
    <image l:href="#i_066.jpg"/>
    <p>Кэй Хорстман вырос в северной Германии и учился в Университете им. Кристиана Альбрехтса в Киле — портовом городе на Балтийском море. Получил степень магистра информатики в Сиракузском университете и доктора математики в Университете штата Мичиган в Энн-Арбор. Четыре года Кэй выступал в роли вице-президента и технического директора интернет-стартапа, разросшегося с трех человек в крошечном офисе до открытой акционерной компании. Сейчас он преподает информатику в Университете Сан-Хосе. Располагая массой свободного времени, Кэй пишет книги и статьи, посвященные языку Java и обучению информатике.</p>
    <p><emphasis>«Шаг назад. Теперь автоматизируй, автоматизируй, автоматизируй…», стр. 176</emphasis></p>
   </section>
   <section>
    <title>
     <p>Кэл Эванс (Cal Evans)</p>
    </title>
    <image l:href="#i_017.jpg"/>
    <p>Кэл Эванс — директор экспертного центра PHP (PCE, PHP Center of Expertise) компании Ibuildings. Он программировал на различных языках более 25 лет. Пишет книги и журнальные статьи, посвященные нескольким языкам программирования. Кэл — американец, но сейчас живет в Утрехте (Голландия), где выступает, публикуется, пишет код и участвует в работе глобального сообщества PHP. У него есть блог: <a l:href="http://blog.calevans.com/"><emphasis>http://blog.calevans.com</emphasis></a>.</p>
    <p><emphasis>«Комментарий о комментариях», стр. 52</emphasis></p>
    <p><emphasis>«Этот код не трогать!», стр. 82</emphasis></p>
   </section>
   <section>
    <title>
     <p>Кэрролл Робинсон (Carroll Robinson)</p>
    </title>
    <image l:href="#i_042.jpg"/>
    <p>Кэрролл Робинсон — разработчик прошивок встраиваемых систем с практическим опытом порядка 20 лет. Он писал микропрограммы на C и ассемблере для самых разных процессоров (в том числе 8051, 80x86, 68k, ARM7 и C2000), применявшихся в медицинском оборудовании, лабораторных приборах и системах беспроводной связи. Кэрроллу приходилось создавать и приложения на C++, Java и Python. Он предпочитает пользоваться инструментами с открытым исходным кодом (GCC, GAS, GDB) на различных платформах Linux и создал несколько встроенных Linux-систем.</p>
    <p>Кэрролл закончил магистратуру Университета Case Western Reserve (Кливленд, Огайо) по специальности компьютерная инженерия.</p>
    <p><emphasis>«Умей пользоваться утилитами командной строки», стр. 106</emphasis></p>
   </section>
   <section>
    <title>
     <p>Линда Райзинг (Linda Rising)</p>
    </title>
    <image l:href="#i_055.jpg"/>
    <p>Линда Райзинг получила докторскую степень в Университете штата Аризона, а ее резюме включает и преподавание в университете, и работу в ряде промышленных отраслей. Линду знают во многих странах благодаря ее выступлениям, посвященным шаблонам, ретроспективам, гибкой разработке и процессам перемен. Она является автором множества статей и четырех книг, последнюю из которых, «Fearless Change: Patterns for Introducing New Ideas» (Addison-Wesley), написала в соавторстве с Мэри Линн Маннс (Mary Lynn Manns).</p>
    <p><emphasis>«Послание потомкам», стр. 136</emphasis></p>
   </section>
   <section>
    <title>
     <p>Майк Льюис (Mike Lewis)</p>
    </title>
    <image l:href="#i_025.jpg"/>
    <p>Майк Льюис работает сейчас инженером-программистом в Lutron Electronics, а в свободное время — независимым консультантом по программному обеспечению. Его более чем 10-летний опыт программирования помогает ему создавать элегантные и интуитивно понятные программные решения. Он пропагандирует совершенствование процессов и страстно стремится улучшать пользовательские интерфейсы везде, где только возможно.</p>
    <p>У Майка степени бакалавра и магистра по разработке ПО, полученные в Рочестерском технологическом институте. Сейчас он живет в Аллентауне, штат Пенсильвания, у границы Нью-Йорка и Филадельфии.</p>
    <p><emphasis>«Не бойтесь что-нибудь сломать», стр. 68</emphasis></p>
   </section>
   <section>
    <title>
     <p>Майкл Фезерс (Michael Feathers)</p>
    </title>
    <image l:href="#i_035.jpg"/>
    <p>Майкл Фезерс — консультант в Object Mentor International. Он занят работой с разными командами по всему миру, их обучением и наставлением. Майкл разработал CppUnit, первый порт JUnit на C++, и FitCpp, портированную на C++ среду интеграционного тестирования Fit. Майкл — автор книги «Working Effectively with Legacy Code»<a l:href="#n_38" type="note">[38]</a> (Prentice Hall).</p>
    <p><emphasis>«Золотое правило проектирования API», стр. 90</emphasis></p>
   </section>
   <section>
    <title>
     <p>Маркус Бэйкер (Marcus Baker)</p>
    </title>
    <image l:href="#i_039.jpg"/>
    <p>Маркус Бэйкер обожает заниматься программированием и поражается, что за это ему еще платят деньги. Его обожание распространяется на телефонию, анализ данных, робототехнику и веб-разработку. Время от времени он пишет статьи или ведет колонки, организует группы пользователей и конференции. В настоящее время он, однако, занят уходом за детьми.</p>
    <p><emphasis>«Установи меня!», стр. 100</emphasis></p>
   </section>
   <section>
    <title>
     <p>Маттиас Карлссон (Mattias Karlsson)</p>
    </title>
    <image l:href="#i_015.jpg"/>
    <p>Маттиас Карлссон большую часть времени занимается разработкой программного обеспечения для финансового сектора, а также руководит группой пользователей Java (JUG, Java User Group) в Стокгольме (Швеция). Маттиас занимается объектно-ориентированными разработками с 1993 года. С годами он приобрел опыт работы в разных качествах, в том числе разработчика, архитектора, руководителя команды, инструктора, менеджера и преподавателя. Во всех этих ролях его способность вдохновлять и мотивировать своих сотрудников получила высокую оценку. Группа JUG ежегодно проводит от шести до восьми представительных совещаний с числом участников более 200. Маттиас также выступил одним из организаторов Jfokus, крупнейшей ежегодной конференции по Java в Стокгольме.</p>
    <p>В свободное время Маттиас играет с детьми или катается на мотоцикле, а также помогает строить жилье для неимущих в рамках организации Habitat for Humanity. Маттиас также поддерживает организацию взаимного микрокредитования Kiva. Узнайте, как присоединиться к его стараниям улучшить мир, на <emphasis>http:// </emphasis><a l:href="http://www.kiva.org/team/jug"><emphasis>www.kiva.org/team/jug</emphasis></a>.</p>
    <p><emphasis>«Рецензирование кода», стр. 48</emphasis></p>
   </section>
   <section>
    <title>
     <p>Микаэль Хунгер (Michael Hunger)</p>
    </title>
    <image l:href="#i_024.jpg"/>
    <p>Микаэль Хунгер увлекся программированием еще в детские годы в Восточной Германии. Особенно интересуется людьми, которые разрабатывают программное обеспечение, мастерством программирования, языками программирования и совершенствованием кода. Ему нравится заниматься инструктированием и внутрипроектными разработками в качестве независимого консультанта («евангелист разработки лучших программ» — <a l:href="http://jexp.de/"><emphasis>http://jexp.de</emphasis></a><emphasis>),</emphasis> но в его жизни есть и другие любимые проекты.</p>
    <p>Половину жизни он отдает семье (у Микаэля трое детей), давней зависимости от текстовой многопользовательской игры в подземелье (MUD MorgenGrauen), чтению книг, когда это возможно, работе в собственной кофейне «die-buchbar», где есть мастерская для печати на разных материалах, и всяким поделкам с Lego<sup>® </sup>или без него. Другая половина занята работой с одними языками программирования и изучением других, прослушиванием IT-подкастов (особенно Software Engineering Radio; <a l:href="http://se-radio.net/"><emphasis>http://se-radio.net/</emphasis></a>), участием в интересных и амбициозных проектах типа qi4j, созданием DSL (jequel, squill и xmldsl), обширным рефакторингом и участием в написании и рецензировании книг. Недавно он стал выступать на конференциях.</p>
    <p><emphasis>«Предметно-ориентированные языки», стр. 66</emphasis></p>
   </section>
   <section>
    <title>
     <p>Мэтт Доар (Matt Doar)</p>
    </title>
    <image l:href="#i_038.jpg"/>
    <p>Мэтт Доар работает консультантом по инструментам программирования, таким как системы управления версиями (CVS, Subversion), системы сборки (make, Scons) и системы отслеживания ошибок (Bugzilla, JIRA). Большая часть его клиентов — небольшие стартапы в Кремниевой долине. Мэтт — автор вышедшей в O’Reilly книги «Practical Development Environments».</p>
    <p><emphasis>«Как пользоваться системой отслеживания ошибок», стр. 96</emphasis></p>
   </section>
   <section>
    <title>
     <p>Никлас Нильссон (Niclas Nilsson)</p>
    </title>
    <image l:href="#i_069.jpg"/>
    <p>Никлас Нильссон — наставник по разработке программного обеспечения, консультант, преподаватель и писатель, глубоко увлеченный профессией и влюбленный в красивые архитектурные решения. Он стал разработчиком в 1992 году. Никлас по собственному опыту знает, какое огромное значение для разработки ПО может иметь выбор языков, инструментов, способа общения и процессов. Вот почему он любит динамические языки, разработку на основе тестов, генерацию кода, метапрограммирование и методы гибкой разработки. Никлас входит в число создателей factor10 и работает редактором сообщества архитекторов в InfoQ. Его блог находится по адресу <a l:href="http://niclasnilsson.se/"><emphasis>http://niclasnilsson.se</emphasis></a>.</p>
    <p><emphasis>«Думайте состояниями», стр. 188</emphasis></p>
   </section>
   <section>
    <title>
     <p>Нил Форд (Neal Ford)</p>
    </title>
    <image l:href="#i_068.jpg"/>
    <p>Нил Форд — архитектор программного обеспечения и меметик в ThoughtWorks, глобальной консультативной компании в области IT, уделяющей исключительное внимание сквозной разработке и поставке программного обеспечения. Он проектирует/разрабатывает приложения, обучающие материалы, учебные курсы, видеопрезентации, пишет журнальные статьи, является автором и/или редактором пяти книг.<a l:href="#n_39" type="note">[39]</a> Он также часто выступает на конференциях. Удовлетворить свой жадный интерес к личности Нила вы сможете на сайте <a l:href="http://www.nealford.com/"><emphasis>http://www.nealford.com</emphasis></a>.</p>
    <p><emphasis>«Тестирование — это инженерная строгость в разработке программного обеспечения», стр. 186</emphasis></p>
   </section>
   <section>
    <title>
     <p>Нэйт Джексон (Nate Jackson)</p>
    </title>
    <image l:href="#i_076.jpg"/>
    <p>Нэйт Джексон — старший архитектор программного обеспечения в Буффало, штат Нью-Йорк. Занимается написанием кода с 1979 года, когда у него появился Т1-99 и картридж с эмулятором Бэйсика. Следуя собственному совету, он удовлетворил всех своих клиентов — даже ту даму, которая пожелала иметь белый фон.</p>
    <p><emphasis>«Ваши заказчики имеют в виду не то, что говорят», стр. 214</emphasis></p>
   </section>
   <section>
    <title>
     <p>Олве Маудал (Olve Maudal)</p>
    </title>
    <image l:href="#i_037.jpg"/>
    <p>Олве Маудал живет в Норвегии. Женат. Двое детей. Убежденный компьютерный гик. В данное время в основном пишет код на С и C++. В университете Олве изучал разработку ПО и искусственный интеллект. Профессиональную карьеру он начал в нефтяной отрасли в компании, разрабатывавшей системы разведки нефти и газа. Затем несколько лет занимался системами денежных переводов. Сегодня работает в телекоммуникационной компании, создавая системы для эффективной связи между людьми.</p>
    <p>Олве — активный член энергичного сообщества гиков в Осло, где, среди прочего, является организатором группы пользователей C++ в Осло. Его блог см. по адресу <a l:href="http://olvemaudal.wordpress.com/"><emphasis>http://olvemaudal.wordpress.com</emphasis></a>.</p>
    <p><emphasis>«Тяжелый труд не оправдывает себя», стр. 94</emphasis></p>
   </section>
   <section>
    <title>
     <p>Петер Зоммерлад (Peter Sommerlad)</p>
    </title>
    <image l:href="#i_058.jpg"/>
    <p>Петер Зоммерлад — профессор и глава Института программного обеспечения в HSR Rapperswil. Петер — соавтор книги «Pattern-Oriented Software Architecture», Volume 1 и «Security Patterns» (обе изданы Wiley). Его долгосрочная задача — сделать программное обеспечение проще благодаря <emphasis>декрементной разработке</emphasis>: рефакторингу программ до 10 % их размера благодаря лучшей архитектуре, легкости тестирования, качеству и функциональности.</p>
    <p><emphasis>«Правду скажет только код», стр. 144</emphasis></p>
   </section>
   <section>
    <title>
     <p>Пит Гудлиф (Pete Goodliffe)</p>
    </title>
    <image l:href="#i_027.jpg"/>
    <p>Пит Гудлиф — разработчик программного обеспечения, оратор и писатель, который никогда долго не задерживается на одной роли в отрасли программного обеспечения. Он писал на многих языках во многих проектах. Он также преподает и обучает программистов и ведет постоянную колонку «Professionalism in Programming» в журнале ACCU «CVu» (<a l:href="http://accu.org/"><emphasis>http://accu.org/</emphasis></a>).</p>
    <p>Написанная Питом популярная книга «Code Craft»<a l:href="#n_40" type="note">[40]</a> (No Starch Press) служит практичным и увлекательным исследованием самого занятия программированием. Пит любит писать превосходный код, в котором отсутствуют ошибки, благодаря чему может больше времени проводить со своими детьми. Он обожает карри и не носит обувь.</p>
    <p><emphasis>«Не проходите мимо ошибки!», стр. 72</emphasis></p>
    <p><emphasis>«Улучшайте код, удаляя его», стр. 98</emphasis></p>
    <p><emphasis>«Нужно заботиться о коде», стр. 212</emphasis></p>
   </section>
   <section>
    <title>
     <p>Пол У. Гомер (Paul W. Homer)</p>
    </title>
    <image l:href="#i_064.jpg"/>
    <p>Пол У. Гомер — разработчик программного обеспечения, писатель и немного фотограф, который занялся разработкой программ несколько десятилетий назад и с тех пор стремится строить все более сложные системы. Его опыт включает в себя работу в фирме, консультирование и коммерческие разработки в самых разнообразных должностях, включая аналитика, архитектора, программиста, менеджера и даже — как ни глупо — технического директора. Он готов заниматься любым делом, направленным на создание и выпуск систем.</p>
    <p>В последние несколько лет он стал уделять больше внимания общению с коллегами-разработчиками, в связи с чем опубликовал книгу, ведет блог и очень много выступает в надежде помочь программной отрасли лучше понять себя и достичь новых высот.</p>
    <p><emphasis>«Простота достигается сокращением», стр. 170</emphasis></p>
   </section>
   <section>
    <title>
     <p>Раджит Аттапатту (Rajith Attapattu)</p>
    </title>
    <image l:href="#i_007.jpg"/>
    <p>Раджит Аттапатту — старший инженер-программист в команде MRG Red Hat. Раджит — энтузиаст открытых проектов и участник ряда проектов Apache, в том числе Apache Qpid, Apache Synapse, Apache Tuscany и Apache Axis2. В последнее время он сосредоточился на разработке масштабируемого и надежного программного обеспечения промежуточного уровня для передачи сообщений и вошел в группу AMQP (Advanced Message Queuing Protocol).</p>
    <p>Он опубликовал несколько статей и выступил на ряде конференций и встреч групп пользователей, в том числе ApacheCon, Colorado Software Summit и Toronto JUG. В область научных интересов Раджита входит улучшение масштабируемости и высокой доступности распределенных систем. В свободное время Раджит любит рисовать и играть в крикет.</p>
    <p>С ним можно связаться по адресу <a l:href="mailto:%20rajith@apache.org"><emphasis>rajith@apache.org</emphasis></a>, а также найти на <emphasis>http:// rajith.2rlabs.com</emphasis>.</p>
    <p><emphasis>«Прежде чем приступать к рефакторингу», стр. 32</emphasis></p>
    <p><emphasis>«Тестируйте во сне (и по выходным)», стр. 184</emphasis></p>
   </section>
   <section>
    <title>
     <p>Райан Браш (Ryan Brush)</p>
    </title>
    <image l:href="#i_036.jpg"/>
    <p>Райан Браш — директор и заслуженный инженер (Distinguished Engineer) в Cerner Corporation, где он работает с 1999 года. Его главный интерес — применение технологий в области здравоохранения.</p>
    <p><emphasis>«Код — это проектирование», стр. 44</emphasis></p>
    <p><emphasis>«Миф о гуру», стр. 92</emphasis></p>
   </section>
   <section>
    <title>
     <p>Рассел Уиндер (Russel Winder)</p>
    </title>
    <image l:href="#i_043.jpg"/>
    <p>Рассел Уиндер — партнер в Concertant LLP, предоставляющей услуги аналитики и консультаций по всем проблемам параллельных и конкурентных вычислений и многоядерным системам. Он также выступает в качестве независимого консультанта, автора и преподавателя по программированию, языкам программирования (Java, Groovy и Python), системам управления версиями (Subversion, Bazaar и Git) и фреймворкам сборки (Gant, SCons, Gradle, Ant и Maven). Рассел — автор книги «Developing C++ Software» (Wiley), соавтор книг «Developing Java Software» (Wiley) и «Python for Rookies» (Cengage Learning Business Press).</p>
    <p><emphasis>«Как следует изучи более двух языков программирования», стр. 108</emphasis></p>
    <p><emphasis>«Передача сообщений улучшает масштабируемость параллельных систем», стр. 134</emphasis></p>
   </section>
   <section>
    <title>
     <p>Ричард Монсон-Хейфел (Richard Monson-Haefel)</p>
    </title>
    <image l:href="#i_034.jpg"/>
    <p>Ричард Монсон-Хейфел — независимый разработчик программного обеспечения, соавтор всех пяти изданий «Enterprise JavaBeans»<a l:href="#n_41" type="note">[41]</a> и обоих изданий «Java Message Service» (O’Reilly), а также автор «J2EE Web Services» (Addison-Wesley). Ричард — редактор книги «97 Things Every Software Architect Should Know».<a l:href="#n_42" type="note">[42]</a> Является одним из основателей проекта OpenEJB (проект с открытым исходным кодом), контейнера EJB для Apache Geronimo, а сейчас консультирует разработки iPhone и Microsoft Surface.</p>
    <p><emphasis>«Удовлетворяйте свое честолюбие через Open Source», стр. 88</emphasis></p>
   </section>
   <section>
    <title>
     <p>Роберт Мартин «Дядюшка Боб» (Robert C. Martin «Uncle Bob»)</p>
    </title>
    <image l:href="#i_009.jpg"/>
    <p>Роберт Мартин (Дядюшка Боб) профессионально занимается разработкой программного обеспечения с 1970 года и является основателем и президентом Object Mentor, Inc. в Герни, штат Иллинойс. Object Mentor, Inc. - международная компания, где работают разработчики и менеджеры с большим опытом, которые помогают компаниям доводить их проекты до завершения. Object Mentor предлагает консультации по совершенствованию процессов, обучение, консультации и повышение квалификации в объектно-ориентированном программировании для крупных мировых компаний.</p>
    <p>Боб опубликовал десятки статей в различных отраслевых журналах и часто выступает на международных конференциях и выставках. Является автором и редактором многих книг, включая «Designing Object-Oriented C++ Applications Using the Booch Method» (Prentice Hall), «Patterns Languages of Program Design 3» (Addison-Wesley Professional), «More C++ Gems» (Cambridge University Press), «Extreme Programming in Practice» (Addison-Wesley Professional), «Agile Software Development: Principles, Patterns, and Practices»,<a l:href="#n_43" type="note">[43]</a> «UML for Java Programmers» и «Clean Code»<a l:href="#n_44" type="note">[44]</a> (все вышли в Prentice Hall).</p>
    <p>Будучи одним из лидеров отрасли разработки ПО, Боб в течение трех лет выполнял обязанности главного редактора «C++ Report» и был первым президентом «Agile Alliance».</p>
    <p><emphasis>«Правило бойскаута», стр. 36</emphasis></p>
    <p><emphasis>«Профессиональный программист», стр. 154</emphasis></p>
    <p><emphasis>«Принцип единственной ответственности», стр. 172</emphasis></p>
   </section>
   <section>
    <title>
     <p>Род Бегби (Rod Begbie)</p>
    </title>
    <image l:href="#i_026.jpg"/>
    <p>Род Бегби ведет свой род из Шотландии, но сейчас его сердце покорил город Сан-Франциско.</p>
    <p>Днем он работает ведущим проектировщиком в Slide, Inc., а вечером ухаживает за пандами. Ранее он трудился архитектором API в Current TV, скрывался в исследовательской лаборатории Bose Corporation, консультировал Sapient и успешно спасся от (первого) лопнувшего пузыря доткомов в подвале банка, где разрабатывал системы для анализа ежегодных рент с фиксированным доходом, что было интересно настолько же, насколько интересно звучит.</p>
    <p><emphasis>«Не прикалывайтесь с тестовыми данными», стр. 70</emphasis></p>
   </section>
   <section>
    <title>
     <p>Рэнди Стэффорд (Randy Stafford)</p>
    </title>
    <image l:href="#i_040.jpg"/>
    <p>Рэнди Стэффорд — профессионал в области программного обеспечения с 20-летним опытом работы в качестве программиста, аналитика, архитектора, менеджера, консультанта и автора/докладчика. Сейчас он работает в Oracle, в команде A-Team, где занимается проектами POC, рецензированием архитектуры и производственными кризисами. Он специализируется на грид-вычислениях, SOA, производительности, HA и JEE/ORM.</p>
    <p>Рэнди работал техническим консультантом в Rally Software, главным архитектором в IQNavigator, директором по развитию в SynXis, консультантом в GemStone и Smalltalk, а также специалистом по моделированию в аэрокосмической отрасли и CASE-индустрии. Он соавтор книг: «97 Things Every Software Architect Should Know»<a l:href="#n_45" type="note">[45]</a> (O’Reilly), «Patterns of Enterprise Application Architecture»<a l:href="#n_46" type="note">[46]</a> (Wiley) и «EJB Design Patterns» (Addison-Wesley Professional).</p>
    <p><emphasis>«Межпроцессная коммуникация влияет на время отклика приложения», стр. 102</emphasis></p>
   </section>
   <section>
    <title>
     <p>Сара Маунт (Sarah Mount)</p>
    </title>
    <image l:href="#i_067.jpg"/>
    <p>Сара Маунт — старший преподаватель информатики в Университете Вулверхемптона. Она интересуется языками и инструментами программирования, особенно для беспроводных сетей датчиков и других распределенных систем. Сара читала студентам вводный курс программирования в течение 9 лет и является соавтором учебника «Python for Rookies» (Cengage Learning Business Press).</p>
    <p><emphasis>«Пользуйтесь инструментами для анализа кода», стр. 178</emphasis></p>
   </section>
   <section>
    <title>
     <p>Себ Роуз (Seb Rose)</p>
    </title>
    <image l:href="#i_002.jpg"/>
    <p>Себ Роуз — главный инженер-программист в эдинбургской команде Rational DOORS. Он начал программировать в 1980 году, создавая приложения для агентов по недвижимости и адвокатов на компилируемом BASIC для Apple IIe. Окончив Эдинбургский университет в 1987 году, он сначала участвовал в проекте REKURSIV, а потом стал независимым разработчиком. Сегодня его главными профессиональными интересами являются методики гибкого программирования и реанимация «унаследованных» программ.</p>
    <p><emphasis>«Будьте благоразумны», стр. 22</emphasis></p>
   </section>
   <section>
    <title>
     <p>Скотт Мейерс (Scott Meyers)</p>
    </title>
    <image l:href="#i_054.jpg"/>
    <p>Скотт Мейерс — автор, преподаватель, оратор и консультант. Его опыт в разработке и научной работе превышает тридцать лет. Он написал десятки журнальных статей, а также книги «Effective C++»,<a l:href="#n_47" type="note">[47]</a> «More Effective C++»<a l:href="#n_48" type="note">[48]</a> и «Effective STL»<a l:href="#n_49" type="note">[49]</a> (все вышли в Addison-Wesley Professional). Он также проектировал и контролировал их публикацию в форматах HTML и PDF. Скотт — редактор-консультант издаваемой Addison-Wesley серии «Effective Software Development» и был одним из первых членов консультативного совета сетевого журнала «The C++ Source» (<emphasis>http://www.ar-tima.com/cppsource).</emphasis> Он получил докторскую степень по информатике в Университете Брауна. Адрес его сайта <a l:href="http://www.aristeia.com/"><emphasis>http://www.aristeia.com</emphasis></a>.</p>
    <p><emphasis>«Интерфейсы должно быть легко использовать правильно и трудно — неправильно», стр. 130</emphasis></p>
   </section>
   <section>
    <title>
     <p>Стив Берчук (Steve Berczuk)</p>
    </title>
    <image l:href="#i_021.jpg"/>
    <p>Стив Берчук — инженер-программист в Humedica, где занимается разработкой интеллектуальных бизнес-приложений для медицины. Разработкой программных приложений он занимается свыше 20 лет. Стив — автор книги «Software Configuration Management Patterns: Effective Teamwork, Practical Integration» (Addison-Wesley Professional). Помимо разработки приложений он любит помогать командам более эффективно организовать свою работу на основе методов гибкого программирования и управления конфигурациями программного обеспечения. Адрес его сайта <a l:href="http://www.berczuk.com/"><emphasis>http://www.berczuk.com</emphasis></a>.</p>
    <p><emphasis>«Развертывание приложения: раннее и регулярное», стр. 60</emphasis></p>
    <p><emphasis>«Возьмите сборку (и ее рефакторинг) на себя», стр. 146</emphasis></p>
   </section>
   <section>
    <title>
     <p>Стив Смит (Steve Smith)</p>
    </title>
    <image l:href="#i_031.jpg"/>
    <p>Стив Смит — разработчик программного обеспечения, оратор, автор и наставник. Он профессионально занимается разработкой программного обеспечения с 1997 года и участвовал в написании нескольких книг, в основном в области ASP.NET. Регулярно выступает на встречах пользователей и таких профессиональных конференциях, как DevConnections и Microsoft TechEd. Стив — бывший капитан инженерных войск армии США и ветеран боевых действий в Ираке, где командовал взводом, занимавшимся обезвреживанием неразорвавшихся боеприпасов и самодельных взрывных устройств. Стив живет в Огайо с женой и двумя детьми и является одним из координаторов группы Hudson Software Craftsmanship.</p>
    <p><emphasis>«Не повторяй свой код», стр. 80</emphasis></p>
   </section>
   <section>
    <title>
     <p>Стив Фримен (Steve Freeman)</p>
    </title>
    <image l:href="#i_014.jpg"/>
    <p>Стив Фримен — независимый консультант, специализирующийся на методах гибкой разработки. Он возглавлял, инструктировал и обучал команды во всех уголках мира. Стив — соавтор книги «Growing Object-Oriented Software, Guided by Tests» (Addison-Wesley). В 2006 году Стив получил награду Agile Alliance Gordon Pask. Он участвует в проектах jMock и Hamcrest и создал NMock. Он член-основатель eXtreme Tuesday Club и был руководителем первого London XpDay. Стив выполнял роль организатора и участника многих международных профессиональных конференций. Получил докторскую степень в Кембриджском университете, а еще раньше получил степени в области статистики и музыки. В настоящее время его интересуют проблемы создания хорошего кода и исследование сложности организаций.</p>
    <p><emphasis>«Важность форматирования кода», стр. 46</emphasis></p>
    <p><emphasis>«Один бинарный файл», стр. 142</emphasis></p>
   </section>
   <section>
    <title>
     <p>Сэм Сааристе (Sam Saariste)</p>
    </title>
    <image l:href="#i_063.jpg"/>
    <p>Сэм Сааристе — дипломированный магистр электротехники, занимается профессиональной разработкой программного обеспечения с 1995 года. Сэм отметился в различных предметных областях — от обработки речи в реальном времени в телекоммуникационной сфере до трейдерских приложений в инвестиционных банках. Его любимый язык — C++, он член комиссии BSI C++ с 2005 года. Сэм — поклонник методов гибкой разработки с того момента, как в 2000 году открыл для себя экстремальное программирование. Его заботит качество программного обеспечения, и он уверен, что с помощью «agile» и «lean» можно одновременно достичь как высокого качества, так и высокой продуктивности.</p>
    <p><emphasis>«Не поддавайтесь очарованию шаблона Singleton», стр. 166</emphasis></p>
   </section>
   <section>
    <title>
     <p>Томас Гест (Thomas Guest)</p>
    </title>
    <image l:href="#i_051.jpg"/>
    <p>Томас Гест — опытный и энергичный программист. Он предпочитает языки высокого уровня и простые решения. Его тексты опубликованы в ряде сетевых и печатных изданий, а также на его личном сайте <a l:href="http://www.wordaligned.org/"><emphasis>http://www.wordaligned.org</emphasis></a>.</p>
    <p><emphasis>«Научитесь говорить «Hello, World»», стр. 122</emphasis></p>
   </section>
   <section>
    <title>
     <p>Уди Дахан (Udi Dahan)</p>
    </title>
    <image l:href="#i_008.jpg"/>
    <p>Уди Дахан — «The Software Simplist» (программный знахарь), всемирно известный специалист по архитектуре и проектированию программного обеспечения. MVP (Most Valuable Professional) в области архитектуры решений и связанных систем в течение четырех лет подряд, Уди также входит в число 33 европейских экспертов, признанных международной ассоциацией. NET, является автором и преподавателем в International Association of Software Architects, а также гуру SOA, Web Services и XML, рекомендованным журналом DDJ.</p>
    <p>В свободное от консультаций, выступлений и преподавания время Уди руководит разработкой NServiceBus, самой популярной сервисной шиной предприятия на основе. NET с открытым исходным кодом. Его можно найти по адресу <emphasis>http:// </emphasis><a l:href="http://www.udidahan.com/"><emphasis>www.UdiDahan.com</emphasis></a>.</p>
    <p><emphasis>«Осторожно: общий код», стр. 34</emphasis></p>
   </section>
   <section>
    <title>
     <p>Уолтер Брайт (Walter Bright)</p>
    </title>
    <image l:href="#i_053.jpg"/>
    <p>Уолтер Брайт — создатель компиляторов, написавший их для C, C++, ECMAScript, ABEL, Java и недавно для языка программирования D. Он также известен как изобретатель игры-стратегии <emphasis>Empire</emphasis>.</p>
    <p><emphasis>«Компоновщик не таит в себе никаких чудес», стр. 126</emphasis></p>
   </section>
   <section>
    <title>
     <p>Филип ван Лаенен (Filip van Laenen)</p>
    </title>
    <image l:href="#i_005.jpg"/>
    <p>Филип ван Лаенен — ведущий инженер в норвежской софтверной компании Computas AS, которая разрабатывает IT-решения в общественном и частном секторе Норвегии. Он начинал разработчиком в малых и больших командах, и за 10 лет работы в отрасли Филип вырос до ведущего разработчика и руководителя, отвечающего за безопасность и программную инженерию целой компании. В своей профессиональной деятельности он использовал различные языки программирования, включая Smalltalk, Java, Perl, Ruby и PL/SQL. Особый интерес Филип проявляет к безопасности компьютеров и криптографии и несколько лет занимал в Computas должность ответственного за безопасность.</p>
    <p>У Филипа степени магистра электроники и магистра информатики, полученные в Католическом университете Левена. Он родом из Фландрии, но переехал в 1997 году в Норвегию и теперь вместе с семьей живет в Колсосе около Осло.</p>
    <p><emphasis>«Автоматизируйте свой стандарт форматирования кода», стр. 28</emphasis></p>
   </section>
   <section>
    <title>
     <p>Хейнц Кабуц (Heinz Kabutz)</p>
    </title>
    <image l:href="#i_044.jpg"/>
    <p>Хейнц Кабуц — автор «The Java Specialists’ Newsletter» (Бюллетень специалистов по Java), издания, которое читают 50000 специалистов по Java в 120 странах. Большую часть времени он пишет код на Java в качестве подрядчика многочисленных компаний. Кроме того, он читает в компаниях лекции о том, как эффективнее писать программы на Java, используя развитые функции этого языка.</p>
    <p>Хейнц входит в сообщество «Java Champions», интервью с ним опубликовано Sun Microsystems (см. <a l:href="http://java.sun.com/developer/technicalArticles/Interviews/community/kabutz_qa.html"><emphasis>http://java.sun.com/developer/technicalArticles/Interviews/community/kabutz_qa.html</emphasis></a>).</p>
    <p><emphasis>«Знай свою IDE», стр. 110</emphasis></p>
   </section>
   <section>
    <title>
     <p>Чак Эллисон (Chuck Allison)</p>
    </title>
    <image l:href="#i_033.jpg"/>
    <p>Чак Эллисон — адъюнкт-профессор информатики в Университете Юта Вэлли. Предшествующие два десятилетия он работал инженером-программистом на западе США. Чак активно участвовал в разработке стандарта C++98, был ведущим редактором «C/C++ Users Journal» и вместе с Брюсом Эккелем (Bruce Eckel) участвовал в написании 2-го тома «Thinking in C++». Он также основал «The C++ Source» и является пишущим редактором «Better Software Magzine». Подробнее о Чаке можно узнать на его сайте <a l:href="http://www.chuckallison.com/"><emphasis>http://www.chuckallison.com</emphasis></a>.</p>
    <p><emphasis>«Числа с плавающей запятой недействительны», стр. 86</emphasis></p>
   </section>
   <section>
    <title>
     <p>Эдвард Гарсон (Edward Garson)</p>
    </title>
    <image l:href="#i_003.jpg"/>
    <p>Увлечение Эдварда Гарсона компьютерами началось с изучения Logo для Apple II. Сегодня он независимый консультант по разработке программного обеспечения, помогает компаниям переходить на методы гибкого программирования.</p>
    <p>В число технических интересов Эдварда входят архитектура и проектирование программного обеспечения, языки программирования, а также GNU/Linux. Он энергичный оратор и выступал в Британском компьютерном обществе, Совете архитекторов Microsoft и на различных конференциях. Эдвард участвовал в написании книги «97 Things Every Software Architect Should Know».<a l:href="#n_50" type="note">[50]</a></p>
    <p>Эдвард живет в Монреале с женой и двумя сыновьями. В свободное время любит кататься на лыжах, ходить в горы и путешествовать на велосипеде.</p>
    <p><emphasis>«Применяйте принципы функционального программирования», стр. 24</emphasis></p>
   </section>
   <section>
    <title>
     <p>Эдриан Уайбл (Adrian Wible)</p>
    </title>
    <image l:href="#i_070.jpg"/>
    <p>Эдриан сам себе присвоил титул «катализатор разработки ПО». Он работает в ThoughtWorks, Inc. в основном как руководитель проектов, но старается опровергать обвинения в отрыве от реальности тем, что время от времени сам занимается практической разработкой программ. Работая в IBM, он усвоил методику каскадной разработки (Waterfall/SDLC) и внедрял ее в управление проектами, людьми и процессами на протяжении своей более чем 20-летней карьеры в IBM и Dell Computer Corporation. С переходом в 2005 году в ThoughtWorks Эдриан открыл для себя «Манифест гибкой разработки» (Agile Manifesto), а также экстремальное программирование, Scrum и прочее и понял, что от участия в проекте и от руководства проектом <emphasis>можно</emphasis> получать удовольствие, восторг и удовлетворение. К прежним подходам он уже не вернулся.</p>
    <p>Связаться с Эдрианом можно по адресу <a l:href="mailto:%20awible@thoughtworks.com"><emphasis>awible@thoughtworks.com</emphasis></a>.</p>
    <p><emphasis>«Одна голова хорошо, но две — часто лучше», стр. 190</emphasis></p>
   </section>
   <section>
    <title>
     <p>Эйнар Ландре (Einar Landre)</p>
    </title>
    <image l:href="#i_032.jpg"/>
    <p>Эйнар Ландре — практикующий профессионал в области программного обеспечения, проработал 25 лет в качестве разработчика, архитектора, менеджера, консультанта и автора/лектора. Сейчас он работает в службе бизнес-приложений StatoilHydro, где занят разработкой критически важных для бизнеса приложений, рецензированием архитектуры и совершенствованием процессов разработки программного обеспечения.</p>
    <p>До поступления в StatoilHydro Эйнар работал в качестве разработчика, консультанта и менеджера, занимаясь проектированием и реализацией коммуникационных протоколов, операционных систем и тестированием программного обеспечения для международной космической станции.</p>
    <p>В последние годы Эйнар стал активно участвовать в профессиональном сообществе, написал или выступил соавтором ряда докладов, представленных на OOPSLA и SPE (Society of Petroleum Engineers). Среди его профессиональных интересов объектно-ориентированное программирование, проектирование автономных систем, применение практики системной инженерии, методологии гибкой разработки и лидерство в высокотехнологических организациях.</p>
    <p>У Эйнара степень магистра информатики, полученная в Университете Стратклайда, и диплом сертифицированного IEEE профессионального разработчика программного обеспечения (CSDP). Он живет вместе с семьей в Ставангере (Норвегия).</p>
    <p><emphasis>«Инкапсулируйте поведение, а не только состояние», стр. 84</emphasis></p>
    <p><emphasis>«Предпочитайте примитивам предметно-ориентированные типы данных», стр. 150</emphasis></p>
   </section>
   <section>
    <title>
     <p>Юрий Зубарев (Yuriy Zubarev)</p>
    </title>
    <image l:href="#i_074.jpg"/>
    <p>Юрий Зубарев — архитектор программных систем и руководитель команды в YachtWorld.com, подразделении Dominion Enterprises. Его деятельность сосредоточена на интеграции программных систем, технологиях сбора знаний и слежения, а также на повышении технической эффективности и уровня мастерства в его компании.</p>
    <p>Юрий живет и работает в красивейшем городе Ванкувере в канадской провинции Британская Колумбия. Помимо написания кода он увлекается латиноамериканскими танцами.</p>
    <p><emphasis>«Пишите код так, как будто вам предстоит сопровождать его всю оставшуюся жизнь», стр. 206</emphasis></p>
   </section>
   <section>
    <title>
     <p>Ян Кристиаан ван Винкель (Jan Christiaan «JC» van Winkel)</p>
    </title>
    <image l:href="#i_072.jpg"/>
    <p>Ян Кристиаан ван Винкель — инструктор и разработчик учебных курсов для небольшой голландской учебной и консультативной фирмы AT Computing. В его работе преобладают системы UNIX/Linux (системное администрирование, безопасность, анализ эффективности) и языки программирования (в основном C, C++ и Python). Он также представляет Голландию в процессе стандартизации C++. Двенадцать лет «JC» входил в состав руководства голландской группы пользователей UNIX (Netherlands UNIX User’s group, NLUUG), шесть из которых занимал пост председателя.</p>
    <p><emphasis>«Правильно выбирайте алгоритмы и структуры данных», стр. 198</emphasis></p>
   </section>
  </section>
 </body>
 <body name="notes">
  <title>
   <p>Примечания</p>
  </title>
  <section id="n_1">
   <title>
    <p>1</p>
   </title>
   <p>Нил Форд, Майкл Найгард, Билл де Ора и др. «97 этюдов для архитекторов программных систем». — Пер. с англ. — СПб.: Символ-Плюс, 2010.</p>
  </section>
  <section id="n_2">
   <title>
    <p>2</p>
   </title>
   <p><a l:href="http://martinfowler.com/bliki/TechnicalDebtQuadrant.html"><emphasis>http://martinfowler.com/bliki/TechnicalDebtQuadrant.html</emphasis></a></p>
  </section>
  <section id="n_3">
   <title>
    <p>3</p>
   </title>
   <p><a l:href="http://www.jmock.org/oopsla2004.pdf"><emphasis>http://www.jmock.org/oopsla2004.pdf</emphasis></a></p>
  </section>
  <section id="n_4">
   <title>
    <p>4</p>
   </title>
   <p>По аналогии с новогодними обещаниями, которые люди дают себе: заниматься спортом, бросить курить и т. п. — <emphasis>Прим. ред.</emphasis></p>
  </section>
  <section id="n_5">
   <title>
    <p>5</p>
   </title>
   <p>Дирк Джентли — персонаж Дугласа Адамса, который, как и Шерлок Холмс, занимался детективными расследованиями и держал собственное детективное агентство. — <emphasis>Прим. ред.</emphasis></p>
  </section>
  <section id="n_6">
   <title>
    <p>6</p>
   </title>
   <p>Кевин Макгвайр (Kevin McGuire) — в свое время один из ведущих разработчиков Eclipse, интегрированной среды разработки для Java. — <emphasis>Прим. перев.</emphasis></p>
  </section>
  <section id="n_7">
   <title>
    <p>7</p>
   </title>
   <p>Керниган Б. и Плоджер Ф. «Элементы стиля программирования». — Пер. с англ. — Радио и связь, 1984.</p>
  </section>
  <section id="n_8">
   <title>
    <p>8</p>
   </title>
   <p>Э. Хант, Д. Томас «Программист-прагматик. Путь от подмастерья к мастеру». — Пер. с англ. — Лори, 2009.</p>
  </section>
  <section id="n_9">
   <title>
    <p>9</p>
   </title>
   <p><a l:href="http://norvig.com/21-days.html"><emphasis>http://norvig.com/21-days.html</emphasis></a></p>
  </section>
  <section id="n_10">
   <title>
    <p>10</p>
   </title>
   <p>Расширенная форма Бэкуса-Наура (Extended Backus-Naur Form, EBNF). — <emphasis>Прим. ред.</emphasis></p>
  </section>
  <section id="n_11">
   <title>
    <p>11</p>
   </title>
   <p>Следовало бы перевести «трехбуквенные» слова, но биржевые символы содержат 4 буквы, и автор имеет в виду соответствующие четырехбуквенные слова на английском. — <emphasis>Прим. ред.</emphasis></p>
  </section>
  <section id="n_12">
   <title>
    <p>12</p>
   </title>
   <p><a l:href="http://www.kuro5hin.org/story/2004/2/15/71552/7795"><emphasis>http://www.kuro5hin.org/story/2004/2/15/71552/7795</emphasis></a></p>
  </section>
  <section id="n_13">
   <title>
    <p>13</p>
   </title>
   <p>Э. Хант, Д. Томас «Программист-прагматик. Путь от подмастерья к мастеру». — Пер. с англ. — Лори, 2009.</p>
  </section>
  <section id="n_14">
   <title>
    <p>14</p>
   </title>
   <p>Автор использует в статье биологические термины «раздражитель» (stimulus) и «реакция» (response) в применении к программному обеспечению. В данной статье под термином «воздействие» понимается взаимодействие пользователя с системой («раздражитель»), которое запускает определенные ответные действия в системе («отклик»). — <emphasis>Прим. науч. ред.</emphasis></p>
  </section>
  <section id="n_15">
   <title>
    <p>15</p>
   </title>
   <p><a l:href="http://martinfowler.com/eaaCatalog/lazyLoad.html"><emphasis>http://martinfowler.com/eaaCatalog/lazyLoad.html</emphasis></a>.</p>
  </section>
  <section id="n_16">
   <title>
    <p>16</p>
   </title>
   <p>Мартин Фаулер др. «Шаблоны корпоративных приложений». — Пер. с англ. — Вильямс, 2010.</p>
  </section>
  <section id="n_17">
   <title>
    <p>17</p>
   </title>
   <p><a l:href="http://www.processing.org/"><emphasis>http://www.processing.org/</emphasis></a></p>
  </section>
  <section id="n_18">
   <title>
    <p>18</p>
   </title>
   <p>Стив Макконнелл «Профессиональная разработка программного обеспечения». — Пер. с англ. — СПб.: Символ-Плюс, 2006.</p>
  </section>
  <section id="n_19">
   <title>
    <p>19</p>
   </title>
   <p>Имеется в виду классическая книга Кернигана и Ричи «Язык программирования С». — <emphasis>Прим. ред.</emphasis></p>
  </section>
  <section id="n_20">
   <title>
    <p>20</p>
   </title>
   <p>Отсылка к книге «Mostly Harmless» («В основном безвредна», АСТ, 2003) — пятой, заключительной части серии книг «The Hitchhiker’s Guide to the Galaxy» («Автостопом по галактике. Путеводитель»). Словосочетание «в основном безвредна» в книгах серии является полной энциклопедической статьей о планете Земля. — <emphasis>Прим. ред.</emphasis></p>
  </section>
  <section id="n_21">
   <title>
    <p>21</p>
   </title>
   <p>Оператор Элвиса — это оператор?: в Groovy. Он появился в версии 1.5 языка и получил название благодаря сходству с фирменной прической Элвиса. — <emphasis>Прим. ред</emphasis>.</p>
  </section>
  <section id="n_22">
   <title>
    <p>22</p>
   </title>
   <p>1 ньютон равен 0,224808943 фунта силы. — <emphasis>Прим. ред.</emphasis></p>
  </section>
  <section id="n_23">
   <title>
    <p>23</p>
   </title>
   <p>Людвиг Витгенштейн «Философские исследования», АСТ, 2011.</p>
  </section>
  <section id="n_24">
   <title>
    <p>24</p>
   </title>
   <p>Лакофф Дж. и Джонсон М. «Метафоры, которыми мы живем», ЛКИ, 2008.</p>
  </section>
  <section id="n_25">
   <title>
    <p>25</p>
   </title>
   <p>Мартин Хайдеггер «Время и бытие», Наука, 2007.</p>
  </section>
  <section id="n_26">
   <title>
    <p>26</p>
   </title>
   <p>«Cognitive Psychology» (Когнитивная психология) 4: 328-50 (1973).</p>
  </section>
  <section id="n_27">
   <title>
    <p>27</p>
   </title>
   <p><a l:href="http://www.amazon.com/dp/0135974445/"><emphasis>http://www.amazon.com/dp/0135974445/</emphasis></a></p>
  </section>
  <section id="n_28">
   <title>
    <p>28</p>
   </title>
   <p><a l:href="http://www.developerdotstar.com/mag/articles/reeves_design.html"><emphasis>http://www.developerdotstar.com/mag/articles/reeves_design.html</emphasis></a></p>
  </section>
  <section id="n_29">
   <title>
    <p>29</p>
   </title>
   <p>J. T. Nosek «The Case for Collaborative Programming», <emphasis>Communications of the ACM</emphasis>, March 1998.</p>
  </section>
  <section id="n_30">
   <title>
    <p>30</p>
   </title>
   <p><a l:href="http://www.netjeff.com/humor/item.cgi?file=ApolloComputer"><emphasis>http://www.netjeff.com/humor/item.cgi?file=ApolloComputer</emphasis></a></p>
  </section>
  <section id="n_31">
   <title>
    <p>31</p>
   </title>
   <p>Сборник «97 этюдов для архитекторов программных систем», Символ-Плюс, 2010.</p>
  </section>
  <section id="n_32">
   <title>
    <p>32</p>
   </title>
   <p>Грегор Хоп, Бобби Вульф «Шаблоны интеграции корпоративных приложений». — Пер. с англ. — Вильямс, 2007.</p>
  </section>
  <section id="n_33">
   <title>
    <p>33</p>
   </title>
   <p>Диомидис Спинеллис «Анализ программного кода на примере проектов Open Sourсе». — Пер. с англ. — Вильямс, 2004.</p>
  </section>
  <section id="n_34">
   <title>
    <p>34</p>
   </title>
   <p>Диомидис Спинеллис, Георгиос Гусиос «Идеальная архитектура. Ведущие специалисты о красоте программных архитектур». — Пер. с англ. — СПб.: Символ-Плюс, 2010.</p>
  </section>
  <section id="n_35">
   <title>
    <p>35</p>
   </title>
   <p>Джерард Мезарос «Шаблоны тестирования xUnit. Рефакторинг кода тестов». — Пер. с англ. — Вильямс, 2009.</p>
  </section>
  <section id="n_36">
   <title>
    <p>36</p>
   </title>
   <p>Сборник «97 этюдов для архитекторов программных систем». — Пер. с англ. — СПб.: Символ-Плюс, 2010.</p>
  </section>
  <section id="n_37">
   <title>
    <p>37</p>
   </title>
   <p>Сборник «97 этюдов для архитекторов программных систем». — Пер. с англ. — СПб.: Символ-Плюс, 2010.</p>
  </section>
  <section id="n_38">
   <title>
    <p>38</p>
   </title>
   <p>Майкл Фезерс «Эффективная работа с унаследованным кодом». — Пер. с англ. — Вильямс, 2009.</p>
  </section>
  <section id="n_39">
   <title>
    <p>39</p>
   </title>
   <p>Нил Форд «Продуктивный программист». — Пер. с англ. — СПб.: Символ-Плюс, 2009</p>
  </section>
  <section id="n_40">
   <title>
    <p>40</p>
   </title>
   <p>Питер Гудлиф «Ремесло программиста. Практика написания хорошего кода». — Пер. с англ. — СПб.: Символ-Плюс, 2009.</p>
  </section>
  <section id="n_41">
   <title>
    <p>41</p>
   </title>
   <p>Ричард Монсон-Хейфел «Enterprise JavaBeans», 3-е издание. — Пер. с англ. — СПб.: Символ-Плюс, 2002.</p>
  </section>
  <section id="n_42">
   <title>
    <p>42</p>
   </title>
   <p>Сборник «97 этюдов для архитекторов программных систем». — Пер. с англ. — СПб.: Символ-Плюс, 2010.</p>
  </section>
  <section id="n_43">
   <title>
    <p>43</p>
   </title>
   <p>Роберт К. Мартин, Джеймс В. Ньюкирк, Роберт С. Косс «Быстрая разработка программ. Принципы, примеры, практика». — Пер. с англ. — Вильямс, 2004.</p>
  </section>
  <section id="n_44">
   <title>
    <p>44</p>
   </title>
   <p>Роберт Мартин «Чистый код. Создание, анализ и рефакторинг». — Пер. с англ. — СПб.: Питер, 2011.</p>
  </section>
  <section id="n_45">
   <title>
    <p>45</p>
   </title>
   <p>Сборник «97 этюдов для архитекторов программных систем». — Пер. с англ. — СПб.: Символ-Плюс, 2010.</p>
  </section>
  <section id="n_46">
   <title>
    <p>46</p>
   </title>
   <p>М. Фаулер, Д. Райс, М. Фоммел, Э. Хайет, Р. Ми, Р. Стэффорд «Шаблоны корпоративных приложений». — Пер. с англ. — Вильямс, 2010.63</p>
  </section>
  <section id="n_47">
   <title>
    <p>47</p>
   </title>
   <p>Скотт Мейерс «Эффективное использование С++. 55 верных советов улучшить структуру и код ваших программ». — Пер. с англ. — ДМК Пресс, 2006.</p>
  </section>
  <section id="n_48">
   <title>
    <p>48</p>
   </title>
   <p>Скотт Мейерс «Эффективное использование С++. 35 новых способов улучшить стиль программирования». — Пер. с англ. — СПб.: Питер, 2006.</p>
  </section>
  <section id="n_49">
   <title>
    <p>49</p>
   </title>
   <p>Скотт Мейерс «Эффективное использование STL». — Пер. с англ. — СПб.: Питер, 2002.</p>
  </section>
  <section id="n_50">
   <title>
    <p>50</p>
   </title>
   <p>Сборник «97 этюдов для архитекторов программных систем». — Пер. с англ. — СПб.: Символ-Плюс, 2010.</p>
  </section>
 </body>
 <binary id="cover.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CATLA88DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD0CiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKZJIkSF5GCqO
pNY91rvJW1jGP77/AOFZ1KsafxM0p0p1PhRt0Vycmo3kh+a4cf7p2/ypq312pyLmX8WJrm+u
R7HV9Sl3OuornbfXLiMgTBZV/I1tWl5DdpuibkdVPUVvTrwqaI56lCdPVrQsUUUVsYhRRRQA
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF
FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF
FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRTW+6fpQA6iuJpyxyMMq
jEeoFcH1z+7+J6H1L+9+H/BO0ori2Rk+8pXPqMUpikAyUYD1xT+uP+UPqS/m/D/gnZ0VxNPM
UgGSjAeuKX1z+6H1L+9+H/BOzoriafHG8rhI1LMewo+uX+yH1K32vw/4J2dNd1jRncgKoySa
4uniKQjIjcj/AHTR9cb2iH1JLeRY1C+e9lyeI1+6v9aLOxe5UyMwihX70jdKZZWrXN2sRBA6
t7CpNQvPPYRRYW3j4RR3965t/fmdW1qdMlMmm25xHC9yw/idtoqa6ksYmiV7LiSMPlXwRn+d
ZFXdU+9bf9e6U1UfK3ZfcS6a5krv7yQ2ENyhewlLEcmJ+GFUopZLaYOhKupq7Y6ZeMUmQiHH
IZjz+VXNU02WZVmjRTN0kCcA+9V7KUo86VmT7WMZckpXRJb65BJgTBo27nqK00dZEDIwZT0I
PBrjpYZYW2yxsh/2hiprK9ls5MxnKn7yHoa1p4qSdpmdTCRavTOtoqG2uI7qFZYz8p9exqau
9NNXR5zTTswooopiCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAprfdP0p1Nb
7p+lAHF1oPNLDpNsYpHTLtnaxGaz6uz/APIJtf8AfevFpuyl6fqj3Kiu437/AKMS7keSytWk
dnbL8scnqKvE341NfKEphJXqDsxgZ9qz5/8AkH2n1f8AmKk1G4mF1JGJpAmF+UMcdB2rXmtq
/L8jJx5rJef5lgiG0W4vFQOTKUhBHA96qjVbwPu84n2IGKltALywaz3hZVbfGCeG9qgXTbxp
PL8hwfUjj86JObScNvLuEVBNqe/n2LUttHdyWs0YEYuCQ6jsR1xVi0u0/tEW9vDGkK7hnHzH
A65qvPcJZSWsMREnkEs7DuT1FT2cED6gLm2njKNuPlscMCQe1aR+L3d7q5lL4Pe2s7f16FdG
TUbabdEqXES7wyDG4ehqW6S+Zbc2pm2eSv3GIGahBh0+2lVZkmnlXb+7OQo+tOvo7pvs5gSY
r5CfcBxn8Kn7Ou/kV9rTbpcNPWV7e9dQ7zkBfU89aq/2def8+7/lVjT1cwXtvhlmKhgOhyKo
edL/AM9X/wC+jWcuXljf+tTWPNzS5bf0if8As68/593/ACrUFi8t9atLGfLjhXP+8O1YnnS/
89X/AO+jWwLryL+0MjHY1uoOTwM96ul7P8iKyqfmbVLSUE4GT0r1DyRssUcyFJUDqexrm9U0
42cm9MmFjwfT2p+oatLPIUgdo4hxxwWqtaKbq6jhlkcox55rzq9WFR8qWvc9KhSnSXM3p2H6
ffvYuxC70YcrnHPrV/8A4SD/AKdf/In/ANaqWn2C3d06MxEaZyR19qZbWLXEkmGCRRn5nbsK
zhOtGKUdjWcKMpNyWpof8JB/06/+RP8A61H/AAkH/Tr/AORP/rVTEOnMdgupVb++yfLUZsmj
vooJT8sjABl7gnqKp1a3f8iFRodvzND/AISD/p1/8if/AFqP+Eg/6df/ACJ/9aswQKdR+z5O
zzdme+M4pUtg+o/ZgTt8wrnvgGl7at38uhXsKHbz6ml/wkH/AE6/+RP/AK1H/CQf9Ov/AJE/
+tWZfW62100aMWTgqT3BFWZLewgWETG5LyRq/wAm3HNNVa12r7egnRoWT5d/Utf8JB/06/8A
kT/61H/CQf8ATr/5E/8ArVUewiW7u4gz7YYi6nIyTgdfzrPpSr1o7v8AIcaFGWy/M2/+Eg/6
df8AyJ/9aj/hIP8Ap1/8if8A1qzLyBYDDsJPmRK5z6mnXNqI5LdItzNLErYPqaHWrK+oKhQd
tN/U0f8AhIP+nX/yJ/8AWo/4SD/p1/8AIn/1qqNZ2lqwS7uHMndYh938TTJrFDbm4tZfNjX7
wIwy1Tq111/IlUqD6fmaEevb5FX7NjcQM7//AK1bNcbB/wAfEf8AvD+ddlXRhqkpp8zObFUo
02uVBRRRXUcgUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAU1vun6U6koA4ql3EgAk4HQV2lFcH1L+9+B6H17+7+JxeSQAScDoK
CSxySSfeu0oo+pf3vwD69/d/E4qpTc3BTYZ5CvoXOK7CimsG1tIHjU94/wBfccVT4pHhcPGx
Vh3FdlRS+p2+0H12/wBn8f8AgHFU8TSgYEjgD/aNdlTJoUnhaKQZVhg0fU2tpB9dT3icnbXL
29ys4JJB5yeoq1f2ikfa7X5oH5IH8B96r3to9nOY3Bx/C3qKS1u5rR8xNweqnkGuVO14TOtq
9pw/4cgq7qn3rb/r3SpPO065YebBJA5PJjIxWtLpdtO0bOXYIgQc8ECtYUXKLUXcyqVlGSck
0ZOm3l9vWGA+YPRxkKPr6Vu3Yf7BMM5fyzyvHOKfDBFbpshQIPbvUldtKk4xs3c4KtVTnzRV
jiqt6X/yEoP97+lWtQ0eSOQyWyl4zztHVaq26TWdwlxLBKEQ5OVIrzvZypzXMtj0/aRqQfK9
zQg/0a4trcfflkMj/TnAqvN/yB32Z/4+Dv8A8/lUAvidTF26kjdnaPTsKS2vTBJJlBJFIfmj
bvV+0i9Ompn7OS166FStePd5Gmb/AL3m/LnrjNV/N01TvW3mY/3Cw2/n1qJr55L2OeQfLGwI
RegA7CpjaHUuV59Ni2slt/a237O2/wA/G7zOM7uuMUtpGzahfSrgMm8KScAMSQOaoi4Av/tG
0483fj8c0+W8V4Jo1UgyzFyfbsKpVFu+5LpvZdibU4WS2tXcqWVTGxU5HHT9KZqf37X/AK90
/rUcNxGLRreZHZS4cFSMj1pt5cC4nDKpVFUKqk9AKmUotNrrYqEZJpPpc1HKjVdQLDcogORn
GeBVBobae0kmt1eN4sFkY5BB9DT/ALfE17cTPG+yaPZgEZHA/wAKjku4UtWgtYmQSY3s7ZJx
2q5Si7/P/gEQhJW07f8ABLF7JbqLUSwNI32dORJt/pVhNh1axIXA+zgqCc44OKy7u4FwYcKR
5cSoc98UtxdmSSB48o0Uapn3Hel7VJt+g/ZNpL1IJN5kYyZ35O7PrV3Sd3mT/wDPPyW356U5
7uzujvu4HWXu0R+9+BqOa9QW5t7SLyo2++Scs1TFRjLmuVJylHl5StB/x8R/7w/nXZVxsH/H
xH/vD+ddlXTgtmcuO3iFFFFdxwBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF
FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF
FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAEVxbxX
MZjlUMv8qwrrRJoyWgPmp6dGroqKyqUYVNzanWnT2OLkjeJykilWHUEVr6VqojUQXJwo4V/T
2NaN/p8d6nPyyD7rD+tc7dWc9o+JUOOzDoa4ZQnh5c0djvjOniI8stzrQQwBUgg9CKWuOhuZ
oP8AVSunsDxUx1S9IA89uPQCtljI21Rg8FK+jOnmnjgQvK4RR61zep6g17IAoKxL0X196qM8
s7jczyOeBkkmtXT9GdmEl0Nqj+Dufr6VnKrOv7sVoawpU8P703qQWGkvdxGVpPLXPy5XOatf
8I//ANPX/kP/AOvW0AAAAMAdAKWuiOFppaq5zSxdRu6djE/4R/8A6ev/ACH/APXo/wCEf/6e
v/If/wBetuin9WpdifrVXv8AkYn/AAj/AP09f+Q//r0f8I//ANPX/kP/AOvW3RR9Wpdg+tVe
/wCRif8ACP8A/T1/5D/+vR/wj/8A09f+Q/8A69bdFH1al2D61V7/AJGJ/wAI/wD9PX/kP/69
H/CP/wDT1/5D/wDr1t0UfVqXYPrVXv8AkYn/AAj/AP09f+Q//r0f8I//ANPX/kP/AOvW3RR9
Wpdg+tVe/wCRif8ACP8A/T1/5D/+vR/wj/8A09f+Q/8A69bdFH1al2D61V7/AJGLHoOyRW+0
52kHGz/69bVFFaQpxh8KM51ZVPiYUUUVoZhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF
FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF
FABRRRQAUhAIwRkHsaWigCpJplnIctAoP+zkfypg0ixB/wBR/wCPH/Gr1FR7OD6I09rNfaZF
Dbwwf6qJE9wOalooqkktEQ23qwooopiCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACikPAyarPfwAkIWlYdolLfypOSW41Fy2RaoqgdWgRgJo5oc9C6Yq7HIkq
B42DKehFKM4y2ZUoSjuh1FFFUQFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFVpLxAxSFGmccEJ0H1PSoJ7y8gQyNaL5Y64fJFQ6kUaKnJmhRUNrc
pdQCWPIB4weoqaqTTV0Q007MKKKKYgooooAKKKKACiiigAooqGa4EbiNVLykZCD09T6Ck2lu
NJvYmoqqYrqQfPcLED/DGuf1P+FMOnsTk3t1+D4/pU8z6IpRj1ZdorNa31GA5guRMo/hkHP5
0watJA229tnjP95eRU+1S+JWL9i38LuatFVBfwyKot3WSRzhVzj8/QVaXO0biC3fA4q1JPYz
cXHcWiiiqJCiiigAooooAKKKKACiiigAooooAKKKKACiiigAqKadYVBbLMeFVeS30pLicQID
jc7HCKOrGm29uUYyzEPM3U9lHoPapbd7ItJWuxot3nO66OR2iB+UfX1qwqqowoAA7AU6ihRS
E5NjJYkmjaORQyt1BqlpEZiimjBJjWUhCe4qzNKxPkw8yHqeyD1Pv7VJFEsMSxoPlUYFTZOd
+xV2oNdx9FFFaGYUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU1mVSASAWOAPWnUAFFNd1jUs
7BVHc06gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigBCcDJ6VWG67ycskHbHBf/AVPJGsqbWztPUA9adUtX9Ck7eoi
IsahUUKo6ADFL160tQ3cwt7Z5O4HHue1NtJXEk5OxU0dQkVwF+6Jmxx24qYySXLFYDsiHDS4
5J9F/wAags4mMC2yn5F/1zg8lj1Uf1rRVQqhVAAHAArKmm4pG1RpTb6mRqdmkHkTQlhJ5gUn
JJb/ADitis+9xLqNpD/dJkP4dK0KdNJSlYVSTcY3CiiitTEKKKKACiiigAqpp/zwGc/flJYn
8eB+FW6zIZTpsrQTgi3LExydQM9jWc3yyTexpBc0WluadFMWRGXcrqV9QeKEkSTOxg2OpBzV
3RFmPqOd40hZpgCgHIIzmpKqL/pdxv8A+WER+X/ab1+gpSfRDiurKiaPFKhkcNFIx3AIeFHY
VImnXUR/dag4Hoy7v61pUVCowXQ0deb6kcKyJGBLIJG7sFxUlFFapWMm7hRRRQIKKKKACiii
gAooooAKKKKACiiigCIXEJlMXmpvHVc806SRYo2kc4VRkmobixtrk5liBb+8ODVFdP3XBigu
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
55R6+gq5UawxrK8qqA7/AHj60SjdWQRlZ3Y+looqyAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKSgBaKrXN9b2v8ArZBu/ujk1lz68xyIIgB6vzWU60Ibs2hQnPZG7RXK
S6neS9Z2A9F4qu0sj/ekZvqa53jI9EdCwUurOzoritzep/OlEjqcq7A+xqfrv90r6j/eO0or
ko7+7i+7O/0Jz/OrsGuzLxNGrj1HBrSOLg99DKWDqLbU6CiqVtqltc4AfYx/hbirldMZKSum
c0oyi7SQtFFFUSFFFFABRRRQAUVl3esi2uXhMBbb33Y/pUP/AAkC/wDPsf8Avv8A+tWLxFNO
zZusPVaukbVFYv8AwkC/8+x/77/+tR/wkC/8+x/77/8ArUvrNLuP6tV7G1RWL/wkC/8APsf+
+/8A61H/AAkC/wDPsf8Avv8A+tR9Zpdw+rVextUVi/8ACQL/AM+x/wC+/wD61H/CQL/z7H/v
v/61H1ml3D6tV7G1RWL/AMJAv/Psf++//rUf8JAv/Psf++//AK1H1ml3D6tV7G1RWL/wkC/8
+x/77/8ArUf8JAv/AD7H/vv/AOtR9Zpdw+rVextUVi/8JAv/AD7H/vv/AOtR/wAJAv8Az7H/
AL7/APrUfWaXcPq1XsbVFYv/AAkC/wDPsf8Avv8A+tR/wkC/8+x/77/+tR9Zpdw+rVextUVi
/wDCQL/z7H/vv/61H/CQL/z7H/vv/wCtR9Zpdw+rVextUVi/8JAv/Psf++//AK1H/CQL/wA+
x/77/wDrUfWaXcPq1XsbVFUdP1EXxcCIpsx/FnNXq1jJSV0Yyi4O0goooqiQooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAopKrXt7HZxbnOWP3VHU0
pSUVdjjFydkS3FxHbRmSVtq/zrBvNYmmysGYk9e5qnd3ct3Jvlbjso6CoK82tiZS0joj1KOF
jDWWrAkk5JyaKKK5DrCiiigAooooAKKKKACr1nqlxakKT5kf91v6GqNFVGTi7xZMoRmrSR1t
new3iZiPI6qeoqzXGQzSQSCSJirD0rpNO1JLxdrYWUdV9fpXpUMQp6S3PMr4Z0/ejsX6KKK6
jkCiiigDldW/5CU31H8hVOrmrf8AISm+o/kKp14lT436nuUvgj6BRRRUGgUUUUAFFFFABRRR
QAUUUUAFFFFABRRRQAUUUUAFFFFAGz4d+9P9B/Wt2sLw796f6D+tbtethv4SPHxX8VhRRRXQ
c4UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF
FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR
QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRTWYKpZjgA
ZJoAhvLpLSAyP9APU1y1xcSXMxklOSf0qbUbw3lwW/5Zrwo/rVSvKxFb2jstj18PR9nG73Ci
iiuY6QooooAKKKKACiiigAooooAKKKKACnI7RuHQlWByCKbRQB1GmX63kOG4lX7w9fer1cdb
TvbTrLGeR29R6V1lvMlxCsqH5WFerh63tFZ7o8nE0fZu62ZLRRRXScpyurf8hKb6j+QqnVzV
v+QlN9R/IVTrxKnxv1PcpfBH0CiiioNAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
KANnw796f6D+tbtYXh370/0H9a3a9bDfwkePiv4rCiiiug5wooooAKKKKACiiigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKAErJ1678uEQIfmk5b6VrE4HNcjfTm5u5JOxOF+l
c2KqcsLLqdWFp887voQUUUV5R6wUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFa2g3WyU
27H5X5X61k06N2jkV1OGU5FXTm4SUjOpBTi4s7SioreUTwJKvRhmpa9pO6ueI1Z2OV1b/kJT
fUfyFU6uat/yEpvqP5CqdeLU+N+p7dL4I+gUUUVBoFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
AFFFFABRRRQBs+HfvT/Qf1rdrC8O/en+g/rW7XrYb+Ejx8V/FYUUUV0HOFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBU1SXybCVh1I2j8a5St/xC+LeJP7z
Z/L/APXWBXl4uV6lux6uDjanfuFFFFcp1hRRRQAVuWOk29xZxyuX3MMnBrDrqtK/5BsH+7/W
urCwjKTUkcuLnKEE4sg/sO09ZP8Avqj+w7T1k/76rTorv9hT7Hn+3qfzGZ/Ydp6yf99Uf2Ha
esn/AH1WnRR7Cn2D29T+YzP7DtPWT/vqkbRLUKSDJwP71alNk/1bfQ0nQp9gVep/McXRRRXj
ntBRRRQAUUUUAdDoE2+zaM9Y2/Q1q1z/AIefF1In95M/ka6CvXw0uamjx8THlqs5XVv+QlN9
R/IVTq5q3/ISm+o/kKp15dT436nqUvgj6BRRRUGgUUUUAKBkgV0I0O1x1k/76rnl+8PrXaDo
K7MJCM78yOLF1JQtyszf7DtPWT/vqj+w7T1k/wC+q06K7fYU+xxe3qfzGZ/Ydp6yf99Uf2Ha
esn/AH1WnRR7Cn2D29T+YzP7DtPWT/vqqeqadbWdtvQvvLADJrfrn/EE26eOIHhBk/U1jXp0
4QbSNsPUqTqJNmTRRRXmHqBRRRQAUUUUAbPh370/0H9a3axvD0REMsp/iIA/D/8AXWzXr4ZW
pI8fEu9VhRRRW5zhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
lAGH4iP7yAexNY1a/iL/AF8P+6f51kV5GI/is9nDfwkFFFFYG4UUUUAFdVpX/INg/wB3+tcr
XVaV/wAg2D/d/rXZg/jfocWN+Bepcooor0jzAooooAKbJ/q2+hp1Nk/1bfQ0MaOLooorwT3w
ooooAKKKKAL+iHGpIPVSP0rp65fRf+QlH9D/ACrqK9PB/wAP5nl4z+J8jldW/wCQlN9R/IVT
q5q3/ISm+o/kKp159T436noUvgj6BRRRUGgUUUUAKv3h9a7QdBXFr94fWu0HQV34L7R5+O+z
8xaKKK7zzwooooASuRvpvPvJZOxbj6V02oTeRZSyZ5C4H1NclXBjJbRPQwUd5BRRRXAegFFF
FABRRU1lD593FH2Lc/Smld2Qm7K7Om06HyLGJO+3J+p5q1SUte5FcqSR4MnzNthRRRTEFFFF
ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU
UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF
ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBgeIv9fD/un+dZFa/i
L/Xw/wC6f51kV4+I/is9nDfwkFFFFYm4UUUUAFdVpX/INg/3f61ytdVpX/INg/3f612YP436
HFjfgXqXKKKK9I8wKKKKACmyf6tvoadTZP8AVt9DQxo4uiiivBPfCiiigAooooAvaL/yEo/o
f5V1Fcvov/ISj+h/lXUV6eD+B+p5eM/iL0OV1b/kJTfUfyFU6uat/wAhKb6j+QqnXn1Pjfqe
hS+CPoFFFFQaBRRRQAq/eH1rtB0FcWv3h9a7QdBXfgvtHn477PzFooorvPPCiikoAyPEM2IY
4R/Edx+grBq/rM3m6g4B4QbRVCvHxEuaoz2cPHlppBRRRWJuFFFFABWr4fh3XLykcIuB9TWV
XS6JD5VgGI5kO6ujDR5qi8jmxUuWm/M0aKKK9Y8gKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAwPEX+vh/3T/OsitfxF/r4f8AdP8AOsivHxH8Vns4
b+EgooorE3CiiigArqtK/wCQbB/u/wBa5Wuq0r/kGwf7v9a7MH8b9DixvwL1LlFFFekeYFFF
FABTZP8AVt9DTqbJ/q2+hoY0cXRRRXgnvhRRRQAUUUUAXtF/5CUf0P8AKuorl9F/5CUf0P8A
Kuor08H8D9Ty8Z/EXocrq3/ISm+o/kKp12LW0LsWeJGY9SVFN+yW/wDzwj/75FZywjlJu5pD
GKMUrHIUV1/2S3/54R/98ij7Jb/88I/++RU/U5dyvrsexyFFdf8AZLf/AJ4R/wDfIo+yW/8A
zwj/AO+RR9Tl3D67Hsciv3h9a7QdBUP2S3/54R/98ipq6aFF0r3ZzYiuqtrLYWiiiug5gpkr
iKNnbooJNPrO1ubyrBlHWQ7aicuWLkXCPNJROcdzJIzt1Y5NNoorxD3QooooAKKKKAHIpd1R
erHArsYoxFEsY6KAK5rRofN1BCRwnzGuor0cHG0XI83GyvJRCiiiu04QooooAKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDA8Rf6+H/AHT/ADrIrX8Rf6+H
/dP86yK8fEfxWezhv4SCiiisTcKKKKACuq0r/kGwf7v9a5Wuq0r/AJBsH+7/AFrswfxv0OLG
/AvUuUUUV6R5gUUUUAFNk/1bfQ06myf6tvoaGNHF0UUV4J74UUUUAFFFFAF7Rf8AkJR/Q/yr
qK5fRf8AkJR/Q/yrqK9PB/A/U8vGfxF6BRRRXWcYUUUUAFFFFABRRRQAUUUUAJWB4gm3XEcQ
PCLk/U1v1yN7N595LJ2LcfSuTFytC3c7MHG879iCiiivMPUCiiigAooooA3fD0OIZJiPvHaP
wrZqtp8PkWUSd9uT9TVmvZox5YJHiVpc82wooorUyCiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKAMDxF/r4f90/zrIrX8Rf6+H/AHT/ADrIrx8R/FZ7
OG/hIKKKKxNwooooAK6rSv8AkGwf7v8AWuVrqtK/5BsH+7/WuzB/G/Q4sb8C9S5RRRXpHmBR
RRQAU2T/AFbfQ06myf6tvoaGNHF0UUV4J74UUUUAFFFFAF7Rf+QlH9D/ACrqK5fRf+QlH9D/
ACrqK9PB/A/U8vGfxF6BRRRXWcYUUUUAFFFFABRRRQAUUUlAFfUJvIspZM4IXA+prkq3vEM2
IY4QfvHcfwrBry8XK87dj1cHG0L9wooorlOsKKKKACp7KHz7yKPsW5+lQVreH4d1xJKRwi4H
1NaUo800jOrLkg2b9LRRXtHhhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA
BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU
UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA
BRRRQAUUUUAFFFFABRRRQBgeIv8AXw/7p/nWRWv4i/18P+6f51kV4+I/is9nDfwkFFFFYm4U
UUUAFdVpX/INg/3f61ytdVpX/INg/wB3+tdmD+N+hxY34F6lyiiivSPMCiiigApsn+rb6GnU
2T/Vt9DQxo4uiiivBPfCiiigAooooAvaL/yEo/of5V1Fcvov/ISj+h/lXUV6eD+B+p5eM/iL
0Ciiius4wooooAKKKKACiiigApKWmSuIomduigk0Buc1rM3m6g4HRBtFUac7F3Z26scmm14c
5c0mz3oR5YqIUUUVJQUUUUAFdLokPlWCsRzIS1c5GhkkVF6scCuxiQRxqg6KABXbg43k5HDj
ZWioj6KKK9E80KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
ooooAKKKKAMDxF/r4f8AdP8AOsitfxF/r4f90/zrIrx8R/FZ7OG/hIKKKKxNwooooAK6rSv+
QbB/u/1rla6rSv8AkGwf7v8AWuzB/G/Q4sb8C9S5RRRXpHmBRRRQAU2T/Vt9DTqbJ/q2+hoY
0cXRRRXgnvhRRRQAUUUUAXtF/wCQlH9D/Kuorl9F/wCQlH9D/Kuor08H8D9Ty8Z/EXoFFFFd
ZxhRRRQAUUUUAFFFFABWdrc3lWDKOsh21o1z/iCbdcRxA8IuT9TWGIly02b4ePNURk0UUV5B
7IUUUUAFFFFAF/RofN1BCRwg3GunrH8PQ4gkmPVjgfhWxXq4WPLT9TyMVLmqW7BRRRXScwUU
UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA
BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU
UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAYHiL/
AF8P+6f51kVr+Iv9fD/un+dZFePiP4rPZw38JBRRRWJuFFFFABXVaV/yDYP93+tcrXVaV/yD
YP8Ad/rXZg/jfocWN+Bepcooor0jzAooooAKbJ/q2+hp1Nk/1bfQ0MaOLooorwT3wooooAKK
KKAL2i/8hKP6H+VdRXL6L/yEo/of5V1Feng/gfqeXjP4i9AooorrOMKKKKACiiigAooooASu
RvZvPvJZOxbj6V02oTeRZSvnnbgfU1yVcGMltE9DBR3kFFFFcB6AUUUUAFFFT2MPn3kUfYtz
9KaV3ZCbsrs6awh8iyij7hcn6mrNJS17iVlZHgyd3dhRRRTEFFFFABRRRQAUUUUAFFFFABRR
RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR
RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAGB4i/18P+6f51kVr+Iv9fD/ALp/
nWRXj4j+Kz2cN/CQUUUVibhRRRQAV1Wlf8g2D/d/rXK11Wlf8g2D/d/rXZg/jfocWN+Bepco
oor0jzAooooAKbJ/q2+hp1Nk/wBW30NDGji6KKK8E98KKKKACiiigC9ov/ISj+h/lXUVy+i/
8hKP6H+VdRXp4P4H6nl4z+IvQKKKK6zjCiiigAooooAKKKSgDH8QzYiihB+8dx/CsKr2szeb
qDgdE+UVRrx68uao2ezh48tNIKKKKxNwooooAK1vD8O6eSY9FGB9TWTXTaLD5WnqSOXO6ujC
x5qnoc2Kly035mhRRRXrHkBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAYHiL/Xw/wC6f51kVr+Iv9fD/un+dZFePiP4rPZw38JBRRRW
JuFFFFABXVaV/wAg2D/d/rXK11Wlf8g2D/d/rXZg/jfocWN+Bepcooor0jzAooooAKbJ/q2+
hp1Nk/1bfQ0MaOLooorwT3wooooAKKKKAL2i/wDISj+h/lXUVy+i/wDISj+h/lXUV6eD+B+p
5eM/iL0Ciiius4wooooAKKKKACmSyCKJ3PRQTT6z9bl8rT2HdyFFROXLFsuEeaSic07F3Z26
scmkoorxD3QooooAKKKKAHRoZJFRerEAV2MaCONUXooAFc1o0Pm6gh7INxrqK9HBxtFyPNxs
ryUQooortOEKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo
ooAKKKKACiikoAwfEX+vh/3T/OsitjxEP3sJ/wBk1j15GI/is9nDfwkFFFFYG4UUUUAFdVpX
/INg/wB3+tcrXVaV/wAg2D/d/rXZg/jfocWN+Bepcooor0jzAooooAKbJ/q2+hp1Nk/1bfQ0
MaOLooorwT3wooooAKKKKAL2i/8AISj+h/lXUVy+i/8AISj+h/lXUV6eD+B+p5eM/iL0Ciii
us4wooooAKKKKAErB8QTbp44QeFGT9TW9XI303n3ssnYtgfSuTFytC3c68HG879iCiiivMPV
CiiigAooooA3fD0OIZJj/Edo/Ctmq2nw+RZRJ325P1NWa9mjHlgkeJWlzzbCiiitTIKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDF8R
J8kD+hIrDrptbi8zT2I6oQ1czXlYpWqXPWwkr07dgooormOoKKKKACuq0r/kGwf7v9a5Wuq0
r/kGwf7v9a7MH8b9DixvwL1LlFFFekeYFFFFABTZP9W30NOpsn+rb6GhjRxdFFFeCe+FFFFA
BRRRQBe0X/kJR/Q/yrqK5fRf+QlH9D/Kuor08H8D9Ty8Z/EXoFFFFdZxhRRRQAUUUUAVr+by
LOWTPIXA+tclW94hm2wRwg/eOT9BWDXmYuV527Hq4ONoX7hRRRXIdYUUUUAFT2UPn3kUfYtz
9KgrW8Pw7riSU9EXA+prSlHmmkZ1ZckGzfpaKK9o8MKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAZLGJY2RujAg1x0sbRSvG3V
Tg12dYGvWuyZbhR8r8N9a48XC8eZdDtwdS0uV9TJooorzT0wooooAKtRajdwxrHHLhV6DAqr
RTUnHZkyipbou/2te/8APY/98ij+1r3/AJ7H/vkVSoq/az7sn2UP5UXf7Wvf+ex/75FH9rXv
/PY/98iqVFHtZ92Hsofyou/2te/89j/3yKQ6rekEGbr/ALIqnRS9rPuw9lD+VBRRRUGgUUUU
AFFFFAF7Rf8AkJR/Q/yrqK5fRf8AkJR/Q/yrqK9PB/A/U8vGfxF6BRRRXWcYUUUUAFJS0yRx
HGzt0UEmgDm9am83UGA6RjbVCnSOZJGdurEk02vDnLmk2e7CPLFRCiiipLCiiigArpdEh8qw
ViOZCWrnI0MkiovVjgV2MSCONUHRQAK7cHG8nI4cbK0VEfRRRXonmhRRRQAUUUUAFFFFABRR
RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA
FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR
RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABUN1brc27xN
0YcH0NTUlJpNWY02ndHGzRPDK0bjDKcGmV0Wr6f9pj82IfvVHT+8K52vHrUnTlY9mjVVSN+o
UUUVkbBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBe0X/AJCUf0P8q6iuX0X/AJCUf0P8
q6ivTwfwP1PLxn8RegUUUV1nGFFFFABWfrc3lWDAHlztq/WB4gm3TxxA8IMn6mscRLlps3w8
eaojJooorxz2QooooAKKKKAL+jQ+bqCEjhBuNdPWP4ehxDJMRyxwPoK2K9XCx5afqeRipc1S
3YKKKK6TmCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo
oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK
ACiiigAooooAKKKKACiiigBKyNV0vzMz24+fqyjv9K2KSoqU1UVmXTqSpyvE4ogg4IwRRXTX
+lx3eXTCS+vY/WueuLaa2fbMhX0PY15VWjKm9dj1qVeNRabkVFFFYm4UUUUAFFFFABRRRQAU
UUUAFFFFABRRRQBe0X/kJR/Q/wAq6iuX0X/kJR/Q/wAq6ivTwfwP1PLxn8RegUUUV1nGFFFF
ACVyN9N595LJ2LcfSumv5vIspZO4XA+prkq4MZLaJ6GCjvIKKKK4D0AooooAKKKnsYfPvIo+
xbn6U0ruyE3ZXZ01hD5FlFHjkLk/U1ZpKWvcSsrI8GTu7sKKKKYgooooAKKKKACiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAEp
skSSoUkUMp7EU+ijcNjGutCRstbPsP8AdbkVlz2F1BnfE2PVeRXWUVyzwsJbaHVDFzjo9Tiq
K7CS2gl/1kKN7lartpNk3/LHH0Y1zvBy6M6VjY9UcvRXS/2LZ/3X/wC+qcukWS/8ss/VjS+q
VPIr65T8zmKsRWVzMMpC2PU8CuoitYIv9XCi+4WpH/1bfQ1pHB/zMyljf5UcXRRRXAegFFFF
ABRRRQBe0X/kJR/Q/wAq6iuX0X/kJR/Q/wAq6ivTwfwP1PLxn8RegUUUV1nGFJS0lAGR4hmx
DHCD945P0FYNX9Zm82/YA8INtUK8fES5qjPZw8eWmkFFFFYm4UUUUAFa3h+HdPJMRwgwPqay
a6bRYfKsFJHLndXRhY81T0ObFS5ab8zQooor1jyAooooAKKKKACiiigAooooAKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA
ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK
KACimu6opZ2CqBkk9BVOK6lu5QbddtuDzK4+/wD7o/rQBeooooAKbJ/q2+hp1Nk/1bfQ0MaO
LooorwT3wooooAKKKKAL2i/8hKP6H+VdRXL6L/yEo/of5V1Feng/gfqeXjP4i9AooorrOMKZ
K4jjZ26KCTT6z9bm8qwZQeZDtqJy5YtlwjzSUTm5HMkjO3ViSabRRXiHuhRRRQAUUUUAOjQy
SKi9WIArsY0EcaoOigAVzeiw+bqCk9Ixurp69HBxtFyPNxsryUQooortOEKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC
iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo
oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAEqvPd+UuVQsPU8CrD
DIIqFwrLu5xjp0oAiW6kZNwEft8/Wnfayv8ArImHuvNVHwkvmKsgCjPf+v1pjXUixeewAGOm
zOPxFMm5pJdQuQA4BPY8GpawBcic4kLNnsAuBUgkntXBQssfdc7h+HpSGblFZ0epr/y0Q4/v
IM/p1q3Dcwz/AOqkVj6Z5/KgZNRSUUALRUUtxDD/AKyRV+prL1XxDaWNo0kcqySZ2qoPei4G
xUdxPHbQtLKcIvU4rzseL79r7c0hCg42ryK6O81dL/RbhAAJgFYD1+YVPNrYdjVW3lvpfNvF
2wA5jgPf3b/CtAAAYApFOVBp1UIKKKKACmyf6tvoadTJDiNvoaTGtzjKKKK8I98KKKKACiii
gC9ov/ISj+h/lXUVy+i/8hKP6H+VdRXp4P8Ahv1PLxn8RegUUUV1nGJWB4gm3XEcQPCDJ+pr
frkb6bz7yWTsW4+lcmLlaFu52YON537EFFFFeYeoFFFFABRRRQBveHodsEkpHLHA+grYqvYQ
+RZxR9wvP1qxXtUo8sEjxK0uebYUUUVoZBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU
UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF
ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU
UUUAFFFFABRRRQAUUUUAFFFFABRRRQAlQzRkqdpIJ9O1T0lAGFcWDF2yzMCOMHv+NS2doiW4
WXazD1BYAfnWq0SklhwT1PrVSb918jKv3cgk4GBVXJtYz7i1UgtvVAPSMrVdlMVujCZdxHAB
5FartCqEO/LcYGWqvcswi/cxCNBk7nOCfwqbDMsTTId4f5v9oZB+tTGUOQzKhY98EYqKZWeI
y/PIoPLdBmmxJu5ZGwe+cVDKRbivruM4SbIHZ+RUtxrMggIbah7laoyoiqzYwoHTNZE8pn4z
hc1zTqtOyN4U7q7Fur55WJQk45yTWbdRrdqwYjzMZGBmtmy09JPvDI756VW1hYbdgsR5PpVR
jK3MS5K/Kc9DC+3BZVIGMnmr1tcXFlcLFc5HAIPtUQd7WYSFSyNyCOoNUb69M99JLBG0Ssch
SxY/iT1rospxMtYyPQdN1zUJ5hbhbfr8jSkjcPqK2Beaig/fabu94Zgf0OK4nR3nuZbSNVw5
weOMV6PSjfZgyO3lM0QcxvGT/C4wRUtJS1YgqrqUohsZWzyVwPqask4rnNZvhcyiKI5jQ9fU
1jXqKEGb0KbnNdjNooorxz2QooooAKKKKANHQlzqAP8AdUmulrB8PR5kmk9AFrer1cKrUzyc
W71AoopK6TlK+oTeRZSyZ5C4H1NclW94hmxDHCD947j+FYNeZi5Xnbserg42hfuFFFFch1hR
RRQAVYsIfPvYo+xbJ+gqvWv4fh3TSTHoo2j6mtKUeaaRlWlyQbN6loor2jxAooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo
AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi
iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApkka
yDB6jofSn0lAGebOSMMf9cx4BPGB6VQexuGYNOwRMev863JZViQsxridV117yRkQlE3FVGeu
KTlbQFG5qX15AkAjhAk2jHt/9euZu9UuZZVTzGRs/KBwD7VLZSuX2v0brk1Fe2xaX92vHHSu
eTk5WZvDlUdDQt7t5IDHOMMQQfrUbmBz5eViZehfjNZ11NLayhyDsY/N7Gr0bq8eZSCCOCRW
LSTv0NVdoa108CNGJAwPUryPzrOmJlnAwdz/AHSe9Wpn2RkKMqTwNv3vpRpcchu1kuYjiNTs
yehrSMrozlBIWBCg2yrwhzlqmMWmtIkkbJvB+tTXUazIXPGODXNJpZnuGMNxtJPAqoLuRJ9j
vtAs0trl7u5nhDFdqLvGQK6D7Xb/APPeL/vsV5bNbvZxCLzfOmYZDZI2/wCNLBDqOMs+0ccn
pWiuloL3Xvc9R+123/PeL/vsVBNqlnEP9cGPonNcCs10ZWCpEyDp1GatrcbWCyIy579RWM60
1okjohRpvVtm3f6tLdAxxjy4z19TWdTQadmvPnOU3eR6MIRgrRCiiioLCiiigAooqW1gNxcp
Ev8AEefYU0ruyE2krs6HRYfKsFJHMh3VoU1FCKFUYAGBTq9uEeWKieFOXNJyCkpaZK4jjZz0
UEmqJ3Oa1mbzdQcA8INoqjTncySM7dWOTTa8OcuaTZ70I8sVEKKKKkoKKKKACum0WHytPQkc
udxrm40MkqovViAK7KNBHGqDooAFduDjeTkcONlaKiOooor0TzQooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqOWVYYy7nAAp9
YWuXQm8+yjbDmM4+tJuyuBjah4h+0X37o5iXjGetYup2L/aknt2JDfMBjpVLTIZUeSKUHIY1
3ej2QS3AuUHHPSly63DmtoZVlpTXNn9oc+WVPIP8xU7+TA23G5gMktU2qahIbnyI/khUcY6V
gXcshn+cktSlJWstyop3u9i5e41CEq0Sqo6t61SVo4UxtwvRRnk1JJc5tljY4VevvWBqF3Jj
ap5bgfSsFFz0Zu5KOxtC8iSTBO6Tj5uw9hWnHLGyAgg/SuVtlkZ0QjtyTThJc2GoK7FhGSGH
pxVezSZm5tnY2ej3N7MBLGY7YnLM3BYegrJ1Szit9TuI4V2Kr4GDXc6TfLqNhHcKME8MPQ1y
GtD/AInF1/v1Nf3IqxpQSlJ3MxYF3bmyx9TVhVxQq1Iq1xSnJ7s7owitkKoqVR600Cnis2bJ
DxThTRThUFC0UUUDCiiigAre0K02Rm5cfM/C/Ss3TbI3k4BB8teWP9K6hVCqFAwBwBXbhaV3
zs4cXWsuRDqKKK9E80Kztbm8qwZQeZDtrRrn/EE264jiB4QZP1NYYiXLTZvh481RGTRRRXkH
shRRRQAUUUUAaGiQ+bfqxHEYLV01ZHh+HbbySnq7YH0Fa9etho8tNeZ5GKlzVH5BRRRXQcwU
UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF
ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU
UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF
ABRRRQAyRxHGzt0UZNefX+oxfb5bov8AvN5TZ/dHqa766UNbSK3QqQa8q8Q2zW19JMpLQyn5
wOzetJ9gOu01rFZWuplDBlyCemcd6yY9VuPNk2ORbZ4Qn7vtWXouoyxyJbsoaJzgHtW3fWkP
msLf5RnOB0NTzOOjCyATpcLknn1qndReWd5YMM9D1pQ4g4cdK0tL0uXVZVlkG22U8k/xewrP
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
6fcPYVP5TTorM/ty19JP++aP7ctfST/vmj29PuHsKn8pp0Vmf25a+kn/AHzR/blr6Sf980e3
p9w9hU/lNOisz+3LX0k/75o/ty19JP8Avmj29PuHsKn8pp0Vmf25a+kn/fNH9uWvpJ/3zR7e
n3D2FT+U06KzP7ctfST/AL5o/ty19JP++aPb0+4ewqfymnRWZ/blr6Sf980f25a+kn/fNHt6
fcPYVP5TTorM/ty19JP++aP7ctfST/vmj29PuHsKn8pp0Vmf25a+kn/fNH9uWvpJ/wB80e3p
9w9hU/lNOisz+3LX0k/75o/ty19JP++aPb0+4ewqfymnRWZ/blr6Sf8AfNH9uWvpJ/3zR7en
3D2FT+U06KzP7ctfST/vmj+3LX0k/wC+aPb0+4ewqfymnRWZ/blr6Sf980f25a+kn/fNHt6f
cPYVP5TTorM/ty19JP8Avmj+3LX0k/75o9vT7h7Cp/KadFZn9uWvpJ/3zR/blr6Sf980e3p9
w9hU/lNOisz+3LX0k/75o/ty19JP++aPb0+4ewqfymnRWZ/blr6Sf980f25a+kn/AHzR7en3
D2FT+U06KzP7ctfST/vmj+3LX0k/75o9vT7h7Cp/Kc5RRRXjHtBRRRQAUUUUAFFFFABRRRQA
UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF
FAAaaRTqKAIitJsqbFGKdxWIwtLtp+KKLhYj20u2nYoxRcLDQKXFLilpDIJIQ8iPkgoakxTs
UYqnJvQlRS1GinikxSipKCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA
KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii
igAooooAKKKKACiiigAooooAKKKKACiiigDZs9FWWJJZJvlYAgKKujRrMDBVj7lqq6fqkNvY
qkpJdSQAB2pW19MjbASPdq9CDw8Yq55s1iJSdieTRLVh8u9D7HNZt5o80ALxnzUHoOR+Fatr
q1vcsEOY3PQN0P41frT2NGqrx/AzVatSdpficTWxpmmQXdr5khcNuI4IpNbsViIuIhhWOGA7
H1p2l6lb2tr5cu7duJ4FckIRhV5ah11KkqlLmp7lr+w7T+9L+Y/wo/sO0/vS/mP8Kd/bVp/t
/wDfNaAORmu2NOjP4UjilUrR+Jszf7DtP70v5j/Cj+w7T+9L+Y/wq1d3kVmFMu75s4wM1X/t
q0/2/wDvmlKNCLs7DjKvJXVzKmsok1VbYFvLJA6881p/2Haf3pfzH+FUDcJc63HLHnaWXrXR
VlQp05uWnU0r1KkVHXocrqlrHaXIjj3FdoPNU609f/4/h/uD+tS6JYrITcSrlVOFB7n1rmdP
mquETrjV5aKnIZZ6LJMoeZvLU9Bjk1oLo1mBgq59y1aBIAJJwB1NZM+uxpIViiLgfxE4zXY6
dGkveOJVK1Z+6SS6JbOP3ZdD9cise90+azOXGUPRh0rfsdQivQQvyuOqmrMsazRtG4yrDBFE
qFOpG8AjiKlKVpnGUVPe25tbl4j0B4PqKgrzWmnZnqJpq6NrTtLt7m0WWQuGJPQj1+lWf7Dt
P70v5j/CpNF/5Bsf1P8AOrF5dJaQ+bIGIzj5a9OFKn7NSkuh5U6tT2jjF9Sn/Ydp/el/Mf4U
f2Haf3pfzH+FINctyQBHLz7D/GtSnCFGfwpCnOtD4mzmtWsorMxiIsdwOdxrOra8Rfeg+h/p
WRDE00qxoMsxwK4K8UqjUT0KEm6SlIdb28tzIEiUsf5VswaDGBmeQk+i8VoWdqlpAI05PUn1
NOurqK1j3ytgdgOprrp4aEI81Q46mJnOXLAq/wBj2f8Acb/vo1DPoULAmGRkPoeRUf8Ab67/
APUHb67ua07W6iu498R+oPUVcVQqaJESdenq2zl7uzmtH2yrgdmHQ1BXY3ECXMLRyDIP6H1r
k7mBred4n6qfzrjr0PZu62O3D1/aqz3L+m6XHeW5leRl+bGAKv8A9h2v96X8x/hRoP8Ax4H/
AHz/ACFX7iXyYJJcZ2KTj1rrpUqfs1Jo46tap7RxTKH9h2n96X8x/hUMugoQfJlIPowzTF18
7vmgGPZq1rW5S6gEsecHgg9jRGOHqaRQSliKesmctdWktrJslXHoexqCuq1SFZrGTI5Qbh+F
crXFXpezlZbHdh6vtY3e4UUUVibhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ
AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF
FFABRRRQAUUUUAFFFFABRRRQAUUUUAKAT0o2N6Gr+h/8hFPof5V01dNHD+1jzXsclbE+yly2
OLCsOxrp9JuGuLJS+d6HaSe9XaK66OHdKV7nJWxHtVaxBeRCa0ljPdTj61yB612tcZJ99vrW
ONWqZvgno0IOtdmn3B9K4wda7NPuD6UYLeXyFjvsmR4i/wBXB9W/pWFW74i/1cH1b+lYVY4n
+KzfC/wkWdN/4/4P98V1tclpv/H/AAf74rra6cH8LOXG/EjB1q2nmvQ0cTuu0cqpPrWxaReR
axx4+6oz9e9TUV0QpKM3Puc86rlBQ7GZrs5iswinBkOD9K5ytrxF96D6H+lYtedim3UZ6WFi
lSTJrWZre4SVf4T+ddeDkAjvXFDrXY23/HrD/uD+Vb4JvVGGNS0Zk+IYv9VKB6qf8/nWJXQe
IP8Aj0j/AN/+hrn6wxKtVZvhXekjqNHUrpsWe+T+tR69/wAeH/Ax/WrOnp5djCuMfID+fNUf
ELAW0S9y2f0/+vXbP3aFvI4Ye9X+ZhR/6xfrXaVxcf8ArF+tdpWOC+0bY7eJh+IvvQfQ/wBK
j8Pwh7h5SPuDj6mpPEX3oPof6U/w7/q5/qP60rXxOv8AWhV7YX+u5s1y2rXBnvX/ALqHaPwr
qa4yX/Wt9TV4yTUUiMFFOTYyrml3Bt7xDn5WO1voap05M7xjrmvPi3Fpo9CUVKLTO0rC8QxA
SRSgfeBB/D/9dbgzgZ61leIQPssZ77/6V6uJV6TPJwztVQ/Qf+PA/wC+f5Crl8CbKcAEkoeB
9Kp6D/x4H/fP8hWlTpK9JLyFVdqrfmcilncyNhYXP/Aa6PTLRrS12P8AfY7j7VbBB6Gg9Kml
h403e9yquIlUXLayKerXCQWTqT80g2qK5atfV7CdSbgyGVe+eq//AFqyK4sTKUp6qx3YWMVD
R3Ciiiuc6QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKAHxSvC++Nireoqf8AtG7/AOfh/wA6tQaM1xaRypIFZhnaw96T+w7rdjMePXdW
yp1UtEzndWi3rYrf2jd/893/ADroNLE32NXndmd/m+bsKq2eipE4e4YSEdFHStWu3D0pxfNN
nHiKsJe7BEdxIIreSQnAVSa488mtvXb0BfsqHnq/+FYdc2LmpTsuh0YSm4w5n1FHWuzT7g+l
cYOtdmn3B9K0wW8vkZ477JkeIv8AVwfVv6VhVu+Iv9XB9W/pWFWOJ/is3wv8JFnTf+P+D/fF
dbXJab/x/wAH++K62unB/CzlxvxIwNanmivgI5XUbBwGI9a3IXEkKOOQyg1z+v8A/H8P9wf1
q9od0JLfyGPzx9PcUUp2rSi+oVad6MZLoJ4ghLW8coH3Dg/jXP12csayxtG4yrDBFYE+iXCu
fJKuueOcGoxNGTlzRVzTC14qPLJ2M6GNpZVRRkscCuxRQiKo6AYrN0zSvsr+bMQ0nYDoK02I
VSzHAAyTWuGpOCbl1McVVVSSUehjeIZBshjzzksRWTaQm4uY4h/Ef0qa+mN9fnb0JCp9K19M
0s2cjSSsrNjC7e1czi69VtbHSpKhRSe5pAYGBXP6/MHuljH8C8/U/wCRXQVhz6NdTzNI8sW5
jk8n/CuvEqUocsUcmGcYz5pMyI/9Yv1rtKwF0K4VgfMi4Pqf8K36jC05QvzIvF1Iztysw/EX
3oPof6UeHZAHmj7kAj8P/wBdW9VsJb0xmNlGwHO49axLaVrG+DHnY2GA79jWVRunX53sbU7V
KHItzrK5LUYTBeypjAzkfQ11cbrIiuhBVhkEVU1DT0vUHO2Rejf410Yik6kfd3ObD1fZT97Y
5arFhCZ7yKPHBbn6Va/sS734+THrurX07T0slJJ3SMOW9PYVx0sPOUtVZHbVxMFH3Xdl2sPx
FIN0MfcAsa2pHWKNnc4VRkmuTvrg3V08vYngegrqxc0ocvc5MJBufN2NvQf+PA/75/kKt3//
AB4z/wC4f5VU0H/jwP8Avn+Qq7do0tpKiDLMhAFXT/gr0M6n8Z+pyKuyNlWIPqDXQaLeSXKO
kpLMmCGPpWaNGvC2DGAPUsK2tOsRZREEhnb7xH8q5cNTqKd7WR14mpTlCyd2WmUMpVhkEYIr
j508ud0/usRXXyyLFE0jnCqMmuPlcySu56sSavG20JwV9ewyiiiuA9AKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii
gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACgdaKKAOmtNRs/JjjEoT
aoGGGKti4gYZE0ZH+8K46jJrsjjJJWaOKWDi3dM62S/tYwd06cdgcn9KzLzW9ylLZSuf4z1/
CsWionipyVloVDCQi7vUVmLMWYkk9SaSiiuY6xR1rqV1KzCj9+vT3rlaK2pVnSvbqY1aKq2v
0NfW7mG4SIQyB9pOcfhWRRRUVJucuZl04KnHlRYsXWO8idzhVYEmuj/tKz/57r+tcpRWlKvK
krIyq4eNV3bL+szRz3YeJwy7QMiqcUrwyB42KsOhFMorKUnKXMaxgox5TobTWoZFC3H7t/Xs
avrcwMMrNGR/vCuPozXTHFzSs9Tmng4N3TsdZNqNrCDumUkdlOTWLqOqvdAxxjZF+p+tZtFR
UxM5q2yLp4WEHfdk1p/x9w/74/nXYVx9p/x9w/74/nXYV0YLZnNjd0Vnv7WNyjzKGU4Ipv8A
aVn/AM91/Wucv2DX0xHTef51XqJYuabVkaRwcGk7s6v+0rP/AJ7r+tOjv7WVwiTKWPQVyVWd
O/4/4P8AfH86I4ubaVkEsHBJu51tcbOxad2PUsTXZVxcv+tb61WN+yRgt5FzT9SksztxvjPV
Sf5VuQ6paTLnzQh9H4rlaK56eInTVlsdNTDQqO+zOx+0Q4z50eP94VXn1S0hB/ehz6JzXLZN
FavGS6IxWCj1Zev9SkvDtxsjHRR/WqNFFcspOTuzsjFQVom7o13BDaeXLKqMXJwfoK0fttr/
AM/EX/fYrkaK6IYqUIqNjmnhIzk5XOuN7agf8fEX/fQqCXV7SMcOXPoormKKbxk3siVgodWX
tQ1KS8O3GyMdFB6/WqNFFc0pOTuzrjBQVohRRRUlBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA
BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU
UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA
BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU
UUAFFFFABRRRQAUUUUAOicxyK46qQRWr/b8v/PFP1rIoq4VJQ+Fmc6UJ/Eh8r+ZKzkYLEmmU
UVBpsFSQSmGZJF6qQRUdFGwmr6Gv/b8v/PFP1rJY7mJ9aSirnUlP4mRCnGHwoKKKKg0Ciiig
AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK
KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig
AooooAKKKKACiiigAooqexiWa7jjcZVmwaaV3YTdlcgorpv7Gs/7jf8AfVH9jWf9xv8Avqun
6pU8jl+uU/M5mium/saz/uN/31R/Y1n/AHG/76o+qVPIPrlPzOZopW+8amsYlmu4o3GVZsGu
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
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB
RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU
UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRTxFIwyI3I9QpplF
guFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRTmR1ALKwB6EigB
tFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR
RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA
FFFFABT4YZJ5BHEhZj2FJHG0sixoMsxwK6qxs47OEIoy5+83qa3o0XVfkYV66pLzKFtoSABr
mQk/3V4A/Grq6XZIMCBT9STVyivSjRpx2R5cq9SW7KMmk2Un/LLafVSRWbeaJJGpe3YyAfwn
r/8AXroKKU6FOS2KhiKkHucT0oroNZ08Sxm4iX94vLAfxD/Gufry6tJ05WZ6lKqqkboKKKKz
NQooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK
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
TRMx3E5Bq1/b8X/PB/zFYNFKOIqRVkypYanJ3aN7+34v+eD/AJisSKTy50kxnawbHrzTKKmd
Wc7c3QqFGEL8vU0dQ1X7bAIvJ2Ybdndn+lZ1FFROcpu8ioQjBWiFFFFSWFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABV7TtTkszs
Yb4ieV7j6VRoqoycHdEygpq0jrbe/trkDy5V3H+E8GrFcVTxLIBgSOB9TXZHGO2qOKWCV/dZ
2RIUZYgAdzWXfatbRjESrPJ64yB+NYDO7/eZm+pzTameLbVoqxUMHGLvJ3HSSNK5dzljTaKK
4zt2CiiigAooooAKOlFFADmd3+8zN9Tmm0UUAFXrO/MUZt7gGS3bgr3X6VRoqoycXdEyipKz
JrmJI3zFIJIm+63f6EetQ0UUm7saVkFFFFIYUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU
AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR
RRQAUUUUAFFFFABRRRQAUUUUAf/Z</binary>
 <binary id="i_001.jpg" content-type="image/jpeg">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</binary>
 <binary id="i_002.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwClB5skIYyyknPO8+v1qNmlXjzZf++z/jVm
yx5KZ9/5025TDZFAFQSyg8yy/wDfZ/xqRWlPPmy4/wB8/wCNN8vcwqwYwseCeaAK8UV1dBvK
uZVOe8h4/WuoTRlGn2jRzGWSPa0zGQ/MOM559jXP2zpasSdrAjoRU0mpiNQLeR13LhgG4/Kg
C7fXlnDMyxw5A/2m/wAazJrtDJ8hcA9g7f41SnuN+QB16moQ6jIzk+tAGl9oK4ZWLexdv8at
2+owLkSwBvcM3+NYC4ZsmTHOetWUUAcSA0AbM80EpLRBk9g7f41Ut4ZS7s80hXsPMP8AjVUb
1GRzmnLdPH1zQBe2EH78n/fZ/wAatWlmbjIzJ/32f8aqQTLKMkgV0WiyxRZEoGcccUAY89p5
OcvJ1/vn/GoBH/tSf99n/GtrVGt3kOwHqayyBnjpQBEUUAku4A/2z/jUEMb3E+VeURqecOef
1p8gNzKIY+nc1vaPpgbGRiNcZ460AU3sngt47pWdDv2/fPPB96K2teQJYRhRgCQfyNFAHH2Y
zbKfr/OpHjJSmacf3Cg+/wDOrZXFAGdtO7A7U7cSNpGallj2tn1pp/dKc85oApXBw2KqZwTV
m6zvFRiL92W9aAKm5jkDNNyV7cVZ8odajK7Tz0oARDGeoOal3Lj5TTSgdcrwaaFI5FAEyzso
4OakEocfMKiXB7daChUgjpQBZhk2OMnitu2nbcMGueJxzVu1mZSGzxQBtTsQ/PeqlxMVPlxj
5m7U6SfdDv6kDipdL0+SeUOQfMfp/s0AWdG08yOE/Fmrq40jgh2r8qqOTTLaCO0g2rwo6k1m
3l213J5MPKA4yO9AEGt3nnpGifcEn9DRS6pZ+Rp8bN9/zB/I0UAc1YoTAmOvP86uMePeodNY
eSn4/wA6muCkZLbwB35oAiuFZowyjpWfI7DO4cVba+gxtRt/rwajmVZId2aAKhBeMtjNJDym
0c1JvKoVU8MMVdtbLbCDg5NAGe9uWGMVC9qQ3XNdCIAiYK1Vmt8ngUAY6xYPvSiIh60Tbd+9
KLXPagCj5GelL5B6VorBjtUq2+R0oAyzaF04qqd0Mmw5ro0hK1BfWQlQkD5hQBQtrohgPSur
stWtraxUoh83+InvXGGMof8AaWpXmOwHnpQB0V1r7XHyEkL6ACrelapBGwVo8Zx81clBqaBd
ksYI9RV6GWByGhk/4CaAOt19g+nxspyDICPyNFY0l4XsI4G5/eZB/A0UAc+t75FqoQfNzz+N
ZVxdyytmRifxpXlJRRVZ2JJoAuWrM3zrzV9JHaLDDFGlGIwrGQAOM1oy2iGJWjGAelAEekWn
2pgWGQp9K3mhCEKo4FQ+HoAIXxg4P+Faj27MxJAxQBTMII6VC9sMVqCNVX5iKz7m5hDFVPNA
FI2x3U5YFHWl84GTHUVE0+JCp/CgCUqi0gHoKqyXap161Vl1XA44oA1wmR15phBA5rJj1Ric
g/pWhDdicYIINAGRqeIbnpw1RIBJEU/WpdfO2SI/XP6VThkIXOaAKcwMbEU2OZ1PBI/GnXhy
wb1FVgaANvTb2WW8hiZiVye/+yaKqaMc6pCP97/0E0UAVmfCiq7SVIynbVdhzQBctbnado71
uWl/92M9AK560UGQZq9u2uCOKAOp8Jz75JkY9DmtvULzy1YAfd61zvhFW+2zHtsrR1UuWREU
uN2Wx35oAzLu/uXBMaHb6nisn7XKJfn6mtfU0uvs6u+7H9wAgCsaOB/LyxLH1oA0rKV5ZVHv
Vm8hYYbkUaHbEyKxHp2rZvbdZExgflQBxlxIc8nJqrtHLuDWje2hjkPB/KmpAjxbM4NAENsI
ZkO2NgB1bIq5bOySBckr2JpbW1SLOG4NXfs6s6lR09qAKetx+ZZxyd0zn9KxoW+Uiulv4g1g
4PYE1y5O0kCgCO6PzAe1Vs1NcNlvwqDNAGjoh/4msP8AwL/0E0Umh/8AIWh/4F/6CaKAIJG2
pVRm5qxJ92qp60AWLaUJIM1c37mwOtZkfyuDWgJAygigDrvC0iC+MSj70f6810bwqr72UEjp
XD+G5/L1iA5+XkE/ga9GWMMOaAMC+Sd8hEBX3rMGmzSt0Cj0rqmi2E5ORVSS4jiBJIFADdNs
Vtk4AzinzDk1Zs285A2MVDdfJIVoAxbqBJCcgVUWyQ5xx61p3ADZ2nmsqSSW2k3H7pNAFiOw
AIq0sAXrUEF4HHUVYE6kUAVtQUfYpMf3T/KuP1CNYXXYeCM12F6wNs4/2T/KuO1Vw3lADBwc
0AUWcscmm0hPNJQBo6F/yFof+Bf+gmijQf8AkLw/8C/9BNFAFeUfKMVVbrVyUYAqoQc80AIO
KkjlKkCmMCKVBzmgDd0KUCcNjJzx7V6XBOPs6Nu6qCfyrybSrlYboZ+6a9EsLkHTw3XjH6UA
T3t7tB5/WsPznurgAZ2Zp987yNtU43VGrpbgKp5HWgDdl1K3srWMGVEYDuwFZ11qYkXzN4IP
oayb1EvMGQZx71nzfuU2xk7R2zmgDQn1YRNknj60yTUIr2EDbgisghpDuY0q5jYY4oA0Ecx8
q34VaiuC/fn61lJLh/apklxKCp60Aac8mbdsnnaa5TVJA0igcYrduLjGFB61zl+3+kNQBWzS
03PNLQBo6D/yF4f+Bf8AoJopNA/5C8P/AAL/ANBNFAEe7dFmmbMjNFn8zOh6AU7O04NAEDqc
9OKT6VLIQ3SmBOKACLhwRXYaBe74/LYjHGa5FFwc1f0+48qQ/MQKAOu1KZEQMDjNYy3cTvlm
5HFPnuhcQrntVS0tknvFAxjPQigC6sowzBhiqcy+aMAgHNdXBptkFG6JCcc/KKp3+n2KnKBU
PsKAOfZY4lwWyaiYqSNoJ/CtfyrQH5Qp98Um2EfdUfhQBhTNIGxtIFEUh3VqXSoQeBn6Vjt8
jZxigC1LJ055rHupN8pNWZpSRnNUHOWoAQUUneloA0tA/wCQvD/wL/0E0Umgf8hiD/gX/oJo
oAr2Z/0nHYjmnytmQqKZbDNxn2pXRt24dqAGDqQe1PXmmb8ZyOadGaAHbaemQQAM0g5P0q7D
b/6I0x+8c7R60ARrKVIHar2muIp97de1Ztqq3EUiM22VTnFTwzBXBbrQB2MNy0keG4BFZuob
43OOc1HFekIvHHbmpgRMN0hFAGWm8dc1IHwaveTGD2NUr1VUZU4oAhuZNx61ny55PYVMz7j1
4qFhvkCAjmgCtPE3kB8cN0qmQRweta+qAQ2tugPrn9KzEOWGRmgCGlq3f2bW7KwHysO1U6AN
Pw+f+JxB/wAC/wDQTRSeH/8AkMQfRv8A0E0UARW3yyFvapAcjmiigBhRSOlMEXORRRQBetLN
5ZAXGEHWrt/cRia3SNSsSR7frwKKKAM24KRzCWIlXPUY4p5kimwwBDjrRRQBNHeFCA2cA+lW
hqKeZkBtv0oooAe2pIW4DD8KrXN2sinG78RRRQBSMueBmpYCiuGYEmiigCHU5POKYzx61HZw
jfvfoO1FFAFu5lW4UqVIGOKymhIJB6CiigC9oC7dXgJ/2v8A0E0UUUAf/9k=</binary>
 <binary id="i_003.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACYAJkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDqfskN3q1756F9gjC/MRjj2qb+yLH/AJ4f
+Pt/jRbf8hW//wC2f/oNXaAKf9kWP/PD/wAfb/Gj+yLH/nh/4+3+NXaWgCl/Y9h/zw/8fb/G
j+x7D/nh/wCPt/jV6igCj/Y9h/zw/wDH2/xo/sew/wCeH/j7f41erO1bWbXSot0zgyEfKmeT
QA/+yLDr5H/j7f40w6dpaj5kUf8AbQ/41w2p+K9Qu2ZY3MMZPAUkGsg6hckfNcSP9XNAHqA0
3TGPyxqfpIf8aeNIsD0gz/wNv8a8wg1G6UkpPKp9nIrZ0vxDewSKGmeYcZVmJoA7f+x7D/nh
/wCPt/jR/Y9h/wA8P/H2/wAabpmrQ6ip2Aq46qav5oApf2PYf88P/H2/xo/sew/54f8Aj7f4
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
f/E15Z/Yuq/9Ay8/78N/hRRQB//Z</binary>
 <binary id="i_004.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDptM061uLCOWaMvIxYli7c8n3q2NIsf+eH
/j7f40mjf8guH/gX/oRq9QBS/siw/wCeH/j7f40f2RYf88P/AB9v8avUUAUf7IsP+eH/AI+3
+NH9j2P/ADw/8fb/ABqzLOkQO4/hWFf6yDcCBH2KeC2DQBburXSrSPdLHj/gbf41ntd6Mq58
nA93b/GuY1sG5vTi7BRccevFVZQIhtaJpRjPBHFAHY211pFwxC2/T/bb/Grgj0jbuaPA/wB9
v8a8/t721t23LBID3zWnFqsMybniY/7OaAOzis9JmGY0B/4G3+NT/wBkWHXyOP8Afb/GuIa/
bpHGkY9Sf/r1PZeIpLaYBp94H8ABoA7D+yLD/nh/4+3+NH9kWH/PD/x9v8ah0/XrK9UYk2Of
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
aKKKAP/Z</binary>
 <binary id="i_005.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDp9M060uLCOWaIvIxYli7c8n3q1/ZFh/zw
/wDH2/xo0X/kFw/8C/8AQjV6gCj/AGRYf88P/H2/xo/siw/54f8Aj7f41eooAo/2PYf88P8A
x9v8aX+x7D/nh/4+3+NXaWgCj/Y9h/zw/wDH2/xo/sew/wCeH/j7f41dzSFgOpxQBT/sew/5
4f8Aj7f40n9j2H/PD/x9v8adc6lb25wW3H2qsdajdT5QG7/aoAnGkWP/ADw/8fb/ABpf7HsP
+eH/AI+3+NQ2OpPIo+1KiE9Cp4/nWkrqwypyKAKf9j2H/PD/AMfb/Gj+x7D/AJ4f+Pt/jV2i
gCl/Y9h/zw/8fb/Gj+x7D/nh/wCPt/jV2igCl/Y9h/zw/wDH2/xo/sew/wCeH/j7f41dooAw
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
ofagoTjpRRQBpaCNuqwf8C/9BNFFFAH/2Q==</binary>
 <binary id="i_006.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDZtLa2lsI5JVLSSBiTvbPU+9V9Hgtpp7iO
UO5Bwm5zx+tWtNXyNNjnOduxwQfqaNLBFlbMm3c7Oen+2aAJtX060t7AyRIVZSoyHbnke9VL
C0ikEpkjJCNnlz09OtW9VKGx+cFWHLAGm6V5TWSyspkJG4/SgCjqMKJJFa2sX+kStuHzHhf/
ANeKsWWjRRWu2eV5ZpG4+duBx/8AXpIXaUy36KqSSnyo19FHH81roIYFt41WMZ2+tAGe+i2q
W7ZUllXrvb0+tKml2hUEQ7gByd7f41fuXAhbJwDwfpXG+IPExRfsdiRx9+TB/SgCzdXWk2Fx
MZlaQfwxqxz/ADrEvNeickWtoI17FnOf51gs5ZiSST3J7035j/CfwFAG/ZeIIoji7tPNX1DE
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
HGKKKANDRP8AkKQf8C/9BNFFFAH/2Q==</binary>
 <binary id="i_007.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwBtoplhV5HkZjkklzzz9aseSvq//fbf41FY
f8eqfj/OrVAEXkrnq/8A323+NHkL6v8A99t/jUtKBQBF5C+r/wDfbf403yV9X/77P+NWMVHK
QqEk4GKAIZBDEjO7NtA/56H/ABrHudaiQkRK7c8fvDVPUNRkBlh3ZUkgYrLxkg0Aara5N5uV
jO303mtK01W1niBfekg6gyGuaERK5zzQ25T70AdvH5EudkhOOo8w/wCNP8lD0L/99n/GuKhu
ZUkysrAk11mmXIkhCu6s4A6UAWfIT1f/AL7b/Gl8hPV/++2/xqXtmlxQBB5C+r/99t/jSGBf
V/8Avtv8anpDQBWMQ9X/AO+z/jThCuOr/wDfZ/xp5pw6UAQbTFLEyO4O4j759D70U6X78X+9
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</binary>
 <binary id="i_008.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDSsbWKa0SSQMztkklzzyferH2G3/uN/wB9
t/jTdM/48Ivx/matUAV/sNv/AHG/77b/ABpfsNt/cP8A323+NWKUUAV/sFt/cP8A323+NL9g
tv7h/wC+2/xqejOKAIPsFt/cP/fbf40f2fbddh/77b/GrAOe1Ub3UreDdG8qhgDld3X2oAc1
tYr97jPq7fpzThaWbDIxj/rof8a4e712Vr55kUN2UE5Cj6fhWfJqd7ISTcOv+6xFAHpX2C16
hCf+Bn/Gj+z7f/nmf++2/wAa85i1vUoCCl5Lx2ZyR/Otuw8aSxgLeQCQd3DYP5YoA6v7Bbf3
D/323+NJ9gt/7jf99t/jUlrdQXsAmt5FdT6EHFTdaAKn2C3/ALjf99t/jR9gt/7jf99t/jVo
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</binary>
 <binary id="i_009.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwChE8jRBmllJOeS59frSlpMf62T/vs/41bt
lR7RcgE8/wA6hePD7B3oAks7Wa6bcZpFjHU7j/jWkLW3QBSzscdfMPP61NbQN5QjhAUd6ll0
4QR+Y8wzjgUAZrxRtkAup/66H/GqVzC6qTHNICP9s/41YkcxsSKrvMGyAMUAZrzTqxBml/77
P+NMM8/aeX/vs/41aaKSWQrGBnmgadeEdE/z+FAFM3Fx/wA95f8Avs/4037VcZ/4+Jf++z/j
Vi5tLm2iEkhXaTjj/wDVVaQfvCPYfyoADdXP/PxN/wB9n/Gm/arn/n5m/wC+z/jSFeKaRigB
5urn/n5m/wC+z/jTftdz/wA/U3/fZ/xphzTaAJPtdz/z8zf99mkN7dD/AJeJ/wDvs1Hg9hTS
D3oAl+23R/5eZv8Avs0hvbv/AJ+pv++zUODSHNAGlot5dNqsIa5mI+bguf7poqLRM/2tDn/a
/wDQTRQBt2jbbZcd8/zp4HzZzUdsP9HT8f51IemKANu3LSJgcAdvWnvF8vJyfeqtvcLtEgOC
OCKfJeAqaAKt7FzlTk+1ZL4DHNacl1tBJGaypGy+exoAZE22XeM1pW8wfgNz6VjFvnIBp4le
NsqeaANLWgDYJ1+8KxpR+8OPQfyqWe6mlgKSPlQemajk/wBZ+A/lQA3y896Qwn1qVFL4CIzk
9lGamNpcgZNrOo94yBQBRMXvTfKNW3jZOuAfQ8UzacZ5oAreWfWkMfrUzOBwc0wsKAIvLpDF
71IXWml1oAs6Om3VIT/vf+gminaSwOpw/wDAv/QTRQB0ljol5LZo6z2oBzwWbPU+1THw9fHp
cWn/AH03/wATVrTf+PCP8f5mrJHPagDMTQNRRsi5tcem5v8A4mpDod73mt/wY/4VoY+lJj2o
AzZtBumj2rNbk55+Y/4VWl8N3mwsk8B2rk/Mf8K3CPSnxEnzc4+438jQB53z52GZcg4OKmJX
GSwqItGkjgxKx3Hr9ad56Y4t4/yP+NADXI8skGtOx0efUZlIZUjK1DpsUd3crGYEweuBXcpb
BbSNLZhGV64oAp2Gk2+lx5jZHf8AiLcmmXN3JICiospOelQXhu4W2MwkX1PWsqYzLwQQPagC
S8tUI3PGEz2yaxp7doNpDggjp3qdzOXJBOKR9zcuB9RQBQZhuw4zU8Omy3ELTRRbkX3pJAma
fBcvAMRsR7etAFQiNSQysCPWm5iPRTVy4kW55PDVRPBI9KALulbP7Sh2jB5/9BNFN0n/AJCc
P/Av/QTRQB2emugsYwXAPPBPuatcZ5wKqWehWd3aQzSTuHycgMR/EfetT+zbUoqiZvl6c0AQ
Z56DNIc+lWWsYNhVbplY98ZpYrKJEw92Xb1IAoAqU6LhZj6Rt/I1aNpETxcnH0FJcQRw2lwy
Sbj5ZoA8ymP7wn1OabyTx2pJm/eDFT6eglvIYz0Zxn86AOp0DR3g043jcSSgMMjoBz/WtCN7
hAD82DWqNiwRQDgHC49hVjyY2QLtGBQBiSky8tWfcxjPaugubeMLnAFYNw265wD8vNAGfNGB
2FVZUGK1LyMLED3rKlPy0AUZ1waqtkNxV1xmqzr82aAGucOCO9Mk5b60sgyo9qOtAFjShjUo
fx/9BNFO0sf8TGH8f/QTRQBsWWoOtvHGqbm54A96e+qTI2GUqfQqan8OBbTTG1CZFJwzqGXn
PJAFamllNSuri9vLePygAAGAYdBzzQBiDWJBn5VwO9K2rTIoLphSMglTjFX7TT4NS1N4zEqW
6De6IoAz02/hgGt24sbSaFIZYY2iQbUUqO1AHJ/2wy9QBx6Gr1tPcuLxJ4SgEPUj605Le3vv
EZtVt4vJt48sVUdfl4/WtnWLhRY3MX8Yi3cehOKAPLZPvfhUlkdt5C3TDjn8ahc5cfQUsR/e
IM4+YD9aAPTEcSX0JJyqpke/Spbm+ubcn5UC9sn/AOvTLOEfZoZkOX8lV6Z5xWdqVkywuTch
5mORk4x+tABPqsrgiRQAepHaqLyqXLA8AVnxPPCRHId+eD3q9JZyQaaZnx8+SAfT/JoAW4nQ
4ywxt4rMnlQn5f5VGs+RyoYipZ5fKClYVbPUY6UAU3fJ6VEcE1bl8uQY27GPNVXDL2oAQqCh
qMjFSA5GBTSOaAJ9MH/Ewh+p/wDQTRS6cP8AT4fqf/QTRQBstcSSwQWMY/1Y7f3iTXRTqmm6
IkTcA8uR6HJrC8I232m4WZskRncT75yP5VqXxOq6slop3Qg5fH93v+poAu6BbNbab5s64lmP
mP7cAY/Si/uxBaS3B6RqxHvxV65YiLaDy1c14iZ5vsunpy91IFIHZcgH+dAEWh3osLZru4Qt
JdsTkdQASP6CnT3/ANvbVZkyIhAqqCP9v/69WNX0UW9qJ47hlCKF2Hp0+lZFiCNI1VgMAhf/
AEJaAOWfh/oKIyNwJ7H+tNf75oHIxQB6npEo+xQEfdaNT+lF7atdE+Xg1S8NS+boFv6qNn5A
CthT5Ue5vyoAyo9IELh5VG/OFpnioiLTo4l4YA/0qzc3zWqm5miZgOEXr/nrWBrN6LhS75Ac
ZA9M0AYUIw/NaOcr1zVOGMb/AJTwRxVnBj60AQyrnnvUEh/OrLNnOaqSfeoARFwM96Rl+ely
CuAeaUZJoAl08Yv4fqf/AEE0U+x/4/Yfqf8A0E0UAdp4esTbaDiIDzZA3PTuQKs6Xpgs5Jpm
A82XqR2/zisbT7+WOxjAc8Z/malOqS55dgfoKAOglid5M7gFxxkVmQaPP/bZv7iVXVVwiben
6/SqP9qOP+WjfpQdTbP+tagDW1mxuL63EULqq55yKxLrS5tL8PX3nOrFtuNox/EtK2quvPmt
xSX94114Yv3ZySrqvP8AvL/jQBwT/wCsNAof/WN9acOnAoA9D8Lrt0K3x3Yn+VbibTksRj0N
YHheYNocWDnZkH2q1e3MpkSOE4zzmgDVuHiMZ3Rq4x0IrktWtlkDvt25PAx0FT3jz7MtdsD6
ACsuV7hh/rSw9wKAKCq0b/SrTuHXPeo88/OMUYxyv3aAI3OBVd+tTv3zULg5oATaBSiilFAE
tln7fD6ZP/oJop1l/wAfkP1P/oJooA0bW/8ALtlQR5xnnHualS885sFMVHZQs1qhBAHPX61M
8OwBg3zHoAKAF6nimSFUQsR05NTLp96+PJjkOe5BxVldAv3ADuihhznmgDn2k+0ySlThQNqj
16VahmMvgy8Y45mUH80rXj8LTYJa4iB7AQj/ABqS08PmBJIroo1pnd5argMff8h+VAHnbkeY
3sa6bS/D1nNoYvrt5fMkztVCOMEj09q6hvC2jyoGNsBuGeMVWvo4bS2FnbptijBwM+vP9aAK
HhiGSGO9QNugDLtJ+9zurWW3UnzN2WzgCqnhtCE1FQp5Vdv1+aq8d7IzeYhzhirLnpg//WoA
t3Wls6lw+FHasOeMxsec4rUvdTaRCFyufesl33ZyetAEJYMMHimA8baJSAflqMMaAEfrVC6l
bfhT0q8xzWbKMyNmgBBLID96l86TP3qbijFAF3SpXbUYQxyOf/QTRSaSMalD+P8A6CaKAOks
X3WkSgbjyFT15rc07S2hJu7zDSY+VB0Wm+F9PWDTknfBlfOD6cmtz2NAEDPiBX+7yKRpM3Ih
zztzTZwZISh6hh/MVXV/+Jt1/hwKAJhLKGIDA7etPupCLVmwOapzHZdSKOrf4VblU/YyDjNA
CRzBdPDg8Af0rn72bzJGJrba3d7JUXjK8/lXP38LxOQecUAaHhpwJriM4+YKR+tYExNnrl1a
k43Hcq+ucH+tOt7me1vI50H3SMj1FdDBd6fc3Iu3iAuAuMnt/nFAGbDot5cje2xF7buv8qzL
6B7WZonxkHtXW216cyecynLfLz2qlq0djeESFmVwD0//AFUAcnjJ70xjjgVZuV8tyE5X3qow
KgtQA3f8yqOp61UuU2TH3q5aoXkMpHAqR1DsQVzQBlYOaXFXJLMHJQ/hVZkKHBHNAFjS/wDk
Iw/j/wCgmil0v/kIQ/U/+gmigDu7DVoLS0SCWOXzEJBwAR1PvUkviC1AB8ubr6D/ABoooAZJ
rVrl2CTcj+6P8az4dYgGpLIUl6+g/wAaKKAH3es27XqsElA78D/Grw1u0K4aOYj6D/GiigCO
fxJarGURJc4wMqP8axrjV4pWJKPz7CiigCsbyA5+WT9P8aia6QH5fMA+g/xoooAZLfAJlTIC
P8+tRDUySNxeiigAe6jfkhj+FU5Z1dwi7gD1oooAti4iijCKre5wKiFyhcnDUUUAL9pTsGqO
do5QCFZT64FFFAC6Yh/tGHBJHPb/AGTRRRQB/9k=</binary>
 <binary id="i_010.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDpdL0y1nsY5pkLuxYkl255PvVv+yLD/nh/
4+3+NGi/8guH/gX/AKEav0AZ7aTZdoP/AB9v8aP7JsSvEHP++3+NXyabkenNAGc2j2m1m8oj
AyPnb/Gq1vZ2TylXhxg45dv8a1LmUJE2484OBXIXuqiMTgBhKGBU/hQBr6m+kaehBiV5ccIs
pz/OuZuNR8zJjgWMHoC5zWbK8rkl3JY9WNQYJ4BJoAsyXE4PM5X/ALan/GmJPOzf8fbf99n/
ABqBoz3HNJt+XO4UAXhNJ0ad/qJD/jVu1u/LPzMJR/tMf8ax1bnFOLHPy5zQB2djfaXM6x3F
t5ZPfzGrcj0zTpFDJEGU9CHb/GvNluZR1Q5+lbOkeIbizO1wWi/unFAHZf2PY/8APD/x9v8A
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
Bmo6hFfwR29vFJu37vmAAxg+9FFFAH//2Q==</binary>
 <binary id="i_011.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDl/tt1/wA/M3/fw0fbbr/n5m/7+GoKaWAo
As/bLr/n5m/7+GkN9cj/AJepv+/hqoZPSm5oAtNqN12uZv8Av4aYdQvMf8fU3/fw1X+lCrnk
0AT/AG+9/wCfuf8A7+Gg6he/8/c//fw1FikMXTmgCX+0bz/n7n/7+Gl/tC9P/L1P/wB/DUYi
A608qoTkHd2oAX7fej/l7n/7+Gj+0Lz/AJ+5/wDv4agdSvUUwnGBQBd/tC7I/wCPqb/v4aVb
67I/4+p/+/hqmPrzT0YDg9aALf227/5+pv8Av4aT7dd/8/U3/fw1BRQBP9uu/wDn6m/7+Gj7
dd/8/U3/AH8NQUlAFgX13n/j6m/7+GioB1ooGNaTnFMyTSN940maBDs0cYphpRk8UASRjIJF
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
UUDP/9k=</binary>
 <binary id="i_012.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDpdM061uLGOWWMu7FiWLtzyferX9kWP/PD
/wAfb/GjRv8AkFw/8C/9CNXqAKP9k2P/ADw/8fb/ABrF8Qy6bpsBRY/3pHGJD6/WtzUNQisL
d5ZMkLXl+q6jLqd4ZJCfYY6CgAe8nkf5JpRnoA5q3BHdFNzzzH/gZ/xqLTrXJ8xhnnj2rTOB
0oArnzV/5ay/99n/ABpMyf8APWX/AL7P+NT7RnmmsuTigCBvO7TS/wDfZ/xpuZsczy/99n/G
rBXFMK5oAjBl/wCe0v8A32f8aR/OPSeYfRz/AI1KV4oXJoAzLua7hX/j4nx67zWl4a1a3WYx
6lukQ9HeQ8U25txLGVxWFJGYJWU9KAPW49M06WNXjjDK3IYOef1p39kWP/PD/wAfb/Guf8E6
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
Vof+Bf8AoJooooA//9k=</binary>
 <binary id="i_013.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwB1qolgR38xmbOTvPrUjw7JFYK5A6je3NUb
aeUWi/OFVc8496Evo53KCV2YdTgYoA0bhYJH3K3kjHQSH/Gq/wDo65zK7fRz/jVWSeHz1TBP
HrVGa6nMu23wqg9wDQBqmaM/djkx6mRqidyoLM7Io/2z/jUTyzGJV4DdzjrTJVMzgSZCKO1A
D45Y5XCieXJ6AMf8ald0jYAyye/7w/41Y0aWzsLjzLiAvkAIRzj9arybZ7p2hTJJ4HpQBR/0
qebInkijB6eYef1qyzPnaHlyPRzVn+zZ5DhEJYHr6VP9gmgQtJE2cdaAKDOIz88kvTs5/wAa
QM553SYx08w1I4Xy/mxkcmo1tv3buyuSOhzgUARBpjk75AP9806MTOSFllPvvP8AjStbStHu
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
P+6aKKKAP//Z</binary>
 <binary id="i_014.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDnYL2ZiytPNkd95pHubpW+aeYKen7w/wCN
RQyokMh2gsKiknkmK5H3elAG1AsvlBmuZ2LermpAxTJaeUnngyGsVdQmWRSWyF/hFOF2XuVd
h8pPQmgCe8vpiMRTSLz1Dt/jVU3t2Fz9onz/ANdDS3QEU52ng847CmMAAORk0ASfbbtlGyeb
Pf8AeH/Glae9LALdT5/66GmQxO0qhe9bFrp6bh5jcigDLW4vUfElxN+LmnteXKP/AMfEp9vM
P+Nbk0FvIcFF471WNpZYPHPvQBkG9umOFuJs/wDXQ0oubvZzdTBs9PMNXzYwZypI+lVJrCSM
s33l9R2oAhN5djrczf8Afw0n265H/L1Mf+BmmTBSo25/GkhtXlOBxnv60ASm8uhgC6m5/wCm
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
i9S88uGFH3bs84A6H3ooooA//9k=</binary>
 <binary id="i_015.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDCk128V9hSMt1LFjzUR127bONgA+v+NZRc
b+SSaaHyGwKANM39w9tJLJPMjkjYEcgd/wD61Vn1C8C8XU2f+uhqpvJTgHj3pSrEoWPFAHQ+
FtURbqYam7zRlMrukPBqeN5tRvWeF5IYd2cK5xjNZ0aLtUKoya6SwthBbquOWwTQBJFZjHLy
H/gbf41IbFCP9ZIP+Bn/ABqyg4qULkUAY89nIOEll+u8/wCNQiwmz/x8zf8AfZ/xreMW7tQY
gO1AHNzWd0uds83/AH23+NUpUvEX/j4n/wC+z/jXVyIQDxkVn3EQII2gUAcy816Bn7TPx/tm
o1urzODczf8AfZrXntlCkBay5E2SUAV5L29D4F1Pj/roafHe3bAf6VNn/roarSElj6inxkCL
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
/wDQTRRRQB//2Q==</binary>
 <binary id="i_016.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACYAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDUs5YpbVJJZr55GJJ23MoHU9g1S/Ifui/P
1vJh/wCzVX064RLGMAxjr1Puati6XGfOT6CgBhic/d+2D630v/xVN+yTk/6+6Qe93Kf/AGap
DcZ5USt9AKRpyV/1TA/7RxQAz7FLj5r+6H/bzJ/8VR9k2gbtRvT9LqT/AOKqKS42jJkiT6sa
h+18j9+p+gBoAu/Zh/z+XzfS6k/+KoMAH/La+/8AAuX/AOKqt9rmYYjMx+ka1m3Wp+USJGck
dVPBoA15ECf8vF4PreS//FVC8iIMte3C/W9k/wDiq5yfVWm3LHGYsdSzEms+SVCcvI7n60Ad
W17AP+YjcZ/6/JP/AIukF4p+7d3r/wC7cy//ABVciZY8/d/WnpcbPuOyfjmgDqjcylvllvh9
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
</binary>
 <binary id="i_017.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDpdMsLS4so5JYizsWJYu3PJ96TU9Jt1hH2
eJvMJ4Adv8an0yQQ6NG7ZO0MQB35NTwxPcfv3Zk3DgDtQBm2OkRRtsuiGY/wh2q9LpFiIiVg
OccfO3+NWUs4kJKr8x6mqmo30dqMO+AtAFaHSYcEunHbLtVo6dpqHa8Qz3O9v8a5e+8SvI7J
Bjyge/Ws6XU5ZSGLcehoA7b7JpO7aEGf99v8aBZ6UQcRg46/O3+NcHJfGIEpzIaLXUXaN1l4
xz9aAOxv4dOih/cJlz/ttx+tQafZRTncY2cem4/41zsV5z5ki444q/aaz5e0K+M9QKAOlbSL
UIcQHP8Avt1/OuW1u1uI59luHQ4P3XNdPJqUgiVoV3kjgAGuP13W7wSmNysbKTgYOaAMNp72
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
AL5Zz2oYN04oooAv+H1K6xASR/F/6CaKKKAP/9k=</binary>
 <binary id="i_018.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDNjkkkCkzS85yd59akk8xMHzpMf75/xqgt
xsjCp971/GpjJkIWOSKACSWUglJ5QfTeaak8rKQ00qsP9s04urdKrscng9OlAFu1vGik2ys8
ik9S7cfrWuslu4ABbJ/22/xrnCxbI6UiSODt3EUAdDKi/eSRuO28/wCNQGVACGaQe4c/41kS
TP0Mhqq00gbhyaAN5Z0U5Mjke7t/jV2OW0dQQzcfey7VyG+Z+M5FJvnUEAnFAG3Pdobxwk0g
jXph25pmkma6vSXnmMIzxvPpWKsrLwwrb0S+jiBhbuc9KANvyIxgZkOe+81PHZx7v4iMf32/
xqBZ8lQnAPrWhaDklj+IoAcumwtggP8A99n/ABpx0uMDOGP/AAM/409XlDfKVkX1XrU6XEbH
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
oJooooA//9k=</binary>
 <binary id="i_019.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDkGv7wHi7n/wC/hpp1C9/5+5/+/hqBvvUl
AFj+0L3/AJ+5/wDv4act9eswAu5+f+mhqpVu1iIcO3PpQBpCS7SIF55unXeahkvZnwEnnB/6
6GllDyMBuPNaFjpyzEMwAAoApwJfy8/abgD/AH2q2treHGbmf/vs/wCNbSQBBhQMVPHHhe1A
GNHYXLfeu5QP98/40jWVwSQtzP8AXef8a6BIfUDFOFsMUAc21jeDH+kz49d5/wAaia2vUyTP
Mf8AgZ/xrqGg4xUUluCvNAHJObxVyLif/vs1AZbsji7n3em810lzZqckCseSDy5tw7dfegDI
kvb5Gw11OP8AgZpv9oXv/P3P/wB/DV3V7fMKXAGMnH41k0AWP7Rvf+fuf/v4aP7Qvf8An7n/
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</binary>
 <binary id="i_020.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDJilndATNLz/tn/GpA0neaX/vs1HAf3S1J
n8KAFMknaSX/AL7P+NJvk/56y/8AfZ/xpMgd6TcO3NAD/Mk/56y/99n/ABoLyf8APaX/AL7P
+NMycZqIyAk+1AEzTOv/AC2lJ/3zUf2qTcF8yXP++aj8wNJ04FO+VT5rAD60ASCSTqZ5f++z
TvOYdZpT/wADNVzLEz5Ljk9AasKsRXO4UAKZnK5WSUn/AHzTN87f8tZB/wADP+NPJVcd/YUg
bPBGKAEBlHWeX/v4aXzH7TS/99mkIPfmk2tnhcUAO82T/nrL/wB9n/GmmWX/AJ6y/wDfZ/xp
Sh7mk2gd6AASy/8APWX/AL7NKHmP/LaT/vs/403IHTmjJPSgC1ZySreRfvpOp/jPoaKjs1Iv
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
UUAf/9k=</binary>
 <binary id="i_021.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDLgkkaMM9xLk/9ND/jSTCcpmO4mz/vn/Gq
kJIQbjmpzOFQ8GgCo13dI+03Mw/4Gf8AGla5uCMi7l/7+H/GmypHICynLGoCjqdtAEqXtznm
5mP/AG0NSC4umb5bmb/vs1WVSDViJtpHTJ6UASmW6HBupgP98/41GXv5OYp7g/RmrUtNNLfv
bj7v92rYuYYBhYcY9aAOeaXUUHzy3Cn/AH2qP7bdj/l5n/77NdC1z5mcxqQfaoRDbtkSQBgf
Q4oAxhqNzx+/l/77NTLeXHkM/nykjt5hq1JpdrKxELtGfRulZ91aS2rFCwI9RQBYsrqeeYK0
82Mf89DV2dpYWDebKRjp5hrKsAVuB9Ku37sEBWgC3b3asNzO/wBDIf8AGrcWqW5JV4hwODvN
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</binary>
 <binary id="i_022.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDY0+zhms0kkVmdskkueeT71Y/s61/55n/v
tv8AGk0r/kHRfj/M1coAqf2da/8APM/99t/jR/Z1t/zzP/fbf41bqC6uobOEyzvtUdPegCP+
z7X/AJ5n/vtv8aZJa2MQzJtX6yH/ABrmL/xXcTyMlkqxp/eI5rDury4nBM00jc5wWOKAO+26
VkDzUyf+mjf41JHaWMvCbW+kh/xrzRiWKtuOB70+G8nt3DRXEqH2cigD0s6fbf8APM/99t/j
Sf2fbf8APM/99t/jXIaf4uu4MLdjzY/XvXY2V9BfwCa3bcp7dxQA3+z7b+4f++2/xo/s+2/u
H/vtv8as/SjtQBV/s+2/uH/vtv8AGk+wW39xv++2/wAat0lAFT7Bb/3G/wC+2/xpPsFv/cb/
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
FFFABkUhaiigC7o5zqcI/wB7/wBBNFFFAH//2Q==</binary>
 <binary id="i_023.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDp9M020uLCOWaIvIxYli7c/Mferf8AY9h/
zw/8fb/GjRf+QVD/AMC/9CNXaAKX9j2H/PD/AMfb/GobnTdPgt3keLaACR87f41p1ynizUH3
raxZxzuwfpQBgXlwFncxs4TPADt/jULSy9Q0mP8Arof8ailjfODwTTN5VcFjx6mgB7TygH97
Ln03n/GmfaJSeZpR/wADNRk5Occ0mF6saAHm4mPInm/77NNFxcHjz5R/20P+NRnJPy0nzZAa
gC1FJI8nltdSqT0w5prS3UZKtLKcd/MP+NV2yr571ZjnBVVkTcpPXvQARzysjfvpcj1kNXLe
V5IgWdhz/fbP86QR29zETECmzGTRGqKOh3DpgYoA1tJa2+1FJw8qvgLuduD+daN4tgY5IY4v
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
2Q==</binary>
 <binary id="i_024.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACaAJgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDbt7e1/s6OaaMvI+7JLN6n3rF1wFIVkgVo
R/su3P610+lRq+mQh1DDnqPc1m+JYCto8u0bVAAwOBz/APXoA45nu2hDieUfSQ/41NbmdV82
4nmCdsyHmosFAr7i6k/dqTV7r7SscSIECgcD6UAVJLy4llJSaVV6ABz/AI1r6fbzNH5k08zA
9jIazNOt/MnUYJGa6lIdiqMcYoAiS3Vh1f8A77P+NSi0TH8f/fZ/xqzFFntU/k8dKAM/7In+
3/32f8aU2kfq/wD32f8AGrhjIprJmgCn9mjx1f8A77P+NRNbrnhpP++z/jV/YemKZJHkY6UA
UDAB/FJ/32f8agurWR4z5M0qt7SGr7oRTUHz0AVfDV3Abo2epIWYkBHZ2z/P6V2Q0iwIyIP/
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
2Q==</binary>
 <binary id="i_025.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDES4nKgmeXP++ad583/PaX/vs1WjPyCnZo
AsefL/z2l/77NHny/wDPaX/vs/41ADS5oAm8+X/ntL/32aXz5f8AntL/AN9n/GoN1G7NAE3n
y/8APaX/AL7P+NJ9om/57S/99n/GpVsWkiLo44HIxVMHIzQBP58v/PaX/v4a0dMgM8wS6uZk
3j5SJDWdax+dMq9ckYHqa6TUNMNtDA6Ahgm447UAc/cfabW4eCSaXenB+c8/rURnn/57y/8A
fw/41r+JolZre9XgSphj/tc//WrDyaAJPtE3/PeX/vs0n2if/nvL/wB9mo803vQBN9on/wCe
8v8A38NJ9on/AOe8v/fw1FmigCT7TP8A895f+/hpPtNx/wA/E3/fw1HRQBe0y4nOoQgzykc9
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
AMYPvRRRQB//2Q==</binary>
 <binary id="i_026.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACWAJYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDpdG0jTZNGsZJNPtHdreMszQqSSVGSTirv
9i6V/wBAyz/78L/hRof/ACAtP/69o/8A0EVdoApf2LpX/QMs/wDvwv8AhR/Yulf9Ayz/AO/C
/wCFXaKAKP8AYulf9Ayz/wC/C/4Uf2LpX/QMs/8Avwv+FXqz9S1uw0tP9KuY0b+5uG78qAHf
2LpWf+QZZ/8Afhf8KP7F0v8A6Bln/wB+F/wrN0rxVbapcypFGUt4xlp5G2jv7e3rUepeNdKs
WKJKLhx/zzYEfmM0Aa39i6V/0DLP/vwv+FH9i6V/0DLP/vwv+FcRc/EO7mJWysdvoS2/9MVS
fxH4luvul4x7KVoA9E/sbSh102y/78J/hSf2RpA66dY/9+E/wrzczeJJut9cAf8AXZv8aqXk
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
KoGAGHYn1ooooGf/2Q==</binary>
 <binary id="i_027.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDp9M020uLCOWaIvIxYli7c/Mferf8AY9h/
zw/8fb/GjRf+QVD/AMC/9CNXqAKP9j2H/PD/AMfb/Gj+x7D/AJ4f+Pt/jV6igCj/AGPYf88P
/H2/xo/sew/54f8Aj7f41eooAo/2PYf88P8Ax9v8aP7HsP8Anh/4+3+NXqKAKP8AY9h/zw/8
fb/Gj+x7D/nh/wCPt/jV6koAo/2PYf8APD/x9v8AGj+yLD/nh/4+3+NXScAms83jXEkluFMb
YO00AO/srT/+eI/77b/GozYaWGA8tef+mh/xqrpG+Sa5guSwdOD+mP0qK30y8im2yfOFPytk
9KANIaVp7DIg/wDH2/xp39kWB6Qcf77f41YWE+VtJwSOaS1ieGLY77jk4oAg/sew/wCeH/j7
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
017t7mKJpHZMk4LcdD70UUUAf//Z</binary>
 <binary id="i_028.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACaAJkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDotN0+2nsY5ZYy7sWJYu3PJ96tf2VZf88f
/H2/xpuj/wDIMh/4F/6Eau0AVP7Ksv8Anj/4+3+NH9lWX/PH/wAfb/GrdKDnj9aAKn9lWX/P
H/x9v8aT+y7AdYf/AB9v8affXq2cJkOCOmPWuW1HxFcO+bdmjUnj5QaAOlOmWAOPK/8AH2/x
rNuJ9FjJXADg4xueuTfWbtiwaUnP0qAO7OGHX1xQB2QSxypRUKt3Z24/WpWSwj+Zo4WX/Zdv
8a4iSWQuQWIJ61BubnBP50Ad9DPoU0oTAQnpl2wa0U0vT5BlYgw9Vdv8a8wWVAR5gJ+lXtK1
eWwud8DyGM/wHmgD0P8Asix/54f+Pt/jSjSLH/nh/wCPt/jWbZeKrScKJkkiY9SwGP51vI4d
NykEHoRQBT/siw/54f8Aj7f40v8AY9h/zw/8fb/GrtFAFL+x7D/nh/4+3+NH9j2H/PD/AMfb
/Gr1FAGRd2FtayWkkEZR/tCDIY9OfeteqOqf8uf/AF8p/Wr1AGTo/wDyDIf+Bf8AoRq5VLR/
+QZD/wAC/wDQjV360AFL1465NISFBZjgCsTVvEUdkpEBEj/XpQBz3iFwl5Iu/Ow/dNYLM8hx
ngnpS3c8tzcNJI+5mOSSamgtjtLg449KAGxW0jsNiZHrV5YmA2Hg1f0qPzl5IBHtV5tNJO/H
6UAc9NEVfDfnSRQc5xWzNbBgQ0WT0HFRx2DEdMfhQBlNaRibe5wMVTeDlmI4HTFb11YOi7uS
PpVAxMueMg0AZyOUP3iFPBxXT+HtXlsJktzJvt36buoP+RXNTxD5lB5HNSWshAQZwc8GgD1q
ORZEDKeCM0+sjw7cNc6ZGWOSvynmtegApaSloAo6p/y5/wDXyn9avVR1T/lz/wCvlP61eoAy
NH/5BkP/AAL/ANCNXqo6P/yDIf8AgX/oRq7+NAFXUWC2rZ6BSx/KvPdVlD3ZUfU13HiBh/Zs
3zbcKeffFedTtwXJ5JxQA2PBlHHFdNp1sJrYEgZxxXPWe0sF9TxXTaPJszE/B7cUAaNnYpDy
oAJ61oBRtx1qOIYHNWFHFAFWS3XHIFNEI6batlMmlCYFAFGSJWUqw61ly2IXdx16Vvsq46VV
mQHpQBxlxD5dxIp7iqQUrb7h2NdFe2oEjs3VuvtXOzPsLLnj0oA7XwNPvguIyc42kfrXV157
4JaVdRJTlQo3j2r0IHIzQAoopKWgClqn/Ln/ANfKf1q9VHVP+XP/AK+U/rV6gDH0j/kGw/8A
Av8A0I1dqlpH/INh/wCBf+hGrv0oAwPFjMlj8vRutcMB5mVI716J4jhWXR52b/lmhI/L/wCt
Xn1uwEpDdKAJrWzkMqsFbGewrrLGDai7lwcDkiqmk7Gh4HINagkAbGKALK9OKlTOKrrcRqMv
xUiXkLcBxQBZHTpRikSQN9KXd7UANdeKrSJxTrq8jgQlzgCsttcilfbErt+AoAmuLdJR83Fc
hq9oI5sIMj1xXVS3ORzke1ZWoxq9qz45oAp+Gb0WWs26n7r/ALtv0FeloRtyOQa8gsLhLbU4
pX5Acfzr1y2YPBG46MoNAEuciijNFAFLU/8Alz/6+U/rV+qGp/8ALn/18p/Wr9AGPpH/ACDY
f+Bf+hGrhGap6R/yDYf+Bf8AoRq5QBn6/GZdDu1TqY2/ka8w5Dj1HFet3H/HtJwD8p4P0ry2
6jC3EuBghzxQB0Hh+QvAw961OQ2ScCszw+AYWPT5sfyrVvYPMjGCR9KAI5JtPwRM2fXAqn5N
gz77bccdT/kVLHpsLxsGBy38WKms9NW0heIZcufvYoAs2MpyFU8VoyKwTdmqMMQhCqO3U1ed
gYyD6UAYF25klCld2egquNSltpxbxwKrZxz/APrrXS3DnJwCDwaU2cJfzHjRpOu4gZoAyZb6
fzNs0QHvUlwgazk91zV6Wy81iSR+VQXahYGXHRTQBxVnCbnUI4T/ABuF/WvWtPjENlFFn7ow
a898M2X2jW1VlwFO4HHvXpCqFUKO1AD+tFIOBS5oApan/wAuf/Xyn9a0Kz9S62f/AF8p/WtC
gDG0j/kGw/j/ADNXc1R0j/kGw/j/ADNXc0ANkG6N17EYrz6ey87Xrm2DBcruX9P8a9C7VzWv
Wvk6vb3qR4To59P84oAoaMrQB0YYbOa6CLDIM81QvE8qeNwPvDB/WrMLY70AW0gA6CptoApk
TZHNK5+UkUAQthpMCpwhKYrOnu0tDmRSST0xViHU7d4wSSp9MGgBgPlzYJIq4ACo96x5NSWa
6KKnHrWlbMQnNAD5AAKy74jafetOY/JntWPeOViLd88UAX/DdgkbNc7RnbtHt61v5qlpMTQ6
fHuGCwDY+oq5mgBwozSCigCpqXWz/wCvlP61o1m6j1s/+vlP61pUAYukf8g2L8f5mrlUtI/5
BsX4/wAzV2gArK8SMw0yQL1yMflWrVe7gNzC0ahTu/vUAcm99LLHCkqbTnIY961LVtyDPUVS
ubFUgMsshaaE7VHYf5yals3Jj5PJHT1oA14WHQ1I8yKCMjNUopMxZ/iFQNJgl5N2PQUAPuf3
0i4xkUeUMZcKarG/DHEMEhI9QP8AGnG4uyMG2Uj6mgAeBVl3KgH0FTpdeUOarSHUWwQsYX0/
yKVI7l/9aEAHpQBotMJovlrLvSdoU+o/nVpCIouvFULh98kaZ5Zx/OgDsLbi1hHpGo/SpKai
lY0UfwgCnUAKKXNNFLQBU1H71n/18p/WtKszUPvWf/Xyn9a06AMTSP8AkGxfj/M1dqlpP/IN
i/H+Zq5mgBaMZPJJpM0o56UAUdZu7OxsnnvRlDxtA6muXtbyNiXClEJLIp7DtWh4m/4mBe03
dFBU+jA5/pWWlo0+lxFB+/gXa6gckgf/AFqANO2m3fPuGDU1rOkmSSCc1z1rclJNknBHY1et
2+b5SOvY0AbjEA5H5VVlucPgE0sM6v8AKT7VZEcAXLKCaAIlkZxgCh5REj5bHFPkMcallwMV
l3d0pU5OM+9ADZb0KCD0p2hQSanqay4IghOS3qcf/qrPs4H1S/S1Q4U/eb0Fd3aW0NlbrDbq
FUegwT70AWD3JopuaWgBaWm5pc0AVL/79n/18p/WtSsq/wDv2f8A18p/WtWgDD0n/kGxfj/M
1cqlpP8AyDYvx/mauUAL6U2WUQwvK2MIM496r3N/BbKfmDv/AHRWDPfXeoyspKpEPuKAeT/n
NAEKM0rPI2Wduf8AeH/1uv4U9S0E/nxHcrYEo+vRvx5pLfB5B2q3Kn+7/wDr6fjUxGOq9cjb
/wChL/Qf1oAgvbCK7Uyx/K9ZLpcWcuG6DrW7uZUzH87KNwH99f8AEHj8KmVIrqIMpDAjIoAx
be/RW+9g+9X31EGMDeKbcaWsmcgD0xVY6OnXJoAW51VMEI24nsKpBJrtgznYo7VeXT44yMJz
61ZFtjAx9aAMydzaNB9nfy5C3ysPx613dhdi9tEnxgnhh6GvONUlV9ajhz8oGCfyrqPCV3Iv
mWdxxJnK+/H/ANY0AdPRSZFGaAFozSZozQBVvvv2f/Xyn9a1qyb0/vLP/r5T+ta1AHNWtxNZ
2aQvYXjupP3YiR1PeqtxeanPkCwvI19BEea6+igDhzDcdf7PvN3zEEwnqPu0yRL2M5h067O0
hk/cn05/XNd3RQBxDRXCyuY9PvDGxyFMJ5HTH4dadsujkGxveuC3knJx91/qOprtaKAOJCXe
RtsLyNs5BWE/K44B+hGSfc06L7RExaPTLxFb5gohPyH+6Pb/ABrtKKAOUV5ivOnXnTn9yetN
YTHpYXn/AH5NdbRQByG2cf8ALhef9+TUdx9p2HZp94Wx/wA8TXZ0UAeTtpGpzagZ30282j/p
i2f5VsKt/bzHbpt7uJ3LIsLZU9D0HpXoFFAHMWWqXgGy6029ODw4gb8+lX/tx7WN6frCRWxR
QBj/AG1/+fG9+nlUn21/+fG8/wC/VbNFAGG8ktzcWqrZ3KbZ1ZmePAAGa3KKKAP/2Q==</binary>
 <binary id="i_029.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDljf3RPNzNz/tmj7bdlTi5mz/10NRhOOlT
RWzSHkgAUANF5ef8/M//AH2aQ314D/x8T/8AfZq00KKMVGYd3TpQBAL67xzdTf8Afw0fbrv/
AJ+pv+/hp1zatHGJAOO9VQcmgC0l9deYmbmYjcM/vDW9prl9VEcryMjJnaXPt71y4POa6Cxk
26nbP/eUA0Adz/ZtmRkRH/vtv8aT+zLT/nkf++2/xqzGcop9RT6AKg0y0/55H/vtv8aP7Ms/
+eR/77b/ABq2KWgCp/Zln/zyP/fbf40DTLP/AJ5H/vtv8at0UAVf7Ls/+eR/77b/ABo/suz/
AOeR/wC+2/xq3SigCp/Zdn/zyP8A323+NH9l2f8AzxP/AH23+NXKKAMfVLOC1gjkgVkffjIc
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
g2dzADAwe+aKKKAP/9k=</binary>
 <binary id="i_030.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDjzf3gb/j7nx/10NTLe3RH/H3P/wB/DVNE
3yEHpTgDn5R8ooAsG/ul4+1zn/toab/aF4cgXM//AH8NRvGpTcikmmrKVBDDmgC0Ly7K/wDH
1Px/00NIb66GP9Km/wC/hqq8hPfigHgelAF9b24AMhupsf3fMNRPqVxuULcTYxz+8P8AjTZb
g/ZUi8tdo796rRqXPTn2FAFpb67YH/S5+v8Az0NP+13XBN3OB/vmpLXSricjbGcHvkCtm08K
3BXcWH0yKAMB766Byt1ORj/noaab29BH+kz4P/TQ10V34YuUtCypvYdQCK52SKSKTy5FZdnU
EdKALJuboID9pmz/ANdDVdr69OSLqYY/6aGkaU5QqR71DKF80lelAEq6heuABdTZPAw5rSsf
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
iiigD//Z</binary>
 <binary id="i_031.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDk/t13n/j6m/7+Gj7dd/8AP1N/38NQHrRQ
BYF9d/8AP1N/38NL9tu/+fqb/v4arinCgCwL26/5+Zv+/hpftl1/z8zf9/DVehjtFAFj7bcg
c3M3/fw0w6lcL/y8Tf8Afw/41WAZzxTggTluvpQBYTULlutxMP8AgZqT7ZcFflups/75qkAx
P3c1KiLGNzH8KAJft12v3p5T/wBtDSHUbr/ntNj/AK6H/GkidXfDDA7cdakMJ3Z24BoARNSm
Y4NxMP8AgZ/xqUXc56XMv/fw1C9opBIPeqbxyQkHselAGn9quP8An4m/7+Go57y5VOLmYH/r
oarwzFkIJ5pt03C0AH2+83f8fU//AH8NMOo3v/P3P/38NRA8k1FQBs6DfXcmrQq9zMyndwXP
900VB4fH/E4g+jf+gmigCsetFB60UAOFKKQUooAXOBURJY06Q4WkiHXNAEqKRjJ4p7xg/Mqs
ce1MMojGSM8U+CWSVsYwtADo2KjIRs9uKfHby3DALGzfQVr6bpyygtIM1t6dZLFkbMUAcctp
cQkyiJsD/ZNEU8zybZ2wG6E9q9BNpE6FWQc1k3mlG5lENtCsaj7zmgDk5t8Em1slGGAfaq1y
25QM4K8Cul1Pw/IkIZGDMvvXNXA+bDDBoArozK2RzTpJCeSKZkA06TLAelADR90mo6kb7lMx
xmgDS8P/APIYg/4F/wCgmik8P/8AIYh/4F/6CaKAKx60CkPWlFADhSgg9KYxwpNRxttz70AS
S8D39KZnAGD2pAJJXCjlicAV0V74ZMFsgiy84GWGKAOeA+bOeK0tNiMkoA3VBFZv5giZMEHB
rrdLtEgiTCLnHPFAF3T7bYgJzWgiY61HD+GKkMsSEbpUHsSKAJBinHtSKA3Qg+4pSPxoAhuS
fJbC59MVwOs2ojlY9Ce1d843fKSR9DVG40+1Zt0kYZh3YZoA89Fq/lGQqQvqaWfAiTHaun1l
Yo7YqoCr6AVysrbn2jpQBC4wAKOiinTfewKa3CCgC/4f/wCQzD9G/wDQTRR4f/5DEH0b/wBB
NFAFU9aXFQsfmNJuPrQBLIfl6VEKCSe9AoAv6Im/WLYHpvrvL9JpbOaSL/WMOK4HSX8vUoWz
0NelJKqxupYA44oA4rT4Xe6PmHkNzXVW6BUA71h2cZGpXHcCQ8+vJrdiJ4FAFh1/d4JwDULR
2Iz5sgB9yaneLzFwTVGfR7W5UiRTmgCWS3nA32FwD7Hkfyq1ZzSyLtnHz+o6VmfZBZRLHbqR
t71ftnZ8b+TQBYI+eopxnNNurgW/zE1lPcXVxJutpIyPQn/69AGd4hJW2fNcsOSK39fkm8oR
z4DH071grw6+1ADJTmU016By9DfeoA0PD/8AyGIP+Bf+gmijw/8A8hiD/gX/AKCaKAM9/vGm
05/vGnpjbzQBFSig5BoFAD4yVkVl6g54r0iOeNtKMyjLFcE/jXAabF51yi4+tdbJ+7ijjXID
HpQBPbIFTO35jyTWjAmBk1Vt13bR9K01QBRQAsfSmuhzkU9cih2HSgCEjP3qI129BT2baQAM
k03c/wDEmKAKuowpMFRjwRWTPYi2tHjtwQxbIccHt/hWxescxkjvUE6qV56UAchrjNm3V2Jb
bzk/Sss8A1c1aTzNSkA6IcVTfpQAxOtNP3jTk+61NoA0fD//ACGIP+Bf+gmijw//AMhiH6N/
6CaKAM9/vGkzSsPmNPSGR/uoT74oAYqszBVGSe1XE04lAZHC5qzY2HlHzJDz24q9NEGt2C/e
28UAT2ViLaGNgOfWrt0cSQ+lSRLusoATlgOakvIN8KuBypoAtWhGR+FaWRgVhW02OD2rWjly
ooAmkOFqKKRSSAcmnvIu9U7mmSQKx3JhT6igBzglskHPtUayLGB85PPOaRpJoUzjePeqs15C
qMHiKk9+1AE11PHK6qjAtnmquo3KQQOxOMCqlujGUyKTsz1rD8Q35d/JU8H3oAyJJTLcSyH+
Jif1qOQ8UJ92mueaAF6JTaCeKTtQBpeH/wDkLw/8C/8AQTRSeH/+QxB/wL/0E0UATQWUeA7D
JNWtgjAwMCn2/wA0a4IqR0LEUADDg05f9WvuKDjdjrTgPl4oAuaO5lg8o9Yyf51tGIGNgR1r
L0cjcEwB/WtwDC4oAwp4DG5K+tSQXWOHPSr88e7NZV1b4O5RQAXF+z3KsHxt6VrW10JouH+Y
D0rkzK0Mm2UYU98VetZjuG1vloA0LzUJrbO9dy56iqxu471OAQO+aS4uUfC5H41n3l4II2RC
Mn2oAuXuqRWmn7UPzjgcVxssrSvvY5JqS7lM0u49qr55FAEo6U1uWpT0pmeaAFbrSdqQ80UA
aXh7/kMQ/wDAv/QTRR4e/wCQxD/wL/0E0UAacEe1VI7/AONWshWxjNNt1zAp+v8AOnMvGaAG
kbSSRTh0pG5ANCnigCzYsEu0zmukDZwa5NGxyDyK0tHv5JJJYLk5cHKmgDXfBBqrIq57VLJJ
tGCee9VJZs5z1oAimtoJlIlVfyFYV5H9klP2WTeD/CO1Wr67Jbyw3J9Ko56+tAEImlJy6kY7
0xgZGy3OasMMrUCn5foaAE8hP7o/Kq13CkcW4KM59K1dgIB9RWfqnyqq+tAGdTKdng1JFayy
sAExnvQBBRWsulrvB3Zx2qaS2gjRt6hQRQBV8PD/AInEH/Av/QTRT9Cx/bMQXplsf98migDY
tiTAv4/zqbGRUNvxAv4/zqUNQAx+FxSKePrSy9ajDdBQAM5jbcKXzJEAeAgP2JpsmNvPeoYp
Np2OcelAGtDqnnW5W4Hlyrwc9GqC7uljh3Bt2egFQ5SVDHMgZScgkc1IsMS25KqMZ49qAKEq
BZEbBBPUGk/ib3p07Fgh98VHnDCgBXPymoiuFA9alP3TUUh5XFAFy2UvFkc4OKy9XP8ApCJ6
Ln+dbGjyQq8qzMq55BY1j68UOqOsbBlUYBHQ9aAM/qMe9b6TQ21pGHfoM4rnz0oZ2b7xJwO9
AGlPqjHIiGB71nSStJneSc02koA0/D3/ACF4B/vf+gmik8P/APIYg/4F/wCgmigDTguVWIKQ
25akN0mejflRRQAPdIV6NUH2hd3Q0UUAK9wpXo1QSSqQODRRQAsd1jgg1N9qGwqN3NFFAFeS
YFhnPFBlXjg0UUABlXB4NRvIMDg0UUARsQyEZIJHaqJVs8nJ9aKKAEKH2pNh9RRRQAeWfak8
s+1FFAGloK7dXgJ/2v8A0E0UUUAf/9k=</binary>
 <binary id="i_032.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDf06wtp7KOWVCzsSSS7c8n3q1/Zdn/AM8T
/wB9t/jSaR/yDYf+Bf8AoRq5QBU/suz/AOeJ/wC+2/xpDpdnn/VH/vtv8au000AVf7Ls/wDn
if8Avtv8aP7Ls8f6k/8Afbf41cooAqHS7P8A54n/AL7b/Gj+yrLH+pP/AH23+NXG6CloApf2
VZf88T/323+NH9lWX/PE/wDfbf41dpD78UAU/wCyrL/nj/4+3+NL/ZVlj/U/+Pt/jVzjHBpO
1AFP+y7P/nif++2/xpf7Ksv+eJ/77b/GrdFAFQaVZY/1P/j7f40f2VZf88f/AB9v8auCigCn
/ZVl/wA8f/H2/wAaP7Ksv+eP/j7f41cpM0Ac/wCJ7OC00C5nt1aOVdu1ldsjLgetFT+MP+RZ
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
/9k=</binary>
 <binary id="i_033.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDmhd3OB/pM3/fw0G7uf+fmb/v4ahXoKDQB
N9rucf8AHzN/38NNN5df8/M3/fw0w9KjoAnF5df8/M3/AH8NKby6/wCfmb/v4ahFI1AEv226
/wCfmb/v4aPtt1j/AI+Zv+/hqDvikJC8k8UAWDe3WP8Aj5m/7+Gm/bbv/n6m/wC/hqr5yE4y
acWAoAsm9u/+fqb/AL+GgXt2f+Xmb/v4ar7gRQOlAEv2673f8fU3/fw0v267z/x9Tf8Afw1W
P3qcKAJ/t13/AM/U3/fw0w395u/4+p/+/hqOoz96gCz9vvP+fqb/AL+Gl+3Xf/P1N/38NV6K
ALK312T/AMfU3/fw0VAnWigZYX7oooX7o+lBoEI3SmU5qTFAAKRjTulNggkvLryI849aAHxw
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
2Q==</binary>
 <binary id="i_034.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDmxd3JH/HzN/38NOF1c/8APxN/38NQL0p9
AEn2q4/5+Jv+/hqOW/njXJuZs/8AXQ1Xnm2HAPNVWYsck5oAsf2hek8Xc/8A38NOju76RsC7
n/7+GoUXKgdyauQIAwAH1oAuQPckYNzMx95DWlbRyOQGll/77NU4QOB3rZs05HFAFu309WAL
O5/4GavpptvsGVP/AH23+NLbrlRxV6Mdu1AEC6bZ45jP/fbf41KmlWRH+pP/AH23+NWEXnmp
wMLxQBntpNoBnyj/AN9t/jWbqWgrNEwtppYWxwVkNdCemKhkQleKAPK7ltR0u/NveTz4zgMX
bBFS3dzOqqEnkBPIIc/412PibRl1XT5NoH2iJSyN68dP0riZ9z6fFIOJI2KOPz/woAj+2XJ5
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
C/8AQTRRRQB//9k=</binary>
 <binary id="i_035.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACZAJkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDp9M020uLCOWaIvIxYli7c/Mferf8AY9h/
zw/8fb/GjRf+QVD/AMC/9CNXqAKP9j2H/PD/AMfb/Gj+x7D/AJ4f+Pt/jV6igCj/AGPYf88P
/H2/xpP7HsP+eH/j7f41epkrbUJoApnStPH/ACw/8fb/ABpTpFgBnyP/AB9v8aY1z5QU9Set
Mm1JAOGwaAJP7K08YzCBn/bb/Gl/snT848j/AMfb/GsKfWw1yF3EYrRTVl8kN1b0oAunSLAD
/Uf+Pt/jQNIsD/yw/wDH2/xqudVR0AGVz3qVL7fxGQAOpNAEn9j2H/PD/wAfb/Gj+x7D/nh/
4+3+NWopVkXKtkjrT6AKX9j2H/PD/wAfb/Gj+x7D/nh/4+3+NXqKAKP9j2H/ADw/8fb/ABo/
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</binary>
 <binary id="i_036.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwB1qolgR38xmbOTvPrUjw7JFYK5A6je3NUb
aeUWi/OFVc8496Evo53KCV2YdTgYoA0bhYJH3K3kjHQSH/Gq/wDo65zK7fRz/jVWSeHz1TBP
HrVGa6nMu23wqg9wDQBqmaM/djkx6mRqidyoLM7Io/2z/jUTyzGJV4DdzjrTJVMzgSZCKO1A
D45Y5XCieXJ6AMf8ald0jYAyye/7w/41Y0aWzsLjzLiAvkAIRzj9arybZ7p2hTJJ4HpQBR/0
qebInkijB6eYef1qyzPnaHlyPRzVn+zZ5DhEJYHr6VP9gmgQtJE2cdaAKDOIz88kvTs5/wAa
QM553SYx08w1I4Xy/mxkcmo1tv3buyuSOhzgUARBpjk75AP9806MTOSFllPvvP8AjStbStHu
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
P+6aKKKAP//Z</binary>
 <binary id="i_037.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACYAJgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDp9M020uLCOWaIvIxYli7c8n3q1/Y9h/zw
/wDH2/xo0X/kFw/8C/8AQjV6gCj/AGPYf88P/H2/xo/sew/54f8Aj7f41eooAo/2PYf88P8A
x9v8aP7HsP8Anh/4+3+NXqOaAKP9j2H/ADw/8fb/ABo/sew/54f+Pt/jV0sFXLHAHU1QuNas
bcZeYHHZaAHf2PYf88P/AB9v8aP7HsP+eH/j7f41QXxbphzlpB9QP8aT/hLdN3gF3+uB/jQB
of2PYf8APD/x9v8AGj+x7D/nh/4+3+NNt9asLnHlzjJ9avjkZ7UAUf7Isf8Anh/4+3+NH9kW
P/PD/wAfb/Gr34UUAUf7Isf+eH/j7f40f2RY/wDPD/x9v8avUUAUf7Isf+eH/j7f40f2RY/8
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
/9k=</binary>
 <binary id="i_038.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDPheR4gxllJOf4z/jT8v8A89JP++z/AI1F
bf6lfxqXPFACgvj/AFkn/fZ/xoDN/wA9JP8Avs/40ZoBxQAbm/56Sf8AfZ/xoy4/5aSf99n/
ABooA9aADLf89JP++z/jRlv+ekn/AH2f8aMUZoAXLZx5kn/fZ/xqaC3muG2xtLz33n/GrOm6
e144Y8Rg8muotbeO3jVUXoKAOetPC94x8yW7kw38PmNxV9/DZVc+e+f+ujVurKcY4oyWbnFA
HJz6PPFkiV2H++1Z7xvGcO8gP++f8a7eZF7VQurWKcEMOexFAHK4P9+T/vs/40YP9+T/AL7P
+NWrq0a3kI6rnrVYnnFADef78n/fZ/xpcH+/J/32f8aKKAHQs6XMRWSQcn+M+hopIzm4i4/i
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</binary>
 <binary id="i_039.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDV03TUktopZN77iScyNzyferttpVskKrIj
M44JLtz+tVNLN2NPiERjkGD1PuferltcXbTLHPbhM5ywIx0+tADZtPtVkjAiPJOfnb/Gnf2b
acfuj/323+NSz4WeLB6k/wBKmxg0Ach4lj+yX8aW7SRqYwcBz1yfes7dL/ZFzN50u9HUA+Ye
OtaPixs6og/uxj+ZqlEN2hXo9HQ/+hUAb2n2sU+lWs5DFnB3Eu3Jyff2p72sAOMN/wB9t/jV
PQZidBhjPVGYfmSasM3PBoApaoqRLGsRdWbkkOfb3rPZ32D95JnP98/41b1Jszdc7QarJAZF
UnpQAzzGDnMsmP8AfP8AjV6wiMuWZpGHpvP+NQCzwS39a0bCRbZfm4oAgnubWI+WSwf03H/G
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</binary>
 <binary id="i_040.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACZAJgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDL0+S4l1a2RpHaEhN6mQ85UZrq1S2u9Na6
Szktz0Cs7ZrktKRF1iyJcg5jwPX5K9A1T/jzfYuAF7D3oA5mCMSzDduHTgOf8asz28S28hAY
EDg72/xqO2yJE3MGJA6CrNxzayfSgDM05BKmXaRjuxy5/wAat3tuiR7kDjAycO3+NVdKPyY/
2q1Lv/j1l/3aAOMe5nDgefLyevmEiuusdOMkMJMhcuoJI3H+tU9YtbZNCSZIQjk9azm8WyQ2
UdvZrtcLtMhAoAk1gPaXckYncBfRyP61vQSaO2nozzxCXy8n9/znP1rzu4vJbiYvI5Zyck0i
SuACCfcUAeiW1tazWrSB1bMGRtlJO786fDHaR2MMslu8rO2CRI3vXFaXqBgkPLD5do5ro9I1
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
39jcCFZQzSyQsMYB7kUV3dFAH//Z</binary>
 <binary id="i_041.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACZAJgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDp9M020uLCOWaIvIxYli7c/Mferf8AY9h/
zw/8fb/GjRf+QVD/AMC/9CNXaAKX9j2H/PD/AMfb/Gj+x7D/AJ4f+Pt/jV3NMlmjhjZ5XCKv
UmgCp/Y9j/zw/wDH2/xpDpFgBkwf+Pt/jWBq/jWGEtHp6iVhkb2Bx/SuR1DWL3UZN1xKSP7o
6UAejG10dTyFH/A2/wAajZNCQ4Zox/wNv8a8uxz0oChhwOaAPV4bPSZ/9Uqv9Hb/ABqb+x7H
/nh/4+3+NeSxl4jlSVPtXQaL4kvbOVUmPmQ55yOaAO6Gj2H/ADw/8fb/ABpf7HsP+eH/AI+3
+NOsdRtr1AYXG7AJXGMVboApf2PYf88P/H2/xo/sew/54f8Aj7f41eooAo/2PYf88P8Ax9v8
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</binary>
 <binary id="i_042.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACZAJgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDUsLSKa0SSQMztkkl255PvVj7Bb/3G/wC+
2/xo0sf8S+L8f5mreKAKn2C3/uN/323+NH9n2/8Acb/vtv8AGreKMUAVf7Ptv7h/77b/ABo/
s+2/uH/vtv8AGrdGKAKn9n239w/99t/jS/2fbf3D/wB9t/jVrFKAaAKn9n239w/99t/jR/Z9
t/cP/fbf41cxzRigCn/Z9t/zzP8A323+NL/Z9t/zzP8A323+NW8UY5oAqf2dbf8APM/99t/j
S/2da/8APM/99t/jVvFGKAKn9nWv/PM/99t/jS/2da/88z/323+NWsUtAFT+zrX/AJ5n/vtv
8aP7Otf+eZ/77b/GrmKMUAUHtIbe5s3iVlYzqM7j0596Knuv9bZ/9fCf1ooAg0sf8S+L8f5m
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
</binary>
 <binary id="i_043.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACaAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDotH0rTZNHsXk0+1d2t4yzNCpJO0cnirf9
jaX/ANA2z/78L/hRon/ID0//AK9o/wD0EVdoAp/2Npf/AEDbP/vwv+FH9jaX/wBA2z/78L/h
VvNLmgCoNG0r/oG2f/fhf8Kd/Y2lf9Ayz/78L/hVkHmqV9qsFkMOwJ9AaAH/ANjaT/0DbP8A
78L/AIVFJp2ixY32FkP+2C/4Vg3PiaSRisXAP+1VD+0ZpGO9i3pk0AdaNO0UjI06zI/691/w
pDY6GOthYg/9cF/wrnYtZZI9meR6Gqc19I7biTmgDsk0rSHGV06yI/64L/hTho2lHpptn/34
X/CuPt9cvbZhtbcvpWxYeKUlbbPFtPrn/wCtQBsf2NpX/QNs/wDvwv8AhR/Y2l/9A2z/AO/C
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
pGkFldA78kvHgYwaK6GigD//2Q==</binary>
 <binary id="i_044.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDLimkKAtNKSf8AbP8AjVlGJHLyc/8ATQ/4
1Tg2lFFXUxt54x0oANjnkSyD/tof8aAH6mSQf8DNKsoAORSljIQOMUAMYuP+Wkn/AH2f8aav
m4JMsmP9809xsJB6Go2cAYGcUAKWfHEkmf8AfP8AjTSZsf62T/vs00vk5qGa+jjGG5PtQA7z
JQf9dKf+Bn/GlV5T/wAtpf8Avs/41nSaqd2IkGPeojqc5ORtH4GgDW3TZ5ll/wC+z/jRvlJ4
ml/7+H/GsgalNu5IqWLVSGHmKMewoA0gZv8AntL/AN/DSlph/wAtpf8Av4ajS6jl5VualEgI
5oArSTzg8Ty/9/DTRPcf8/E3/fw1M67jUYT5uaADz5hj9/L/AN/DTzPLkZmlH/Az/jUbKM08
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
KKAP/9k=</binary>
 <binary id="i_045.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDjn1C9DYF3P/38NJ/aN7/z9z/9/DUD/fpp
oAs/2je/8/c//fw0v9oXuP8Aj7n/AO/hqt2oxkcc0AT/ANo3v/P3P/38NA1C/PS7n/7+GmJb
MRluBVmOFR0GaAFS6viuWu5/+/hp/wBsuwv/AB9Tk/8AXQ0hQBcnj2qNCznIGBQA8317jm4m
H/bQ/wCNKLu9I4upv+/hp0Ns08mFG761dGkydsCgCqs92RzdTj/toaRrm8X/AJeZjj/poavn
T5QuOKhaxnHXpQBSN7dd7qcf9tDTDeXw/wCXqfH/AF0NWpLFzwQKrvbvFweRQBEdQvf+fqf/
AL+GkbUL0D/j7n/7+GmvGO3FQt6GgCT+0r7/AJ/J/wDv4aX+0r7/AJ+5/wDv4aqkUCgDb0G+
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
wwJOB/CaKKKAP//Z</binary>
 <binary id="i_046.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CAD7ARQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD0CiiigDmbOB3uLeA2/liS8kupQANoCcIB
2/uHP1960pNahj8QRaSR87xF9+ejdlx9AT+VXre1gtV2wRKgwBx6DoPoPSubu/Dgk8RR3IvZ
RdyiScSYGFKsgVcdwA2OvNAHVUUlLQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF
ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUVm6u6RmzZ5Nn+kL1fAI78d+1AGlVGb/
AJDlp/17zf8AoUVZcpn/ALQl6/af7QjCdc+TsXOPbG7PbNX55W/4SK0TyJNv2eb95ldvWP3z
2x07j3wAadFFFABRRRQAVG88STRws4Ekmdinq2OtSVkSfP4thG3IismYt6bnAH8jQBr0UUUA
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
N3y7dmMdtu7+dbNABRRRQB//2Q==</binary>
 <binary id="i_047.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CADyAWYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD0CiiigAooooAKKKKACiiigAooooAKKKKA
CiiigAooooAo3V5JDqljaqFKXAk3EjkbQCMfnV6srUP+Rg0n6Tf+giqHiufy7zTI5L6eyt5G
kEskMhQ4AGP1oA6SiuTsNXl03S76582XUbSO4VLeSVzvcHAPOOcE+laMXiSDyr57m1uLZrIB
nR15IPTH1oA26Kwk8SAwXhlspoZ7aHz/ACpCBvX1yOlV/wDhLozb6ZItrlr5yhXzP9Xhguc7
eevtQB0tFYOo+JorG7mhWznmWAqssi4CoW6Dmta/ulsrGe6ZSywoXKjqcUAWKKxtK14ajdNb
vZy2zCETgyEHKk8Him2PiOK8u4Yvss0UVwWEEz42ybaANuisSz8SQXV/Hbi3mSKZmSGdh8sj
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
</binary>
 <binary id="i_048.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACgAWMDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD0CiiigAooooAKKKKACiiigAooooAKKKKA
CiiigDKvfEmk2F09tdXflzJjcvlucZGRyBjoa0o5EliSSNg6OAysDwQehrkbqTUE1zxELG3h
mVo4hL5jYwPLOMDv3pw8x18N2unXs9vFPDKCw6nCA8r0z1+nagDr6K4r+1dSOj2cX2iZ5Zbt
4WliQGRlXpjPGabqdxrK+HoklluYLhtQEUTk7JHjKnbu2n1/lQB29Fcbp2q3eoeJxLFMxt5L
c+XFuYIWCKSSM46t+lM8N6reXWtwRT3s8peOQzRugVVcHoPpQB2tFYOvNdSavpVlbXktqtx5
29o8ZO1QR/n3rNttRv7rQdGj+1uk17O6STgAtgM3T8h+VAHYUVx0+pXaaDcebdyb7TUvs5mB
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
w/nR/wAJLo3/AEEYfzoA1aKKKAP/2Q==</binary>
 <binary id="i_049.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACYAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDobG0W4tYpZJ7xncksRdyjuewaotZtfssa
GC4vFJ6/6XKf5tV7STjT4Pof/QjUOvn5I/x/pQBFb2avbxs094WYc/6ZL/8AFVma35lpC7Q3
V4hAH/L1Ie/u1bltxbR/SsLxHk2sn0X/ANCoAn8PK15Zebc3N5K2Tz9rlH8mqPXxLaWfmW9z
eIxfA/0uU9j6tVrwztj0vcxA5PFWbtLSdVEyFhuzkUAYOmPdTvKlxeXoKjK5uZB/7NU6QXzR
ORdXu4YwTcyYx+dX59UMSt5UYOO/esLUdXnm5b7vQrQBo/M1m+y+vDcA8A3UmO3+19aNMiur
i5EVxc3oGQMi6k/+Kqjp/wC95b5R6VrWc6QnKvyDQBSvHa2u5Yzf32FYAAXMnpn+9Vu4i2tH
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
jHsaKKKAP//Z</binary>
 <binary id="i_050.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDAW5uCoP2iX/v4aX7Rcd7ib/v4a17Xw009
skguFGc8ZHrT28LzDpcKfxFAGJ9puP8AnvN/32aDc3Haeb/v4f8AGtg+F7ntKv5imN4YugD8
6/mKAMoT3TNgTzf9/DWlYRzIDPdSzMo5CeYef1qe1svsSFpBz0ye9ZOp3dwLg7NwXqKAL89+
wcDy3Rf94/41H5rMvm+bKBnG0Of8axVuZfM3sxJqz9t3HcxNAGmgdjvNxMq9cbz/AI1OlxEo
yZmx6s5rKF/I6hVUH3NSIC3Mm0exoA1otRsw4BJkHrvP+NbFt/Z9yo2jDY/vn/GuX+wROdyy
AfSrEEU1qytFIjAdQQaAOrggsJF2SwMj9mDH/GsrW9Mkgwbd5SvfBIpv2tpkXdwB1I7Vv6Zc
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
q1CAFh7qKKKAM6wvpZ72KNicEk4/4CaKKKAP/9k=</binary>
 <binary id="i_051.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDNtpWNoC9xIZCcffP+NSeVMAD9olI9Q5qj
GyRxrwrNgjAFWIN5jIaVlQEZ54oAdH5wdlaWY84H7w1Z+YOsZebJPXeeTUCzs0n3RtHII71a
DmVFIz17HpQBSvo5o/njvJVGPu+YaW0eSSzMzTuXBxtMh9verGrW5kii8pMv3PrWWwALKSqs
euDjFADxey5b97JgZH+sP+NTtJcCFGEkmT23n/GoTbxtGCg5H93vTXacQBFDK3qxIzQBKJ5Y
2YTSTe2JDTxO7RoVkl5OM+YarlnkxlWLdweSaUOkZ2uGUg8DFAGn9nkOWSeZlUcjzDUcsbxu
hS4mYEcqZDTI52VSI22A/eJPJpyAAZLn/eIzQBq6dZb4d8ryNu6Zc8frV5LGBRjDt7l2/wAa
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
r+JVB6k8/Q0UUUAf/9k=</binary>
 <binary id="i_052.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCzZwrLbK8hdmOckufX61P9li9G/wC+2/xp
mnf8eUf4/wAzVqgCH7JF6N/323+NL9kh9G/77b/GpqUUAQfZIfRv++2/xo+yQ+jf99t/jVii
gCv9kh9G/wC+2/xpfskPo3/fbf41P+FLjjJ4oAr/AGSH0b/vtv8AGj7JD6N/323+NLJeWsR/
eXEa+xYVXbWdPVtv2qPP+8KAJ/skPo3/AH23+NH2SH0b/vtv8aIby2uP9VOjH0DCp+fSgCD7
JD/db/vtv8aPskPo3/fbf41PSUAQfZIfRv8Avtv8aPskPo3/AH23+NT0UAQfZIfRv++2/wAa
T7JF6N/323+NWaQ0AQQQrFf2bIWBM6g/OenPvRUi/wDH7Z/9fC/1ooAr6d/x5R/j/M1aqrp/
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
CiiigD//2Q==</binary>
 <binary id="i_053.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDWs7G3mtxLKm5mLZJY88n3qnr8Vrp+mNIs
eJGOB8x/xrU04Zsk+rfzNcz4uuGmvorcH5VXJHvk0AZmlWazMZZRuGe9bS2luOPL/U1XsQEi
VQKvJyaAFjsYD1i/U1L9gti2BH/48anjPFSBcHOKAIBp1t/zz/8AHj/jQdNtv+ef/jx/xq2t
KaAKJ0+2H/LL/wAeNRSWFv8A88//AB41fPWmMvFAGW9lAD9z9TUD2kQP3f1NaMoz0qqykUAZ
81vFjhf1NZN5AFOVramzurOuxmgDMicxyKw7Gu90y3tbyySXywSevzH/ABrg2G1jXV+Dbhmj
lgOSF5HtQBt/2daf88v/AB4/40o020/55f8Ajx/xq5gUlAGHr9pDa6PPNApSRduGDHI+YD1o
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
rDswPr7UUUUAf//Z</binary>
 <binary id="i_054.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCPl2dmeQku38Z9T70u3H8Un/fZ/wAaVFyG
/wB9v5mnMvy0ANIGOGf/AL7P+NRYJON8mT/tn/GnnIHNDMsUYJ++3QUAQ3cwgAjV3Zz/ANND
/jVGOSdmy08o56bz/jTromJjJIcselUxdBQp/iJoAuG5YzFBNL0/56Gqd9eTK4WK5lAxyRIa
r+a6ys45Y9KDCNheQ8mgBovbveB9rn/7+Gj7dd7v+PqbH/XQ0xQGkI6DFRsQMgUATm+uyeLq
b/v4aT7fef8AP1N/38NVxznB5p8Z38Hg0AWkvrnPNzMf+2hq+l1M8eVeQn/roaxyrIeeKvWc
nUZxQBZivZPNw8kv0MhrQDEqCHk/77P+NZEyYfcDmtG3YGBcHNAFg5/vyf8AfZ/xpcH+/J/3
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
DP/Z</binary>
 <binary id="i_055.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACVAJUDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDeFOFNFOFAC04CkFOoAKKcBTkieQ/KPxoA
aBTljLfdGatpafL8xpzQEAbTjFAFQwSAcrTdhHWtMEqo3UpVZBgigDM20oqzNbbRlPyqvj1G
DQAmAaTbin4o60ANFOwCKAMUtADCKQU9hSLxQBka8P8AUf8AAv6UU7X/APlh/wAC/pRQBZFP
Apq08UAKBSgUAUvNAE1vF5j4PQVoKqqAq4rOjuBGp29asJcABc9aALeBRUaSZGT0p+PXpQBF
OcYfPApqThiWDDaOvNLPgpg9BzVVIljlPUK4zigC+G3DIqOWFXGRw1GwhODg1ThvWaYwTDY4
+6fWgBxUg4PFIBT94lYg8MKbigAoxS0EUANpOtKaQUAZOvf8sP8AgX9KKXXv+Xf/AIF/SigC
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
</binary>
 <binary id="i_056.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwAtU8yBXdpCxzk7z6/WpvIX1f8A77P+NNsR
/oifj/OrGKAIfIX1f/vs/wCNL5C56v8A99n/ABqUClboTn8aAKVyFQYQvn/fP+NV1t5iQxmk
Cn/pof8AGnsuJR8xdie1OectOqBeB1FADB1xvk4/22/xqjNNKbhUSWVQf9s/41oSw7pC/mAD
0BrPfDTgrzjv6UASTytGY/3knviQ/wCNPinABUySM3XlzVdiHbnkLzVdt4O8nrxgUAXRcYkw
zykezmpJJl25WWT6b2rMTzI33MSo96et2sjEMqg9mAxQBoR3KE7XeQH/AH2qxs773x/vn/Gs
jAdsZwfWrtlKQ5ic5wODmgCyVP8Afk/77P8AjTSD/fk/77P+NSkdaaRQBCd3/PST/vs/400l
/wDnpJ/32f8AGpCKYRQA62eRbuIiWTqf4z6GiiD/AI+ovqf/AEE0UAX7H/j0T8f51YxUFgP9
ET8f5mrI4oAQCq08n70R54HOKsudkbMapWsRM0ly49gKAJoLUvEWIA3fnimyRxwlVxye9WLm
YpGqIPmboPamfZC8ods8Y4oArSgYJHNZxh2AA9+c+tbkltiN88DNZM7s8nlKnygcmgCmxAjP
8K5xk96chij+Z1LYoKYuB5i7m6D2qz9mMgOfujmgDJmZp2JwSO1QEYUjHStayhKztCyZXqDS
XyRwxuoXk5oAzfMJjB7irCSlSHH3hVVVDZX8aeBkdeaAN+GQTRBx6c0pFZ2mzBZDGTwelaho
AhIppFSEUxhQAkP/AB9Rf7x/9BNFLF/x8xf7x/8AQTRQBfsP+POP8f5mrQFVrAf6HH+P8zVo
UAIU3qQRUUcJaUjPyjtVuIcGoGYW4Z/XgUAV7bNxrYblo41xjt3/AMa2nCEgqAMCqmjWojQu
Ry3etJrcMpA4oAoTeUy4dgM1mRpEZSeGrYbTBIfnP60i6ZBH0HT3oAwZrZBIzjGSelIOI0QD
Gc5rYlskPKjnNU5LFmcEMBigDGnkZJWKtiqkpaRWyS3fmtV7EBTu5NVJrfYCR3FAGYihTnvS
Sja2cdqnaEildA3UdqAIrOT9+h9DW/1XNc3tMbgj1robdvMt0NACkUwipTUbUAMj/wCPmL/e
P/oJopyf8fEX+8f5GigDQ0//AI84/wAf5mrIqvp//HnH+P8AM1aHWgByHajfSqTK8k4DDj0q
9GcMPepkiV3DYoAsWy4QcYqyOlNUDbSkhRmgBTUTjFRS3kcfJPFQvqVvsLbuKAHS8CqwO5sH
vTWv45AdhJNQSz7dj54zQA64UA4rLuxg4Aq7dXcUbtuPHbFZNzqcR5Qk/gKAIZExUYApjX6u
ORTUmDUANZMyEGtXTs+Rg9qoMPmBrRsP9TuPegCYimMKkPFMNADE/wCPiL/eP8jRSr/r4v8A
eP8AI0UAaGn/APHnH+P8zVmq2n/8eUf4/wAzVnHpQBPbBOWkOAOBViMYYiqkS7wyevIrROxV
UEjOKAHg8YqpM7liFHFW0GR602WPd8v3c96AMDUI1ALtJtx1zWB9pD3C7JA69+DXX3WlQTIy
zMXB9ayP7JhgOy3iz+FAFjTYY7rPylcDqKm1a0EVhtTsc/zq9p9qbeEZXBI9Kbqg3W5WgDzm
6uJTIQT9as2k8MEBkaNnP0ourb52wKfZTCIeXLEGU+1ADJLoTjiEAfSooxhhtFaRhMvMUQA+
lQm0KN8wxQAHhAa14V2wKv41kMdm3uMgVsr9xfpQAmKaacaaaAGD/Xxf7x/kaKB/r4v94/yN
FAGjp/8Ax5R/j/M1Zqtp/wDx5R/j/M1ZoAfCds6emcVckjMt0ATwBnFUAcEH3rWCh0Vs8460
AERyKlcZWoYjgYqUNxzQBA6nNNUAHgCppSAM5qhPc7DhepoA0B04qpfjdEcVLG4WNS7AE+tR
X00axE5FAHE3I2SEE8ZqFQMjnOalupUklYZGKpKxDEDpnigDctpMJiq1w2XPNV4Z2Uc0PJuN
ACqoeRVPTcK2AMKBWMMmVcdc1sj7o+lADTTTTjTTQA0f6+L/AHj/ACNFA/18X+8f5GigDQ0/
/jyj/H+ZqzVbT/8Ajyj/AB/mas0AJWpbSo0A+YAgVl0ZIzg4oA1IyOopxaobc5iFPPWgBk8m
EyTjFUbVN8nnTtgdgasX6FogAcc81nJN5lxsBJAHagDSn8qcDIyOgxVG+hM8WxSVq6qhEHyt
xVW4niR9zudo7UAchNYOkxO48VEF2sMjvWpqGo28smACBWY9xGX284PSgCRsY4qHdk/SnYOC
e3ambfnAoA0tOi82Xc38NahqjpKko7fhV40AMNMNPNMNADR/r4v94/yNFA/18X+8f5GigDQ0
/wD48o/x/mas1X04f6FHx6/zNWxGX46e1AEdOSNpG4Ganit1IZ5DtA6Z71LaoUV3YjHagCTY
sQABpCeaS7YrZbh1BHP4img8DPcUALcKHiIqDTIBAGLDDGrA+YYqVYwBxQAPIwBNZF5I7bs1
rsOOaoXYUDoKAOV1IlmwMYrPMeSARWxfIBJnjFZ7BSTQAyZ8oq4xUSjc4x1pzAk49Kltgqyj
JAPagDZtIvKt0HQkZNSGqy3mGAc57CrG4Mu4GgBpphp7Ef3hTDjsQaAGj/Xxf7x/kaKQf6+L
/eP8jRQBv2Vr5mlxNEdr88/iaq298onMc4KyqetXdBuom02NCwyuf5mqOuWq3ERmQYkXnigC
3eyNL5SKeCetXrdPMUL2Arm9FvDJKIJTzwBXSJmNgc/LQA/UIwLMqOmR/MVAyfIpFXZgstu2
Occ1TQho1wcjFAEQfaeamWTNROKiOaALLzAA5rJvrpc4JwKbeCXB2tisK5D7zvagBdQm3t8v
SqacmlZi3A6UcCgAOC2aiZsKr96c7YU+gqIj9wgPWgC2JQyLnrVmK5Ajw44rNXjANOd9pxQB
oMVlGVYjFNjZ4nOeVzxVRXyuFbrVgz4i2tzQBeXmaI/7R/8AQTRVS2ufMvIUHTJ/9BNFAEsF
79iwoDZGQR+Nao1mCWMBkfJ9hRRQBhTXKWmpiSLeEZsjtjmuhg1qJoBuWVvwH+NFFAFu01y2
EDRukpz7D/Gq1trECGSNklwDleB/jRRQBIdXtz/BL+Q/xph1W3/uyj8B/jRRQBBNqVu642y/
kP8AGsW9njZidrD8BRRQBQE6j1pDOvoaKKAIppR5ZUZ5okkXKAZ4FFFADWlw3BNL5wYcjJoo
oAlsypucupKAdBUt9NECojVlz1zRRQBLpTh7uJQDuyf/AEE0UUUAf//Z</binary>
 <binary id="i_057.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDmjeXAA/0mb/v4aGurnP8Ax9TD/toaiCb4
ie4pUxKuG+8O9ADzc3mMi6mP/bQ037Xd/wDPzN/38NRKzISp9aa7elAE32y7/wCfqb/v4aet
9c97iY/9tDVLcc5qWLk5IoAuLc3HJNzN9PMNSG6nH/LaY/8AbQ1VyB2pWkPWgCZrq57XEo+s
hqJ7u6A/4+pf+/hqBpcmomYmgCU392D/AMfU/wD38NSxahcfxXEx/wC2hqkenNAPIoA1ftsp
AxcS5/66H/GpFuJmbZ9olye/mGqUZATBFOWUZGTQBaMlypAa5m6/3z/jRJczAHE8o/7aGk37
1XcKZcDKYoAcLm4MOftE24H/AJ6Gkju5/wCK4lP/AG0NMUgLg+tRlQrHjnNAGrp8039oQkTy
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
bwvqsT2oZRydpUAD5T70UUUAf//Z</binary>
 <binary id="i_058.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACZAJoDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCO0TfaQszyFmjUk7zzx9am8of3n/77P+NR
2R/0K3/65r/KpzQAzy1/vP8A99n/ABpPLH95/wDvs/41IRSEYIoAZ5Y/vP8A99n/ABqC5lSD
A3OT7SH/ABqa5mEaHA5PSqcULO3mScntQAyMTyH5pZF/4Gf8anWN+8kv/fZ/xqVVz2pxXFAE
Wxs/fk/77P8AjTdj/wDPSX/vs/41YANHbmgCo8cmOJpf++z/AI1C3nAf66X/AL7P+NXHx2qF
gaAKnmzxnIlkcehc1dtp0nGNzhh1HmH/ABqq45zUGGifzIztagDYEfXLSf8AfZ/xpNn+1J/3
2f8AGmWd0LmMnoRUxoAYU9Hk/wC+z/jRt/2pP++z/jTs0UAWdF3Lr1iA74LuCC5IP7t67iuI
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</binary>
 <binary id="i_059.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAMQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDa0+ygns0klVmdiSSXbnk+9Wf7Mtf+eZ/7
7b/Gl0gf8S6L8f5mruKAKX9mWn/PI/8Afbf40v8AZlp/zyP/AH23+NXcUYoAp/2Zaf8API/9
9t/jR/Zdp/zyP/fbf41dxRigCn/Zdn/zyP8A323+NH9l2f8AzyP/AH23+NXKKAKf9l2f/PI/
99t/jR/Zdn/zyP8A323+NXKKAKn9l2f/ADyP/fbf40f2XZ4/1R/77b/GrmPSg59KAKX9l2f/
ADyP/fbf40v9l2f/ADyP/fbf41coxigCl/Zdn/zyP/fbf40n9mWn/PI/99t/jV2g0AUv7MtP
+eR/77b/ABpP7MtP+eR/77b/ABq7SUAU/wCzLT/nkf8Avtv8aQ6Zaf8API/99t/jV2koApf2
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</binary>
 <binary id="i_060.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDptM061uLCOWaMvIxYli7c8n3q1/ZFj/zw
/wDH2/xo0b/kFw/8C/8AQjV6gCj/AGRY/wDPD/x9v8aP7Isf+eH/AI+3+NXqKAKJ0ix/54f+
Pt/jQNIsu8H/AI+3+NXqTnqTxQBR/siw/wCeJ/77b/GlOk2A5MPGP77f41V1bWEto2VCM/j6
iuduPEszkorYzx3oA3bqDTYiQIiMHs5/xrNUacUJzLjHBMn/ANesa5vGeHzGc5JqnbxvdWiR
RE5OeR9aALU+9riVbeZyoJIzIen4Vq+HfIuov9KKliR1kb1PvWfpeh3kU/AYhlOeV7/jVXUN
Du7W5by3dGHoV9BQBtyT29lfeXLCJIyOPmY45+vtW9aWemXabkhI46Fz/jXlt5LqMJHmzO2D
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</binary>
 <binary id="i_061.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDf06wt57KOWVCzsSSS7c8n3q1/ZVn/AM8T
/wB9t/jRo4/4lkP/AAL/ANCNXsUAUv7Ks/8Anif++2/xo/sqz/54n/vtv8au4oxQBS/sqz/5
4n/vtv8AGj+yrP8A54n/AL7b/GruKKAKP9lWf/PE/wDfbf40f2XZ/wDPE/8Afbf41d+g5oA3
dOaAKX9l2f8AzyP/AH23+NJ/Zdn/AM8j/wB9t/jVx2SMZkYJ9aZHPDK2I5lY+goAq/2XZ/8A
PI/99t/jSf2Zaf8API/99t/jV/Y2PummkcdqAKP9mWn/ADyP/fbf40h020/55H/vtv8AGruK
QigCl/Ztr/zzP/fbf40n9m2v/PM/99t/jV0000AUzp1r/wA8z/323+NN/s+2/wCeZ/77b/Gr
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</binary>
 <binary id="i_062.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwC7a2yS2CyNvaRs5befU+9SfYoiBw+f+ujf
41LpR/4l8ffk/wAzV0EjHyigDLNkgB4f/v43+NPis4iOVc/8Db/Gr7lipGBzRDkAj+YoAh+w
23zARscf7bf41Ilhag5aF8Y/vt/jV1d2eo5p2D/eFAFNNOsz/wAsm/77b/Gl/sy2Lj9ycf77
f41eUDrmnDA5oAonTbYKcQHPrvb/ABqP+zrdcloTgf7bf41rq6YAzSSmJ1IJ60AYQsYGRjsP
3jj52/xqxDp1q3WInj++3+NOACrKAcgMasQDp9KAKradag/6s/8Afbf40w6fbZ/1Z/77b/Gr
r/ephoApnT7b+4f++2/xpPsFtgnY3/fbf41bNZmqQRzyqWZsr/doAX7HBn7rf99n/Gj7HB/d
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
iZ4cKM/xr6H3ooooA//Z</binary>
 <binary id="i_063.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDb0+ygnskklVmdiSSXbnk+9WRptp/zyP8A
323+NGk/8g2L8f5mreKAKn9m2n/PI/8Afbf40n9m2v8AzzP/AH23+NXCKKAKf9m2v/PM/wDf
bf40n9m2v/PM/wDfbf41cpGOOtAFM6da/wBw/wDfbf4037Baf882/wC+2/xqDUtagshsBDSe
grnLrXbqVvlfyx7UAdO1pZL1Q5/32/xqNobEHGD/AN9t/jXFS3k0jEtIWNQGZz1NAHeGGwyB
zz/tt/jTlsrVs4U/g7f41wHnN6nIqzbahcW0qvG5z70AdwNPtz/Cf++2/wAaX7Bbf3D/AN9t
/jWfpevxXS+XcEJIPrzW1kHkdKAK39n239w/99t/jSjT7b/nmf8Avtv8atAH0oFAFb+zrX/n
mf8Avtv8aX+zrX/nmf8Avtv8atUtAGXqFrFbRxyQhkbfjIc+h96Km1j/AI9o/wDrp/Q0UATa
T/yDovx/mauVT0n/AJBsX4/zNXKADFBFAooAaaxNd1RbaIwxt+8bPOelbFzKsNvJKxwFGa84
1C7knuJJXbgscfSgCKeYs5LMWYnqTUe/P+JqBmLtxU8VtKU3EZFADSSAcYpu7PSpDEw68Ugj
KjpQBGWxT4znn0pBCT2pwiZR0oAcjYbIOPeus8Par5kPkSklgeCTXGsWU1bsp5I5lZDg5oA9
JHOMHpS1BYOZLWN2PzFR/KrNACClpaOaAM/WP+PaP/rp/Q0Uax/x7R/9dP6GigCbSf8AkGxf
j/M1cqnpP/INi/H+Zq5QAUUUY6etAHP+LLwRWawKfmk6/TP/ANauHmYsQBXR+Mz/AKfGuf8A
lmP5msK1gMsoPYUAS2duAdzCtENtG0dKYiYOBS7RmgB20MMEZpBCCOlOUHNWFWgCsI1Hamsi
kdKtMnFRMnFAGbdWm4Ep1FUoiY3B6EHNbu3rxzVC/tvLYSAfKeOlAHcaJP8AaNMhfjoAfyrQ
ArG8Ljbpic5GRW1QAUtJR9aAKGs/8e0f/XQfyNFGs/8AHrH/ANdB/I0UASaT/wAg2L8f5mrd
U9IH/Eui59f5mrvFABxRye1HFGRgUAcP4zVhqic8eUP5mqWloDnPetfxsVDW5x8x4z+dZGmO
CwHuKAL3lndUnkVaVO9O8vd2oAqLEoqeJVzjFTCA0phbOV5oAayIo6VXcJnpVgo7DJpuEH3m
FAFQpzwKg1BAbT6GrrypnCYNQXuJLM46jtQBteFlxpKn/arZrG8Lyp/Zyw5w68kVs0AApaKK
AM/Wf+PaP/roP5GijWf+PWP/AK6D+RooANJb/iXRfj/M1c5rH0i+iNlGhJVuev1Naok/L2oA
k5opu4U7PT3oA5zxcIp4FjUZmXkfnXO6XlZQOnIrptShC6vG78qy4/nWPewxw3oMPBY5NAGh
NMIo+RzWe2osvTJ/GtExpLEpk6VTkhnkJS2iQL6mgCFNWlJwFJ/GtC0u5ZfvAisxrOcbtwAc
elW7QvGoz1oA0pNxUr61k3YMYIaTH41dadt+R0qnNbtNNvLce9AFOKNmkB87A9c1prYq1u7p
MHHt/wDrqSC0gi+Z1JzUsaqmVQYU5oAXQY2XUMj7vlgn8q6SsbRMGWTH8IA/nWzQAtFIKXNA
GfrP/HrH/wBdB/I0Uaz/AMesf/XQfyNFAGBb2F8tojqizoc8AgEc+5ojvZbdtpZo2H8LA1va
Vn7BF+P8zU81rbzgiaKN/cgZoAyoNYyB5g59VrTguo5lBjcN+n86zLnw+jEtaztCx7HkfzrN
ltdTsGJ8lplH8UeSf0oA6C/iE0G/+JOQa58xebI4bhieDT7XXhnZMTjurnn9atK0DhmQABuR
ntQBGE2qF64p+Ng6UD720iptoODkUAViC/AFQyJgcdasyuqnCjn2qqWUFnlc4H8NADNhFTRk
Hb0z71La3MEq5C/L70SywqxURc9iKAHIuTzU/lHZ61UExX5gMrV6CZXAPYnFAFrSrfyvMf8A
vYx+taGKdFFtjAA7Cn7DQBGBS4qTZS7KAMrWhi1j/wCug/kaKk11cWcf/XQfyNFAEOlf8g+L
8f5mrlV9JX/iXRcev8zV0KfSgCPaDShD2HFTBCaXy/UmgDOuNKs7pcTQKfccY/Ksmbw5JExa
xuQAP4GJP9DXUCMD1pdgPWgDjzHPCALj/WD0pkdwwhwTk5xWxrqbZ1PtWGFBDoPvZ3CgBjXG
M880zLNzRNI1sgl8reO+O1W7ZJbqFXgaNsjOM4I/M0AVRI6fdTr7VLHFM7A461ojTbsQ+YwC
jIHJH+NWJNOjtIvNvJwqDrigDMltpURXyADU+nxFpVUHI3VRitmuLua63t5I4RT+FbmiQ+Zd
Buy5J/KgDoAgAGaXFL64ooATFLiiigDL8QD/AEJP+ug/kaKPEH/Hkn/XUfyNFADtHX/iWQ/8
C/8AQjV7bVXRf+QXD/wL/wBCNXsegoAaFo20/n3ppIXqQPrQAbaNtRTXlvAu6SVEB7k1Tl8Q
aXHyblT9KAINeQBoifTFc7KMOsi9V6j1rU1HWLPUgi2zMWQ5JIH+NZlxxlx0NAD4nQrggEP1
U1GbIRtvgZox/scfyqvHJtfbmraXHy80ASLLctH5bXUpXr8xPH607yGu2HnSu4Bz854/WoSs
jnKnFPUTKOG+tAFuUIiLEgAI7Vd02+sLGFvPuYUkJ5XcM4rEecxq0j8kVzcsnmSM5br60Ad7
eeLLKAgQr5wwejVA3jWy2/LA7H0zj+lcO7ERcHsaiRh3oA7V/HA/gsPzl/8Asaqz+NLth+5g
SP6nP9K5gMOwo3H2oA311+91G4ignZfLLE4A9FNFZOmEnUYfx/8AQTRQBrw+K7yG1jhgiiUL
nlgfU+9RyeJ9Vk6TKo/2Qf8AGsONZSoCxyN9FNWF07UHGVs5yD/sH/CgCxLqt/Mcy3LsPqKi
v7pbmYOo2jAGD9Kd/Y+oEMWgZFUZJfIrPlIjbBcMR6GgCRiD1NQyzBeEqF5SelRj680AbGl3
y+ZskO3it8hXU9wa4jODkHHvWlY6zJAAsuWHrmgDSuIpImJUZFLHc8AHirlrcW96oKuoPpmn
S2KA5GPyoAdFOmODzU6y7lO0VFBbIpAbFacMCLgKAc0AYGsW94+yOGFn38/LWYulagRxaOPq
RWjqev3cWoSwWk2xI8DAHPQVRbW9TcYN5Ln2Y/40ASJoGpyIAIAPqyj+tSR+FtR/5aGJPrIv
+NUjqN84O69uM+0jf41Xa4uXb5rqdvrITQBvJ4UmJw95Av8AwMf406TwzbwjM+pxL+Of5Vzu
WPJdyf8AeNB+b7xJ+vNAHRR6fptrLE9vf+fPuI2gHGMH2orI0pQNRhwB3/8AQTRQBJFrt9FE
I0aNQP8Apkp/pTZde1Bhg3Lfgij+lFFAFKfUbycYluHI+uP5VUJyaKKAExRiiigBMGjFFFAD
0kkjIZHKkelbNnr7qgju08z0Zev9KKKANIahC6ggSY9wP8a0LXVoFXBSTgeg/wAaKKAOP1Rw
2qyyx5AYjr9BUYmBzkGiigByyAetJuG7PNFFAC7x70bx70UUAXNKYNqUIHv/AOgmiiigD//Z
</binary>
 <binary id="i_064.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDPgldogzSyEnr85/xqdCSOXk/77P8AjWdb
yEIKmE3OKANJAO7P/wB9n/GpliU93/77P+NZ6Sk45q7FMNooAnECH+//AN9n/Gni2TP8f/fb
f40yN8mplcGgAW2j7hv++z/jUgtYSMbWz/vt/jTd2PenByDwaAGi1hDgEPj/AH2/xpfscR6b
v++2/wAaeH55p4Yc0AV/skeejY/32/xp4tIR2b/vtv8AGpd2OvSngjHFAEH2OE9m/wC+2/xp
RZRHs3/fbf41ODmlUDNAFf7HD3Vv++2/xpDaQ/3W/wC+2/xqzijbQBWFpCf4W/77b/Gl+yW/
QK2f99v8an29aaRQBVuYUgEbxblbfjIc+h96Kde/cj/3/wChooA46JsIKm3ADOKpxthRUgeg
C2kh9Knin5xms/efwp6ybaANqKYACrKSCsSOarCT570Aa4cH7tOB4JFZ8cx45q0succ0AWQ3
AJpytnHvUIIY05eKAJ92eOKcCM+hFV92BT1bFAE4I9akVsds1ApBqRCQPagCZsY6UmMkelIr
g07HegBrgbsg0hAPQ0OfekQD0oAr3wxHH/v/ANDRS6gP3Uf+/wD0NFAHBL0p4OKjUjFPBGKA
JQwI5p25cVDjikxigCbcc8HFSB8EciqpfHfikLKR15oA0Y7jtgVainzjtisQSbejVNFcsp5a
gDoo7hetWFlDDisKG4yR89aUM3yjkUAXVbnFODc4NVxIMZHWnLJnrQBaQjNTKwA4qojZp+SB
QBaU81MpyKpxScirURoAa/DUL9ajnbMgxTlPFAEV8T5UQ/2/6GimXpJSL/f/AKGigDzwkg0n
muDwalYfL0qIDJoAkW4cDJHFSC5B+8KrlSGHpU6RhkO7jA4oAfvjejHoRUUMBkDEDpTRlfrQ
BKaAcUiPng07GKAJInx3q7DKykfPxWcOKlRsUAbUVz261OsoJrHilOatxSE85oA1kfIFS78i
qCy4AAqYE4BoAvQncatplVLdqo2/birFzLsiAB60ARb9zZqVWqtEQBzSGX5sUASXTZEY/wBv
+hoqKRgfL55L/wBDRQBxypleaheMoSe1aMPlvGAeDUy2iuOoIoAxweORT41kmIRMnNag0+MN
lkyPrVmNYoR8keKAI7ez8iDkZJHPFZVyoWXitqW5YoQFrJnCtkMPmoArFehFOzToRuJX0prr
g0AKGpw61F3p6GgCdDirETnpVZeanjFAFtJORV6F2kwPSqEKHIrUtojwcUAaFuoVcntVaeTd
KT2FWXykJycVjXV/HDnJ5zQBYmuAgqq98B3/AFrKm1AOTjJxUS3MbnnINAGzbXXnXUS57njP
saKq6bsN9CVbPX+RooAzY2IAqwkpHINVkHFSrxigC/HcOO+ad9qOeRVUNig5NAFk3Oe3FVn2
tnI60oTPXrQy4oArxR7Zz6Gi4UCpYvmc04xF3IxQBR2UAEGr7QYHSq7RkNQAsS5q9BF04qG3
jJNa1tA3Bxn8KAFggPFaNtEQcEYxU1pbocbl/Sp79Ut7JmUYY8UAc7rl48gaOL7oHJ/Guccb
hk5JzXQJbM0fLZJ61m3OnzI5Makgn0oArQ7Fc7sYPatKx0oTq8hA29ar2ulXE7fOCq/Suhjt
pINPeOIkALyfwoAwbGAQ6zGF6Zb/ANBNFRaXI7axGrnJy38jRQA6GANGDUotl71FCT5YxUyl
u9AEgt0oaNQKFyegp6xlutAEW0Y460wxkjNW1iANKRigCCG34yOtWIbf5smnREDrVuNOM0AU
5rfis94sOa25RnNZ0kZ8ygBtpHyK3rROgrNtIvmFb1tEMCgCxAoGKqa/n7Kir3P+NaUSiqer
IGKigDlVkdH4PStC3uY3wsq1HcWuDkUkMfrQBrwxwEZDY9Kr65eR2tg6IfmZSOPpTFTy0Z8d
BmuS1S+e4mcHgAkUAO0ht2sxH/e/9BNFR6F/yF4P+Bf+gmigDUtogYlP+etT+WueaZaf6lf8
96sMOOKAGqgCnFAxtzR2xSEHtQAFgOlRNnrT3GOai3UATR9BV+HPl1QiOCDV+IjHWgBHI3kV
UKnzKsuMHOaZ1agCe1j5FblumFFZFsOPetiHpQBZjqrqgGEOKtpUGoJuhH1oAyjGrDmmfZOQ
RUm0g4q3bqWIzQBFNAsenyMepFcJfWZDswHUk9K7vV5gkHljvXPTRLIpB7igDC0MbdYhB/2v
/QTRWlZ2Xk6lDJ2yR/46aKAJrX/Ur+P86sDOOlV7X/UKR7/zqfcR3oAXb61GeCacXOM56VBL
LmgBWamZBqFphUfnAUAXFbBqzFPwBisxZs1PG/NAF+RyRkURsSaiV89amjHegC/bckYrWiHr
WTbdiK1oTkD1oAsJ9KJ+Y8GnIDimz52igCkUG7NSBhEhJoYDvWTrN95EOwH5ifWgClqN351y
cHgVWaReKpeb3J5pQ/fNAGhE2Z4h/tH+RoqC1fddQj3P8jRQBXhuVjQKQ2RTmu0x0aiigCM3
i46NVaS6yT1oooAiMm71pPM+tFFADlkHvViK4UdQaKKALKXKejVbjvYxjhvyFFFAFyDUIVXl
X/If41di1eAfwS/kP8aKKALSa1bj+CX8h/jRPrNuQMJL+Q/xoooAqT6xbqpISTp6D/GuXvr8
3U7Od2MnAoooArLKM85p5mX0NFFAFnTZfMv4lAPU/wDoJooooA//2Q==</binary>
 <binary id="i_065.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACZAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDodOsLaeySWVCzsWJJdueT71Z/sqy/54n/
AL7b/GjSP+QbF/wL/wBCNXKAKf8AZVl/zxP/AH23+NH9lWX/ADxP/fbf41dooApf2VZf88T/
AN9t/jR/ZVl/zxP/AH23+NXajmmit4zJM4VR3NAFf+yrL/niT/wNv8aR9N0+MZdFX/elI/rW
FqfiptxjsRgDjeQK5y51e4nc+bMx9+lAHdfZ9IJwHhz/ANd//r1KumWL8rGCPaQ/415w8zFQ
wdgfrRHqN3AuYp3/ADzQB6T/AGVZf88SP+Bt/jR/ZVn/AM8T/wB9t/jXnUXinVIDxcE+xVT/
AErcsPHLDat7CSO7KB/9agDqP7Ksv+eJ/wC+2/xo/sqy/wCeJ/77b/GjT9UtdSi32r59Qaud
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</binary>
 <binary id="i_066.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDUsbWKa0SSQMztkklzzyfepTZW4/gb/vtv
8aNMP+gRfj/M1OTzmgCAWVv3Q/8Afbf40v2CDrtbH++3+NTgdKUt2xQBB9gttpOxv++2/wAa
BY25P+rYcf32/wAamDHBHSnKeeT2oAhSwtjnKH/vtv8AGkNhbZHyH/vtv8asRnk80jYyKAIf
sFvvHyHH++3+NILC23H5D/323+NTSSJGwLMBQkiSMdjZoAhWwtjnKH/vtv8AGlFhbZHyH/vt
v8anQ8kd6d0IzQBB/Z9ru/1Z/wC+2/xqubK3z91v++2/xrR434qs33j9aAK4soOflb/vtv8A
Gk+xQf3W/wC+2/xqwveigCD7FBt+63/fbf40n2ODH3W/77b/ABqyfu02gCneQJb+U8O5W3Yy
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</binary>
 <binary id="i_067.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCtqDstu0ivJvLnkOfU+9V90pu7dfMlCNEC
f3h5OT71be1+1QyKtzArb2+VpACOT2qKLRL4XCOrROqptGJQe5/xoA0vIVrYlS+4sMHef8a5
W6vLhb2SNLiYKpxjzDXbxWNzHAo8ss2Afl55rjptE1STUXLWNwodzhjE2Ov0oAuaPI81rM80
srEE4Jc+lU1uLj7KHM8v+rZs7z1xx3p63R0uylgkQiYtjJGOwrJa4laNUD4AGPwoA1tAa7u9
Ut45JZnjYjcDIeR+dW9fdrSRWillQM2cCQ4xWXYap9juoZOuz+6cUzULl70I3zbQOMnNAG/p
ANzoc128jlvOYLlzwOOOtXdRgWLS1dC6yFB8wc5zj61h213HB4cSHzdsnnFioOM/dp15rqXU
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
RnPFFFAALmM6C9qNxmc56cffz/KiiigZ/9k=</binary>
 <binary id="i_068.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJYDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDQ0+CCTTrV5AzO0SFiXbk4HvU5trX+4f8A
vtv8a5SDVbiO2ijUcKgA59BSnVbs+v4GgDqTb2v90/8Afbf401oLUdj/AN9t/jXLHUbs92/W
mfbLs/xN+ZoA6kxWo65/77b/ABpNtmPX/vtv8a5Uz3TdXb8zSb7k/wAb/rQB1RFkO5/77b/G
mFrEfxH/AL7b/GuY23J/ib9aPJnPdv1oA6QzWI7n/vtv8ajNzYjuf++2rn/ssx7t+tH2SXvv
/I0AbrXliO7f99tTDqFj/tf99NWM9myLudsD34qmZEzhBn3zQB0bajZ9lb/vtv8AGozqVt2R
v++2/wAawMSkZB60fOOOaANptUgzwrf99t/jTG1NOyN/323+NY7N6jFNDuvDc0Aax1T/AGG/
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
Bn//2Q==</binary>
 <binary id="i_069.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDa0+ygns0klVmdskku3PJ96s/2baf88j/3
23+NJpP/ACDovx/mau0AVP7NtP8Ankf++2/xpf7MtP8Ankf++2/xq0KUUAVP7MtP+eR/77b/
ABpG06yVdzJtUdSXP+NXOBXI+LNcIBsrdiOocgDmgCprur2yOYNPTBB5k8wmsEXlz/z8zE/9
dDVYknvlj3p8akttAy1AExv7kHm4m/7+GgX90D/r5T/wM077OI+ZWAPpUn2SNQHDZU0AKLqe
Rci4mBH/AE0NR/a7jJH2mb/v4anMMcfO7is8HMjYORmgC3De3Ak2yzy4PQlzXS6JPbvIIbtS
xboxkP8AjXKFNy7T1HQ1esLgtgk/OvegD0H+zLP/AJ5Zz0O9v8aX+y7P/nkf++2/xqLRbwXd
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</binary>
 <binary id="i_070.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDp9M020uLCOWaIvIxYli7c/Mferf8AY9h/
zw/8fb/GjRf+QVD/AMC/9CNXqAKP9j2H/PD/AMfb/Gj+x7D/AJ4f+Pt/jV6igCj/AGPYf88P
/H2/xo/sew/54f8Aj7f41eooAo/2PYf88P8Ax9v8aP7HsP8Anh/4+3+NXaAaAKP9kWP/ADw/
8fb/ABpP7Isf+eH/AI+3+NWZrqCAEyyooHqaxbzxfpttJsQtL7qpH8xQBpf2RY/88P8Ax9v8
aT+yLH/nh/4+3+NYY8d2G7DQygev+RWxp2u6fqXFvOC/90gg/qKAJf7Isf8Anh/4+3+NL/Y9
h/zw/wDH2/xq7RQBROj2P/PD/wAfb/Gk/six/wCeH/j7f41foNAGf/ZFj/zw/wDH2/xo/six
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
FAGPot0974ztLh+AZcAenGP6V6vRRQB//9k=</binary>
 <binary id="i_071.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDDhe5dcm5n5P8Az0NTqLgjPnzf9/DTLcDY
vfk1dB+XpQA2CC4k/wCW03/fw1ZWMxnEjyH6yH/Gi3nECEtx9aytQ1GSaQqjAD2oA0ri5t4h
gSOW9N7VRa/44d8+m9v8azVyxJJJ9zQSB060AXZL6ZzgOy/R2/xqNryXbtM8oI7+Yaz2kYEn
NND4bJJNAFwXs2c/aZyP+uhqRL+VefOlb2LtWcMnpxTgzj7ooA6Sw1CGYYlDA+u5v8a2lt4S
MgMQf9tv8a4iJzjaWwfY11Wj3yyx+WzZYe9AF77ND6P/AN9t/jTTbRej/wDfZ/xqxkHJGPpT
WoArm2i/2/8Avs/41G0CDpv/AO+z/jVk0xqAKxhGOr/99n/GoWiPZpP++z/jVwio2FAFOPfF
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
xoooAq31/HfiOGBJN27PzYHY+9FFFAH/2Q==</binary>
 <binary id="i_072.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDDsrieSYB55SMd3NU3vLoE4uZv+/hqxp/+
vH0/rVGT7xoAf9tu/wDn6m/7+Guo0xfNjjMjOxI5y5/xrkK63SZVEcQPHFAGp9mh9G/77b/G
l+zQ+jf99t/jTgwI4NJk96AE+zQ+jf8Afbf40v2e3C8q2f8Afb/GgsF5JAHvWdcaiDlIvmPq
DQBZuBbKhGWUkcEO3+NY7h1cETykem809iW+aR8Z7GkEe48sFA6ZoAnS5iVcOHJ/32/xqRby
zPB8zP8AvNVOWVImAXB9TilDWk5CsSjevSgDSSSzkGQ7D6u1TeRCwyhYj/fb/GsOa1jUHEuB
2p1nevbjYxJxzzQBtfZ4/R/++2/xqOW0U/ceQH/fNOt7qO4QFSAfrU2M0AVFAj4lRseodv8A
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
2v8A0E0UUUAf/9k=</binary>
 <binary id="i_073.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDXsLOGazSSRWZ2ySS555PvVkada/8APM/9
9t/jSaX/AMg+L8f5mrlAFb+zbX/nmf8Avtv8aX+zbX/nmf8Avtv8as08UAVBplp/zyP/AH23
+NO/sy0/55H/AL7b/GrYpenWgCjJp1lGCzptUern/Guc1bUIEJisLcu/97e3FWvEF+0swtom
IUD5qx3KxRf55oAyJru+V+Z3UdzvI/rVc6hd4P8ApU3t85pt1I00jH+GoMYxQBYXUrpW+a5m
I/66Gr1vcXE3MdxK3sZDWTIh+9jmr+m5SQYPBoA3tNvRDIFvYzIh6tvYYrrLWz066iDxx5B/
6aH/ABriHlIbDDPrx1rW0PUza3AQk+U3b0NAHU/2TZf88f8Ax9v8aP7Jsv8Anif++2/xq5GQ
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
UUAaOhDGrQn/AHv/AEE0UUUAf//Z</binary>
 <binary id="i_074.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwC5ZW6S2qPJvZmzklz6n3qx9jh/ut/323+N
N03/AI8Y/wAf5mrWKAK/2OH+63/fbf40v2OH+63/AH23+NT4paAK32OH+63/AH23+NH2OH+6
3/fbf41YxTJJVjXJOKAIvscPo2f99v8AGkNnCOoYf8Db/GsbU/ESwlkg5fkZwKwJtYvZWJad
hnsAKAO1eK0jHzOB9ZD/AI00LZFd3mLt/wCup/xrhHupZPvyMfxpPOk27fMbHpmgDv0t7Zxl
G3D2kP8AjTvskP8Adb/vtv8AGuCiu7iM/upmU/XNa1l4iuIhtn/eD6DNAHTfZIfRv++2/wAa
PskPo3/fbf41X07VoL8YXKv6GtCgCv8AZIfRv++2/wAaPskPo3/fbf41YooArG0h9G/77b/G
k+yxejf99t/jVk02gCGCJYtQs2QsCZ1B+c9OfeuvrlVH+m2X/Xwv9a6qgDktN/48Y/x/matD
pVbTf+PGP8f5mrdACUYpabI2xC1AEFzN5Y4NcdrGqSTXBjR/lA5xWj4g1B4kCIcMx9a5U5Y5
zQAuSxPGSaeEOOlXdOsTON3t6VqS6ao8tQoB78UAc95bHtSiM46V1yaJG8ZZR+lR22jxv5iM
vI9qAOT24YZ6U8rtOR0rZudLCtOgHCYxx7VnSwNGxBU/lQBFG5R1kQlWU5rstE1D7ZbBWI3g
c1xbDaelTabePaXiSK5AJweaAPQsdaKRGWRQyn5T0p1ADSKSnUlADB/x+WX/AF8L/Wuprl/+
Xyz/AOvhf611FAHKaYP9Bj/H+Zq3iq2mf8eEX4/zNWqAExUN1/qqnxUN0P3RoA4zxGQZUAHI
71jRJucD1Nb3iFPnjb1NZMC5kVF++W4oA6jSrZRFHtGCAM1rLaB5lJA6VX0xPLjAbrgVqxgn
kCgB8UO2PHGKaLdVLMF5IqyoIXpQck0AY8tlvkckfe5NZmraeAm8L1rppgT9KqTJuQqRkUAc
HfW2yJ5B0FZnf8K6vWbVUBZM7edwrl5U8uQ46daAO80CYz6TAxOSARWjWZ4cjMekQ9gcmtSg
BtJTqTFADP8Al7s/+vhf6109cwf+Puz/AOvhf6109AHLaZ/x4Rfj/M1bqrpn/HhF+P8AM1bo
ASorn/VGpqrXpIXFAHJ+IyBJGuao6PH5l35jDhK0fEMBKpKOTux+GKq2EFx9ieSDG7PGfTig
DaTUorckcs2fWp4/EUcZ+eMjHfNYNurC3E0nzSs2PbNPK3E9yIGRAPWgDrLPxFaXDBVHJ9TW
os8TLuGOma4GO0aFTIh2Mncc1fh1y9FgSbMuiZXzB3HrQBtalrlrbNtIyfY1mN4hgYlTnnpW
bva4AkaNWLngMelQPI/nmBrdDjqaALt5eRXaFUPVSOtc0+DvRhyDWqzbV85YwFByeTVC5Cy3
O+M/K5Ax+FAHeacuywhXGPlqzUduCIEB7CpaAG0UtFAER/4+7P8A6+F/rXTVzTf8fdn/ANfC
/wBa6WgDmNL/AOPCL8f5mrdVNM/48Ivx/mat0AFVb0Hg9qt4qOdN8Z9qAKL2n2u1ZQoPHFYu
jfLB5UikEHafyrbjkeMkKefSqNyNt4nybCRz79aAHJpUy7/s8qsjEsFcU8WF2iHMcZ47H/69
aMB+RR7VZEYIzQBzF1ZXOwxMFQHuD/8AXrQhRYdJ8lcgbMfU4qTUyBMEUY45NTpbZsixPG2g
Dm7VJowY3iJjBOGBFXGEZU/JJ9dp/wAKtaagN20ZbFa0ibBwT9KAOUuY98BiiRssMcjFLYaY
st8GCHy4gPz4/wDr1s3rHy2Ge3SnaSrCDGMAZ/nQBeA/Klox6UUAJRS0lAETf8fVn/18L/Wu
lrm3/wCPqz/6+F/rXSUAczpf/IPi/H+Zq3VTS/8AkHxfj/M1boAWkIzmiigCnPblWLDkVm3j
MbiFmA9P51tyjchFY16vyK3900AaNsRtFWGmCggGs+Fv3Qx6VBeeeAPLGaAJb9vMk3g847VF
9pnNt5IFQx3BBw8LFqsG4j2kmFt2KADThsm3N1Fary7x71zclwC52IwbtV63MxjBkXBFABff
xeprQtoxHbqvcjk1nTjzJo17lh/OtYDAA9BQAuaKKKACkNLSGgCJ/wDj6s/+vhf610lc2/8A
x9Wf/Xwv9a6SgDmdL/5B8X4/zNW6qaX/AMeEX4/zNW6ACiiigBKyr1cq4PcVq1mXhGWoAqWU
+1RE55HTPetIsrLyKzDb+ZEGQ4dRkGoor94j5c45HegDT8sN3qMrJ3Py/SkjuE45zmrfnRFc
e1AFXyo154J+lPMyiMnoKq3E6qxweBVJp3n4XhaANawjMspnb7v8NaNVNLdWslVf4OtWzQAU
UUUAJQaKSgCN/wDj6s/+vhf610lc2/8Ax9Wf/Xwv9a6SgDmNL/48Ivx/mat5qppf/HhF+P8A
M1a98UALRSZ5yar3V/a2ilp540x2JGaAJZ5fLXI6ngVzhuvtOqtAhBWNcn3PNQan4lSTK2qk
/wC0TWTolyY9RVnbJcnJP0oA7CBDtA9qhvLRZRyPxq1HjAA6Va8kMvrQBz32GUHAJxTjZzBc
5b8xW19nqKRHI2jOKAMI2js+GJq75Ajj2irkdrzk9aWSPnAoAzY7t9P2yf8ALPzAH/OugRxI
gdTkMMiub1pQmnOD/FnFUtF8RtZoIboGSMDCkHkUAdnRVK11Syu1Hkzxk+hYA/lVzPGQRj2o
AKKQn0oNAEbf8fdn/wBfC/1rpa5pv+Puz/6+F/rXS0Actpn/AB4R/j/M0XmpWtkpM8gHtXFT
6/dmEQREJGM8jrzWVI7SMWdtxPUmgDpNS8WSSZSzUoP7zAZ/rXPT3M1w5aWQuSc81F+dCjJo
Af2p8LmOVWB6Go6QHmgDv9NnE9tGe+0Vr2/TFct4dn3RKv0FdJDMiPtZxQBa2jmm7FOeKlWS
NuFcU/aOoOaAKhjCrk1A6YjLGr03QCqd04wseQB3oA5zxEQLYJnGATXJZxXR6+5kMvoCQK51
hQA5XIIwSD7HFXrXWL61I2TkqOxANZmcU9TmgDqbTxYQQLuHr/ElbFrrFldY8uXBPZutefg4
6Uo560AelZDXNkRyPtC8j8a6avKPC80n9vWMe87DKPlr1egDwsjJowaKKADBoANFFAC4NJtO
aKKANrQ7kQ71OT3GK1zcxSAb/OVvVTg/zoooAsw3sSLjMxx3OCf51NHqognDDzmQ9VOMfzoo
oAsz69BjCRuT9AP61k3WpJNKFAk2jr7/AK0UUAZOpzI8TbQ3XvWKRmiigBpWkAINFFAD6KKK
ANXwt/yMlj/11r1yiigD/9k=</binary>
 <binary id="i_075.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJkDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDo9N0+2nsY5ZYy7sWJJdueT71Z/smy/wCe
P/j7f40aP/yDIf8AgX/oRq7QBT/smy/54/8Aj7f40f2TZf8APH/x9v8AGrtFAFIaTZf88f8A
x9v8aX+ybH/nj/4+3+NXKWgCl/ZNj/zx/wDH2/xo/smx/wCeP/j7f41d/GmNIqdSKAKn9k2X
/PH/AMfb/GobzRLae2eOAGKVh8rh24/Wrq3MZz8w/OnrKGoAwINEnW28u5UFgB86Oc9frU95
Z20OnSyC2YSImcb2JPHbmtkuo7gmjhuSAT70AcFpFubtr6Saa4ihjTKb5DkHj/69aFjZrOtv
b3LSLOqb2MbMN/XrnPpW9d6dazSfvI8JJ8rqvAP+cU6wsWtUlMzCRt2EbHITjjP1z+dAGBd6
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</binary>
 <binary id="i_076.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CACXAJcDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDBW5uCoJnlz/10NO+0T/8APeX/AL+Goox8
gp2KAH/aJ/8AnvL/AN/DR9ouP+e8v/fw0zFFADjcXH/PeX/v4aPtE/8Az3l/7+Gm0lADvtFx
/wA95f8Av4aFuJyeZ5f+/hphpNyocscUAWBPOc/v5f8Avs0vny/895f++zVJ71BnapNMF+/9
z9KANDzpv+e0v/fw/wCNL503/PeX/v4apLegkBlIq2BkZUgigB3nTf8APaX/AL+GjzZv+e0v
/fw03FLigBfOm/57S/8Afw0vmzf89pf+/hpuKXFAAZZsE+fL/wB9moUu5wvMszHP98/41Mw4
qPd5a4xigCXT7qc6xConl2kHILn+6aKi0wFtXicjA5/9BNFAEcf3BTqSP/VinUAJRS0lAAab
inY4qOXLAgcYoAiecl/LhXc3tVhNEu5RukDc9sGtfQ9KRE8+RQSa6OKEelAHI2/h+QYLrlR1
+Wp/7JZePJBH+7XXiMAdKY6DHSgDiptDfBdOD6Y61ReOS2Y53Kw7Gu5kQY6VlajYpPETj5iK
AMOGQSrx1qSqEm+BiBw6/wAqu28qzx71696AHYoxT+5JpDQA1mCDJqBmDDLcsegpbpz8oHUm
m42OpbnigC3pybbyE+pP8jRUVgw/tWAKeDuOP+AmigCGP/Vin02L/VinUAFJS0UAIaSz/fXq
xLyC4z+dNnJWByKs+H0VbqNzyTg0AdfbxYjC9gKuoKhiwRU6CgCTAxUbgVIKY1AFWRfSqV2p
EYNaDjmql9jaBQByGuRqJGfoSB/Ks/R3P2grnAxWlr3vWNpzbb9Ac856fQ0AbrEevWoieKvJ
YqyFixB7cVWNt8+MPj6UAU5uXHPNK4eMB2XIx61qf2X9oISBGeQ+i5xW3a+DjJbAXFyVJHQL
0/WgDkNKbzNYhfoPm4/4CaK6y58LW2krFdRSu7h9vPuD70UAcpF/qxT6bF/qxTqACjrkUUc5
oAguxm3bFWPDQaW+AHAQAmn/AGIXOlXMgJ3x4IA+oq54Wtz9mnlXliMfTrQB0n2qOEAMw4pY
9Xs2basmDWAUtoXdJ1knn6lF7D8vpUdnPDeBmtLEqqdS3BoA7JXVwCuDnvUNxcpbqS9U9Llf
cYpFwAM1Su3mmkm2AHacYoAWXXrdnwFYe/8Ak1C2pRXGAG5zwDVS6ur6wkjRbaOUOoO7B45+
tKu29uPLlhEcyY5UcGgChr0ZeIMOxrn7P5byIg4O6ut1WEpaspHSsLR9Oa6uxIV/dIfvUAdC
znf94AdTSQxyXFwscRBZ+ntTZ4DvcY+6ePeul8M6X9miN1KuJH6D0Gf/AK1AGlpemxWEO0AG
Q8s3Wr1ApaAMrxF/x4J/11H8jRR4i/48E/66j+RooA83i/1Yp1Ni+4DTu1ABS56Cko6GgDX8
NBZLi5gbB8yI4B74yf6Vd8PRLHDMuMfvDx+JrI0GUR61Bk4Dbh/46a3bVGs7+eF+jSFl/Emg
C2+mRu/nIAsh6sByaRLERfc2qO4UYzV6NhjBqGe4ABVRk0ARQA+c5OOmBVRRtvXG04brWhaj
MrA8kis+7yLpsNgigC19kTGMkj3GaFtIoyWABPU8U+K4xGvmjg9xTp5FCkqeooAwtfACHaOo
4FRaHGi6Og4Jb5sd88UzVZfNQbuBnFWLUJbW8bYOFAyB6ZoA29L0ZmkFzd4xwVTHaugAAAAA
wOgrBh8U2RXBimAXjoP8ak/4SnTuP9bz7D/GgDbpaxP+Eo04HBMmT6gf404eJbD1f8h/jQBJ
4i/48E/66j+RorO1bWrS9ijt4SxcvnkD0NFAHDQcRgGpKZF/qxTs0ALRSUUANErW88c6dUOa
311mDU7mIxBllC/Nmudl5Wm2E/2e+jbOAWAPbvQB3UbO0PFJvVUKH7xqOynBO09CKfNZifLL
Iwx/dNAFYR3cUjSKwIPQZqF4ZXk8x2BJ7Zq6kEaD97KRgetVbiBDkpMze2aAJoLjA8tiDnsK
lmQrA57Y4pthZwxLvZdz+/anXUwb92uMDrzQBiammIkHqadBJNLGBJjaOBio7+TzZQg6LViF
mSURbRtxnmgBPLJQr3zTDAfLUEcg9at+WV5Qls84FNdiFww2k+tAFWO3Dy7jUskA2DHY1MiE
N14pzgbDzQBSjQrcxEj+I/yNFTMW8+IMP4j/AOgmigDBjP7sU6mR/wCrFLQApNGaYTzinwwz
XL7IIy59qAI35U8VUbr710cPhydivnSqgPUDrU0nha0yCbiUA9cEf4UAU9Kv3eMRknzFrotN
ufMHzE81mTaLbWVqptg5kB5Ykc1Vs73ZNtk+RjwPSgDqJoVZeO9RJbIpG4UtpcK2Nx7cVJdz
J5fB5oAgvJ1iQ7ewrHefKM5PWk1C6G0IDliagRHlCrjjvQAttEZpdx6Z4qxEjS6kuwZULz+t
WVjEEOR17VbtLfyYQx++3WgBVt/KGM4qJreJ/vZNWGx/F+VAUnqcD0oApvCYyCp3L6VGw4IO
QDWkMqMCmMOMUAZkigPD67v6GipbqILJE3+1/Q0UActH9wUE8UR/6sU08kL/AHjigC7p2my6
hKOSsS/efFdTa2sNpEIoEUerY61HY2ws7KKPuVDN9cc1ZzlhQAwnK5HGO2aQnMJyOlBON1C/
NGw9qAHErLAVbg4rnprZJSD0PY1vLxgH0rNCclccjpQBSjiv42HlyFgOnWpvK1GcYZ9tXIH8
s7TV2NlxxQBl2+klSHlYu/uKvxW4U9P0qf75ApXOxGI5OKAIinmTKo+6nJqwxycngDpTIxsU
nuaceSBQAijc25u3SpDz1601T/47S9TntQAuKY1Ozz7UwfNuPpQBVvM/uuP4/wChoqS+H7qL
/f8A6GigDjE+4Km09BJqUCHpuz+QzUK/cFXdEiaTVI2HSPJP5GgDrJOWpvQA0M2SfrQDnI9K
AI5Dwxp0f3B7gU1+QakQYUfSgA7is59xu3XgYORWlj0qtcw7phIvcYPFAETIW5xzUkSP/dP5
UgZ1JxUgllC/K7D6UAWooHIy2EHqSKez26nyom3yDqccVn5kb77sR/tNViGNY0LDGWFAEp6K
D1zSd6RzgLSMcHPoM0AKhzn3NOdgBgVHG37sEfxU8DLZPQUAIxwMetKo7UgJd8ntTh1zQBXv
yAsS99/9DRVa+k3XUQHQN/Q0UAckHAUAg1r6DcxW6zSOrFicDA+lFFAGp/acOT8snI9B/jTV
1SIP92T8h/jRRQAranCf4ZPyH+NSDVIf7snT0H+NFFACHU4f7sn5D/Gh9ThKcLJ+Q/xoooAT
+0bdlGUk6eg/xpP7QgByFk/If40UUANbUYGb7sn5D/GpH1SEIAFk7dh/jRRQA59UhKr8sn5D
/GmPqcJLDbJz7D/GiigBF1OEYG2T5QB0H+NPOqw7MbZPyH+NFFADl1SALjZJ+Q/xpH1WEKSF
k6eg/wAaKKAKcc63M8aorFixPOPQ0UUUAf/Z</binary>
 <binary id="i_077.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CABkAGQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDY0rTLCTSbN3sbZnaBCWMSkk7Rz0q3/ZOm
/wDQPtf+/K/4UaP/AMgax/694/8A0EVcoAp/2Tpv/QPtf+/K/wCFNOlab/0D7X/vyv8AhV00
wmgCp/ZWnf8AQPtf+/K/4Un9l6b/AM+Nr/35X/CrUsiwxtI7AIoyTWJP4ot0YiONnwcZoA0x
pWmn/mH2v/flf8KX+ydN/wCgfa/9+V/wrGXxbb/8tYnH0rXsdWs77AhlG4/wng0AL/ZOnf8A
QPtf+/K/4Uh0rTv+fC1/78r/AIVeppoAo/2Vp3/Pha/9+V/wpp0vT/8Anwtf+/K/4VeNNIoA
4Pxdbw22qRJBFHEphBIRQozub0oqXxr/AMheL/rgP/QmooGdlo//ACBrH/r3j/8AQRVyqej/
APIGsf8Ar3j/APQRVygQjVVvLyGyhMszADsD3qyx6k9BzXBeJNRa8vGRSfLjO0D1NAEWo6vc
ahMxDMsXQICcVQLAcLgn27U0EqoH8TdadGhPAGSfSgBFVm68im4kiffGzRsOjKcYrSispWH3
ce1S/wBlSSdsCgC94d8RyKRbag+4HgSsen511wYMuUOQa82urIwuVB6V1nhK+a505opSTLCf
Xt/k0Abhpppx4wKSgDhvG3/IXi/64D/0JqKPG3/IXi/64D/0JqKBnZaP/wAgax/694//AEEV
bzVPSP8AkDWP/XvH/wCgirecUCINQkEVhO+fuof5V5uxMkhZu7E5rufEk3l6PNjqRiuFViQh
7YoARF3OMZ2+uK2dPggxwwLe4qkiXMcW2ONR7kf/AFqfCJUlDH8cUAb6BV7jHuaaZY/uidQf
rVW6LLa70BJPWs23lmSXP2YyL69aAL1/Eogd9wb3FR+EpzFqpjHSQEH9KfffPZBwhQk/dqpo
Ugi1qFiOvFAHe9RSGlJppoA4fxt/yF4v+uA/9Caijxt/yF4v+uA/9CaigZ1+kn/iTWP/AF7x
/wDoIqwzcVT0pv8AiUWX/XBP/QRVgnNAijrkP2jS5lHUDd+VcdZwhriNWGRmu8YBlKkZBBBr
nLjSHtbpp0YGLORQBNhDkEDAquzRvLsQdOpqvK0nOTgetIg24aOQY780AazBVjBbpSQRwsdw
9aqo7yLiSRcfWoFZ4Zv3Z3AnsaALurkLZ4X1rM8P2xuNWTj5U5Jq5epLPagIpYg5IArW0KzF
pb7yu137UAa2c89u1ITSA9qQ0AcT41/5C8X/AFwH/oTUUeNP+QtF/wBcB/6E1FAzp9MP/Eps
/wDrgn/oIqwTtGScD1PauJvvEtzaW9vZ2wCeXDH82P8AYB/rWDNqV5Pky3Dtn8KBHa6r4qtr
NzHApmkXrhuKxG8W3VzKEkRViJ6DH+Fc2TnJPJNKn3hQB3RCTQlRyrDrUVvG1s+AqPH6EA1F
FKYdmfu1ej2ucjkGgCQYlGFgRPUgUQWkcCkgdT3qZQijngVXnut5KR9geaAM3V9dl065WO0K
k/xZANFv44lBHnWisB/dbH9K5a9Znu5ixyd5H61EDigDvovGti5AkikTPXvituy1C21CIyWs
gdR1HevJjXW+Ay/nXfPyYGc/jQAeMv8AkLRf9cB/6E1FJ4x/5CsX/XAf+hNRQM5q9cyXGWbc
QigfgoGKrnI606T/AFjfU005PJoEJTl+8KbS0AdhEVmtx9KhCPG3ysRVPSbsGEITyK1NwPJo
AQCR/vOT7VYULDA7Hjg5zUIkGQB1rM1jUtkZgQ5ZuvPSgDDuCDcSkcguT+tRUvXvRQAoPHSt
LSdauNJkYwBCrY3Bgef1rMzRQBu6tqg1a5S4CbNqBCPfJP8AWisy2/1Z+tFAzpD4ZsiSTJPz
/tD/AApP+EYsf+ek/wD30P8ACiigQf8ACMWP9+f/AL6H+FH/AAjFj/fn/wC+h/hRRQA+Pw7a
RNuSW4B/3h/hVsadGBjzZT9cf4UUUAH9nR/89Zf0/wAKpv4bs5HLNJOSf9of4UUUAN/4Rix/
vz/99D/Cj/hGLH+/P/30P8KKKAD/AIRix/vz/wDfQ/wo/wCEYsf78/8A30P8KKKAHp4ds0GB
JP8A99D/AAooooGf/9k=</binary>
 <binary id="i_078.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CABkAGQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDTtLG3mgEkiFnZmJJY88n3qb+zLT/nl/48
f8ak04f6En1b/wBCNWsUAUf7MtP+eX/jx/xpktjZQoXkjAQern/GtFtqqWY4C8n2rjtd1U3M
5hiYiNT0oAdf39qgPkwBR2O81lR6g+4loS4PuasBE8rLDJqsc78AcUASR3YmJG3a/puNa2mT
WsjiK5j+Y9DuNZAt2H7xVw1SxyHG7o6nrQB1f9nWnURZHb5j/jTTp1r/AM8v/Hj/AI0/TLlb
uzRweVABFWSKAKB062/55f8Ajx/xpp0+2/55f+PGr5FMIoA4/wARg2t+iQMyKYgSAx65NFL4
s/5Ccf8A1xH/AKE1FAztdNH+gx/Vv/QjVrpVfTP+PCP6t/6Eassdqk+gzQI53xRqYhiFrGwy
c7jXJId2WNWNWla51C4Y5wJGx9M1AvIwooAvWx8wAHpVyO2USAgZqvZxbcZYCtJNvBBBoAlS
2Urk1jX9u0TsVzg9a3kuYol+cioZ5bO5QgEEmgDF0nUm0+6BJ/cucOPQf5NdpFIk0SyRnKty
DXnl9m1unTblTnFdR4Vu/NsjCc5XkZPv/wDXoA2yKaRUhxng8U0igDjPFv8AyFI/+uI/9Cai
l8X/APIUj/64j/0JqKBnbaZ/x4R/Vv8A0I1PMMxOB/dNQaZ/x4R/Vv8A0I1ZIyOaBHmF9cOt
3NHtxhyD+dXNKg8+BpXAAFReIYBb63KCDh3J/DNb3hpYXtXVh07UAY1zJ5bYjRjjvVzSS9xI
EIIBx1ro5tLtpRuOVHoKjs0tkmZE4CHBJoAyNWsp4xiHr6mqdjbXQxukVvUAf/Wrpr2eFJGa
NlZsdKhjv4J4sjGfpQBzmuWRfypMYbof0q34bXypeOpODTtXYeWGPqTTtFwrBx65oA6U00ik
RwwzmnEUAcZ4w/5CsX/XAf8AoTUUeMf+QrF/1wH/AKE1FAztdL/48I/q3/oRq0fbrVXTP+PC
P6t/6EakuDJsIjOD6+lAjivGBR9RATBdVOSPWpfD9xE0S7XCyMCCue+ah8R2hgnaRm3MwJJ9
6wLeR7a4SeInchz9aAO9vruRIGAzk8VnCJBYljd7ZDyyg8/zq9uiu4c+tQS6VbwJ5vlsxbkn
cT/WgDMDHeGdXfHRiDSRyiSfNuGAzhuMCppmjcbED/lVmC2CRcDHegDP1xn8m3XONxwf0q9Z
KIYUUHt1rG1m5864CJ92PP5/5Falq+62Q57UAa8E+DgmtBGDr1rBV8HrWlaT54JoA5nxj/yF
Yv8ArgP/AEJqKPGJzqsX/XAf+hNRQM7XS/8AjwjPu3/oRqeeVYY2diAMVBpmf7Pj4J5b/wBC
NY+sTulyVmLJGB370CMTX7g3UxI6ZNYvlMGK4IyMitlEa+ukWKNvLDfOcds0zUUX7WwXC7Fx
j8qALNtdt5KXEfUDDr/n61rW+txsgDjHHSuUtLkwynj5CcEVfeLYQy5KPz9KANafVEaT5QPy
NUdRv5Fs3dBg9M1DEuW3GodakxZ7eBk0AYpYmPJOSTk1t6RKXtxmsSPmPkVs6UoWEc0AawxU
sb7GyOlQA09TQBjeKH8zUIj/ANMQP1NFRa//AMfqf9cx/M0UDO3sbnbZIi8YLfzNQTolw26V
d596htZQIcehb+ZpfM560CJYkSJcIgX6VgXlmbrV3RV+Z1+XBPXitxX4OTTtIVX1Dc33h39K
AOabTjp8hF4u6LOCy9Q36e1adultNbmKNyxUcZ/StfX4p1uTIqA27KA59Gyef5CqUVrHNEsi
5imRfmx/T2oAyZYzESQelZms8+XntziuteySVDlstWBqFoWlRogS27GPagDPe0ZLTcExldx5
9qfp82HC/wAOOlbogAaONgWLKcn06VirB9nvpFx0PFAGnHMG+tWEOaoFcNkdOtSRylGFAGbr
/wDx+p/1zH8zRSa44e8Qj/nmP5migZqSXM0NxKiPhQ7AcD1oF7cE/wCs/wDHRRRQIPt1xk/v
P/HRUunX1zHdErJg4/uj/CiigC9dajdywsry5BHPyr/hWYt/chQRJyhwOBRRQBBcandwzbkl
PzdRjimLqFxJKWZhlRxhRiiigCSLULkzhi44z/CKq3cztdFieT7CiigB3nyEfe/QU0zybh83
6CiigCGePz3DSMcgY4ooooGf/9k=</binary>
 <binary id="i_079.jpg" content-type="image/jpeg">/9j/4AAQSkZJRgABAQEAlgCWAAD/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9
PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhC
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wAAR
CABkAGUDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk
NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk
5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCjI0hmkJml5dv4z6mm/vc8Sy/9/D/jUjKC
8hJx87fzNQXMy28LSE49OaAK97dvbLzPLuPbeayJNTvC2RdTAf8AXQ1FNM08u9ieTxmomGTg
UAWBqN8c/wCmT/8Afw0h1K97Xk//AH8NQgdh+JpCo7dKAJ/7Svv+fuf/AL+GrVpq9zHIDNJJ
InfLt/jWbinxkA4PQ0Adlbyx3EQeKV2J5I3txUmxt/3nx/vn/Guc0u4a3nBBwvcdjXVjBUHs
aAGpEp5Jf/vs/wCNKYlz1fH++f8AGnqAKTl2wKAEt2aOaQI7gFV/iPvRSqMTv/ur/M0UAZbE
mSUY/jbH5msPWLkySiLOFHNb+3dK+7gb2/ma5zVoil4fQigCovSlxgcdTSCnCgBMYGPWjHHt
TwB3pdooAiC0IPm9qn8o54pyxYHNAD4uinoRXXxMDCnPauPTgYrq7Aie0jc8dqALC/NmpRhV
x+tNJCUg55NADVz575/ur/M0UKwa4fHZV/maKAM9j8zn/bb+ZrK1mLenmAdK0Jm2ySZP8bfz
NQlPtCENwpoA5ztn2pQeatXlk1uSQDtJ4NUuc4wSfSgCQmlDHvTeQNuDmr+naVc30iqI22k4
zwKAJbK2M0Mk5GI04J9TSJC00jKg+4uTW/qNlItvFpllGMLzK545/wA4qbQLO5t1yFRXdsOp
Gcj16/WgDlChVwp4JrrrC2ENokYNXdf0wXH2V4UVWR/mI9MGmPBtbfH27UAQFGU5bmm7wzYF
W0IkB9ehFV52jssyyDCeuM0AMjj2TvznKr/M0UkFxHczO0TbgFX+ZooAyJR/pEpY/wAbcfia
ktWWTK9Kq3bn7RKM9JG/maiguPJmU5470AaV1As0DIV7cHFVtDsoSZGkRWkBIVmFamA6BhyC
Kr2+Ld8AcFiaAJbfQ0M4kljTIYtnA5q4HNlcoIwArHsMYrRtcSRg9az9UXa4ZeQDz7UAbhhi
mjB2AZ53Y5p8UIXGwAAVDZOzWyhjjA61Icq+EYk0AF8QsI4zzVLAwT2qa9ckqmeRyarSuEgY
n0oAibCSB1PBp8sCXERjkUFDUNsfMhIbseKsJ6GgDF06xewnuImO5cLtPqOaK0Z/+Ppv9wfz
NFAHJXjj7XOM9JG/maryxPsD4+X1qxrNqY7vzwrmN3bcVHuamW80+SDyXDqw6FjQBf0+4Vrd
VJxgcUlzMEBJ6e3NMgjBgUJgrj71ILeNHDGYsO6n/wDXQBo6ZfgBSCGj/lVq7JdhNAQy91rn
XkFjKQwzC54PpUjX09pJHNb5nRuqA54oA6e1vmVQEt3LdgSMCtO2DrG0kxBcjJxWZY3sEke9
8RN/dYYNWZr5TCVTqfegCGWTzJHb1NUdScpBjPWpgwAJY4A61mXs/wBo8lByWOTigC7Z8xA+
gFWwfXrVeNPLhAqUMu0FjQBFN/x9N/uL/M0UkjFrgsRgFFx+ZooAZPDG+jSeaoK5Yj67jXBc
lwxOcV6L5ZbSpMKXJ3YX8TXB3ELwTNHIhVv7poA1raSURoYh8oUcetS/aS2dsBL1FYRfZ7SC
UHeZCRj06f41p4ljj8wLkHqM0AZF0rSReXMOW6e1VLC4lsbuNZPmj3d6tX0glm+XIAqDy3uJ
liQAnGQM0AdG+nxPP5xkYntziracHGTiqkUl2LSNVhVnHUZH+NWVYxpulKofrQAXKs0LoOM9
aoQwtHAZVG51OPoKlm1mzg4kmBI64BNUjrCTMVtEID8FiKAL6X6bGBJYg4wBU0CyTsDINsfp
WbZ2zbt6thweT2NbdtG/G7HvQA25AFzgf3B/M0UXW37UQpzhBn8zRQAxbu4tXeKKX5FYgAqD
3+lY+tRC4P2mTBkK4yFA/pRRQBm2ssgtolDYAJx+lWluZ04ErY9KKKAIbqRnRi2M+wFUIpHj
k3oxDDvRRQBsrfXAQESdvQVSvryeVcO+QRRRQBSgjUqxIB+ozVqJipCrgDr0FFFAGlDdTIoK
vj8BUrapd42iQAeygUUUAXdOBnlnaR2JG0dveiiigD//2Q==</binary>
</FictionBook>
