NN31545.1302
NOTA
1302-^ juli i98i
Instituut voor Cultuurtechniek en Waterhuishouding
Wageningen
ASPECTEN VAN INFORMATIEVERWERKING
27
TOEPASSING EN GEBRUIK VAN LIBRARIES OP EEN CYBER COMPUTER
J.R. Maassen en J.H. Vink
ASPECTEN VAN INFORMATIEVERWERKING
27
De nota's handelende over Aspecten van Informatieverwerking bevatten
inlichtingen over de ontwikkeling van de informatieverwerking binnen
het Instituut. Naast meer concluderende en toelichtende beschouwingen
zal aandacht worden besteed aan het gebruik van programma's en
programmapakketten en zullen zakelijke inlichtingen over praktijkervaring
met en toepassing van de informatieverwerking worden gegeven
I N H O U D
Biz.
1. INLEIDING 1
2. HET IN WERKING STELLEN VAN EEN LIBRARY 1
3. HET SYSTEEMPROGRAMMA EDITLIB 3
4. HET NOS COMMANDO EDITLIB 4
5. EDITLIB OPDRACHTEN 5
6. NAAMGEBRUIK 8
7. ALFABETISCH GERANGSCHIKTE EDITLIB OPDRACHTEN 9
ADD 10
CONTENT. 12
DELETE 13
ENDRUN 14
FINISH 15
LIBRARY 16
LISTLIB 17
RANTOSEQ 18
REPLACE 19
Biz.
REFERENTIES 29
Voorbeeld 1. Het aanmaken van een library bestaande uit
subroutines >
2. Het aanmaken van een library bestaande uit
zelfstandige programma's 40
3. Het aan een library toevoegen van programma's
uit een andere library 49
4. Het vervangen van programma's in een library 55
5. Het verwijderen van programma's uit een library 61
6. Het copiëren van libraries in random format 67
1. INLEIDING
In deze nota in de reeks Aspecten van Informatieverwerking zal
worden ingegaan op de toepassingsmogelijkheden van
gebruikers-libra-ries.
Een gebruikers-library is een bibliotheek van vertaalde
program-ma's of subroutines die een gebruiker vanuit zijn eigen programma
kan aanroepen.
Van libraries kan nuttig gebruik worden gemaakt wanneer men over
een programmapakket beschikt. In een library kunnen vertaalde
pro-gramma's of subroutines worden opgenomen, die allemaal iets te maken
hebben met een bepaald onderwerp. Deze kunnen dan op een enkele file
worden bewaard.
De hier besproken mogelijkheden hebben betrekking op het gebruik
van libraries op CYBER-computers, zoals van IWIS-TNO te *s-Gravenhage.
De in deze nota gebruikte programma's en subroutines dienen ter
ver-duidelijking van de afzonderlijke mogelijkheden.
2. HET IN WERKING STELLEN VAN EEN LIBRARY
puter zoekt vervolgens het betreffende programma op in de library en
voert het uit.
Voorbeeld
ATTACH,PROGLIB,PROGRÄMLIBRARY,ID=JRM - aanroepen van de library
LIBRARY,PROGLIB - laden van de library
FACUL - uitvoeren van het
program-ma FACUL
Wanneer men een subroutine uit een library wil gebruiken moet de
subroutine in het zelfstandige programma worden aangeroepen. De
com-puter zoekt vervolgens de betreffende subroutine op in de library en
behandelt de subroutine verder als ware het een subroutine van het
eigen (hoofd)-programma.
Voorbeeld
ATTACH,PROG,PROGRAMMA ,ID=VIN - aanroepen van het programma
ATTACH,SUBLIB,SUBLIBICW,ID=VIN - aanroepen van de library
LIBRARY,SUBLIB - laden van de library
FTN,I=PROG - vertalen van het
hoofdpro-gramma
LGO - uitvoeren van het programma
Stel, er is een library waarin de subroutine FACUL voorkomt. Deze
subroutine betekent de faculteit van een op te geven getal. In het
programma wordt deze subroutine als volgt in werking gesteld:
PROGRAM REKEN(INPUT,OUTPUT)
CALL FACUL(inp,out)
PRINT *,out
3. HET SYSTEEMPROGRAMMA EDITLIB
Het systeemprogramma EDITLIB verzorgt het hele gebeuren rond
gebruikers-libraries.
Een gebruikers-library, aangemaakt door EDITLIB, bevat:
- programma's en/of subroutines in ASSEMBLER-taal
- tabellen, betrekking hebbend op entry points
external references
programmanummers
programmanamen
Een gebruikers-library mag maximaal 2047 programma's,
2047 entry points
en 2047 external references
bevatten.
In een programma mogen maximaal 124 entry points
en 124 external references
voorkomen.
Een library kan zowel op disc als op tape worden opgeslagen.
Wanneer een library op tape wordt opgeslagen, komen de tabellen voor
de programma's te staan:
I
I
I I I
I tabel 1 I tabel 2 I tabel ... I programma I
j J .__! _ 1 !_
De opslag is in sequentieel format.
4. HET NOS COMMANDO EDITLIB
Aangezien EDITLIB niet interactief werkt, moeten alle
manipula-ties met een gebruikers-library worden uitgevoerd in een batch-job.
Het EDITLIB-commando komt hierbij voor in het besturings-record van
de job. Het EDITLIB-commando ziet er als volgt uit:
EDITLIB(user, I=lfnl,L=lfn2).
Hierin is user - een naam, maximaal 7 letters of cijfers, beginnend
met een letter, die de library onderscheidt van
systeemlibraries. Default is USER;
lfnl - logical file naam, maximaal 7 letters of cijfers,
beginnend met een letter. Deze file bevat
EDITLIB--opdrachten. Default is INPUT, terwijl I staat voor
Input ;
lfn2 - logical file naam, maximaal 7 letters of cijfers,
beginnend met een letter. Op deze file wordt output
weggeschreven. Default is OUTPUT, terwijl L staat
voor List.
Voorbeeld: BIJOB.
ACCOUNT,in,projcode,cd.
ATTACH,LIB,ID=ITL.
FTN,1=PR0G,B=BINPR0G,SYSEDIT.
EDITLIB(USER).
EXTEND,LIB.
eor
FORTRAN programma
eor
EDITLIB-opdrachten die het vertaalde programma
toe-voegen aan library LIB
5. EDITLIB OPDRACHTEN
Elke opdracht die EDITLIB moet uitvoeren, moet in de eerste 72
posities van een ponskaart of regel van het beeldscherm worden
gespe-cificeerd. Spaties mogen naar willekeur worden gebruikt. Zij worden
door EDITLIB verwijderd, tenzij het om een stukje commentaar gaat.
Het format van de EDITLIB-opdrachten is gelijk aan dat van NOS
opdrachten:
KEYWORD. of KEYWORD(PARAMETER LIST).
Een parameter list na een keyword moet altijd tussen haakjes
staan. Parameters met een optioneel karakter mogen in willekeurige
volgorde voorkomen en hebben het volgende format:
PARAMETER = waarde
Alle andere parameters moeten in een vaste volgorde voorkomen,
eventueel gevolgd door niet verplichte parameters.
In het kort wordt hier een overzicht gegeven van toegestane
EDITLIB-opdrachten.
! 1 1
I Opdracht I Betekenis I
x
1 — — -, 1
I LIBRARY(libname,——;;—) I Definieert een nieuw aan te maken I
I I library(NEW) of een te wijzigen I
I I library(OLD) met de naam libname I
I I I
I FINISH. I Beëindigt manipulaties met de I
I I onderhavige library I
I I I
I ENDRUN. I Beëindigt het uitvoeren van I
I I EDITLIB opdrachten I
I
I
I
I ADD I Voegt een nieuw programma toe aan I
I I een library I
I I I
I REPLACE I Vervangt een programma in een I
I I bestaande library I
I I I
I DELETE I Verwijdert een programma uit een I
I I library I
I I I
I SETAL I Wijzigt het acces-level van een I
I I programma I
I I I
I SETFL I Wijzigt de field-length van een I
I I programma I
I I I
I SETFLO I Plaatst een override-bit ten I
I I behoeve van INTERCOM I
I I I
I LISTLIB I Geeft informatie omtrent een I
I I programma in een library I
I I I
I REWIND I Zet pointer op beginpunt van file I
CONTENT
SKIPF
SKIPB
RANTOSEQ
SEQTORAN
Zie LISTLIB
Skipt files of records
vooruit
I
I
I
I
I
Skipt files of records terugl
I
Voegt commentaar tussen
output
Maakt van een random file
een sequential file
Maakt van een sequential
file een random file
6. NAAMGEBRUIK
Namen van programma's en/of subroutines mogen niet langer zijn
dan 7 characters. Ieder door het systeem geaccepteerd character mag
worden gebruikt.
Als er in de naam characters voorkomen die als scheidingsteken
worden gebruikt, moet de gehele naam tussen dollartekens ($) worden
geplaatst.
Toegestane scheidingstekens zijn:
$
(
)
- + = . , / blank
Wil men een dollarteken in de naam opnemen, dan moet dit teken
worden voorafgegaan door nog een dollarteken.
Een sterretje kan programmanamen vervangen, EDITLIB behandelt
dan alle programma's van de desbetreffende file.
Als men manipulaties met een reeks aaneenvolgende programma's
wil uitvoeren, is het niet noodzakelijk elk programma afzonderlijk
te noemen. Men kan volstaan met het vermelden van het eerste
ma gevolgd door een plusteken (+) en de naam van het laatste
program-ma van de reeks. B+D in de reeks A,B,C,D,E,F betekent dus B, C en D.
Omgekeerd is het mogelijk om van een reeks programmanamen een
aaneengesloten reeks niet bij de manipulaties te betrekken.
B-D in de reeks A,B,C,D,E,F betekent dus dat alleen A, E en F worden
verwerkt.
Enkele voor EDITLIB acceptabele namen zijn:
Opgegeven naam Wordt door EDITLIB verwerkt tot
PR0GJ2 PR0G12
$PR0G12$$$ PR0G12$
$1-0$ I-O
AA BB AABB
$AA BB$ AA BB
3AB 3AB
Namen van files mogen nooit beginnen met ZZZZZ omdat deze
7. ALFABETISCH GERANGSCHIKTE EDITLIB OPDRACHTEN
In het hierna volgende worden alle EDITLIB-commando's in
alfabe-tische volgorde behandeld.
Programma toevoegen aan een library
0
ADD(prog,lfn,AL=level,FL=fl,FLO={ },LIB)
1
Hierin zijn de parameters prog en lfn verplicht, alle andere
para-meters gunnen naar keuze worden toegepast.
prog - Naam van aan de library toe te voegen programma c.q.
reeks van programma's.
lfn - Local file, die de vertaalde programma's bevat.
De naam bestaat uit maximaal 7 letters en/of cijfers,
beginnend met een letter.
AL=level - Acces Level, bestaande uit een oktaal getal.. van
maxi-maal 4 cijfers.
AL geeft aan of een INTERCOM-gebruiker een zelfstandig
hoofdprogramma uit een library mag gebruiken:
acces level is even - programma kan niet worden gebruikt
acces level is oneven - programma kan wel worden gebruikt
Default waarde van AL is 0, wat als een even getal wordt
beschouwd.
FL=fl - Field Length, nodig voor het laden en uitvoeren van het
programma(0 - 377777 oktaal).
Als F1=0 wordt de laatst opgegeven field length gebruikt.
Default waarde van FL is 0.
0
FL0={ } - Field Length Override bit.
1 FLO = 1 overschrijft de laatste opgegeven field length.
FLO = 0 overschrijft de laatst opgegeven field length niet.
Default waarde van FLO is 0.
LIB - Geeft aan dat de parameter lfn een bestaande library is.
Indien men AL, FL, of FLO waarden in een nieuwe library tabel wil
opnemen moeten de waarden expliciet worden opgegeven in de EDITLIB
opdracht. Dit geldt ook wanneer programma's aan de library worden
toegevoegd, die reeds onderdeel zijn van een andere
gebruikers-library.
Wil men de waarden van deze parameters in een bestaande library
veranderen dan moeten de opdrachten SETAL, SETFL en SETFLO worden
gebruikt.
Voorbeelden:
-I
I
-I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
Van file VEE worden alle programma's van-I
af de positie van de pointer t/m program-I
ma KOE aan de library toegevoegd. I
I
I
I
I
I
I
OPDRACHT
RESULTAAT
ADD(*,HUIS)
ADD(BOOM,BOS,FL=12300)
ADD(STOOM-IJS,WATER)
ADD(*+KOE,VEE)
ADD(GROEN/GEEL,KLEUR)
ADD(COBOL,TALEN,LIB)
Alle programma's vanaf de positie van de
pointer tot de end-of-file van file HUIS
worden aan de library toegevoegd.
In file BOS wordt programma BOOM
opge-zocht. Er wordt een field length van
12300 gereserveerd voor het draaien van
programma BOOM.
Alle programma's van file WATER, behalve
de programma's STOOM t/m IJS worden aan
de library toegevoegd.
Van file KLEUR worden de programma's
GROEN en GEEL aan de library toegevoegd.
Vanaf de bestaande library TALEN wordt
programma COBOL aan de onderhavige
Listen van programma's
CONTENT(prog,Ifn)
prog - Naam van te listen programma of reeks van programma's,
lfn - Local file naam waarop de te listen programma's staan.
Voorbeelden:
! — ! !
I OPDRACHT I RESULTAAT I
!
1
. T-];
I
I I
I CONTENT(BLAUW,KLEUR) I Van file KLEUR wordt programma BLAUW I
I I gelist. I
I : I I
I CONTENT(ROOD+GEEL,KLEUR) I Van file KLEUR worden de programma's I
I I ROOD t/m GEEL gelist. I
I
I I
! 1 _ _ _ !
Zie ook bij LISTLIB.
Verwijderen van programma's
DELETE(prog)
I prog - Naam van te verwijderen programma of reeks van programma's.
Voorbeelden:
-I-I
-I
I
-I
I
I
I
I
I
I
I
I
I
-I
OPDRACHT
RESULTAAT
DELETE(VOORN)
DELETE(*+HARING-SNOEK)
Programma VOORN wordt uit de library
verwijderd.
Alle programma's vanaf de positie van
de pointer t/m programma HARING,
behalve programma SNOEK, worden uit de
Het beëindigen van EDITLIB manipulaties
ENDRUN.
ENDRUN beëindigt de uitvoering van library manipulaties.
In de meeste gevallen zal het dus de laatste EDITLIB opdracht zijn.
Het is echter mogelijk de ENDRUN eerder in de reeks opdrachten te
plaatsen; dit heeft tot gevolg dat de daarna komende opdrachten niet
worden uitgevoerd, wel wordt er door EDITLIB gecontroleerd of de
opdrachten correct zijn. Wanneer men in een EDITLIB job als eerste
opdracht een ENDRUN geeft dan vindt er totaal geen executie plaats
maar is het geheel een testrun.
Het beëindigen van file manipulaties
FINISH.
Met de opdracht FINISH wordt aangegeven dat er geen verdere
ver-anderingen in de library worden aangebracht.
Wel kunnen dan nog programma listings worden verkregen en file
formats worden veranderd.
Definiëren van een library
LIBRARY (libname,-—--)
new
libname - Naam van de library waarmee gewerkt zal gaan worden.
old - Wordt gebruikt wanneer de library reeds bestaat.
new - Wordt gebruikt wanneer er een nieuwe library wordt
gecreëerd.
De plaats van de LIBRARY opdracht in een EDITLIB job is voor de
eerste opdracht die de inhoud van een library verandert.
Commentaar en file-format veranderende opdrachten mogen aan de
LIBRARY opdracht vooraf gaan.
Elke LIBRARY opdracht moet later in de job gevolgd worden door een
FINISH.
Listen van library files
LISTLIB(prog,lfn)
prog - Naam van te listen programma of reeks van programma's'
lfn - Naam van de file waar de te listen programma's op staan.
LISTLIB kan alleen files in library format listen, CONTENT heeft deze
beperking niet.
Voorbeelden:
I
1
_ !
I OPDRACHT I RESULTAAT I
! , ! „
T
!
i i i
I LISTLIB(PAARD,BEEST) I Van file BEEST wordt programma PAARD I
I I gelist. I
I
I I
I LISTLIB(MEI-JUNI,JAAR) I Van file JAAR worden alle programma's I
I I behalve MEI t/m JUNI gelist. I
I I I
Het converteren van random format naar sequentieel format.
Library files kunnen alleen naar tape gecopieerd worden indien zij
sequentieel zijn.
RANTOSEQ maakt van een random library file een sequentiële library
file die dezelfde programma's bevat.
RANTOSEQ(rlfn.slfn)
rlfn - File naam van de random library file,
slfn - Fila naam van de sequentiële library file.
Vervangen van programma's in een library
0
REPLACE(prog,lfn,AL=level,FL=fl,FLO={ } ,LIB)
1
prog - Naam van het te vervangen programma c.q. de reeks te
vervangen programma's. Oude programma's met dezelfde
naam als de nieuwe programma's worden verwijderd
voor-dat de nieuwe programma's erin gezet worden. Wanneer
nieuwe programma's niet dezelfde naam hebben als de
oude programma's, volgt een boodschap en worden de
nieuwe programma's alsnog in de library gezet. De oude
programma's worden dan niet verwijderd.
lfn - Naam van de file waarop de nieuwe programma's staan.
AL^level - Acces Level, bestaande uit een oktaal getal van
maxi-maal 4 cijfers.
AL geeft aan of een INTERCOM-gebruiker een zelfstandig
hoofdprogramma uit een library mag gebruiken:
acces level is even: programma mag niet worden gebruikt
acces level is oneven: programma mag wel worden gebruikt
Default waarde van AL is 0, wat als een even getal wordt
beschouwd.
FL^fl - Field Length, nodig voor het laden en uitvoeren van het
programma(0 - 377777 oktaal).
Als F1=0 wordt de laatst opgegeven field length gebruikt.
Default waarde van FL is 0, de eerste maal wordt dan de
fieid length genomen zoals deze in de jybkaarL voorkomt.
Field Length Override bit.
FLO = 1 overschrijft de laatst opgegeven field length.
FLO = 0 overschrijft dé laatst opgegeven field length niet.
Default waarde van FLO is 0.
LIB - Geeft aan dat de parameter lfn een bestaande library is.
FL0={J}
Voorbeelden:
I-I
I-I
I
I
I
I
I
I
I
I
I
I
I
I
I
I-
-I-I
-I
I
-I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
-I
OPDRACHT
RESULTAAT
REPLACE(IJ S,WATER,FLO=1)
REPLACE(LOGAR,FUNCTIE,LIB)
REPLACE(GROEN/GEEL,KLEUR)
Het bestaande programma IJS wordt verwijderd,
waarna van file WATER het nieuwe programma IJS
aan de library wordt toegevoegd. Parameter FLO
krijgt hierbij de waarde 1, de andere parameters
krijgen de default waarde.
Het bestaande programma LOGAR wordt verwijderd,
waarna programma LOGAR van de library FUNCTIE
wordt toegevoegd.
De bestaande programma's GROEN en GEEL worden
verwijderd, waarna de nieuwe programma's GROEN
GEEL van file KLEUR worden toegevoegd.
en
Rewinden van files
REWIND(lfn) of REWIND(lfnl/lfn2/.../lfnx)
I
Het converteren van sequentieel format naar random format
Om library files op'dise te kunnen bewaren is het nodig dat ze random
zijn.
SEQTOTAN maakt van een sequentiële library file een random library
file die dezelfde programma's bevat.
SEQTORAN(slfn,rlfn)
| slfn - File naam van de sequentiële library file.
I
| rlfn - File naam van de random library file.
Veranderen van acces level
SETAL(prog,level)
prog - Naam van programma of reeks van programma's.
Veranderen van field length
SETFL(prog.fl)
prog - Naam van programma of reeks van programma's.
fl - Nieuwe field length (Q-377777 oktaal).
Aanbrengen van field length override bit ten behoeve van INTERCOM
SETFLO(prog,{°} )
prog - Naam van programma of reeks van programma's.
- Er wordt geen override bit geplaatst (default),
Het terug skippen van records en files
SKIPB laat de pointer in de library een of meer records c.q. files
terug skippen. De pointer gaat hierbij naar het begin van het record
of van de file. Indien er bij de skip opdracht een aantal is
opgege-ven, wordt bij een begin-of-information (boi) of een end-of
informa-tion (eoi) gestopt met skippen. Wanneer bij de skip opdracht een
naam is opgegeven wordt zonodig de gehele file doorzocht in de
opge-geven richting. Het opopge-geven van een naam is alleen mogelijk bij
sequentiële files.
1. Het terug skippen van records.
SKIPB({
n
},lfn)
M
p r o g
J
'
n - Aantal terug te skippen records (>0).
prog - Naam van het programma waar naar toe geskipt wordt.
lfn - File waarop het programma staat.
2. Het terug skippen van files.
SKIPB (n, lfn, F)
n - Aantal terug te skippen files (>0).
lfn - File waar naar toe geskipt wordt.
F - Aanduiding dat er files geskipt moeten worden.
Het vooruit skippen van records en files
SKIPF laat de pointer in de library een of meer records c.q. files
vooruit skippen. De pointer gaat hierbij naar het begin van het
record of van de file. Indien er bij de skip opdracht een aantal is
opgegeven, wordt bij een begin^of-information (boi) of een
end-of-information (eoi) gestopt met skippen. Wanneer bij de skip opdracht
een naam is opgegeven wordt zonodig de gehele file doorzocht in de
opgegeven richting. Het opgeven van een naam is alleen mogelijk bij
sequentiële files.
1. Het vooruit skippen van records.
SKIPF({ " },lfn)
l
prog
J
n - Aantal vooruit te skippen records (>0)
prog - Naam van het programma waar naar toe geskipt wordt.
lfn - File waarop het programma staat.
2. Het vooruit skippen van files.
SKIPF(n,lfn,F)
8, ENKELE SAMENVATTENDE OPMERKINGEN
- Een library wordt aangemaakt door de library te definiëren in een
LIBRARY opdracht, gevolgd door manipulatie opdrachten,afgesloten
met een FINISH opdracht. Binnen 1 EDITLIB deck mogen meer dan 1 set
opdrachten voorkomen die beginnen met een LIBRARY opdracht en
eindigen met een FINISH opdracht. Na de laatste FINISH opdracht
moet een ENDRUN opdracht voorkomen. Indien geen ENDRUN opdracht
voorkomt wordt door EDITLIB een ENDRUN geplaatst na de laatste
FINISH.
- Bestaande libraries in random format worden gewijzigd door de ADD,
REPLACE en DELETE opdrachten. De opdrachten SETAL, SFTFL en SETFLO
wijzigen in bestaande libraries de tabel met entry points van de
programma's. De plaats van al deze opdrachten is tussen een LIBRARY
en een FINISH opdracht.
- Het format van een library kan gewijzigd worden met de opdrachten
RANTOSEQ en SEQTQRAN.
- EDITLIB zet alle files, behalve INPUT, op hun beginpunt voordat
met de eerste opdracht wordt begonnen. Wanneer random library
files worden beschreven worden zij na de laatste opdracht weer op
hun beginpunt gezet. Bij sequentiële library files staat, na de
laatste opdracht, de pointer na het laatst behandelde programma in
de library.
- Informatie over programma's of library files wordt verkregen door
middel van de CONTENT en LISTLIB opdrachten. Deze informatie bevat:
programma naam
datum en tijd van compilatie
operating system van de computer
entry points
external references
AL en FL waarden
programma lengte (oktaal)
type programma: absolute of relocatable
REFERENTIES
CONTROL DATA, NOS/BE Version 1, Reference Manual
Voorbeeld 1. Het aanmaken van een library bestaande uit subroutines
De afzonderlijke onderdelen zijn:
1. batchjob met input voor EDITLIB
2. subroutines
3. output door EDITLIB
M W
«
«
«
M«
4 »*
*
*
*
*
*
*
*
* t»*
»
*
* t*
*
*
*
M*
»
*
*
*
*
*
M « M
>•
ce
tce
A H * - 1z
Ui Ulz
•Œ 5Z
UJ Ü •Xx:
z
< i i«
( 0 Ulz
f - l 1— 3o
ce
a
3en
i-M 4»
»
»
*
*
*
*
•*
*
4»*
*
«
**
w
«
»
»
M>»
*
*
«
« « • 4**
«
*
»
*
M«
*
*
to (M•>
03•
z
• • 4>
IIo
1-4•
Z » H:>
»
Q • » •*
Z H 4>
II O • • 4•
z
» H:>
u
a
M .•
1 -f - 4a
Ul CO>
co
• • CD O _ l Z*
1 -H 4a
Ul CO>-CO • •
Ce
O 3 Z•
t -» - 4a
Ul t o>-co
»•
u
«tu.
z
*
t -Wa
Ulco
>-co
»
z
<L 1— Z'~
»
CNo0 -II 0 .
ce
•>z
H 4>
IIa
• - i •.UI CD
t
o .
m
o
CD Oo
a
ui
z
UIo
co
a * 11") I -CD UI CD-^
ir>*
o
T-tu.
«
II a M•
O *Hu.
z
<r
:>
UI £ UIca
A UI Xa
z
UIie
UI CC UI CD H-M 3 UI £ Xt-r-t CC
<r
CD O - 1z
UIu.
o
o
z
en
<r ui cca
UIz
1-4 U. UIo
o
O UI a-l z a *u.
UIo
o
CMœ
CM CM «H in en co co u. u. u. u. ui ui ui uicc cc cc cc
T - * M b-CL Oo
m
I S •vm
rs
« Io
cc
<t
CD O - i UIz
a - l K 3 Occ
co
2en
3 CJ a - lz
o
£ £o
u
. a »o
o
a - l a .r*>
w UI i -Mce
3 O-«
O CL.z
UI UIcc
UIo
>
*
a . X w t -• Ixr
cc
o
Lu Oo
X*^
»*
am
wo
<c
Uicc
o
CÓ f-* a - l Oo
o
o
o
o
•
o
•
1 -_ l•
X-^
u.
a - l * • * X-rf-o
a - l 13o
_J < I It CDo
_ l X 1 -Cf •X CD CD O O - 1 _ l X • UIx ca
m *•* a a - l O X aH a-l - ' S M ~ — t -Ul 1 h- £ • H CCcc o
3 U. a l Oz
—*
3 h-_ l a * 3 a a * a CM O X a-l a-I a V M — ^H-ui <r
t - £ a-l CC CC o 3 U . CM O 3 h-Z<x
*-*
M O i H a t o^
o
-^
a - l <C Na"H-•x
£<r cc
UI occ u.
1«) O O a H O 1-o
CD*-*
- 1 X T H a CS UI a 3 t -Z •X—'
u.
w
z
cc
3(—
UIcc
ca
z
u iO
_l
UIz
3 O CCco
en
ii cc CL. <X UI CJz
Uicc
o
ca
£
en
en
ui
cc
ui M u. Ci ui ccui
z -H
z
o
«Xo
o
_ J Uicc
en
UI(-M CC 3 CO UI
u
z
UI CC UIu.
UIcc
in
CDcc
o
a-l>-cc
<r
cc
ca
*-i _1 «Hcn
UIo
z
UIcc
UIu.
UIcc
UIz
- Ju.
UIa
co <r
•r
l i l CM T-l M * - lin
a-l •O T - I CO a-l 0> a-l 'CD Z UI _ l ~> w aH UI « £ • iz
en 3
aH aalca
o
icn
cc
UIca
£ UI £ Ui CL.>
UI CDui ca
ui _i _i ca ui
t - <t <i o x
Z UI UI £ w a-l CC CC £cn cc
t- iz o
a-l O O - I 3 CD t- 3 O Z U - I <X an X X CCz
UI al « rsa-l
IScc
•I->
o m -o
w
ui
cn o.
ui <ix:
H-<i
z
UI UI Cv. >- - I i - <r ui cco
o
h- h- h-t-rc x:
E£
u. u. u. u.
CDz
UI UIca
• I
o
• I
z
cc
UI O w r i m a- O O O O O Z a H a - l a - l a - l a H a Ö Nz
n n n <r o o
CM«r m rs £
£ Ou
32
IS 1
o
co
UIz
CO CM O V)a
<c
UI CCco
*-4 If) CDz
u.
T-t II h-Cw O Ow
rv _ i UI 4 -CC O 3 UI 3 » • *o
o
Z
1-4_l
• I
4-Ul
p
u.
UI 4 - 1 H-4-4 CO O Cl.z
UI UIcc
UIo
•>•
•>
X Xo
T H O 1— O O r**
*-•
X • ^ CCo
3 X • • X •*•• • Ho
Irt O 4 - 4u.
II*
Ou.
z
«X=>
- J UIh-cc
o
3 UIca
•
••
Xz
UI»
co U I Xca
z
UI SC UI cc UI ( 0 • -4-1=
- 1 UI 4 -cc3
z
UI Ui co o z z 3 t -_ l »-I 3 • ~ * Bk M O X 3 4 -Z <t***
M • ^o
»•4 O 4-o
CS~*
-)
X «•4*
o
ca
ui
z
*-tu.
UI Q QO UI
« Z
i~i U . UIca
O CM CO CM CM »H*-.
n
u
cc
CO Ui CJz
UIcc
UIu.
CM CMz
o
4-4 t-<x
CJo
_ l UIcc
co cou.
ui
CCu.
Uicc
•v V COu.
Uicc
en
u.
Uicc
Vco
UI 4— 4-4 CC 3 coui
o
z
Uicc
UIu.
UIcc
o
*•*
>-cc
<r
cc
ca
4-4 UIu
z
UI cco
CM UI C O * CNu.
U Icc
UIz
4-4 «H j f i n nu.
4Min co
»^
«HI-o o>
T H • M^^
X 4-ca
z
ui
_ i -~ UI " £ <Zz
CO 3 • t CJ 4-4 4-4 fao
ien
cc
ui
• I
u.
CM i n o ODa
UJz
o
UJo
UJa
as
+
CO T Z I -U , Oo
z
UJc~
z
UJa
UJse
ui
ce
UJ t -lf) 0» * 0>en
a
«
UJ eto o
UI »0 UIz ^ z
w t-iu, u.
UI UIo o
T*-*
CM CM CO M -O V M M »-4 rten
3
UI O 3 U_1
3
U . • H II 1— Ü . Oo
Mrs
v.
t o t v _ j3
CJ<x
_J3
U
«
u
UIz
»-I t -3 Oce
ca
3en
u
>x
u.
UJ - J 3 Uz
o
(S £3 JE
o o
Ciu
.»«•o
- 1 UJ UJX
UJ CD Z ut UJu
Ul Ul CD»
O X 1-«».
to
• _w
V w 1 -UI < : J - Ï : w iC Ce O 3 U O O • H © T - ! X 1-4 J - *w
• tto
%-•
a
<z
Ulce
* H II U •au
m
Mo
i—o
a
*-*
o
*
a
UJ•
X t - t wu.
l - t X w»
» H II W O CMo
t su
<c
u.
*•
• H II U<r
u
Ul 3 Z »H t— Zo
u
o
CMz
«
:>
t-cn
z:
a
Se CJ 1 -« w U, 3••
X UJ*-* »
* HO I
»H »-t» ^
M ~ ~ 1 -UJ «t- r
M Cece o
3 U .m «
CM O i - t*-*
CIo
T - *^
to
> - • Ul i -l-Hce
3P
a
z
z
-)
3 1 -- J t-i3
» • I T H V * • < • J-<r
r
ce
o
u.
CMo
1-1
3 1 -Z^»
ro
O *-4^
to
w O 1 Ulce
' • » ••-»
<L • w J-<r
se
ce
o
u.
too
* - io
O 1-o
C9 X • H»
Cl Ul»
3 h-Z <L s ^u.
• Hz
ce
3 t -Ulce
Qz
UIco to en en co
u, u. u. u, u.
UJ UJ Ul UJ Ul y )en
UJ i -i - tce
en
UlU
z
UJce
UI CO T CM 4 » U> CM *•< W »H UJce
CO U lo
z
u
~ ce
to ui o
n u. to
ce ui
" te
a.
ui ui
U Z TH z >H U J _ Jce
3 O 3 05 O CM U, UI Cl to _ l h - 3 Z U >-• <t O uz
Ul 4 Uo
_ l Ulce
ce ce ce
ui ui ui ut
ui _J ts es es
Ci. _ ! 03 Ul UJ UJ > «X 3 t I I-i- ui o z z z
û ; A H M Hz
to CMa :
£ • l a i wui
z <r o x
<C i L H H H CCi « M N M O H H »H O »-« »H ( t 1H H H »-I £ I •Xz
to Ul l O . I <t Ul «t t - O z —J Ul X. Ul CM 1 ZU. u
o i n o o CM CM H i-i O CM -0 >0 CM to \n34
UJ
o
«
o.
o
o»
o
co
in
• +
co
ui
z
H4u.
UI
a
CO
o
<r
ui
CC
«
CC
* 4•
1 -Û . O O Mr^
Vn
r»
co
z
UIo
z
«
t -Ulz
* H t -=3 Äo
3 Ou
H4z
v«»>
ro
« « r 0 . •»»o »
»-se »-se
UI UIo o
X z
U I *ca >.
• «z co
« z
•> UI CD UI Z 1 - « 1 - h-O O Ui CC O ( 9 1 -UI U Ia z
3 1 -Z Q CC U. O i r ! UI O U I CM Oi
-o
o
/ • t UI 3 0 O O l - X 4* Z m. « ~ WX « o
*•» x ^ * ~ X «*
*^
SC UI o•
o
t - tu.
*
co
I - Io
«
cc
«
IO•
o
*"tu.
«
Z«
:>
co
o z z
X <C U I « * 1-co »
O SC O UI • v O -~ X ~ SC UI O Ul ~z
«
.^
• O N O X o VH " * * t o U. Z » >•* » M f l»- « t r o u , t - «o w
o
z
«
l -Ula
* "•
» ro
o
X »H » I •• — IO h- ~ Ä^
Mz
UI Û .a.
o
1 -( 0 h -- 1 • H 3 ^ Jco
_ l<c
u.
o
UIse
I - I I-*
••
X i H•**
y- 1-1z
o
**
o
«
M CM UIz
Mu.
UIa
o
r 4 A M 11 CC w O.co
UIu
z
U Icc
ui in
u. ~
UIcc
Zo
H I 1-«
u
o
_ l Ulce
0 1u.
Ulce
COu.
U lce
V N» COu.
Ulce
IO CO Ul t-t - lce
3co
U lu
Z 0 - N O Ulce
Ulu.
Ulce
co
o
>-ce
«
ce
O) M - 1 «4 »4>-cc
<c
ce
A * H - 1 « 4co
i-iu
z
Ulce
Ulu.
U lce
Ulz
H I - 1 U . Ulo
* N . w+ Min
»*
n
»
- 0 O «M CO»-•
* 4<«
«•4 PO «-I«%
X
1-o
z
l l ' _ l Ulz
<x
z
1 4 V"
CO 3<r
• - I CO 1 COce
Ul CO X U lu
I - Io
^
1-Z*
. '
»
Ps ~t '•-o
•
coca
10 - <o
• 4 '*
CD
û_
o
œ
N
o
O«
a
3 LUz
»
n
H-t - J v>•
ce
«
ce
ta
h* _Jrt
—s (So
_ iz
*-:
ca
•-*
«
—
Aa
«
«
*•»
a:
o
3 Z : t (S » •w
*>
o
a
•X M<—.
U<t
U.z
• - Ias
•**
«^
a
a
<
<*
,*-.
z
•Œ • -Z »H»
«.
*
w M O<r
10*
X U) 1 - *z
hH l i . •O•
Z 3a:
CZiz
lu
h.
*
•
CMz
o
»H U)te
Lu
=>
3 LU Z•.
a
• H _J•^
>-ce
<t
ce.
ta
»-<
- i*%
CD O , _ lz
»Hca
»
«
• vo
s
< I • » **
»
*
*
*
»
«
»
/-»
ce
o
3 Z»-<
ca
a.»
»^
û
a
<L*
*
»
*
*
*\
U• t
u.
z
t - l«
•>*
«-*
o
a
«t
*
*
*
*
«
*••.
z
<x
(-z
1-4ce
•.
«
*-*
o
Q 1*
»
*
*
*
• Im
* - tz
i - iu.
*
«
»
*
*
•
z
3ce
a
z
LU*
*
9 *»
<*
ca
- i
K
36
Ui
o
<r
o.
o
o
00m
oo
in
co
m
ui
£
co
00 «T » 1 0 0 •v.tv
o
0 > O U I h-«
a
«r
•
• - Icc
Mz
z
t-u.
<r
U I £ «T « - 0z
cc «r
O -0
to
i2z
o o
O n CC H-a. u
3 CC H -O)z
» l-< t Ntn
o
*
o
w i H 0 0 V . I Vo
•x
0 * H lo
M £ O Oo
H X H-a
z
U I - 1 A_!
U I H lu.
z
o
H l H -3 O LU X U I<c a
cc z
o
o
cc
«
Q U Itn
U icc
u
z
H l 3 O*
H iu.
Cu
z
H l»
• Hu
Cuz
M Mz
»-Lu U I £ <L Z CC
o
tn
tn
U Io
o
cc
Cu•o
Mm
o
•
o
V I 1-1co
V . O V . 0-o
m
«r
< ••o
«ar • 0z
o
l - t t J 3cc
k-tn
z
i - i i - i £ •Œ CCca
o
cc
u
o
• ^o
II X t Dz
U I _ la
- i U I I H Lu Z O H4»
-u
U i X LUa
z
<t
A U i t n<c
U Icc
u
z
I - Ia
tn
•
I Mu
i
-=)
o
*
• H Lu Cuz
i - i Tz
Z u . Lu U i«r
£ «T«
Z CCo
tn
tn
- 0 • 0ut z
u o
o
cc
l - l CL u t>-CMin
o
•
o
* H l - l 0 0 V O V * 0 >o
M 3 CC»-tn
z
* H • H £ <X CCto
o
cc
u
o
Vo
II X u-a
z
U i _ J Q _ J U i l - l LUz
o
l-l H -3 CJ U i X U io
z
<x
o
U itn
1 U Icc
o
z
> H*
l - lu
1 -3 O•
I - I Lu Cu Z H lin
cc
ca •X Z
en
in o«
o • H UI r H4*-00 * - t in œ
*
*
zh-•
>^
_ J 1-o
o 3 O rv o•^
0 -o UI K <r a «r•
e-j z a»-*
co L £ UI>
ca h - t _ l h-t - H Û3 Ui z o n t -< I z : CC O u. z l - l UI - 1»
< i>-X • H U. UI cc Û-ui er X. T •C 1} z CC T O - 0 m
ui z
o oo «
cc •-a. u
CC 1 -cn z TH I-H in o o t - t ca rs o O II X>~
a
z
UI _ l Cl _ l UIu.
z
a
1 -3 U UI X UI a » W K Z O to•
co o cc •r< UI Cl. IC UI <X UI 0 ) 3 - 1 <r >* o ca r>>o
UI tn <c U I cc u z »H Ui a l -o U l d U M O Z O « l ~ Z X < I*
u o en ui r z ui ui cc • l u r « Z O • ! U <tz z z
3C <E « I t -CC a o cc Cu ui en x: a UI z t—« 1 - UI UÎ O) Cu V U i en c i—< X h-* H>-II en <r • • H £ _l £ X es ui h-z _> CD UI UI z _J _ l UI >- en cc en -X UI - 1 es _ i
z u u
n u
Si <L »-H U en t -z K H O Cu>-CC 1— z UI en z ui t 3 Z « I h-en UI u z UI cc UI u. Ul cc _J • I z cc UI r— X UI
•
o
Cuz
Mu.
o
UI•
en o o - 0 cc UI C& £ 13 Z UI->
* H 1 -e j UI cc » H Q 13 Z h - t en en U I e j rv cc UI co I Z3 z UI>
* H UI cc *-t o C3 z H H tn en UI uo
cc
38
m