fix: add pdf
This commit is contained in:
@@ -4,14 +4,14 @@
|
|||||||
|
|
||||||
In deze les heb je geleerd hoe TypeScript je code veiliger maakt met types. Nu ga je dat in de praktijk brengen! Je krijgt een JavaScript project met utility functies voor een e-commerce systeem. Jouw taak: **alles omzetten naar TypeScript zonder `any` types te gebruiken**.
|
In deze les heb je geleerd hoe TypeScript je code veiliger maakt met types. Nu ga je dat in de praktijk brengen! Je krijgt een JavaScript project met utility functies voor een e-commerce systeem. Jouw taak: **alles omzetten naar TypeScript zonder `any` types te gebruiken**.
|
||||||
|
|
||||||
Dit huiswerk bereidt je voor op Les 5, waar je deze getypeerde functies met React gaat combineren.
|
Dit huiswerk bereidt je voor op Les 5, waar je TypeScript met React gaat combineren.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
1. **Download** `les4-huiswerk-js-converter.zip` van Teams
|
1. **Download** `les4-huiswerk-js-converter.zip` van Teams
|
||||||
2. **Pak uit** en open de folder in Cursor/VS Code
|
2. **Pak uit** en open de folder in Cursor
|
||||||
3. **Installeer dependencies**: `npm install`
|
3. **Installeer dependencies**: `npm install`
|
||||||
4. **Bekijk** de JavaScript bestanden in `src/`
|
4. **Bekijk** de JavaScript bestanden in `src/`
|
||||||
5. **Begin omzetten!**
|
5. **Begin omzetten!**
|
||||||
@@ -44,15 +44,17 @@ Je moet `users.js` omzetten naar `users.ts`.
|
|||||||
|
|
||||||
**Functies die je zult tegenkomen:**
|
**Functies die je zult tegenkomen:**
|
||||||
- `createUser(name, email, age)` — maakt een nieuwe user aan
|
- `createUser(name, email, age)` — maakt een nieuwe user aan
|
||||||
- `findUser(users, id)` — zoekt een user op id
|
- `findUserByEmail(users, email)` — zoekt een user op e-mailadres
|
||||||
- `updateUser(users, id, updates)` — update user gegevens
|
- `updateUser(user, updates)` — update user gegevens
|
||||||
- `filterActiveUsers(users)` — geeft alle actieve users terug
|
- `filterActiveUsers(users)` — geeft alle actieve users terug
|
||||||
|
- `deactivateUser(user)` — zet een user op inactief
|
||||||
|
|
||||||
**Wat je moet doen:**
|
**Wat je moet doen:**
|
||||||
1. Maak een `User` interface met: `id`, `name`, `email`, `age`, `isActive` (boolean)
|
1. Maak een `User` interface met: `id`, `name`, `email`, `age`, `isActive`, `createdAt`
|
||||||
2. Zorg dat de `createUser` functie het juiste type teruggeeft
|
2. Zorg dat `createUser` het juiste type teruggeeft
|
||||||
3. Type alle parameters en return types volledig
|
3. `findUserByEmail` kan `User | null` teruggeven
|
||||||
4. Geen `any`!
|
4. Type alle parameters en return types volledig
|
||||||
|
5. Geen `any`!
|
||||||
|
|
||||||
**Hint:** Kijk in de tests hoe `User` wordt gebruikt — dat zegt je veel over de verwachte types.
|
**Hint:** Kijk in de tests hoe `User` wordt gebruikt — dat zegt je veel over de verwachte types.
|
||||||
|
|
||||||
@@ -63,19 +65,22 @@ Je moet `users.js` omzetten naar `users.ts`.
|
|||||||
Je moet `products.js` omzetten naar `products.ts`.
|
Je moet `products.js` omzetten naar `products.ts`.
|
||||||
|
|
||||||
**Functies die je zult tegenkomen:**
|
**Functies die je zult tegenkomen:**
|
||||||
- `createProduct(name, price, category)` — maakt een nieuw product aan
|
- `createProduct(name, price, category, description)` — maakt een nieuw product aan
|
||||||
- `applyDiscount(product, discountPercent)` — past korting toe
|
- `applyDiscount(product, percentage)` — past korting toe
|
||||||
- `getExpensiveProducts(products, minPrice)` — filtert dure producten
|
- `getExpensiveProducts(products, minPrice)` — filtert dure producten
|
||||||
- `formatPrice(price)` — formatteert prijs als string
|
- `formatPrice(price, currency)` — formatteert prijs als string met valutasymbool
|
||||||
|
- `rateProduct(product, rating)` — geeft een product een beoordeling (1-5)
|
||||||
|
|
||||||
|
Er is ook een `CATEGORIES` constante: een array met geldige categorieën.
|
||||||
|
|
||||||
**Wat je moet doen:**
|
**Wat je moet doen:**
|
||||||
1. Maak een `Product` interface met: `id`, `name`, `price`, `category`, `discount` (optioneel)
|
1. Maak een `Product` interface met: `id`, `name`, `price`, `category`, `description` (string of null), `inStock`, `rating` (number of null)
|
||||||
2. Maak een **union type** voor category: `"electronics" | "clothing" | "books" | "other"`
|
2. Maak een **union type** voor category: `"electronics" | "clothing" | "food" | "books" | "sports"`
|
||||||
3. Type alle functies compleet
|
3. Type alle functies compleet
|
||||||
4. De `applyDiscount` functie geeft een nieuw object terug (mutation voorkomen)
|
4. De `applyDiscount` functie geeft een nieuw object terug (geen mutation)
|
||||||
5. Geen `any`!
|
5. Geen `any`!
|
||||||
|
|
||||||
**Extra uitdaging:** Sommige producten hebben misschien geen discount. Maak dit veld optioneel met `?`
|
**Let op:** `description` en `rating` kunnen `null` zijn. Gebruik `string | null` en `number | null`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -85,19 +90,18 @@ Je moet `orders.js` omzetten naar `orders.ts`.
|
|||||||
|
|
||||||
**Functies die je zult tegenkomen:**
|
**Functies die je zult tegenkomen:**
|
||||||
- `createOrder(user, products)` — maakt een order aan
|
- `createOrder(user, products)` — maakt een order aan
|
||||||
- `calculateTotal(order)` — berekent totale prijs
|
- `calculateTotal(products)` — berekent totale prijs van een productenlijst
|
||||||
- `getOrderStatus(order)` — geeft de status terug
|
- `updateOrderStatus(order, newStatus)` — wijzigt de status (met validatie van geldige transities)
|
||||||
- `getOrdersByUser(orders, userId)` — filtert orders per user
|
- `getOrdersByUser(orders, userId)` — filtert orders per user
|
||||||
|
- `getOrdersByStatus(orders, status)` — filtert orders op status
|
||||||
|
|
||||||
**Wat je moet doen:**
|
**Wat je moet doen:**
|
||||||
1. Maak een `Order` interface met: `id`, `userId`, `products` (array), `total`, `status`, `createdAt`
|
1. Maak een `Order` interface met: `id`, `userId`, `products` (array van `{ productId: string; name: string; price: number }`), `total`, `status`, `createdAt`
|
||||||
2. Maak een **union type** voor OrderStatus: `"pending" | "processing" | "shipped" | "delivered"`
|
2. Maak een **union type** voor OrderStatus: `"pending" | "processing" | "shipped" | "delivered" | "cancelled"`
|
||||||
3. De `userId` in Order moet verwijzen naar de User die je in bestand 1 hebt gemaakt
|
3. Type alle functies compleet
|
||||||
4. `products` in Order moet een array van Product zijn
|
4. Geen `any`!
|
||||||
5. Type alle functies compleet
|
|
||||||
6. Geen `any`!
|
|
||||||
|
|
||||||
**Samenwerking:** Je Orders werken met Users en Products van de vorige bestanden!
|
**Let op:** De `products` in een Order zijn NIET dezelfde als `Product[]`. Het zijn vereenvoudigde objecten met alleen `productId`, `name` en `price`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -109,16 +113,17 @@ Je moet `utils.js` omzetten naar `utils.ts`. Dit bestand heeft wat moeilijkere t
|
|||||||
- `formatDate(date)` — formatteert een Date naar "DD-MM-YYYY"
|
- `formatDate(date)` — formatteert een Date naar "DD-MM-YYYY"
|
||||||
- `generateId()` — genereert een willekeurige string ID
|
- `generateId()` — genereert een willekeurige string ID
|
||||||
- `validateEmail(email)` — checkt of email geldig is (return boolean)
|
- `validateEmail(email)` — checkt of email geldig is (return boolean)
|
||||||
- `sortBy(items, key)` — sorteert een array op een bepaalde eigenschap
|
- `sortBy(items, key, direction)` — sorteert een array op een eigenschap, optioneel ascending/descending
|
||||||
|
- `groupBy(items, key)` — groepeert items per key-waarde in een object
|
||||||
|
|
||||||
**Wat je moet doen:**
|
**Wat je moet doen:**
|
||||||
1. `formatDate` ontvangt een `Date` en geeft een `string` terug
|
1. `formatDate` ontvangt een `Date` en geeft een `string` terug
|
||||||
2. `generateId` geeft altijd een `string` terug
|
2. `generateId` geeft altijd een `string` terug
|
||||||
3. `validateEmail` geeft een `boolean` terug
|
3. `validateEmail` geeft een `boolean` terug
|
||||||
4. `sortBy` is het lastigste! Dit is waar **generics** om de hoek komen kijken (voorbereiding Les 5)
|
4. `sortBy` is het lastigste! Dit is waar **generics** om de hoek komen kijken
|
||||||
- `sortBy` moet werken met *elk* soort array
|
- `sortBy` moet werken met *elk* soort array
|
||||||
- De functie signature zou iets als `function sortBy<T>(items: T[], key: keyof T): T[]` moeten zijn
|
- De functie signature zou iets als `function sortBy<T>(items: T[], key: keyof T, direction?: string): T[]` moeten zijn
|
||||||
- Dit zeggen we in Les 5 meer over, maar je mag het nu al proberen!
|
5. `groupBy` gebruikt ook generics: `function groupBy<T>(items: T[], key: keyof T): Record<string, T[]>`
|
||||||
|
|
||||||
**Geen `any`!**
|
**Geen `any`!**
|
||||||
|
|
||||||
@@ -133,8 +138,9 @@ Zorg dat je aan álle punten voldoet:
|
|||||||
- ✅ **Alle functies volledig getypt** — parameters EN return types
|
- ✅ **Alle functies volledig getypt** — parameters EN return types
|
||||||
- ✅ **Interfaces voor alle objecten** — User, Product, Order
|
- ✅ **Interfaces voor alle objecten** — User, Product, Order
|
||||||
- ✅ **Union types waar logisch** — ProductCategory en OrderStatus
|
- ✅ **Union types waar logisch** — ProductCategory en OrderStatus
|
||||||
- ✅ **Optional properties waar nodig** — velden met `?`
|
- ✅ **Nullable types waar nodig** — `string | null` en `number | null`
|
||||||
- ✅ **`npm run check` moet 0 errors geven** — TypeScript compiler akkoord
|
- ✅ **`npm run check` moet 0 errors geven** — TypeScript compiler akkoord
|
||||||
|
- ✅ **`npm test` moet groen zijn** — alle 26 tests slagen
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -166,6 +172,7 @@ interface User {
|
|||||||
email: string;
|
email: string;
|
||||||
age: number;
|
age: number;
|
||||||
isActive: boolean;
|
isActive: boolean;
|
||||||
|
createdAt: Date;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -178,7 +185,7 @@ Cursor geeft je hover-tips. Hover over een functie en zie wat het verwacht. Maar
|
|||||||
**4. Union types zijn duidelijker dan strings**
|
**4. Union types zijn duidelijker dan strings**
|
||||||
Dit:
|
Dit:
|
||||||
```typescript
|
```typescript
|
||||||
type OrderStatus = "pending" | "processing" | "shipped" | "delivered";
|
type OrderStatus = "pending" | "processing" | "shipped" | "delivered" | "cancelled";
|
||||||
```
|
```
|
||||||
Is veel beter dan:
|
Is veel beter dan:
|
||||||
```typescript
|
```typescript
|
||||||
@@ -187,14 +194,15 @@ status: string;
|
|||||||
|
|
||||||
Waarom? TypeScript geeft je autocomplete en warnt je als je een verkeerde status invult.
|
Waarom? TypeScript geeft je autocomplete en warnt je als je een verkeerde status invult.
|
||||||
|
|
||||||
**5. Optional properties met `?`**
|
**5. Nullable types met `| null`**
|
||||||
Niet alles is verplicht. Producten hebben misschien geen korting:
|
Sommige velden kunnen null zijn:
|
||||||
```typescript
|
```typescript
|
||||||
interface Product {
|
interface Product {
|
||||||
id: string;
|
id: string;
|
||||||
name: string;
|
name: string;
|
||||||
price: number;
|
price: number;
|
||||||
discount?: number; // optioneel!
|
description: string | null;
|
||||||
|
rating: number | null;
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -206,49 +214,9 @@ interface Product {
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Bonus Challenges
|
|
||||||
|
|
||||||
Als je voort bent en meer wilt leren:
|
|
||||||
|
|
||||||
**Bonus 1: JSDoc Comments**
|
|
||||||
Voeg JSDoc comments toe aan je interfaces. Dit geeft developers (inclusief jezelf later) hulp:
|
|
||||||
|
|
||||||
```typescript
|
|
||||||
/**
|
|
||||||
* Vertegenwoordigt een gebruiker in het systeem
|
|
||||||
* @property id - Unieke identifier
|
|
||||||
* @property name - Volledige naam van de gebruiker
|
|
||||||
* @property email - E-mailadres (moet uniek zijn)
|
|
||||||
* @property age - Leeftijd in jaren
|
|
||||||
* @property isActive - Of de account actief is
|
|
||||||
*/
|
|
||||||
interface User {
|
|
||||||
id: string;
|
|
||||||
name: string;
|
|
||||||
email: string;
|
|
||||||
age: number;
|
|
||||||
isActive: boolean;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Bonus 2: Barrel Export**
|
|
||||||
Maak een `src/index.ts` die alles exporteert:
|
|
||||||
|
|
||||||
```typescript
|
|
||||||
export { User, createUser, findUser, updateUser, filterActiveUsers } from './users';
|
|
||||||
export { Product, createProduct, applyDiscount, getExpensiveProducts, formatPrice } from './products';
|
|
||||||
export { Order, createOrder, calculateTotal, getOrderStatus, getOrdersByUser } from './orders';
|
|
||||||
export { formatDate, generateId, validateEmail, sortBy } from './utils';
|
|
||||||
```
|
|
||||||
|
|
||||||
**Bonus 3: Generics in sortBy**
|
|
||||||
Probeer `sortBy` echt generiek te maken. Dit is Les 5 materiaal, maar je mag het nu al proberen! Hint: je hebt `<T>` nodig en `keyof T`.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Inleveren
|
## Inleveren
|
||||||
|
|
||||||
1. **Push naar GitHub** — je repositorywaar je al aan werkt
|
1. **Push naar GitHub** — je repository waar je al aan werkt
|
||||||
2. **Branch:** `feature/les4-typescript-converter`
|
2. **Branch:** `feature/les4-typescript-converter`
|
||||||
3. **Commit message:** `feat: convert JavaScript utilities to TypeScript`
|
3. **Commit message:** `feat: convert JavaScript utilities to TypeScript`
|
||||||
4. **Deadline:** Voor het begin van Les 5
|
4. **Deadline:** Voor het begin van Les 5
|
||||||
@@ -267,4 +235,4 @@ Dit huiswerk duurt ongeveer **1,5 tot 2 uur** afhankelijk van je snelheid. Niet
|
|||||||
- Weet je de syntax van een type niet? Kijk in de lesson slides Les 4
|
- Weet je de syntax van een type niet? Kijk in de lesson slides Les 4
|
||||||
- Denk je dat de tests fout zijn? Neem contact op!
|
- Denk je dat de tests fout zijn? Neem contact op!
|
||||||
|
|
||||||
Veel succes! 🚀
|
Veel succes!
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ endobj
|
|||||||
endobj
|
endobj
|
||||||
18 0 obj
|
18 0 obj
|
||||||
<<
|
<<
|
||||||
/Author (\(anonymous\)) /CreationDate (D:20260303125208+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260303125208+00'00') /Producer (ReportLab PDF Library - \(opensource\))
|
/Author (\(anonymous\)) /CreationDate (D:20260303130225+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260303130225+00'00') /Producer (ReportLab PDF Library - \(opensource\))
|
||||||
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
|
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
|
||||||
>>
|
>>
|
||||||
endobj
|
endobj
|
||||||
@@ -157,31 +157,31 @@ Gau0C>Ap!%'Roe[3.3$:4CPBXZqoA`C8IrbW-"X_74_,K*'=c:-eeLpScMMj-Opnd6Y$=4B$U4dF+o4,
|
|||||||
endobj
|
endobj
|
||||||
22 0 obj
|
22 0 obj
|
||||||
<<
|
<<
|
||||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1190
|
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1271
|
||||||
>>
|
>>
|
||||||
stream
|
stream
|
||||||
Gau`S9lK&M&A@sB9Q/X=Tnnr3O5)XLdk.du;q,Y;\I^Nu<FSl68S+CjqMluHG2fGo$O7%A[_\Bj]Qp%+P6aSO+niP'!aI;8m"te:YZq9%_??03@'Q4bb_Yjao.Wog`SWdOnsj1A%0*+[@h;P,-&b)kcm$:h<&KjtN2:7'7Na4u3/aLNP^rEsgpI*SS'=S\UWo9_\]]os@q+4H,qaMSL#?tP$!]$1>CO/t>[2c/jW,m:p+a=rL6c7"),5FaYM/6trc"5>Z1lq-"_8dr4iEEtGn_&+&e\gk.qa,?,C3?UE$;UIEWtMDZmsB_/X-b61g#QH=/jq`fJ9t5/9Ma)g]Bj=dEcQS'n+"e&gNp'l<'YFljpGD=pNLMAQht`L?JWT<@:F<$[qH^_!l=:3KCQi)'giNL]SG:=Z2G,3,;>?_2\41)7U,$hhjFM/[%*Si0ChNi4R+D!k?4pK.Z9\#)&'\CXIPDQ9aA5qSC5=Pi10$>Rf'I&^I(V9k"%5&Iu,NgU-21LDpu+K\No8*S3BgEu:59'_9(&^og'O*ej61C6HW8-$j'SqLgHsB^ok>^_Gp'Lp[8tfa-Ma?U#%q2;g)mj[Yr_@90UWC<huqmHjjicMll/mK@>F@:7Ukl(>G<'F2/Y;G\I#B34GFEqt<gnc&>%kK10p9A4`mNsMm7P.9X#<[#]_;2f;VK8B>c:I"&l07+<+h=.0.44SXj*\Z>h6/J+!j\m[ahH\f>[uo$XKp7t=6h)"X0V+A7d*FpjnNj@m'Ass>lO>J=?IJh*+"Uu3Jkm%YK11^3rD`>]#C12eZg(0SrtKbqr!&:\=c./B3a!]NGP:bDBc>HQ*%)B`Rt65iVd!/fpf!o`C=L]O`Hn?N9l`t'oTWqV[bX&Of",ZYM.JXlF',uL)kflTQAJ4;Xps/Fb1*]ue+iAEP"2F'?O=(6X$u^#Hd&%7hGo,1^9-KkIjS+h#8'D\l0tD%KaIc&&:C9;@28)tD7LO7#491b[@Tk[R*cN/Q>\TnUQBsil8T*VN+>jc8FY_N[(j)'(K$eSA`#kl?))d3't6^"G8m^t^ZRSYa%[4(D6Kg'Cg9X#&&l6N(7):?pY$MEdoD:oR4(+!`)&s+KF?j0-`#7k<t[uUAQFY>01&$H%\L@:IhV+]Big1Y?d6s/f>%7R'7=[IU!'W6ZPaNsGZ@BHnGtJ6r<!9J]&*~>endstream
|
Gau0C9lK&M&A@sB9Q/X=<tQlY+1W\RK.X<%;q,Y;^2TpR<f'O"']iU:rUCn*ZK%!*8dbk.CkFO]H#GZi)DUaF_sDTY"Lt&?`@V23@6+W/\,f:<^goKP)R8-TN*S[/S:4s,Lgs1g,Pi)E8:\m/'F4n\_NTNDd.p5c0G0',)M9GXrQ+S>cj96(Zt]C\2k-.47[l>Yj$#,uD\CNJ+mYo$95nbq&A[u"pZ^5ac/e9p9HR[=Z&SSH-+&966p,/1^1c]Up8?`JKY>XM/0G>JD]u\SM*4'(QSC_a`*C63:Zup2c8F0BWXRN+e2k9VC=KZg:kOIHE?"UUFB^d^0#HJ^pFX`\RX1%LMs*=_18!Kp?mjrICO[7Jf%Ll;RAMR9`Sg,k\8>2[$EPlc0aKh1k8_NHD^rj)"</%S!>\+niWQsF8Ms+mIo$;\Nfm$T""n/i(k^%Pp7_6;m,c$A3Y.NS4rQ[cTF,MLUFdTZWJ87digeriL!!T_fBZ!9HKNkDlm\Gks*';_H4.?d!'dmj1=J5<!l@UUae5W=D>@BqA*?tY;s6;a#<g*I=/^j>#I/d8Z7cXO.r*_%KjOM-5D;*fS/[QJ"bLR&I+@2ZJTbbu@Ita)-i+6U&?ELMTBm<Jn!$.A!qTjEIcNtTn4tK%^lkhu^F@-/d_Gt%Z6X*dM/$-Ir5@L7[?H1Q(%C3`lmGj>A_JQr0;Jl^:l!#-970^m6IEWqAP+N#>TUiufjVhoaJY<'@5"Y`_ep`B_bNYV2>j[k-`Pda)*XHb]_BMV8ES=Q4Na!$&cMg]/<9\r't,kSb]`/E]G'&a]#%3U.]KC99WKquQ5WJm'c8^X>>7.*.b4BWi(o!4G`oQ;9k^H-3Y.kMk8JVj2tBqZbaR&Z^Stibr.`%C$]j4jr$4e)Dsd!Npi%nAa`42okIrI`B(i3GOj[#tQFt`50k=Ca\u8;"W]*[?S%9+#@Bk#O5-h1(l^OVDb=3)9*X,D-SY@mCN,t8c%6Ts1'Ij>di\5Bko$<+S7l0s<d2YO=g7LmK,s]r7Z;C;_\X^OoN?e'PD!5H.%srpK0clsN`Os\nBf_p4VN2Xt;5NTBaDHmP(-RAu/LJSkQ!?.8f'DGLZ<RgenG#"XkhSn:D'E/[k'2<gCN%!i/5)PmU@"bE_`io@j>?unGGBtJU=5G-`Ak+8iGIIJ>oK(sH6FR\NBBMd-p1[@#9jiPr^dd5*YX[$=6Br_IW,UcS"fnBqQ[+W/^nX8K7<R\T0L6V18epeNN1edhTMDn4n*Zg_rtIK2U`E~>endstream
|
||||||
endobj
|
endobj
|
||||||
23 0 obj
|
23 0 obj
|
||||||
<<
|
<<
|
||||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1275
|
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1324
|
||||||
>>
|
>>
|
||||||
stream
|
stream
|
||||||
GauHLgQ(#H&:NH>R/0B'2Mt%&[sdRO'4cZ1P9=b$U@&+.d5'</j\XG20)G)Y;=\:8X)].@(1:@:6h8H\1D0^!04M]F"i0LB?G.LI.#b&hR*/n8%UP4"^0Hd1)9/g$;@4"/gc1+<S;'q3[g#Y>@MgbK`6DQ!Rb+Y'fh:Kf'Qc\o`)/0qr4%CGL>d^T3=)=O<jG\4<_IE7*L:hMB-[hH)I4h\<[7AY7VP_gR8g`1q-96WFr1I<*nf6,*ugJ/icRX@8hR6s)"dl8'EY/>8rXN"Uuc&g#[q+-B`r^Vo=gf$XnL=eIMgQ]N.!W-\1q`><$#l;ca<?ffN"4=nXD+9R`(eiJ4k\?d/_rEAj0X_qTc4A$s+>A2c/c2<N.dJ/,-;PCD(f+FCpoe+RCBG\HKLCVAe%3B.f$gg8c;%2tAV'CKEZ#e9]Z.f_*[^c8@P5*.l,`g#I&9hLKSm,`3*0S8,m"Gi+lrima7?f<Eb9<i;g`]\&9q2I7/d-cRKj[2a.gL09;uXK6]0ecc[.Q\H:i`tIXsqcRSe(Wq8B^]O1mO2J[Ar:le@F()/458eA(C4J$NjO?FATX&5b6J)#e@mVib\@PuE;DlkLk/fJ;;0&<%EM(ATl'a6*@#4p49Gh<d''dJ#$i=t&7;O4KDn5N[2t/5';<!.nPsPrC(h<*]?C*6%qe!;q5;93=B[eJ,;%6qDX-1^#B3ZNd>.4t$f',DX[.uNeCP-jKf,dB6:M/6DeGF._q:B4d.9*aYrFiZ><7UiRR`XYhAG1L"$Mf@Q:c@)?pcE2/+k9>1GagGbkRT9AO$=05J&t3'C=oq0+,g0ABJe\q`J9Eh?jdjm^%L'V>PYi+&(^Fr[?8H.CHpO@-ZgHE(V#,E]dG(bUQ,1Lh$4D2c5tkJA#?)/E-$eK5B4!k]<A/8S.SJ(BnE4M!K(q-UV".)%hC=Ca3S^F;*R#fqckPCOU2djVn\H@B#FMH`'/Q$C+]%S\2TN[pNONf^#Y]rT6MLuCVO1pM9V6g5<\qnR7OU;/#Qc`W)&Pt*9;(K&ptNU,O)5Xk&rV%U_*uN6KVb-8%Cp'/C(Zc.k$bX7\JF7Q-T/FR!n210d1tU7Tcl1?b.*u,h[).>meG,/,'L#"/RbK>ig``i>DL(lXWdRj%jH3'@N8c4$:G7B96u)*ua402=01N,aJH(2;KboQ]WQc@W33C]Du_Di8F[h$aYq<[=Pk0#pNTmS9OaaO(IQm/ZZ'Acc]msGrk8_p4%PklTMm4F+JU5Q:3n1J`fpN?oulrl6!I14b<~>endstream
|
Gau0DD/\/e&H88.EUtQ#86&N]?CVH,)Iu8=1i%lX)[?'F/("i:R8cbX6+ZHummP9X?_YWrlki8;h2up-h=9p,#mC#HmWZAJ\=C@82ZuYWP8Oqs;jb4MT-n8Yc:Fk$A:Bbr+f'5HB5n^G16_u<Won$)!EnlZ_.8E"Kg5^K?e4T+rQZtLEEF].Tho!#]R\*E9YPH3r/.*oC^'?`XUPqP!+F:mBt&8g4&[YZn5[,<>rlb^Rb_bh@;Gt79BbHDPC"CY.dGgW/Fu+tbOphULkON@]k*qj?#dTV,MA4jCK4R!#H6b.o"!0Z_jU`f\JCGFC,ZtN9KcmnOE:1)A6kMM([%jcCgrSMXi_HtQ8GqXf+UVa^&6+Ig;mY*,\bt:!SMH"i02*(J:4BkIPOF+jLNf5MVO0;lVUt<H]-8+_b@&HrUX0k74U<^dajA3EG_8@PMhlP,%,!(@91S,$>ptfbGsWJr2*ni_YgC5B6(2;^)KO/L`[9eN+efGa4[6cbBBqB2o/t@L`2J+36m+h$pGh3)TL^U)3"o=i-UgG==+E30#6]KQ-oif`kO;[,Y>I8(PZW@-_2O<Q9_q/RR)=@')El5_HqVSY3#\d-behC1Y`@JP&8k(hn$:)]I?G$rN;hSp5Sf@#c:pF\3>\JD0Vp>Q<OU'WL"oS9']ZWM]=Dt#JI"pn>K["19X>mI%i/BVr!NYfPC869+/2Uk6OpmV0lip"dU51+\@\#Trs8Qi'1CWCGYWg36sn]qsI/hRX9&K:!>1+VhNq@#7uJ9"n!f6!Ss!gi0[@'gc?G;o&5dHlDQjCkKq`-FjUG(-;'f$[QAt8@4=&AL:nu,7,Di.!rY((VI@Mp<H\.j!2;4@Z\TrVD'V`;[J\P(.Z/if>:1:R^!+WQr=loEXh-rf<SKEd2-o)V<nf$QkII&I]#AGHS=b?*k3#jrpK?WWEETB!%`U$^`iL6+Xf*`+;P/Q-i[]3*k%P"A)s'cU*2uF_b_3hm4#tYTo8ba7XuJ_7rK+\CR^M4tqm$+kkA#r\(W]&cJ,THeErYpq8GiXu]QYBh^YAEG%7_cSI%"W[b_(irji:h2Zt3:G($0oi<pe$3GSNf,:[#<t+d+fgb>6*X8=4;Ipto"]VY$&).m2olY8QuG6cA4lh@,RE7lDm%FI7g1e^_j4S!SW_cg^0B!BI%OF"TK0h)Gm_YKq9fZhF9&i%\U.>)PE0MB8q(G5UdB>o:0ViS<\3>js0[-U@r#V0LJ0U5T2%6$?.bgq2s0e.5*?]!D%diGAeboPH2(4kC'A'q46nh8SNCpV1"O>;aIem]BAuqsjiY$d!p:\-?UG!1(YObl~>endstream
|
||||||
endobj
|
endobj
|
||||||
24 0 obj
|
24 0 obj
|
||||||
<<
|
<<
|
||||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 447
|
/Filter [ /ASCII85Decode /FlateDecode ] /Length 664
|
||||||
>>
|
>>
|
||||||
stream
|
stream
|
||||||
Gau0>b>,r/&A7`fQCEfJfT).T&`QWdW(7X;al5WIUoBQ42DO8Ye\B-r>Z!@t6n<PZn]n:M]G-/.g7<3n0Tg<q:Ot9_#uHXBa>lrUk]9./V'iM-0a9fPY],;+B]dn8NWkAl!1<p(/[t%8g2<^E1,Y//TtUXEA!$.,PnjQ3EsnbHBU>ir>#"T:gRW=\#cU]n4Wpl6hPo^d"G0gB:"l<3Z;p[9iYRluq,8U2>+*tF;auEoNpZj4F/@'+EYs\A#lB`e1tBQ1jeC6TV+TcBTunph_SLbu.H3D;"e87Q[saEf]'IfXA[TZT$i0XB"^?*TgI!>2QfIT!,\_*\VW,g']3%@sQ!e%p$?I,16icB)-Z/q:,mL$^Z;\(mf)LKB0qkc=[_ANIWdojYCU.]Yb,tYFQVkDp@EFlIO&%D>0[m#$if.)k*aD*I<^bl;4:Od;_`PD.~>endstream
|
GauHIbAO(/']%q&mZNSc`$RUAd4D;3e4S7R,W)i9j2)7F'/2:=X8Mo56`U?Q-Asdf"O__nSo\]g;]pB`o1]UClPLsi$IjWO!S"M_M!s:L*^,Kr=6YM6e9;l<grKu=E2qZ7<qk"NX[7gOTOH;a2C$IY`%7=/Q-^Y(.u59if'Tco1L'I0.D.)H?RHVXhc3bN\q^HGirkGr0jQ4>$SZ.Rj#Z3\nCj,I?Q-_0oK!!+R=6FF>"EeL9e<HOW5l-Zm2.T20i_JCa3Zb>Lf+7_#u!t"Ku@GC3m"U$];G<^pegOC*-*JdeNSh"aE8q4#.gdf$>!08on>,giG%49BR;QC)W1kl5'b=9NF$$8?oXQ9*O(j1ooCPH6mr0fa97g8do`L8cE*QKc7'JUF)QPQfb:Co%tn6p=YTM9hsnFl1D$C/AnA+L9o$m3qSM9%=Bd;tbC"8N$KWU!/I:l"/P(mJ9$QfW)[c-B%)&4tG9M]fVKOT6#9h[>qBO9tl&eWFCgD"1=1d3!Y8Jfe8b&I5"jE7iBak4UL&#<^<o!\gT/0<UPC=h;Snd(+(E$,h%_F[FG%p$$&8]r-L_kX0&KRN-&+Z8lBPelFH@a[]C>EA/mL3tl]RE/W&lg8]\l>eKrquH`%W4_<m<tt[[LN4J3A27p44%C-+8YZVVZ~>endstream
|
||||||
endobj
|
endobj
|
||||||
25 0 obj
|
25 0 obj
|
||||||
<<
|
<<
|
||||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1157
|
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1157
|
||||||
>>
|
>>
|
||||||
stream
|
stream
|
||||||
Gaua>h/D%-%)Ccl=7GJ4m5d\!A]aA`DKeWi"cDur)fS&L4@aPC-;l0P)nNf`BK8X_a(`tDk[5Nnog/.=P8)8lil1h64otF?L&MYd`Z`#"-A[3E"9rT/>E@$1b*[jFF1fO]`%f;L4o?P8ML]ZK7)XU$4:s!Z'g:Td78h]H$rfP[7;30*_t@4J>$ne`lfG(ml]i`elc&CJ@[&7nI!7W&i61%fE."&`5.uO>(=K\bo(+J$,K*D`e:t-O,99]+%j;YWEl#5%/0U8h2"*cY#-$3n`Oj]_6qO(eM3=l@XK2rmm4tYcQ;"1><gbN*AD&MtG&fa/.6CBbM@;SGf#!%8Yi'<5L_DnJc&8?GXP(OX@I7Q97>;>Si'J6+r$ZG`,=BP66m<'6PC6SFeZ<Qn?PVK4lmX,%)m/GK)ANba(1JH^=).nEC&^`JB7nF`c\E8T!iYOb\nt^hqSJ%9dFfc:r_`=?'rIh@)=GpW@l++BYkrkDX"*"d$=fW5F$OUj'5aaTI'Bj=eU5/3r+qA/L[c4fAnLUKUeCK#nSpN<T[<J6/%>q`REHqgd]S6f0u9lX1KSM'e*gei$gE@i55h`PZKj(9kgi%#Hc(<GeTlkBE><jR[6&mpB8<h+3e1-fe8?Z34cFY0522pf[.$;LOYoj22uIaFJ$MZ_f%gEh_)$;$V(V1!XEYVlg8!Go:+PDN`\;OYWh#4K+'IaAfK/`0Jp'k5hl['n`.31$)CW%[5dBGY1S'&c)9?`<I^`AF$E^K^>cF:#DMQgs?G#:;q[lo@XO^cL,o"X>ZQ8X;9&"Vaqk>=sM'<"JkB9A,S7aRm2G*kUf(q0#E!H4OYf/diq@ERUFE!XcBsUqn#aO?q-AH-XVk8=IQ#Ne_DHpiK=$3u'I'aFW:[O56bRD\4NA#[Y?8+\jo\V"e\6@2<2aA#+?:JQt1.J%DD&!BsJ+%Jcmo5NrQSuQa_8+aF8$?#_Dc4Ia``XQ#]Jg9RW?5W\+b9_H?k]R_neN]joM_[]P(P6YR#EqC-D@%I]5ieuf5`Lm[RTmZFZiVh9oCB!3R3Klc?[n*2))V#?m6G::W.e*UhGER,DlT)'j-VXkTRqnMj1\335P2Q*5]bLW;N@FSXg6rQJZ)ZKP:X_:;7dd7pG14^Tht;%%_%LaCHDp9S;4%pL%X\~>endstream
|
Gaua>h/Car&A[3#=54Gr0O3@Plsrn>W.RZT$l4qdp6)7Yeuc?8PCePaj1.-df;7`cF_E1$e+htkI[@\<K`T/Nq;6Q$n2?""!<^=b4U3<iJFk&pdb^$+S#qo0#pnbZO,8[&Nn\mT7rf=FiEV4q!D.M[:kgKH`c$d2XN)0VKS562(n??P(FZZ)E1,>$;5;_n8NbI[j)`0f:U8[AF99:f_3`!s8NJhW%d>:80C%Yk]*sZ16ZGsB\ic$q9SGT^:rJ7q5;od"<8Q'9$:Po0?GdNH>!ioKKrQFkWa`6?5)_GDUuFZqRA(X3ZETO(]hI/%F[r=q6s2#qm%dek$gPW]Y66(Fn<c*eNr$"m'3g-tO-M"/5-TVl]$TJ!EO-W&6A?`u@CVfnP:EW1AP;g(!2!Zn&II-(>ufIS\.p\6$c.1l%="`J"#68S1355jRVrJ)]"-C/lakI+7bipIm\':bU:[Q^/a^f%QeiXMnUH5Jn&+IkHo3C4FaD"-\XcF$WOD?5gnH1f!E8N@2$S!=A'CC@afCOViMXZ8iM_8nj/]?@1q:h92URe5-+q/!X/=1452T&KM_1!c(ZOEGLBblGZeV<[#?gF'HZlC[$:Ei1pf_FA#KP+"Vg5ZTTA38TXmgNgk)oFTRqgEhs(Y$S1eHNm^WS*4=Eaj<mpS<D;&A^3l5p84G,TIPe+#CZ_cPV9s2m)%`n'[/)RSfq=h0YDi"$[[e?/o.`.31!)CRM05dB;\F$0O_23;2/r+`(^'j@52\5GD$h%ij1T"="%]+J,UXB&_!,o"X>ZPi@+9&&Npp3B0N'1E&tcL$X61!a<\D3Fa6Xn>9^jr!kW@#KGXn/\)d3]K\i[+QuGKZ\6S'14QgdgnUt9"<Ai26Jb6$kMbh+72Go>Pk0X1W+6_m0d:"(Q?]HrO:'7XqpX(%?NucQdOKKN6u<T>D9r6h`IC\3u''uV2_[F0Q8r@d4=A,S('-FE>HY!mnEmXlGm#08`0T,fu311]S4KHIG_$;i1PrU-DP^R8a*(k[[\Q>\"&A`XV(M/?&t4He)GpYNjGI4F4N0p%?)n`QjAH('/<lM.2no.LuJDM"d\3YHAM+5,3>p:52t6=p>No2<;t>6b$GTaQ="%/KP:W\T=u>_#@$CI^T_n:$m''#aCHE[9S;2/qj(lU~>endstream
|
||||||
endobj
|
endobj
|
||||||
26 0 obj
|
26 0 obj
|
||||||
<<
|
<<
|
||||||
@@ -192,10 +192,10 @@ Gat%"D/\/e&H;*)EQs9T.l'TD])iD[g8o/<TP5<]+,0ds,>g@9]nN7uXOrTkOcj'dc#AXfMQJts*M;N*
|
|||||||
endobj
|
endobj
|
||||||
27 0 obj
|
27 0 obj
|
||||||
<<
|
<<
|
||||||
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1030
|
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1026
|
||||||
>>
|
>>
|
||||||
stream
|
stream
|
||||||
Gau`R>BA7S&:Vs/f\li4LT8qUG%[0C3bb'NC!3L7M&52#NZjN_=im*&ld&aS6^oF_5*3[,-?=:3h/@5(6m9F&L>QGEn32KB'+0si2?kXeJF"6[=mr4XgFlPn\7,luKSUm^\?1N>MT$26A$M+08BOh]2I+ok@@L5rO\pp5_W*%:^hFY#6DMeXT*;t<4U/ZY,ctF<h`4/QMRL.')>(,=G?;S@i,k@&n`@fP\3,Q*`VJH8i1Ij)9?=h7p8YCfBcDATZ,KBnkdTif>3g*Q;:)IRdWNP2N.<qrVuu12VVS=/q%O/tS)n6m?dqRV^he-``BADjPth63ND_'[j/PKeWDtu^ZVr,;29B$5nK'10ap&UjKf_C/O>b_sAQ5ZD<u&]2^d?Gg1g5Q]=aA(Y,9WO*AL\#J4Pc8ZRF&A@.8b%-Ir?/ub&KG/_6^Dlr=KC\;EGD=kKEe7E7Na]_H54/=1STS+hO<2Q2Fd/o[nS3.f%BR7D.29WJ6qIh\l?>;,=cUTTf^%gKd+$Pcsa=>M=MUjM./_DDImbhW:W%XBIb`8C7+)'o4q;;j`9fLJqK:"-<8]6iIVM;JF`#KA\^?9X7qYE%+@(ObWiL1USJ2a(L%b&*LjrXFlHkUEnj`:,:f@?gDVg3orY-k[mg):ZOld1)on#`UIb+eKEe>Y!$fk2IL0ori&&J4Ej&<h,tK:o"IC"%CX;:05u)-Cn$:1916@uf"pNQ]@V#`ltB8kf5TtD:M;#.'>%nuT1rl+KJm0<D'9t`?C07!!X94O?@*ZM-Y/XBs%=l$(T%H`\[;-U<0`hjN5Bc?Uab+Y^f-4agSC+igchGR4+?hT>@/IOV6Nd>8##]@FdqU=Hj4IsTU=s&a.mV1TQTXlFkpn$q;-mH)g7;7Ym#=8X>\n%UV0I`l*!1c?fAZ9Xrc^#-FWU\*)9cXXVm`:ROY+X4<WZTi^#+?'[VhdTjfTf$PH;SLQfB#Nft`Ki+u9@s(_;Gc:9K?-6Bn\Ylkl0?\WN3"/T-^>m[_*&oWnogk,gErrB/VXhk~>endstream
|
Gau`R>BA7S&:Vs/f\li4LT8qUG%[0C3bb'NC!3L7M&52#NZjN_=im*&ld&aS6^oF_5*3[,-?=:3h/@5(6m9F&L>QGEn32KB'+0si2?kXeJF"6[=mr4XgFlPn\7,luKSUm^\?1N>MT$26A$M+08BOh]2I+ok@@L5rO\pp5_W*%:^hFY#6DMeXT*;t<4U/ZY,ctF<h`4/QMRL.')>(,=G?;S@i,k@&n`@fP\3,Q*`VJH8i1Ij)9?=h7p8YCfBcDATZ,KBnkdTif>3g*Q;:)IRdWNP2N.<qrVuu12VVS=/q%O/tS)n6m?dqRV^he-``BADjPth63ND_'[j/PKeWDtu^ZVr,;29B$5nK'10ap&UjKf_C/O>b_sAQ5ZD<u&]2^d?Gg1g5Q]=aA(Y,9WO*AL\#J4Pc8ZRF&A@.8b%-Ir?/ub&KG/_6^Dlr=KC\;EGD=kKEe7E7Na]_H54/=1STS+hO<2Q2Fd/o[nS3.f%BR7D.29WJ6qIh\l?>;,=cUTTf^%gKd+$Pcsa=>M=MUjM./_DDImbhW:W%XBIb`8C7+)'o4q;;j`9fLJqK:"-<8]6iIVM;JF`#KA\^?9X7qYE%+@(ObWiL1USJ2a(L%b&*LjrXFlHkUEnj`:,:f@?gDVg3orY-k[mg):ZOld1)on#`UIb+eKEe>Y!$fk2IL0ori&&J4Ej&<h,tK:o"IC"%CX;:05u)-Cn$:1916@uf"pNQ]@V#`ltB8kf5TtD:M;#.'>%nuT1rl+KJm0<4jL_nXh+a)*`-0iS;/JfQ_sdU%u_=%#jf(.pif]&Qth<C3s!comMk)``h[JB8T&DfEK2&(qWt>f&$"&[Vn40NHQT^kFCm]=[kLWPFReBg3,d0TG0[\e2PGNe;n*:K8)Dl"]6%)CDTpMba7/`Qjl!=]:h!LenpD*THi"8m/WJ=\:BXB,E]]kOE?t&WQ4XJf`e@6oQE:=IW/SV+hET%P&k?oLW9Sl?qdJY4QPU;G?h$71Mp!b@34"1ZXIZMI=*]YS7nE&6KAM*jhl>W~>endstream
|
||||||
endobj
|
endobj
|
||||||
28 0 obj
|
28 0 obj
|
||||||
<<
|
<<
|
||||||
@@ -229,16 +229,16 @@ xref
|
|||||||
0000003059 00000 n
|
0000003059 00000 n
|
||||||
0000004285 00000 n
|
0000004285 00000 n
|
||||||
0000005517 00000 n
|
0000005517 00000 n
|
||||||
0000006799 00000 n
|
0000006880 00000 n
|
||||||
0000008166 00000 n
|
0000008296 00000 n
|
||||||
0000008704 00000 n
|
0000009051 00000 n
|
||||||
0000009953 00000 n
|
0000010300 00000 n
|
||||||
0000011352 00000 n
|
0000011699 00000 n
|
||||||
0000012474 00000 n
|
0000012817 00000 n
|
||||||
trailer
|
trailer
|
||||||
<<
|
<<
|
||||||
/ID
|
/ID
|
||||||
[<303f86ceb380f890dac0dcd7915bdf2d><303f86ceb380f890dac0dcd7915bdf2d>]
|
[<b30d1c5682da2c4dafdfbec5b82f9933><b30d1c5682da2c4dafdfbec5b82f9933>]
|
||||||
% ReportLab generated PDF document -- digest (opensource)
|
% ReportLab generated PDF document -- digest (opensource)
|
||||||
|
|
||||||
/Info 18 0 R
|
/Info 18 0 R
|
||||||
@@ -246,5 +246,5 @@ trailer
|
|||||||
/Size 29
|
/Size 29
|
||||||
>>
|
>>
|
||||||
startxref
|
startxref
|
||||||
13544
|
13887
|
||||||
%%EOF
|
%%EOF
|
||||||
|
|||||||
231
Les04-TypeScript-Fundamentals/Les04-Lesopdracht.pdf
Normal file
231
Les04-TypeScript-Fundamentals/Les04-Lesopdracht.pdf
Normal file
@@ -0,0 +1,231 @@
|
|||||||
|
%PDF-1.4
|
||||||
|
%<25><><EFBFBD><EFBFBD> ReportLab Generated PDF document (opensource)
|
||||||
|
1 0 obj
|
||||||
|
<<
|
||||||
|
/F1 2 0 R /F2 3 0 R /F3 4 0 R /F4 5 0 R /F5 6 0 R /F6 8 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
2 0 obj
|
||||||
|
<<
|
||||||
|
/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
3 0 obj
|
||||||
|
<<
|
||||||
|
/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
4 0 obj
|
||||||
|
<<
|
||||||
|
/BaseFont /Helvetica-Oblique /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
5 0 obj
|
||||||
|
<<
|
||||||
|
/BaseFont /ZapfDingbats /Name /F4 /Subtype /Type1 /Type /Font
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
6 0 obj
|
||||||
|
<<
|
||||||
|
/BaseFont /Courier /Encoding /WinAnsiEncoding /Name /F5 /Subtype /Type1 /Type /Font
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
7 0 obj
|
||||||
|
<<
|
||||||
|
/Contents 19 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
|
||||||
|
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||||
|
>> /Rotate 0 /Trans <<
|
||||||
|
|
||||||
|
>>
|
||||||
|
/Type /Page
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
8 0 obj
|
||||||
|
<<
|
||||||
|
/BaseFont /Symbol /Name /F6 /Subtype /Type1 /Type /Font
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
9 0 obj
|
||||||
|
<<
|
||||||
|
/Contents 20 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
|
||||||
|
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||||
|
>> /Rotate 0 /Trans <<
|
||||||
|
|
||||||
|
>>
|
||||||
|
/Type /Page
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
10 0 obj
|
||||||
|
<<
|
||||||
|
/Contents 21 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
|
||||||
|
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||||
|
>> /Rotate 0 /Trans <<
|
||||||
|
|
||||||
|
>>
|
||||||
|
/Type /Page
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
11 0 obj
|
||||||
|
<<
|
||||||
|
/Contents 22 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
|
||||||
|
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||||
|
>> /Rotate 0 /Trans <<
|
||||||
|
|
||||||
|
>>
|
||||||
|
/Type /Page
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
12 0 obj
|
||||||
|
<<
|
||||||
|
/Contents 23 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
|
||||||
|
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||||
|
>> /Rotate 0 /Trans <<
|
||||||
|
|
||||||
|
>>
|
||||||
|
/Type /Page
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
13 0 obj
|
||||||
|
<<
|
||||||
|
/Contents 24 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
|
||||||
|
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||||
|
>> /Rotate 0 /Trans <<
|
||||||
|
|
||||||
|
>>
|
||||||
|
/Type /Page
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
14 0 obj
|
||||||
|
<<
|
||||||
|
/Contents 25 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
|
||||||
|
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||||
|
>> /Rotate 0 /Trans <<
|
||||||
|
|
||||||
|
>>
|
||||||
|
/Type /Page
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
15 0 obj
|
||||||
|
<<
|
||||||
|
/Contents 26 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 18 0 R /Resources <<
|
||||||
|
/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ]
|
||||||
|
>> /Rotate 0 /Trans <<
|
||||||
|
|
||||||
|
>>
|
||||||
|
/Type /Page
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
16 0 obj
|
||||||
|
<<
|
||||||
|
/PageMode /UseNone /Pages 18 0 R /Type /Catalog
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
17 0 obj
|
||||||
|
<<
|
||||||
|
/Author (\(anonymous\)) /CreationDate (D:20260303132400+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260303132400+00'00') /Producer (ReportLab PDF Library - \(opensource\))
|
||||||
|
/Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
18 0 obj
|
||||||
|
<<
|
||||||
|
/Count 8 /Kids [ 7 0 R 9 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R 15 0 R ] /Type /Pages
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
19 0 obj
|
||||||
|
<<
|
||||||
|
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1195
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
Gau`R95iQE&AJ$C9Q*Z<ZQ_h8<%a*9FkRO4Va6Tm`>@'6*''2G:ib7oqr;lk4^qW8Z^8YJJ-#6rRdVu'9YnUWFl/)Yi-c%&c6uKnnL[R435cUeNCOL(g7B"Apjt4+I@j'U!k^G&H>0#"IfEhE\.gJ&J1qc0J-(R0`:59g3Pn;7^5Ihu\A/js0POb,6J):u6j,?&n3EM\pd.ur:E]YE<o4Z>>LtR2(<K_tXc"E[<tN-#amL1&E:m\068Ba5/e5]/JaE.24Ug#:n::p:A:oIHi<MN'Zg9'8$>Mt+&\'CXW_D!Ja_JG6T+oH+nr5OV-rk/9m1<1[O\!R%>*2dl1?9=ea,'54nI#1:$4,b@!'X"N6_F/c0Y]i&pnPV+7bh;q4cTaZH&4IH/1#tGK>Ib@(^7BeOY.OY:BI4!9rNl4N43mhUNt2`m+@8;]BUHK_lW=*[Bs7"Rkt:2pG#;Xa4VrEd`oe%3%CMl0a?.0aN@5:CsL((Bkbjm2*Z]-Tfq.q)dBb+"[4;F>"s+LD`:>af&cY+e7l?bmo6=0@?h?B;e^k9S=Wrmhoq.A+]\eO9CcS[ku<dFohsTbAaUYJ.>B-YPnXrq-7,nA!57An#F+E"-X7WL55.&,,4=Uf2mtBq[9i_a,(AaLjGa2=<O.s\=]MTZK#h!^/T%baT^?T\G^OQN_l$H.151dUe(Gg)^kV794lV/N49W_!H,%+,.HWC@b/R>$@&Ydd^8nOD]j@]gf@E1MSpef'G%M!=4R.<0H7/%'e!%po[&<_J46K`F0r\T4dR0^C(C?:0D4O9!A"nT>:@_Y@1.I`?SogF2W,U?(\l`UU;PlV^lu/^cQSf[j=hF=YDcSk#];pR5dF_/tADj9bW>H9lpXgY;=X<kBLJc+UMc&.tJWjMiTdt(q4'IdF(>-=B<_J2fREZIA)KPD-#Nf\t\3h1LWup#p!__"BPH[X3qTZ(f(lsIhT[s]>UEUmKrdWDeD&Qc2`=N@6ch#h44Is`X?C;Ai#=OBh5DY,MrVk)qYZ@QP'CtRMn#BIWRAsPIO8;A7lQklq(j)Xm*9Iq/->\E)o`7^WZLr140^2j)]dfe9/1)/2LS1eCCsdQ-YFB'9!rc`6\+YLl\Z9$iEW:pW4S8-X!=:knTR1/m=?CI=@Pg?R=UY/qDbr4nZcg,/iNpPV>23hN+h.5(=lQIdkZ30eq?PD-D&i~>endstream
|
||||||
|
endobj
|
||||||
|
20 0 obj
|
||||||
|
<<
|
||||||
|
/Filter [ /ASCII85Decode /FlateDecode ] /Length 887
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
Gau0A9iKe#&A@7.CcS=G#YC=mM-HZ-V8KYoG^ARm0o6/CNbrUqd/<aC/B:RRC(;DYM+2gfGjhb8bCJTmgAf7ri$<lKEs@RjEXthT!QcXX-)7@MlXhV@,/lR\;A%#EN6=]BDrH<BpsY$9ac0\YXjS]9<f*1nW+MeEGe;E!e!P[._YsH>M6(nh=@0=_(m6m?QXDp;_Dmb%@&mtB"VBSAIS1M2o9CgLZaDc/rfjj_<3C$IYt[kq'ubbIr#(YX,l:p(p"Kh`,*^4:$5r=&G:>r#e?0K\VZ2c;-qtS9_-qYZ1o4?9^IO`K#iD&UAQ9N]OC8b##1CS/'bT[OIsOOU\"n*gL%h-a<j_ge_pQ$YL;K0phNE/UfaYhf?8lSa=^/_lQ8YAhI,\sj4Nngel^?M3_:%[&3V%1k/eB,c.5`/_'\hcTN*23kON602mtSltD$-]pNdSBfV/&7(Wt=e/QLDmo*>>HJ>oA+&Qlb$F\GPFHC99sZ<FM*]/XNI>j?EY2I<B[YQeAe+,e_qOQHM9#>4\j^US>dn-toLhG4Go[$[BprVCZK63'3WG6IQapL'&1>h7Ym6/ZN@l'2O%DWA$`HNP*'6AoYa6&@BKk&ED(=U.*"p(l7at3!d@P'?M^m$o\S)YnPUu)076g/!ncD>)F?CrL.kk%Z^.?&riX=AoK2tee&W:iNH`Q5-\7ZcRLl'4FS$q0mpI7EgV*[Wf!g2>L$`GV@C$R+$R3@e&#]LT7)<tm*UPj*j[b[Ek,B,%&V=egs'8)i&4#l'm4Bbbt%cErAoWU'e%J#6m<HdM-^J##84/$PkhZrT(F2c+[hH+bB&"@`g=+<E=</>bF>qF_HC4uK:F#JIpKk!@YSIdTd[3#Ga6QZScXDX'1RHP[uhLY~>endstream
|
||||||
|
endobj
|
||||||
|
21 0 obj
|
||||||
|
<<
|
||||||
|
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1127
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
Gb"/fbAu;j'Sc?E`Q=-NVQM2f(V4?6[&(;\::nV;0oFuk&s3WojQV#-9L9!hLRND8nVf3.oUhoIaRX6V":prn_Z@PZ!$AsPTF?EVT\SN<*'lZ"4>^a!e+G<IAIO':Mu,]U@1BkgRHK+>R)^3S<f=@FC7(rnnmRREAo/6pQ=YDrpg>B&m\"6:@(/6N_h`SCfCFj0fKKb'H7gd=#6SXG[(j&10"3"6LL;LqHbLn$#Nt#"Sn0p/+/_RkS(YRto%`24eO18502q[SoD)O"IAfXOos%\lbIpTs-(`FqqV1FQ9u>b`l1unVmH$-leq<&V?uK'HbpM^OTTQm(15J,tVn>PV)L4c@a!-,-mA!`_S#m'6fbSeB]>",5V]F"'cV!9!HeGKFYnZ&LRfn!KR*&kOJ"6hj':9(`BnlSK8[JM4%%[^0hi1V](%gUO<#(MEOd]X?g27->H"0<`%hlNl(7>Bd"pS8.E7G8t[nBZD\5BOlDVt(g)TY]DG9nLFUH"/-18t8UNkEN-(!TM$g_B$nY%Mg1WZFh`T0Omrc]a=b9?N:T4a1s<")14:-m9!ErO=?kkf*;0.a,&VXJu@#S0f?;880<l\Lo,Jg#`QhQWQa4^^"!-'ZNU1<Tqtq;<]m<dU-1I0!;UR*lcXd`E4N"Wgd9I"6FH]dt*1T%],UL_VM%A7%3%$?mKVFl.2#gjdB<^$'o!]*Cb'#e^g38cKC@YRL2fHjn[aP;_bt(gXP4r0E.@s3bTb-_qjAH`@?AU>+W\>F\D[1`h-)JqsTUFMEa-9")5n"<+]@Cn+c3_mqWZ\@9T\V#qdh89=USfdeH#D=3-qk]63nPV6T7dC-X:g>=X*;,]O++j)Bk4G[X[/8Q-oseZn?2A-TT-'72r0<e90il5;\IW8$Yj'ZpaolS*1*"EA0shTsPTc#=]nN_6.Y'k*@b=GK7J9WpKffo8LS.b<tbK_]B"l\M/Cdo\-JLGP]\d\Ljte90ESNMEY^RkH&SX<tW8p6@ti<VOr\I,AQ2:<[/:7Vh)faKmfmqhLc\#E*Ya3%_?SJdlf3ONS!GaK<Zq3Os>q_G;oc.E?KIRWt2d3sc'C8<)MffBBj)jRbqI5D^VQKQgVo-]Ma_MNrFoq`s1#8u#qo~>endstream
|
||||||
|
endobj
|
||||||
|
22 0 obj
|
||||||
|
<<
|
||||||
|
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1082
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
Gb!;c?#Q2d'Re<2\;t?jGd]=2qUTEI(2_kT>$q-CLsnBgP@;hFrq]pA7oStIl+1RqMBZPjO3`N,NYt[+=T'2:!,!If4D2GhKG.aF#RK>*l`g,Y`tgINOEh=[5Y@C<Y4(:ip$M%eYC!.876.kUP(3cGL5pdh_;r*r!`'/a!=:%EHuVAXqV.l3JAfhe;eSl4V_!,BRQ',79u3$7VX)R4eb4Csdrbr2K'9t-;O)ksJoD(UE<Z.UY;KGM&-kYf"<RQ2.6(%DA<ku]JtN`VVIHsM-L`#C*e)33LW%(F9ta5a8BY^q\56[@VRsg?+F$tI]u(b4!C&53>\I]B'&+C,H+CpZ;n7<218PXI^"la"^M>_)_q!t$I?n"D?a;5:X+$9Y=;?apRB*+#Fn,M/Z@$P+:&;ejS:boGi\FPQE9hofXR>NjJ2[Yq^WKMrd\)F"[F&\&-#d'iRLNQ4M%XAb@l_[k<gLOqm1"KRdo-A+1K.J_ZUd`dDW#VI)X?R3PH!_3W_HV=\#[5$EDfuB-=BhNcE<12n.B>1>jbQlTUuKkHI[EfI*$@o_RV&Lb+a,'cpnl>6gr:?$]*h?l8MG;Fs,S/W8@f,D&48#V?<m!\Tf%ck_Gpkd>'Xkp9B=J_hep]B^T?k_jpV)#sSo:K[[%eqTuo=qC))MN]`9r[h?MH4n^-&k-\o4]\t8Pf8$tJ-g9hOfEoeOQC5@t)t[]@1lrdmSX9tLn+L+hn$IdH?*NY?cpF`bfWVTQ-HW"P!49!7qU>L?7o8L1:)1a>$rQ9-BLg+NfSFe\Z+;L%g8`[,r%cFD@6$E#muc-T'H"/-<,Q.l.T[tRo;t+uP$;m[mdm5phGUI.fHX=nHkN-n%Nq5U3\sWbInPFoFrpaVP,iH]im/:?gBuI7HZ:MR^grSb#8fc]4Q[J%s)?nED;toJ@<"2CdFLD;[oDU"C2u72PF88/QNgF&K8oZu!c4AWAaE.Bm/>*a\nM%.9p`",$P<gGfE[?M*d%Q-0#[kBfWaH.JDpi$R>[3&MDXellPCrAC$TQ)lWF70IIfMm@jZa;+2<fnD0Co?DmCp^%t9D=[>@/MnV#b;`^[$W~>endstream
|
||||||
|
endobj
|
||||||
|
23 0 obj
|
||||||
|
<<
|
||||||
|
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1255
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
Gatn&?#SIU'Sc)J/'`J&'f@4bkf^b<UmSK29q/67eskLB1@<MU.@64b2;!uI&LBqR&ksi`#`&o[OF6jfj>dPN%j1*9VAk%E$!^e8TF?te:dG402_[rY^0]/515H2H(rLPc6kh?qG(DjZ(A^95$\_B-`%2Z`LL"4'2p;eaWf9=^'-;I+"BN@u,u.W,)!9C\\>!1d+AoHt[N?=*q#]9/:,Xg&I$MLlFSZSuS&-2[hHdgeIXM)=,V)Dl<b$W/::6.0$CRhl5MON<ri`6#iuY4#W>"Eink(B?ETHX,#c0Xok^X`]Nk;Mg(ql+PAV!V7N@]/Yag\B%i%MGCSB/lh^R8V3f^s2i7FUe.MChA%r+@8#8bM,B958Pu'qOrr<BU"T_QNRh:neki`oNsIF`%Q-\$23"bF-M;+`O2QH`PVrFd?'tA^bsqGP(/lSCqakb4`m#niTk!4:VL*5[#\Q'i(VLrEb/ILd2)K=FJTjT*Hm932#cl/<j-]<BXmG=<Aam_56+Ii$5gG.(?Y8HPkRVQ>2EKjpJQ/qg4T&@'Ao_YNDcE8)SI%<6j*iTmXXc:q`q.HqLNtQ?>.Ei!$2._H:>@c\I#^0dFOG_CcBDB`$*XJkqIoWU)sK^"8/eKOa3W$A&L1C;5P@Vt>ntX$pl6].!%;*%B*4.P2`[)3T<NcgBiu?9eU6=\>'\_G.6Vj>j&)?n1U8S4@GrGrulV\D:2"6Y::Mo<#<pmPS@1o4H2hn%%n2WU<>r^SmRVl1L6VoD2%MEAY,k#3K*?dAd>;Q$?_&8omi'H3s=l2#mdB*_Q.c:(UadIi]1#"TC+=l(I%qO*=Uj+SW.$G=crFO$2KB_)r(HiI=[O<d"ok1pehdcK'sX:q"J5Yhidm1="uQ8'um;TW>)')QssK6oW_u]!<3T+8GrX4](`"V;;"`0bKr)/p*&\rT?H_1^2qie$A1K(Q;oG2Zt1]H'd1?X.pHoh52[;R#A[,l`SZ05+no`4so>1s+$m&-Qn()-:He*P\XAM89<!tR+ZMTD#\XPpd6a-FYTT&m6;,FE!"WQPIb!q_(e)P_XX?,+,#?R'><:%:#&%6QbpAKPnk1V1QR=IWcDasn`Zb+<+afWVJ@aN5O/r(J`U0@,[!I-XB%E!aR-Y<TiZ,b?Q_2dNW%*d#-h+g4a`l380$Om3@9[2o?ge"_ZosN?Wcsd"=T'rrQrq0h4Vl!Er+<@/Q.G)36sOkmiQHIHjd^ObGlE=QX\cq-^WOXn5&\o`P7B60,a~>endstream
|
||||||
|
endobj
|
||||||
|
24 0 obj
|
||||||
|
<<
|
||||||
|
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1087
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
Gatm9?$"IU&:O#N=Pa*X<9mcV$POY1B'?(9Gj:4QW34V%16s^)r;+$g'B>CC>\<C`'.;MaqWun1@gWNK1k$5u^rm/3hGBjRZ5]Hg#fr=9aA0I?cs<M(KIb&-Mj,&m3,ZV^m\=8@$!@_eKWSm*(f292&XJl=Va)ZlRRnXM#YkPF--SR8[I(c"_b9/U>WPs('k8/R6FOlHE`Z`4]Ai00jI58`Qq;TG1U:Woib,n6^gqfo1PsM^]T:YI]WpiL[N1LV?FfpDC+KFU0:.SMk>4%Lm;DL3qGZ$)Q##l\DlVTJKpupXoTf(P(:Je2ea:B1*rHQ+>?aJpUU:OkMH4F[W9,Y(4VX6^,01r;E?^?N)MpkZKVUk2Q3nTOG1XZL;Q6li6)TD%,VdYK\9Wft__mMek9FHf=Eujl#ru*`dG8[cC%gt(!SQT4eOTD=#bS::(RNh0q5:\Tme(`'\RIrG/KX:QLbX?h:@,feDJa@uCC@l&qlPXS=_CC>WUmhR@HD=sjQc"*;<B07PNS-/"u;<>WJoh]=$e9Li0K(f3['WrJ^Oiu[b&82oIhAInu%F=($)P2D$3UnL=/ru9j9uo7Fd&dN[%7X&]0pUQkW#Mn\8$#l`,`s\Y_l"D_,Ftfe5cq[6<0FF.J(%%mrI/"Pu-HFk*R4AI+mE/M=0*iYG;r>ZY]C=kHc'R5a5kUJ2&Oj4@6pg([Uur9r]$&$87H*aFW?E5$f&QUj'pZbFLbHX%SCMTOoYK/t8Ts0k#nX@JuT'Z\N)M`;R*HAm>85iCM.pY+8@4ieib>D:ARTdH3.Wt-S]mG-D24b<FK8*tQ2gUO[VKtFKkQQZOShRWH25-pq+/@i'ud/KH>j+?6AP/JdAYY?*:0Mi6Aq3?IT$XP://5p$q&,/KOYJ"(rM-E0a5Ju8q5N^sQAO9=Lo4C*r</oHh*Zt+1>8$*lfq63_*h5J1`Oa:b8Eb^FpfSchGolXiEeQs)j3)FrWKe"IfCjR!p:k\B3F4eG;.h^'9qDXW$!eRb674N/S%K7G?$f(#8Z:-9]<`g/=.E(b@1i$Qj,<f``Rjit&LI-jleH)Sr$O.u-3lEE#q,`S^9.[@~>endstream
|
||||||
|
endobj
|
||||||
|
25 0 obj
|
||||||
|
<<
|
||||||
|
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1062
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
Gaua=?Z4[W'ZJu..ILLH\&2=2U*Qcm"nJQaclgFKD$,O,W:I>i>9Xf>8[*[??."\$H8/qp%0e)GQfL1'ktmTE:-T>NAHQn7_n1s2KS4^R688Z>'qFHNqh`u!9P,hJUnmU@WS'tnYR+S\16$iVRAs?hb@IJ`%Tc@u(`"Jjh^0Jj=Hmhi",F+*99]'6l5"If.0eU]c*k45r[^b7-"8qsDd]#@hVQ)pOFOu,rH.c<neL5(q]W_hAi?Mj8Yt^s^06S\Tmf5bTt54i#!bI3R,l(oYW*@+0'jfD#R>#*#i5H3Y,WDP+&'?t/,5gDi^_]"T,-lfVcs\-l`p/f6>.C*)EW0n4=oiO#Mh,E6>@ZJkaZeB@+Q,.r\WmlT#FAL.bTS.:=>hb*&@?G;gre2"/TiQ1k$EGXMgfq41NT%213Bg(M6G*8&DU^U^5Z_l3trpDIM+0HCR,f3].[9bUj_kmZ=0DLs/%r.[pn?j.JgL:7#(cC#N#n2hfl6W#LWF$ap"lCo71Ale)eB5<ftje%bbsDi7QC2W1OIltpQscQf>q$G^s^bk11iY-b/Fr,(C!0d*i]E,>Da?<O)a'3=`NN#u]4'EsKQ1jbY5CoAGr<"W'tl<d;%9jl)6Vc>Sq6cGff"a=GNWRa??.:9b(fEOIT2bj==(1BeA.\a8r7O,Ki=MGXd>$\t>V:F=Epkk?cX-SK&(1rbFl@BZ13KDRI;G*VAffkj%_M@u-1h-_;85C9fh6^:F4,MI\9"PpuL>K>t=%VIRL4DH&XpL6&7VqpsH+fZa]I4bITe-QP*E-G5M;$ZA4aqJ`<PSP!Jh@YdrLD[Er&CN)MSq]-[)idMj7jo/r^+)KNguJ6+#8Z`e_-X?JfX4l\>HANXA+aE;k^JI1WX:H6JHRfe?fNo6V/PhVGHUS[NRZE!I;+tV\Lsu4PJ<bQd:DE5H\n_qW@/8[gs]*%9^WZUoVbBCqkq7TYq']VF6`se.h#/`u2+K;hN_J(5^hD7klW*]&hej(%$S;4hTFicb$Jrd91cIK\Tnkr-:l+(DV,Tdb9#rG[&N=.j09!*[^mg/:^lq~>endstream
|
||||||
|
endobj
|
||||||
|
26 0 obj
|
||||||
|
<<
|
||||||
|
/Filter [ /ASCII85Decode /FlateDecode ] /Length 1035
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
Gau`RgQ(#J%"4bO@%WStKuT;;>@37o1>=F5?FI\C"m/6n(ro3!AL1osZUOo-PiI!MQSb(9:^@=<;PXd5W?ZJ?B^tf*C]L&%i:Ms1(GM6ZQV>8,%&:qdh^?(kRH?%qKn)i4/5Pi(_T5Ai]MFg1U]I'Bd*o<(GSH<0mBRH8-^Pd*_>=8_%^bc!S?"0BVJ?<Q^pi/2KDR?*m]a(W6g+qmB@u;f?AKl?[^G_BT*Q0,mC$>H=J1G!d&mrI%,3SlTZMg_gfmsk'Gs=kiC+Lh][b=sn%TeBDlhWbop76:1P7b-n71iJ)#Y*ckRVDpl<;(<l.;]$X7A4NBb<.mF+/pq1eW/p*=5PC2+T]MA'f&CF]nV7,qP8_V.$%hjl$.kr=B4s"tMt*B_;Qqd0VW4RluSf6mN)^V+;(/&SJfWDFD./0!Y'-,&@\DJgjPNf]j@"CQ5Zm0EBE7=K]H`g\IJ9o1F;$UA()LLkbRB/qtH$m_^Elf]V:Rn=1e%>T@9"ML,<3(u[Cj)3kT@WQP%WhpH2><#'$#UM;:.`qY=nWg>4kfPLdq.2t>:f(BI-_n_3%LoV)m:jN=XF73f,M<%@m;1,<aR0prZ,_DXHVBSZ`$'E>_""Qb_8R$%SU>)mt9nSEm<j4QAU)Y`$quJ)QMmg$>/4bWP3`D>gHMeMS4LClA->J=^8)os!UVEB_*KT&_WTFtt,%jar%h?&/;=D9J7WGMjVe>R8F7b$T>ouJJBu"UDP[STN>_!0$mcak]el[.'=)fjA(OgJ&\ja?G1"qD.g\IO"Zf=@l-h:?*nZK6pO`"UEjjSDX.+2H3E#b*X\\eOLeYMB!N6b1Sg)l"snr.-85;_UK/b\UNl'8cP=0H@:;mfr\,Hg1fM'Y^bkOFPWrt4*1k:J_"(Sh;_-q2"[f[_4/_=K1ALF7YQS`7EWd]mT<FWY<db>6W'!gC8f8HbEF=d0Uc$;?2fN:[jCY%KRi4<\\ORP?/ane$O.1R`uCj'gGHZ,SU^['*f.^P!E#,)cn>eiVn2<Rk8=rY7UVq#[fdHN!~>endstream
|
||||||
|
endobj
|
||||||
|
xref
|
||||||
|
0 27
|
||||||
|
0000000000 65535 f
|
||||||
|
0000000061 00000 n
|
||||||
|
0000000142 00000 n
|
||||||
|
0000000249 00000 n
|
||||||
|
0000000361 00000 n
|
||||||
|
0000000476 00000 n
|
||||||
|
0000000559 00000 n
|
||||||
|
0000000664 00000 n
|
||||||
|
0000000869 00000 n
|
||||||
|
0000000946 00000 n
|
||||||
|
0000001151 00000 n
|
||||||
|
0000001357 00000 n
|
||||||
|
0000001563 00000 n
|
||||||
|
0000001769 00000 n
|
||||||
|
0000001975 00000 n
|
||||||
|
0000002181 00000 n
|
||||||
|
0000002387 00000 n
|
||||||
|
0000002457 00000 n
|
||||||
|
0000002738 00000 n
|
||||||
|
0000002846 00000 n
|
||||||
|
0000004133 00000 n
|
||||||
|
0000005111 00000 n
|
||||||
|
0000006330 00000 n
|
||||||
|
0000007504 00000 n
|
||||||
|
0000008851 00000 n
|
||||||
|
0000010030 00000 n
|
||||||
|
0000011184 00000 n
|
||||||
|
trailer
|
||||||
|
<<
|
||||||
|
/ID
|
||||||
|
[<41768306a4f0aa20cd68431a7206cfcf><41768306a4f0aa20cd68431a7206cfcf>]
|
||||||
|
% ReportLab generated PDF document -- digest (opensource)
|
||||||
|
|
||||||
|
/Info 17 0 R
|
||||||
|
/Root 16 0 R
|
||||||
|
/Size 27
|
||||||
|
>>
|
||||||
|
startxref
|
||||||
|
12311
|
||||||
|
%%EOF
|
||||||
Binary file not shown.
Reference in New Issue
Block a user