  
   
 
 
 
    Министерство приборостроения, средств автоматизации
 
                  и систем управления
 
 
 
   	         Операционная система
 
 	 	        МОС ВП
 
                          
    	Подсистема взаимодействия пользователей
 
         ПРОГРАММА ТЕРМИНАЛЬНОГО ВЗАИМОДЕЙСТВИЯ  
                           
                 Руководство оператора
 
                    Лист утверждения
 
                 2б.00152-01 34 05-ЛУ
 
 		       Листов 2
 
 		
 
                            Представители инэум
  
                            Руководитель темы
                            Зам. директора
   
                            _______________Хрущев с.н.
  
                            "___"__________ 1987 г.
  
  			    Ответственный исполнитель
 			    Зав. отделением
  

 			    ______________Остапенко Г.П.
  
 			    "___"__________ 1987 г.

 			    Исполнители:
                            Зав. лабораторией
  
                            _______________Кароль В.Л.
  
                            "___"__________ 1987 г.
  
                            Инженер
  
                            _______________Веселова Л.Н.
  
                            "___"__________ 1987 г.
  
  
  
                        1987
 Перв. примен.                             Литера
 2б.00152-01
 

                             2
 
                      2б.00152-01 34 05
 
  
  
  
 			   Ст. техник
  
 			   _______________Хромова Н.И.
  
 			   "___"__________ 1987 г.
  
                            Нормоконтролер
  
                            ________________Скворцов В.А.
  
                            "___"__________ 1987 г.
  
 
 
 
 
 
 
  
  
 
 
 
 
 
 
 Утвержден
 
 2б.00152-01 34 05-ЛУ
 
  
 
  
 
  
 
  
 
                   Операционная система
 
                          МОС ВП
 
  
 
 	    Подсистема взаимодействия поиьзователей
 
                          
            ПРОГРАММА  ТЕРМИНАЛЬНОГО ВЗАИМОДЕЙСТВИЯ
                   
                   Руководство оператора
  
 
                   2б.00152-01 34 05
 
  
 
                       Листов 18/2К
 
  
 
  
  
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
                            1987
 
  
 Перв. примен.                                   Литера
 2б.00152-01
 
  
 
 
 
 
 
 
 
 

 
  
 
  
 
  
 
  
 
                   Операционная система
 
                          МОС ВП
 
  
 
 	    Подсистема взаимодействия поиьзователей
 
                          
            ПРОГРАММА  ТЕРМИНАЛЬНОГО ВЗАИМОДЕЙСТВИЯ
                   
                   Руководство оператора
  
  
                   2б.00152-01 34 05
 
  
 
                       Листов 16
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
  
 
                            1987
 
  
                 
 
 
                             2
 
                         00152-01 34 05
 
 
 
 
                          АННОТАЦИЯ
 
 
      Руководство предназначено для ознакомления пользователя
 
 с обслуживающей программой PHONE, которая  используется  для
 
 моделирования телефонного разговора пользователя  с  другими
 
 пользователями системы или сети.
 
      В разделе 1 описано назначение обслуживающей  программы
 
 PHONE.
 
      В разделе 2 описаны  условия  выполнения  обслуживающей
 
 программы PHONE.
 
      В разделе  3   описаны   последовательность   действий,
 
 обеспечивающая запуск,  выполнение  и  завершение  программы
 
 PHONE, приведено описание команд - их функции и форматы.
 
      В руководстве отсутствует раздел "сообщения оператору",
 
 так как не существует системных сообщений для  обслуживающей
 
 программы PHONE.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                             3
 
                         00152-01 34 05
 
 
 
 
                         СОДЕРЖАНИЕ
 
 
 
 1.  Назначение программы PHONE...........................  4
 
 
 
 2.  Условие выполнения программы PHONE...................  4
 
   
 
 3.  Выполнение программы PHONE...........................  5
 
 
 3.1.   Квалификаторы команды.............................  5
 
 3.2.   Команды обслуживающей программы PHONE.............  6
 
 3.2.1.   Команда ANSWER..................................  8
 
 3.2.2.   Команда DIAL....................................  9
 
 3.2.3.   Команда DIRECTORY...............................  9
 
 3.2.4.   Команда EXIT.................................... 10
 
 3.2.5.   Команда FACSIMILE............................... 11
 
 3.2.6.   Команда HANGUP.................................. 11
 
 3.2.7.   Команда HELP.................................... 11
 
 3.2.8.   Команда HOLD.................................... 12
 
 3.2.9.   Команда MAIL.................................... 12
 
 3.2.10.  Команда PHONE................................... 13
 
 3.2.11.  Команда REJECT.................................. 13
 
 3.2.12.  Команда UNHOLD.................................. 13
 
 3.3.   Расположение информации на экране................. 14
 
 3.4.   Текст разговора................................... 15
 
 3.5.   Организация совещания............................. 16
 
 3.6.   Использование логических имен..................... 16
 



 
 
 
                             4
 
                         00152-01 34 05
 
 
 
                1. Назначение программы PHONE
 
 
      Обслуживающая  программа   МОС   ВП   телефон   (PHONE)
 
 позволяет разговаривать с пользователями системы или  другой
 
 машины, которая  подключена  к  системе  посредством   сети.
 
 Программа предназначена для  реализации  функций  настоящего
 
 телефона, включая  общий  вызов   абонента   и   поддержание
 
 телефонного каталога.
 
 
            2. Условие выполнения программы PHONE
 
 
      Обслуживающая   программа   PHONE    используется    на
 
 видеотерминалах с прямым управлением курсором типа
 
 ВТА 2000-17 (СМ 7224) и ВТА 2000-18 (СМ 7225).
 
      Чтобы терминал указанного типа поддерживался  системой,
 
 он должен обладать характеристикой SCOPE.
 
      Кроме того, для корректного расположения информации  на
 
 экране необходимо,  чтобы  названные  терминалы  имели   тип
 
 устройства VT52,   VT100   или   VT200.    Тип    устройства
 
 устанавливается  командой  языка  DCL  SET  TERMINAL/DEV=  .
 
 Например, команда SET TER/DEV=VT52 назначает  терминалу  тип
 
 устройства VT52.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                             5
 
                         00152-01 34 05
 
 
 
                3. Выполнение программы PHONE
 
 
      Для вызова обслуживающей программы  PHONE  в  ответ  на
 
 подсказку DCL вводится следующая команда:
 
 PHONE [/квалификаторы] [команда]
 
 где команда - любая команда программы PHONE, которая  должна
 
      Быть выполнена перед запросом  обслуживающей  программы
 
      На дополнительные команды (подраздел 3.2);
 
     Квалификаторы - квалификаторы программы PHONE,
 
      Описанные в подразделе 3.1.
 
 
      3.1. Квалификаторы команды
 
 
      Квалификаторы  команды  PHONE,  приведенные  в   табл.1
 
 позволяют модифицировать возможности моделируемого телефона.
 
 
 
                                                    Таблица 1
 
                 Квалификаторы команды PHONE
 
 
 ----------------------------------------------------------
   Квалификаторы   !             Функции
 ----------------------------------------------------------
 	          !
 /SСROLL           !   при разговоре пользователя заполня-
                   ! ется видимая часть экрана. Если задан
 	          ! квалификатор /SCROLL, то при
                   ! заполнении выделенной абоненту области
 		  ! экрана текст сдвигается как целое
                   ! вверх на одну строку, и новый текст
 		  ! появляется после последней строки
                   !
 /NOSCROOL	  !   если указан квалификатор /NOSCROLL,
 		  ! то новый текст появляется на верхней
 		  ! строке части экрана, выделенной
                   ! пользователю. Квалификатор /NOSCROLL
 		  ! уменьшает время отклика на медленно
 		  ! действующих терминалах.
 		  ! по умолчанию действует квалификатор
 	 	  ! /SCROLL
 		  !
 
 
 
                             6
 
                         00152-01 34 05
 
 
                                           Продолжение табл.1
 
 
 ----------------------------------------------------------
   Kвалификаторы   !             Функции
 ----------------------------------------------------------
 	          !	
 /SWITCH_HOOK="е"  !   указывает, какой символ используется
                   ! в качестве переключателя режима.
 		  ! символ-переключатель вводится перед
 		  ! любой командой программы PHONE. Текст,
 		  ! вводимый без этого символа, считается
 		  ! частью разговора. Признаком конца
 		  ! команды может быть нажатие клавиши
 		  ! RETURN или символа-переключателя.
 		  ! в качестве символа-переключателя можно
 		  ! использовать любой символ, не
                   ! являющийся буквой или цифрой. По
 		  ! умолчанию в качестве
 		  ! символа-переключателя используется
   		  ! знак процента (%)
 		  !
 /VIEWPORT_SIZE=N  !   указывает максимальное число строк в
 		  ! видимой части экрана, включая верхнюю
 		  ! и нижнюю строки. Величина размера от
 		  ! "3" до "10" (по умолчанию 10).
 		  ! уменьшение размера области, выделяемой
 		  ! абоненту на экране, сокращает время
 		  ! отклика на медленно действующих
 		  ! терминалах. При увелечении числа
 		  ! участников беседы, выбранный размер
 		  ! области автоматически уменьшается
 		  !
 
 
 
 
      3.2. Команды обслуживающей программы PHONE
 
 
      Перед вводом любой команды программы  PHONE  необходимо
 
 предварительно   ввести   символ-переключатель.    Некоторые
 
 команды могут иметь  дополнительную  информацию.  При  вводе
 
 команд допускаются сокращения, не приводящие к противоречию.
 
      Если при работе в рамках обслуживающей программы  PHONE
 
 в данный момент   не   ведется   разговор   ни    с    одним
 
 пользователем,  то   ввод   символа-переключателя   является
 
 необязательным,  так  как  не  возникает  неоднозначности  в
 
 восприятии системой вводимых команд и текста беседы.
 
      Чтобы обновить  экран  в  течение  разговора,  вводится
 
                             7
 
                         00152-01 34 05
 
 
 
 комбинация символов CTRL/W.
 
      В командах  DIAL,  DIREсTORY,  MAIL   и   PHONE   можно
 
 в качестве параметров использовать логические  имена.  Чтобы
 
 отказаться от  трактовки  параметров  как  логических  имен,
 
 необходимо поместить перед параметром  символ  подчеркивания
 
 (_).
 
      Чтобы установить связь с абонентом, который не связан с
 
 локальным узлом,  допускается  использование  сложных   имен
 
 узлов (например, NODE1::NODE1а::).
 
      В табл.2  в  алфавитном  порядке  перечислены   команды
 
 обслуживающей  программы  PHONE  и  приведено   их   краткое
 
 описание. Более подробно команды рассмотрены в пунктах 3.2.1
 
 - 3.2.12.
 
 
 
                                                    Таблица 2
 
                        Kоманды PHONE
 
 
 ----------------------------------------------------------
     Команда   !                значения
 ----------------------------------------------------------
 	      !
 ANSWER	      ! отвечает программе PHONE при получении
 	      ! вызова
 	      !
 DIAL	      ! отправляет вызов другому пользователю
               !
 DIRECTORY     ! выводит список доступных пользователей
 	      !
 EXIT	      ! означает выход из программы PHONE
 	      !
 FAСSIMILE     ! ВКЛЮЧАЕТ В РАЗГОВОР СОДЕРЖАНИЕ ФАЙЛА
 	      !
 HANGUP	      ! отключает пользователя от абонента
 	      !
 HELP	      ! выводит информацию о программе PHONE
               !
 
 
 
 
 
 
                             8
 
                         00152-01 34 05
 
 
                                           Продолжение табл.2
 
 ----------------------------------------------------------
     Команда   !                значения
 ----------------------------------------------------------
 	      !
 HOLD	      ! блокирует указанных пользователей
 	      !
 MAIL	      ! позволяет отправить короткое почтовое
               ! сообщение другому пользователю
 	      !
 PHONE	      ! эквивалентна команде DIAL
 	      !
 REJECT        ! означает отказ на вызов другого
 	      ! пользователя
 	      !
 UNHOLD	      ! отменяет предыдущую команду HOLD
 
 
 
 
      3.2.1. Команда ANSWER
 
                    
      Команда ANSWER  используется   программой   PHONE   для
 
 положительного ответа при получении вызова.
 
      Если вызов  пришел  до  запуска  программы  PHONE,   то
 
 сообщение о вызове  выдается  на  терминал.  Если  в  момент
 
 поступления вызова   обслуживающая   программа   PHONE   уже
 
 работает, то сообщение   появляется   непосредственно    под
 
 строкой для ввода команд.
 
      Можно реагировать  на   поступивший   вызов   следующим
 
 образом:
 
      1) игнорировать вызов;
 
      2) ответить на вызов (установить связь с вызывающим);
 
      3) отказаться от ответа на вызов.
 
 
 
 
 
 
 
 
 
 
 
 
                             9
 
                         00152-01 34 05
 
 
 
      3.2.2. Команда DIAL
 
 
      Команда DIAL используется  для  того,  чтобы  направить
 
 вызов другому пользователю.
 
      Необходимо   указать   имя    пользователя,    которому
 
 направляется вызов.  Если   вызываемый   абонент   находится
 
 в другом узле,   необходимо   перед   именем    пользователя
 
 поместить имя  узла.  Допускается  использование  логических
 
 имен.
 
      Формат команды:
 
 
 DIAL [ узел :: ] имя пользователя
 
 
      По команде DIAL  на  термнал  вызываемого  пользователя
 
 подается сообщение  о  вызове.  Это  сообщение   повторяется
 
 каждые 10 секунд до тех пор, пока  не  реализуется  одна  из
 
 ситуаций:
 
      - абонент отвечает на вызов;
 
      - абонент отклоняет вызов;
 
      - с клавиатуры локального терминала введен произвольный
 
        символ, что соответствует аннулированию вызова.
 
 
     П р и м e ч а н и e . Если имя пользователя вводится без
 
 команды, то выполняется команда DIAL.
 
 
      3.2.3. Команда DIREсTORY
      
 
      По команде  DIRECTORY  выводится  список  пользователей
 
 локальной системы или других систем, включенных  в  сеть,  с
 
 которыми можно разговаривать с помощью программы PHONE.
 
      При вводе   команды   DIREсTORY   без    дополнительной
 
 информации программа  PHONE  выводит  список   пользователей
 
                             10
 
                         00152-01 34 05
 
 
 
 локальной системы. Если в  команде  DIRECTORY  задается  имя
 
 узла, то на терминал     выводится     список     абонентов,
 
 подключенных к указанному узлу.
 
      Допускается использование логических имен.
 
      По команде DIREсTORY  справочная  информация  выводится
 
 строка за строкой на терминал до тех пор, пока не  выведется
 
 весь список или с клавиатуры не  будет  введен  произвольный
 
 символ.
 
      О каждом пользователе выводится следующая информация:
 
      - имя процесса;
 
      - имя пользователя;
 
      - какой терминал используется как телефон;
 
      - состояние телефона пользователя.
 
      Формат команды:
 
 
 DIREсTORY [ узел [::] ]
 
 
      3.2.4. Команда EXIT
 
 
      Команда EXIT - стандартная команда МОС ВП для выхода из
 
 обслуживающей программы. При вводе  этой  команды  программа
 
 PHONE автоматически  выполняет  команду   HANGUP   и   затем
 
 передает управление DCL.
 
      Ввод CTRL/Z в командной строке,  когда  нет  разговора,
 
 эквивалентно команде EXIT. Ввод CTRL/Z в  течение  разговора
 
 эквивалентно вводу команды HANGUP.
 
      Формат команды:
 
 
 EXIT
 
 
 
 
 
                             11
 
                         00152-01 34 05
 
 
 
      3.2.5. Команда FACSIMILE
 
 
      Команда FACSIMILE   позволяет    включить    содержание
 
 указанного файла в разговор. Она посылает  содержание  этого
 
 файла всем участникам текущего телефонного разговора.
 
      Программа PHONE передает содержимое указанного файла до
 
 тех пор, пока  не  достигнет  метки  конца   файла   или   с
 
 клавиатуры не будет введен произвольный символ.
 
      Формат команды:
 
 
 FACSIMILE спецификация_файла
 
 
      3.2.6. Команда HANGUP
 
 
      Команда HANGUP   используется   для    отключения    от
 
 абонентов, участвующих в разговоре. При вводе команды HANGUP
 
 пользователь остается в рамках программы PHONE.
 
      Ввод CTRL/Z  во  время  разговора  эквивалентен   вводу
 
 команды HANGUP,  а  при  отсутствии  разговора  эквивалентно
 
 вводу команды EXIT.
 
      Формат команды:
 
 
 HANGUP
 
 
      3.2.7. Команда HELP
 
 
      Команда HELP   позволяет   получить    информацию    об
 
 использовании обслуживающей программы PHONE.  Для  получения
 
 общей информации о программе PHONE,  с  клавиатуры  вводится
 
 команда HELP.
 
      Для получения более детальной информации о командах или
 
 темах используется  команда  HELP  с  указанием   темы   или
 
 команды.
 
                             12
 
                         00152-01 34 05
 
 
 
      Формат команды:
 
 
 HELP [тема]
 
 
      Требуемая информация выводится на терминал до тех  пор,
 
 пока не выведется вся информация по избранной  теме  или  на
 
 клавиатуре не будет введен какой-либо символ.
 
 
      3.2.8. Команда HOLD
 
 
      Когда введена команда HOLD,  каждый,  кто  находится  в
 
 состоянии разговора помещается в состояние "отключено".
 
      Каждый пользователь информируется, что  помещен  в  это
 
 состояние.
 
      PHONE позволяет  пользователю  пока  он   находится   в
 
 состоянии "отключено" подключать других пользователей.
 
      Формат команды:
 
 
 HOLD
 
 
      3.2.9. Команда MAIL
 
 
      Команда MAIL позволяет послать краткое сообщение другим
 
 пользователям. Например, если пользователь пытается  вызвать
 
 абонента, которого  нет,  то  он  может  оставить  сообщение
 
 о своем вызове.
 
      В команде MAIL необходимо задать два параметра:
 
      1) имя пользователя, которому отправляется сообщение;
 
      2) краткое сообщение, заключенное в кавычки.
 
      Об'ем сообщения не должен превышать одной строки.
 
      Формат команды:
 
 
 MAIL [узел ::] имя_пользователя "сообщение"
 
                             13
 
                         00152-01 34 05
 
 
 
      Допускается  использование  логического  имени   вместо
 
 имени пользователя.
 
 
      3.2.10. Команда PHONE
 
 
      Команда PHONE  является  синонимом  команды  DIAL.  Обе
 
 команды являются взаимозаменяемыми.
 
      Формат команды:
 
 
 PHONE [узел ::] имя_пользователя
 
 
      3.2.11. Команда REJECT
 
 
      Команда REJECT  используется  для  отказа   от   вызова
 
 другого пользователя. Пользователь в  этом  случае  получает
 
 сообщение на свой терминал о  том,  что  его  вызов  не  был
 
 принят.
 
      Эта команда  воспринимает  команду  EXIT.  Если  выдана
 
 команда EXIT,  то  PHONE  осуществляет  команду  ехIт  после
 
 REJECT. Это позволяет использовать команду МОС  ВП,  которая
 
 может отключить вызов и без вмешательства пользователя.
 
      Формат команды:
 
 
 REJECT [EXIT]
 
 
      3.2.12. Команда UNHOLD
 
 
      Команда UNHOLD отменяет  предшествующую  команду  HOLD.
 
 Пользователь, который был вызван  на  связь  после  введения
 
 последней команды  HOLD   отключается   от   сеанса   связи.
 
 Пользователь,  который  был  вызван  на  связь  до  введения
 
 последней команды  HOLD,  остается  подключенным  к   сеансу
 
 связи.
 
                             14
 
                         00152-01 34 05
 
 
 
      Формат команды:
 
 
 UNHOLD
 
 
      3.3. Расположение информации на экране
 
 
      Каждому участнику телефонного разговора выделяется своя
 
 область на экране    дисплея.    Программа    PHONE    может
 
 одновременно выделить   области   не   более    чем    шести
 
 пользователям.  Область  пользователя  содержит  информацию,
 
 относящуюся к данному пользователю: имя пользователя,  текст
 
 разговора, указание  его  состояния.  По   этой   информации
 
 становится ясно, кто участвует в сеансе разговора.
 
      Формат экранного вывода  программы  PHONE  приведен  на
 
 рисунке.
 
 
 
           Формат экранного вывода программы PHONE
 
 
  -------------------------------------------------------
 !  ---------------------------------------------------  !
 !							!
 !	       	 -----------------			!
 !		! программа PHONE ! 11-SEP-1987         !
 !		 -----------------              	!
 !							!
 !							!	
 !       %( командная строка )				!
 !							!
 !							!
 !  ---------------------------------------------------  !
 !							!
 !		   TAURUS::SMITн			!
 !							!
 !							!
 !							!
 !  ---------------------------------------------------  !
 !							!
 !		   GERMINI::RETERS			!
 !							!
 !							!
 !							!
 !  ---------------------------------------------------	!
  -------------------------------------------------------
 
                             15
 
                         00152-01 34 05
 
 
 
      3.4. Текст разговора
 
 
      Большая часть символов, которые пользователь вводит  во
 
 время разговора, считается  частью  разговора  и  посылается
 
 каждому участвующему   в   сеансе    абоненту.    Исключение
 
 составляет символ-переключатель,   который   сообщает,   что
 
 пользователь хочет ввести команду.
 
      Все стандартные  символы  аSсII  просто  выводятся   на
 
 экран.
 
      Некоторые  управляющие  символы,  которые  могут   быть
 
 использованы для форматирования, описаны в табл.3.
 
 
 
                                                    Таблица 3
 
     Управляющие символы, используемые для форматирования
 
 
 ----------------------------------------------------------
    Символ   !            Функции форматирования
 -----------------------------------------------------------
             !
 DELETE      ! уничтожает предшествующий символ
             !
 LINEFEED    ! уничтожает предшествующее слово
 	    !
 RETURN      ! переход на новую строку
 	    !
 CTRL/G	    ! дает звуковой сигнал пользователю и всем
 	    ! участвующим в разговоре
 	    !
 CTRL/L	    ! очищает экран и отправителя и получателя
 	    !
 CTRL/Q      ! разрешает нормальный вывод символов
 	    !
 CTRL/S	    ! приостанавливает экран в текущем состоянии,
 	    ! вводимые при этом символы временно не
             ! выводятся на экран
 	    !
 CTRL/U	    ! очищает текущую строку
 	    !
 CTRL/W	    ! обновляет экран
 	    !
 CTRL/Z	    ! эквивалентен команде HANGUP в течении
 	    ! разговора и эквивалентен команде EXIT, когда
 	    ! разговор прекращен
 	     
 
                            16
 
                         00152-01 34 05
 
 
 
      3.5. Организация совещания
 
 
      При организации совещания  один  из  участников  должен
 
 действовать как   оператор.   Этот    пользователь    должен
 
 установить связь путем вызова других участников  и  ожидания
 
 ответа. Включать  в  беседу  новых  участников  могут   лишь
 
 пользователи, участвующие  в  совещании,  используя  команды
 
 DIAL или PHONE. При  вызове  абонента,  уже  участвующего  в
 
 совещании, связь  будет  осуществляться  лишь  с   вызванным
 
 абонентом.
 
 
      3.6. Использование логических имен
 
 
      Команды DIAL, DIRECTORY, MAIL  допускают  использование
 
 логических имен. Знак, предупреждающий, что логические имена
 
 не используются  в  команде  -  символ  подчеркивания   (_),
 
 стоящий перед параметром.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                             
   
                       - 17K -  
                        
                    00152-01 34 05  
                                                      
   ------------------------------------------------------------
   I                                                          I
   I                  Лист регистрации изменений              I
   I                                                          I
   I----------------------------------------------------------I
   IНомера листов (страниц)IВсего IN     IВходящий IПодп.IДатаI
   I-----------------------IлистовIдоку- IN сопро- I     I    I
   IИ IИз- IЗа- IНо- IАнну-I(стра-Iмента Iводитель-I     I    I
   Iз Iме- Iме- Iвых Iлиро-Iниц   I      Iного до- I     I    I
   Iм Iнен-Iнен-I    Iван- Iв до- I      Iкум. и   I     I    I
   I. Iных Iных I    Iных  Iкум.  I      Iдата     I     I    I
   I----------------------------------------------------------I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I
   I  I    I    I    I     I      I      I         I     I    I

                        
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!