diff --git a/latex_verze/Makefile b/latex_verze/Makefile new file mode 100644 index 0000000..75ea2c2 --- /dev/null +++ b/latex_verze/Makefile @@ -0,0 +1,60 @@ +# makefile pro preklad LaTeX verze Bc. prace +# makefile for compilation of the thesis +# (c) 2008 Michal Bidlo +# E-mail: bidlom AT fit vutbr cz +# Edited by: dytrych AT fit vutbr cz +#=========================================== +# asi budete chtit prejmenovat / you will probably rename: +CO=xlanro00-Generovani-3D-modelu-otisku-prstu + +all: $(CO).pdf + +pdf: $(CO).pdf + +$(CO).ps: $(CO).dvi + dvips $(CO) + +$(CO).pdf: clean + pdflatex $(CO) + -bibtex $(CO) + # makeglossaries $(CO) + # makeglossaries-lite $(CO) + pdflatex $(CO) + pdflatex $(CO) + +$(CO).dvi: $(CO).tex $(CO).bib + latex $(CO) + -bibtex $(CO) + latex $(CO) + latex $(CO) + +clean: + rm -f *.dvi *.log $(CO).blg $(CO).bbl $(CO).toc *.aux $(CO).out $(CO).lof $(CO).ptc + rm -f $(CO).pdf + rm -f *~ + +pack: + tar czvf $(CO).tar.gz *.tex *.bib *.bst ./template-fig/* ./bib-styles/* ./cls/* zadani.pdf $(CO).pdf Makefile Changelog + +rename: + mv $(CO).tex $(NAME).tex + mv $(CO)-01-kapitoly-chapters.tex $(NAME)-01-kapitoly-chapters.tex + mv $(CO)-01-kapitoly-chapters-en.tex $(NAME)-01-kapitoly-chapters-en.tex + mv $(CO)-20-literatura-bibliography.bib $(NAME)-20-literatura-bibliography.bib + mv $(CO)-30-prilohy-appendices.tex $(NAME)-30-prilohy-appendices.tex + mv $(CO)-30-prilohy-appendices-en.tex $(NAME)-30-prilohy-appendices-en.tex + sed -i "s/$(CO)-01-kapitoly-chapters/$(NAME)-01-kapitoly-chapters/g" $(NAME).tex + sed -i "s/$(CO)-01-kapitoly-chapters-en/$(NAME)-01-kapitoly-chapters-en/g" $(NAME).tex + sed -i "s/$(CO)-20-literatura-bibliography/$(NAME)-20-literatura-bibliography/g" $(NAME).tex + sed -i "s/$(CO)-30-prilohy-appendices/$(NAME)-30-prilohy-appendices/g" $(NAME).tex + sed -i "s/$(CO)-30-prilohy-appendices-en/$(NAME)-30-prilohy-appendices-en/g" $(NAME).tex + sed -i "s/$(CO)/$(NAME)/g" Makefile + +# Pozor, vlna neresi vse (viz popis.txt) / Warning - vlna is not solving all problems (see description.txt) +vlna: + vlna -l $(CO)-*.tex + +# Spocita normostrany / Count of standard pages +normostrany: + echo "scale=2; `detex -n $(CO)-[01]*.tex | sed s/"^ *"/""/ | sed s/"^ *"/""/ | wc -c`/1800;" | bc + diff --git a/latex_verze/bib-styles/Pysny/czplain.bst b/latex_verze/bib-styles/Pysny/czplain.bst new file mode 100644 index 0000000..cde28f0 --- /dev/null +++ b/latex_verze/bib-styles/Pysny/czplain.bst @@ -0,0 +1,3243 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Projekt: IBP - Bakalarska prace +% Nazev prace: BibTeX styl pro CSN ISO 690 a CSN ISO 690-2 +% Autor: Radek Pysny, xpysny00 +% URI: http://www.fit.vutbr.cz/study/DP/BP.php?id=7848 +% +% Soubor: czplain.bst (vznikl upravou plain.bst) +% Datum: Vytvoren 15. unora 2009. +% Posledni uprava 10. kveten 2009, 16:55. +% Adam Herout upravil pro šablonu BP/DP FIT: 31.7.2019 +% Jaroslav Dytrych uvedl do souladu s normou +% pro šablonu BP/DP FIT: 10.10.2019 +% Popis: Český bibliografický styl. +% Pouziti: +% Kodovani: UTF-8 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%% VOLBY PRO NASTAVENI BIBLIOGRAFICKEHO STYLU %%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% -- Maximalni pocet zpracovanych autoru. +% Pokud obsahuje polozka author seznam o vice nez opt.aa autoru, objevi se +% v bibliograficke citaci prave opt.aa autoru. Tento vycet autoru bude zakoncen +% retezcem urcenym volbou opt.etal. +% FUNCTION {opt.aa} { #3 } +% FUNCTION {opt.aa} { #4 } +FUNCTION {opt.aa} { #5 } +% FUNCTION {opt.aa} { #99 } + + +% -- Maximalni pocet zpracovanych editoru. +% Analogie k volbe opt.aa. +% FUNCTION {opt.ae} { #1 } +% FUNCTION {opt.ae} { #2 } +% FUNCTION {opt.ae} { #3 } +% FUNCTION {opt.ae} { #4 } +FUNCTION {opt.ae} { #5 } + +% -- Oddelovac mezi jednotlivymi jmeny ve vyctu. +% Pouziva se pro spojeni jmen ve vyctu. Vyjimkou jsou posledni dve jmena, ktera +% jsou spojena pomoci retezce urceneho volbou opt.sep.ln. +FUNCTION {opt.sep.bn} { ", " } +% FUNCTION {opt.sep.bn} { " -- " } + +% -- Oddelovac mezi poslednimi dvema jmeny ve vyctu. +FUNCTION {opt.sep.ln} { " a~" } +% FUNCTION {opt.sep.ln} { " -- " } + +% -- Naznak nedokonceneho vyctu jmen. +% Pokud byl presazen pocet jmen danych limitujicimi volbami opt.aa nebo opt.ae. +% Dale se pouzije tehdy, kdyz je misto posledniho jmena pouzito klicove slovo +% "others". +FUNCTION {opt.etal} { "et~al." } +% FUNCTION {opt.etal} { "aj." } +% FUNCTION {opt.etal} { "a kol." } + +% -- Oznaceni editora (redaktora). +% Jmena editoru jsou od autoru odlisena retezcem danym touto volbou. +FUNCTION {opt.ed} { "ed." } +% FUNCTION {opt.ed} { "(ed.)" } +% FUNCTION {opt.ed} { "(red.)" } +% FUNCTION {opt.ed} { "" } + +% -- Pouzivat oznaceni editora (redaktora) za kazdym jmenem. +% Urcuje, kde se pouzije oznaceni opt.ed. Bud lze pouzit oznaceni za kazdym +% jmenem nebo jen na konci prvku. +FUNCTION {opt.ed.all} { #0 } % pouze na konci prvku +% FUNCTION {opt.ed.all} { #1 } % za kazdym jmenem + +% -- Oddelovac mezi prvky primarni odpovednost a titul. +FUNCTION {opt.sep.a} { "." } +% FUNCTION {opt.sep.a} { ":" } + +% -- Oddelovac mezi mistem a vydavatelem (popr. skolou nebo instituci). +FUNCTION {opt.sep.p} { ": " } +% FUNCTION {opt.sep.p} { " : " } +% FUNCTION {opt.sep.p} { ", " } + +% -- Oddelovac mezi titulem a podtitulem. +% Je-li zadan titul i podtitul, je tento retezec pouzit jako oddelovac mezi +% temito prvky. +FUNCTION {opt.sep.t} { ": " } +% FUNCTION {opt.sep.t} { " : " } + +% -- Oznaceni rozsahu u akademickych praci. +% U akademickych praci mate pomoci teto volby moznost urcit, zda-li bude rozsah +% techto praci udavan ve stranach nebo v listech. +FUNCTION {opt.pages} { "s." } % pocet stran +% FUNCTION {opt.pages} { "l." } % pocet listu + +% -- Zacatek prvku dostupnost. +% Tento prepinac ovlivnuje text, ktery bude zobrazen pred URL adresou. +% FUNCTION {opt.url} { "" } +% FUNCTION {opt.url} { "Dostupn{\'{e}} na: " } +FUNCTION {opt.url} { "Dostupn{\'{e}} z: " } +% FUNCTION {opt.url} { "Dostupn{\'{e}} na WWW: " } + +FUNCTION {opt.path} { "Path: " } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%% DEKLARACE POLOZEK A PROMENNYCH %%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Polozky, ktere jsou stylem akceptovany a zpracovany. +ENTRY + { address + author + booktitle + booksubtitle % podtitul knihy (napr u sborniku) + cited % datum citace + contributory % podrizena odpovednost + day + doi + edition + editionnumber % cislo edice + editor + howpublished % druh nosice + chapter + institution + inserts % pocet stran priloh + isbn % standardni cislo + issn % standardni cislo + journal + journalsubtitle + key + location + month + note + number + organization + path + pages + publisher + revised % datum revize/aktualizace + secondarytitle % nazev vedlejsi webove stranky + school + series % název edice + subtitle % podtitul + supervisor % vedoucí (u akademické práce) + time % čas publikování + title + type + url % dostupnost + version % verze u el.dok. + volume + year + } + { } + { label } + +% Celocislene promenne. U kazde (krome konstant, ktere jsou pouze inicializovany +% ve funkci init.state.consts -- before.all, mid.sentence, after.sentence, +% after.block) jsou vyjmenovany funkce, kde dochazi ke zmenam dane promenne. +% +% output.state -- output.nonnull, output.bibitem, new.block, new.sentance +% +% ord -- is.ord +% +% ptr, i, x -- str.to.int +% +% numnames, namesleft, nameptr -- format.names, format.names.ed, +% sort.format.names +INTEGERS { output.state before.all mid.sentence after.sentence after.block + ord ptr i x numnames namesleft nameptr } + +% Retezcove promenne. U kazde jsou vyjmenovany funkce, kde je promenna menena. +% +% s -- output.nonnull, format.names, format.names.ed, format.journal.issue, +% format.thesis.info, format.thesis.range, chop.word, sort.format.names +% +% t -- output.check, dashify, str.to.int, format.names, format.names.ed, +% format.full.date, sort.format.names, sort.format.title +% +% u -- is.ord, tie.or.connnect, comma.connect +STRINGS { s t u } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%% DEFINICE ZKRATEK -- CESKE NAZVY MESICU %%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +MACRO {jan} {"leden"} + +MACRO {feb} {"únor"} + +MACRO {mar} {"březen"} + +MACRO {apr} {"duben"} + +MACRO {may} {"květen"} + +MACRO {jun} {"červen"} + +MACRO {jul} {"červenec"} + +MACRO {aug} {"srpen"} + +MACRO {sep} {"září"} + +MACRO {oct} {"říjen"} + +MACRO {nov} {"listopad"} + +MACRO {dec} {"prosinec"} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%% MIRNE UPRAVENE FUNKCE PREVZATE Z plain.bst %%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Inicializace konstant nutnych pro spravnou funkci samotneho stylu. +% +% void init.state.consts () +% { +% int before.all = 0; +% int mid.sentence = 1; +% int adter.sentence = 2; +% int after.block = 3; +% } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +% Vystup jiz formatovaneho pole, ktere je urcite neprazdne. Format vystupu je +% ovlivnen vystupnim stavem (tj. stavovou promennou output.state). Samotny +% vystup je zpozdeny (k vytisteni aktualni hodnoty dojde az pri pristim volani +% teto funkce) kvuli rozhodovani o pouzitem oddelovaci (carka nebo tecka). +% +% void output.nonnull () +% { +% s = pop(); +% if (output.state == mid.sentence) +% { +% write(pop() * " "); // zde byla carka!!! +% } else +% { +% if (output.state == after.block) +% { +% write(add.period(pop())); +% flush(); +% write("\newblock "); +% } else +% { +% if (output.state == before.all) +% { +% write(pop()); +% } else +% { +% write(add.period(pop()) * " "); +% } +% } +% } +% push(s); +% } +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { " " * write$ } %% Uprava: Nahrada ", " za " "! + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + { write$ } + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +% Pri vyskytu neprazdne hodnoty na vrcholu zasobniku provede jeji vystup pomoci +% funkce output.nonnull. V opacnem pripade ji jen odstrani ze zasobniku. +% +% /** prepis do pseudokodu bez vyuziti zasobniku **/ +% void output (string string.to.write) +% { +% if (empty$(string.to.write)) +% { } else +% { +% output.nonnull(string.to.write); +% } +% } +FUNCTION {output} +{ duplicate$ empty$ + { pop$ } + { output.nonnull } + if$ +} + +% Pri vyskytu neprazdne hodnoty na vrcholu zasobniku provede jeji vystup pomoci +% funkce output.nonnull. V opacnem pripade ji jen odstrani ze zasobniku +% a vypise na chybovy vystup varovani o chybejici hodnote. Pouziva se pro +% informovani uzivatele o chybejici hodnote, ktera je dle ceske normy povinna. +% +% /** prepis do pseudokodu bez vyuziti zasobniku **/ +% void output.check (string type.of.field string string.to.write) +% { +% t = type.of.field; +% if (empty$(string.to.write)) +% { +% warning$("empty" * t * " in " * cite$()) +% } else +% { +% output.nonnull(string.to.write); +% } +% } +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + { output.nonnull } + if$ +} + +% Vypise zacatek bibliograficke citace. +% +% void output.bibitem () +% { +% newline$(); +% write$("\bibitem{"); +% write$(cite$); +% write$("}"); +% newline$(); +% push(""); +% int output.state = before.all; +% } +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +% Zakonceni polozky (teckou). +% +% void fin.entry () +% { +% write(add.period$(pop())); +% newline$(); +% } +FUNCTION {fin.entry} +{ add.period$ write$ + newline$ +} + +% Zmena stavu: {mid.sentence; after.sentence} => after.block. +% +% void new.block () +% { +% if (output.state == before.all) +% { } else +% { +% output.state = after.block; +% } +% } +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +% Zmena stavu: mid.sentence => after.sentence. +% +% void new.sentence () +% { +% if (output.state == after.block) +% { } else +% { +% if (output.state == before.all) +% { } else +% { +% output.state = after.sentence; +% } +% } +% } +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +% Negace vyhodnocene podminky. +% +% int not (int bool) +% { +% if (bool) +% { +% return 0; // false +% } else +% { +% return 1; // true +% } +% } +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +% Logicky soucin dvou podminek. +% +% int and (int bool1, int bool2) +% { +% if (bool2) +% { +% return bool1; +% } else +% { +% return 0; +% } +% } +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +% Logicky soucet dvou podminek. +% +% int or (int bool1, int bool2) +% { +% if (bool2) +% { +% return 1; +% } else +% { +% return bool1; +% } +% } +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +% Zacatek noveho bloku pri neprazne hodnote na vrcholu zasobniku. +% +% void new.block.checka (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { } else +% { +% new.block(); +% } +% } +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + { new.block } + if$ +} + +% Zacatek noveho bloku pri 2 neprazdnych hodnotach z vrcholu zasobniku. +% +% void new.block.checkb (int.or.string anything.under.the.top, +% int.or.string anything.from.the.top) +% { +% if ( (empty$(anything.from.the.top)) && (empty$(anything.under.the.top)) ) +% { } else +% { +% new.block(); +% } +% } +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + { new.block } + if$ +} + +% Zacatek nove vety pri neprazne hodnote na vrcholu zasobniku. +% +% void new.sentence.checka (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { } else +% { +% new.sentence(); +% } +% } +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + { new.sentence } + if$ +} + +% Zacatek nove vety pri 2 neprazdnych hodnotach z vrcholu zasobniku. +% +% void new.sentence.checkb (int.or.string anything.under.the.top, +% int.or.string anything.from.the.top) +% { +% if ( (empty$(anything.from.the.top)) && (empty$(anything.under.the.top)) ) +% { } else +% { +% new.sentence(); +% } +% } +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ and + 'skip$ + { new.sentence } + if$ +} + +% Vrati hodnoty polozky (ulozene na vrcholu zasobniku) nebo prazdny retezec. +% +% int.or.string field.or.null (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { +% return ""; +% } else +% { +% return anything.from.the.top; +% } +% } +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +% Vypis chybove hlasky pro pripady, kdyz jsou vyplnene dve polozky, jejichz +% pouziti se vzajemne vylucuje. Vola se s dvema argumenty -- prvni z nich je +% retezec s nazvy obou poli (kvuli vypisu chybove hlasky) a druhy je obsah +% jednoho z poli (kontrola druheho musi probehnout pred volanim teto funkce). +% +% void either.or.check (string field.names, int.or.string one.of.fields) +% { +% if (empty$(one.of.fields)) +% { } else +% { +% warning$(field.names * "can't use both " * " fields in " * cite$()); +% } +% } +FUNCTION {either.or.check} +{ empty$ + { pop$ } + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% Provede zvyrazneni hodnoty na vrcholu zasobniku (uzavre ji mezi "{\em" +% a "}"). Nepouziva kurzivni korekci. +% +% string emphasize (string x) +% { +% if (empty$(x)) +% { +% return ""; +% } else +% { +% return "{\em " * x * "}"; +% } +% } +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {makebold} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {makesmall} +{ duplicate$ empty$ + { pop$ "" } + { "{\small " swap$ * "}" * } + if$ +} + +% Nahradi kazdy vyskyt znaku '-' za dvojznak "--". +% +% string dashify (string to.dashify) +% { +% t = to.dashify; +% push(""); +% while (!empty$(t)) +% { +% if (substring$(t, 1, 1) == "-") +% { +% if (substring$(t, 1, 2) == "--") +% { +% while (substring$(t, 1, 1) == "-") +% { +% push(pop() * "-"); +% t = substring$(t, 2, global.max$()); +% } +% } else +% { +% push(pop() * "--"); +% t = substring$(t, 2, global.max$()); +% } +% } else +% { +% push(pop() * substring$(t, 1, 1)); +% t = substring$(t, 2, global.max$()); +% } +% } +% } +FUNCTION {dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + { "--" * + t #2 global.max$ substring$ 't := + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%% VLASTNI KOD -- POMOCNE FUNKCE %%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Prevod retezce na cislo. Ocekava se, ze se zavola az po testu pomoci funkce +% 'is.ord'. Na vstupu ocekava neprazdny retezec tvoreny jen cislicemi. +% +% int str.to.int (string to.convert) +% { +% t = to.convert; +% int x = 0; +% int ptr = 0; +% while (ptr text.length$(t) < ) +% { +% push(x); +% i = 9; +% while (i > 0) +% { +% push(pop() + x); +% i--; +% } +% ptr++; +% x = chr.to.int$(substring$(t, ptr, 1)) - 48 + pop(); +% } +% return x; +% } +FUNCTION {str.to.int} +{ 't := + #0 'x := + #0 'ptr := + { ptr t text.length$ < } + { x + #9 'i := + { i #0 > } + { x + + i #1 - 'i := + } + while$ + ptr #1 + 'ptr := + t ptr #1 substring$ chr.to.int$ #48 - + 'x := + } + while$ + x +} + +% Prvni pismeno retezce na vrcholu zasobniku prevede na verzalku. +% +% string capitalize (string to.capitalize) +% { +% if (empty$(to.capitalize)) +% { } else +% { +% return change.case$(substring$(to.capitalize, 1, 1), "u") * +% substring$(to.capitalize, 2, global.max$()); +% } +% } +FUNCTION {capitalize} +{ duplicate$ empty$ + 'skip$ + { duplicate$ #1 #1 substring$ "u" change.case$ + swap$ #2 global.max$ substring$ * + } + if$ +} + +% Spojuje dva retezce z vrcholu zasobniku. Tyto dva retezce jsou oddeleny +% mezerou ci nezlomitelnou mezerou. Retezec na vrcholu zasobniku je pripojen +% za druhy retezec. +% +% Pokud je jeden z retezcu prazdny, je vracen jen druhy z nich bez jakychkoliv +% uprav. Jsou-li prazdne oba retezce, je vracen taktez prazdny retezec. +% +% string tie.or.connect (string under.the.top, string from.the.top) +% { +% string u = from.the.top; +% if (empty$(under.the.top)) +% { +% return u; +% } else +% { +% if (empty$(u)) +% { } else +% { +% if (text.length$(u) < 3) +% { +% return under.the.top * "~" * u; +% } else +% { +% return under.the.top * " " * u; +% } +% } +% } +% } +FUNCTION {tie.or.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { u text.length$ #3 < + { "~" * u * } + { " " * u * } + if$ + } + if$ + } + if$ +} + +% Spojuje dva retezce z vrcholu zasobniku. Tyto dva retezce jsou oddeleny +% carkou. Retezec na vrcholu zasobniku je pripojen za druhy retezec. +% +% Pokud je jeden z retezcu prazdny, je vracen jen druhy z nich bez jakychkoliv +% uprav. Jsou-li prazdne oba retezce, je vracen taktez prazdny retezec. +% +% string comma.connect (string under.the.top, string from.the.top) +% { +% string u = from.the.top; +% if (empty$(under.the.top)) +% { +% return u; +% } else +% { +% if (empty$(u)) +% { } else +% { +% return under.the.top * ", " * u; +% } +% } +% } +FUNCTION {comma.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { ", " * u * } + if$ + } + if$ +} + +% Spojuje dva retezce z vrcholu zasobniku. Tyto dva retezce jsou oddeleny mezerou. +FUNCTION {space.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { " " * u * } + if$ + } + if$ +} + + +% Otestuje, zda je hodnota na vrcholu zasobniku tvorena pouze cislicemi. +% +% int is.ord (string x) +% { +% string u = x; +% int ord = 1; +% while ( (ord) && (!empty(u)) ) +% { +% if ( (chr.to.int$(substring$(u, 1, 1)) < 48) || +% (chr.to.int$(substring$(u, 1, 1)) > 57) ) +% { +% ord = 0; +% } else +% { +% u = substring(s, 2, global.max$()); +% } +% } +% return ord; +% } +FUNCTION {is.ord} +{ 'u := + #1 'ord := + { ord + u empty$ not + and + } + { u #1 #1 substring$ + duplicate$ chr.to.int$ #48 < % < '0' + swap$ chr.to.int$ #57 > % > '9' + or + { #0 'ord := } + { u #2 global.max$ substring$ 'u := } + if$ + } + while$ + ord +} + +% Formatovaci retezec pro vkladani jmen dle ceske konvence pomoci funkce +% 'format.name$'. +% +% string cz.name.format () +% { +% return "{{\scshape\bgroup}ll{ }{\egroup}}{, f.}{ vv}"; +% } +FUNCTION {cz.name.format} +{ "{{\sc\bgroup}ll{ }{\egroup}}{, f.}{ vv}" } + +% Vraci nominativ mesice. +% +% /** prepis pseudokodu do funkce pracujici s polem **/ +% string get.month.n (int n) +% { +% int month = { 1 => "leden", "únor", "březen", "duben", "květen", "červen", +% "červenec", "srpen", "září", "říjen", "listopad", "prosinec" }; +% if ( (n > 0) && (n < 13) ) +% { +% return month[n]; +% } else +% { +% warning$("Month must be between 1 and 12!"); +% return ""; +% } +% } +FUNCTION {get.month.n} +{ duplicate$ #1 = + { "leden" swap$ pop$ } + { duplicate$ #2 = + { "únor" swap$ pop$ } + { duplicate$ #3 = + { "březen" swap$ pop$ } + { duplicate$ #4 = + { "duben" swap$ pop$ } + { duplicate$ #5 = + { "květen" swap$ pop$ } + { duplicate$ #6 = + { "červen" swap$ pop$ } + { duplicate$ #7 = + { "červenec" swap$ pop$ } + { duplicate$ #8 = + { "srpen" swap$ pop$ } + { duplicate$ #9 = + { "září" swap$ pop$ } + { duplicate$ #10 = + { "říjen" swap$ pop$ } + { duplicate$ #11 = + { "listopad" swap$ pop$ } + { duplicate$ #12 = + { "prosinec" swap$ pop$ } + { "" "Month must be between 1 and 12!" warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +% Vraci nominativ mesice s velkym prvnim pismenem. +FUNCTION {get.u.month.n} +{ duplicate$ #1 = + { "Leden" swap$ pop$ } + { duplicate$ #2 = + { "Únor" swap$ pop$ } + { duplicate$ #3 = + { "Březen" swap$ pop$ } + { duplicate$ #4 = + { "Duben" swap$ pop$ } + { duplicate$ #5 = + { "Květen" swap$ pop$ } + { duplicate$ #6 = + { "Červen" swap$ pop$ } + { duplicate$ #7 = + { "Červenec" swap$ pop$ } + { duplicate$ #8 = + { "Srpen" swap$ pop$ } + { duplicate$ #9 = + { "Září" swap$ pop$ } + { duplicate$ #10 = + { "Říjen" swap$ pop$ } + { duplicate$ #11 = + { "Listopad" swap$ pop$ } + { duplicate$ #12 = + { "Prosinec" swap$ pop$ } + { "" "Month must be between 1 and 12!" warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +% Vraci genitiv mesice. +% +% /** prepis pseudokodu do funkce pracujici s polem **/ +% string get.month.g (int n) +% { +% int month = { 1 => "ledna", "února", "března", "dubna", "května", "června", +% "července", "srpna", "září", "října", "listopadu", "prosince"}; +% if ( (n > 0) && (n < 13) ) +% { +% return month[n]; +% } else +% { +% warning$("Month must be between 1 and 12!"); +% return ""; +% } +% } +FUNCTION {get.month.g} +{ duplicate$ #1 = + { "ledna" swap$ pop$ } + { duplicate$ #2 = + { "února" swap$ pop$ } + { duplicate$ #3 = + { "března" swap$ pop$ } + { duplicate$ #4 = + { "dubna" swap$ pop$ } + { duplicate$ #5 = + { "května" swap$ pop$ } + { duplicate$ #6 = + { "června" swap$ pop$ } + { duplicate$ #7 = + { "července" swap$ pop$ } + { duplicate$ #8 = + { "srpna" swap$ pop$ } + { duplicate$ #9 = + { "září" swap$ pop$ } + { duplicate$ #10 = + { "října" swap$ pop$ } + { duplicate$ #11 = + { "listopadu" swap$ pop$ } + { duplicate$ #12 = + { "prosince" swap$ pop$ } + { "" "Month must be between 1 and 12!" warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +% Provede vystup. Je urcen jen pro vypsani primarni odpovednosti. Umoznuje +% pouziti volby 'opt.sep.a', ktera dovoluje pouzit jiny oddelovac mezi poli +% primarni odpovednosti a nazvu titulu. Dle zazitych zvyklosti v CR je jim ':'. +% +% Pouzivat pouze na zacatku bibliograficke citace! Jinde muze zpusobit prohozeni +% prvku. +% +% void output.authors (string formatted.authors) +% { +% if (substring$(formatted.authors, #-1, #1) == opt.sep.a()) +% { +% write$(formatted.authors); +% newline$(); +% write("\newblock "); +% } else +% { +% write$(formatted.authors * opt.sep.a()); +% newline$(); +% write("\newblock "); +% } +% } +FUNCTION {output.authors} +{ + duplicate$ #-1 #1 substring$ opt.sep.a = + { write$ newline$ "\newblock " write$ } + { opt.sep.a * + write$ newline$ "\newblock " write$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%% VLASTNI KOD -- FORMATOVACI FUNKCE %%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Formatovani jmen (pro primarni odpovednost). +% +% string format.names (string names) +% { +% string s = names; +% int numnames = num.names$(s); +% int namesleft = numnames; +% int nameptr = 1; +% while ( (namesleft > 0) && (nameptr <= opt.aa()) ) +% { +% t = format.name$(s, nameptr, cz.name.format()); +% if (nameptr == 1) +% { +% push(t); +% } else +% { +% if (namesleft > 1) +% { +% push(pop() * opt.sep.bn() * t); +% } else +% { +% if (purify$(t) == "others") +% { +% push(tie.or.connect(pop(), opt.etal())); +% } else +% { +% push(pop() * opt.sep.ln() * t); +% } +% } +% } +% nameptr++; +% namesleft--; +% } +% if (nameledt > 0) +% { +% push(tie.or.connect(pop(), opt.etal())); +% } +% return pop(); +% } +FUNCTION {format.names} +{ 's := % s <= polozka se jmeny + s num.names$ 'numnames := % numnames <= pocet jmen v polozce + numnames 'namesleft := % poznamena si pocet zbyvajicich jmen + #1 'nameptr := % nameptr <= ukazatel na prvni ze jmen + { namesleft #0 > + nameptr opt.aa > not + and + } + { % cyklus zpracovani jednotlivych jmen + s nameptr cz.name.format format.name$ 't := + nameptr #1 = + { t } % prvni jmeno + { namesleft #1 > % dalsi jmena + { opt.sep.bn t * * } + { t purify$ + "others" = % kdyz po ocisteni zbyde klic. sl. "others" + { opt.etal tie.or.connect } % vytiskne et al. + { opt.sep.ln * t * } % jinak posledni inicialy po spojce "a" + if$ + } + if$ + } + if$ + nameptr #1 + 'nameptr := % posun ukazatele na dalsi jmeno + namesleft #1 - 'namesleft := % snizeni poctu zbyvajicich jmen + } + while$ + namesleft #0 > % mozne pridani opt.etal + { opt.etal tie.or.connect } + 'skip$ + if$ +} + + +% Formatovani jmen editoru. +% +% string format.names.ed (string names) +% { +% string s = names; +% int numnames = num.names$(s); +% int namesleft = numnames; +% int nameptr = 1; +% while ( (namesleft > 0) && (nameptr <= opt.aa()) ) +% { +% t = format.name$(s, nameptr, cz.name.format()); +% if (nameptr == 1) +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(t, opt.ed()); +% } else +% { +% push(t); +% } +% } else +% { +% if (namesleft > 1) +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(pop() * opt.sep.bn() * t, opt.ed()); +% } else +% { +% push(pop() * opt.sep.bn() * t); +% } +% } else +% { +% if (purify$(t) == "others") +% { +% push(tie.or.connect(pop(), opt.etal())); +% } else +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(pop() * opt.sep.ln() * t, opt.ed()); +% } else +% { +% push(pop() * opt.sep.ln() * t); +% } +% } +% } +% } +% nameptr++; +% namesleft--; +% } +% if (nameledt > 0) +% { +% push(tie.or.connect(pop(), opt.etal())); +% } +% if (opt.ed.all()) +% { +% return pop(); +% } else +% { +% return tie.or.connect(pop(), ", " * opt.ed()); +% } +% } +FUNCTION {format.names.ed} +{ 's := % s <= polozka se jmeny + s num.names$ 'numnames := % numnames <= pocet jmen v polozce + numnames 'namesleft := % poznamena si pocet zbyvajicich jmen + #1 'nameptr := % nameptr <= ukazatel na prvni ze jmen + { namesleft #0 > + nameptr opt.ae > not + and + } + { % cyklus zpracovani jednotlivych jmen + s nameptr cz.name.format format.name$ 't := + nameptr #1 = % prvni jmeno + { t + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + { namesleft #1 > % dalsi jmena + { opt.sep.bn t * * + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + { t purify$ + "others" = % kdyz po ocisteni zbyde klic. sl. "others" + { opt.etal tie.or.connect } % vytiskne et al. + { opt.sep.ln t * * % jinak posledni inicialy po spojce "a" + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + if$ + } + if$ + } + if$ + nameptr #1 + 'nameptr := % posun ukazatele na dalsi jmeno + namesleft #1 - 'namesleft := % snizeni poctu zbyvajicich jmen + } + while$ + namesleft #0 > % mozne pripojeni opt.etal + { opt.etal tie.or.connect } + 'skip$ + if$ + opt.ed.all % mozne pridani opt.ed na konec prvku + 'skip$ + { ", " * opt.ed tie.or.connect } + if$ +} + +% Formatovani jmen autoru. +% Pokud je neprazdna polozka 'author', provede formatovani jmen pomoci funkce +% 'format.names'. +% +% string format.authors () +% { +% if (empty$(author)) +% { +% return ""; +% } else +% { +% return format.names(author); +% } +% } +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +% Formatovani jmena vedouciho. +FUNCTION {format.supervisor} +{ supervisor empty$ + { "" } + { "Vedoucí práce " supervisor format.names *} + if$ +} + +% Formatovani jmen editoru. +% Pokud je neprazdna polozka 'editor', provede formatovani jmen pomoci funkce +% 'format.names.ed'. +% +% string format.editors () +% { +% if (empty$(editor)) +% { +% return ""; +% } else +% { +% return format.names.ed(editor); +% } +% } +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names.ed } + if$ +} + +% Formatovani polozky primarni odpovednosti. +% Je-li zadana polozka 'author', provede jeji formatovani pomoci funkce +% 'format.authors'. Pokud je polozka 'author' prazdna, provede formatovani +% pomoci funkce 'format.editors'. +% +% void author.or.editor () +% { +% if (empty$(author)) +% { +% if (empty$(format.editors())) +% { +% warning$("empty author and editor in " * cite$()); +% } else +% { +% output.authors(format.editors()); +% } +% } else +% { +% output.authors(format.authors()); +% } +% } +FUNCTION {author.or.editor} +{ author empty$ + { format.editors + duplicate$ empty$ + { pop$ + "empty author and editor in " cite$ * warning$ + } + { output.authors } + if$ + } + { format.authors + output.authors + } + if$ +} + +% Formatovani nazvu (napr. casopisu, zurnalu atp.). +% Pri zadane polozce 'subtitle' provede ji pripoji k obsahu polozky 'title' +% pomoci ": ". V nazvu je pak provedena zmena velikosti pismen. +% +% string format.title () +% { +% if (empty$(subtitle)) +% { +% return capitalize(title); +% } else +% { +% return capitalize(title) * opt.sep.t() * subtitle; +% } +% } +FUNCTION {format.title} +{ subtitle empty$ + { title capitalize } + { title capitalize + opt.sep.t * subtitle * + } + if$ +} +%%FUNCTION {format.title} +%%{ subtitle empty$ +%% { title "t" change.case$ } +%% { title "t" change.case$ +%% opt.sep.t * subtitle "t" change.case$ * +%% } +%% if$ +%%} + + +% Formatovani nazvu monograficke publikace. +% Pri zadane polozce 'subtitle' provede ji pripoji k obsahu polozky 'title' +% pomoci ": ". Pricemz na obe casti se provede zmena velikosti pismen +% a zvyrazneni. Pokud je polozka 'subtitle' prazdna, je provedena jen zmena +% velikosti pismen a jeji zvyrazneni. +% +% string format.btitle () +% { +% return emphasize(format.title()); +% } +FUNCTION {format.btitle} +{ format.title emphasize +} + +% Formatovani nazvu (napr. sbornik). +% Pri zadane polozce 'booksubtitle' provede ji pripoji k obsahu polozky +% 'booktitle' pomoci ": ". V nazvu je pak provedena zmena velikosti pismen +% a zvyrazneni kurzivou. +% +% string format.from.btitle () +% { +% if (empty$(booktitle)) +% { +% warning$(empty booktitle in " * cite$()); +% push(""); +% } else +% { +% push(capitalize(booktitle)); +% if (empty$(booksubtitle)) +% { } else +% { +% push(pop() * opt.sep.t * booksubtitle); +% } +% } +% return emphasize(pop()); +% } +FUNCTION {format.from.btitle} +{ booktitle empty$ + { "empty booktitle in " cite$ * warning$ + "" + } + { booktitle capitalize + booksubtitle empty$ + 'skip$ + { opt.sep.t * booksubtitle * } + if$ + } + if$ + emphasize +} + +% Formatovani druhu nosice. +% +% string format.howpublished () +% { +% if (empty$(howpublished)) +% { +% return ""; +% } else +% { +% if (change.case(howpublished, "l") == "cd") +% { +% push("CD-ROM"); +% } else +% { +% if (change.case(howpublished, "l") == "online") +% { +% push("online"); +% } else +% { +% push(howpublished); +% } +% } +% return "[" * pop() * "]"; +% } +% } +FUNCTION {format.howpublished} +{ howpublished empty$ + { "" } + { howpublished "l" change.case$ "cd" = + { "CD-ROM" } + { howpublished "l" change.case$ "online" = + { "online" } + { howpublished } + if$ + } + if$ + "[" swap$ * "]" * + } + if$ +} + +% Formatovani vydani +% +% string format.edition () +% { +% if (empty$(edition)) +% { +% push(""); +% } else +% { +% if (is.ord(edition)) +% { +% push(edition * ". vyd."); +% } else +% { +% push(edition); +% } +% } +% if (!empty$(version)) +% { +% push(comma.connect(pop(), version)); +% } +% return pop(); +% } +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition is.ord + { edition ". vyd." * } + { edition } + if$ + } + if$ + howpublished empty$ + 'skip$ + { version empty$ + 'skip$ + { version comma.connect } + if$ + } + if$ +} + +% Formatovani mesice a roku +% +% string format.date () +% { +% if (empty$(month)) +% { +% if (empty$(year)) +% { +% warning$("empty year in " * cite$()); +% return ""; +% } else +% { +% return year; +% } +% } else +% { +% if (empty$(year)) +% { +% warning$("just month (empty year) in " * cite$()); +% return ""; +% } else +% { +% if (is.ord(month)) +% { +% return get.month.n(str.to.int(month)) * " " * year; +% } else +% { +% return month * " " * year; +% } +% } +% } +% } +FUNCTION {format.date} +{ month empty$ + { year empty$ + { "" + "empty year in " cite$ * warning$ } + { year } + if$ + } + { year empty$ + { "" + "just month (empty year) in " cite$ * warning$ } + { month duplicate$ is.ord + { str.to.int get.month.n " " * year * } + { " " * year * } + if$ + } + if$ + } + if$ +} + +% Formatovani mesice a roku s genitivem měsíce +FUNCTION {format.date.g} +{ month empty$ + { year empty$ + { "" + "empty year in " cite$ * warning$ } + { year } + if$ + } + { year empty$ + { "" + "just month (empty year) in " cite$ * warning$ } + { month duplicate$ is.ord + { str.to.int get.month.g " " * year * } + { " " * year * } + if$ + } + if$ + } + if$ +} + +% Formatovani mesice a roku, kde mesic zacina velkym pismenem +FUNCTION {format.u.date} +{ month empty$ + { year empty$ + { "" + "empty year in " cite$ * warning$ } + { year } + if$ + } + { year empty$ + { "" + "just month (empty year) in " cite$ * warning$ + } + { month duplicate$ is.ord + { str.to.int get.u.month.n " " * year * } + { " " * year * } + if$ + } + if$ + } + if$ +} + +% Rozpoznani a prevod data z formatu '!yyyy-mm-dd'. +% +% string format.full.date (string date) +% { +% string t = date; +% if (text.length$(t) == 10) +% { +% if ( (is.ord(substring$(t, 1, 4))) && (substring$(t, 5, 1) == "-") && +% (is.ord(substring$(t, 6, 2))) && (substring$(t, 8, 1) == "-") && +% (is.ord(substring$(t, 9, 2))) ) +% { +% if (substring$(t, 9, 1) == "0") +% { +% if (substring$(t, 10, 1) == "0") +% { +% warning$("day must be between 1 and 31 in " * cite$()); +% } else { } +% push(substring$(t, 10, 1) * ".~"); +% } else +% { +% if ( ((chr.to.int$(substring$(t, 9, 1)) - 48) > 3) || +% ((substring$(t, 9, 1) == "3") && +% ((chr.to.int$(substring$(t, 10, 1)) - 48) > 1)) ) +% { +% pop(); +% push(t); +% warning$("day must be between 1 and 31 in " * cite$()); +% } else { } +% push(substring$(t, 9, 2) * ".~"); +% } +% if (substring$(t, 6, 1) == "0") +% { +% if (substring$(t, 7, 1) == "0") +% { +% pop(); +% push(t); +% warning$("month must be between 1 and 12 in " * cite$()); +% } else +% { +% return pop() * get.month.g(chr.to.int$(substring$(t, 7, 1)) - 48) * +% " " * substring$(t, 1, 4)); +% } +% } else +% { +% if ( (substring$(t, 6, 1) == "1") && +% ((chr.to.int$(substring$(t, 7, 1)) - 48) < 3) ) +% { +% return pop() * get.month.g(chr.to.int$(substring$(t, 7, 1)) +% - 48 + 10) * " " * substring$(t, 1, 4)); +% } else +% { +% pop(); +% push(t); +% warning$("month must be between 1 and 12 in " * cite$()); +% } +% } +% } else +% { +% return t; +% } +% } else +% { +% return t; +% } +% } +FUNCTION {format.full.date} +{ 't := + t text.length$ #11 = + { t #1 #1 substring$ "!" = + t #2 #4 substring$ is.ord + t #6 #1 substring$ "-" = + t #7 #2 substring$ is.ord + t #9 #1 substring$ "-" = + t #10 #2 substring$ is.ord + and and and and and + { t #10 #1 substring$ "0" = + { t #11 #1 substring$ "0" = + { "day must be between 1 and 31 in " cite$ * warning$ } + 'skip$ + if$ + t #11 #1 substring$ ".~" * + } + { t #10 #1 substring$ chr.to.int$ #48 - #3 > + t #10 #1 substring$ "3" = + t #11 #1 substring$ chr.to.int$ #48 - #1 > + and or + { pop$ t "day must be between 1 and 31 in " cite$ * warning$ } + 'skip$ + if$ + t #10 #2 substring$ ".~" * + } + if$ + t #7 #1 substring$ "0" = + { t #8 #1 substring$ "0" = + { pop$ t "month must be between 1 and 12 in " cite$ * warning$ } + { t #8 #1 substring$ chr.to.int$ #48 - get.month.g * + " " * t #2 #4 substring$ * + } + if$ + } + { t #7 #1 substring$ "1" = + t #8 #1 substring$ chr.to.int$ #48 - #3 < + and + { t #8 #1 substring$ chr.to.int$ #48 - #10 + get.month.g * + " " * t #2 #4 substring$ * + } + { pop$ t "month must be between 1 and 12 in " cite$ * warning$ } + if$ + } + if$ + } + { t } + if$ + } + { t } + if$ +} + +% Predani udaju z data revize elektronickeho dokumentu. +% +% string format.revised () +% { +% if (empty$(howpublished)) +% { +% return ""; +% } else +% { +% if (empty$(revised)) +% { +% return ""; +% } else +% { +% return revised; +% } +% } +% } +FUNCTION {format.revised} +{ howpublished empty$ + { "" } + { revised empty$ + { "" } + { revised } + if$ + } + if$ +} + +% Formatovani udaju z data citace elektronickeho dokumentu. +% +FUNCTION {format.cited} +{ cited empty$ + { "" } + { cited format.full.date + "[cit. " swap$ * "]" * +% "[vid. " swap$ * "]" * + } + if$ +} + +% Formatovani nakladatelskych udaju. +% +% string format.publish.info () +% { +% if ( (empty$(address)) && (empty$(publisher)) ) +% { +% string s = ""; +% } else +% { +% if (empty$(address)) +% { +% s = "[b.m.]: "; +% } else +% { +% s = address * ": "; +% } +% if (empty$(publisher)) +% { +% s = s * "[b.n.]"; +% } else +% { +% s = s * publisher; +% } +% } +% return s; +% } +FUNCTION {format.publish.info} +{ address empty$ + publisher empty$ + and + { "" } + { address empty$ + { "" } + { address opt.sep.p * } + if$ + publisher empty$ + { "[b.n.]" * } + { publisher * } + if$ + } + if$ +} + + +% Formatuje rozsah stran publikace. +% +% string format.range () +% { +% if (empty$(pages)) +% { +% return ""; +% } else +% { +% return tie.or.connect(pages, "s."); +% } +% } +FUNCTION {format.range} +{ pages empty$ + { "" } + { pages "s." tie.or.connect } + if$ +} + +% Formatovani edice a svazku sborníku konference. +% +% string format.cvolume () +% { +% if (empty$(volume)) +% { +% push(""); +% } else +% { +% if (is.ord(volume)) +% { +% push("sv. " * volume); +% } else +% { +% push(volume); +% } +% } +% if (empty$(number)) +% { +% return pop(); +% } else +% { +% if (is.ord(number)) +% { +% return comma.connect(pop(), "č. " * number); +% } else +% { +% return comma.connect(pop(), number); +% } +% } +% } +FUNCTION {format.cvolume} +{ volume empty$ + { "" } + { volume is.ord + { "sv. " volume * } + { volume } + if$ + } + if$ + number empty$ + { + "" comma.connect + } + { number is.ord + { "č. " number * comma.connect } + { number comma.connect } + if$ + } + if$ +} + + +% Formatovani edice a čísla edice knihy ci sborníku konference. +% +% string format.cseries () +% { +% if (empty$(series)) +% { +% return ""; +% } else +% { +% push(capitalize(series)); +% if (empty$(editionnumber)) +% { } else +% { +% if (is.ord(editionnumber)) +% { +% return comma.connect(pop(), "č. " * editionnumber); +% } else +% { +% return comma.connect(pop(), editionnumber); +% } +% } +% } +% } +FUNCTION {format.cseries} +{ series empty$ + { "" } + { series capitalize + editionnumber empty$ + 'skip$ + { editionnumber is.ord + { "č. " editionnumber * comma.connect } + { editionnumber comma.connect } + if$ + } + if$ + } + if$ +} + + +% Format dostupnosti. +% +% string format.url () +% { +% if (empty$(url)) +% { +% return ""; +% } else +% { +% return tie.or.connect(opt.url(), "\small{\url{" * url * ".}}"); +% } +% } +FUNCTION {format.url} +{ url empty$ + { "" } + { opt.url "{\small\url{" url * "}}" * tie.or.connect } + if$ +} + +% Format cesty. +% +% string format.pah () +% { +% if (empty$(path)) +% { +% return ""; +% } else +% { +% return opt.path * path; +% } +% } +FUNCTION {format.path} +{ path empty$ + { "" } + { opt.path path * } + if$ +} + +% Format ISBN. +% +% string format.isbn () +% { +% if (empty$(isbn)) +% { +% return ""; +% } else +% { +% return "ISBN " * isbn; +% } +% } +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "ISBN " isbn * } + if$ +} + +% Format nazvu serialove publikace. +% +% string format.journal () +% { +% if (empty$(journal)) +% { +% return ""; +% } else +% { +% return emphasize(journal); +% } +% } +FUNCTION {format.journal} +{ journal empty$ + { "" } + { journalsubtitle empty$ + { journal capitalize emphasize } + { journal capitalize emphasize + opt.sep.t * journalsubtitle emphasize *} + if$ + } + if$ +} + +% Format nazvu lokace ve zdrojovem dokumentu. +% +% string format.pages () +% { +% if (empty$(pages)) +% { +% return ""; +% } else +% { +% return "s.~" * dashify(pages); +% } +% } +FUNCTION {format.pages} +{ pages empty$ + { "" } + { "s.~" pages dashify * } + if$ +} + +FUNCTION {format.chapter} +{ chapter empty$ + { "" } + { "kap.~" chapter * } + if$ +} + +% Formatovani data vydani, rocniku a cisla publikace + datum revize/aktualizace +% + darum citace + lokace ve zdrojovem dokumentu (rozsah stran). +% +% string format.journal.issue () +% { +% string s; +% if (empty$(format.u.date())) +% { +% s = ""; +% } else +% { +% s = format.u.date(); +% } +% if (!empty$(volume)) +% { +% if (is.ord(volume)) +% { +% s = comma.connect(s, "sv.~" * volume); +% } else +% { +% s = comma.connect(s, volume); +% } +% } +% if (empty$(number)) +% { +% warning$("empty number in " * cite$); +% } else +% { +% if (is.ord(number)) +% { +% s = comma.connect(s, "č.~" * number); +% } else +% { +% s = comma.connect(s, number); +% } +% } +% if (s == "") +% { +% warning$("empty journal issue info in " * cite$); +% return ""; +% } else +% { +% return s; +% } +% } +FUNCTION {format.journal.issue} +{ format.u.date + duplicate$ empty$ + { pop$ "" 's := } + { 's := } + if$ + volume empty$ + 'skip$ + { volume is.ord + { "sv.~" volume * + s swap$ comma.connect 's := + } + { s volume comma.connect 's := } + if$ + } + if$ + number empty$ + { "empty number in " cite$ * warning$ } + { number is.ord + { "č.~" number * + s swap$ comma.connect 's := + } + { s number comma.connect 's := } + if$ + } + if$ + s empty$ + { "empty journal issue info in " cite$ * warning$ + "" + } + { s } + if$ +} + +% Format ISSN. +% +% string format.issn () +% { +% if (empty$(issn)) +% { +% return ""; +% } else +% { +% return "ISBN " * issn; +% } +% } +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "ISSN " issn * } + if$ +} + +% Format DOI. +% +% string format.doi () +% { +% if (empty$(doi)) +% { +% return ""; +% } else +% { +% return "DOI: " * doi; +% } +% } +FUNCTION {format.doi} +{ doi empty$ + { "" } + { "DOI: " doi * } + if$ +} + +% Formatuje cislo svazku -- presne urceni casti pro @InBook. +% +% string format.vol () +% { +% if (empty$(volume)) +% { +% push(""); +% } else +% { +% if (is.ord(volume)) +% { +% push("sv.~" * volume); +% } else +% { +% push(volume); +% } +% } +% return capitalize(pop()); +% } +FUNCTION {format.vol} +{ volume empty$ + { "" } + { volume is.ord + { "sv.~" volume * } + { volume } + if$ + } + if$ + capitalize +} + +% Formatuje zakladni informace (primarni odpovednost a titul) o sborniku pro +% bibliograficke citaci clanku ve sborniku. +% +% In opt.sep.a() . +% +% Pokud je prazdny, netiskne se nic. +% +% void conference.basics () +% { +% if (empty$(editor)) +% { +% if (empty$(organization)) +% { +% warning$("empty editor and organization in " * cite$()); +% push(""); +% } else +% { +% if ((substring$(organization, -1, 1) == opt.sep.a()) +% { +% push(capitalize(organization)); +% } else +% { +% push(capitalize(organization * opt.sep.a())); +% } +% } +% } else +% { +% if ((substring$(format.editors(), -1, 1) == opt.sep.a()) +% { +% push(format.editors()); +% } else +% { +% push(capitalize(format.editors() * opt.sep.a())); +% } +% } +% push(tie.or.connect("In:", pop())); +% if (empty$(format.from.btitle())) +% { +% pop(); +% push(""); +% } else +% { +% push(pop() * format.from.btitle()); +% } +% return pop(); +% } +FUNCTION {conference.basics} +{ editor empty$ + { organization empty$ + { "empty editor and organization in " cite$ * warning$ + "" + } + { organization capitalize + duplicate$ #-1 #1 substring$ opt.sep.a = + 'skip$ + { opt.sep.a * } + if$ + } + if$ + } + { format.editors + duplicate$ #-1 #1 substring$ opt.sep.a = + 'skip$ + { opt.sep.a * } + if$ + } + if$ + "In:" swap$ tie.or.connect + format.from.btitle + duplicate$ empty$ + { pop$ } + { tie.or.connect } + if$ +} + + +% Formatuje informace o akademicke (diplomova, dizertacni atp.) praci. +% Odlisuje se od beznych nakladatelskych informaci pouzitymi polozkami. +% +% string format.thesis.info () +% { +% string s = ""; +% if ( (empty$(address)) && (empty$(location)) && (empty$(school)) ) +% { +% warning$("empty address and school in " * cite$()); +% } else +% { +% if (empty$(address)) +% { +% } else +% { +% s = address; +% } +% if (empty$(location)) +% { +% } else +% { +% s = location; +% } +% if (empty$(year)) +% { +% warning$("empty year in " * cite$()); +% } else +% { +% if (empty$(s)) +% { +% s = year; +% } else +% { +% s = comma.connect(s, year); +% } +% } +% } +% return s; +% } +FUNCTION {format.thesis.info} +{ "" 's := + address empty$ + location empty$ + school empty$ + and + and + { "empty address and school in " cite$ * warning$ } + { address empty$ + 'skip$ + { address 's := } + if$ + location empty$ + 'skip$ + { location 's := } + if$ + year empty$ + { "empty year in " cite$ * warning$ } + { s empty$ + { year 's := } + { s year comma.connect 's := } + if$ + } + if$ + } + if$ + s +} + +% Formatuje informace o skole v akademicke (diplomova, dizertacni atp.) praci. +% +% string format.thesis.school () +% { +% string s = ""; +% if (empty$(school)) +% { +% warning$("empty school in " * cite$()); +% } else +% { +% if (empty$(s)) +% { +% s = school; +% } else +% { +% s = s * ". " * school; +% } +% } +% return s; +% } +FUNCTION {format.thesis.school} +{ "" 's := + school empty$ + { "empty school in " cite$ * warning$ } + { s empty$ + { school 's := } + { s ". " * school * 's := } + if$ + } + if$ + s +} + + +% Formatuje pocet stran a priloh u akademickych praci. +% +% string format.thesis.range () +% { +% if ( (empty$(format.range())) && (!empty$(inserts)) ) +% { +% return format.range(); +% } else +% { +% if (is.ord(inserts)) +% { +% return comma.connect(format.range(), inserts * " příl."); +% } else +% { +% return comma.connect(format.range(), inserts); +% } +% } +% } +FUNCTION {format.thesis.range} +{ pages empty$ + { "" 's := } + { pages opt.pages tie.or.connect 's := } + if$ + s empty$ + { "" } + { inserts empty$ + { s } + { s inserts opt.pages tie.or.connect " příl." * comma.connect } + if$ + } + if$ +} + +% Formatuje typ akademicke prace. +% +% string format.thesis.type (string basic.thesis.type) +% { +% if (empty$(type)) +% { +% return basic.thesis.type; +% } else +% { +% return capitalize(type); +% } +% } +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ type capitalize } + if$ +} + + +% Fromatuje typ a cislo technicke zpravy +% +% string format.report.type () +% { +% if (empty$(type)) +% { +% push(""); +% } else +% { +% push(type); +% } +% if (empty$(number)) +% { +% } else +% { +% space.connect(pop(), number); +% } +% } +FUNCTION {format.report.type} +{ type empty$ + { "" } + { type } + if$ + number empty$ + 'skip$ + { number space.connect } + if$ +} + + +% Kontrola prazdnosti vsech policek pouzitych pro @MISC zaznam. +% +% int empty.misc.check () +% { +% if ( (empty$(author)) && (empty$(title)) && +% (empty$(howpublished)) && (empty$(month)) && (empty$(year)) && +% (empty$(note)) && (!empty$(key)) ) +% { +% warning$("all misc relevant fields are empty in " * cite$()); +% return 1; +% } else +% { +% return 0; +% } +% } +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all misc relevant fields are empty in " cite$ * warning$ + #1 + } + { #0 } + if$ +} + + +% Formatuje misto a instituci technicke zpravy. +% +% string format.report.details () +% { +% if ( empty$(institution) ) +% { +% if ( empty$(address) && empty$(organization) ) +% { +% return ""; +% } else +% { +% if (empty$(address)) +% { +% push(""); +% } else +% { +% push(opt.sep.a() * " " * address * opt.sep.p()); +% } +% if (empty$(organization)) +% { +% warning$("empty organization in " * cite$()); +% } else +% { +% return pop() * organization; +% } +% } +% } else +% { +% if ( empty$(address) && empty$(institution) ) +% { +% return ""; +% } else +% { +% if (empty$(address)) +% { +%% push("[b.m.]"); +% push(""); +% } else +% { +% push(opt.sep.a() * " " * address * opt.sep.p()); +% } +% if (empty$(institution)) +% { +% warning$("institution is empty in " * cite$()); +% } else +% { +% return pop() * institution; +% } +% } +% } +% } +FUNCTION {format.report.details} +{ institution empty$ + { + address empty$ + organization empty$ + and + { "" } + { address empty$ + { "" } + { address } + if$ + organization empty$ + { "empty organization in " cite$ * warning$ } + { address empty$ + { organization * } + { opt.sep.p * organization * } + if$ + } + if$ + } + if$ + } + { + address empty$ + institution empty$ + and + { "" } + { address empty$ + { "" } + { address } + if$ + institution empty$ + { "empty institution in " cite$ * warning$ } + { address empty$ + { institution * } + { opt.sep.p * institution * } + if$ + } + if$ + } + if$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%% VLASTNI KOD -- FUNKCE PRO ZPRACOVANI ZAZNAMU %%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Zpracuje zaznamy typu @Article. +% Bibliograficke citace clanku v serialovych publikaci (casopiseckych clanku). +% +% Povinne polozky: author, title, journal, edition, year, volume, number, pages, issn +% Volitelne polozky: subtitle, journalsubtitle, publisher, address, contributory, url*, month, note, doi +% Polozky el. dok.: howpublished*, revised*, cited*, version +% +% * Povinna polozka pro el. dok. +FUNCTION {article} +{ output.bibitem + format.authors + duplicate$ empty$ + { pop$ + "empty author in " cite$ * warning$ + } + { output.authors } + if$ + new.block %% primarni odpovednost (povinna) + format.title "title" output.check + new.block %% titul (povinny) + format.journal "journal" output.check + format.howpublished output + new.block + format.edition "edition" output.check + new.block %% vydani (povinne) + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info output + new.block + format.journal.issue + format.pages comma.connect + format.revised comma.connect + format.cited comma.connect output + new.block %% lokace ve zdrojovem dokumentu (povinna) + format.cseries output + new.block + format.doi output + new.block + format.issn output %% standardni cislo ISSN (volitelne) + new.block + note output + new.block %% poznamky (volitelne) + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +}% @Article + +% Zpracuje zaznamy typu @Book. +% Bibliograficke citace monografickych publikaci (knih). +% +% Povinne polozky: author nebo editor, title, edition, address, publisher, year, isbn +% Volitelne polozky: subtitle, contributory, month, pages, series, number nebo volume, note, url* +% Polozky el. dok.: howpublished*, revised*, cited*, version +% +% * Povinna polozka pro el. dok. +FUNCTION {book} +{ output.bibitem + author.or.editor + new.block %% primarni odpovednost (povinna) + format.btitle "book title" output.check + format.howpublished output + new.block %% nazev (povinny) a druh nosice (povinny u el. dok.) + format.edition capitalize "edition" output.check + new.block %% vydani (povinne) + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info + format.date comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% nakladatelske udaje (volitelne), datum vydani (povinne), + %% datum revize/aktualizace a citace (povinne u el. dok.) + format.range output + new.block %% rozsah (volitelny) + format.cseries output + new.block %% edice (volitelna) + format.isbn "isbn" output.check + new.block + note capitalize output + new.block %% poznamky (volitelne) + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry %% standardni cislo ISBN (povinne) +}% @Book + +% @Booklet je pouhy odkaz na @Book. +FUNCTION {booklet} { book } + +% Zpracuje zaznamy typu @Conference, @InProceedings, @InCollection a @InBook. +% Bibliograficke citace monografickych publikaci (knih). +% +% Povinne polozky: author, title, editor nebo organization, booktitle, +% edition, address, publisher, year, pages, isbn or issn. +% Volitelne polozky: subtitle, booksubtitle, contributory, month, series, editionnumber, number, volume, note, chapter, doi, url*. +% Polozky el. dok.: howpublished*, revised*, cited*, version. +% +% * Povinna polozka pro el. dok. +FUNCTION {conference} +{ output.bibitem + author.or.editor + new.block %% primarni odpovednost (povinna) + format.title "title" output.check + new.block %% titul prispevku + conference.basics + format.howpublished tie.or.connect output + new.block %% primarni odpovednost a titul sborniku +% format.edition "edition" output.check + format.edition output + new.block %% vydani + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info + format.date capitalize comma.connect + format.cvolume comma.connect + format.chapter comma.connect + format.pages comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% nakladatelske udaje, datum vydani, revize/aktualizace a citace + format.cseries output + new.block %% edice (pokud je cislovana, tak i jeji cislo nebo svazek) + format.doi output + new.block + isbn empty$ + { issn empty$ + { "empty isbn and issn in " cite$ * warning$ } + { format.issn output } + if$ + } + { format.isbn output } + if$ + new.block %% standardni cislo ISBN nebo ISSN (povinne) + note capitalize output + new.block %% poznamky + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +} % @Conference a @InProceedings, @InCollection a @InBook + +% @InProceedings je pouhy odkaz na @Conference. +FUNCTION {inproceedings} { conference } +FUNCTION {incollection} { conference } +FUNCTION {inbook} { conference } + +% Zpracuje zaznamy typu @Proceedings. +% +% Bibliograficke citace monografickych publikaci (knih). +% +% Povinne polozky: author nebo editor, title, edition, year, isbn or issn. +% Volitelne polozky: subtitle, contributory, address, publisher, month, series, number nebo volume, note, doi, url*. +% Polozky el. dok.: howpublished*, revised*, cited*, version. +% +% * Povinna polozka pro el. dok. +FUNCTION {proceedings} +{ output.bibitem + author.or.editor + new.block %% primarni odpovednost (povinna) + format.btitle + format.howpublished tie.or.connect output + new.block %% primarni odpovednost a titul sborniku +% format.edition "edition" output.check + format.edition output + new.block %% vydani + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info + format.date capitalize comma.connect + format.cvolume comma.connect + format.chapter comma.connect + format.pages comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% nakladatelske udaje, datum vydani, revize/aktualizace a citace + format.cseries output + new.block %% edice (pokud je cislovana, tak i jeji cislo nebo svazek) + format.doi output + new.block + isbn empty$ + { issn empty$ + { "empty isbn and issn in " cite$ * warning$ } + { format.issn output } + if$ + } + { format.isbn output } + if$ + new.block %% standardni cislo ISBN nebo ISSN (povinne) + note capitalize output + new.block %% poznamky + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +} % @Proceedings + +% Zpracuje zaznamy typu @Misc, @Webpage a @Website. +% +% Povinne polozky: Alespon jedna z volitelnych! +% Volitelne polozky: author, secondarytitle, title, subtitle, howpublished, contributory, edition, month, doi, issn +% year, revised*, cited, note, url, version, path +% +% Pozn.: Protestuje, pokud neni vyplneny rok. Nemel by tedy volat format.date... +FUNCTION {misc} +{ empty.misc.check + 'skip$ + { output.bibitem + format.authors + duplicate$ empty$ + { pop$ + } + { output.authors } + if$ + new.block + secondarytitle output + new.block + format.btitle "title" output.check + format.howpublished output + new.block + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.edition output + new.block + format.publish.info + edition empty$ + address empty$ + publisher empty$ + and + and + { + output + day empty$ + { format.u.date capitalize output } + { day ". " * format.date.g * comma.connect output } + if$ + } + { + day empty$ + { format.date comma.connect output } + { day ". " * format.date.g * comma.connect output } + if$ + } + if$ + time output + revised empty$ + 'skip$ + { + new.block + format.revised output + } + if$ + format.cited makesmall output + new.block + format.doi output + new.block + format.issn output %% standardni cislo ISSN (volitelne) + new.block + note capitalize makesmall output + new.block + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + new.block + format.path output + fin.entry + } + if$ +}%@Misc a @Webpage a @Website +% @Webpage a @Website sou pouhe odkazy na @Misc. +FUNCTION {webpage} { misc } +FUNCTION {website} { misc } + + +% Zpracuje zaznamy typu @Manual, @TechReport a @Unpublished. +% +% Povinne polozky: author, title, edition, address, organization nebo institution, month, year, revised +% Volitelne polozky: note, number, url* +% Polozky el. dok.: howpublished*, cited* +FUNCTION {techreport} +{ output.bibitem + author.or.editor + new.block %% primarni odpovednost (povinna) + format.btitle "title" output.check + format.howpublished output + new.block + format.report.type + format.edition capitalize comma.connect output + new.block + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.report.details + format.date comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% udeja o vydavajici instituci (volitelne) a datum vydani (povinne) + format.range output + new.block %% rozsah (volitelny) + note capitalize output + new.block %% poznamka (volitelna) + format.url output + new.block %% dostupnost (volitelna) + fin.entry +}%@Manual, @TechReport a @Unpublished +FUNCTION {manual} { techreport } +FUNCTION {unpublished} { techreport } + + +% Zpracuje zaznamy typu @BachelorsThesis, @MastersThesis a @PhdThesis. +% Bibliograficke citace akademickych praci (bakalarske, diplomove a dizertacni). +% +% Zakladni verze -- v choose.thesis ma hodnotu #0. +% +% Povinne polozky: author, title, address nebo location, school, year, type +% Volitelne polozky: subtitle, pages, inserts, note, url, isbn, howpublished +FUNCTION {thesis} +{ output.bibitem + format.authors + duplicate$ empty$ + { pop$ + "empty author in " cite$ * warning$ + } + { output.authors } + if$ + new.block %% primarni odpovednost (povinna) + format.btitle "title" output.check + format.howpublished output + new.block %% titul (povinny) + format.thesis.info capitalize output + new.block %% misto a rok {povinne) + format.cited makesmall output + new.block %% cited + format.thesis.range output + new.block %% rozsah akademicke prace a jejich priloh (volitelne) + type$ "l" change.case$ + duplicate$ "bachelorsthesis" = + { pop$ "Bakalářská práce" } + { "mastersthesis" = + { "Diplomová práce" } + { "Disertační práce" } + if$ + } + if$ + format.thesis.type output + new.block %% typ akademicke prace (volitelny -- pouzije se implicitni) + format.thesis.school output + new.block + format.isbn output + new.block + format.supervisor output + note capitalize output + new.block + format.url output + fin.entry %% standardni cislo ISBN (volitelne) +}%@BachelorsThesis, @MastersThesis a @PhdThesis + +% Zaznamy typu @BachelorsThesis jsou zpracovany funkci thesis. +FUNCTION {bachelorsthesis}{ thesis } + +% Zaznamy typu @MastersThesis jsou zpracovany funkci thesis. +FUNCTION {mastersthesis} { thesis } + +% Zaznamy typu @PhdThesis jsou zpracovany funkci thesis. +FUNCTION {phdthesis} { thesis } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%% MIRNE UPRAVENE FUNKCE PREVZATE Z plain.bst %%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% nacteni bibliograficke databaze +READ + +% Pripravi hodnotu pro razeni -- aplikuje vestavenou funkci purify$ a prevede +% na minusky. +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +% Deklarace dalsi celociselne promenne. +INTEGERS { len } + +% Vrati pouze cast predane hodnoty. +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +% Piprava jmen na razeni. +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ +% s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + s nameptr "{ll{ }}{ ff{ }}{ vv{ }}" format.name$ 't := %% Zamena! + nameptr numnames = t "others" = and + { opt.etal * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% Priprava titulu na serazeni. +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +% Serazeni dle autora. +FUNCTION {author.sort} +{ key empty$ + { author empty$ + editor empty$ + and + { "to sort, need author or key in " cite$ * warning$ + "" + } + { author empty$ + { editor sort.format.names } + { author sort.format.names } + if$ + } + if$ + } + { key sortify } + if$ +} +% Dytrych: Původní funkce upřednostní jméno před klíčem a ten pak nelze použít k opravě českého řazení. +% FUNCTION {author.sort} +% { author empty$ +% { key empty$ +% { "to sort, need author or key in " cite$ * warning$ +% "" +% } +% { key sortify } +% if$ +% } +% { author sort.format.names } +% if$ +% } + +% Serazeni dle editora. +FUNCTION {author.editor.sort} +{ key empty$ + { author empty$ + { editor empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ + } + { key sortify } + if$ +} +% FUNCTION {author.editor.sort} +% { author empty$ +% { editor empty$ +% { key empty$ +% { "to sort, need author, editor, or key in " cite$ * warning$ +% "" +% } +% { key sortify } +% if$ +% } +% { editor sort.format.names } +% if$ +% } +% { author sort.format.names } +% if$ +% } + +% Serazeni dle autora, editora nebo organizace. Jedna se o nevyuzitou funkci. +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +% Serazeni dle editora ci organizace. Jedna se o nevyuzitou funkci. +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +% Priprava na razeni. +% +% Funkce je zmenena oproti puvodnimu zneni v plain.bst. +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + { author.editor.sort } + { author.sort } + if$ + " " * + year field.or.null sortify * + " " * + title field.or.null + sort.format.title * + #1 entry.max$ substring$ + 'sort.key$ := +} + +% Provede pripravu pred razenim. +ITERATE {presort} + +% Provede serazeni. +SORT + +% Deklarace retezcove promenne pro urceni nejdelsiho navesti do soupisu bib.cit. +STRINGS { longest.label } + +% Deklarace pomocnych ciselnych promennych. +INTEGERS { number.label longest.label.width } + +% Inicializace pomocnych promennych. +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +% Predani nejdelsiho navesti. +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +% Provede inicializaci pomocnych promennych. +EXECUTE {initialize.longest.label} + +% Vybere nejdelsi navesti. +ITERATE {longest.label.pass} + +% Tato funkce se stara o prvni radky, ktere se objevi ve vystupnim souboru. +% +% Tato funkce je rozsirena o podminenou definici prikazu \url{}. +FUNCTION {begin.bib} +{ "\makeatletter" write$ newline$ +%%% "\@ifundefined{url}" +%%% "{\def\url#1{{\tt $<$#1$>$}}}" * +%%% "{\DeclareUrlCommand\url{\def\UrlLeft{<} \def\UrlRight{>} \urlstyle{tt}}}" * +%%% write$ newline$ + "\makeatother" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +% Funkce zapise posledni radky do vystupniho souboru -- uzavre prostredi +% thebibliography. +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +% Vlozi do vystupniho souboru zacatek prostredi thebibliography. +EXECUTE {begin.bib} + +% Provede inicilizaci potrebnych konstant. +EXECUTE {init.state.consts} + +% Zpracovani vsech citovanych zaznamu. +ITERATE {call.type$} + +% Uzavre prostredi thebibliography. +EXECUTE {end.bib} diff --git a/latex_verze/bib-styles/Pysny/enplain.bst b/latex_verze/bib-styles/Pysny/enplain.bst new file mode 100644 index 0000000..d1390ea --- /dev/null +++ b/latex_verze/bib-styles/Pysny/enplain.bst @@ -0,0 +1,3175 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Project: IBP - Bachelor's Thesis +% Title: BibTeX style for CSN ISO 690 and CSN ISO 690-2 +% Author: Radek Pysny, xpysny00 +% Translated: Jaroslav Dytrych +% URI: http://www.fit.vutbr.cz/study/DP/BP.php?id=7848 +% +% File: enplain.pst was created by translating czplain.bst, that was created by editing plain.bst +% Date: Created on June 31, 2019. +% Last edited 10. kveten 2009, 16:55. +% Edited by Adam Herout for FIT thesis template: 31.7.2019 +% Edited by Jaroslav Dytrych to achieve conformance with +% standard for FIT thesis template: 10.10.2019 +% Description: English bibliographic style. +% Use: +% Encoding: UTF-8 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%% OPTIONS FOR BIBLIOGRAPHIC STYLE SETTINGS %%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% -- Maximum number of authors to be processed. +% If the author element contains a list with more authors than opt.aa, +% the bibliographic citation will display exactly opt.aa authors. +% This author listing will end with a string set in opt.etal. +% FUNCTION {opt.aa} { #3 } +% FUNCTION {opt.aa} { #4 } +FUNCTION {opt.aa} { #5 } +% FUNCTION {opt.aa} { #99 } + + +% -- Maximum number of authors to be processed. +% Similar to option opt.aa. +% FUNCTION {opt.ae} { #1 } +% FUNCTION {opt.ae} { #2 } +% FUNCTION {opt.ae} { #3 } +% FUNCTION {opt.ae} { #4 } +FUNCTION {opt.ae} { #5 } + + +% -- Separator for the list of authors. +% Used to join names in the list. An exception to this are the last two names, +% that are joined by a string specified in option opt.sep.ln. +FUNCTION {opt.sep.bn} { ", " } +% FUNCTION {opt.sep.bn} { " -- " } + + +% -- Separator for the last two names in the list of authors. +FUNCTION {opt.sep.ln} { " and~" } +% FUNCTION {opt.sep.ln} { " -- " } + +% -- Unfinished listing of names. +% Used if the number of authors exceeds the limit set by options opt.aa or opt.ae. +% It is also used, if the keyword "others" is used instead of the last author. +FUNCTION {opt.etal} { "et~al." } + +% -- Signify editor (redactor). +% Names of editors are distinguished from authors with this option. +FUNCTION {opt.ed} { "ed." } +% FUNCTION {opt.ed} { "(ed.)" } +% FUNCTION {opt.ed} { "(red.)" } +% FUNCTION {opt.ed} { "" } + +% -- Signify editor (redactor) after each name. +% Signifies where option opt.ed should be used. Either after each name, +% or only at the end of the element. +FUNCTION {opt.ed.all} { #0 } % pouze na konci prvku +% FUNCTION {opt.ed.all} { #1 } % za kazdym jmenem + +% -- Separator between primary author(s) and title elements. +FUNCTION {opt.sep.a} { "." } +% FUNCTION {opt.sep.a} { ":" } + +% -- Separator between place of publication and publisher elements +% (alternatively university or another institution). +FUNCTION {opt.sep.p} { ": " } +% FUNCTION {opt.sep.p} { " : " } +% FUNCTION {opt.sep.p} { ", " } + +% -- Separator between title and subtitle elements. +% If both title and subtitle elements are used, this string is used as a separator +% between these two elements. +FUNCTION {opt.sep.t} { ": " } +% FUNCTION {opt.sep.t} { " : " } + +% -- Oznaceni rozsahu u akademickych praci. +% U akademickych praci mate pomoci teto volby moznost urcit, zda-li bude rozsah +% techto praci udavan ve stranach nebo v listech. + +% -- Specifies number of pages of a theses. +% Used for theses, you can choose between number of pages and number of sheets. +FUNCTION {opt.pages} { "p." } % number of pages +% FUNCTION {opt.pages} { "sh." } % number of sheets + + +% -- Beginning of the availability element (url). +% This option affects text, that is displayed before the URL itself. +% FUNCTION {opt.url} { "" } +FUNCTION {opt.url} { "Available at: " } +% FUNCTION {opt.url} { "Available from: " } + +FUNCTION {opt.path} { "Path: " } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%% DECLARATION OF ENTRIES AND VARIABLES %%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Entries that are accepted and processed by this style. +ENTRY + { address + author + booktitle + booksubtitle % book subtitle + cited % date of citation + contributory % secondary author(s) + day + doi + edition + editionnumber % edition number + editor + howpublished % type of medium + chapter + institution + inserts % number of appdendices pages + isbn % standard number + issn % standard number + journal + journalsubtitle + key + location + month + note + number + organization + path + pages + publisher + revised % revision date/update + secondarytitle % webpage title + school + series % edition name + subtitle % subtitle + supervisor % for theses + time % publication time + title + type + url % availability + version % version of electronic documents + volume + year + } + { } + { label } + +% Integer variables. Each variable (except for constants, that are only initialized +% in function init.state.consts -- before.all, mid.sentence, after.sentence, +% after.block) has a list of functions, that modify its value. +% +% output.state -- output.nonnull, output.bibitem, new.block, new.sentance +% +% ord -- is.ord +% +% ptr, i, x -- str.to.int +% +% numnames, namesleft, nameptr -- format.names, format.names.ed, +% sort.format.names +INTEGERS { output.state before.all mid.sentence after.sentence after.block + ord ptr i x numnames namesleft nameptr } + +% String variables. Each variable has a list of functions, that modify its value. +% +% s -- output.nonnull, format.names, format.names.ed, format.journal.issue, +% format.thesis.info, format.thesis.range, chop.word, sort.format.names +% +% t -- output.check, dashify, str.to.int, format.names, format.names.ed, +% format.full.date, sort.format.names, sort.format.title +% +% u -- is.ord, tie.or.connnect, comma.connect +STRINGS { s t u } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%% DEFINITION OF ABBREVIATIONS -- ENGLISH NAMES OF MONTHS %%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +MACRO {jan} {"january"} + +MACRO {feb} {"february"} + +MACRO {mar} {"march"} + +MACRO {apr} {"april"} + +MACRO {may} {"may"} + +MACRO {jun} {"june"} + +MACRO {jul} {"july"} + +MACRO {aug} {"august"} + +MACRO {sep} {"september"} + +MACRO {oct} {"october"} + +MACRO {nov} {"november"} + +MACRO {dec} {"december"} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%% SLIGHTLY EDITED FUNCTIONS TAKEN FROM plain.bst %%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Initialization of constants necessary for correct functionality of the style. +% +% void init.state.consts () +% { +% int before.all = 0; +% int mid.sentence = 1; +% int adter.sentence = 2; +% int after.block = 3; +% } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +% Output of preformatted array, that is certainly not empty. Output format is a +% ffected by output state (i.e. state variable output.state). The output itself +% is delayed (the current value is printed upon the next call of this function) +% as the correct separator needs to be chosen (dot or comma). +% +% void output.nonnull () +% { +% s = pop(); +% if (output.state == mid.sentence) +% { +% write(pop() * " "); // zde byla carka!!! +% } else +% { +% if (output.state == after.block) +% { +% write(add.period(pop())); +% flush(); +% write("\newblock "); +% } else +% { +% if (output.state == before.all) +% { +% write(pop()); +% } else +% { +% write(add.period(pop()) * " "); +% } +% } +% } +% push(s); +% } +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { " " * write$ } %% Uprava: Nahrada ", " za " "! + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + { write$ } + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +% If a nonnull value is at the top of stack, the output is executed with +% the output.nonnull function. Otherwise it is removed from stack. +% +% /** pseudocode without the use of a stack **/ +% void output (string string.to.write) +% { +% if (empty$(string.to.write)) +% { } else +% { +% output.nonnull(string.to.write); +% } +% } +FUNCTION {output} +{ duplicate$ empty$ + { pop$ } + { output.nonnull } + if$ +} + +% If a nonnull value is at the top of stack, the output is executed with +% the output.nonnull function. Otherwise it is removed from stack and warning +% regarding missing value is printed to error output. It is used to inform the +% user of a missing value that % is required by the czech standard. +% +% /** pseudocode without the use of a stack **/ +% void output.check (string type.of.field string string.to.write) +% { +% t = type.of.field; +% if (empty$(string.to.write)) +% { +% warning$("empty" * t * " in " * cite$()) +% } else +% { +% output.nonnull(string.to.write); +% } +% } +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + { output.nonnull } + if$ +} + +% Prints the beginning of a bibliographic citation. +% +% void output.bibitem () +% { +% newline$(); +% write$("\bibitem{"); +% write$(cite$); +% write$("}"); +% newline$(); +% push(""); +% int output.state = before.all; +% } +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +% Entry completion (with a dot at the end). +% +% void fin.entry () +% { +% write(add.period$(pop())); +% newline$(); +% } +FUNCTION {fin.entry} +{ add.period$ write$ + newline$ +} + +% State change: {mid.sentence; after.sentence} => after.block. +% +% void new.block () +% { +% if (output.state == before.all) +% { } else +% { +% output.state = after.block; +% } +% } +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +% State change: mid.sentence => after.sentence. +% +% void new.sentence () +% { +% if (output.state == after.block) +% { } else +% { +% if (output.state == before.all) +% { } else +% { +% output.state = after.sentence; +% } +% } +% } +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +% Negation of condition. +% +% int not (int bool) +% { +% if (bool) +% { +% return 0; // false +% } else +% { +% return 1; // true +% } +% } +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +% Conjunction of two conditions. +% +% int and (int bool1, int bool2) +% { +% if (bool2) +% { +% return bool1; +% } else +% { +% return 0; +% } +% } +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +% Disjunction of two conditions. +% +% int or (int bool1, int bool2) +% { +% if (bool2) +% { +% return 1; +% } else +% { +% return bool1; +% } +% } +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +% Beginning of a new block if there is a nonnull value at the of stack. +% +% void new.block.checka (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { } else +% { +% new.block(); +% } +% } +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + { new.block } + if$ +} + +% Beginning of a new block if there are two nonnull values at the top of stack. +% +% void new.block.checkb (int.or.string anything.under.the.top, +% int.or.string anything.from.the.top) +% { +% if ( (empty$(anything.from.the.top)) && (empty$(anything.under.the.top)) ) +% { } else +% { +% new.block(); +% } +% } +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + { new.block } + if$ +} + +% Beginning of a new sentence if there is a nonnull value at the top of stack. +% +% void new.sentence.checka (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { } else +% { +% new.sentence(); +% } +% } +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + { new.sentence } + if$ +} + +% Beginning of a new sentence if there are two nonnull values at the top of stack. +% +% void new.sentence.checkb (int.or.string anything.under.the.top, +% int.or.string anything.from.the.top) +% { +% if ( (empty$(anything.from.the.top)) && (empty$(anything.under.the.top)) ) +% { } else +% { +% new.sentence(); +% } +% } +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ and + 'skip$ + { new.sentence } + if$ +} + +% Returns value of an entry (at the top of stack) or empty (null) string. +% +% int.or.string field.or.null (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { +% return ""; +% } else +% { +% return anything.from.the.top; +% } +% } +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +% Prints an error message in cases, where there are two nonnull mutually exclusive entries. +% Function is called with two arguments -- the first one is a string containing names of both +% items and the other one is the content of one of the items. +% +% void either.or.check (string field.names, int.or.string one.of.fields) +% { +% if (empty$(one.of.fields)) +% { } else +% { +% warning$(field.names * "can't use both " * " fields in " * cite$()); +% } +% } +FUNCTION {either.or.check} +{ empty$ + { pop$ } + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% Adds emphasis to the value at the top of stack (encloses it with "{\em" +% and "}"). Does not utilize italic type correction. +% +% string emphasize (string x) +% { +% if (empty$(x)) +% { +% return ""; +% } else +% { +% return "{\em " * x * "}"; +% } +% } +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {makebold} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {makesmall} +{ duplicate$ empty$ + { pop$ "" } + { "{\small " swap$ * "}" * } + if$ +} + +% Replaces each occurence of '-' with "--". +% +% string dashify (string to.dashify) +% { +% t = to.dashify; +% push(""); +% while (!empty$(t)) +% { +% if (substring$(t, 1, 1) == "-") +% { +% if (substring$(t, 1, 2) == "--") +% { +% while (substring$(t, 1, 1) == "-") +% { +% push(pop() * "-"); +% t = substring$(t, 2, global.max$()); +% } +% } else +% { +% push(pop() * "--"); +% t = substring$(t, 2, global.max$()); +% } +% } else +% { +% push(pop() * substring$(t, 1, 1)); +% t = substring$(t, 2, global.max$()); +% } +% } +% } +FUNCTION {dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + { "--" * + t #2 global.max$ substring$ 't := + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%% CODE -- AUXILIARY FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Conversion of string to number. A function call is expected after a successful +% test using the 'is.ord' function. The expected input is a nonnull string +% comprised of digits only. +% +% int str.to.int (string to.convert) +% { +% t = to.convert; +% int x = 0; +% int ptr = 0; +% while (ptr text.length$(t) < ) +% { +% push(x); +% i = 9; +% while (i > 0) +% { +% push(pop() + x); +% i--; +% } +% ptr++; +% x = chr.to.int$(substring$(t, ptr, 1)) - 48 + pop(); +% } +% return x; +% } +FUNCTION {str.to.int} +{ 't := + #0 'x := + #0 'ptr := + { ptr t text.length$ < } + { x + #9 'i := + { i #0 > } + { x + + i #1 - 'i := + } + while$ + ptr #1 + 'ptr := + t ptr #1 substring$ chr.to.int$ #48 - + 'x := + } + while$ + x +} + +% Converts the first letter of a string at the top of stack to capital. +% +% string capitalize (string to.capitalize) +% { +% if (empty$(to.capitalize)) +% { } else +% { +% return change.case$(substring$(to.capitalize, 1, 1), "u") * +% substring$(to.capitalize, 2, global.max$()); +% } +% } +FUNCTION {capitalize} +{ duplicate$ empty$ + 'skip$ + { duplicate$ #1 #1 substring$ "u" change.case$ + swap$ #2 global.max$ substring$ * + } + if$ +} + +% Connects two strings from the top of the stack. These two strings are separated +% by a whitespace or non-breaking space. String at the top of the stack is connected +% to the other one, specifically behind it. +% +% If either of the strings is empty, the other string is returned without any changes. +% If both strings are empty, the function also returns an empty string. +% +% string tie.or.connect (string under.the.top, string from.the.top) +% { +% string u = from.the.top; +% if (empty$(under.the.top)) +% { +% return u; +% } else +% { +% if (empty$(u)) +% { } else +% { +% if (text.length$(u) < 3) +% { +% return under.the.top * "~" * u; +% } else +% { +% return under.the.top * " " * u; +% } +% } +% } +% } +FUNCTION {tie.or.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { u text.length$ #3 < + { "~" * u * } + { " " * u * } + if$ + } + if$ + } + if$ +} + +% Connects two strings from the top of the stack. These two strings are separated +% by a comma. String at the top of the stack is connected to the other one, +% specifically behind it. +% +% If either of the strings is empty, the other string is returned without any changes. +% If both strings are empty, the function also returns an empty string. +% +% string comma.connect (string under.the.top, string from.the.top) +% { +% string u = from.the.top; +% if (empty$(under.the.top)) +% { +% return u; +% } else +% { +% if (empty$(u)) +% { } else +% { +% return under.the.top * ", " * u; +% } +% } +% } +FUNCTION {comma.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { ", " * u * } + if$ + } + if$ +} + +% Connects two strings from the top of the stack. A whitespace is used as the separator. +FUNCTION {space.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { " " * u * } + if$ + } + if$ +} + + +% Tests, whether or not a value at the top of stack is comprised of digits only. +% +% int is.ord (string x) +% { +% string u = x; +% int ord = 1; +% while ( (ord) && (!empty(u)) ) +% { +% if ( (chr.to.int$(substring$(u, 1, 1)) < 48) || +% (chr.to.int$(substring$(u, 1, 1)) > 57) ) +% { +% ord = 0; +% } else +% { +% u = substring(s, 2, global.max$()); +% } +% } +% return ord; +% } +FUNCTION {is.ord} +{ 'u := + #1 'ord := + { ord + u empty$ not + and + } + { u #1 #1 substring$ + duplicate$ chr.to.int$ #48 < % < '0' + swap$ chr.to.int$ #57 > % > '9' + or + { #0 'ord := } + { u #2 global.max$ substring$ 'u := } + if$ + } + while$ + ord +} + +% Formatting string for insertion of names according to czech convention +% using the 'format.name$' function. +% +% string cz.name.format () +% { +% return "{{\scshape\bgroup}ll{ }{\egroup}}{, f.}{ vv}"; +% } +FUNCTION {cz.name.format} +{ "{{\sc\bgroup}ll{ }{\egroup}}{, f.}{ vv}" } + +% Vraci nominativ mesice. +% +% /** prepis pseudokodu do funkce pracujici s polem **/ +% string get.month.n (int n) +% { +% int month = { 1 => "january", "february", "march", "april", "may", june", +% "july", "august", "september", "october", "november", "december" }; +% if ( (n > 0) && (n < 13) ) +% { +% return month[n]; +% } else +% { +% warning$("Month must be between 1 and 12!"); +% return ""; +% } +% } +FUNCTION {get.month.n} +{ duplicate$ #1 = + { "january" swap$ pop$ } + { duplicate$ #2 = + { "february" swap$ pop$ } + { duplicate$ #3 = + { "march" swap$ pop$ } + { duplicate$ #4 = + { "april" swap$ pop$ } + { duplicate$ #5 = + { "may" swap$ pop$ } + { duplicate$ #6 = + { "june" swap$ pop$ } + { duplicate$ #7 = + { "july" swap$ pop$ } + { duplicate$ #8 = + { "august" swap$ pop$ } + { duplicate$ #9 = + { "september" swap$ pop$ } + { duplicate$ #10 = + { "october" swap$ pop$ } + { duplicate$ #11 = + { "november" swap$ pop$ } + { duplicate$ #12 = + { "december" swap$ pop$ } + { "" "Month must be between 1 and 12!" warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +% Vraci genitiv mesice. +% +% /** prepis pseudokodu do funkce pracujici s polem **/ +% string get.month.g (int n) +% { +% int month = { 1 => "january", "february", "march", "april", "may", "june", +% "july", "august", "september", "october", "november", "december"}; +% if ( (n > 0) && (n < 13) ) +% { +% return month[n]; +% } else +% { +% warning$("Month must be between 1 and 12!"); +% return ""; +% } +% } +FUNCTION {get.month.g} +{ duplicate$ #1 = + { "January" swap$ pop$ } + { duplicate$ #2 = + { "February" swap$ pop$ } + { duplicate$ #3 = + { "March" swap$ pop$ } + { duplicate$ #4 = + { "April" swap$ pop$ } + { duplicate$ #5 = + { "May" swap$ pop$ } + { duplicate$ #6 = + { "June" swap$ pop$ } + { duplicate$ #7 = + { "July" swap$ pop$ } + { duplicate$ #8 = + { "August" swap$ pop$ } + { duplicate$ #9 = + { "September" swap$ pop$ } + { duplicate$ #10 = + { "October" swap$ pop$ } + { duplicate$ #11 = + { "November" swap$ pop$ } + { duplicate$ #12 = + { "December" swap$ pop$ } + { "" "Month must be between 1 and 12!" warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +% Use only at the beginning of a bibliographic citation! Can cause switching of +% elements elsewhere. +% +% void output.authors (string formatted.authors) +% { +% if (substring$(formatted.authors, #-1, #1) == opt.sep.a()) +% { +% write$(formatted.authors); +% newline$(); +% write("\newblock "); +% } else +% { +% write$(formatted.authors * opt.sep.a()); +% newline$(); +% write("\newblock "); +% } +% } +FUNCTION {output.authors} +{ + duplicate$ #-1 #1 substring$ opt.sep.a = + { write$ newline$ "\newblock " write$ } + { opt.sep.a * + write$ newline$ "\newblock " write$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%% CODE -- FORMATTING FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Names formatting (primary author(s)). +% +% string format.names (string names) +% { +% string s = names; +% int numnames = num.names$(s); +% int namesleft = numnames; +% int nameptr = 1; +% while ( (namesleft > 0) && (nameptr <= opt.aa()) ) +% { +% t = format.name$(s, nameptr, cz.name.format()); +% if (nameptr == 1) +% { +% push(t); +% } else +% { +% if (namesleft > 1) +% { +% push(pop() * opt.sep.bn() * t); +% } else +% { +% if (purify$(t) == "others") +% { +% push(tie.or.connect(pop(), opt.etal())); +% } else +% { +% push(pop() * opt.sep.ln() * t); +% } +% } +% } +% nameptr++; +% namesleft--; +% } +% if (nameledt > 0) +% { +% push(tie.or.connect(pop(), opt.etal())); +% } +% return pop(); +% } +FUNCTION {format.names} +{ 's := % s <= item that contains names + s num.names$ 'numnames := % numnames <= number of names in the item + numnames 'namesleft := % stores the number of remaining names + #1 'nameptr := % nameptr <= pointer to first name + { namesleft #0 > + nameptr opt.aa > not + and + } + { % individual name processing cycle + s nameptr cz.name.format format.name$ 't := + nameptr #1 = + { t } % first name + { namesleft #1 > % other names + { opt.sep.bn t * * } + { t purify$ + "others" = % if the "others" keyword remains after purification + { opt.etal tie.or.connect } % prints et al. + { opt.sep.ln * t * } % otherwise last initials follow after the connective "and" + if$ + } + if$ + } + if$ + nameptr #1 + 'nameptr := % move pointer to another name + namesleft #1 - 'namesleft := % decrement the number of remaining names + } + while$ + namesleft #0 > % possible addition of opt.etal + { opt.etal tie.or.connect } + 'skip$ + if$ +} + + +% Editor names formatting +% +% string format.names.ed (string names) +% { +% string s = names; +% int numnames = num.names$(s); +% int namesleft = numnames; +% int nameptr = 1; +% while ( (namesleft > 0) && (nameptr <= opt.aa()) ) +% { +% t = format.name$(s, nameptr, cz.name.format()); +% if (nameptr == 1) +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(t, opt.ed()); +% } else +% { +% push(t); +% } +% } else +% { +% if (namesleft > 1) +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(pop() * opt.sep.bn() * t, opt.ed()); +% } else +% { +% push(pop() * opt.sep.bn() * t); +% } +% } else +% { +% if (purify$(t) == "others") +% { +% push(tie.or.connect(pop(), opt.etal())); +% } else +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(pop() * opt.sep.ln() * t, opt.ed()); +% } else +% { +% push(pop() * opt.sep.ln() * t); +% } +% } +% } +% } +% nameptr++; +% namesleft--; +% } +% if (nameledt > 0) +% { +% push(tie.or.connect(pop(), opt.etal())); +% } +% if (opt.ed.all()) +% { +% return pop(); +% } else +% { +% return tie.or.connect(pop(), ", " * opt.ed()); +% } +% } +FUNCTION {format.names.ed} +{ 's := % s <= item that contains names + s num.names$ 'numnames := % numnames <= number of names in the item + numnames 'namesleft := % stores the number of remaining names + #1 'nameptr := % nameptr <= pointer to first name + { namesleft #0 > + nameptr opt.ae > not + and + } + { % individual name processing cycle + s nameptr cz.name.format format.name$ 't := + nameptr #1 = % first name + { t + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + { namesleft #1 > % other names + { opt.sep.bn t * * + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + { t purify$ + "others" = % if the "others" keyword remains after purification + { opt.etal tie.or.connect } % prints et al. + { opt.sep.ln t * * % otherwise last initials follow after the connective "and" + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + if$ + } + if$ + } + if$ + nameptr #1 + 'nameptr := % move pointer to another name + namesleft #1 - 'namesleft := % decrement the number of remaining names + } + while$ + namesleft #0 > % possible additon of opt.etal + { opt.etal tie.or.connect } + 'skip$ + if$ + opt.ed.all % possible addition of opt.ed at the end of the element + 'skip$ + { ", " * opt.ed tie.or.connect } + if$ +} + +% Author names formatting +% If the 'author' element is not empty, applies formatting using the +% 'format.names' function. +% +% string format.authors () +% { +% if (empty$(author)) +% { +% return ""; +% } else +% { +% return format.names(author); +% } +% } +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +% Supervisor name formatting +FUNCTION {format.supervisor} +{ supervisor empty$ + { "" } + { "Supervisor " supervisor format.names * } + if$ +} + +% Editor names formatting +% If the 'editor' element is not empty, applies formatting using the +% 'format.names.ed' function. +% +% string format.editors () +% { +% if (empty$(editor)) +% { +% return ""; +% } else +% { +% return format.names.ed(editor); +% } +% } +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names.ed } + if$ +} + +% Primary author(s) (author) element formatting. +% If the element 'author' is used, its formatting is executed +% by the 'format.authors' function. If the element 'author' is empty, +% its formatting is executed by the 'format.editors' function. +% +% void author.or.editor () +% { +% if (empty$(author)) +% { +% if (empty$(format.editors())) +% { +% warning$("empty author and editor in " * cite$()); +% } else +% { +% output.authors(format.editors()); +% } +% } else +% { +% output.authors(format.authors()); +% } +% } +FUNCTION {author.or.editor} +{ author empty$ + { format.editors + duplicate$ empty$ + { pop$ + "empty author and editor in " cite$ * warning$ + } + { output.authors } + if$ + } + { format.authors + output.authors + } + if$ +} + +% Title formatting (e.g. magazine, journal etc.) +% If the element 'subtitle' is used, it is connected to the contents +% element 'title' using ": ". The title is then properly capitalized. +% +% string format.title () +% { +% if (empty$(subtitle)) +% { +% return capitalize(title); +% } else +% { +% return capitalize(title) * opt.sep.t() * subtitle; +% } +% } +FUNCTION {format.title} +{ subtitle empty$ + { title capitalize } + { title capitalize + opt.sep.t * subtitle * + } + if$ +} +%%FUNCTION {format.title} +%%{ subtitle empty$ +%% { title "t" change.case$ } +%% { title "t" change.case$ +%% opt.sep.t * subtitle "t" change.case$ * +%% } +%% if$ +%%} + + +% Monographic publication title formatting. +% If the 'subtitle' element is used, it is connected to the contents +% of the 'title' element using ": ". Both parts are properly capitalized +% and emphasized. If the 'subtitle' element is empty, the capitalization +% and emphasis is only applied to it. +% +% string format.btitle () +% { +% return emphasize(format.title()); +% } +FUNCTION {format.btitle} +{ format.title emphasize +} + +% Title formatting (e.g. conference proceedings). +% If the 'booksubtitle' element is used, it is connected to the contents +% of the 'booktitle' element using ": ". The title is then properly capitalized +% and emphasized by italic type. +% +% string format.from.btitle () +% { +% if (empty$(booktitle)) +% { +% warning$(empty booktitle in " * cite$()); +% push(""); +% } else +% { +% push(capitalize(booktitle)); +% if (empty$(booksubtitle)) +% { } else +% { +% push(pop() * opt.sep.t * booksubtitle); +% } +% } +% return emphasize(pop()); +% } +FUNCTION {format.from.btitle} +{ booktitle empty$ + { "empty booktitle in " cite$ * warning$ + "" + } + { booktitle capitalize + booksubtitle empty$ + 'skip$ + { opt.sep.t * booksubtitle * } + if$ + } + if$ + emphasize +} + +% Medium type formatting (howpublished). +% +% string format.howpublished () +% { +% if (empty$(howpublished)) +% { +% return ""; +% } else +% { +% if (change.case(howpublished, "l") == "cd") +% { +% push("CD-ROM"); +% } else +% { +% if (change.case(howpublished, "l") == "online") +% { +% push("online"); +% } else +% { +% push(howpublished); +% } +% } +% return "[" * pop() * "]"; +% } +% } +FUNCTION {format.howpublished} +{ howpublished empty$ + { "" } + { howpublished "l" change.case$ "cd" = + { "CD-ROM" } + { howpublished "l" change.case$ "online" = + { "online" } + { howpublished } + if$ + } + if$ + "[" swap$ * "]" * + } + if$ +} + +% Edition formatting. //TODO num +% +% string format.edition () +% { +% if (empty$(edition)) +% { +% push(""); +% } else +% { +% if (edition = 1 or edition = 21 or edition = 31) +% { +% push(edition * "st ed."); +% } else +% { +% if (edition = 2 or edition = 22 or edition = 23) +% { +% push(edition * "nd ed."); +% } else +% { +% if (edition = 3 or edition = 23 or edition = 33) +% { +% push(edition * "rd ed."); +% } else +% { +% push(edition * "th ed."); +% } +% } +% } +% } +% if (!empty$(version)) +% { +% push(comma.connect(pop(), version)); +% } +% return pop(); +% } +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition "1" = + edition "21" = + edition "31" = + or or + { edition "st ed." * } + { edition "2" = + edition "22" = + edition "32" = + or or + { edition "nd ed." * } + { edition "3" = + edition "23" = + edition "33" = + or or + { edition "rd ed." * } + { edition "th ed." * } + if$ + } + if$ + } + if$ + } + if$ + howpublished empty$ + 'skip$ + { version empty$ + 'skip$ + { version comma.connect } + if$ + } + if$ +} + +% Month and year formatting. +% +% string format.date () +% { +% if (empty$(month)) +% { +% if (empty$(year)) +% { +% warning$("empty year in " * cite$()); +% return ""; +% } else +% { +% return year; +% } +% } else +% { +% if (empty$(year)) +% { +% warning$("just month (empty year) in " * cite$()); +% return ""; +% } else +% { +% if (is.ord(month)) +% { +% return get.month.n(str.to.int(month)) * " " * year; +% } else +% { +% return month * " " * year; +% } +% } +% } +% } +FUNCTION {format.date} +{ month empty$ + { year empty$ + { "" + "empty year in " cite$ * warning$ } + { year } + if$ + } + { year empty$ + { "" + "just month (empty year) in " cite$ * warning$ } + { month duplicate$ is.ord + { str.to.int get.month.n " " * year * } + { " " * year * } + if$ + } + if$ + } + if$ +} + +% Recognition and conversion of date from '!yyyy-mm-dd' format. +% +% string format.full.date (string date) +% { +% string t = date; +% if (text.length$(t) == 10) +% { +% if ( (is.ord(substring$(t, 1, 4))) && (substring$(t, 5, 1) == "-") && +% (is.ord(substring$(t, 6, 2))) && (substring$(t, 8, 1) == "-") && +% (is.ord(substring$(t, 9, 2))) ) +% { +% if (substring$(t, 9, 1) == "0") +% { +% if (substring$(t, 10, 1) == "0") +% { +% warning$("day must be between 1 and 31 in " * cite$()); +% } else { } +% push(substring$(t, 10, 1) * ".~"); +% } else +% { +% if ( ((chr.to.int$(substring$(t, 9, 1)) - 48) > 3) || +% ((substring$(t, 9, 1) == "3") && +% ((chr.to.int$(substring$(t, 10, 1)) - 48) > 1)) ) +% { +% pop(); +% push(t); +% warning$("day must be between 1 and 31 in " * cite$()); +% } else { } +% push(substring$(t, 9, 2) * ".~"); +% } +% if (substring$(t, 6, 1) == "0") +% { +% if (substring$(t, 7, 1) == "0") +% { +% pop(); +% push(t); +% warning$("month must be between 1 and 12 in " * cite$()); +% } else +% { +% return pop() * get.month.g(chr.to.int$(substring$(t, 7, 1)) - 48) * +% " " * substring$(t, 1, 4)); +% } +% } else +% { +% if ( (substring$(t, 6, 1) == "1") && +% ((chr.to.int$(substring$(t, 7, 1)) - 48) < 3) ) +% { +% return pop() * get.month.g(chr.to.int$(substring$(t, 7, 1)) +% - 48 + 10) * " " * substring$(t, 1, 4)); +% } else +% { +% pop(); +% push(t); +% warning$("month must be between 1 and 12 in " * cite$()); +% } +% } +% } else +% { +% return t; +% } +% } else +% { +% return t; +% } +% } +FUNCTION {format.full.date} +{ 't := + t text.length$ #11 = + { t #1 #1 substring$ "!" = + t #2 #4 substring$ is.ord + t #6 #1 substring$ "-" = + t #7 #2 substring$ is.ord + t #9 #1 substring$ "-" = + t #10 #2 substring$ is.ord + and and and and and + { t #10 #1 substring$ "0" = + { t #11 #1 substring$ "0" = + { "day must be between 1 and 31 in " cite$ * warning$ } + 'skip$ + if$ + t #11 #1 substring$ ".~" * + } + { t #10 #1 substring$ chr.to.int$ #48 - #3 > + t #10 #1 substring$ "3" = + t #11 #1 substring$ chr.to.int$ #48 - #1 > + and or + { pop$ t "day must be between 1 and 31 in " cite$ * warning$ } + 'skip$ + if$ + t #10 #2 substring$ ".~" * + } + if$ + t #7 #1 substring$ "0" = + { t #8 #1 substring$ "0" = + { pop$ t "month must be between 1 and 12 in " cite$ * warning$ } + { t #8 #1 substring$ chr.to.int$ #48 - get.month.g * + " " * t #2 #4 substring$ * + } + if$ + } + { t #7 #1 substring$ "1" = + t #8 #1 substring$ chr.to.int$ #48 - #3 < + and + { t #8 #1 substring$ chr.to.int$ #48 - #10 + get.month.g * + " " * t #2 #4 substring$ * + } + { pop$ t "month must be between 1 and 12 in " cite$ * warning$ } + if$ + } + if$ + } + { t } + if$ + } + { t } + if$ +} + +% Returns data from revision date of an electronic document. +% +% string format.revised () +% { +% if (empty$(howpublished)) +% { +% return ""; +% } else +% { +% if (empty$(revised)) +% { +% return ""; +% } else +% { +% return revised; +% } +% } +% } +FUNCTION {format.revised} +{ howpublished empty$ + { "" } + { revised empty$ + { "" } + { revised } + if$ + } + if$ +} + +% Formatting data from revision date of an electronic document. +% +FUNCTION {format.cited} +{ cited empty$ + { "" } + { cited format.full.date + "[cit. " swap$ * "]" * + } + if$ +} + +% Formatting of publisher information. +% +% string format.publish.info () +% { +% if ( (empty$(address)) && (empty$(publisher)) ) +% { +% string s = ""; +% } else +% { +% if (empty$(address)) +% { +% s = "[b.m.]: "; +% } else +% { +% s = address * ": "; +% } +% if (empty$(publisher)) +% { +% s = s * "[b.n.]"; +% } else +% { +% s = s * publisher; +% } +% } +% return s; +% } +FUNCTION {format.publish.info} +{ address empty$ + publisher empty$ + and + { "" } + { address empty$ + { "" } + { address opt.sep.p * } + if$ + publisher empty$ + { "[b.n.]" * } + { publisher * } + if$ + } + if$ +} + +% Publication page range formatting. +% +% string format.range () +% { +% if (empty$(pages)) +% { +% return ""; +% } else +% { +% return tie.or.connect(pages, "p."); +% } +% } +FUNCTION {format.range} +{ pages empty$ + { "" } + { pages "p." tie.or.connect } + if$ +} + +% Conference proceedings volume and number formatting +% +% string format.cvolume () +% { +% if (empty$(volume)) +% { +% push(""); +% } else +% { +% if (is.ord(volume)) +% { +% push("vol. " * volume); +% } else +% { +% push(volume); +% } +% } +% if (empty$(number)) +% { +% return pop(); +% } else +% { +% if (is.ord(number)) +% { +% return comma.connect(pop(), "no. " * number); +% } else +% { +% return comma.connect(pop(), number); +% } +% } +% } +FUNCTION {format.cvolume} +{ volume empty$ + { "" } + { volume is.ord + { "vol. " volume * } + { volume } + if$ + } + if$ + number empty$ + { + "" comma.connect + } + { number is.ord + { "no. " number * comma.connect } + { number comma.connect } + if$ + } + if$ +} + + +% Conference proceedings or book series and edition number formatting +% +% string format.cseries () +% { +% if (empty$(series)) +% { +% return ""; +% } else +% { +% push(capitalize(series)); +% if (empty$(editionnumber)) +% { } else +% { +% if (is.ord(editionnumber)) +% { +% return comma.connect(pop(), "no. " * editionnumber); +% } else +% { +% return comma.connect(pop(), editionnumber); +% } +% } +% } +% } +FUNCTION {format.cseries} +{ series empty$ + { "" } + { series capitalize + editionnumber empty$ + 'skip$ + { editionnumber is.ord + { "no. " editionnumber * comma.connect } + { editionnumber comma.connect } + if$ + } + if$ + } + if$ +} + + +% Availability formatting. +% +% string format.url () +% { +% if (empty$(url)) +% { +% return ""; +% } else +% { +% return tie.or.connect(opt.url(), "\small{\url{" * url * ".}}"); +% } +% } +FUNCTION {format.url} +{ url empty$ + { "" } + { opt.url "{\small\url{" url * "}}" * tie.or.connect } + if$ +} + +% Path formatting. +% +% string format.pah () +% { +% if (empty$(path)) +% { +% return ""; +% } else +% { +% return opt.path * path; +% } +% } +FUNCTION {format.path} +{ path empty$ + { "" } + { opt.path path * } + if$ +} + +% ISBN formatting. +% +% string format.isbn () +% { +% if (empty$(isbn)) +% { +% return ""; +% } else +% { +% return "ISBN " * isbn; +% } +% } +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "ISBN " isbn * } + if$ +} + +% Serial publication title formatting. +% +% string format.journal () +% { +% if (empty$(journal)) +% { +% return ""; +% } else +% { +% return emphasize(journal); +% } +% } +FUNCTION {format.journal} +{ journal empty$ + { "" } + { journalsubtitle empty$ + { journal capitalize emphasize } + { journal capitalize emphasize + opt.sep.t * journalsubtitle emphasize *} + if$ + } + if$ +} + +% Location in source document formatting. +% +% string format.pages () +% { +% if (empty$(pages)) +% { +% return ""; +% } else +% { +% return "p.~" * dashify(pages); +% } +% } +FUNCTION {format.pages} +{ pages empty$ + { "" } + { "p.~" pages dashify * } + if$ +} + +FUNCTION {format.chapter} +{ chapter empty$ + { "" } + { "chap.~" chapter * } + if$ +} + +% Formatting of date of publication, year, number of publication + revision/update dated +% + date of citation + location in source document (page range). +% +% string format.journal.issue () +% { +% string s; +% if (empty$(format.date())) +% { +% s = ""; +% } else +% { +% s = format.date(); +% } +% if (!empty$(volume)) +% { +% if (is.ord(volume)) +% { +% s = comma.connect(s, "vol.~" * volume); +% } else +% { +% s = comma.connect(s, volume); +% } +% } +% if (empty$(number)) +% { +% warning$("empty number in " * cite$); +% } else +% { +% if (is.ord(number)) +% { +% s = comma.connect(s, "no.~" * number); +% } else +% { +% s = comma.connect(s, number); +% } +% } +% if (s == "") +% { +% warning$("empty journal issue info in " * cite$); +% return ""; +% } else +% { +% return s; +% } +% } +FUNCTION {format.journal.issue} +{ format.date + duplicate$ empty$ + { pop$ "" 's := } + { 's := } + if$ + volume empty$ + 'skip$ + { volume is.ord + { "vol.~" volume * + s swap$ comma.connect 's := + } + { s volume comma.connect 's := } + if$ + } + if$ + number empty$ + { "empty number in " cite$ * warning$ } + { number is.ord + { "no.~" number * + s swap$ comma.connect 's := + } + { s number comma.connect 's := } + if$ + } + if$ + s empty$ + { "empty journal issue info in " cite$ * warning$ + "" + } + { s } + if$ +} + +% ISSN formatting. +% +% string format.issn () +% { +% if (empty$(issn)) +% { +% return ""; +% } else +% { +% return "ISBN " * issn; +% } +% } +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "ISSN " issn * } + if$ +} + +% DOI formatting. +% +% string format.doi () +% { +% if (empty$(doi)) +% { +% return ""; +% } else +% { +% return "DOI: " * doi; +% } +% } +FUNCTION {format.doi} +{ doi empty$ + { "" } + { "DOI: " doi * } + if$ +} + +% Volume number formatting -- identifying a section for @InBook. +% +% string format.vol () +% { +% if (empty$(volume)) +% { +% push(""); +% } else +% { +% if (is.ord(volume)) +% { +% push("vol.~" * volume); +% } else +% { +% push(volume); +% } +% } +% return capitalize(pop()); +% } +FUNCTION {format.vol} +{ volume empty$ + { "" } + { volume is.ord + { "vol.~" volume * } + { volume } + if$ + } + if$ + capitalize +} + +% Formats basic information (author and title) about conference proceedings for +% bibliographic citation of a paper in said proceedings. +% +% In opt.sep.a() . +% +% If is empty, nothing is printed out. +% +% void conference.basics () +% { +% if (empty$(editor)) +% { +% if (empty$(organization)) +% { +% warning$("empty editor and organization in " * cite$()); +% push(""); +% } else +% { +% if ((substring$(organization, -1, 1) == opt.sep.a()) +% { +% push(capitalize(organization)); +% } else +% { +% push(capitalize(organization * opt.sep.a())); +% } +% } +% } else +% { +% if ((substring$(format.editors(), -1, 1) == opt.sep.a()) +% { +% push(format.editors()); +% } else +% { +% push(capitalize(format.editors() * opt.sep.a())); +% } +% } +% push(tie.or.connect("In:", pop())); +% if (empty$(format.from.btitle())) +% { +% pop(); +% push(""); +% } else +% { +% push(pop() * format.from.btitle()); +% } +% return pop(); +% } +FUNCTION {conference.basics} +{ editor empty$ + { organization empty$ + { "empty editor and organization in " cite$ * warning$ + "" + } + { organization capitalize + duplicate$ #-1 #1 substring$ opt.sep.a = + 'skip$ + { opt.sep.a * } + if$ + } + if$ + } + { format.editors + duplicate$ #-1 #1 substring$ opt.sep.a = + 'skip$ + { opt.sep.a * } + if$ + } + if$ + "In:" swap$ tie.or.connect + format.from.btitle + duplicate$ empty$ + { pop$ } + { tie.or.connect } + if$ +} + + +% Formats information about a thesis (bachelor's, dissertation etc). +% The elements used to create a bibliographic citation are different from +% regular publishing information. +% +% string format.thesis.info () +% { +% string s = ""; +% if ( (empty$(address)) && (empty$(location)) && (empty$(school)) ) +% { +% warning$("empty address and school in " * cite$()); +% } else +% { +% if (empty$(address)) +% { +% } else +% { +% s = address; +% } +% if (empty$(location)) +% { +% } else +% { +% s = location; +% } +% if (empty$(year)) +% { +% warning$("empty year in " * cite$()); +% } else +% { +% if (empty$(s)) +% { +% s = year; +% } else +% { +% s = comma.connect(s, year); +% } +% } +% } +% return s; +% } +FUNCTION {format.thesis.info} +{ "" 's := + address empty$ + location empty$ + school empty$ + and + and + { "empty address and school in " cite$ * warning$ } + { address empty$ + 'skip$ + { address 's := } + if$ + location empty$ + 'skip$ + { location 's := } + if$ + year empty$ + { "empty year in " cite$ * warning$ } + { s empty$ + { year 's := } + { s year comma.connect 's := } + if$ + } + if$ + } + if$ + s +} + +% Formatuje informace o skole v akademicke (diplomova, dizertacni atp.) praci. +% +% string format.thesis.school () +% { +% string s = ""; +% if (empty$(school)) +% { +% warning$("empty school in " * cite$()); +% } else +% { +% if (empty$(s)) +% { +% s = school; +% } else +% { +% s = s * ". " * school; +% } +% } +% return s; +% } +FUNCTION {format.thesis.school} +{ "" 's := + school empty$ + { "empty school in " cite$ * warning$ } + { s empty$ + { school 's := } + { s ". " * school * 's := } + if$ + } + if$ + s +} + +% Formatting of number of pages and appendices in theses. +% +% string format.thesis.range () +% { +% if ( (empty$(format.range())) && (!empty$(inserts)) ) +% { +% return format.range(); +% } else +% { +% if (is.ord(inserts)) +% { +% return comma.connect(format.range(), inserts * " apps."); +% } else +% { +% return comma.connect(format.range(), inserts); +% } +% } +% } +FUNCTION {format.thesis.range} +{ pages empty$ + { "" 's := } + { pages opt.pages tie.or.connect 's := } + if$ + s empty$ + { "" } + { inserts empty$ + { s } + { s inserts opt.pages tie.or.connect " apps." * comma.connect } + if$ + } + if$ +} + +% Thesis type formatting. +% +% string format.thesis.type (string basic.thesis.type) +% { +% if (empty$(type)) +% { +% return basic.thesis.type; +% } else +% { +% return capitalize(type); +% } +% } +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ type capitalize } + if$ +} + + +% Formatting of type and number of technical report. +% +% string format.report.type () +% { +% if (empty$(type)) +% { +% push(""); +% } else +% { +% push(type); +% } +% if (empty$(number)) +% { +% } else +% { +% space.connect(pop(), number); +% } +% } +FUNCTION {format.report.type} +{ type empty$ + { "" } + { type } + if$ + number empty$ + 'skip$ + { number space.connect } + if$ +} + + +% Checks if all elements used for @MISC record are empty. +% +% int empty.misc.check () +% { +% if ( (empty$(author)) && (empty$(title)) && (empty$()) && +% (empty$(howpublished)) && (empty$(month)) && (empty$(year)) && +% (empty$(note)) && (!empty$(key)) ) +% { +% warning$("all misc relevant fields are empty in " * cite$()); +% return 1; +% } else +% { +% return 0; +% } +% } +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all misc relevant fields are empty in " cite$ * warning$ + #1 + } + { #0 } + if$ +} + + +% Formats place of publication and institution of a technical report. +% +% string format.report.details () +% { +% if ( empty$(institution) ) +% { +% if ( empty$(address) && empty$(organization) ) +% { +% return ""; +% } else +% { +% if (empty$(address)) +% { +% push(""); +% } else +% { +% push(opt.sep.a() * " " * address * opt.sep.p()); +% } +% if (empty$(organization)) +% { +% warning$("empty organization in " * cite$()); +% } else +% { +% return pop() * organization; +% } +% } +% } else +% { +% if ( empty$(address) && empty$(institution) ) +% { +% return ""; +% } else +% { +% if (empty$(address)) +% { +%% push("[b.m.]"); +% push(""); +% } else +% { +% push(opt.sep.a() * " " * address * opt.sep.p()); +% } +% if (empty$(institution)) +% { +% warning$("institution is empty in " * cite$()); +% } else +% { +% return pop() * institution; +% } +% } +% } +% } +FUNCTION {format.report.details} +{ institution empty$ + { + address empty$ + organization empty$ + and + { "" } + { address empty$ + { "" } + { address } + if$ + organization empty$ + { "empty organization in " cite$ * warning$ } + { address empty$ + { organization * } + { opt.sep.p * organization * } + if$ + } + if$ + } + if$ + } + { + address empty$ + institution empty$ + and + { "" } + { address empty$ + { "" } + { address } + if$ + institution empty$ + { "empty institution in " cite$ * warning$ } + { address empty$ + { institution * } + { opt.sep.p * institution * } + if$ + } + if$ + } + if$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%% CODE -- FUNCTIONS FOR RECORD PROCESSING %%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Processes @Article type records. +% Bibliographic citations of an article in a serial publication (magazine article). +% +% Required elements: author, title, journal, edition, year, volume, number, pages, issn +% Optional elements: subtitle, journalsubtitle, publisher, address, contributory, url*, month, note, doi +% Elements of el. doc.: howpublished*, revised*, cited*, version +% +% * Required element for el. doc. +FUNCTION {article} +{ output.bibitem + format.authors + duplicate$ empty$ + { pop$ + "empty author in " cite$ * warning$ + } + { output.authors } + if$ + new.block %% author (required) + format.title "title" output.check + new.block %% journal title (required) + format.journal "journal" output.check + format.howpublished output + new.block + format.edition "edition" output.check + new.block %% edition (required) + contributory capitalize output + new.block %% contributory (optional) + format.publish.info output + new.block + format.journal.issue + format.pages comma.connect + format.revised comma.connect + format.cited comma.connect output + new.block %% location in source document (required) + format.cseries output + new.block + format.doi output + new.block + format.issn output %% standard number ISSN (optional) + new.block + note output + new.block %% poznamky (volitelne) + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +}% @Article + +% Processes @Book type record. +% Bibliographic citation of a monographic publication (book). +% +% Required elements: author nebo editor, title, edition, address, publisher, year, isbn +% Optional elements: subtitle, contributory, month, pages, series, number nebo volume, note, url* +% Elements of el. doc.: howpublished*, revised*, cited*, version +% +% * Required element for el. doc. +FUNCTION {book} +{ output.bibitem + author.or.editor + new.block %% author (required) + format.btitle "book title" output.check + format.howpublished output + new.block %% title (required) and medium type (required for el. doc.) + format.edition capitalize "edition" output.check + new.block %% edition (required) + contributory capitalize output + new.block %% secondary author(s) (optional) + format.publish.info + format.date comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% publisher information (optional), date of publication (required), + %% date of revision/update and citation (required for el. doc.) + format.range output + new.block %% pages (optional) + format.cseries output + new.block %% series (optional) + format.isbn "isbn" output.check + new.block + note capitalize output + new.block %% notes (optional) + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry %% standard number ISBN (required) +}% @Book + +% @Booklet is merely a reference to @Book. +FUNCTION {booklet} { book } + +% Processes @Conference and @InProceedings, InCollection and @InBook type records. +% Bibliographic citation of conference proceedings entry (paper). +% +% Required elements: author, title, editor nebo organization, booktitle, +% edition, address, publisher, year, pages, isbn or issn. +% Optional elements: subtitle, booksubtitle, contributory, month, series, editionnumber, chapter, number nebo volume, note, doi url*. +% Elements of el. doc.: howpublished*, revised*, cited*, version. +% +% * Required element for el. doc. +FUNCTION {conference} +{ output.bibitem + author.or.editor + new.block %% author (required) + format.title "title" output.check + new.block %% title + conference.basics + format.howpublished tie.or.connect output + new.block %% editor and title of proceedings +% format.edition "edition" output.check + format.edition output + new.block %% edition + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info + format.date capitalize comma.connect + format.cvolume comma.connect + format.chapter comma.connect + format.pages comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% publisher information, date of publication, revision/update and citation + format.cseries output + new.block %% series (if numbered, include number or volume) + format.doi output + new.block + isbn empty$ + { issn empty$ + { "empty isbn and issn in " cite$ * warning$ } + { format.issn output } + if$ + } + { format.isbn output } + if$ + new.block %% standard numbers ISBN or ISSN (required) + note capitalize output + new.block %% notes + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +} % @Conference and @InProceedings, @InCollection and @InBook + +% @InProceedings is simply a reference to @Conference. +FUNCTION {inproceedings} { conference } +FUNCTION {incollection} { conference } +FUNCTION {inbook} { conference } + +% Processes @Proceedings type of records. +% +% Bibliographic citation of monographies (books, proceedings and such). +% +% Required elements: author or editor, title, edition, year, isbn or issn. +% Optional elements: subtitle, contributory, address, publisher, month, series, number or volume, note, doi, url*. +% Elements of el. doc.: howpublished*, revised*, cited*, version. +% +% * Required element for el. doc. +FUNCTION {proceedings} +{ output.bibitem + author.or.editor + new.block %% primary author(s) (required) + format.btitle + format.howpublished tie.or.connect output + new.block %% primary author and title of proceedings +% format.edition "edition" output.check + format.edition output + new.block %% edition + contributory capitalize output + new.block %% secondary author(s) (optional) + format.publish.info + format.date capitalize comma.connect + format.cvolume comma.connect + format.chapter comma.connect + format.pages comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% publishing information, date of publication, revision/update and citation + format.cseries output + new.block %% series (if numbered, then include it's number or volume) + format.doi output + new.block + isbn empty$ + { issn empty$ + { "empty isbn and issn in " cite$ * warning$ } + { format.issn output } + if$ + } + { format.isbn output } + if$ + new.block %% ISBN or ISSN (required) + note capitalize output + new.block %% notes + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +} % @Proceedings + + +% Processes @Misc, @Webpage and @Website type records. +% +% Required elements: At least one of the optional elements! +% Optional elements: author, secondarytitle, title, subtitle, howpublished, contributory, edition, month, doi, issn +% year, revised*, cited, note, url, version +% +% Note: Displays warning if the year element is not used. Should not call format.date +FUNCTION {misc} +{ empty.misc.check + 'skip$ + { output.bibitem + format.authors + duplicate$ empty$ + { pop$ + } + { output.authors } + if$ + new.block + secondarytitle output + new.block + format.btitle "title" output.check + format.howpublished output + new.block + contributory capitalize output + new.block %% secondary author(s) (optional) + format.edition output + new.block + format.publish.info + edition empty$ + address empty$ + publisher empty$ + and + and + { + output + day empty$ + { format.date capitalize output } + { day ". " * format.date * comma.connect output } + if$ + } + { + day empty$ + { format.date comma.connect output } + { day ". " * format.date * comma.connect output } + if$ + } + if$ + time output + revised empty$ + 'skip$ + { + new.block + format.revised output + } + if$ + format.cited makesmall output + new.block + format.doi output + new.block + format.issn output %% standardni cislo ISSN (volitelne) + new.block + note capitalize makesmall output + new.block + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + new.block + format.path output + fin.entry + } + if$ +}%@Misc and @Webpage and @Website +% @Webpage and @Website are merely references to @Misc. +FUNCTION {webpage} { misc } +FUNCTION {website} { misc } + + +% Processes @Manual, @TechReport and @Unpublished type records.. +% +% Required elements: author, title, edition, address, organization or institution, month, year, revised +% Optional elements: note, number, url* +% Elements of el. doc.: howpublished*, cited* +% +% Note: * Required element for el. doc. +FUNCTION {techreport} +{ output.bibitem + author.or.editor + new.block %% author (required) + format.btitle "title" output.check + format.howpublished output + new.block + format.report.type + format.edition capitalize comma.connect output + new.block + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.report.details + format.date comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% publishing institution information (optional) and date of publication (required) + format.range output + new.block %% number of pages (optional) + note capitalize output + new.block %% notes (optional) + format.url output + new.block %% availability (optional) + fin.entry +}%@Manual, @TechReport and @Unpublished +FUNCTION {manual} { techreport } +FUNCTION {unpublished} { techreport } + +% Processes @BachelorsThesis, @MastersThesis and @PhdThesis type records. +% Bibliographic citation of theses (bachelor's, master's and dissertation). +% +% Default version -- value #0 in choose.thesis. +% +% Required elements: author, title, address or location, school, year, type +% Optional elements: subtitle, pages, inserts, note, url, isbn, howpublished +FUNCTION {thesis} +{ output.bibitem + format.authors + duplicate$ empty$ + { pop$ + "empty author in " cite$ * warning$ + } + { output.authors } + if$ + new.block %% author (required) + format.btitle "title" output.check + format.howpublished output + new.block %% title (required) + format.thesis.info capitalize output + new.block %% school and year (required) + format.cited makesmall output + new.block %% cited + format.thesis.range output + new.block %% number of pages and appendices (optional) + type$ "l" change.case$ + duplicate$ "bachelorsthesis" = + { pop$ "Bachelor's thesis" } + { "mastersthesis" = + { "Master's thesis" } + { "Dissertation" } + if$ + } + if$ + format.thesis.type output + new.block %% thesis type (optional -- implicit type used) + format.thesis.school output + new.block + format.isbn output + new.block + format.supervisor output + note capitalize output + new.block + format.url output + fin.entry %% standard number ISBN (optional) +}%@BachelorsThesis, @MastersThesis a @PhdThesis + +% @BachelorsThesis type records are processed by thesis function. +FUNCTION {bachelorsthesis}{ thesis } + +% @MastersThesis type records are processed by thesis function. +FUNCTION {mastersthesis} { thesis } + +% @PhdThesis type records are processed by thesis function. +FUNCTION {phdthesis} { thesis } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%% SLIGHTLY EDITED FUNCTIONS TAKEN FROM plain.bst %%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% loads bibliographic database +READ + +% Prepares sorting value -- applies built-in function purify$ and converts +% to small letters. +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +% Declaration of another integer variable. +INTEGERS { len } + +% Returns only a part of input value. +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +% Prepares names for sorting. +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ +% s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + s nameptr "{ll{ }}{ ff{ }}{ vv{ }}" format.name$ 't := %% Zamena! + nameptr numnames = t "others" = and + { opt.etal * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% Prepares titles for sorting. +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +% Sort by author. +FUNCTION {author.sort} +{ key empty$ + { author empty$ + editor empty$ + and + { "to sort, need author or key in " cite$ * warning$ + "" + } + { author empty$ + { editor sort.format.names } + { author sort.format.names } + if$ + } + if$ + } + { key sortify } + if$ +} +% Dytrych: Původní funkce upřednostní jméno před klíčem a ten pak nelze použít k opravě českého řazení. +% FUNCTION {author.sort} +% { author empty$ +% { key empty$ +% { "to sort, need author or key in " cite$ * warning$ +% "" +% } +% { key sortify } +% if$ +% } +% { author sort.format.names } +% if$ +% } + +% Sort by editor. +FUNCTION {author.editor.sort} +{ key empty$ + { author empty$ + { editor empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ + } + { key sortify } + if$ +} +% FUNCTION {author.editor.sort} +% { author empty$ +% { editor empty$ +% { key empty$ +% { "to sort, need author, editor, or key in " cite$ * warning$ +% "" +% } +% { key sortify } +% if$ +% } +% { editor sort.format.names } +% if$ +% } +% { author sort.format.names } +% if$ +% } + +% Sort by author, editor or organization. Unused function. +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +% Sort by editor or organization. Unused function. +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +% Prepare for sorting. +% +% Function is edited version of the original function in plain.bst. +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + { author.editor.sort } + { author.sort } + if$ + " " * + year field.or.null sortify * + " " * + title field.or.null + sort.format.title * + #1 entry.max$ substring$ + 'sort.key$ := +} + +% Executes preparation before sort. +ITERATE {presort} + +% Executes sort. +SORT + +% Declaration of string variable used to identify the longest label for bib.cit. +STRINGS { longest.label } + +% Declaration of auxiliary numerical variables. +INTEGERS { number.label longest.label.width } + +% Initialization of auxiliary variables. +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +% Passes longest label. +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +% Executes initialization of auxiliary variables. +EXECUTE {initialize.longest.label} + +% Selects longest label. +ITERATE {longest.label.pass} + +% This function handles first rows, that appear in output file. +% +% This function is extended with a conditional definition of \url{} command. +FUNCTION {begin.bib} +{ "\makeatletter" write$ newline$ +%%% "\@ifundefined{url}" +%%% "{\def\url#1{{\tt $<$#1$>$}}}" * +%%% "{\DeclareUrlCommand\url{\def\UrlLeft{<} \def\UrlRight{>} \urlstyle{tt}}}" * +%%% write$ newline$ + "\makeatother" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +% Functions writes last lines to output file -- closes environment thebibliography. +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +% Inserts the beginning of thebibliography environment to the output file. +EXECUTE {begin.bib} + +% Executes initialization of necessary constants. +EXECUTE {init.state.consts} + +% Processes all cited records. +ITERATE {call.type$} + +% Closes thebibliography environment. +EXECUTE {end.bib} diff --git a/latex_verze/bib-styles/Pysny/skplain.bst b/latex_verze/bib-styles/Pysny/skplain.bst new file mode 100644 index 0000000..c673c9b --- /dev/null +++ b/latex_verze/bib-styles/Pysny/skplain.bst @@ -0,0 +1,3244 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Projekt: IBP - Bakalarska prace +% Nazev prace: BibTeX styl pro CSN ISO 690 a CSN ISO 690-2 +% Autor: Radek Pysny, xpysny00 +% Prelozil: Jaroslav Dytrych +% URI: http://www.fit.vutbr.cz/study/DP/BP.php?id=7848 +% +% Soubor: skplain.pst vznikl překladem czplain.bst, který vznikl upravou plain.bst +% Datum: Vytvoren 31. cervence 2019. +% Posledni uprava 10. kveten 2009, 16:55. +% Adam Herout upravil pro šablonu BP/DP FIT: 31.7.2019 +% Jaroslav Dytrych uvedl do souladu s normou +% pro šablonu BP/DP FIT: 10.10.2019 +% Popis: Slovenský bibliograficky styl. +% Pouziti: +% Kodovani: UTF-8 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%% VOLBY PRO NASTAVENI BIBLIOGRAFICKEHO STYLU %%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% -- Maximalni pocet zpracovanych autoru. +% Pokud obsahuje polozka author seznam o vice nez opt.aa autoru, objevi se +% v bibliograficke citaci prave opt.aa autoru. Tento vycet autoru bude zakoncen +% retezcem urcenym volbou opt.etal. +% FUNCTION {opt.aa} { #3 } +% FUNCTION {opt.aa} { #4 } +FUNCTION {opt.aa} { #5 } +% FUNCTION {opt.aa} { #99 } + +% -- Maximalni pocet zpracovanych editoru. +% Analogie k volbe opt.aa. +% FUNCTION {opt.ae} { #1 } +% FUNCTION {opt.ae} { #2 } +% FUNCTION {opt.ae} { #3 } +% FUNCTION {opt.ae} { #4 } +FUNCTION {opt.ae} { #5 } + +% -- Oddelovac mezi jednotlivymi jmeny ve vyctu. +% Pouziva se pro spojeni jmen ve vyctu. Vyjimkou jsou posledni dve jmena, ktera +% jsou spojena pomoci retezce urceneho volbou opt.sep.ln. +FUNCTION {opt.sep.bn} { ", " } +% FUNCTION {opt.sep.bn} { " -- " } + +% -- Oddelovac mezi poslednimi dvema jmeny ve vyctu. +FUNCTION {opt.sep.ln} { " a~" } +% FUNCTION {opt.sep.ln} { " -- " } + +% -- Naznak nedokonceneho vyctu jmen. +% Pokud byl presazen pocet jmen danych limitujicimi volbami opt.aa nebo opt.ae. +% Dale se pouzije tehdy, kdyz je misto posledniho jmena pouzito klicove slovo +% "others". +FUNCTION {opt.etal} { "et~al." } +% FUNCTION {opt.etal} { "aj." } +% FUNCTION {opt.etal} { "a kol." } + +% -- Oznaceni editora (redaktora). +% Jmena editoru jsou od autoru odlisena retezcem danym touto volbou. +FUNCTION {opt.ed} { "ed." } +% FUNCTION {opt.ed} { "(ed.)" } +% FUNCTION {opt.ed} { "(red.)" } +% FUNCTION {opt.ed} { "" } + +% -- Pouzivat oznaceni editora (redaktora) za kazdym jmenem. +% Urcuje, kde se pouzije oznaceni opt.ed. Bud lze pouzit oznaceni za kazdym +% jmenem nebo jen na konci prvku. +FUNCTION {opt.ed.all} { #0 } % pouze na konci prvku +% FUNCTION {opt.ed.all} { #1 } % za kazdym jmenem + +% -- Oddelovac mezi prvky primarni odpovednost a titul. +FUNCTION {opt.sep.a} { "." } +% FUNCTION {opt.sep.a} { ":" } + +% -- Oddelovac mezi mistem a vydavatelem (popr. skolou nebo instituci). +FUNCTION {opt.sep.p} { ": " } +% FUNCTION {opt.sep.p} { " : " } +% FUNCTION {opt.sep.p} { ", " } + +% -- Oddelovac mezi titulem a podtitulem. +% Je-li zadan titul i podtitul, je tento retezec pouzit jako oddelovac mezi +% temito prvky. +FUNCTION {opt.sep.t} { ": " } +% FUNCTION {opt.sep.t} { " : " } + +% -- Oznaceni rozsahu u akademickych praci. +% U akademickych praci mate pomoci teto volby moznost urcit, zda-li bude rozsah +% techto praci udavan ve stranach nebo v listech. +FUNCTION {opt.pages} { "s." } % pocet stran +% FUNCTION {opt.pages} { "l." } % pocet listu + +% -- Zacatek prvku dostupnost. +% Tento prepinac ovlivnuje text, ktery bude zobrazen pred URL adresou. +% FUNCTION {opt.url} { "" } +% FUNCTION {opt.url} { "Dostupn{\'{e}} na: " } +FUNCTION {opt.url} { "Dostupn{\'{e}} z: " } +% FUNCTION {opt.url} { "Dostupn{\'{e}} na WWW: " } + +FUNCTION {opt.path} { "Path: " } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%% DEKLARACE POLOZEK A PROMENNYCH %%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Polozky, ktere jsou stylem akceptovany a zpracovany. +ENTRY + { address + author + booktitle + booksubtitle % podtitul knihy (napr u sborniku) + cited % datum citace + contributory % podrizena odpovednost + day + doi + edition + editionnumber % cislo edice + editor + howpublished % druh nosice + chapter + institution + inserts % pocet stran priloh + isbn % standardni cislo + issn % standardni cislo + journal + journalsubtitle + key + location + month + note + number + organization + path + pages + publisher + revised % datum revize/aktualizace + secondarytitle % nazev vedlejsi webove stranky + school + series % nazev edice + subtitle % podtitul + supervisor % vedoucí (u akademické práce) + time % čas publikování + title + type + url % dostupnost + version % verze u el.dok. + volume + year + } + { } + { label } + +% Celocislene promenne. U kazde (krome konstant, ktere jsou pouze inicializovany +% ve funkci init.state.consts -- before.all, mid.sentence, after.sentence, +% after.block) jsou vyjmenovany funkce, kde dochazi ke zmenam dane promenne. +% +% output.state -- output.nonnull, output.bibitem, new.block, new.sentance +% +% ord -- is.ord +% +% ptr, i, x -- str.to.int +% +% numnames, namesleft, nameptr -- format.names, format.names.ed, +% sort.format.names +INTEGERS { output.state before.all mid.sentence after.sentence after.block + ord ptr i x numnames namesleft nameptr } + +% Retezcove promenne. U kazde jsou vyjmenovany funkce, kde je promenna menena. +% +% s -- output.nonnull, format.names, format.names.ed, format.journal.issue, +% format.thesis.info, format.thesis.range, chop.word, sort.format.names +% +% t -- output.check, dashify, str.to.int, format.names, format.names.ed, +% format.full.date, sort.format.names, sort.format.title +% +% u -- is.ord, tie.or.connnect, comma.connect +STRINGS { s t u } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%% DEFINICE ZKRATEK -- CESKE NAZVY MESICU %%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +MACRO {jan} {"janu\'{a}r"} + +MACRO {feb} {"febru\'{a}r"} + +MACRO {mar} {"marec"} + +MACRO {apr} {"apr\'{i}l"} + +MACRO {may} {"m\'{a}j"} + +MACRO {jun} {"j\'{u}n"} + +MACRO {jul} {"j\'{u}l"} + +MACRO {aug} {"august"} + +MACRO {sep} {"september"} + +MACRO {oct} {"okt\'{o}ber"} + +MACRO {nov} {"november"} + +MACRO {dec} {"december"} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%% MIRNE UPRAVENE FUNKCE PREVZATE Z plain.bst %%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Inicializace konstant nutnych pro spravnou funkci samotneho stylu. +% +% void init.state.consts () +% { +% int before.all = 0; +% int mid.sentence = 1; +% int adter.sentence = 2; +% int after.block = 3; +% } +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +% Vystup jiz formatovaneho pole, ktere je urcite neprazdne. Format vystupu je +% ovlivnen vystupnim stavem (tj. stavovou promennou output.state). Samotny +% vystup je zpozdeny (k vytisteni aktualni hodnoty dojde az pri pristim volani +% teto funkce) kvuli rozhodovani o pouzitem oddelovaci (carka nebo tecka). +% +% void output.nonnull () +% { +% s = pop(); +% if (output.state == mid.sentence) +% { +% write(pop() * " "); // zde byla carka!!! +% } else +% { +% if (output.state == after.block) +% { +% write(add.period(pop())); +% flush(); +% write("\newblock "); +% } else +% { +% if (output.state == before.all) +% { +% write(pop()); +% } else +% { +% write(add.period(pop()) * " "); +% } +% } +% } +% push(s); +% } +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { " " * write$ } %% Uprava: Nahrada ", " za " "! + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + { write$ } + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +% Pri vyskytu neprazdne hodnoty na vrcholu zasobniku provede jeji vystup pomoci +% funkce output.nonnull. V opacnem pripade ji jen odstrani ze zasobniku. +% +% /** prepis do pseudokodu bez vyuziti zasobniku **/ +% void output (string string.to.write) +% { +% if (empty$(string.to.write)) +% { } else +% { +% output.nonnull(string.to.write); +% } +% } +FUNCTION {output} +{ duplicate$ empty$ + { pop$ } + { output.nonnull } + if$ +} + +% Pri vyskytu neprazdne hodnoty na vrcholu zasobniku provede jeji vystup pomoci +% funkce output.nonnull. V opacnem pripade ji jen odstrani ze zasobniku +% a vypise na chybovy vystup varovani o chybejici hodnote. Pouziva se pro +% informovani uzivatele o chybejici hodnote, ktera je dle ceske normy povinna. +% +% /** prepis do pseudokodu bez vyuziti zasobniku **/ +% void output.check (string type.of.field string string.to.write) +% { +% t = type.of.field; +% if (empty$(string.to.write)) +% { +% warning$("empty" * t * " in " * cite$()) +% } else +% { +% output.nonnull(string.to.write); +% } +% } +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + { output.nonnull } + if$ +} + +% Vypise zacatek bibliograficke citace. +% +% void output.bibitem () +% { +% newline$(); +% write$("\bibitem{"); +% write$(cite$); +% write$("}"); +% newline$(); +% push(""); +% int output.state = before.all; +% } +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +% Zakonceni polozky (teckou). +% +% void fin.entry () +% { +% write(add.period$(pop())); +% newline$(); +% } +FUNCTION {fin.entry} +{ add.period$ write$ + newline$ +} + +% Zmena stavu: {mid.sentence; after.sentence} => after.block. +% +% void new.block () +% { +% if (output.state == before.all) +% { } else +% { +% output.state = after.block; +% } +% } +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +% Zmena stavu: mid.sentence => after.sentence. +% +% void new.sentence () +% { +% if (output.state == after.block) +% { } else +% { +% if (output.state == before.all) +% { } else +% { +% output.state = after.sentence; +% } +% } +% } +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +% Negace vyhodnocene podminky. +% +% int not (int bool) +% { +% if (bool) +% { +% return 0; // false +% } else +% { +% return 1; // true +% } +% } +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +% Logicky soucin dvou podminek. +% +% int and (int bool1, int bool2) +% { +% if (bool2) +% { +% return bool1; +% } else +% { +% return 0; +% } +% } +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +% Logicky soucet dvou podminek. +% +% int or (int bool1, int bool2) +% { +% if (bool2) +% { +% return 1; +% } else +% { +% return bool1; +% } +% } +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +% Zacatek noveho bloku pri neprazne hodnote na vrcholu zasobniku. +% +% void new.block.checka (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { } else +% { +% new.block(); +% } +% } +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + { new.block } + if$ +} + +% Zacatek noveho bloku pri 2 neprazdnych hodnotach z vrcholu zasobniku. +% +% void new.block.checkb (int.or.string anything.under.the.top, +% int.or.string anything.from.the.top) +% { +% if ( (empty$(anything.from.the.top)) && (empty$(anything.under.the.top)) ) +% { } else +% { +% new.block(); +% } +% } +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + { new.block } + if$ +} + +% Zacatek nove vety pri neprazne hodnote na vrcholu zasobniku. +% +% void new.sentence.checka (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { } else +% { +% new.sentence(); +% } +% } +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + { new.sentence } + if$ +} + +% Zacatek nove vety pri 2 neprazdnych hodnotach z vrcholu zasobniku. +% +% void new.sentence.checkb (int.or.string anything.under.the.top, +% int.or.string anything.from.the.top) +% { +% if ( (empty$(anything.from.the.top)) && (empty$(anything.under.the.top)) ) +% { } else +% { +% new.sentence(); +% } +% } +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ and + 'skip$ + { new.sentence } + if$ +} + +% Vrati hodnoty polozky (ulozene na vrcholu zasobniku) nebo prazdny retezec. +% +% int.or.string field.or.null (int.or.string anything.from.the.top) +% { +% if (empty$(anything.from.the.top)) +% { +% return ""; +% } else +% { +% return anything.from.the.top; +% } +% } +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +% Vypis chybove hlasky pro pripady, kdyz jsou vyplnene dve polozky, jejichz +% pouziti se vzajemne vylucuje. Vola se s dvema argumenty -- prvni z nich je +% retezec s nazvy obou poli (kvuli vypisu chybove hlasky) a druhy je obsah +% jednoho z poli (kontrola druheho musi probehnout pred volanim teto funkce). +% +% void either.or.check (string field.names, int.or.string one.of.fields) +% { +% if (empty$(one.of.fields)) +% { } else +% { +% warning$(field.names * "can't use both " * " fields in " * cite$()); +% } +% } +FUNCTION {either.or.check} +{ empty$ + { pop$ } + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +% Provede zvyrazneni hodnoty na vrcholu zasobniku (uzavre ji mezi "{\em" +% a "}"). Nepouziva kurzivni korekci. +% +% string emphasize (string x) +% { +% if (empty$(x)) +% { +% return ""; +% } else +% { +% return "{\em " * x * "}"; +% } +% } +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +FUNCTION {makebold} +{ duplicate$ empty$ + { pop$ "" } + { "{\bf " swap$ * "}" * } + if$ +} + +FUNCTION {makesmall} +{ duplicate$ empty$ + { pop$ "" } + { "{\small " swap$ * "}" * } + if$ +} + +% Nahradi kazdy vyskyt znaku '-' za dvojznak "--". +% +% string dashify (string to.dashify) +% { +% t = to.dashify; +% push(""); +% while (!empty$(t)) +% { +% if (substring$(t, 1, 1) == "-") +% { +% if (substring$(t, 1, 2) == "--") +% { +% while (substring$(t, 1, 1) == "-") +% { +% push(pop() * "-"); +% t = substring$(t, 2, global.max$()); +% } +% } else +% { +% push(pop() * "--"); +% t = substring$(t, 2, global.max$()); +% } +% } else +% { +% push(pop() * substring$(t, 1, 1)); +% t = substring$(t, 2, global.max$()); +% } +% } +% } +FUNCTION {dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + { "--" * + t #2 global.max$ substring$ 't := + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%% VLASTNI KOD -- POMOCNE FUNKCE %%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Prevod retezce na cislo. Ocekava se, ze se zavola az po testu pomoci funkce +% 'is.ord'. Na vstupu ocekava neprazdny retezec tvoreny jen cislicemi. +% +% int str.to.int (string to.convert) +% { +% t = to.convert; +% int x = 0; +% int ptr = 0; +% while (ptr text.length$(t) < ) +% { +% push(x); +% i = 9; +% while (i > 0) +% { +% push(pop() + x); +% i--; +% } +% ptr++; +% x = chr.to.int$(substring$(t, ptr, 1)) - 48 + pop(); +% } +% return x; +% } +FUNCTION {str.to.int} +{ 't := + #0 'x := + #0 'ptr := + { ptr t text.length$ < } + { x + #9 'i := + { i #0 > } + { x + + i #1 - 'i := + } + while$ + ptr #1 + 'ptr := + t ptr #1 substring$ chr.to.int$ #48 - + 'x := + } + while$ + x +} + +% Prvni pismeno retezce na vrcholu zasobniku prevede na verzalku. +% +% string capitalize (string to.capitalize) +% { +% if (empty$(to.capitalize)) +% { } else +% { +% return change.case$(substring$(to.capitalize, 1, 1), "u") * +% substring$(to.capitalize, 2, global.max$()); +% } +% } +FUNCTION {capitalize} +{ duplicate$ empty$ + 'skip$ + { duplicate$ #1 #1 substring$ "u" change.case$ + swap$ #2 global.max$ substring$ * + } + if$ +} + +% Spojuje dva retezce z vrcholu zasobniku. Tyto dva retezce jsou oddeleny +% mezerou ci nezlomitelnou mezerou. Retezec na vrcholu zasobniku je pripojen +% za druhy retezec. +% +% Pokud je jeden z retezcu prazdny, je vracen jen druhy z nich bez jakychkoliv +% uprav. Jsou-li prazdne oba retezce, je vracen taktez prazdny retezec. +% +% string tie.or.connect (string under.the.top, string from.the.top) +% { +% string u = from.the.top; +% if (empty$(under.the.top)) +% { +% return u; +% } else +% { +% if (empty$(u)) +% { } else +% { +% if (text.length$(u) < 3) +% { +% return under.the.top * "~" * u; +% } else +% { +% return under.the.top * " " * u; +% } +% } +% } +% } +FUNCTION {tie.or.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { u text.length$ #3 < + { "~" * u * } + { " " * u * } + if$ + } + if$ + } + if$ +} + +% Spojuje dva retezce z vrcholu zasobniku. Tyto dva retezce jsou oddeleny +% carkou. Retezec na vrcholu zasobniku je pripojen za druhy retezec. +% +% Pokud je jeden z retezcu prazdny, je vracen jen druhy z nich bez jakychkoliv +% uprav. Jsou-li prazdne oba retezce, je vracen taktez prazdny retezec. +% +% string comma.connect (string under.the.top, string from.the.top) +% { +% string u = from.the.top; +% if (empty$(under.the.top)) +% { +% return u; +% } else +% { +% if (empty$(u)) +% { } else +% { +% return under.the.top * ", " * u; +% } +% } +% } +FUNCTION {comma.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { ", " * u * } + if$ + } + if$ +} + +% Spojuje dva retezce z vrcholu zasobniku. Tyto dva retezce jsou oddeleny mezerou. +FUNCTION {space.connect} +{ 'u := + duplicate$ empty$ + { pop$ u } + { u empty$ + 'skip$ + { " " * u * } + if$ + } + if$ +} + + +% Otestuje, zda je hodnota na vrcholu zasobniku tvorena pouze cislicemi. +% +% int is.ord (string x) +% { +% string u = x; +% int ord = 1; +% while ( (ord) && (!empty(u)) ) +% { +% if ( (chr.to.int$(substring$(u, 1, 1)) < 48) || +% (chr.to.int$(substring$(u, 1, 1)) > 57) ) +% { +% ord = 0; +% } else +% { +% u = substring(s, 2, global.max$()); +% } +% } +% return ord; +% } +FUNCTION {is.ord} +{ 'u := + #1 'ord := + { ord + u empty$ not + and + } + { u #1 #1 substring$ + duplicate$ chr.to.int$ #48 < % < '0' + swap$ chr.to.int$ #57 > % > '9' + or + { #0 'ord := } + { u #2 global.max$ substring$ 'u := } + if$ + } + while$ + ord +} + +% Formatovaci retezec pro vkladani jmen dle ceske konvence pomoci funkce +% 'format.name$'. +% +% string sk.name.format () +% { +% return "{{\scshape\bgroup}ll{ }{\egroup}}{, f.}{ vv}"; +% } +FUNCTION {sk.name.format} +{ "{{\sc\bgroup}ll{ }{\egroup}}{, f.}{ vv}" } + +% Vraci nominativ mesice. +% +% /** prepis pseudokodu do funkce pracujici s polem **/ +% string get.month.n (int n) +% { +% int month = { 1 => "január", "február", "marec", "apríl", "máj", "jún", +% "júl", "august", "september", "október", "november", "december" }; +% if ( (n > 0) && (n < 13) ) +% { +% return month[n]; +% } else +% { +% warning$("Month must be between 1 and 12!"); +% return ""; +% } +% } +FUNCTION {get.month.n} +{ duplicate$ #1 = + { "január" swap$ pop$ } + { duplicate$ #2 = + { "február" swap$ pop$ } + { duplicate$ #3 = + { "marec" swap$ pop$ } + { duplicate$ #4 = + { "apríl" swap$ pop$ } + { duplicate$ #5 = + { "máj" swap$ pop$ } + { duplicate$ #6 = + { "jún" swap$ pop$ } + { duplicate$ #7 = + { "júl" swap$ pop$ } + { duplicate$ #8 = + { "august" swap$ pop$ } + { duplicate$ #9 = + { "september" swap$ pop$ } + { duplicate$ #10 = + { "október" swap$ pop$ } + { duplicate$ #11 = + { "november" swap$ pop$ } + { duplicate$ #12 = + { "december" swap$ pop$ } + { "" "Month must be between 1 and 12!" warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +% Vraci nominativ mesice s velkym prvnim pismenem. +FUNCTION {get.u.month.n} +{ duplicate$ #1 = + { "Január" swap$ pop$ } + { duplicate$ #2 = + { "Február" swap$ pop$ } + { duplicate$ #3 = + { "Marec" swap$ pop$ } + { duplicate$ #4 = + { "Apríl" swap$ pop$ } + { duplicate$ #5 = + { "Máj" swap$ pop$ } + { duplicate$ #6 = + { "Jún" swap$ pop$ } + { duplicate$ #7 = + { "Júl" swap$ pop$ } + { duplicate$ #8 = + { "August" swap$ pop$ } + { duplicate$ #9 = + { "September" swap$ pop$ } + { duplicate$ #10 = + { "Október" swap$ pop$ } + { duplicate$ #11 = + { "November" swap$ pop$ } + { duplicate$ #12 = + { "December" swap$ pop$ } + { "" "Month must be between 1 and 12!" warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +% Vraci genitiv mesice. +% +% /** prepis pseudokodu do funkce pracujici s polem **/ +% string get.month.g (int n) +% { +% int month = { 1 => "januára", "februára", "marca", "apríla", "mája", "júna", +% "júla", "augusta", "septembra", "októbra", "novembra", "decembra"}; +% if ( (n > 0) && (n < 13) ) +% { +% return month[n]; +% } else +% { +% warning$("Month must be between 1 and 12!"); +% return ""; +% } +% } +FUNCTION {get.month.g} +{ duplicate$ #1 = + { "januára" swap$ pop$ } + { duplicate$ #2 = + { "februára" swap$ pop$ } + { duplicate$ #3 = + { "marca" swap$ pop$ } + { duplicate$ #4 = + { "apríla" swap$ pop$ } + { duplicate$ #5 = + { "mája" swap$ pop$ } + { duplicate$ #6 = + { "júna" swap$ pop$ } + { duplicate$ #7 = + { "júla" swap$ pop$ } + { duplicate$ #8 = + { "augusta" swap$ pop$ } + { duplicate$ #9 = + { "septembra" swap$ pop$ } + { duplicate$ #10 = + { "októbra" swap$ pop$ } + { duplicate$ #11 = + { "novembra" swap$ pop$ } + { duplicate$ #12 = + { "decembra" swap$ pop$ } + { "" "Month must be between 1 and 12!" warning$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ +} + +% Provede vystup. Je urcen jen pro vypsani primarni odpovednosti. Umoznuje +% pouziti volby 'opt.sep.a', ktera dovoluje pouzit jiny oddelovac mezi poli +% primarni odpovednosti a nazvu titulu. Dle zazitych zvyklosti v CR je jim ':'. +% +% Pouzivat pouze na zacatku bibliograficke citace! Jinde muze zpusobit prohozeni +% prvku. +% +% void output.authors (string formatted.authors) +% { +% if (substring$(formatted.authors, #-1, #1) == opt.sep.a()) +% { +% write$(formatted.authors); +% newline$(); +% write("\newblock "); +% } else +% { +% write$(formatted.authors * opt.sep.a()); +% newline$(); +% write("\newblock "); +% } +% } +FUNCTION {output.authors} +{ + duplicate$ #-1 #1 substring$ opt.sep.a = + { write$ newline$ "\newblock " write$ } + { opt.sep.a * + write$ newline$ "\newblock " write$ + } + if$ +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%% VLASTNI KOD -- FORMATOVACI FUNKCE %%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Formatovani jmen (pro primarni odpovednost). +% +% string format.names (string names) +% { +% string s = names; +% int numnames = num.names$(s); +% int namesleft = numnames; +% int nameptr = 1; +% while ( (namesleft > 0) && (nameptr <= opt.aa()) ) +% { +% t = format.name$(s, nameptr, sk.name.format()); +% if (nameptr == 1) +% { +% push(t); +% } else +% { +% if (namesleft > 1) +% { +% push(pop() * opt.sep.bn() * t); +% } else +% { +% if (purify$(t) == "others") +% { +% push(tie.or.connect(pop(), opt.etal())); +% } else +% { +% push(pop() * opt.sep.ln() * t); +% } +% } +% } +% nameptr++; +% namesleft--; +% } +% if (nameledt > 0) +% { +% push(tie.or.connect(pop(), opt.etal())); +% } +% return pop(); +% } +FUNCTION {format.names} +{ 's := % s <= polozka se jmeny + s num.names$ 'numnames := % numnames <= pocet jmen v polozce + numnames 'namesleft := % poznamena si pocet zbyvajicich jmen + #1 'nameptr := % nameptr <= ukazatel na prvni ze jmen + { namesleft #0 > + nameptr opt.aa > not + and + } + { % cyklus zpracovani jednotlivych jmen + s nameptr sk.name.format format.name$ 't := + nameptr #1 = + { t } % prvni jmeno + { namesleft #1 > % dalsi jmena + { opt.sep.bn t * * } + { t purify$ + "others" = % kdyz po ocisteni zbyde klic. sl. "others" + { opt.etal tie.or.connect } % vytiskne et al. + { opt.sep.ln * t * } % jinak posledni inicialy po spojce "a" + if$ + } + if$ + } + if$ + nameptr #1 + 'nameptr := % posun ukazatele na dalsi jmeno + namesleft #1 - 'namesleft := % snizeni poctu zbyvajicich jmen + } + while$ + namesleft #0 > % mozne pridani opt.etal + { opt.etal tie.or.connect } + 'skip$ + if$ +} + +% Formatovani jmen editoru. +% +% string format.names.ed (string names) +% { +% string s = names; +% int numnames = num.names$(s); +% int namesleft = numnames; +% int nameptr = 1; +% while ( (namesleft > 0) && (nameptr <= opt.aa()) ) +% { +% t = format.name$(s, nameptr, sk.name.format()); +% if (nameptr == 1) +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(t, opt.ed()); +% } else +% { +% push(t); +% } +% } else +% { +% if (namesleft > 1) +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(pop() * opt.sep.bn() * t, opt.ed()); +% } else +% { +% push(pop() * opt.sep.bn() * t); +% } +% } else +% { +% if (purify$(t) == "others") +% { +% push(tie.or.connect(pop(), opt.etal())); +% } else +% { +% if (opt.ed.all()) +% { +% push(tie.or.connect(pop() * opt.sep.ln() * t, opt.ed()); +% } else +% { +% push(pop() * opt.sep.ln() * t); +% } +% } +% } +% } +% nameptr++; +% namesleft--; +% } +% if (nameledt > 0) +% { +% push(tie.or.connect(pop(), opt.etal())); +% } +% if (opt.ed.all()) +% { +% return pop(); +% } else +% { +% return tie.or.connect(pop(), ", " * opt.ed()); +% } +% } +FUNCTION {format.names.ed} +{ 's := % s <= polozka se jmeny + s num.names$ 'numnames := % numnames <= pocet jmen v polozce + numnames 'namesleft := % poznamena si pocet zbyvajicich jmen + #1 'nameptr := % nameptr <= ukazatel na prvni ze jmen + { namesleft #0 > + nameptr opt.ae > not + and + } + { % cyklus zpracovani jednotlivych jmen + s nameptr sk.name.format format.name$ 't := + nameptr #1 = % prvni jmeno + { t + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + { namesleft #1 > % dalsi jmena + { opt.sep.bn t * * + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + { t purify$ + "others" = % kdyz po ocisteni zbyde klic. sl. "others" + { opt.etal tie.or.connect } % vytiskne et al. + { opt.sep.ln t * * % jinak posledni inicialy po spojce "a" + opt.ed.all + { opt.ed tie.or.connect } + 'skip$ + if$ + } + if$ + } + if$ + } + if$ + nameptr #1 + 'nameptr := % posun ukazatele na dalsi jmeno + namesleft #1 - 'namesleft := % snizeni poctu zbyvajicich jmen + } + while$ + namesleft #0 > % mozne pripojeni opt.etal + { opt.etal tie.or.connect } + 'skip$ + if$ + opt.ed.all % mozne pridani opt.ed na konec prvku + 'skip$ + { ", " * opt.ed tie.or.connect } + if$ +} + +% Formatovani jmen autoru. +% Pokud je neprazdna polozka 'author', provede formatovani jmen pomoci funkce +% 'format.names'. +% +% string format.authors () +% { +% if (empty$(author)) +% { +% return ""; +% } else +% { +% return format.names(author); +% } +% } +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +% Formatovani jmena vedouciho. +FUNCTION {format.supervisor} +{ supervisor empty$ + { "" } + { "Vedúci práce " supervisor format.names * } + if$ +} + + +% Formatovani jmen editoru. +% Pokud je neprazdna polozka 'editor', provede formatovani jmen pomoci funkce +% 'format.names.ed'. +% +% string format.editors () +% { +% if (empty$(editor)) +% { +% return ""; +% } else +% { +% return format.names.ed(editor); +% } +% } +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names.ed } + if$ +} + +% Formatovani polozky primarni odpovednosti. +% Je-li zadana polozka 'author', provede jeji formatovani pomoci funkce +% 'format.authors'. Pokud je polozka 'author' prazdna, provede formatovani +% pomoci funkce 'format.editors'. +% +% void author.or.editor () +% { +% if (empty$(author)) +% { +% if (empty$(format.editors())) +% { +% warning$("empty author and editor in " * cite$()); +% } else +% { +% output.authors(format.editors()); +% } +% } else +% { +% output.authors(format.authors()); +% } +% } +FUNCTION {author.or.editor} +{ author empty$ + { format.editors + duplicate$ empty$ + { pop$ + "empty author and editor in " cite$ * warning$ + } + { output.authors } + if$ + } + { format.authors + output.authors + } + if$ +} + +% Formatovani nazvu (napr. casopisu, zurnalu atp.). +% Pri zadane polozce 'subtitle' provede ji pripoji k obsahu polozky 'title' +% pomoci ": ". V nazvu je pak provedena zmena velikosti pismen. +% +% string format.title () +% { +% if (empty$(subtitle)) +% { +% return capitalize(title); +% } else +% { +% return capitalize(title) * opt.sep.t() * subtitle; +% } +% } +FUNCTION {format.title} +{ subtitle empty$ + { title capitalize } + { title capitalize + opt.sep.t * subtitle * + } + if$ +} +%%FUNCTION {format.title} +%%{ subtitle empty$ +%% { title "t" change.case$ } +%% { title "t" change.case$ +%% opt.sep.t * subtitle "t" change.case$ * +%% } +%% if$ +%%} + + +% Formatovani nazvu monograficke publikace. +% Pri zadane polozce 'subtitle' provede ji pripoji k obsahu polozky 'title' +% pomoci ": ". Pricemz na obe casti se provede zmena velikosti pismen +% a zvyrazneni. Pokud je polozka 'subtitle' prazdna, je provedena jen zmena +% velikosti pismen a jeji zvyrazneni. +% +% string format.btitle () +% { +% return emphasize(format.title()); +% } +FUNCTION {format.btitle} +{ format.title emphasize +} + +% Formatovani nazvu (napr. sbornik). +% Pri zadane polozce 'booksubtitle' provede ji pripoji k obsahu polozky +% 'booktitle' pomoci ": ". V nazvu je pak provedena zmena velikosti pismen +% a zvyrazneni kurzivou. +% +% string format.from.btitle () +% { +% if (empty$(booktitle)) +% { +% warning$(empty booktitle in " * cite$()); +% push(""); +% } else +% { +% push(capitalize(booktitle)); +% if (empty$(booksubtitle)) +% { } else +% { +% push(pop() * opt.sep.t * booksubtitle); +% } +% } +% return emphasize(pop()); +% } +FUNCTION {format.from.btitle} +{ booktitle empty$ + { "empty booktitle in " cite$ * warning$ + "" + } + { booktitle capitalize + booksubtitle empty$ + 'skip$ + { opt.sep.t * booksubtitle * } + if$ + } + if$ + emphasize +} + +% Formatovani druhu nosice. +% +% string format.howpublished () +% { +% if (empty$(howpublished)) +% { +% return ""; +% } else +% { +% if (change.case(howpublished, "l") == "cd") +% { +% push("CD-ROM"); +% } else +% { +% if (change.case(howpublished, "l") == "online") +% { +% push("online"); +% } else +% { +% push(howpublished); +% } +% } +% return "[" * pop() * "]"; +% } +% } +FUNCTION {format.howpublished} +{ howpublished empty$ + { "" } + { howpublished "l" change.case$ "cd" = + { "CD-ROM" } + { howpublished "l" change.case$ "online" = + { "online" } + { howpublished } + if$ + } + if$ + "[" swap$ * "]" * + } + if$ +} + +% Formatovani vydani +% +% string format.edition () +% { +% if (empty$(edition)) +% { +% push(""); +% } else +% { +% if (is.ord(edition)) +% { +% push(edition * ". vyd."); +% } else +% { +% push(edition); +% } +% } +% if (!empty$(version)) +% { +% push(comma.connect(pop(), version)); +% } +% return pop(); +% } +FUNCTION {format.edition} +{ edition empty$ + { "" } + { edition is.ord + { edition ". vyd." * } + { edition } + if$ + } + if$ + howpublished empty$ + 'skip$ + { version empty$ + 'skip$ + { version comma.connect } + if$ + } + if$ +} + +% Formatovani mesice a roku +% +% string format.date () +% { +% if (empty$(month)) +% { +% if (empty$(year)) +% { +% warning$("empty year in " * cite$()); +% return ""; +% } else +% { +% return year; +% } +% } else +% { +% if (empty$(year)) +% { +% warning$("just month (empty year) in " * cite$()); +% return ""; +% } else +% { +% if (is.ord(month)) +% { +% return get.month.n(str.to.int(month)) * " " * year; +% } else +% { +% return month * " " * year; +% } +% } +% } +% } +FUNCTION {format.date} +{ month empty$ + { year empty$ + { "" + "empty year in " cite$ * warning$ } + { year } + if$ + } + { year empty$ + { "" + "just month (empty year) in " cite$ * warning$ } + { month duplicate$ is.ord + { str.to.int get.month.n " " * year * } + { " " * year * } + if$ + } + if$ + } + if$ +} + +% Formatovani mesice a roku s genitivem měsíce +FUNCTION {format.date.g} +{ month empty$ + { year empty$ + { "" + "empty year in " cite$ * warning$ } + { year } + if$ + } + { year empty$ + { "" + "just month (empty year) in " cite$ * warning$ } + { month duplicate$ is.ord + { str.to.int get.month.g " " * year * } + { " " * year * } + if$ + } + if$ + } + if$ +} + +% Formatovani mesice a roku, kde mesic zacina velkym pismenem +FUNCTION {format.u.date} +{ month empty$ + { year empty$ + { "" + "empty year in " cite$ * warning$ } + { year } + if$ + } + { year empty$ + { "" + "just month (empty year) in " cite$ * warning$ + } + { month duplicate$ is.ord + { str.to.int get.u.month.n " " * year * } + { " " * year * } + if$ + } + if$ + } + if$ +} + +% Rozpoznani a prevod data z formatu '!yyyy-mm-dd'. +% +% string format.full.date (string date) +% { +% string t = date; +% if (text.length$(t) == 10) +% { +% if ( (is.ord(substring$(t, 1, 4))) && (substring$(t, 5, 1) == "-") && +% (is.ord(substring$(t, 6, 2))) && (substring$(t, 8, 1) == "-") && +% (is.ord(substring$(t, 9, 2))) ) +% { +% if (substring$(t, 9, 1) == "0") +% { +% if (substring$(t, 10, 1) == "0") +% { +% warning$("day must be between 1 and 31 in " * cite$()); +% } else { } +% push(substring$(t, 10, 1) * ".~"); +% } else +% { +% if ( ((chr.to.int$(substring$(t, 9, 1)) - 48) > 3) || +% ((substring$(t, 9, 1) == "3") && +% ((chr.to.int$(substring$(t, 10, 1)) - 48) > 1)) ) +% { +% pop(); +% push(t); +% warning$("day must be between 1 and 31 in " * cite$()); +% } else { } +% push(substring$(t, 9, 2) * ".~"); +% } +% if (substring$(t, 6, 1) == "0") +% { +% if (substring$(t, 7, 1) == "0") +% { +% pop(); +% push(t); +% warning$("month must be between 1 and 12 in " * cite$()); +% } else +% { +% return pop() * get.month.g(chr.to.int$(substring$(t, 7, 1)) - 48) * +% " " * substring$(t, 1, 4)); +% } +% } else +% { +% if ( (substring$(t, 6, 1) == "1") && +% ((chr.to.int$(substring$(t, 7, 1)) - 48) < 3) ) +% { +% return pop() * get.month.g(chr.to.int$(substring$(t, 7, 1)) +% - 48 + 10) * " " * substring$(t, 1, 4)); +% } else +% { +% pop(); +% push(t); +% warning$("month must be between 1 and 12 in " * cite$()); +% } +% } +% } else +% { +% return t; +% } +% } else +% { +% return t; +% } +% } +FUNCTION {format.full.date} +{ 't := + t text.length$ #11 = + { t #1 #1 substring$ "!" = + t #2 #4 substring$ is.ord + t #6 #1 substring$ "-" = + t #7 #2 substring$ is.ord + t #9 #1 substring$ "-" = + t #10 #2 substring$ is.ord + and and and and and + { t #10 #1 substring$ "0" = + { t #11 #1 substring$ "0" = + { "day must be between 1 and 31 in " cite$ * warning$ } + 'skip$ + if$ + t #11 #1 substring$ ".~" * + } + { t #10 #1 substring$ chr.to.int$ #48 - #3 > + t #10 #1 substring$ "3" = + t #11 #1 substring$ chr.to.int$ #48 - #1 > + and or + { pop$ t "day must be between 1 and 31 in " cite$ * warning$ } + 'skip$ + if$ + t #10 #2 substring$ ".~" * + } + if$ + t #7 #1 substring$ "0" = + { t #8 #1 substring$ "0" = + { pop$ t "month must be between 1 and 12 in " cite$ * warning$ } + { t #8 #1 substring$ chr.to.int$ #48 - get.month.g * + " " * t #2 #4 substring$ * + } + if$ + } + { t #7 #1 substring$ "1" = + t #8 #1 substring$ chr.to.int$ #48 - #3 < + and + { t #8 #1 substring$ chr.to.int$ #48 - #10 + get.month.g * + " " * t #2 #4 substring$ * + } + { pop$ t "month must be between 1 and 12 in " cite$ * warning$ } + if$ + } + if$ + } + { t } + if$ + } + { t } + if$ +} + +% Predani udaju z data revize elektronickeho dokumentu. +% +% string format.revised () +% { +% if (empty$(howpublished)) +% { +% return ""; +% } else +% { +% if (empty$(revised)) +% { +% return ""; +% } else +% { +% return revised; +% } +% } +% } +FUNCTION {format.revised} +{ howpublished empty$ + { "" } + { revised empty$ + { "" } + { revised } + if$ + } + if$ +} + +% Formatovani udaju z data citace elektronickeho dokumentu. +% +FUNCTION {format.cited} +{ cited empty$ + { "" } + { cited format.full.date + "[cit. " swap$ * "]" * +% "[vid. " swap$ * "]" * + } + if$ +} + +% Formatovani nakladatelskych udaju. +% +% string format.publish.info () +% { +% if ( (empty$(address)) && (empty$(publisher)) ) +% { +% string s = ""; +% } else +% { +% if (empty$(address)) +% { +% s = "[b.m.]: "; +% } else +% { +% s = address * ": "; +% } +% if (empty$(publisher)) +% { +% s = s * "[b.n.]"; +% } else +% { +% s = s * publisher; +% } +% } +% return s; +% } +FUNCTION {format.publish.info} +{ address empty$ + publisher empty$ + and + { "" } + { address empty$ + { "" } + { address opt.sep.p * } + if$ + publisher empty$ + { "[b.n.]" * } + { publisher * } + if$ + } + if$ +} + + +% Formatuje rozsah stran publikace. +% +% string format.range () +% { +% if (empty$(pages)) +% { +% return ""; +% } else +% { +% return tie.or.connect(pages, "s."); +% } +% } +FUNCTION {format.range} +{ pages empty$ + { "" } + { pages "s." tie.or.connect } + if$ +} + +% Formatovani edice a svazku sborníku konference. +% +% string format.cvolume () +% { +% if (empty$(volume)) +% { +% push(""); +% } else +% { +% if (is.ord(volume)) +% { +% push("zv. " * volume); +% } else +% { +% push(volume); +% } +% } +% if (empty$(number)) +% { +% return pop(); +% } else +% { +% if (is.ord(number)) +% { +% return comma.connect(pop(), "č. " * number); +% } else +% { +% return comma.connect(pop(), number); +% } +% } +% } +FUNCTION {format.cvolume} +{ volume empty$ + { "" } + { volume is.ord + { "sv. " volume * } + { volume } + if$ + } + if$ + number empty$ + { + "" comma.connect + } + { number is.ord + { "č. " number * comma.connect } + { number comma.connect } + if$ + } + if$ +} + + +% Formatovani edice a cisla edice knihy ci sborníku konference. +% +% string format.cseries () +% { +% if (empty$(series)) +% { +% return ""; +% } else +% { +% push(capitalize(series)); +% if (empty$(editionnumber)) +% { } else +% { +% if (is.ord(editionnumber)) +% { +% return comma.connect(pop(), "č. " * editionnumber); +% } else +% { +% return comma.connect(pop(), editionnumber); +% } +% } +% } +% } +FUNCTION {format.cseries} +{ series empty$ + { "" } + { series capitalize + editionnumber empty$ + 'skip$ + { editionnumber is.ord + { "č. " editionnumber * comma.connect } + { editionnumber comma.connect } + if$ + } + if$ + } + if$ +} + + +% Format dostupnosti. +% +% string format.url () +% { +% if (empty$(url)) +% { +% return ""; +% } else +% { +% return tie.or.connect(opt.url(), "\small{\url{" * url * ".}}"); +% } +% } +FUNCTION {format.url} +{ url empty$ + { "" } + { opt.url "{\small\url{" url * "}}" * tie.or.connect } + if$ +} + +% Format cesty. +% +% string format.pah () +% { +% if (empty$(path)) +% { +% return ""; +% } else +% { +% return opt.path * path; +% } +% } +FUNCTION {format.path} +{ path empty$ + { "" } + { opt.path path * } + if$ +} + +% Format ISBN. +% +% string format.isbn () +% { +% if (empty$(isbn)) +% { +% return ""; +% } else +% { +% return "ISBN " * isbn; +% } +% } +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { "ISBN " isbn * } + if$ +} + +% Format nazvu serialove publikace. +% +% string format.journal () +% { +% if (empty$(journal)) +% { +% return ""; +% } else +% { +% return emphasize(journal); +% } +% } +FUNCTION {format.journal} +{ journal empty$ + { "" } + { journalsubtitle empty$ + { journal capitalize emphasize } + { journal capitalize emphasize + opt.sep.t * journalsubtitle emphasize *} + if$ + } + if$ +} + +% Format nazvu lokace ve zdrojovem dokumentu. +% +% string format.pages () +% { +% if (empty$(pages)) +% { +% return ""; +% } else +% { +% return "s.~" * dashify(pages); +% } +% } +FUNCTION {format.pages} +{ pages empty$ + { "" } + { "s.~" pages dashify * } + if$ +} + +FUNCTION {format.chapter} +{ chapter empty$ + { "" } + { "kap.~" chapter * } + if$ +} + +% Formatovani data vydani, rocniku a cisla publikace + datum revize/aktualizace +% + darum citace + lokace ve zdrojovem dokumentu (rozsah stran). +% +% string format.journal.issue () +% { +% string s; +% if (empty$(format.u.date())) +% { +% s = ""; +% } else +% { +% s = format.u.date(); +% } +% if (!empty$(volume)) +% { +% if (is.ord(volume)) +% { +% s = comma.connect(s, "zv.~" * volume); +% } else +% { +% s = comma.connect(s, volume); +% } +% } +% if (empty$(number)) +% { +% warning$("empty number in " * cite$); +% } else +% { +% if (is.ord(number)) +% { +% s = comma.connect(s, "č.~" * number); +% } else +% { +% s = comma.connect(s, number); +% } +% } +% if (s == "") +% { +% warning$("empty journal issue info in " * cite$); +% return ""; +% } else +% { +% return s; +% } +% } +FUNCTION {format.journal.issue} +{ format.u.date + duplicate$ empty$ + { pop$ "" 's := } + { 's := } + if$ + volume empty$ + 'skip$ + { volume is.ord + { "zv.~" volume * + s swap$ comma.connect 's := + } + { s volume comma.connect 's := } + if$ + } + if$ + number empty$ + { "empty number in " cite$ * warning$ } + { number is.ord + { "č.~" number * + s swap$ comma.connect 's := + } + { s number comma.connect 's := } + if$ + } + if$ + s empty$ + { "empty journal issue info in " cite$ * warning$ + "" + } + { s } + if$ +} + +% Format ISSN. +% +% string format.issn () +% { +% if (empty$(issn)) +% { +% return ""; +% } else +% { +% return "ISBN " * issn; +% } +% } +FUNCTION {format.issn} +{ issn empty$ + { "" } + { "ISSN " issn * } + if$ +} + +% Format DOI. +% +% string format.doi () +% { +% if (empty$(doi)) +% { +% return ""; +% } else +% { +% return "DOI: " * doi; +% } +% } +FUNCTION {format.doi} +{ doi empty$ + { "" } + { "DOI: " doi * } + if$ +} + +% Formatuje cislo svazku -- presne urceni casti pro @InBook. +% +% string format.vol () +% { +% if (empty$(volume)) +% { +% push(""); +% } else +% { +% if (is.ord(volume)) +% { +% push("sv.~" * volume); +% } else +% { +% push(volume); +% } +% } +% return capitalize(pop()); +% } +FUNCTION {format.vol} +{ volume empty$ + { "" } + { volume is.ord + { "sv.~" volume * } + { volume } + if$ + } + if$ + capitalize +} + +% Formatuje zakladni informace (primarni odpovednost a titul) o sborniku pro +% bibliograficke citaci clanku ve sborniku. +% +% In opt.sep.a() . +% +% Pokud je prazdny, netiskne se nic. +% +% void conference.basics () +% { +% if (empty$(editor)) +% { +% if (empty$(organization)) +% { +% warning$("empty editor and organization in " * cite$()); +% push(""); +% } else +% { +% if ((substring$(organization, -1, 1) == opt.sep.a()) +% { +% push(capitalize(organization)); +% } else +% { +% push(capitalize(organization * opt.sep.a())); +% } +% } +% } else +% { +% if ((substring$(format.editors(), -1, 1) == opt.sep.a()) +% { +% push(format.editors()); +% } else +% { +% push(capitalize(format.editors() * opt.sep.a())); +% } +% } +% push(tie.or.connect("In:", pop())); +% if (empty$(format.from.btitle())) +% { +% pop(); +% push(""); +% } else +% { +% push(pop() * format.from.btitle()); +% } +% return pop(); +% } +FUNCTION {conference.basics} +{ editor empty$ + { organization empty$ + { "empty editor and organization in " cite$ * warning$ + "" + } + { organization capitalize + duplicate$ #-1 #1 substring$ opt.sep.a = + 'skip$ + { opt.sep.a * } + if$ + } + if$ + } + { format.editors + duplicate$ #-1 #1 substring$ opt.sep.a = + 'skip$ + { opt.sep.a * } + if$ + } + if$ + "In:" swap$ tie.or.connect + format.from.btitle + duplicate$ empty$ + { pop$ } + { tie.or.connect } + if$ +} + + +% Formatuje informace o akademicke (diplomova, dizertacni atp.) praci. +% Odlisuje se od beznych nakladatelskych informaci pouzitymi polozkami. +% +% string format.thesis.info () +% { +% string s = ""; +% if ( (empty$(address)) && (empty$(location)) && (empty$(school)) ) +% { +% warning$("empty address and school in " * cite$()); +% } else +% { +% if (empty$(address)) +% { +% } else +% { +% s = address; +% } +% if (empty$(location)) +% { +% } else +% { +% s = location; +% } +% if (empty$(year)) +% { +% warning$("empty year in " * cite$()); +% } else +% { +% if (empty$(s)) +% { +% s = year; +% } else +% { +% s = comma.connect(s, year); +% } +% } +% } +% return s; +% } +FUNCTION {format.thesis.info} +{ "" 's := + address empty$ + location empty$ + school empty$ + and + and + { "empty address and school in " cite$ * warning$ } + { address empty$ + 'skip$ + { address 's := } + if$ + location empty$ + 'skip$ + { location 's := } + if$ + year empty$ + { "empty year in " cite$ * warning$ } + { s empty$ + { year 's := } + { s year comma.connect 's := } + if$ + } + if$ + } + if$ + s +} + +% Formatuje informace o skole v akademicke (diplomova, dizertacni atp.) praci. +% +% string format.thesis.school () +% { +% string s = ""; +% if (empty$(school)) +% { +% warning$("empty school in " * cite$()); +% } else +% { +% if (empty$(s)) +% { +% s = school; +% } else +% { +% s = s * ". " * school; +% } +% } +% return s; +% } +FUNCTION {format.thesis.school} +{ "" 's := + school empty$ + { "empty school in " cite$ * warning$ } + { s empty$ + { school 's := } + { s ". " * school * 's := } + if$ + } + if$ + s +} + + +% Formatuje pocet stran a priloh u akademickych praci. +% +% string format.thesis.range () +% { +% if ( (empty$(format.range())) && (!empty$(inserts)) ) +% { +% return format.range(); +% } else +% { +% if (is.ord(inserts)) +% { +% return comma.connect(format.range(), inserts * " příl."); +% } else +% { +% return comma.connect(format.range(), inserts); +% } +% } +% } +FUNCTION {format.thesis.range} +{ pages empty$ + { "" 's := } + { pages opt.pages tie.or.connect 's := } + if$ + s empty$ + { "" } + { inserts empty$ + { s } + { s inserts opt.pages tie.or.connect " příl." * comma.connect } + if$ + } + if$ +} + +% Formatuje typ akademicke prace. +% +% string format.thesis.type (string basic.thesis.type) +% { +% if (empty$(type)) +% { +% return basic.thesis.type; +% } else +% { +% return capitalize(type); +% } +% } +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ type capitalize } + if$ +} + + +% Fromatuje typ a cislo technicke zpravy +% +% string format.report.type () +% { +% if (empty$(type)) +% { +% push(""); +% } else +% { +% push(type); +% } +% if (empty$(number)) +% { +% } else +% { +% space.connect(pop(), number); +% } +% } +FUNCTION {format.report.type} +{ type empty$ + { "" } + { type } + if$ + number empty$ + 'skip$ + { number space.connect } + if$ +} + + +% Kontrola prazdnosti vsech policek pouzitych pro @MISC zaznam. +% +% int empty.misc.check () +% { +% if ( (empty$(author)) && (empty$(title)) && +% (empty$(howpublished)) && (empty$(month)) && (empty$(year)) && +% (empty$(note)) && (!empty$(key)) ) +% { +% warning$("all misc relevant fields are empty in " * cite$()); +% return 1; +% } else +% { +% return 0; +% } +% } +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all misc relevant fields are empty in " cite$ * warning$ + #1 + } + { #0 } + if$ +} + + +% Formatuje misto a instituci technicke zpravy. +% +% string format.report.details () +% { +% if ( empty$(institution) ) +% { +% if ( empty$(address) && empty$(organization) ) +% { +% return ""; +% } else +% { +% if (empty$(address)) +% { +% push(""); +% } else +% { +% push(opt.sep.a() * " " * address * opt.sep.p()); +% } +% if (empty$(organization)) +% { +% warning$("empty organization in " * cite$()); +% } else +% { +% return pop() * organization; +% } +% } +% } else +% { +% if ( empty$(address) && empty$(institution) ) +% { +% return ""; +% } else +% { +% if (empty$(address)) +% { +%% push("[b.m.]"); +% push(""); +% } else +% { +% push(opt.sep.a() * " " * address * opt.sep.p()); +% } +% if (empty$(institution)) +% { +% warning$("institution is empty in " * cite$()); +% } else +% { +% return pop() * institution; +% } +% } +% } +% } +FUNCTION {format.report.details} +{ institution empty$ + { + address empty$ + organization empty$ + and + { "" } + { address empty$ + { "" } + { address } + if$ + organization empty$ + { "empty organization in " cite$ * warning$ } + { address empty$ + { organization * } + { opt.sep.p * organization * } + if$ + } + if$ + } + if$ + } + { + address empty$ + institution empty$ + and + { "" } + { address empty$ + { "" } + { address } + if$ + institution empty$ + { "empty institution in " cite$ * warning$ } + { address empty$ + { institution * } + { opt.sep.p * institution * } + if$ + } + if$ + } + if$ + } + if$ +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%% VLASTNI KOD -- FUNKCE PRO ZPRACOVANI ZAZNAMU %%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% Zpracuje zaznamy typu @Article. +% Bibliograficke citace clanku v serialovych publikaci (casopiseckych clanku). +% +% Povinne polozky: author, title, journal, edition, year, volume, number, pages, issn +% Volitelne polozky: subtitle, journalsubtitle, publisher, address, contributory, url*, month, note, doi +% Polozky el. dok.: howpublished*, revised*, cited*, version +% +% * Povinna polozka pro el. dok. +FUNCTION {article} +{ output.bibitem + format.authors + duplicate$ empty$ + { pop$ + "empty author in " cite$ * warning$ + } + { output.authors } + if$ + new.block %% primarni odpovednost (povinna) + format.title "title" output.check + new.block %% titul (povinny) + format.journal "journal" output.check + format.howpublished output + new.block + format.edition "edition" output.check + new.block %% vydani (povinne) + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info output + new.block + format.journal.issue + format.pages comma.connect + format.revised comma.connect + format.cited comma.connect output + new.block %% lokace ve zdrojovem dokumentu (povinna) + format.cseries output + new.block + format.doi output + new.block + format.issn output %% standardni cislo ISSN (volitelne) + new.block + note output + new.block %% poznamky (volitelne) + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +}% @Article + +% Zpracuje zaznamy typu @Book. +% Bibliograficke citace monografickych publikaci (knih). +% +% Povinne polozky: author nebo editor, title, edition, address, publisher, year, isbn +% Volitelne polozky: subtitle, contributory, month, pages, series, number nebo volume, note, url* +% Polozky el. dok.: howpublished*, revised*, cited*, version +% +% * Povinna polozka pro el. dok. +FUNCTION {book} +{ output.bibitem + author.or.editor + new.block %% primarni odpovednost (povinna) + format.btitle "book title" output.check + format.howpublished output + new.block %% nazev (povinny) a druh nosice (povinny u el. dok.) + format.edition capitalize "edition" output.check + new.block %% vydani (povinne) + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info + format.date comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% nakladatelske udaje (volitelne), datum vydani (povinne), + %% datum revize/aktualizace a citace (povinne u el. dok.) + format.range output + new.block %% rozsah (volitelny) + format.cseries output + new.block %% edice (volitelna) + format.isbn "isbn" output.check + new.block + note capitalize output + new.block %% poznamky (volitelne) + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry %% standardni cislo ISBN (povinne) +}% @Book + +% @Booklet je pouhy odkaz na @Book. +FUNCTION {booklet} { book } + +% Zpracuje zaznamy typu @Conference a @InProceedings, @InCollection a @InBook +% Bibliograficke citace monografickych publikaci (knih). +% +% Povinne polozky: author, title, editor nebo organization, booktitle, +% edition, address, publisher, year, pages, isbn or issn. +% Volitelne polozky: subtitle, booksubtitle, contributory, month, series, editionnumber, number nebo volume, chapter, note, doi url*. +% Polozky el. dok.: howpublished*, revised*, cited*, version. +% +% * Povinna polozka pro el. dok. +FUNCTION {conference} +{ output.bibitem + author.or.editor + new.block %% primarni odpovednost (povinna) + format.title "title" output.check + new.block %% titul prispevku + conference.basics + format.howpublished tie.or.connect output + new.block %% primarni odpovednost a titul sborniku +% format.edition "edition" output.check + format.edition output + new.block %% vydani + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info + format.date capitalize comma.connect + format.cvolume comma.connect + format.chapter comma.connect + format.pages comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% nakladatelske udaje, datum vydani, revize/aktualizace a citace + format.cseries output + new.block %% edice (pokud je cislovana, tak i jeji cislo nebo svazek) + format.doi output + new.block + isbn empty$ + { issn empty$ + { "empty isbn and issn in " cite$ * warning$ } + { format.issn output } + if$ + } + { format.isbn output } + if$ + new.block %% standardni cislo ISBN nebo ISSN (povinne) + note capitalize output + new.block %% poznamky + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +} % @Conference a @InProceedings, @InCollection a @InBook + +% @InProceedings je pouhy odkaz na @Conference. +FUNCTION {inproceedings} { conference } +FUNCTION {incollection} { conference } +FUNCTION {inbook} { conference } + +% Zpracuje zaznamy typu @Proceedings. +% +% Bibliograficke citace monografickych publikaci (knih). +% +% Povinne polozky: author nebo editor, title, edition, year, isbn or issn. +% Volitelne polozky: subtitle, contributory, address, publisher, month, series, number nebo volume, note, doi, url*. +% Polozky el. dok.: howpublished*, revised*, cited*, version. +% +% * Povinna polozka pro el. dok. +FUNCTION {proceedings} +{ output.bibitem + author.or.editor + new.block %% primarni odpovednost (povinna) + format.btitle + format.howpublished tie.or.connect output + new.block %% primarni odpovednost a titul sborniku +% format.edition "edition" output.check + format.edition output + new.block %% vydani + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.publish.info + format.date capitalize comma.connect + format.cvolume comma.connect + format.chapter comma.connect + format.pages comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% nakladatelske udaje, datum vydani, revize/aktualizace a citace + format.cseries output + new.block %% edice (pokud je cislovana, tak i jeji cislo nebo svazek) + format.doi output + new.block + isbn empty$ + { issn empty$ + { "empty isbn and issn in " cite$ * warning$ } + { format.issn output } + if$ + } + { format.isbn output } + if$ + new.block %% standardni cislo ISBN nebo ISSN (povinne) + note capitalize output + new.block %% poznamky + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + fin.entry +} % @Proceedings + +% Zpracuje zaznamy typu @Misc, @Webpage a @Website. +% +% Povinne polozky: Alespon jedna z volitelnych! +% Volitelne polozky: author, secondarytitle, title, subtitle, howpublished, contributory, edition, month, doi, issn +% year, revised*, cited, note, url, version, path +% +% Pozn.: Protestuje, pokud neni vyplneny rok. Nemel by tedy volat format.date... +FUNCTION {misc} +{ empty.misc.check + 'skip$ + { output.bibitem + format.authors + duplicate$ empty$ + { pop$ + } + { output.authors } + if$ + new.block + secondarytitle output + new.block + format.btitle "title" output.check + format.howpublished output + new.block + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.edition output + new.block + format.publish.info + edition empty$ + address empty$ + publisher empty$ + and + and + { + output + day empty$ + { format.u.date capitalize output } + { day ". " * format.date.g * comma.connect output } + if$ + } + { + day empty$ + { format.date comma.connect output } + { day ". " * format.date.g * comma.connect output } + if$ + } + if$ + time output + revised empty$ + 'skip$ + { + new.block + format.revised output + } + if$ + format.cited makesmall output + new.block + format.doi output + new.block + format.issn output %% standardni cislo ISSN (volitelne) + new.block + note capitalize makesmall output + new.block + howpublished empty$ + { format.url output } + { format.url "url" output.check + year empty$ + revised empty$ + and + { "empty year and revised in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + new.block + format.path output + fin.entry + } + if$ +}%@Misc a @Webpage a @Website +% @Webpage a @Website sou pouhe odkazy na @Misc. +FUNCTION {webpage} { misc } +FUNCTION {website} { misc } + + +% Zpracuje zaznamy typu @Manual, @TechReport a @Unpublished. +% +% Povinne polozky: author, title, edition, address, organization nebo institution, month, year, revised +% Volitelne polozky: note, number, url* +% Polozky el. dok.: howpublished*, cited* +FUNCTION {techreport} +{ output.bibitem + author.or.editor + new.block %% primarni odpovednost (povinna) + format.btitle "title" output.check + format.howpublished output + new.block + format.report.type + format.edition capitalize comma.connect output + new.block + contributory capitalize output + new.block %% podrizena odpovednost (volitelna) + format.report.details + format.date comma.connect + format.revised comma.connect + format.cited tie.or.connect + capitalize output + new.block %% udeja o vydavajici instituci (volitelne) a datum vydani (povinne) + format.range output + new.block %% rozsah (volitelny) + note capitalize output + new.block %% poznamka (volitelna) + format.url output + new.block %% dostupnost (volitelna) + fin.entry +}%@Manual, @TechReport a @Unpublished +FUNCTION {manual} { techreport } +FUNCTION {unpublished} { techreport } + + +% Zpracuje zaznamy typu @BachelorsThesis, @MastersThesis a @PhdThesis. +% Bibliograficke citace akademickych praci (bakalarske, diplomove a dizertacni). +% +% Zakladni verze -- v choose.thesis ma hodnotu #0. +% +% Povinne polozky: author, title, address or location, school, year, type +% Volitelne polozky: subtitle, pages, inserts, note, url, isbn, howpublished +FUNCTION {thesis} +{ output.bibitem + format.authors + duplicate$ empty$ + { pop$ + "empty author in " cite$ * warning$ + } + { output.authors } + if$ + new.block %% primarni odpovednost (povinna) + format.btitle "title" output.check + format.howpublished output + new.block %% titul (povinny) + format.thesis.info capitalize output + new.block %% misto a rok {povinne) + format.cited makesmall output + new.block %% cited + format.thesis.range output + new.block %% rozsah akademicke prace a jejich priloh (volitelne) + type$ "l" change.case$ + duplicate$ "bachelorsthesis" = + { pop$ "Bakalárska práca" } + { "mastersthesis" = + { "Diplomová práca" } + { "Dizertačná práca" } + if$ + } + if$ + format.thesis.type output + new.block %% typ akademicke prace (volitelny -- pouzije se implicitni) + format.thesis.school output + new.block + format.isbn output + new.block + format.supervisor output + note capitalize output + new.block + format.url output + fin.entry %% standardni cislo ISBN (volitelne) +}%@BachelorsThesis, @MastersThesis a @PhdThesis + +% Zaznamy typu @BachelorsThesis jsou zpracovany funkci thesis. +FUNCTION {bachelorsthesis}{ thesis } + +% Zaznamy typu @MastersThesis jsou zpracovany funkci thesis. +FUNCTION {mastersthesis} { thesis } + +% Zaznamy typu @PhdThesis jsou zpracovany funkci thesis. +FUNCTION {phdthesis} { thesis } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%% MIRNE UPRAVENE FUNKCE PREVZATE Z plain.bst %%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% nacteni bibliograficke databaze +READ + +% Pripravi hodnotu pro razeni -- aplikuje vestavenou funkci purify$ a prevede +% na minusky. +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +% Deklarace dalsi celociselne promenne. +INTEGERS { len } + +% Vrati pouze cast predane hodnoty. +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +% Piprava jmen na razeni. +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ +% s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + s nameptr "{ll{ }}{ ff{ }}{ vv{ }}" format.name$ 't := %% Zamena! + nameptr numnames = t "others" = and + { opt.etal * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +% Priprava titulu na serazeni. +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +% Serazeni dle autora. +FUNCTION {author.sort} +{ key empty$ + { author empty$ + editor empty$ + and + { "to sort, need author or key in " cite$ * warning$ + "" + } + { author empty$ + { editor sort.format.names } + { author sort.format.names } + if$ + } + if$ + } + { key sortify } + if$ +} + +% Dytrych: Původní funkce upřednostní jméno před klíčem a ten pak nelze použít k opravě českého řazení. +% FUNCTION {author.sort} +% { author empty$ +% { key empty$ +% { "to sort, need author or key in " cite$ * warning$ +% "" +% } +% { key sortify } +% if$ +% } +% { author sort.format.names } +% if$ +% } + +% Serazeni dle editora. +FUNCTION {author.editor.sort} +{ key empty$ + { author empty$ + { editor empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ + } + { key sortify } + if$ +} +% FUNCTION {author.editor.sort} +% { author empty$ +% { editor empty$ +% { key empty$ +% { "to sort, need author, editor, or key in " cite$ * warning$ +% "" +% } +% { key sortify } +% if$ +% } +% { editor sort.format.names } +% if$ +% } +% { author sort.format.names } +% if$ +% } + +% Serazeni dle autora, editora nebo organizace. Jedna se o nevyuzitou funkci. +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +% Serazeni dle editora ci organizace. Jedna se o nevyuzitou funkci. +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +% Priprava na razeni. +% +% Funkce je zmenena oproti puvodnimu zneni v plain.bst. +FUNCTION {presort} +{ type$ "book" = + type$ "inbook" = + or + { author.editor.sort } + { author.sort } + if$ + " " * + year field.or.null sortify * + " " * + title field.or.null + sort.format.title * + #1 entry.max$ substring$ + 'sort.key$ := +} + +% Provede pripravu pred razenim. +ITERATE {presort} + +% Provede serazeni. +SORT + +% Deklarace retezcove promenne pro urceni nejdelsiho navesti do soupisu bib.cit. +STRINGS { longest.label } + +% Deklarace pomocnych ciselnych promennych. +INTEGERS { number.label longest.label.width } + +% Inicializace pomocnych promennych. +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +% Predani nejdelsiho navesti. +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +% Provede inicializaci pomocnych promennych. +EXECUTE {initialize.longest.label} + +% Vybere nejdelsi navesti. +ITERATE {longest.label.pass} + +% Tato funkce se stara o prvni radky, ktere se objevi ve vystupnim souboru. +% +% Tato funkce je rozsirena o podminenou definici prikazu \url{}. +FUNCTION {begin.bib} +{ "\makeatletter" write$ newline$ +%%% "\@ifundefined{url}" +%%% "{\def\url#1{{\tt $<$#1$>$}}}" * +%%% "{\DeclareUrlCommand\url{\def\UrlLeft{<} \def\UrlRight{>} \urlstyle{tt}}}" * +%%% write$ newline$ + "\makeatother" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" longest.label * "}" * write$ newline$ +} + +% Funkce zapise posledni radky do vystupniho souboru -- uzavre prostredi +% thebibliography. +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +% Vlozi do vystupniho souboru zacatek prostredi thebibliography. +EXECUTE {begin.bib} + +% Provede inicilizaci potrebnych konstant. +EXECUTE {init.state.consts} + +% Zpracovani vsech citovanych zaznamu. +ITERATE {call.type$} + +% Uzavre prostredi thebibliography. +EXECUTE {end.bib} diff --git a/latex_verze/fitthesis.cls b/latex_verze/fitthesis.cls new file mode 100644 index 0000000..b5ce959 --- /dev/null +++ b/latex_verze/fitthesis.cls @@ -0,0 +1,1377 @@ +% ---------------------------------------------------------------------------- +% FIT thesis +% ---------------------------------------------------------------------------- +% Autoři / Authors: 2007 Zdeněk Vašíček, 2008 Michal Bidlo, 2019 Jaroslav Dytrych +% ---------------------------------------------------------------------------- +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{fitthesis}[2022/11/14 Sablona pro BP/DP] + +%Vychozi hodnoty parametru / Default values for parameters +\newif\ifczech \let\ifczech\iftrue +\newif\ifslovak \let\ifslovak\iffalse +\newif\ifenslovak \let\ifenslovak\iffalse +\newif\ifenglish \let\ifenglish\iffalse +\newif\ifczechslovak \let\ifczechslovak\iftrue +\newif\ifcover \let\ifcover\iffalse +\newif\ifCOPEN \let\ifCOPEN\iffalse +\newif\ifCBOPEN \let\ifCBOPEN\iffalse +\newif\ifODSAZ \let\ifODSAZ\iffalse + +\newif\ifPrint \let\ifPrint\iffalse +\newif\ifBarLogo \let\ifBarLogo\iffalse +\newif\ifWis \let\ifWis\iftrue +\newif\ifzadani \let\ifzadani\iffalse +\newif\iftwoside \let\iftwoside\iffalse +\newif\ifoneside \let\ifoneside\iftrue +\newif\ifphdsummary \let\ifphdsummary\iffalse + +%----------------------------------------------------------------------------- +% Parametry tridy (odkomentovani zakomentovanych na vlastni nebezpeci) +% Class parameters (uncommenting of commented one is only on your own risk) +%----------------------------------------------------------------------------- +\DeclareOption{english}{\let\ifenglish\iftrue\let\ifczech\iffalse\let\ifczechslovak\iffalse} +\DeclareOption{slovak}{\let\ifslovak\iftrue\let\ifczech\iffalse} +\DeclareOption{enslovak}{\let\ifenslovak\iftrue} +\DeclareOption{cover}{\let\ifcover\iftrue} +\DeclareOption{print}{\let\ifWis\iffalse \let\ifPrint\iftrue} +\DeclareOption{cprint}{\let\ifWis\iffalse \let\ifPrint\iftrue \let\ifBarLogo\iftrue} +\DeclareOption{zadani}{\let\ifzadani\iftrue} +\DeclareOption{twoside}{\let\ifoneside\iffalse \let\iftwoside\iftrue} +\DeclareOption{phdsummary}{\let\ifoneside\iffalse \let\iftwoside\iffalse \let\ifphdsummary\iftrue} +%\DeclareOption{COPEN}{\let\ifCOPEN\iftrue} +%\DeclareOption{CBOPEN}{\let\ifCBOPEN\iftrue} +\DeclareOption{odsaz}{\let\ifODSAZ\iftrue} + +\DeclareOption*{} +\ProcessOptions\relax +%Jako vychozi pouzijeme tridu REPORT / We will use REPORT class as a base +\iftwoside + \ifx\pdfoutput\undefined % nejedeme pod pdftexem / we are not using pdftex + \LoadClass[a4paper,twoside,onecolumn,11pt]{report} + \else + \LoadClass[pdftex,a4paper,twoside,onecolumn,11pt]{report} + \fi +\fi +\ifoneside + \ifx\pdfoutput\undefined % nejedeme pod pdftexem + \LoadClass[a4paper,oneside,onecolumn,11pt]{report} + \else + \LoadClass[pdftex,a4paper,oneside,onecolumn,11pt]{report} + \fi +\fi +\ifphdsummary + \ifx\pdfoutput\undefined % nejedeme pod pdftexem / we are not using pdftex + \LoadClass[a5paper,twoside,onecolumn,11pt]{report} + \else + \LoadClass[pdftex,a5paper,twoside,onecolumn,11pt]{report} + \fi + \twosidetrue +\fi + +%----------------------------------------------------------------------------- +% Balicky / Packages +%----------------------------------------------------------------------------- +\ifenglish + \PassOptionsToPackage{main=english}{babel} +\fi +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage[czech,slovak,english]{babel} +\usepackage[utf8]{inputenc} %kodovani / encoding +\usepackage{cmap} +\usepackage[T1]{fontenc} +\usepackage{url} +\usepackage{ragged2e} +\usepackage{color} +\usepackage{etoolbox} +\usepackage{enumitem} + +\ifczech + \main@language{czech} +\else + \ifslovak + \main@language{slovak} + \else + \main@language{english} + \fi +\fi +\ifx\pdfoutput\undefined % nejedeme pod pdftexem / we are not using pdftex + \usepackage{graphics} + \usepackage{epsfig} +\else % je to pdftex ! / it is pdftex ! + \ifzadani + \usepackage{pdfpages} + \else % neni potreba pdfpages / pdfpages is not necessary + \usepackage[pdftex]{graphicx} + \fi +\fi + +\newtoggle{phd_summary} +\togglefalse{phd_summary} +\ifphdsummary + \toggletrue{phd_summary} +\fi + +\newtoggle{slovak_used} +\togglefalse{slovak_used} + +\ifslovak + \toggletrue{slovak_used} +\fi + +\newtoggle{english_used} +\togglefalse{english_used} + +\ifenglish + \toggletrue{english_used} +\fi + +\newtoggle{enslovak_used} +\togglefalse{enslovak_used} + +\ifenslovak + \toggletrue{enslovak_used} +\fi + +\newtoggle{czech_used} +\togglefalse{czech_used} + +\ifczech + \toggletrue{czech_used} +\fi + +\newtoggle{czechslovak} +\togglefalse{czechslovak} +\ifczech + \toggletrue{czechslovak} +\fi +\ifslovak + \toggletrue{czechslovak} +\fi + +\newtoggle{zadaniTwop} +\togglefalse{zadaniTwop} +\iftwoside + \toggletrue{zadaniTwop} +\fi +\iftoggle{zadaniTwop}{ + \ifzadani + \toggletrue{zadaniTwop} + \else + \togglefalse{zadaniTwop} + \fi +}{} + + +%----------------------------------------------------------------------------- +% Sazebni obrazec / Page layout +%----------------------------------------------------------------------------- +\iftwoside +% \usepackage[left=3.46cm, text={15.2cm,23.47cm}, top=2.5cm, marginparwidth=50pt]{geometry} + \usepackage[a4paper]{geometry} + \newgeometry{left=3.46cm, text={15.2cm,23.47cm}, top=2.5cm, marginparwidth=50pt} +\else + \setlength{\hoffset}{-0.7cm} + \setlength{\voffset}{-1.5cm} + \setlength{\textheight}{23.0cm} + \setlength{\textwidth}{15.2cm} +\fi + +\ifphdsummary + \newgeometry{left=1.8cm, text={9.5cm,16.5cm}, top=2.0cm, marginparwidth=25pt} +\fi + +\ifODSAZ + \setlength{\parindent}{0pt} + \setlength{\parskip}{0.5\bigskipamount} +\else + \setlength\parindent{17\p@} + \setlength{\parskip}{0pt} +\fi + + +%----------------------------------------------------------------------------- +% Texty / Texts +%----------------------------------------------------------------------------- +\def\@vut@CS{Vysoké učení technické v~Brně} +\def\@vut@SK{Vysoké učení technické v~Brně} +\def\@vut@EN{Brno University of Technology} +\def\@author@CS{Autor práce} +\def\@author@SK{Autor práce} +\def\@author@EN{Author} +\def\@abstract@CS{Abstrakt} +\def\@abstract@SK{Abstrakt} +\def\@abstract@EN{Abstract} +\def\@extendedabstract@CS{Rozšířený abstrakt} +\def\@extendedabstract@SK{Rozšírený abstrakt} +\def\@keywords@CS{Klíčová slova} +\def\@keywords@SK{Kľúčové slová} +\def\@keywords@EN{Keywords} +\def\@cite@CS{Citace} +\def\@cite@SK{Citácia} +\def\@cite@EN{Reference} +\def\@tdecl@CS{Prohlášení} +\def\@tdecl@SK{Prehlásenie} +\def\@tdecl@EN{Declaration} +\def\@tackn@CS{Poděkování} +\def\@tackn@SK{Poďakovanie} +\def\@tackn@EN{Acknowledgements} + +\newif\ifnasel +\def\ifEqString#1#2#3#4{\def\testa{#1}\def\testb{#2}% + \ifx\testa\testb \def#4{#3} \naseltrue \fi% +} + +%Vyber typu projektu / project type selection +\newcommand{\set@project}[1]{% + \naselfalse + \ifEqString{#1}{BP}{Bakalářská práce}{\@projecttype@CS}% +% \ifEqString{#1}{BP}{Bakalárska práca}{\@projecttype@SK}% + \ifEqString{#1}{BP}{Bakalářská práce}{\@projecttype@SK}% + \ifEqString{#1}{BP}{Bachelor's thesis}{\@projecttype@EN}% + \ifEqString{#1}{BP}{Vedoucí práce}{\@supervisor@CS}% +% \ifEqString{#1}{BP}{Vedúci práce}{\@supervisor@SK}% + \ifEqString{#1}{BP}{Vedoucí práce}{\@supervisor@SK}% + \ifEqString{#1}{BP}{Supervisor}{\@supervisor@EN}% + \ifEqString{#1}{SP}{Semestrální projekt}{\@projecttype@CS}% +% \ifEqString{#1}{SP}{Semestrálny projekt}{\@projecttype@SK}% + \ifEqString{#1}{SP}{Semestrální projekt}{\@projecttype@SK}% + \ifEqString{#1}{SP}{Term project}{\@projecttype@EN}% + \ifEqString{#1}{SP}{Vedoucí práce}{\@supervisor@CS}% +% \ifEqString{#1}{SP}{Vedúci práce}{\@supervisor@SK}% + \ifEqString{#1}{SP}{Vedoucí práce}{\@supervisor@SK}% + \ifEqString{#1}{SP}{Supervisor}{\@supervisor@EN}% + \ifEqString{#1}{DP}{Diplomová práce}{\@projecttype@CS}% +% \ifEqString{#1}{DP}{Diplomová práca}{\@projecttype@SK}% + \ifEqString{#1}{DP}{Diplomová práce}{\@projecttype@SK}% + \ifEqString{#1}{DP}{Master's thesis}{\@projecttype@EN}% + \ifEqString{#1}{DP}{Vedoucí práce}{\@supervisor@CS}% +% \ifEqString{#1}{DP}{Vedúci práce}{\@supervisor@SK}% + \ifEqString{#1}{DP}{Vedoucí práce}{\@supervisor@SK}% + \ifEqString{#1}{DP}{Supervisor}{\@supervisor@EN}% + \ifEqString{#1}{DR}{Disertační práce}{\@projecttype@CS}% +% \ifEqString{#1}{DR}{Dizertačná práca}{\@projecttype@SK}% + \ifEqString{#1}{DR}{Disertační práce}{\@projecttype@SK}% + \ifEqString{#1}{DR}{PhD thesis}{\@projecttype@EN}% + \ifEqString{#1}{DR}{Školitel}{\@supervisor@CS}% +% \ifEqString{#1}{DR}{Školiteľ}{\@supervisor@SK}% + \ifEqString{#1}{DR}{Školitel}{\@supervisor@SK}% + \ifEqString{#1}{DR}{Supervisor}{\@supervisor@EN}% + \ifEqString{#1}{DA}{Teze disertační práce -- autoreferát}{\@projecttype@CS}% +% \ifEqString{#1}{DA}{Tézy dizertačnej práce -- autoreferát}{\@projecttype@SK}% + \ifEqString{#1}{DA}{Teze disertační práce -- autoreferát}{\@projecttype@SK}% + \ifEqString{#1}{DA}{PhD thesis summary}{\@projecttype@EN}% + \ifEqString{#1}{DA}{Školitel}{\@supervisor@CS}% +% \ifEqString{#1}{DA}{Školiteľ}{\@supervisor@SK}% + \ifEqString{#1}{DA}{Školitel}{\@supervisor@SK}% + \ifEqString{#1}{DA}{Supervisor}{\@supervisor@EN}% + \ifEqString{#1}{DT}{Pojednání k tématu disertační práce}{\@projecttype@CS}% +% \ifEqString{#1}{DT}{Teze disertační práce}{\@projecttype@CS}% +% \ifEqString{#1}{DT}{Pojednanie k téme dizertačnej práce}{\@projecttype@SK}% + \ifEqString{#1}{DT}{Pojednání k tématu disertační práce}{\@projecttype@SK}% + \ifEqString{#1}{DT}{PhD thesis proposal}{\@projecttype@EN}% + \ifEqString{#1}{DT}{Školitel}{\@supervisor@CS}% +% \ifEqString{#1}{DT}{Školiteľ}{\@supervisor@SK}% + \ifEqString{#1}{DT}{Školitel}{\@supervisor@SK}% + \ifEqString{#1}{DT}{Supervisor}{\@supervisor@EN}% + \ifEqString{#1}{PP}{Projektová praxe}{\@projecttype@CS}% + \ifEqString{#1}{PP}{Projektová prax}{\@projecttype@SK}% + \ifEqString{#1}{PP}{Project practice}{\@projecttype@EN}% + \ifEqString{#1}{PP}{Vedoucí}{\@supervisor@CS}% + \ifEqString{#1}{PP}{Vedúcí}{\@supervisor@SK}% + \ifEqString{#1}{PP}{Supervisor}{\@supervisor@EN}% + \ifnasel + \else + \typeout{Spatny typ projektu! Moznosti: BP, SP, DP, DR, DT, DA, PP}\set@project{BP} + \fi +} + +%Vyber fakulty / faculty selection +\newcommand{\set@faculty}[3]{% + \naselfalse + \ifEqString{#1}{FIT}{Fakulta informačních technologií}{\@fit@CS}% + \ifEqString{#1}{FIT}{Fakulta informačních technologií}{\@fit@SK}% + \ifEqString{#1}{FIT}{Faculty of Information Technology}{\@fit@EN}% + \ifEqString{#1}{FEKT}{Fakulta elektrotechniky +a komunikačních technologií}{\@fit@CS}% + \ifEqString{#1}{FEKT}{Fakulta elektrotechniky +a komunikačních technologií}{\@fit@SK}% + \ifEqString{#1}{FEKT}{Faculty of Electrical Engineering +and Communication}{\@fit@EN}% + \ifEqString{#1}{FSI}{Fakulta strojního inženýrství}{\@fit@CS}% + \ifEqString{#1}{FSI}{Fakulta strojního inženýrství}{\@fit@SK}% + \ifEqString{#1}{FSI}{Faculty of Mechanical +Engineering}{\@fit@EN}% + \ifEqString{#1}{FA}{Fakulta architektury}{\@fit@CS}% + \ifEqString{#1}{FA}{Fakulta architektury}{\@fit@SK}% + \ifEqString{#1}{FA}{Faculty of Architecture}{\@fit@EN}% + \ifEqString{#1}{FCH}{Fakulta chemická}{\@fit@CS}% + \ifEqString{#1}{FCH}{Fakulta chemická}{\@fit@SK}% + \ifEqString{#1}{FCH}{Faculty of Chemistry}{\@fit@EN}% + \ifEqString{#1}{FP}{Fakulta podnikatelská}{\@fit@CS}% + \ifEqString{#1}{FP}{Fakulta podnikatelská}{\@fit@SK}% + \ifEqString{#1}{FP}{Faculty of Business and +Management}{\@fit@EN}% + \ifEqString{#1}{FAST}{Fakulta stavební}{\@fit@CS}% + \ifEqString{#1}{FAST}{Fakulta stavební}{\@fit@SK}% + \ifEqString{#1}{FAST}{Faculty of Civil Engineering}{\@fit@EN}% + \ifEqString{#1}{FAVU}{Fakulta výtvarných umění}{\@fit@CS}% + \ifEqString{#1}{FAVU}{Fakulta výtvarných umění}{\@fit@SK}% + \ifEqString{#1}{FAVU}{Faculty of Fine Arts}{\@fit@EN}% + \ifEqString{#1}{USI}{Ústav soudního inženýrství}{\@fit@CS}% + \ifEqString{#1}{USI}{Ústav soudního inženýrství}{\@fit@SK}% + \ifEqString{#1}{USI}{Institute of Forensic Engineering}{\@fit@EN}% + \ifEqString{#1}{DEF}{#2}{\@fit@CS}% + \ifEqString{#1}{DEF}{#2}{\@fit@SK}% + \ifEqString{#1}{DEF}{#3}{\@fit@EN}% + \ifnasel + \else + \typeout{Spatna fakulta! Moznosti: FIT, FEKT, FSI, FA, FCH, FP, FAST, FAVU, USI}\set@faculty{FIT} + \fi +} + +%Vyber ustavu / department selection +\newcommand{\set@department}[3]{% + \naselfalse + \ifEqString{#1}{UIFS}{Ústav informačních systémů}{\@department@CS}% + \ifEqString{#1}{UIFS}{Ústav informačních systémů}{\@department@SK}% + \ifEqString{#1}{UIFS}{Department of Information Systems}{\@department@EN}% + \ifEqString{#1}{UPSY}{Ústav počítačových systémů}{\@department@CS}% + \ifEqString{#1}{UPSY}{Ústav počítačových systémů}{\@department@SK}% + \ifEqString{#1}{UPSY}{Department of Computer Systems}{\@department@EN}% + \ifEqString{#1}{UITS}{Ústav inteligentních systémů}{\@department@CS}% + \ifEqString{#1}{UITS}{Ústav inteligentních systémů}{\@department@SK}% + \ifEqString{#1}{UITS}{Department of Intelligent Systems}{\@department@EN}% + \ifEqString{#1}{UPGM}{Ústav počítačové grafiky a multimédií}{\@department@CS}% + \ifEqString{#1}{UPGM}{Ústav počítačové grafiky a multimédií}{\@department@SK}% + \ifEqString{#1}{UPGM}{Department of Computer Graphics and~Multimedia}{\@department@EN}% + \ifEqString{#1}{DEF}{#2}{\@department@CS}% + \ifEqString{#1}{DEF}{#2}{\@department@SK}% + \ifEqString{#1}{DEF}{#3}{\@department@EN}% + \ifnasel + \else + \typeout{Spatny ustav! Moznosti: UPSY, UIFS, UITS, UPGM, DEF}\set@department{UIFS} + \fi +} + +%Nazev ustavu (CS, SK, EN) / name of the department +\def\@departmentname@CS{\@department@CS} +\def\@departmentname@SK{\@department@SK} +\def\@departmentname@EN{\@department@EN} + +%Nazev prace (v jazyce prace) / thesis title (in the language of the thesis) +\iftoggle{slovak_used}{ + \def\@title{\@title@CS} +}{ + \def\@title{\ifczech\@title@CS\else\@title@EN\fi} +} + +%Jmeno, prijmeni, tituly autora / name surname and the titles of the author +\def\get@author{\ifx\undefined\@author@tp\else% +\@author@tp~\fi\MakeUppercase{\@author}\ifx\undefined\@author@ta\else,~\@author@ta\fi} +\def\getlc@author{\ifx\undefined\@author@tp\else% +\@author@tp~\fi\@author\ifx\undefined\@author@ta\else,~\@author@ta\fi} +%Jmeno, prijmeni, tituly vedouciho / name surname and the titles of the supervisor +\def\get@supervisor{\ifx\undefined\@supervisor@tp\else% +\@supervisor@tp~\fi\MakeUppercase{\@supervisor}\ifx\undefined\@supervisor@ta\else,~\@supervisor@ta\fi} + +%----------------------------------------------------------------------------- +% Projectinfo - parametrizace sablony / template parameters +%----------------------------------------------------------------------------- +%Parametry +\define@key{projinfo}{title.cs}{\global\def\@title@CS{#1}} +\define@key{projinfo}{title.en}{\global\def\@title@EN{#1}} +\define@key{projinfo}{faculty.cs}{\def\@faculty@CS{#1}} +\define@key{projinfo}{faculty.en}{\def\@faculty@EN{#1}} +\define@key{projinfo}{faculty}{\set@faculty{#1}{\@faculty@CS}{\@faculty@EN}} +\define@key{projinfo}{department.cs}{\def\@departmentn@CS{#1}} +\define@key{projinfo}{department.en}{\def\@departmentn@EN{#1}} +\define@key{projinfo}{department}{\set@department{#1}{\@departmentn@CS}{\@departmentn@EN}} +\define@key{projinfo}{project}{\set@project{#1}} +\define@key{projinfo}{year}{\def\@year{#1}} +\define@key{projinfo}{date}{\def\@date{#1}} +%\define@key{projinfo}{author}{\def\@author{#1}} +\define@key{projinfo}{author.name}{\def\@author@n{#1}} +\define@key{projinfo}{author.surname}{\def\@author@s{#1}} +\define@key{projinfo}{author.title.a}{\def\@author@ta{#1}} +\define@key{projinfo}{author.title.p}{\def\@author@tp{#1}} +\define@key{projinfo}{supervisor.name}{\def\@supervisor@n{#1}} +\define@key{projinfo}{supervisor.surname}{\def\@supervisor@s{#1}} +\define@key{projinfo}{supervisor.title.a}{\def\@supervisor@ta{#1}} +\define@key{projinfo}{supervisor.title.p}{\def\@supervisor@tp{#1}} +\define@key{projinfo}{keywords.cs}{\def\@tkeywords@CS{#1}} +\define@key{projinfo}{keywords.en}{\def\@tkeywords@EN{#1}} +\define@key{projinfo}{abstract.cs}{\def\@tabstract@CS{#1}} +\define@key{projinfo}{abstract.en}{\def\@tabstract@EN{#1}} +\define@key{projinfo}{extendedabstract}{\def\@textendedabstract{#1}} +\define@key{projinfo}{extabstract.odd}{\def\@extabstracto{#1}} +\define@key{projinfo}{declaration}{\def\@declaration{#1}} +\define@key{projinfo}{acknowledgment}{\def\@acknowledgment{#1}} +\define@key{projinfo}{title.length}{\def\@titlelen{#1}} +\define@key{projinfo}{sectitle.length}{\def\@sectitlelen{#1}} +\define@key{projinfo}{dectitle.length}{\def\@dectitlelen{#1}} + +%Vychozi hodnoty / Default values +\setkeys{projinfo}{ + title.cs={Název práce (česky)},title.en={Název práce(anglicky)}, + date=\today, project=BP, department=DEF, declaration=, + abstract.cs=, abstract.en=, keywords.cs=, keywords.en=, + author.name=Jméno, author.surname=Příjmení, supervisor.name=Jméno, + supervisor.surname=Příjmení, extendedabstract=, extabstract.odd=, + department.cs=,department.en=,title.length=, + sectitle.length=,dectitle.length=, + faculty.cs=,faculty.en=,faculty=FIT +}% + +\def\projectinfo{\setkeys{projinfo}} + +\def\@author{\@author@n\ \@author@s} +\def\@supervisor{\@supervisor@n\ \@supervisor@s} + +%Prohlaseni / Declaration +\newcommand{\declaration}[1]{\def\@declaration{#1}} + +%Podekovani / Acknowledgement +\newcommand{\acknowledgment}[1]{\def\@acknowledgment{#1}} + +%Abstrakt / Abstract +\renewcommand{\abstract}[2][cs]{% + \ifEqString{#1}{cs}{#2}{\@tabstract@CS}% + \ifEqString{#1}{sk}{#2}{\@tabstract@SK}% + \ifEqString{#1}{en}{#2}{\@tabstract@EN}% +} + +%Klicova slova / Keywords +\newcommand{\keywords}[2][cs]{% + \ifEqString{#1}{cs}{#2}{\@tkeywords@CS}% + \ifEqString{#1}{sk}{#2}{\@tkeywords@SK}% + \ifEqString{#1}{en}{#2}{\@tkeywords@EN}% +} + +%Rozsireny abstrakt / Extended abstract +\newcommand{\extendedabstract}[1]{% + \def\@textendedabstract{#1}% +} + +% Začít rozšířený abstrakt na liché stránce? / Should extended abstract start on the odd page? +\newcommand{\extabstractodd}[1]{% + \def\@extabstracto{#1}% +} + +%Délka titulku / Title length +\newcommand{\titlelength}[1]{% + \def\@titlelen{#1}% +} + +%Délka druhého titulku / Second title length +\newcommand{\sectitlelength}[1]{% + \def\@sectitlelen{#1}% +} + +%Délka titulku nad prohlášením / Length of the title above declaration +\newcommand{\dectitlelength}[1]{% + \def\@dectitlelen{#1}% +} + +\newlength{\mkspc} +\setlength{\mkspc}{2pt} + +\def\setfontsize#1{\renewcommand{\baselinestretch}{1.5}\fontsize{#1}{\f@baselineskip}\selectfont} +%text +\newcommand{\mktxt}[2]{\vbox{\setfontsize{#1}\noindent#2}\vspace\mkspc} +%text pro titulní list / text for title page +\newcommand{\mktxtt}[2]{\vbox{\setfontsize{#1}\fosfamily\bfseries\noindent#2}\vspace\mkspc} +%text pro desky / text for cover +\newcommand{\mktxtc}[2]{\vbox{\setfontsize{#1}\ifCOPEN\fosfamily\fi\ifCBOPEN\fosfamily\bfseries\fi\noindent#2}\vspace\mkspc} +%všechna velká / uppercase +\newcommand{\mkuctxt}[2]{\vbox{\setfontsize{#1}\noindent\MakeUppercase{#2}}\vspace\mkspc} +\newcommand{\mkuctxtt}[2]{\vbox{\setfontsize{#1}\fosfamily\bfseries\noindent\MakeUppercase{#2}}\vspace\mkspc} +% Pro název práce na 2 řádky / For the 2-line thesis title +\newcommand{\mkuctxttl}[3]{\vbox to 1.2cm{\noindent\parbox{#2}{\setfontsize{#1}\fosfamily\bfseries\noindent\MakeUppercase{#3}}}\vspace\mkspc} +% Pro 2. název práce na 2 řádky / For the 2-line second thesis title +\newcommand{\mkuctxttls}[3]{\vbox to 1.0cm{\noindent\parbox{#2}{\setfontsize{#1}\fosfamily\bfseries\noindent\baselineskip=13pt\MakeUppercase{#3}}}\vspace\mkspc} +\newcommand{\mkuctxtc}[2]{\vbox{\setfontsize{#1}\ifCOPEN\fosfamily\fi\ifCBOPEN\fosfamily\bfseries\fi\noindent\MakeUppercase{#2}}\vspace\mkspc} +%bold +\newcommand{\mktxt@b}[2]{\vbox{\setfontsize{#1}\noindent\bf#2}\vspace\mkspc} +%bold na 2 řádky / 2-line bold +\newcommand{\mktxtl@b}[3]{\vbox to 1.0cm{\noindent\parbox{#2}{\setfontsize{#1}\noindent\bf\baselineskip=18pt #3}}\vspace\mkspc} +%bold pro titulní list / bold for title page +\newcommand{\mktxtt@b}[2]{\vbox{\setfontsize{#1}\fosfamily\bfseries\noindent\bf#2}\vspace\mkspc} + +%----------------------------------------------------------------------------- +% Desky / Cover \makecover +%----------------------------------------------------------------------------- +\newcommand\makecover{ +\thispagestyle{empty}\null% + +\setlength\parindent{17\p@} +\setlength{\parskip}{0pt} + +\fontfamily{qhv}\selectfont% +% + +\addtolength{\voffset}{-0.95cm} + +\begin{center} + +\ifczech + \noindent\hspace{-34.0pt}\mkuctxtc{20}{\@vut@CS} +\else + \ifslovak + \noindent\hspace{-34.0pt}\mkuctxtc{20}{\@vut@CS} + \else + \noindent\hspace{-34.0pt}\mkuctxtc{20}{\@vut@EN} + \fi +\fi + +\vspace{8mm} + +\ifczech + \noindent\hspace{-34.0pt}\mktxtc{20}{\@fit@CS} +\else + \ifslovak + \noindent\hspace{-34.0pt}\mktxtc{20}{\@fit@CS} + \else + \noindent\hspace{-34.0pt}\mktxtc{20}{\@fit@EN} + \fi +\fi + +\vspace{9cm} + +\ifczech + \noindent\hspace{-34.0pt}\mkuctxtc{20}{\@projecttype@CS} +\else + \ifslovak + \noindent\hspace{-34.0pt}\mkuctxtc{20}{\@projecttype@CS} + \else + \noindent\hspace{-34.0pt}\mkuctxtc{20}{\@projecttype@EN} + \fi +\fi + +\enlargethispage{5.1\baselineskip} + +\vfill + +\noindent\mktxtc{16}{\hspace{-52.0pt}Brno, \@year \hfill \getlc@author \hspace{5.0pt}~} + +\ifODSAZ + \setlength{\parindent}{0pt} + \setlength{\parskip}{0.5\bigskipamount} +\else + \setlength\parindent{17\p@} + \setlength{\parskip}{0pt} +\fi + +\end{center} + +%=================================================== +\newpage +\fontfamily{\familydefault}\selectfont% +\addtolength{\voffset}{0.95cm} +} + +%----------------------------------------------------------------------------- +% Abstrakt, klicova slova \makeabstract +% Abstract, keywords \makeabstract +%----------------------------------------------------------------------------- +\newcommand\makeabstract{% +\thispagestyle{empty}\null% + +\ifczech +\mktxt@b{16}{\@abstract@CS}\noindent\@tabstract@CS +\else + \ifslovak + \mktxt@b{16}{\@abstract@SK}\noindent\@tabstract@CS + \else + \mktxt@b{16}{\@abstract@EN}\noindent\@tabstract@EN + \fi +\fi + +\vfill + +\iftoggle{czech_used}{ +\mktxt@b{16}{\@abstract@EN}\noindent\@tabstract@EN +}{ + \ifslovak + \mktxt@b{16}{\@abstract@EN}\noindent\@tabstract@EN + \else + \ifenslovak + \mktxt@b{16}{\@abstract@SK}\noindent\@tabstract@CS + \else + \mktxt@b{16}{\@abstract@CS}\noindent\@tabstract@CS + \fi + \fi +} + +\vfill + +\ifczech +\mktxt@b{16}{\@keywords@CS}\noindent\@tkeywords@CS +\else + \ifslovak + \mktxt@b{16}{\@keywords@SK}\noindent\@tkeywords@CS + \else + \mktxt@b{16}{\@keywords@EN}\noindent\@tkeywords@EN + \fi +\fi + +\vfill + +\iftoggle{czech_used}{ +\mktxt@b{16}{\@keywords@EN}\noindent\@tkeywords@EN +}{ + \ifslovak + \mktxt@b{16}{\@keywords@EN}\noindent\@tkeywords@EN + \else + \ifenslovak + \mktxt@b{16}{\@keywords@SK}\noindent\@tkeywords@CS + \else + \mktxt@b{16}{\@keywords@CS}\noindent\@tkeywords@CS + \fi + \fi +} + +\vfill + +\mktxt@b{16}{\ifslovak\@cite@SK\else\ifczech\@cite@CS\else\@cite@EN\fi\fi} +\iftoggle{slovak_used}{ + \noindent\MakeUppercase{\@author@s}, \@author@n. \it\@title\rm. Brno, \@year. \@projecttype@SK. \@vut@SK, \@fit@SK. {\@supervisor@SK} {\ifx\undefined\@supervisor@tp\else\@supervisor@tp ~\fi}{\@supervisor@n} {\@supervisor@s}{\ifx\undefined\@supervisor@ta\else,~\@supervisor@ta\fi} +}{ + \noindent\MakeUppercase{\@author@s}, \@author@n. \it\@title\rm. Brno, \@year. \ifczech\@projecttype@CS\else\@projecttype@EN\fi. \ifczech\@vut@CS\else\@vut@EN\fi, \ifczech\@fit@CS\else\@fit@EN\fi. {\ifczech\@supervisor@CS\else\@supervisor@EN\fi} {\ifx\undefined\@supervisor@tp\else\@supervisor@tp ~\fi}{\@supervisor@n} {\@supervisor@s}{\ifx\undefined\@supervisor@ta\else,~\@supervisor@ta\fi} +} +%=================================================== +\newpage + +} + +%Rozsireny abstrakt / Extended abstract +\newcommand\makeextendedabstract{% + %Pro rozšířený abstrakt začínající na liché stránce / For extended abstract starting on the odd page + \newtoggle{extabstract_odd} + \togglefalse{extabstract_odd} + + \ifx\@extabstracto\@empty + \else + \toggletrue{extabstract_odd} + \fi + + \pagestyle{empty}% + \iftwoside + \iftoggle{extabstract_odd}{ + \cleardoublepage + }{} + \fi + \ifenslovak + \mktxt@b{16}{\@extendedabstract@SK}\noindent\@textendedabstract + \else + \mktxt@b{16}{\@extendedabstract@CS}\noindent\@textendedabstract + \fi + \iftwoside + \iftoggle{extabstract_odd}{ + \cleardoublepage + }{ + \newpage + } + \else + \newpage + \fi + \pagestyle{plain} +} + +%----------------------------------------------------------------------------- +% Prohlaseni, podekovani \makedeclaration +% Declaration, acknowledgement \makedeclaration +%----------------------------------------------------------------------------- +\newcommand\makedeclaration{ +\pagestyle{empty}% + + +\iftoggle{long_dectitle}{ + \mktxtl@b{18}{\@dectitlelen}{\@title} +}{ + \mktxt@b{18}{\@title} +} + +\ifx\@declaration\@empty +\else + \vspace{10mm} + \ifslovak + \mktxt@b{16}{\@tdecl@SK} + \else + \mktxt@b{16}{\ifczech\@tdecl@CS\else\@tdecl@EN\fi} + \fi + + \noindent\@declaration + + \begin{flushright} + \makebox[4cm]{\dotfill} \\ + \@author\\ + \@date + \end{flushright} +\fi + +\ifx\undefined\@acknowledgment +\else +\vspace{20mm} +\ifslovak + \mktxt@b{16}{\@tackn@SK} +\else + \mktxt@b{16}{\ifczech\@tackn@CS\else\@tackn@EN\fi} +\fi +\noindent\@acknowledgment +\fi + +\vfill + +%=================================================== +\iftwoside + \cleardoublepage +\else + \newpage +\fi +\pagestyle{plain} +} + +%----------------------------------------------------------------------------- +% Uvodni stranky \maketitle +% Introductory pages \maketitle +%----------------------------------------------------------------------------- +\renewcommand\maketitle{% +\ifcover\makecover\fi% +\thispagestyle{empty}\null% +\iftwoside + \pagestyle{empty}\null% +\fi + +\setlength\parindent{17\p@} +\setlength{\parskip}{0pt} + +%===================================================== +\fontfamily{qhv}\selectfont% +%\newsavebox{\@obrlogo}\newsavebox{\@rtext}\newlength{\@vyskartext}\newlength{\@vyskaobr}% +\newsavebox{\@obrlogo}\newsavebox{\@rtext}\newlength{\@vyskartext}\newlength{\@sirkartext}\newlength{\@vyskaobr}\newlength{\@sirkaobr}% + +\iftoggle{phd_summary}{ + +\ifPrint + \ifBarLogo + \savebox{\@obrlogo}{\hspace*{-0.6cm}\includegraphics[width=2.5cm,keepaspectratio,trim={1.2cm 1.2cm 1.2cm 1.2cm},clip]{template-fig/VUT_symbol_barevne_CMYK_CZ}}%symbol VUT + \else + \savebox{\@obrlogo}{\hspace*{-0.6cm}\includegraphics[width=2.5cm,keepaspectratio,trim={1.2cm 1.2cm 1.2cm 1.2cm},clip]{template-fig/VUT_symbol_cernobile_CZ}}%symbol VUT + \fi +\else + \savebox{\@obrlogo}{\hspace*{-0.6cm}\includegraphics[width=2.5cm,keepaspectratio,trim={1.2cm 1.2cm 1.2cm 1.2cm},clip]{template-fig/VUT_symbol_barevne_CMYK_CZ}}%symbol VUT +\fi + +}{ + +\ifPrint + \ifBarLogo + \savebox{\@obrlogo}{\hspace*{-0.6cm}\includegraphics[width=4.1cm,keepaspectratio,trim={1.2cm 1.2cm 1.2cm 1.2cm},clip]{template-fig/VUT_symbol_barevne_CMYK_CZ}}%symbol VUT + \else + \savebox{\@obrlogo}{\hspace*{-0.6cm}\includegraphics[width=4.1cm,keepaspectratio,trim={1.2cm 1.2cm 1.2cm 1.2cm},clip]{template-fig/VUT_symbol_cernobile_CZ}}%symbol VUT + \fi +\else + \savebox{\@obrlogo}{\hspace*{-0.6cm}\includegraphics[width=4.1cm,keepaspectratio,trim={1.2cm 1.2cm 1.2cm 1.2cm},clip]{template-fig/VUT_symbol_barevne_CMYK_CZ}}%symbol VUT +\fi + +} + +\iftoggle{phd_summary}{ + \savebox{\@rtext}{\vbox{\mkuctxt{16}{\ifslovak\@vut@SK\else\ifczech\@vut@CS\else\@vut@EN\fi\fi}\mkuctxt{9}{\ifczech\@vut@EN\else\ifslovak\@vut@EN\else\@vut@CS\fi\fi}}}%text VUT +}{ + \savebox{\@rtext}{\vbox{\mkuctxt{18}{\ifslovak\@vut@SK\else\ifczech\@vut@CS\else\@vut@EN\fi\fi}\mkuctxt{11}{\ifczech\@vut@EN\else\ifslovak\@vut@EN\else\@vut@CS\fi\fi}}}%text VUT +} + +\settoheight{\@vyskaobr}{\makebox{\usebox{\@obrlogo}}}% vyska loga / logo height +\settowidth{\@sirkaobr}{\makebox{\usebox{\@obrlogo}}}% vyska loga +\settoheight{\@vyskartext}{\makebox{\usebox{\@rtext}}}% vyska textu / text height +\settowidth{\@sirkartext}{\makebox{\usebox{\@rtext}}}% sirka textu / text width +\addtolength{\@vyskaobr}{-\@vyskartext}%odecteme od vysky loga vysku textu / we will subtract text height from logo height +\addtolength{\@sirkartext}{-\@sirkaobr}\addtolength{\@sirkartext}{-10pt}%sirka textu na radku s obrazkem a odsazenim / text width on row with picture and indentation + +\newtoggle{gray_used} +\togglefalse{gray_used} + + +\usebox{\@obrlogo} + +\iftoggle{phd_summary}{ + + \vspace{5mm} + + \iftoggle{slovak_used}{ + \mkuctxtt{16}{\@vut@SK} + \mkuctxtt{9}{\@vut@EN} + }{ + \iftoggle{enslovak_used}{ + \mkuctxtt{16}{\@vut@EN} + \mkuctxtt{9}{\@vut@SK} + }{ + \mkuctxtt{16}{\ifczech\@vut@CS\else\@vut@EN\fi} + \mkuctxtt{9}{\ifczech\@vut@EN\else\@vut@CS\fi} + } + } + + \vspace{5mm} + + \iftoggle{slovak_used}{ + \mkuctxtt{12}{\@fit@SK} + \mkuctxtt{9}{\@fit@EN} + }{ + \iftoggle{enslovak_used}{ + \mkuctxtt{12}{\@fit@EN} + \mkuctxtt{9}{\@fit@SK} + }{ + \mkuctxtt{12}{\ifczech\@fit@CS\else\@fit@EN\fi} + \mkuctxtt{9}{\ifczech\@fit@EN\else\@fit@CS\fi} + } + } + + \vspace{5mm} + + \iftoggle{slovak_used}{ + \mkuctxtt{12}{\@departmentname@SK} + \mkuctxtt{9}{\@departmentname@EN} + }{ + \iftoggle{enslovak_used}{ + \mkuctxtt{12}{\@departmentname@EN} + \mkuctxtt{9}{\@departmentname@SK} + }{ + \mkuctxtt{12}{\ifczech\@departmentname@CS\else\@departmentname@EN\fi} + \mkuctxtt{9}{\ifczech\@departmentname@EN\else\@departmentname@CS\fi} + } + } + +}{ % !phd_summary + + \vspace{10mm} + + \iftoggle{slovak_used}{ + \mkuctxtt{18}{\@vut@SK} + \mkuctxtt{11}{\@vut@EN} + }{ + \iftoggle{enslovak_used}{ + \mkuctxtt{18}{\@vut@EN} + \mkuctxtt{11}{\@vut@SK} + }{ + \mkuctxtt{18}{\ifczech\@vut@CS\else\@vut@EN\fi} + \mkuctxtt{11}{\ifczech\@vut@EN\else\@vut@CS\fi} + } + } + + \vspace{5mm} + + \iftoggle{slovak_used}{ + \mkuctxtt{14}{\@fit@SK} + \mkuctxtt{11}{\@fit@EN} + }{ + \iftoggle{enslovak_used}{ + \mkuctxtt{14}{\@fit@EN} + \mkuctxtt{11}{\@fit@SK} + }{ + \mkuctxtt{14}{\ifczech\@fit@CS\else\@fit@EN\fi} + \mkuctxtt{11}{\ifczech\@fit@EN\else\@fit@CS\fi} + } + } + + \vspace{5mm} + + \iftoggle{slovak_used}{ + \mkuctxtt{14}{\@departmentname@SK} + \mkuctxtt{11}{\@departmentname@EN} + }{ + \iftoggle{enslovak_used}{ + \mkuctxtt{14}{\@departmentname@EN} + \mkuctxtt{11}{\@departmentname@SK} + }{ + \mkuctxtt{14}{\ifczech\@departmentname@CS\else\@departmentname@EN\fi} + \mkuctxtt{11}{\ifczech\@departmentname@EN\else\@departmentname@CS\fi} + } + } + +} % !phd_summary + +\vspace{5mm} + +\vfill + +% Pro název práce na 2 řádky / For the 2-line thesis title +\newtoggle{long_title} +\togglefalse{long_title} + +\ifx\@titlelen\@empty +\else + \toggletrue{long_title} +\fi + +% Pro druhý název práce na 2 řádky / For the 2-line second thesis title +\newtoggle{long_sectitle} +\togglefalse{long_sectitle} + +\ifx\@sectitlelen\@empty +\else + \toggletrue{long_sectitle} +\fi + +% Pro název práce nad prohlášením na 2 řádky / For the 2-line thesis title above declaration +\newtoggle{long_dectitle} +\togglefalse{long_dectitle} + +\ifx\@dectitlelen\@empty +\else + \toggletrue{long_dectitle} +\fi + +\iftoggle{phd_summary}{ + + % Název práce / Thesis title + \iftoggle{long_title}{ + \mkuctxttl{16}{\@titlelen}{\ifslovak\@title@CS\else\ifczech\@title@CS\else\@title@EN\fi\fi} + \iftoggle{long_sectitle}{ + \mkuctxttls{9}{\@sectitlelen}{\ifslovak\@title@EN\else\ifczech\@title@EN\else\@title@CS\fi\fi} + }{ + \mkuctxtt{9}{\ifslovak\@title@EN\else\ifczech\@title@EN\else\@title@CS\fi\fi} + } + }{ + \mkuctxtt{16}{\ifslovak\@title@CS\else\ifczech\@title@CS\else\@title@EN\fi\fi} + \mkuctxtt{9}{\ifslovak\@title@EN\else\ifczech\@title@EN\else\@title@CS\fi\fi} + } + \vfill + + \mkuctxtt{10}{\ifslovak\@projecttype@SK\else\ifczech\@projecttype@CS\else\@projecttype@EN\fi\fi} + \iftoggle{slovak_used}{ + \mkuctxtt{8}{\@projecttype@EN} + }{ + \mkuctxtt{8}{\ifenslovak\@projecttype@SK\else\ifczech\@projecttype@EN\else\@projecttype@CS\fi\fi} + } + + \vspace{3mm} + + \mktxtt{10}{\MakeUppercase{\ifslovak\@author@SK\else\ifczech\@author@CS\else\@author@EN\fi\fi} \hfill \get@author} + \iftoggle{slovak_used}{ + \mkuctxtt{8}{\@author@EN} + }{ + \mkuctxtt{8}{\ifenslovak\@author@SK\else\ifczech\@author@EN\else\@author@CS\fi\fi} + } + + \vspace{3mm} + + \mktxtt{10}{\MakeUppercase{\ifslovak\@supervisor@SK\else\ifczech\@supervisor@CS\else\@supervisor@EN\fi\fi} \hfill \get@supervisor} + \iftoggle{slovak_used}{ + \mkuctxtt{8}{\@supervisor@EN} + }{ + \mkuctxtt{8}{\ifenslovak\@supervisor@SK\else\ifczech\@supervisor@EN\else\@supervisor@CS\fi\fi} + } + + \vspace{8mm} + + \mktxtt{9}{BRNO \@year} + + \iftwoside + \newgeometry{left=1.8cm, text={11.0cm,16.5cm}, top=2.5cm} + \fi + +}{ % !phd_summary + + % Název práce / Thesis title + \iftoggle{long_title}{ + \mkuctxttl{18}{\@titlelen}{\ifslovak\@title@CS\else\ifczech\@title@CS\else\@title@EN\fi\fi} + \iftoggle{long_sectitle}{ + \mkuctxttls{10}{\@sectitlelen}{\ifslovak\@title@EN\else\ifczech\@title@EN\else\@title@CS\fi\fi} + }{ + \mkuctxtt{10}{\ifslovak\@title@EN\else\ifczech\@title@EN\else\@title@CS\fi\fi} + } + }{ + \mkuctxtt{18}{\ifslovak\@title@CS\else\ifczech\@title@CS\else\@title@EN\fi\fi} + \mkuctxtt{10}{\ifslovak\@title@EN\else\ifczech\@title@EN\else\@title@CS\fi\fi} + } + \vfill + + \mkuctxtt{14}{\ifslovak\@projecttype@SK\else\ifczech\@projecttype@CS\else\@projecttype@EN\fi\fi} + \iftoggle{slovak_used}{ + \mkuctxtt{10}{\@projecttype@EN} + }{ + \mkuctxtt{10}{\ifenslovak\@projecttype@SK\else\ifczech\@projecttype@EN\else\@projecttype@CS\fi\fi} + } + + \vspace{5mm} + + \mktxtt{14}{\MakeUppercase{\ifslovak\@author@SK\else\ifczech\@author@CS\else\@author@EN\fi\fi} \hfill \get@author} + \iftoggle{slovak_used}{ + \mkuctxtt{10}{\@author@EN} + }{ + \mkuctxtt{10}{\ifenslovak\@author@SK\else\ifczech\@author@EN\else\@author@CS\fi\fi} + } + + \vspace{5mm} + + \mktxtt{14}{\MakeUppercase{\ifslovak\@supervisor@SK\else\ifczech\@supervisor@CS\else\@supervisor@EN\fi\fi} \hfill \get@supervisor} + \iftoggle{slovak_used}{ + \mkuctxtt{10}{\@supervisor@EN} + }{ + \mkuctxtt{10}{\ifenslovak\@supervisor@SK\else\ifczech\@supervisor@EN\else\@supervisor@CS\fi\fi} + } + + \vspace{10mm} + + \mktxtt{11}{BRNO \@year} + + \iftwoside + \newgeometry{left=3.46cm, text={15.2cm,23.0cm}, top=2.96cm} + \fi + +} % !phd_summary + +%zadani / assignment +\iftoggle{zadaniTwop}{ + \cleardoublepage + \includepdf[pages=-,offset=-0.1cm -0.2cm]{zadani.pdf} + %\ifzadani\includepdf[pages=-,offset=0.6cm -1.7cm]{assignment.pdf}\fi +}{ + \ifzadani + \includepdf[pages=-,offset=0.6cm -1.7cm]{zadani.pdf} + %\ifzadani\includepdf[pages=-,offset=0.6cm -1.7cm]{assignment.pdf}\fi + \fi +} + + +\ifODSAZ + \setlength{\parindent}{0pt} + \setlength{\parskip}{0.5\bigskipamount} +\else + \setlength\parindent{17\p@} + \setlength{\parskip}{0pt} +\fi + +\iftwoside + \cleardoublepage + \pagestyle{plain} +\else + \newpage +\fi +\fontfamily{\familydefault}\selectfont% + +%================================================================================= +\makeabstract +\ifx\@textendedabstract\@empty +\else + \makeextendedabstract +\fi + +\newtoggle{declaration_page} +\togglefalse{declaration_page} +\ifx\@declaration\@empty +\else + \toggletrue{declaration_page} +\fi +\ifx\undefined\@acknowledgment +\else + \toggletrue{declaration_page} +\fi +\iftoggle{declaration_page}{ + \makedeclaration +}{} + +\clearpage +\setcounter{tocdepth}{2}\setcounter{page}{1} +} + +%----------------------------------------------------------------------------- +\def\uv#1{\iflanguage{english}{``#1''}% + {\quotedblbase #1\textquotedblleft}}% +%\catcode`\"=\active +%\def"{\bgroup +% \iflanguage{english}% +% {``\def"{''\egroup}}% +% {\quotedblbase\def"{\textquotedblleft\egroup}}} + +% Now, switch on what is appropriate for czech: + +% czech quotation marks +% \bq - begin quotation, \eq - end quotation +\def\bq{\mbox{\kern.1ex\protect\raisebox{-1.3ex}[0pt][0pt]{''}\kern-.1ex}} +\def\eq{\mbox{\kern-.1ex``\kern.1ex}} +%\setlanguage{\czech} + +{% % Begin a group for which " is active +\catcode`\"=\active % Make " an active character +\catcode`\@=11 % Make @ an active character +% +% \csdoublequoteson +% +% This macro makes " an active character, resets the control sequence +% \dblqu@te to L (left), and defines \dq as a replacement for ". +% +\gdef\csdoublequoteson{% % \csdoublequoteson enables " + \gdef"{\czechquotes}% % Define " as \czechquotes + \global\catcode`\"=\active% % Make " an active character + \global\chardef\dq=`\"% % Double-quote char. via \dq + \global\let\dblqu@te=L% % Always start with a left double-quote + } % End of macro +% +% \bq, \eq +% +% These macros define default characters for czech left and right +% double quotes. Czech opening quote is created from two commas with +% kerning depending on fontdimen four parameter of current font. +% Better solution should be specially designed character with +% proper kernings; if you have such characters in fonts +% (e.g. in DC-fonts), use it instead. (e.g. define +% macros \bq and \eq e.g. \def\bq{\char"130 } +% in your document/style file-- not in csquote.sty!) +% Similar solution is used for czech right quote. +% +% \cs existence test, stolen from TeXbook exercise 7.7 +\def\ifundefined#1{\expandafter\ifx\csname#1\endcsname\relax }% +% +% another macro to be more efficient in time and space +\global\chardef\f@@r=4 +% +\ifundefined{bq}% +\gdef\bq{\kern-.25\fontdimen\f@@r\font,\kern-.8\fontdimen\f@@r\font,% + \kern-.35\fontdimen\f@@r\font}% +\fi +\ifundefined{eq}% +\gdef\eq{\kern-.35\fontdimen\f@@r\font`\kern-.8\fontdimen\f@@r\font`% + \kern-.25\fontdimen\f@@r\font} +\fi +% +% Macro \uv for other usage of \bq and \eq. +% +\ifundefined{uv}\iflanguage{czech}% + \gdef\uv#1{\bq #1\eq} +\fi +% +% \testquotes macro gives warning if citation span this place +% +\gdef\testquotes{\if R\dblqu@te + \message{Warning: You forgot right double quote!}% + \let\dblqu@te=L\fi} +% +% Define the macro that will be executed whenever " is encountered. +% +\gdef\czechquotes{\protect\czechqu@tes} +\gdef\czechqu@tes{% + % If the double-quote is the first character in a new paragraph, + % make sure it becomes a left double-quote. This case can be + % detected by checking to see if TeX is currently in vertical mode. + % If so, the double-quote is at the beginning of the paragraph + % (since " hasn't actually generated any horizontal mode tokens + % yet, TeX is still in vertical mode). If the mode is vertical, + % set \dblqu@te equal to L. + % + \ifinner\else\ifvmode\testquotes\fi\fi% + % + % Now insert the appropriate left or right double-quote. + % + % If \dblqu@te is L, insert an opening quote and set \dblqu@te to R. + % + \if L\dblqu@te\bq\global\let\dblqu@te=R% + % + % Otherwise, save the current \spacefactor, insert '', set \dblqu@te + % to L, and reset the original \spacefactor. + % + \else% + \let\xxx=\spacefactor% % Save the \spacefactor + \eq% % Insert ending quote + \global\let\dblqu@te=L% % and reset \dblqu@te + \spacefactor\xxx% % Reset the \spacefactor + \fi% % End of \if L\dblqu@te... + } % End of " macro +} % End of group + +\gdef\csdoublequotesoff{% + \catcode`\"=12% % Set " back to other + } +% +% Czech quotes are default +% +\csdoublequoteson + +% Zarovnání v seznamu typu description +% Alignment in description list +% http://tex.stackexchange.com/questions/7008/change-hanging-indent-in-description-list +\makeatletter +\newcommand{\DESCRIPTION@original@item}{} +\let\DESCRIPTION@original@item\item +\newcommand*{\DESCRIPTION@envir}{DESCRIPTION} +\newlength{\DESCRIPTION@totalleftmargin} +\newlength{\DESCRIPTION@linewidth} +\newcommand{\DESCRIPTION@makelabel}[1]{\llap{#1}}% +\newcommand{\DESCRIPTION@item}[1][]{% + \setlength{\@totalleftmargin}% + {\DESCRIPTION@totalleftmargin+\widthof{\textbf{#1 }}-\leftmargin}% + \setlength{\linewidth} + {\DESCRIPTION@linewidth-\widthof{\textbf{#1 }}+\leftmargin}% + \par\parshape \@ne \@totalleftmargin \linewidth + \DESCRIPTION@original@item[\textbf{#1}]% +} +\newenvironment{DESCRIPTION} + {\list{}{\setlength{\labelwidth}{0cm}% + \let\makelabel\DESCRIPTION@makelabel}% + \setlength{\DESCRIPTION@totalleftmargin}{\@totalleftmargin}% + \setlength{\DESCRIPTION@linewidth}{\linewidth}% + \renewcommand{\item}{\ifx\@currenvir\DESCRIPTION@envir + \expandafter\DESCRIPTION@item + \else + \expandafter\DESCRIPTION@original@item + \fi}} + {\endlist} +\makeatother + + +% Balíčky +% Packages +\usepackage[czech,slovak,english]{babel} +\usepackage[]{opensans} +\usepackage{float} +\usepackage{calc} +\usepackage{longtable,booktabs} +\usepackage{xcolor,colortbl} +\usepackage{multirow} +\usepackage{tabularx} +\usepackage{graphicx} +\usepackage{url} +\DeclareUrlCommand\url{\def\UrlLeft{<}\def\UrlRight{>} \urlstyle{tt}} +\def\UrlBreaks{\do\/\do-} + +\usepackage{blindtext} +\usepackage{listings} +\usepackage[toc,page,header]{appendix} +\RequirePackage{titletoc} +\ifczech + \usepackage{ae} +\fi + +%-------------------------------------------------------- +% Oprava pro Čechy a Slováky -- vyžaduje aktuální balíčky! +% Fix for CZECH and SLOVAK -- needs up to date packages! +% http://tex.stackexchange.com/questions/111999/slovak-and-czech-babel-gives-problems-with-cmidrule-and-cline +%-------------------------------------------------------- +\usepackage{regexpatch} +%\ifczechslovak + \makeatletter + % Change the `-` delimiter to an active character + %\xpatchparametertext\@@@cmidrule{-}{\cA-}{}{} + %\xpatchparametertext\@cline{-}{\cA-}{}{} + \begingroup + \toks0=\expandafter{\@cline{#1}-{#2}\@nil} + \@ifpackageloaded{booktabs}{% + \toks2=\expandafter{\@@@cmidrule[{#1}-{#2}]{#3}{#4}}% + }{} + \catcode`-=\active + \edef\x{\gdef\unexpanded{\@cline#1-#2\@nil}{\the\toks0}}\x + \@ifpackageloaded{booktabs}{% + \edef\x{\gdef\unexpanded{\@@@cmidrule[#1-#2]#3#4}{\the\toks2}}\x + }{} + \endgroup + \makeatother +%\fi + +\ifczechslovak + \renewcommand{\lstlistingname}{Výpis} %Výpis místo Listing +\fi + + +% BEGIN Jan Pluskal (ipluskal) listings + +\definecolor{bluekeywords}{rgb}{0.13,0.13,1} +\definecolor{greencomments}{rgb}{0,0.5,0} +\definecolor{redstrings}{rgb}{0.9,0,0} + +\definecolor{gray}{rgb}{0.4,0.4,0.4} +\definecolor{darkblue}{rgb}{0.0,0.0,0.6} +\definecolor{cyan}{rgb}{0.0,0.6,0.6} + +\lstset{ + basicstyle=\ttfamily, + columns=fullflexible, + showstringspaces=false, + commentstyle=\color{gray}\upshape, + captionpos=b +} + +\lstdefinestyle{csh}{language=[Sharp]C, + showspaces=false, + showtabs=false, + breaklines=false, + showstringspaces=false, + breakatwhitespace=true, + escapeinside={(*@}{@*)}, + commentstyle=\color{greencomments}, + keywordstyle=\color{bluekeywords}, + stringstyle=\color{redstrings}, + basicstyle=\ttfamily, + captionpos=b, + numbers=left, + frame=single, +} + +\lstdefinelanguage{XML} +{ + morestring=[b]", + morestring=[s]{>}{<}, + morecomment=[s]{}, + stringstyle=\color{black}, + identifierstyle=\color{darkblue}, + keywordstyle=\color{cyan}, + morekeywords={xmlns,version,type} % list your attributes here +} + +\lstdefinestyle{npl}{language=c, + showspaces=false, + showtabs=false, + breaklines=true, + showstringspaces=false, + breakatwhitespace=true, + escapeinside={(*@}{@*)}, + commentstyle=\color{greencomments}, + keywordstyle=\color{bluekeywords}, + stringstyle=\color{redstrings}, + basicstyle=\ttfamily, + captionpos=b, + numbers=left, + frame=single, + morekeywords={UINT8, UINT16, UINT32, INT8, INT16, INT32, Post, Properties, Protocol, AsciiString, String, StringTerm, BLOB, FormatString, this}, +} + + +\lstdefinestyle{c++}{language=c, + showspaces=false, + showtabs=false, + breaklines=true, + showstringspaces=false, + breakatwhitespace=true, + escapeinside={(*@}{@*)}, + commentstyle=\color{greencomments}, + keywordstyle=\color{bluekeywords}, + stringstyle=\color{redstrings}, + basicstyle=\ttfamily, + captionpos=b, + numbers=left, + frame=single, + morekeywords={UINT8, UINT16, UINT32, INT8, INT16, INT32, Post, Properties, Protocol, AsciiString, String, StringTerm, BLOB, FormatString, this}, +} + +%END Jan Pluskal (ipluskal) listings + + +% Příkazy pro TODO (3 alternativy - lze zvolit preferovanou) +% commands for TODO (3 alternatives - preferred one can be selected) +\newcommand{\todo}[1]{\textcolor{red}{\textbf{[[#1]]}}} +%\usepackage[colorinlistoftodos,prependcaption,textsize=tiny, disable]{todonotes} +%\usepackage[colorinlistoftodos,prependcaption,textsize=tiny]{todonotes} + +\newcommand{\phony}[1]{\textcolor{gray}{#1}} +\newcommand{\blind}[1]{\textcolor{gray}{\Blindtext[#1]}} + + +% Sloupec zarovnaný vlevo s pevnou šířkou +% Left aligned column with a fixed width +\newcolumntype{L}[1]{>{\RaggedRight\hspace{0pt}}p{#1}} + + +\endinput +%% +%% End of file `fitthesis.cls'. diff --git a/latex_verze/obrazky-figures/keep-calm.png b/latex_verze/obrazky-figures/keep-calm.png new file mode 100644 index 0000000..4f51fbf Binary files /dev/null and b/latex_verze/obrazky-figures/keep-calm.png differ diff --git a/latex_verze/obrazky-figures/placeholder.pdf b/latex_verze/obrazky-figures/placeholder.pdf new file mode 100644 index 0000000..e3b2472 Binary files /dev/null and b/latex_verze/obrazky-figures/placeholder.pdf differ diff --git a/latex_verze/template-fig/VUT_symbol_barevne_CMYK_CZ.eps b/latex_verze/template-fig/VUT_symbol_barevne_CMYK_CZ.eps new file mode 100644 index 0000000..abf35a7 Binary files /dev/null and b/latex_verze/template-fig/VUT_symbol_barevne_CMYK_CZ.eps differ diff --git a/latex_verze/template-fig/VUT_symbol_barevne_CMYK_CZ.pdf b/latex_verze/template-fig/VUT_symbol_barevne_CMYK_CZ.pdf new file mode 100644 index 0000000..68d32e6 --- /dev/null +++ b/latex_verze/template-fig/VUT_symbol_barevne_CMYK_CZ.pdf @@ -0,0 +1,1555 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + VUT_symbol_barevne_CMYK_CZ + + + + + 2015-09-21T11:46:42+02:00 + 2015-09-21T11:46:42+02:00 + 2015-09-21T11:46:42+02:00 + Adobe Illustrator CS6 (Macintosh) + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8Ahmad9wdirsVdirsVdirs VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVTiDyb5vuII54ND1CaCZRJFLHazsjowqrKwWhBG4IyQxy7i4cu0dNEkHJAEf0h+tf /gbzt/1L+pf9Ic//ADRh8OXcWP8AKel/1XH/AKaP63f4G87f9S/qX/SHP/zRj4cu4r/Kel/1XH/p o/rd/gbzt/1L+pf9Ic//ADRj4cu4r/Kel/1XH/po/rd/gbzt/wBS/qX/AEhz/wDNGPhy7iv8p6X/ AFXH/po/rd/gbzt/1L+pf9Ic/wDzRj4cu4r/ACnpf9Vx/wCmj+t3+BvO3/Uv6l/0hz/80Y+HLuK/ ynpf9Vx/6aP63f4G87f9S/qX/SHP/wA0Y+HLuK/ynpf9Vx/6aP63f4G87f8AUv6l/wBIc/8AzRj4 cu4r/Kel/wBVx/6aP63f4G87f9S/qX/SHP8A80Y+HLuK/wAp6X/Vcf8Apo/rSaSOSKRo5FKSISro wIYMDQgg9CMg5oIIscluKXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX2D5G /wCUJ8v/APbNs/8AkwmbXH9I9z472n/jWX/hkv8AdFO8m4LsVdirsVdirsVdirsVdir4z8w/8d/U v+Yqf/k42ad9o0n9zD+qPuS/FyHYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F X2D5G/5Qny//ANs2z/5MJm1x/SPc+O9p/wCNZf8Ahkv90U7ybguxV2KuxV2KuxV2KuxV2KvjPzD/ AMd/Uv8AmKn/AOTjZp32jSf3MP6o+5L8XIdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVfYPkb/lCfL//AGzbP/kwmbXH9I9z472n/jWX/hkv90U7ybguxV2KuxV2KuxV2KuxV2Kv jPzD/wAd/Uv+Yqf/AJONmnfaNJ/cw/qj7kvxch2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV7RoH/OQFhpehadpjaNLK1jaw2zSiZQGMMapyA4GleOZUdUQKr7XitV7KTy5Z5PEA 4pE8u833o/8A6GS07/qxzf8AI9f+aMP5s932/saP9Bs/9UH+l/a7/oZLTv8Aqxzf8j1/5ox/Nnu+ 39i/6DZ/6oP9L+13/QyWnf8AVjm/5Hr/AM0Y/mz3fb+xf9Bs/wDVB/pf2u/6GS07/qxzf8j1/wCa MfzZ7vt/Yv8AoNn/AKoP9L+13/QyWnf9WOb/AJHr/wA0Y/mz3fb+xf8AQbP/AFQf6X9rv+hktO/6 sc3/ACPX/mjH82e77f2L/oNn/qg/0v7Xf9DJad/1Y5v+R6/80Y/mz3fb+xf9Bs/9UH+l/a7/AKGS 07/qxzf8j1/5ox/Nnu+39i/6DZ/6oP8AS/td/wBDJad/1Y5v+R6/80Y/mz3fb+xf9Bs/9UH+l/ap 3f8Azjx+kLqa/wD8Qel9bdp/T+p8uPqkvxr64rSvhiNLY5px+13hxEPCvhFfV3f5ql/0LT/38f8A 05f9f8P5TzZ/6M/9q/2f/HXf9C0/9/H/ANOX/X/H8p5r/oz/ANq/2f8Ax13/AELT/wB/H/05f9f8 fynmv+jP/av9n/x13/QtP/fx/wDTl/1/x/Kea/6M/wDav9n/AMdd/wBC0/8Afx/9OX/X/H8p5r/o z/2r/Z/8dd/0LT/38f8A05f9f8fynmv+jP8A2r/Z/wDHXf8AQtP/AH8f/Tl/1/x/Kea/6M/9q/2f /HXf9C0/9/H/ANOX/X/H8p5r/oz/ANq/2f8Ax13/AELT/wB/H/05f9f8fynmv+jP/av9n/x13/Qt P/fx/wDTl/1/x/Kea/6M/wDav9n/AMdSjzb+RP8Ah7y5faz+nPrX1NA/ofVfT5VYLTl6z0+14ZXk 0/DG7czQe1H5jNHF4fDxdeK/968ozHesdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs Vdir7Xs/95IP+Ma/8RGbaPIPiWT6j71XJMHYq7FXYq7FXYq7FXYq7FXYqxH82/8AyXWt/wDGFP8A k6mUan6D8Pvdx2B/juP3/oL5RzXPrDsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs Vfa9n/vJB/xjX/iIzbR5B8SyfUfeq5Jg7FXYq7FXYq7FXYq7FXYq7FWI/m3/AOS61v8A4wp/ydTK NT9B+H3u47A/x3H7/wBBfKOa59YdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir7 Xs/95IP+Ma/8RGbaPIPiWT6j71XJMHYq7FXYql+qeYdC0lQdT1C2suX2RPKkZPyDEE/RkJTiOZcj BpMuX+7jKXuFpR/ys78v/wDq+2v/AAf9mQ/MQ73M/kTWf6nJ3/Kzvy//AOr7a/8AB/2Y/mId6/yJ rP8AU5O/5Wd+X/8A1fbX/g/7MfzEO9f5E1n+pyd/ys78v/8Aq+2v/B/2Y/mId6/yJrP9Tk7/AJWd +X//AFfbX/g/7MfzEO9f5E1n+pyYz+Zfn7ybqPkbVrKx1e3uLuaJVihRqsxEinbbwGVZ80ZRIBdn 2N2VqceqhKcJCIPP4F84ZhPpLsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVfa9n /vJB/wAY1/4iM20eQfEsn1H3quSYOxV2KvGfzZ/OK5sLuby/5ckCXMJKX2oChKN3ii7ch+03Y7Df MLPnN0HtOwfZ6OSIzZx6T9Mf0n9AeG3FxPcTPPcSPNPIeUksjFmYnuWNScxHuoQERQFAKeLJ2Kux V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kvtez/3kg/4xr/xEZto 8g+JZPqPvVckwdiqS+dNZk0XypquqRbTW1u7QHqBKRxjJ/2ZGV5ZcMSXN7O0wzaiGM8pSF+7r9j4 +d3kdndizsSzMxqSTuSSc1b7EAAKDWKXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FX2vZ/wC8kH/GNf8AiIzbR5B8SyfUfeq5Jg7FWI/m3/5LrW/+MKf8nUyj U/Qfh97uOwP8dx+/9BfKOa59YdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd irsVdirsVdirsVdir7Xs/wDeSD/jGv8AxEZto8g+JZPqPvVckwdirEfzb/8AJda3/wAYU/5OplGp +g/D73cdgf47j9/6C+Uc1z6w7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FX2vZ/7yQf8Y1/4iM20eQfEsn1H3quSYOxViP5t/8Akutb/wCMKf8AJ1Mo1P0H 4fe7jsD/AB3H7/0F8o5rn1h2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2Kvtez/3kg/4xr/xEZto8g+JZPqPvVckwdirEfzb/wDJda3/AMYU/wCTqZRqfoPw +93HYH+O4/f+gvlHNc+sOxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV9r2f+8kH/GNf+IjNtHkHxLJ9R96rkmDsVYj+bf8A5LrW/wDjCn/J1Mo1P0H4fe7j sD/Hcfv/AEF8o5rn1h2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2Kvtez/3kg/4xr/xEZto8g+JZPqPvVckwdirEfzb/APJda3/xhT/k6mUan6D8Pvdx2B/j uP3/AKC+Uc1z6w7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FX2vZ/7yQf8AGNf+IjNtHkHxLJ9R96rkmDsVYj+bf/kutb/4wp/ydTKNT9B+H3u47A/x3H7/ ANBfKOa59YdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd ir7Xs/8AeSD/AIxr/wARGbaPIPiWT6j71XJMHYqxH82//Jda3/xhT/k6mUan6D8Pvdx2B/juP3/o L5RzXPrDsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVf a9n/ALyQf8Y1/wCIjNtHkHxLJ9R96rkmDsVYj+bf/kutb/4wp/ydTKNT9B+H3u47A/x3H7/0F8o5 rn1h2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kvtez/ AN5IP+Ma/wDERm2jyD4lk+o+9VyTB2KsR/Nv/wAl1rf/ABhT/k6mUan6D8Pvdx2B/juP3/oL5RzX PrDsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVfa9n/v JB/xjX/iIzbR5B8SyfUfeq5Jg7FWI/m3/wCS61v/AIwp/wAnUyjU/Qfh97uOwP8AHcfv/QXyjmuf WHYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq+17P/eS D/jGv/ERm2jyD4lk+o+9VyTB2KsR/Nv/AMl1rf8AxhT/AJOplGp+g/D73cdgf47j9/6C+Uc1z6w7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX0rb/nr+Xy W8SNcXHJUVT+4fqBTM6OqiB1fM5+y+sJJqPzVP8AlfH5ef8ALRcf8iHw/mo+bH/QtrO6P+md/wAr 4/Lz/louP+RD4/mo+a/6FtZ3R/0zH/P/AOb/AJK1ryfqel2E8zXd1GqxK0LKCQ6tuT7DKs2cSjQd h2V7P6rDqYZJgcMT3+TwbMV752KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV 2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV/ /9k= + + + + + + uuid:d9b55930-cbcb-ed45-b985-a4aee91d927a + xmp.did:4A5E3F701520681188C68CFC782F358D + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + xmp.iid:B23E975020206811822A831E66324EB2 + xmp.did:B23E975020206811822A831E66324EB2 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + + + + saved + xmp.iid:01801174072068118083ACEEA6F111F9 + 2015-06-01T12:00:44+02:00 + Adobe Illustrator CS6 (Macintosh) + / + + + saved + xmp.iid:B23E975020206811822A831E66324EB2 + 2015-06-23T23:11:18+02:00 + Adobe Illustrator CS6 (Macintosh) + / + + + converted + from application/postscript to application/vnd.adobe.illustrator + + + converted + from application/postscript to application/vnd.adobe.illustrator + + + saved + xmp.iid:4A5E3F701520681188C68CFC782F358D + 2015-09-21T11:46:40+02:00 + Adobe Illustrator CS6 (Macintosh) + / + + + + + + Print + + + False + False + 1 + + 58.741634 + 58.299973 + Millimeters + + + + Magenta + Yellow + + + + + + Výchozí skupina vzorků + 0 + + + + Bílá + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Černá + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK červená + CMYK + PROCESS + 0.000000 + 93.000000 + 79.000000 + 0.000000 + + + CMYK žlutá + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK zelená + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK azurová + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK modrá + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK purpurová + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + R=228 G=0 B=43 + CMYK + PROCESS + 8.425999 + 93.444702 + 67.586800 + 1.315302 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000004 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000001 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 19.999998 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 10.000002 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000002 + 95.000000 + 30.000002 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000002 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 14.999998 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000001 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000004 + 100.000000 + 35.000004 + 10.000002 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000002 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 19.999998 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 39.999996 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 39.999996 + 45.000000 + 50.000000 + 5.000001 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000004 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000004 + 65.000000 + 39.999996 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 39.999996 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000002 + 50.000000 + 75.000000 + 10.000002 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000004 + 60.000004 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 39.999996 + 65.000000 + 90.000000 + 35.000004 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 39.999996 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + PANTONE 185 C + SPOT + 100.000000 + LAB + 49.803898 + 77 + 49 + + + PANTONE 185 C 2 + PROCESS + 100.000000 + CMYK + 0.000000 + 93.000000 + 79.000000 + 0.000000 + + + + + + Šedé + 1 + + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999405 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998795 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999702 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999104 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999401 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998802 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999701 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999103 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998803 + + + + + + Světlé + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000002 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000004 + 90.000000 + 0.003099 + 0.003099 + + + + + + + + + Adobe PDF library 10.01 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/Properties<>>>/Thumb 11 0 R/TrimBox[0.0 0.0 166.512 165.26]/Type/Page>> endobj 8 0 obj <>stream +HlMj@ :.`YOh<۸B=@$)?Dv2͛ANo&Ĥcy9:3B"ZdOyH` [ߕTԙ c&!q|ΐٸ^}|Gzmhe"C endstream endobj 11 0 obj <>stream +8;Xp,Sbca?oKBhF(b.F`2\LeCgC98HWg\`?#<)iY*QTK[F#p=H?r[JT@$@6?RQ;.0 +_/=nRpsalM[2V`uo`pY@aUBsB!"8k.UcAt~> endstream endobj 12 0 obj [/Indexed/DeviceRGB 255 13 0 R] endobj 13 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 5 0 obj <> endobj 14 0 obj [/View/Design] endobj 15 0 obj <>>> endobj 10 0 obj <> endobj 9 0 obj <> endobj 16 0 obj <> endobj 17 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 16.0 %%AI8_CreatorVersion: 16.0.0 %%For: (Klara) () %%Title: (VUT_symbol_barevne_CMYK_CZ.eps) %%CreationDate: 21.09.15 11:46 %%Canvassize: 16383 %%BoundingBox: 937 -342 1037 -242 %%HiResBoundingBox: 937.7168 -341.3555 1036.9277 -242.1436 %%DocumentProcessColors: Magenta Yellow %AI5_FileFormat 12.0 %AI12_BuildNumber: 682 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBCustomColor: 0.922763 0 0.160076 (PANTONE 185 C) %%CMYKProcessColor: 0 0.93 0.79 0 (PANTONE 185 C 2) %%+ 1 1 1 1 ([Registrační]) %AI3_Cropmarks: 904.0664 -374.3789 1070.5781 -209.1191 %AI3_TemplateBox: 421.5 -298.5 421.5 -298.5 %AI3_TileBox: 584.3223 -571.249 1367.3223 -12.249 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 1 %AI9_ColorModel: 2 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI9_OpenToView: 836 -204 4.34 1820 1125 18 0 0 59 213 0 0 0 1 1 0 1 1 0 1 %AI5_OpenViewLayers: 7 %%PageOrigin:115 -694 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 18 0 obj <>stream +%%BoundingBox: 937 -342 1037 -242 %%HiResBoundingBox: 937.7168 -341.3555 1036.9277 -242.1436 %AI7_Thumbnail: 128 128 8 %%BeginData: 31798 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8D8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58D8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D93B58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB593B08DB08DB08DB08DB08DB08DB0 %8DB08DB08DB08DB08DB08DB08DB08DB08DB08DB08DB08DB08DB08DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58D8D938DB58D938DB58D938DB58D938DB58D938DB099C3A0C3A0 %C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A0 %C3A0C3A0C3938D8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB5B58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DC9FD27FFC28DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB0A1FD27FF9AB08DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DC9FD27FFC28DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58D938DB58D938DB58D %938DB58D938DB58D8DA0FD27FF99B08D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D93B58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DC9FD27FFC28DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58D %B58DB58DB58DB58DB58DB58D8DA0FD27FF9AB08DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DC3FD27FFBC8DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8D938D %B58D938DB58D938DB58D938DB58D938DB0A0FD27FF9A8D8DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5B5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DC3FD27FFBC8DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB0A1FD27FF9AB08DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DC9FD27FFC28DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58D8DB58D938DB58D938DB58D938DB58D938DB58D8DA0FD27FF99 %B08D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DC9FD27 %FFC28DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DA0 %FD27FF9AB593B58DB593B58DB593B58DB593B58DB593B58DB593B58DB593 %B58DB593B58DB593B58DB593B58DB593B58DB593B58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB693BC93BC93BC93BC93BC93BC93BC93BC93BC93BC93BC93BC93BC93BC %93BC93BC93BC93BC93BC99FD2FFF93B58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58D8D938DB58D938DB58D938DB58D938DB58D938DB58D8D8CB08D %8D8CB08D8D8CB08D8D8CB08D8D8CB08D8D8CB08D8D8CB08D8D8CB08D8D8C %B08D8D8CB0CAFD2EFFBC8D938DB58D938DB58D938DB58D938DB58D938DB5 %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB593 %FD2FFFB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5CAFD2EFFBC8D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD2FFF93B58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58D8DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58DB5A8FD2EFFBC8CB58D938DB58D938DB58D93 %8DB58D938DB58D93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DFD2FFF93B58DB58DB58DB58DB58DB58DB58DB58DB58D %B58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB5CAFD2EFFBC8CB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB593FD2FFF %93B08DB58DB58DB58DB58DB58DB58DB58DB58DB58D8D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938CB5CAFD2DFFCABC8D938D %B58D938DB58D938DB58D938DB58D938DB5B58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB593FD2FFFB5B58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB5CAFD2EFFBC8DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DFD2FFF93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58DB5 %A8FD14FFCFA1C299BC9ABC99BC9ABC99BC9ABC99BC9ABC99BC9ABC99BC9A %B58DB58D938DB58D938DB58D938DB58D938DB58D93B58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD13FFCAC28DB08DB5 %8DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB08DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB5CAFD11FFA1B08CB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB593FD11FFC2B08DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8D8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938C %B5CAFD0FFFA18D8CB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5B58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB593FD10FF %BC8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5CAFD0EFFC98CB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD0FFF9AB08DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58D8DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58DB5A8FD0EFFBC8CB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93 %8DB58D938DB58D938DB58D93B58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DFD0FFF93B58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB5CAFD0EFFBC8CB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB593FD0FFF93B08DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8D8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938C %B5CAFD0DFFCABC8D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5B5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB593FD %0FFFB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5CAFD0EFFBC %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD0FFF93B58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58D938DB58D938DB58D93 %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58DB5A8FD0EFFBC8CB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D93B58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DFD0FFF93B58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB5CAFD0EFFBC8CB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB593FD0FFF93B08DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58D8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93 %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938CB5CAFD0DFFCABC8D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93 %8DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B593FD0FFFB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5CAFD %0EFFBC8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD0FFF93B5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58DB5A8FD0EFFBC8CB58D93 %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D93B58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DFD0FFF93B58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB5CAFD0EFFBC8CB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB593FD0FFF93B08DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58D8D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938CB5CAFD0DFFCABC8D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB593FD0FFFB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B5CAFD0EFFBC8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD0F %FF93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93 %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58DB5A8FD0EFFBC8C %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D93B58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD0FFF93B58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB5CAFD0EFFBC8CB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB593FD0FFF93B08DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58D8D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93 %8DB58D938DB58D938CB5CAFD0DFFCABC8D938DB58D938DB58D938DB58D93 %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB593FD0FFFB5B58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB5CAFD0EFFBC8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DFD0FFF93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58DB5A8FD0E %FFBC8CB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93 %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93B58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD0FFF93B58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5CAFD0EFFBC8CB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB593FD0FFF93B08DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58D8D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938CB5CAFD0DFFCABC8D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB593FD0FFFB5B58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB5CAFD0EFFBC8DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DFD0FFF93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58DB5 %A8FD0EFFBC8CB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93B58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD0FFF %93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5CAFD0EFFBC8CB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB593FD0FFF93B08DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58D8D938DB58D938DB58D938DB58D93 %8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938CB5CAFD0DFFCABC8D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93 %8DB58D938DB58D938DB58D938DB5B58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB593FD0FFFB5B58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB5CAFD0EFFBC8DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DFD0FFF93B58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58D8DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58DB5A8FD0EFFBC8CB58D938DB58D938DB58D938DB58D938DB58D938DB5 %8D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93 %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %FD0FFF93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5CAFD0EFF %BC8CB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DFD0FCA93B58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58D8D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D8D8CB58D8D8CB58D8D8C %B58D8D8CB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB5B58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D93B5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D93B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB5B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58D8DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D %B58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5B58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB5 %8DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58DB58D8D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D %938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938DB58D938D %B58D938DB58D93 %%EndData endstream endobj 19 0 obj <>stream +HWn} ~4d6\NP0VڔeWK;;7/3s)eqT$%jx?̜93wWoQivUS9>ɸW{E׵+Ϟd ڶbxZGmY*YwWя|Zw>ٓlou5TgiqWw[b;ѵ=~~gE_̗/&;]}2b̀r?۞gۃpLM]۶N񱿪Rm51.lX{ 5vXhi5 UolvoAU[V% aJ<.oLX)Ϊwx]˃x R-!}w%np憻+Yq׿?+OG^<[X)7}yu:_qDe$],_;~ ׭qp4ǿi3Gpi"7KϪk{凷x6.aAi'b3=]ơo֞yg|[t\_3$صvusUpE;ByƫV㲿\۳v/z6alq=d~,W8i]{X^ذvʥxzZ{<Ԗcy6isVuW{.#ڽw|WI[`ti;p߁f | =w3p =wm.eYv(L֍dE_y3yn&Ι\ [[nz +# +m9i>4ZգWNj:-٬eaC( ^Aycڡ +5WWL75,d6.?|m@˦llr6ȋ=pWuYp +ϰ_Ն#Ck0U]/>c;d+<=컇|;kgc{8-3۪wfZE k'Q3kxzZ#`Nk"נlxOf2mVN]ո+{zYy}??z9oܢ?W}W -Fl$8ϗvuE[LOצnvzڌ;y?˛#[o;yNno^JRdMS#:OˏU͔0髣q3|lA'σ~L/ L3h_{J1H)(C6Чեe }ٮv ]&rI?{^jr+~O\YS6⃒2BU2'^ٞMd̝`r/Z"1;č.f{:)udq927V*2設]@&&ɍ't}:[Fr88 +̥wQtEn M[t&}-飍ٻZ |SE -," ո  ε0(Q(>+JEڂQWLqtpl}DtX~Isa$[,L* +NdZBI,G,.齧cjrMn s!Ǎw)ZhO+t2WspFKP/U\-S2iAQS@"~Q*rvB8f %`j)&NަvX͗GRѨI5b˴:U@kB8\Ff9Es-(>T"أk +gwp"֑ae06H;Z6i`Q9;~@+@]d51i7qHO1HU*C +w(Wlbsm6AĢ]pF"!JL'uԚ:(l^q 'Sg[p2" Ov#*_@,JM).l!YH+ + RY"N RZ@ +B& +P#,`b Lŭ38$Q +1izN'eg9#bADr nsW B@_Fd6d'h=H!&ڧm)Oa\攦碋Ѕn;ǘ=ni%ʥ6 [J&,x, }JDs穃 FA1 w ":t+btW(&u +jXѥ S_TynyS4D%ؤ<{!#.D h92NJM[S#Q4![ g* z35P#yn=d/E1s8fy;4'Fbz 40#Q4b@4(rgQC`:H@qNhh24~ъ?9^ 't1/6]q]嗅-P< +87Z.7:Ho2_Bz8 Rr3۾sMKTb_ 81|IYaUBBgT1 ߑ+67dz[|3fUiN]#w.E|@ɯ='rE[ ]X/ՉR<\ɇoKfhmn<S^pכXG;ydQt=0v|I: TT^7*Z nuHZRqwP?] $iFh܆=C Z M6C݈okdEBwߓbhG;%ԤaoqʦUKKA5H~'u[Z<ҺJ#Oܰ#fp].&Ke3P6`ߩVr<ΜIz Bθi,HO77na{'۬pSUU +9 S9FVzx7?3ԅ`"6ݥ9=E(W(5N]NtPxot:8Gc/j4 +VJ*N# s"M`(OȟM >KU;x<ŷS[i Z|T+āH%lpӚnz'GPc>Z#䛌'Iqb|l,u%W o&x=/&RW&jŖ#ݛÒNPk=3ZQS[)ͬ7LmxD/3BԸ;S}gbYӨ^/ 9Opg a't;MGU/B1Ӱ/}a +Yp"^}>ʪB[jGGTenA +2T tN$Pjmg!BˁG\yRK.U>PeE,PUU(:Owg5'H'Jni)%8ѵ݄dvhؒXv0&}[N4~\TX ki D,9 iAM$k+NĦ jI1Ѹ >i z^.{ÿn35~/A +'bwX`B]N4(|b]]s H0%)f ԏՊ ~B:\ҫo]L=?*/g;NF-="7$Y]4j 0kUF֮C5΅=ܽ&`]0krzr؋Ƌ~\ +o"*XDܞȦĤ.q$Q%~!؋GSz b +xv3!"x>}p;Q;|o_ ]m%;)9'Ō]޵T"md5Vy%V"h 5%f - +16H3)ȸ9 oyAR8]Gnxg`amqHq 5ޑ :WʒАH f޻,kT1HGj*ciе]߱ _…E``k6'8Bg[x:cF#oNmxz3>EJFcLqvf{s&m^FQqgY&KhV~KQ|JbC9A |[;rQ1 iY &Ҏ6^AiXbSLN*Z1Ox_NSXI YO,W+T7Ȝ v_{SD5V/Z}Fj4ggO^ٓЈk."{9 l|qU2nZ鈨:~U>}بhKu 4zOY1Ml(p aBV5ʆt\La#SB(J+4~Et<9%|ٞ>1K1}æAgສ~\KGJ S= +iq`BEyc˱XL@G8H;Ƿ 6AAl\+m˳uR')({yeXi^p-44#ծZ uE}}#j^7d3 =;|lg5V49j9 :L#;c ]]';Xnf̸U懆:1 Jr6!N15T,k3@9TYbN@[ټ'ٹzeǷ k VZ'PAL)x=4Ji$/~!/+S`[lGUu^8Em!WvBry{oI!9s+fOׯ3 8#M"UO ~թzN0'HHkNd072C>kqKazWX$4ro Ip~g1?ˋaWˆDDjuf)ך&InմR$71m#wH 'wR![ +yEϖH$@BI6t u}[ܢ 6Zb}\1dsl,ϽbSǍ"{I!X$͙)AzVY"*Zqz9\'u]4L@y Xs^ZOb fj+!S]&I(E3v=nܲ$H ~a TQqEsrJZ1 Fv ֱ+] SRKnCc4듽}-k%cīEB@M OEǀq;U?Uv̸8o_Nj $nӾO[ш#DZٖ[a#B^hfY&$,;<C?$Q28q+\;d":wX6ۻ~1swڪHJ۷4,"SmjCkb}54s wӾN~J- +3 B^-_V;^ VjJUɈ4ӛı @Ly!wF^r<`(wMৎ)'b,Ñ+^L읞s%t%XA鶫00fͅ VUB.SZa:p޻@27ʤRT=Md1+^y ό9 *`$*D GA$e{Jcy414lCm{װGrL& ;*߲i g} 0VlR֩%N}h +qM#P-~*ь=e AIgdG3FMSnu~HՑݰO0D6Sj-~3Rbb(rd(z\<-ߩ>9 VTx&a@9p*eI{d +bNBi6 +2j; ya',+-_Ek19{`\l6WGstpvQXxm.2'賄~o&)j{MY2⑼*](SL ¦]d t&{S04gcHGN YǓ~(o\W?Ύœi>K!VDN{#$rxnr;T/0MwDc;kKx %8STX +-Nix(\EYv,)?(./ňmҬc,T72ؾTH/?Tz+{0lR\(2epc +=cO\5a^%AG-N^S*5]s5`TKx׻,pӭ NԈ^)O\=~5t6{xz0xK7=*sƴa3OKD?>F ; W$b0B5“g;/dQtqQԟd@XfZ &Co,^\Sn+&Wz.,.OY@ħ-zьqwS 5B2 +}\M,RRX2?Vڹ'K6OEpi6M"w:w<)ş$,f.CQ4oʒAΓ#h1M>lf+j%~Tw0ms}0s *H9#)I{>/|L%&aAVݣx_@Ŋx`O 31M7Wn[~^+QN 7HaǨdU!SI,]eE_!7oK&, 3g|3 =^降+ -sBrWw[@% gW7g/"g(x/Ӗy 5ݢ +hNWљ%;*gtd_ރ=V2 3"G_ EtXO6K<:|r~r}^-/7ytTϗW//^n9__/WW}c~5H{_FY󷿋סIkx+-o,MOm}xkN'UԒ,uсW[6xNHeI"k +``AJ +Y^Xq&W^.Uz\7))T%FcШAfQH0zisjIOt@UglZ-ʃ aD;c' +WM;->>ƭWd!iD1hC7{|`9aR:.$j,LdSdM QS~9Rr} -U[3kkc,*[zF1~fp d:G7D3ʇy۷F'A#f R=LXT9}!&CLQP@@7$*tIkut,8>% EBdu=Wj CQ3?pq?kJG{G9y?9xt>YczꒊdZڟ?T)z=[~odzvOWwԃw__wb?| nl@}%qT{ZM]0"_Mrje(4*vn*,?^NUu.3?ҡ:љ +74}?>dM DŽi5|nitf,"^ VVNg%)~/"- +o=I™ +w2}X<03îb4")bL?HY ։rJiyEP 2 +_ILe0*(ݣD ++.b +\C1=(0FL7fP5Je}@3 t"ԚZ(D*8$%F8i8kcH `a -^08 3N5En=R:0%Q =b5:mBQ :a+T,28 M.=`5ɐ񢔶bRQNҬC}QsEbuyS^0rz r:aMQDpC\u6\HIpT5q +W 4B?zxZ450 P_aj5TE+ +hYБ5CPʳ᱇9Ƨg|V\Vձ}LۖDT1 cV1y5JuDDbb$ nk|[!Jp^&{E&lGȺ~@/nG$dgmDv{(;F<>YneS^}%,*r:AQu`EPq3iߢƁA +;)W(f%3mOA?P +iɁB6s!,g NF%ᦞˎJ$)pxIM{;@el,ʠ{6Fd5nIC  Ӯ$YGZHJ +2PZ6iEhTU %4{qe‘`A~BlGRS)p-yxuJ5{irxJ1͛4!:T ҫO&*-;&k鴄|WuV\ir 5=O3B[<#2# 5з?iĻe>v47;DN2J+/T ̗4IUr0P;PO&d69j38n!pB^+m .Yfmh9YA R¤5AŮV=6ri0-ؤ^gX"Ap6ǶUWIâ- +šGR{L{FʟX,"E[~nDP0Y=ydqhUSzX**ƀ(KJJ?b( @p▄` Rne86eĥF붱#+3lx镽Ī 1:D$ht#;q|`2‡gX)R1nS邶b-V2fkEgrJF]Jgı:ؐdI eǙ)Zt. 8N<ʊxL$xnvߣWg1.Ҋ7? ba?Ɲ(i1R"08:PDp= 0hDjRMUdm+xxOp+1,@$nEYP2LYၐ74 e~4c~Ґ:oD%l*h,Jvber4.^DY& Q.Ez'IKrӔrQko3 %==r SƘskWi0X>AG=^+Sџӑ9'A~^SdT XJHj0A|Z5dXMA^pIc1nu^EahK^̫]HJ*YhqQ>ANET4bYA([QRu6N'9[7 '@ Ϟ|~n_߼yW,n߾~tѫ߿݋77qK=t/>{ͽoo_=? ޳g﮿}ŃOE>g__ӝ扟3"'yч|ۓ/^~sӋ޼~8we{<~<@[~;KO/M@!u + ַ.W^iqϏo=ryI4A5n. 6\T\,>[$r^I>gd5Dq ,C[TYl^F~ b+nBL+/J>%(nka[r0f=j1\+3NQpf驥ja)P< y֤wȏ]q9%,<ꖂ}U%d K̗zPc/{XЪj,u"J̥E.w47{` 8.RnD? fT;ER=#Qeh,qBw\F_];,Dy{: Tl]WHQj%#Of@rZ:#d]ت]wzVivRz|;|{|/N?lCDQ?>&в{߼O)^Hx>'L/f-@V=)}4~ÏC]f^[{V@y a:8LtV ԜY34@5E^@]G^s9EL&HA䑒ʾڀ+ZClt}3qDўG`m^6VIdCLٲ2RHAb坳f])Z+y=9iz%:Sh.S*^P2{d5nQRg7ì̠¢Z +Ȼd ͪ<"kCBoπ?M@g<ՙRhlj dC + CDKLatɟZspI%)\/#uD8iL0L̏HN懶ȁǼ,칦" +v>fʕ?9M"D [9hjZ +.k+oj,FҮꉱ1 z6$tC]В.gR#`8!Es]>&r6']}ԩ]r!ZB_7.Dnl&K7;HLR]396+p.ELE M39JnHvr1(CHf5퀒JeX_&* nۂHtkmhF- LKMA={%(S>CoC/5hSGݽYVTm& +4BjҮ$_!LCzNW + +$vKS@9h7 H5jɣ]4wqk~4bp҆Z)׺X($I + HâV39w;8"gZן\u!yJU/F[ҨoCSMWn>SmV}:5sPq.SK"=NdD}4J5ZOI/beUȝWcp9k.N}FwMHI &S_"Q \USJXU .lZfQI*xXď`:_^9S2Hk, etyVX}QY,Q@=9ȧ7.d,r2bzSA`ްEb<ŭ~"-pڮ %?"H P8Wn2<7mT-L +Vn5ooT{ NjDRpFfuf>[v bg6i(ʟ>vu(IWm輫εlydI~+rVJz0ᛆ"I{E8ےe0udS#8ءeEH@gxK<ʖKG8NuZ.pA,:B nq%E)ldr t7QͬxJ'x.)^w8JǑ[T)R[nڽ;b'r();ce=?ٸ24VphܘR=[Š:61%OQq#SӴ@!hu, 뷜|@JATGJy)#_2Q I0 ^AVZ rds +Ndd,x~^o2OYTdwXG(DV)ene?@zJ)"|^&Y˥: _ }_ :Elo|-S-L:J9^BO5]X] & ["̲Lp!0?%b;+7;Ǣhi[q*k_*r* UM']&(zeH\L֭t@Y?3ɘũVa⓱׫4hhtL.˭ ÿ@aR53kJB)8!+`df-%&g9|PNbocB0=b9P@:Uڦ8W`ApV]>LɦET|ԪF1Oq}?\)v _Թ5lqp ڰg,b<),pE|>1b=죶ɫm'mN CD$B_J%Y]-b sܑM-@i| S?/byobyf4ysq=nyv*P-|7C],wiBĚzʲ,9D9LWL-RBF#e +]Ę# +L˦hv=^[@xSyĻ IȭIٓpx=P2mE6Yh!LF,u7.ōة!5ԌTȎCIIs\ܓ}J*&Z?dLW= ,=M!1 Q 붺Z5e|ݹgW/E[.-淪b~ Dg_;F.Dqca k7QDqy"rxD\uT^ <]D+ +Cp>.Q݃n)ЗOCZ `L7ϱh'WQ@΋ԴGٕg IQȺHt+WyLScAR^nig) "itɉ\pZR̬W$Kf˛:sˣԪΜB*TmيNd{Ѫ V PeHKMsٌF0}^H'9)32wlenÁsύ +JGp[nj)u7V4Y7ԧ}_tu7_`D#6[q''Q5vp`c 9NSnB,A؛wUWQW"l92-T|?|zΖ>N[gi6gw?."ou|l +Z֙aB\qÂ+ڈ1( xGa&'Cu|XxjoAܠKU^gJF:(:KG9ϷfŖR$M+X[^6:=6 ?Ik Mp] ]z~CAWsUY? #Q(`8zBmX`)Z'1,mz"^BC8@`R ɪ$3jT_?{+ēͣ ZD u2}lPh +f%BiMeTAS$ŷ_00hCU=\C4<QV\!s y-A`ޭN:5e\f EzSP)^LfbO| )ZdVx.tm-FٖqԙMc8?|@RdEآHtv䗖:޳v"]&zڛDIJ%^~UԻY1U}OQ "(A-&o;CVAi "_hd+(OSf\ڱYuHFgƄU}Y,5=Rԣ2ڬ]Hv֭Pb]BR 5.>f Û \<,d(– "k,`LVbA?nZAN vw3]t<&tD!_kprLi-[UAt.ϗxx-naac vL%HTk̅fn3֣? *E 3A AON25 xkv5JA(tNM1YZPQs"'y__}L˫oϾ6ݻ.w==|UwmlQ_|8ܾ><|~zۯ~=z8wJWOO?{x|a/7<]\U?/7v&c2u YF+^}wݶۛÛۛ_yyc",j> endstream endobj 20 0 obj <>stream +HW[] H_|$(dGVB+%D1BCAxzv̽BHg]U}ճo|E~׿~׿qO}ᛗ?p/˧O/~%_5zw_r%t%#z}}t~?/u #k?Ox7?S1N|;A>$'x~/ɽ*)9.A%:%ţ8=}>@rQXxHF\J>~>@rUye n2? YmLy%p_EJݔTH"1OCgΦ_I"fPr:|$MEOH'I|'w>ymErc5|CfCVPzBQZl$+`} + ^jůח~&8еcA~ +j@ˊ+:PqyI~(jDnh( c VXXu.h:3=9NC Xs۹4(NU,GgtWïrL`?ʹJ@ys} ShT'2}lp 1dLY^Di&UCg󩔔fVvx2ā>@f7wi(f`@=Dqt5j#xGWȯ&x81`* #3hlLґ%RZ*"K6%E'[&6)mG20^h.hV>\Ҷdi0Idy`Q z\@1w02sJ hWr(ǖTPz[H pR"PBDOw_y4Gt` RB5YpYEqтT!d}?J^ k5 tV=BDTѥ~i^ۓu(|1uʼq{t:j^7נRLqSDto0FΓ$Pr +*Ws~:$ YN@:ᵫJX}}cָ7`) VZ\OFu-m 0Nv(NQ󩆃÷Zg!3S3 YlAa{kX?[{?']b0rhXPsڛys8`tGvFb?~1YtQ$3nvh:y0`8QJAVS:8Ъ=X<;gdKϧ5!h_ Wa@{B4au<5X8D$A}Xkld4ǖf[U1 ʱ6h6]]Ԛ@ 1’JdƥrMC0sE\T' jRh +F=Y¯$Yڠu[ aKy!5  eA;vZ5th?a3u.}0P_kh +) {pa9B+-pU6 CF@0f}p:XSHt v %2'$ 7o;j%w6򂶠,pZk|f!Ӗ9nmdR"9$xQAÉ6''lqʝCHvh'8'9=)$T1WqLA_\NC0%7̛@%KVi$0;|vhgB +Թ'bB:v+i}T&`3؉؜"p67ՉT>LN>G5<%0^;(`%;%b_ x00E)!_dB!g +6gB@C%ŶyscK UۂxÝW:ofCJ=jAAmM Z!ZTt O%~)h 2jI4whtypmWUd +MK`ϫ0>s{A+Ar +nd,DvU~*p;"V2W+Z׹v B.% ! CMڠp^ P!)4BrpmP$ BW`@tOś5ZMg8 .j.30fȩnhqqR4>d6kэW0H +;Splʺ 4 9{4oa+}f1c<R aVm K5tHit[𦹌F<mk9/T;o {8vr-PH'At[*]Xe,@%.l˲~^Z7춹qDL4ezw[n#^w-  qYF-gMlV%EXʡM0{sEW@իUYMX =4kF:< (n"^BtRg^#`W}=Wh ;JƽsRF-2zth-MAQY7'*FpT! ]QIViW^QH +Ul%RJ+ܪ5|F^uU!^R-:kt h܎&˷jm;40rwE;~LQ=2=2mɽLKoP`K4`)]Űi2Ҋ(`mfkܡaԌ 0]{1gZL[u7&g=c0mmȏV86SgC-mHc^ydf5]S [N.#bRZ jȵ: w#&?Hp6yQI&6U(Y5ek'^ NcY>DZ!;y,}d=RϬ'tu>ndNp1`b'cK9Z Ž@3dw,0/FB߷M5'9mh9 4_nuUR^֮?tI5%`$[Zْ+l z:F:#Vu3u;sMߋQDRއ.~Zvt7tWW[I({Oy͇?㷼? /6sx|߇_ýrbIg8d.DaTNN)F+ZD-Kb+Bڦ5<X{(07PQS6^oЖ*VF!-Il:$:x46\># &l4˧?p8GgkAQe +J\Ì%tHX)D5`oKٕre}VLZD}q 2~,i\bPC:;b㈎0g4Qdz(Yf[peH6+3ǖE|K#]jpdI.r^ chXu/!)iS/3H4p`4yIY-Fi-Me;Z-R] 7\RW nf< i#2q3O`*ywut9]An9k 5A%~#ZfWUģ3(̈upL< Y-!3OdKkx7|P~# ?͖)2?K6x9UP'譢Gl0}7g+TgP^[ɁBqJ;v->2O8"&T=_1xr64_5d谹ODmfg D()J'ڊgu7IwqX{{Z{1*QYR,7Rtw0yc>v 8kr3V=.a?'B>"Qx9M2eI=cVfCIi-`JXX3f9d"4R`{/c]UңMN92yb$%˳ /mpf-CRۃK1iD}LxM,CX[Kٵ:[E.7BtU36r&adzT #j*+ 49a +&$|6ə Jr5%dB6 N5/N3pGĤ]V eP#7}dFpU=AKRzg{ fY@@\\%mfEm-q3=k\0z]W/o[ X|(qĹ0Vu>+"0Bz ^ dS!4qC5j^Σst6I_rf\m0cіOHBw@G\9hY({?\NkB>P (׆6Д'H lʒ2{JJyD"ȝNx̘c'Oi2.*G>dlA`d^_~$Pz[L~['廵Uz}_W?/-'Ư1֜Nopbw_wM2*FK$+ɴT[R银j+ӕAE{*I"}}:ҒPY&<f"j, +;jlz1"=ݞ4gk<``v:?(;O}jb>%r0lpWvOmZ,3oѰ-vBtПBv;n `,=MYIUiNt SӛXZ)m>Cyv`~fkXw0@ݏkLxgJ2$/\ɷ3f͕ PT@6gjI7H [ U/e pɤ@@IA)ZbP] &1 +c&tɸ@/ʁ)XFNŽkkv}Vd&("[IJrgss8?+B>I$ej%)?|7՚Wϭk 2CST\z2ScTXw.bS5R!װHlIOViBqC7]$R<ϞR!m-TX'F\fXpӊF˜JʩӧijVӊZpJNT +R8bGV~3P† )%jlKV$K*KS o_N n )2VjJ)Sz)u&tE-\BFrDxMS$oP #"X!G~%&ܜFњaV$\^ -wL Grf1bdꦲ)91%NL,~1,Rmj 2=$K2ˡS +@ĹUxbJ +%TB+94Q)82QQi +c'e՗28:󙝶Bwy_O~Ѝ.mJT~AI?^h e _16;n(ܽ(~w9"Hf0VO|]4ϼ̵F 9ºf[V AtqȿQZ}<|UVZZCQ TᲱ͆Goi؉0- D4L'gH^Ah27n螐Ej!1O$AVF= 'yh4zA*՜^D1crCL % uꣀ{!y乡L È{.B#! GXm lL[ntiMuSMO(j/\/Jrܜ*GS:5 oeё`oAO^9hQ;A8邤}O'!;zw@$Я1>ue,9{M0Yۄ᠆x!^ʅm|ֳXt1#!̢l"^%"g5o"?ad hQa/ (״Vm–7vuю ).|&ek?uCřF#7'y=ATb ~!9/b.yb$;>8)$5A$Ыl`D0F#:(v@6. /1\.X#+lT}G{)9LJ5lXkpzKTZrcӠt͙ CW00b`U`؛S`Pv`YM7O.m=>v[fK작xc`$ټ +cr;2֟{ gP^',p~ \1²7oX3h \RI%/%kYٙ攴Kh5{SbdBg΂~IsWMs_㘞]}=z(dJ0~ݒn@SS!s%Xa:f5&&n`pl-6}l$*؆"*fvCHZZoͱY ɕūzxNN#wXu?iۃS thwݵֺtm{Gл 4:$i?} &'~$فS iΜS8ąq ȋgn?Qq@әnLH^bT0rJz'oDtꇱb;9;$ꓜN?՗nS )8"u$o g]I>,1Qb֘x6qAv!D4'a#阋ȢaaLbCCoNju/;X,iDG;p=z~=OcBn.Q;H ) %l8 i2&v0LIG/yG@, B;- 35yEtUS]uv< +$^}C#lMt@1dqp)^}E/Bil3>vhBE4\t~Iath:%0h$|lZ|_)֝'tQ|An [QoׇտgJ۸h~@ST5 ]%8gALbzBzB>ySq0tRd! F Q#+TuF6 tfMlj9juff5 hLKti%yU}B[7= u!JUf2G + rVQ^_ kV|EkJ77.W"ZeM!`0yF.l h`$){- 0_چ[I rgY/(zbe4h ˂~`+A{vۭ/v<ؚHKam;M>0>FZN*,nǜ5d(۞2ΤY0Ka[\}62X)%2L[.%k30s8?D+&sQ̒kXx($ЊŤBeOlOg5V?%VAs]noSgrr70{1PU9kW('> |G@% +IQ`|z&8^: A+x? /$x>;ܞ)|h]{X`S^'p/w ]ВrDpeM{Aªo Ah? + c' }-B 4/f6zd7t)ybUtT7ditg܍7tz-n4]Sh%%rStzqgV`n֨>uU*FܰYXZ^gJikv SS :s.sis` F*Vͯ ?/{Avi+H'wnO#ʉ3ǥ+R ͆`V+&9`Q`t endstream endobj 21 0 obj <>stream +HWnC2`S=~$FRp 9$;jv{h>a?!OWsM^ Is8ޑg%:Xn^)ߨEaǸ Put:?z /Tp,[|lBy[|IW~ btz&cO\y T#Ŀ"k}5TRAS}V\hԀ^5~6x8waqsd.`қn?YI7͹*`˸N +N2} 믚 (AN4rB N|u;A/z`ao4Xv-Msq=,֍={v'E58L:R/spV/+??)* %3>B#+L^Mi&w @ake7ke܌| As$|5Hx + BRu]ͶP[XVOQ1Q[Ms+'ؒ7X#W̄SY٪2;[ 4l^MMc0'R$@"/a) +:]_2!z iC[ 5K1CDvYpM|Ђ(B~Mg2n?;5s8d;㶨[O٥}vP$d޳BzsЛBnWe0pCmTV]b}`YMY#ʣ^&PYO!BM?Ī8o +F̻z +\3S& x1O#=XX'P)pz'U`WK %" GYf|-n@|o+|c5jVY'k2!F,Tg[{Je=d ~`d,qEg&ϭBm]W=; q;AlhTS]E{Gw$뿁1Om2=~+ĭͯUz ި;J{ڪ4|[ׁ[G+rAckZ<9E5iq5ӑXS + )DD=rK +*V/qWe*Mb>n%JyDW#n_=VqUWĀѰ'J'8ĸۃC8^1RǼ#k7,"h#%N[sɛ +E冃oy2!JY(LPPQ}_L&րi֖KMXk +;,UތԌXˌ.ZsY=0\ ^wUҏes P螰,Ί}&'kAfi{FWcص^9NmXҵ$|g+]LB]BtN\\<羦AgGCwjz hP%[H4% *ĶhFkR&3K w&)]_s[$G[[\dk)g8]$@EPwk!]kO .0L5n2v GJT>`R\S\Nˎp{fuvG'fMhD %\&>8զ|o}l/D~@){6O)pS8l"ϯ/'QӨeODz*Q徣4mȝ"ΚD-8i$z'<:g$Ӆ*70AdUtN,T5DCFrS@`Q|RZFVۮ\ݾ29:tDӚ:,.ͬ53,-U}]#ka]v_bÚl"z_.-T$J `J̶kodb9J#Jxm@&cvþ8[n^TvmjkSx4UB!@5оCfNS*J!Suz.n2g axZ.%ki;m]BE."$@h [Udpr*w68oRІ0 &ЭᘄW}hAHSqqG1*`25/"Ŵ94< Rs:2,^ëh(#ui›TDtRTyky]o*Xb_r"`sxAtu۷?na`6a8 c~N mnXOmyuueڰnQ>cnd-|l,L|c5ʷ0ǂ#] h۩*puיSט{{jME}8||-| +t\؅hn2aѦ6ă0of7.;521-]Yv+ky/.Wd:>XC{(5l۾@}SU9D1pq<7{Tug^,]CTӆy-7wR )#ڭ?f/Gп乻X$܌S%2s#uǢZ!~{UrJ՟"n[4Bl 213Kq%: }^*d\y&> `Px>cTdcX?X&{اƓH/HpC\"z7OdN;K73S,6ZS,vH}&w9MZ&+>]/.#}l/ ~ߙPݧgC?P8 _Oo}I~Xܲh{9ܛKR]v=SIЕANy $tؓE;w;R&|D|d]4IbtDҐNH\zagjFFDDr +䠿E4 њC%Z8c Z{ +=1<;fj*vK>~u*RoGx|>=J?4$W؃n{/Gd/fX-kW} +{Šr,\.v0tr0kRs/ DC5dqVx2/MC#P ڂwy^5 nmB7gǽ 3?nʹ>VY_F&mBh.T:qF0( Lq ^VX\ʆT rשV31lQ:A +݇K d>hxvDxrRk6tʂ=%xT0vpDA6I2p&LM[/Jg7^0e +Ԟ|FJD:Z^<8\;'qo8nM.W̛Xx `3"5EޯtT# +? C'< uΠ?4sFbѿ>gphS1;lm3 ^;(r>tW[^#E4~w/kq?Gϔ3/Ww1F">3N~*&e?{;rU%(vN# 9RWoQˁb΅"[.>6i_*Z}V[a~Fogr)amm˻Q4+_uVO[\!`V|pԨ ItJm8c3b'8@*fR8)-~u=qi4%p>U$r }dfG<ڕQ>6Sp'_|}(H\Vha)"{'T/a+'.EoAWS#NC+zYx存U."!Icm"0t>eka\鬔%ZI,ŋw^lbVӻPbS{#JM VֿPxTuM j` ♷hoj3W!f1 &,G+VuGFvX$I&lUӫ}9ג)U|O~!y>G[6$}Eu3bZqB. Am`Ўds/m̙BjWz̥Pc]@[g)NC3;`@ޯ./*鈸Gt $g>%0 ؙt +u>l[[O0mLU AًFtN]DhJc'K8Bq$-TR QX cK17b:orQeZû( ]]FU+ +P:?+ UhX!xYJ1D96H-F-\duZc#fLo;hGٯK*+{Qw+=ɴ6|n@ޕA{J.?K+ +nȯ1(*JN9NtE KL;iɯ66>We\[G=RRӨ@p)W0!f3TU[VlqXPג6(,yG,thZD_4!ֻa:—M$1b$N1SV+bŹ^E9V=I˻ޗyO4E`PWV:ẗ́b*B^`c`Vvhz<[nΦv=2OBhz5WzSIL{6Tclg`m6EaE@Z!Am]#ԽNÉ ӫ\#`}z_, [s iīơ5mWu.bէ}q_t3)]wqćHбpYgd$bTXaNnˤ'ы BVIql;*@FiE#)zޤA`9􀕟`fEj]sKLD*Nq +NEPHHe_6kgͬY3O7(z4ac  dh:)w9|voK'!Squx¼L"1n_j&zz!ГhBf^]MS,vgy/&<úۿ)qU?]^`m7,PM/a crrb\8:N/KK0#TA)q/gQ}.JX~siCQHޙ_={ +'̱׌1 4!1P$d)MH~JNvuv46 ^ЌdدĠ?8|T\-oncrSd'>cu0 ~M :SO+=t#ݕÇ,|:||{S:ڕK )??˰g6IMϓQ8XB'V\U'KGJ:]?RnSBVf1 ES{K(B]6f3Lm] &ğurlrjk7h$G3p䃲9?i쩟}Z%Ƌa%w5'[Ӽ y&^aѿ{~}]ȥݮW聛á:nhWN*?LqlFٱm +6ټ [ip9D)@&Rrc̪a&tYlޔ8pYxC"Nu0b+2Ȼ s>Lw#%nVRC9X @&[M;-ƘT>|<֙x`?a⽥X+Θ?gPncC:TPz0_k [vPjz?gYa[1)Lw7nzy,WkWD_D*!ծ2xJd=S"7R>@\$uwTD.U-Q_4lCx]`?z3}˛ U8W5aoWqykј]Y:G}Țtqa5H`8*j,6NXh b!V7A3댴+u-eɺ3t<{IVY/F.:ki0z=a4˻ ͳHRԵX+e:D'(Ȣ(K$DI\<[e欼5>Fɼw1[Q{Z-dDI*ZH.Rhqŭ7%N6~[2r"@?UUO7/OC]bBռ @]žt!q`iBٞ+d\ތ(h⓮2Ih1 v'E!^JLc[pxu.>U-tz7N':̘\ί+%e,^xšx#閭9HGiiNfޏQܾUF-T\~q^[DKWSHcflmf y[w(W|PTO~D' w,C;V hr#@&({f ?J ;_qT^@ WV hs߭ +X鏾y[h_76.  +dt<9{QK"M(RЏ@ L;\neBgE +*&M}%]SͳN)I +JjCe-mR!ֶ:|87r/|%<, +x%C+8 u{+t\l%=x#E h i]6u|Xx%<2x34͘P#Ǟ|ԏB{@%.Ԩ/ ^[_c$h KhoY,Mׯ +>I{h#svPv0jb6 |֙NmfBןQWz:}? )H] 6 QrY@W- %}P~Xb.v5C^go?{q +ĺvo\%a>Ͼ}{(C,ȼooTκ=@lyUxg} Bq¼m21r|Zky[lf(l.T0cܞԓ|ds.􃸍>iEt[$0E.Q: /e?C/BĠJee672kf`Ü?#J '}37#Qg1`ϱB - 7ঃuD}j$/; nv#pVtNOpy;Ns7S8~Np 'bn1I +XNuo:MBofZks+p>tSn9r}c:kSN9=ן|tk +)}[)l:' /[,gi`^ݸ bAC NǬ~@W "ğ@NWh Nrb+˴M\Tqsڢ&PѡWȁ.Lm 忌ڛHWJ̦<:bv\^jxfQg~=-Av٣cvDXʧ`y" ɾ%т6;n[Id2YCmWj|fOq~0_p~"hBu46 `9S#`,l٨?T܁yF|4s;N=Cyک'ͤέt  @ɠ:vUaxb;uIǮ㙴[YfO1=tu%;@*Q"+|aYMoz/+_ Xzfu> K ^Lʗ: +u=Il+q:2z5F3u2J#rw+}u`V-UxDW(e1Tmў ?(񵣇O20yq"s0yЌ?5e%N5Iݿzfi +X5xBYyAxt $?'z{lYXi~ .EGaj ˔QG_z t'c7.Mc}%O;"fg4qŢ`qoc+VS-,AKЩRoƻ&]- ++Ku]щ\Gj†N_.$)hXvZtMAuLy#A| x +Жĥ@ b(cDWO~/ ynf&0_f< XU2+*v@ Ji8NT`gKro[y,{%E4 t7mZjiJ`HNϧQTZ}j3`[ce*eisq{3}K`lqXf_τ0{5Ԗr9т09K,zlBpTS EӮڀK-Ӫ%b0,cܒP;XfdUkIL}`By-oETs@\ѧآPW`p}dcQ8fs꩒1 ۚ%mRbGJiP<db" =#:㬄13l5[^Ωy~|aTSȹJjfڱ@+p.o ;#FKtA6p-k䂍t4e~R ̮* ≯/t}L<8v실h9 +6iYs;TJ,clCBՅ+N|ygJWUa_4Ur{z7X*MYD$i̭mSd43|hg?s>ѺW? +4hi=̮=W1v3z}fڱ3Z +B|'Ԁm=HaQ63Fk1 +yHA6GUُC^iȣ2+>Қ fGr"fp,J:l;U8ܴ`$8Fyn9;(m+$w/ 6"qO}c#XV%Y0"S9;Kx^a0JɎ.m7)aeoNd"r< J5ְ)x_ҘdKJ-ֻXd,bKӑ#bg$H/9;T2i}}qND5)(q\h"kͳI{I,\kMJ-^cw>Vy@eWWfxWRO_gJDF-|;|2*mK\?J˾3EE\.#\.loҦm6_̔w9vN*>RVF9< ggjuT?b'6o$/i;ʩMG豝\>rf7zr=UwZaNo*ӡpmky@Wsk"/[Qf_RoP}i\&.H>e͹˭bۦ&qV}ѐмl591rmgsk1Ɏ$!Q $ ^R|vPwt#V:0Þ-MFO8(YzI +0Ieo~@v=E!Yr;j'N䮉V`.&^5r0hȮѠg T!lM|ySRjBC,WSL8OJ-kRf[ZRNbVJ)PњgZY1dPsjՂ< \d4Toק amKL%$Mdfj6הv2|.\T{w}'kN%OABV8fVLɡw%'2Wy.^QI:|,Q85Apq׳ex^~HM&@'J' .m3b`L]N7MX ,*@P14ӾAܐ4PPcԅS:9ޙʭ*ȭ_]?Iʡ{4Ɠ1?!Yl2MSN>ĘNj#}߅kJh{!fSrN7 [i:cl`{;9m Ę/( y&rYyNw]@9G[{< LdFGo )lZ +3Ŧ4*}g98x"n`W"s ̅NHڒWv):sRx$%tׄ?qڻ$JJ[TNtD z{ℶsRr&fW$3ch:Ǵ+x ǜԉƏf3W`!oQhsI P)3̐=ъYc3%39Zy ;jlfYVVNKA595|$t!xdfP<*. 5`% Ll8g6p;"d9!r%c\hIځHx c X]Xޠ RvNF8ݩC k46pBeguT;T!a9ra! o ӋqKb~ 6fH&xP.SWZZ=2-^zԲ CprpѤ1vzm{zhͨ0}dc.+=Goh$ 4xnIq[-A>7FGNHۦEv&MM"B^>*μ4_fI +=Cu#LR2|LvqbP:u?l- +W{YOgb1?}O:h);}LT0ˇNׇz?TA$[$/h'yH43%JJ37r sxgʹ;^cWCo>/>2vw+8!0Faw!:l⽛^d6R'e;Sva|F1R>զ1h\&͓JMF6Lo6@l|+lw9[06.@$>e I磷Iz!\\:gz+"Ϝhnqa[%+5^x3"3zLK CD'ǰs!,E2{#.7e塵 `2INIIS~]:m9VƢγk5G,] jrՕBY\'bލ܎=AQC?bXM%a5LԅG yzC|EU:<,(I>VMȢ-cF@eץᇘ cpg8L WS.3Fk&j35^< zn gf: R뿧25 +xTP[ߕZx{WAZYh?swcSNs0/[a4?T(f]LGr_é,bN*NWR|m][ke:۩;= Fpty˦(E>=9Ndyyya;-t{\YPd}u^C0v+uN7?UU0(k/%NXy,\ Y,D[wt^1荭>Cl]RI*?\^mso*v{l21vcS ?UR!y !BeSR5߮/+MAǩ0T:4HN%p%'*cs0 +7$i~͹S~w2.'?z%$S\y1F_8].ER.CS_5-=QVBi^F Шj*96b:z@ +ťӶRhγk.OFDfJ.E${; ƨY1ٕnk,PZzw`aA3 wTjx#iBvE_]w7Zz'UNVAB _+f=R@OJKv5J$DST 6VxACGC^Ij69FMn/C1/xza-E )PiA1,TB8'e(n)ѴG?q + +1)[^Z"`8Jb(B)2 sDKC`xw#Z!aH0 >stream +HWk[L!@@[hA(+Uw7]v7e[`.gfΜ~Uʩw2xVngY-vrΧ)gZ;N +V>vV7BrR֚^5W5iM{_P'TZD9ՒWߕZޔ-xL-[ Y-;oޱ:<ߦG?'I~j6씗KΥ.c. wŖHB0`}٘ =f +9I:8F^fG\{Tp3ZyF(VzVL!wI_IQZK2ZJ 1[,c8AxkD ă;o 5uіAg4=:|_WmZV_Γ +ivBeP4zrҪv.J3Zg N+m郺8KVD'UƐBICP!W]n>i -99<Cc4h%BL)}{";{!mA;!Bo'%mc=Ӕ}W:l OZprH>%}#v!Le4IӬ^޴O~JV-jGǢ/|+wλʳ|ZwVuOWM'Kh pcXJwư)m !D 30(-o ?%bpdx ,%raIGqH1UT"S:8bo] *iv_Jq׼M0]9Z:BHf(pIC!aX%@Ban䙥OcJTǀXϹI*0ڡ>`BcIv\}A3YM'lk]I;zc,\u0 }JO!@HdP +[/tdM}תzt޺zE9{/#QjSʑx+ +'5 a}UzX=>Kvyn6˥ol뛢edOiNII9s5T4K>0GL Hcg檙ѻ>өr>uN%}  ݓ\c<Zʗsǜ<'4 ~;4Se8=ʅ_ r11ǩ;e;5w4ZI3\Nj߲F_7Y>{}$U)`Q-o MRt)Y]Br|OFI毀Jv3} *%l%a +I v2;ښ +)Q%}u$3oB.b I8~ *Nf,a#ӻK0߸!(Ibd޾d~7CxL_~̋08G$ɼf`ˇmMʉ'fӕ1*]y1Yo_2F[,vs#a7+zԺHma`;9fjBJlǝa@gRWEw3q7vM F3!IY BOdQ_&X@KΉ +FfcW 431&LI2͘F +Tȴ=*Sb Pˋ9\X\%6Ha>:wr+Cu?#SC啞iwF6gq _4j$haR]6`)>KMڃ\ţ0eDÂU-R UXHQ?$X0(x่61 +VJWCqsAo1k[ .x#a='!TJ}bEa0v#rׇ9fǭ+C0uGl2&?:|&ܱnB 0`l~K2}k_8PI54iKB1M[il/L['y"mʖI“pEJ+"!$Yr>xH Ȟ6 +WO%TOD}ïDH0 e93LCI'.{6Q6b5 X}NL X@9lIBvjre'>B]a +!>/01'SfPD_+\E\֕BwCX2fz"Tv K҃wJx1tIAw[0 "5_Z̻0j%yeUΊޕ( +MnlQW»rw⪰?082 7*bf G <Ɏ~l4\IN:pIU,ɞͰlxEF~t7zGg:דex(7kFEX^?<ݝr̳Г>Γ0\-D~5cG;" $ա\Ms_-ݾiKz&՞g?EҁX"L1^v-G/CB'*˿lb`Г2QQwnMt꞊1cjs~q8;;S_{țix +t5%V{OB;jao;v7랦CTݞ͜k;5%P{C` +23ծkM5s^eJ8!!d%k`EZ.emԑ`ۍ+ŌoN"Jw +ֻ2b龜Wayӵ8{NwQpV'gߋ݂w+ĐNw8AУu;Ek^.4 8$l$+O +9o"KC% uIxA SrH@aT ] P' 0ֆKbk(w99ÝSK:^o山]<4_695{[!ytz$:1#-Zw&O7wn?-Nz&1<=Hm]&vf n`OK}eҺ4D$T8_0Dq<];ZSg- 8iJ.Ƅk.\c?vũL`A8Kńx^?J%s8E0B{6ĬPseD?{0 Xrj( ;3-LEs¨Q<.RdKzXSكUv#0`WiOc]L UtP`1#0HJQ'\\F{jĕ7i jZ S8c2, EJhRb P T,[QGYا`Q'ZLvGխX9xEk9a- + G- +c6>7㰧6).QIZ6荧/OotM䃏6SdRE#>})[4ٻtx_z}GګYZnrX+D[*'߻c7t,}|X$ Ax>6MWD'lo\om d'oҭrln+-F(\&n*,XE3_K`y }/LFk{a_ؼg1Lvf7mg lbO ϕQ`[z\i7RB Bs=͖& S7ǎ74b4/i7Ź_r<&VrOȵ ŗ偾4s7CGȽp¹+lVM)*ʱ3*IxBL$xD) RL2?! ~{-RS;֠& +R0&5ay:+ H\Ã.' @V'#'sQE`̶581EmV!TVƁ]a7<1]T@gǻ8gRK@hĪ,dzT5@M䝰 N7!1ٰGN֓*AIu_.iyaRrbc AX G8&\d'zt<]k >|h Et9ǃv<IJ~ k#L}xO9wy2\alW:͎#F2/ Ĕk?[X!wj;)EqeqùN-{tos~xLai?y/wR'"7YlsX+=S8V'is\E8SjkxfU]$Ϳ6x 7 Z;EXӁ.z*JW~|΍e) @X}j@e) + +0yʌe<%C7tu;of=iތi,`Ld6WLdMBLżFǵ:crI"DV.Yq !r=:(b]uȿ)>7`h4FcKu +<yqH*2XAά&הeYG@J V>[/z&eͷj.3I3XE=rC Pjgz%AUxlsܔ\ʩUT $s6Kcu&ݮ&ԑ@} ӂ-n!DeA4y/ QIJAk-b|<c_ՌSeMtl1sD**7wPn!IMRˎ@R?ҫt+u>p2 2aPàL2 Z߯o?Y:TWWڵ dqĠCXRo훓274bY +V^q0$K$PfmG5 BpoNzԭ tO 80S31\64C8C`$Tnu 4$P<&W29TW4ڻE6V.X}7M=pQd؆҇Pq>Dװȋ& lZ&^C9ˆ gU~v GY?0P҇(-QTԄ> Hx qp/eg_5wW491c7MXԟc9?1 >ɖNi(E7M_)W?r@BI#lQ_>ِm}Ɵ|C`W:L\bb '&o􀳎}c}}5MDl˛?%>)UӮtTf-eMjH[&V*/R?c\ɲ"Ҳv +dg3!Y͑)Ch})3YM<f5,ovE쯖bA]!.SŢa˓7x!bMw>^h{|t2n!/¸ǁɪp_qߴlO(ys5{hnf]>z+rb"Ug, lȐaR\wgH0? "+*/[HP5H@U~B\]V1n]%?'BR1>]Ḑ sʢP/7^m *1zDM*0XP02!+rm:vojS~88 -ܒ `J= .1y٥˚m[#M,i!&++‘Kny%\rl[|s%grr$?ngst`d@I6n޸1֎^Qbq40Vc8 מע jCܞtJD"?g uwZf ++UJ켙˸ld|عKGeKm9o^w&.g7{eM Ⱦ]<̈|:~0­m@F1u`=Jжv4TQG#3ݍ-&!72I‚ +'ɤGW/sZ FYv@_c¹ApFM@yj,+6t qA2!86ĕ́ura,;+j17ꪵ1_Jزd<#r]*KZ{/{8FSů 6Ҷ#E(~SPxHme"ݝ^*QE5|}BڤῈ_`"=W XS(د, fp7jzaQ%y"_F#b7o˳cj6іb«7 :$^:TM2Z@-j:ԒѲN@Y]5D&̼1UW^ s5TZS+tRp|wY^~.ƜoI1|pcWr#q%5j-ei/9M)Up_,Q.VaRBH+\͑ +ZC@;.9ʛT4bu lnFQ_XfDP.Seҏ`A, N`L[ +-Xveo+*Jq8ٱ5N>>F蔺s64ɉ͉qk I>4.!kS\^0l֓7M@l5eCMJ:ZT4>ʐi4 +7b"B5$|F?v1>Mݍ{&iyk{B"VB59R}̧9gemV2my{v ǠAaXQ7vrS P}g%AH9CNFqiؾ&urDݻm#n@14_fg>.E]Pga>DwF!y|2!!Yb-3a,nR惓{1AqqZ~%򛈤NUX(_+K2,RTw he|Yt]鑧B>A. #Sd:eH3\M0o69IlXۆDVB`|MB911**woMar1 "fr;x0. &K^]ub +NM&G˧46|aq=jJ1YL0~4Fu`}|qTh_\} RzHcIYPTҸ 5$ i0Nd1 =wwox|$St%GٻM)ͣWd&`n5!s# YVl z16CZk+5P7fS+cPpi5X±6"N,4,97\Jgx岥)-,OQ b\{z$XQH| ß:U"bD~dAYH::3>a%q{X,#'yKk.E⨍\H9߅T+iܴDȩ4EĂ}yPkB1*YwCLWNLy.byrQWz!ݛ\|<(d! dù:F0ѩ^DA ͡& ѥk ?ÙZ%sB< Z`6YÀ: M GYkmdnH1h%0)\Yit˥|_X,kW:J;f A!Xh)5OkٟҢ3t}?OÜNW_ػL__eES D%Jv%n^AF2]2_LUu1hAՐ7 +jD4]I~)"H7e,G7b&;PEs ?Zln4h9\Y^}x]ITQ 0ǞW endstream endobj 23 0 obj <>stream +HW[nF]0`aFz?A"1[xăm٤VCd q9UlImEA>&}!]uު8_b8m٣Gal0i4uzC_TS3*lU;i*MVq/z{9i]_WC7?o7_÷|wzΈQSz Tzj?47c~| Sߘ`GYTiLԥ3. 2=Qb8,~}4gjnW 3CΫkpe)pO)M-o ||Wz;bdZqm?ȟ}3%čR dzN3/6]3~ݷk%Ny6,ewꔈ$9)f:UokM2L{4\(YP&ϯd<.=hds8oaSM=uIi13;o0ξ^7(l41ܖ" ˘UlEM7{t}\mmfӌuL==pesA:yƆ5͇ӱ&ʳ=߻.N964Wkto_1Wi;a8zxwUM77y/;~ܬ'awQEgpպ9­d,^|]<Q%iF4Cu훱>۞=uZ={w&Sr׮Wx1D;u{5WfE 04Sz}0͝SMy R)j %F*i_s.Au`|?E %_~>frȾUUUVE*_Vҕd%*^Vʲ,Pҕ4.U)KQ򒕴$EUEQ +]B+hABP|ptPAx`+_ =ԓUt ;3N;;#-l:k*+2K-1)MakLfQD 3]R:hhZhJPAyUFiTBqЙd) NZi +? I*D) +NXaJH!~h*x [n2 9V,00,Њzpo6Mr($#H$A.'"mBq"#QF\╤9\v /+b>ןXkr*FqM~Հ-}jjZ jܡ T}UtC'tBgCLYT%A g'ҥIpKLgt5fá$Pntʀ,Me o%W-٣ wzz_ Bp(] Ђ5CE y?T$ep''7Xi))4r'J^!i"D)@d9@W@B)`M/إDhH4L Q*M * +PkRWY%z)*THT"YMt +RV$H[ D]& +EL,Y䳉"Ef-p8~${a 4HA*6`Bl/KyUgxWjPa8Ӡ;ҳ>2,XJWidɳN"vD2E$U "TQL3$^,0~RMW$C$IDD%[1IVܕ+ Yj('R*|v+a\df)RxWjf5~%%%wՌi%v >D{kEI]MfFrk!e*ceZrƭ +'QD2(= pdžt:HL½{.+U/4WDx/gWcp.S[79<1.ÅYڝ|/ϟ~xϟoOڙ% su=NXY~߾q*!GfC#})~xӏ9 7nrL7rs.|O?_a禶%99)dz_qxX֠GoߜC'JtT̊ "A)#pD&BmGņOWtb%bQSቆ*KA`:0&T>CH O4DMTS+(GI#v 3#Duxܹoy!pk0MiiqWP i >%¼yfA-RK(Y0&tPs9B#J#ܣ&[DBP3a>=Lh-"ۄwiqv'H`.#a)̅E Ma$ IP¯b_z2  bI[u%j.<=R&CC=oL!&}i,gf>Y J3˦!+smU q*Tt gXfΏFN}@(":_~`My嚪ڬ,|S^8V)DlǷ}*Pldqa?@s+Tp;țvدj1~yuد؋umsD~#f11YڞhScXWHHH(,0Ug%%E@B%Rb%rUU +欁¥QEDTDTJn*҆g=h( (U(p"q*r=}FktuvwxyT=*_bV@8[3VmA9TALKF̺(ʨ(hY$HQII(bښBsȭ;f;M;I[4r|! =[ P3\ n(FRZX:7N̪@Mt$A Cqm`it.]ɝ)ʰ7_A6 :(nyAeHo"y~%FF3Ҍ~F7菍mD%ې2 mƔ3ZaFtM\Lkӏe6g@5MJ4:Z<(c~J)?8Bn1wsXc2=&5br;Lrd:|F1<QEJ((*J6h@e[Tr$NSgqF;1n*d2smVzԲ=j3an)2IawJ/bju؉u孕#!uJ EW\]$p\QBEu\AklNQUeOG桫.Tzωlh/!BA0sD{Y#5pUF> Wem 4:@[hv #B]L(&^Lc `ЛV&nk?!Z8"WеB%mmE+VFVIIǣ-2b8ū˭^;teO4岲?*CmuF,/]|M.^7%>#e 3F33eFeMeU\`WK;~ɦ0i"!86LC2oLsza=/fAEϊ*m-fmRvm͡q){4@{ЛiN%C6},̽x\×_bC}õ-CAsjȁ!І._j$5'I#9.u`+U_C}|ط}}"Y䠂5ɧbjSҐF ! ةEYDY%b8*< +pEYxUt%ukG]P4Rőwg9t!޳f%g1}w_\#?'q9<:~9 RYq,8BX!SxE cDFK=$E՝G E"Ԥ!A "٦%tdDd, #GBJIK 3ܠ}d!6#l.3p0Dt M*f<Ş]|Gc_u'-KF@sg<rWN3AL.Z3^2 Jo8mj{g

%6qnE COUOӛo>Oӡߜ~oߜC'ۼ2GQԽAٖ%A+h X4^n%:au谑U:(tS-d6Ett.eUedUdI/BEK[ ɪ$fjDBl&6IR6Kbh =&M=% +.>CUTxCw谢r(|VGo%z.(*eS2Ea8][`xN$l%Z*fo|?P)̴R w&$mZƙ<ˤdpʞ#1yʝ@DTTU&maenņ}pXB[qU&sͶ,يكV䵪V>K`.s]O>LzE&>>?̨gT.T5% Q iršb$V]P]A0]G0LJ7<6enyl AHȕEf9;qNvşZ;YhN֝nNfYph+vvg.L2i&mӌsg։fӖL3kdf)1䔣9G@ׄ'/BFJNRVZe#9n';e J$EɇXspddR?U.`03*IEfsŽDvBՂK&DIJKdҥ#azRFU&k@tWl*DUJTkUQIQ:8BByR3t_VmjLMI;Sj06X3 Y;WsP8(nҲ=}P>Uw& ˿gE\&σ5غzh{ח ? we^TՇuC_jO|8|G?tn>g:~}IFMsW#x^i l䫹#J%70oX.PV$ȆcHܭݚҚĆ]i?8FҳW1t]~=׾}ßpEeHaENvU6m7 FSI`PT-b9W󷹡LєL4ю?BYi4Mٴs9Ԙ)l*߽<{p4>/V[ݮvqHŧg>vq5vݮlxfu2[6ǪMAD[f%mAnr[SCyqKSC] uvq'387x4žɾjj[v3[ ۭf>n`{ ;Cf;/ڛmUo*I?=Wݰ[u'j:zNA txN&WUKUĹV.8YWmPPj2ͫn l1XUYR R:RT P^bq썑Ky8en hd{c!}{pc܉*-"%08`B^! 6@Op31}!u$XV:W5Pq.L ܉il(6,/1#c2` |~恌8mN;jG™QN#jgWKT; ݀ۺn6$8+ vPt1{re6{|QeʚLpFyF9~4e(qJbĚ8] QFHLmlRzRT7 >Y M6r]K(*P#-HFTiXEaVN\tJ*zg^~q4U4JTx^՚J)a'*qh HnL~%WAiոӞ|PtG.NFDR&)"\b[ȦN{c&m \䔒ʋH+#W5=[B.aW"`°7R9L`6h'heN <$rDB͆P9Y`nn8Y^o{j޷Ei;y<3kk}M__ijȄƵF +fYl'IFċQCG0!DÓo.ut;mxP9 \ g~37Wm۸QOW3bέpƷ"m6)"10H.%zBJM5 L + Lx&0#WzD("T9Ԫ4 w'rwI'tܳ6pD3 3G63ps +5[r lT9x"RsYzw]IMm4CZs&PW~޳{f +x+aϕܝg=}G\nw[nE~dM@Lx CN$Uj#]O^d>][.ْIӮ۴bfK)[N[9{-60Wߏmkhov#rÚ^iٮ7Ws RDgIa_su]u-)maSbE1g!q&rv|ƝYߐ|UO|"> [u "DŽ(4 Lu^-YDkL +)pF8{dh6g WȨ3vv[ʲ,34-#4,xclNuiXy23B3ExrH20T4Մ;jY#rπ1<8?gE)vk1,0ۮ˰as;v@> _2vH={Sدm+ ET]ia4ɸp& QX7I3AZ H"%Q{`Q;emv+ŻZDzt\8`ˮ~&6U_R.wP֨kJ 1)$H#)p 'IB*$$M|: 'd1EVVB\GZ|lG>-ـ55Do!D3a-c2o[:}1Θ bY(-en  ĴL)5ܔSNTS P6{&*M-jIUsUZBVց+]z4vw4bp"]RW R: /x @^?MϞM.SCIE >aF7 4 + v06hl2:mg{ڱ@ڨy 4]c7}E/7Pۻ۾~~/ 8 I69 5- kv!=zYYG%nf fQxQm%auzTC1]9B#^ҳŃr例3#?'q-x ~%.[ V3l vX6G #d9g!#LD&EGH[G cE='E)#T0uD."{wG]!"гn7vrHɧ$gv<`Nv=5eAm9yd5:f6km^ X"&I,H1n rK[\P!+#͔jc8 fh*PJ7N>9ukU)NRMTKE=Ow^S +4_(Upg=U54O 07| A^󗷯Áۻt?=uts"L[wbeStQFK/1Lw +}+oI1bhsj35 ͞q-PfĘhq۟Iq!_{ m9%[Pq;4 Ab,]]i]GuK.!*hmkGεcᘥprYƤa +gLTiW3r:kiRҖ>6^d8X2U;V d]yaU]d5*nƕy)кv/Jwj`WzPG)9w->>ծԂ1C>Cl`wp;4fAAB°@qgZZ;n3n.t]94h׼`c圩Vqk6+`͜C?U~hoں\=Vy*f0ڨ;P鼊4,P: +q|ơ=mбUm*@F0@I)tvJvy-~|hg(u4Q +ZfkzsE{CD}l%+:A\PVKY,E&@X PtDE@Z} oN|G3FNy l΁Zffcb .;˒C2'%z?aB1Ҋ #Rn;څ'E~qR_!OK.9LrK턏N~ +4/Z%cmZ"X, c!'fxɜnS7(ةLP;1KHdKوG$E(3rLJ2ވ4 4`M7$DQ)c0ѯTQ&~)Us +ڴ&f3Bn +3L ­ ON`Nރ?8ѹtew,9 P<+`l`'P=7owۜ}[ڷshc߾7mJ;s 1/p5!( k.Ƶ@z7MpVS!x7l逾 [[Qj+߯ŕmv@N]iSa{0o=0#c&6U{y͇g& |}1̙aNfh `7p49(Π?=q#%N {Xf¹B(xreeUqsk7_>ʖ>?A_ӟQ̗_77Ͽ!BcQ¡maUƪBYWB#~~P8[D+[U Cn,ݝ>'8<oo͛o܌/o߼鞿vo_|Wkl?4jPN#|#0Ms8b5HGH\!jTElIa4hGYf2~&m0SqΕ8ΕVJ)eT3_J`)=_qBsKg~1!=Hli +ܾDo J.1|D)ʺj4FPe%NMHD3q)ux;\_˦WΣe Nck6YpVQb' d2{SlMvwuթsN&F6;<)vOT|ũWqhQ= LGޘDy{f^Y7s;턙Wb'hD +o4ldT)^;A@3P+i T:R'4`hY8v]I7BRlI2Ih)Zeo.uv'**\Wة,E"+Vr`\L UC [iT+̰BjDS'AŦQZ2)p½vj[%6D?2VVN~ө XdJEX *dOE.Jz+Zw#cux>J٢hcZ)EP [:pV֕J jn8{YmŚމAB8 +ON-(6*}3hOF v_^ BPviG֨y eSjR0LW~IC"/<83 o_JD_LZƤz+ưF~:iWQ&C(ӼE=*i3;=DyrTZϙԘai뗕߷o{c!k~??~7~.Ͽ|Ӗ8~OF? {F?5 JژcCe-?/ӾY-TXJE,e4`M?&Q)M8'iFKV9}ZjWHɸC>Yc"O߹_RPhWDD=im$2]t/L F<|5S Ss:9sWֻ&'z|dZ~,4IX~xVȡQp9(,\Nb^Pb<\l5g#ek8Hoم*jrd)N+et`O{f} ˖*AAa:Z1F(ABƓ^1ᒡdEf-.{Dk(e\:B8Ukb^ +w`}hRһr#4X G%+ɱ ~*VLbإ&_ŬXRRĎ"(`qR +Pv1Q͎\^P7V,Ю)ӝTkSbjُEkEJ9TXthtƵ .6J ?s{F +K0B2]u2*6۰v=`Q@=>"CAE YMm9f|u# LoH }QP[ǪņNq~r^hʪsMŭЇ +='՝'7Ry(8KF&ҹT/d͡{}3`aJp=6 Z"=f-ѕh&꒳`n]6Lc)-QE/8jIrUյW3y9J'y;*~Vm]5|@H1_xdMvc`o}1#4xN+Y=숄 VQE3s&v zLWiZ8>ZӍabI{Gc12~d6îY^DwF|VFq.:"xail̸֨qdlB((D9c1·DS^maTWch OMGB}2#VeLhbmt +hډco˺7GS'Yalכ2*2E +YmtR UY)3\ǚ'e@kX֍gI>8f{+YLTn#HfM z9X/`8zh&(! S[a~zbމ/P$ y)5n"1zM#+e0\m +[U G IGvp~,D}66jչO@"vZ\36r ?{<3wCW2Pm,|h) [~t˨_Axnj ]xn8Ä۬ EiBܚUpJ M-RE6`s$:c`:kFR\хȦ+@@&`!(T[x"vaGMNBZM>tXua!3LʼpV XHEI@AOTqr!T _L RvYiqGѡT:(zu1?xb,!PJiHR§-v•@gC+a,S +Fke'jb@@t)eīg]@bDrV6)Aq"'kiۇ)=G]K^7} CV\dr2.\ZS02lS,[Mpj)}[BB*IXPֆ5,RfuruLac\4T!wϙ ?vfEB89 ~(a9HpAY&c;꺙m HGautu7OGiD8&-F]_f_7ǣvdll =0lJH(>/G%86G3I-̱GV!1 +e fwj{*WJ{H1.0mN,jѮhA3 Ў]nR>H f'xPd|*DR[46mWpjXK/Eg@$BqbS~} *1_@&!/Ź[*!5)Åmxqj@3E}RroSzCIA 'zJ+Fnu : 1[]A,Vw[Ѹ0ȳUGL>y~mQuN@RlfDTPWޫþ=nuD3EP.Bk3W}צ\u.~~ST\giS'uMkžzs,{Х +:oDӧfO Ջdijj;5⢛.¹ ۶((us+oo?q- }'nŏql.@S׮ubv}56=e+ikPQ ˞2y6:%b՟& +H&ܩ( +*b ]WO~x-ecZs+1(^CLC{9]޼;_p؂ghAphsvD+{\d?<+Hա+"3.o']^_?ÇOW?wo!_k_ 뛫z/l>|wutwTŻo޾x"?=~?޼b&7eԴl*:*0˺M0ȎB +GQRSICj&EtI|FumH`U|B $oNUTW ^m鐜u@Da"IpV^P/^ O  U~Δx&C{;CN#EǗ R,R4sHqoǗa<Tl%DhwU.z M_B|,A@20#$%mGс0 Ǜ9%*tnrLE.Ojh|?.5KI?AʗPk-dl؋oۮQ/$?`V"TU^j%UyjyJ#_CU4Qt^Cȩz>* ՙa4'2ekQGW!sG`8VЁhcBL:l+Ucd}OߞԊq.W򁾊fϜ s&jڨ|9?h#<yǫOo_뛿\=ܼ#M `$M矄y hEjU +B\ +)$20tI\%$SW|Ut-FRZjgwސB + x>HHIF Z g8jP< צa_ ++O i >' Eñ*DD|wu 3s߈ +Ev3rc7}ig+ +WW=HJ.@!~Vo%hO 1~@~:r7e[ Dѭhi58 Ϲޗ,+ d&?jnü1h!%יfW%މ]!k:=Pj^?"`zlG8`hJ$yk"ո_(~SÙe?C1{|(( *}lJcU.JPCLIИ3Ǫb$2 u| +8q6& Bz>HwGsx<۱X}>~A0l +)b.?asE#sBz'D6j4GЁ +?m@*(9lʧ?Ė;5@@M^>r'L$SgF ͔&?99|@pLz㶠*;';I0ǭ_~oOd@rD ^h(Ԩ`T!T|>$”cLYd eW_ےxA1oW{<&#%}kb/9 H *'"],$H`preR6aBFY0JRBD\e7 +*"lGT^NAU)5G4b 8E :|˭N 38o;t)Jrז$ VY`I!i.y>:M;)|'Bٹp%iXD >լ!q8lnYF6s>AE-hwk[Ļ?PbXs *6$4l90V+vr2FB0/ECșjF,N)2`mM$AҸ(L)m1ZYƶD-`6JFTW +%pТ^RӗOIQf5$"x 55"rM!*E?څ".pEam!dlFᘜk}JpצTe1UIL&ŮsHjp "٭jJ]Yh-zy|tڲ"I (Wo&}C]][!HGdTߌǤ㖧<9dshudPA{.^qYs Px t.i4gB\q-ޑ@&yI|pծiK׭xѥW~I^ +Ę@T]b>k_آ1%[z* endstream endobj 24 0 obj <>stream +HlW=.7 +\졓I$!?oq*ZW?P@Q]KtSǸZKʸU ]f_w_o-*{-֥]C^ڼ"^p{kzrOjŽ_"zYJ=NEW5K/{ʜSRiZg2O]a¡]%y+}Zvtle LLp  DeD[E'lT~[uCo=D“ќ%̆-j rːyo.7bψ]6 #"Wwծ_Wz5 +^/t +b3Ho"s7]-=a*ԋ;= Zp,zƻ˭=3#z3h1nH߸UW*Es4<b~~w+,1d,J( @8*Mƅ RmZnXI$W\qc:b{]vL9jC̯F}9Yz7 )4k:;KC!똕{j1RGоzCiqf >=ߑxU*(mU=Jg(!Tҷe]T-8 7ho2)(2Y!fEn֒  +J\@P+!oF[BцDi`03XƑo8{AX3Q;Fx5c*">J@XW\^GlD4IY`ZB)JL#Py-4kV6E8|Qsi=Mij`gRo,@Qa8F +!d t*Ԣ|׽Up`.3U-pn:߹+}BӐ2i*՞CC%k+i YIB7HG'0Q|#;/*;J; +?vv,;TtJ:;|O" G`$?U.avҟED]tjPX)*Qy1mp6]c JZ$"lz4X'=vRAD^G/nڼ(H~6cl^iZifl2F6Fj eZ#R8B͙ фjKĝn%q|hOۃb ̚:f 6{V~Vnڷ6 +d 4v1Jk˃9=Pk0ǴhAV8zklaN(R !SIp]Z%R- +c$cUuR uTQx +8؄FIZsr~mKpT&^T&LԬFtSm]+m-T/#!3>y7[ߐRcqU#C%hfoi)ΰ>DQXjKME =D_֔CGKFl%du 5PqWcY]*]ÛQje.'40U Xu!u:Yff mҹ>'sI"9HlIVqjL=VK,)IRHA4G[cP +藱guB Wi/EK|<6pM4ۿ<ވE }E]'\9QSfD'U:GiWfP9 |.dȕgv238睱ݟfe$?[JۻSI$3}~ǥOM⠨^ %9CE +y1bE }HK\P.:5W( (JARC~ o֥=Z[۴LQ!;$Q+0ZO-{S$;3wC@q;mӟxm-,l^"yY,3sފ'S8w fOggpEh~x,6H` =vIa}Q\9}|NdC3ɣ дҕ=4[~Tl +;rݪv飛٥Z2wHPgm|y|WМUg+ׇؑr + >JE[͡6Ve:L9VjSzf?֨vANv5NN,cNLCoxmh̫86x+mwPkj"j8V1oo]ciuYY,)$B8_#e|Orm !A ۉ|hQd@TKɲs pvtviCW}=g>yVk8҄J]L{V QҌ(<b1206C3/{^q ꎔ{ͅ'uwQkޖC)-kcxq6IQ"4db2/6Ϣ `/G X2䇣̑ ~!fFN]B$$RM Tlu 0>RzAMGu|JP&iU'?P%rd9fF#}>lOGvH2Ƭx(fNgQgC;5f'.f 'gHUpq'Y\ 5AxʼnbLĘ3xd/qn<_=^Kǿ//8ga1on>ؼ}] ;٫o߽z]ȷO?}_wE-oo>I29o -*3O$ 5,LD<@0\['4B4]]צ-6K-0d2E=sUQr-\2hPBSǘ,BJ&Wuߔ((i̲p;n+}ף|\ÞP͗uqE<3S8]J*^|jPML?ə2B8cfd7,ؤ:޸#-"dfk0*r6, +2rWXjzV}~a3 3g6&gfwdvvѬgJq8_myy~ywnno5'R' $dah?K˚XI^^fFVpBںdl sGD]&CNV$IGՂf*tgjJ\/ +:JZ¥S=ި Hq/ˬᇨzڕmWbY_ni(֣p#|}j/% 8i%oQ"N8n<>!ɺ畹6:._݈ W/rUTˬki/W>CD>>X!A0+59c%c|^ | +hkr;~a9ѷ@nqKi99V2/iq{_nK+LO{by-.rvy7OWۺWȯ@>g:dB4Cئ g6$"6hxY k"YS7_̅2buۼԶBWiJ"0k ?ʎ2P9Wۇ~?tD M ֞ƇiSC) r|.!Vڄ+b`d6 $shSr=)6.&g!I6JB%#Il,+OFh|nT6x|t\{::Qo95{d*wkcʭg`p!(Y3 29Y2wu%b&^+[]M.j"ۖu˧OF*&аͪNyNFg Gj%eW<L 0/O2fNBTb!󞚗MǾ hn&r T!-wVH|sDfVXe{LXu*'Ovzu\ ^uN! 6+) + +500}a񽜬bˉ+oֆW= JP0gzV,FHޮCs0rb{ 4X{W#Kw#= @p6x`rXqA7WA_ҡlV`{Z}O69wG%Z1IԡRӒja3A#@5i@V0EZ H03fǀvZi:hp~kq`,WMJ] תv+?TkTrOպNM/۶MvBYksVLRҼERH_SUnf"*-v^9LcWH A"H2)٢(уiŕt{ҼdrXUtjtk/^ z&`l\z&!S!(S]Es351X>U2qկ5)ͽaǶGsH6.hE^,ABJ "ʼߙ$Uij؜=:m Tfb(Ŋ{PixR4p3<<<0АYvGQg< DV~ѮaJz T HTxL nT`5Y/7MF$CB~xd/i~Anmҟv`FۦJR!k<2 )"3AwhadaFeeD+7Ǫ :i1H%m-.Us]1Q%_]R.}{ߠE{QW0x@K%hV\;ӷZdl 7Y1"գP$w׳օAGjbfܗ2m W uBi傾J}z{k5CJH`psᮅ(bކQ:ot D(@ͰI *{Rjmm3*}k+c<6b:1oJ"O.,O)_)Ƃwruڳ(}i%{uGߑ4xW/w&Ƅ@ +E0=7备Mj/-ܫ Mn + Vjãi_Z[b1'L̟v&cؽ7"Y.x (MՊlR9Fr݉H<4S:4N + Yc66^IXiRWN +a|bEZubO!yuT +dFC7)t#nʺ}1%^/~2XCݓ$DrO,ͥT \\9HU c٨ В;>0/~ {pL&s?Ꭻ$(<.@C\OB\x`&1Ut@5b n#/*yAH@Xhb|\5ɉn_:1C"A5LRP܍f7 +2c"^d 7 5A{ٟxMľf\}ԅPjmGĊe}@F񚀖׊!ZPl mP?An[IH,2 c:)q>M:+V;cĆ$83+Q+5 ~wJQ+* OY~оJ=vPʗ|spsҼ>oAW;VUX'^ ? ,1DZzmלAskтDBn cͣ!;ڽ)&k(dlyG!c;2)s*rK?r@:J! C&L5+V)g>W)h>2%ʥȕ3XG|uq㜠xS;J0:Ǡ[6 28z8K1S,N)x ĚAZPr;ɫMJG1+aw$.<zBĭ+H2pJq2V< 7 + (ƾ'B\D y))=pL>Jx+|kL+8 0!3n+wf)*z[27Ur֑ ;J +౯i]MNI35;10+HIIe],H:~Td4afg*H"ibH+=74'tjf +'rcנBbUBNob"31Pl\y+Bϕif fPbMpE׊?ن歹Iga_E~TcOkdǍ|1<8#I4> @Z#L.LKvߚ|c@*2ZC5fv7ōWE`+b!*~/eRbMMWejKzMNFmf7SC8d΂>X!0ft I`ͤ D%M ,08s:`}Aơx\xI)rt%|voN!"}#ŚlNLcr7LR81܍ {Om[n +G:|]FBF`Q=o9;r4"M>"_sWPCeRBҞJs/;SqZZ#zBtAnW. ӂ6VzPZڷ: ,cq|S멈tY xuui<{"{'[']ǯ~/:* ʾL۩ \PfpǠhļ=߿$Ό3JtwUZyiaH-^<%)hXa> X#={~sw?^p}xWW7o gz.noO^<zxԶzeC v,jxTGrmy[rPO^Ąg5N^$^ aR5eמĎn3 C AAr3Po8N(z"$tz7/$" < KxgUHZ]J yLeSĵxH6C`H4{ncw9Z 8?h-皾>NaЏO?>;s0Ļ3XG}gόOtL3%C=fD*PQެWhn#"˜ltJNKW6c! LC|5y݄s6Ȋe%ߕ(fM8׀U4yǹ\R{[$i;hw()&Yg.b_E,wUv4.zS*D ,Lwu܋? Ԝ`&}-|k"sHԼL4L ᰥ ݖZ0ٿ* U?lE*dZKT 1g|l6ŶlgmFܢ {r˵lfl]fYR{cbOH*xv~}y۫o^ͫ\]^M_{,m#{sBڝQ"I.Z@Vu8 V\|Qke&`TE^BylyÓ@2I }''Ǭ}fkħQz1twV7ڷ&<94Z;&E tϡin zPIB$)y*V)Tc{j޾Byɸ,R}141bh|VЄ)* X +2B;r>IUCSQ*+WMҒɡ>ID|2CPFs̛CSl+&KEMj)5/a!ŊFiNeEa>Y^!9kWRa*N$Yݩ*I ABFɮt L>P q0e$-QkwB|376L#cgѳmaS,O?g/ekz6apuT jL6E?uuTftqY[ht.ٟR\㪣 +=3ڰ]pOW2!hEj(EtUQA~+ +Gel.oGB00AjS>LY9$h۞v,!ɶPq +om@;v:nVU4Vu_1u5am茪z"LTMX->m}arO}kjZJҟgr8{<}K^q$3Y-Ou},p.UPMHT +SQYY{#2d <{ f7&(rh a^U~9Rvd3b&r%s.nMJ]gL۲(q`LbgܰxU; $ -(: {et V%}+L4EROc +ѧP% œNmǚ#Pv0W +3pjj_;Lڋ fQrC#@-2a[ sbФ'^?wtj<=E:C%>AMz;,SH(!ߚ( x @cیv3G4 3ANgNC!A:;Ty*;<4(kIDmӎvyh$rѰAV`Ngo){Y2GHR,4)YSpfXa':'-9McarR686ȴ-NԾݰ;: <^-}>XWQ[v\{AW#8=u7\h[m2ceq4CV7FjsB1Z3s {"$3zx,9v o;||o" l dF3fȢ㦑,;0q'@ߐ`6'.I馾d0Oa>ux8s"țzJ.p=! m"*O7R}x]1ʚXWu_sO#Fsi)UbY?_Y4F@dAmc^8ϛ`WnUqfl[4.v$vm7gB!e$کX3!$-QDnpg~6ikCh{ډ' nԣY7n^I#dx{9Y #z:k+}3}ࣵ#ukR&ӚI ahnNVh{?{U.93U`bӿG(6Z RbI .ؼjN&G g Y%b;穢Y3tv6tC cΌ/k11Bl^d Lps_ӯN:]Cr@*<9 ;ozq蠶_h*K*{: w ZnW0j+'WתsEyÿF_׭w5D#IzMYO}2R +x2Zn`) q@V|o%w +V)0 S@d+d>K>.oD~s'ʹwf̂;l*uGOUp w.e9v٣2NCᖸDsK@UjE [b l$ڠ?W]D[εPd"&x;3l]q2PM>_QZܕmDָYGS(2griUQsǡj4^ĒQP8|0ed僳P pB2-%`dy3GPIn>t6O14YKٯE u`w5׭_<-7PwM=9-;hwIW}P\Sj6wҵӢ3K#`礦Ԫ%YuΔZz"ގ.eu@mCS'J|퓁r ꏴ]GKu[XAPȨt՞9OLµ,\! GTHsiTΊ sqbq[ϋf% g &M7F)iCmȟ._V+;eIg{Sy<-RL+ JM,cZR=U"v戶CҴMhIg~9mݞ>o/_bd2qϮiR(6%/2ӌ.ϳj$<7Z#f(/yf؅DμӚ6>zƻs 6{/Jnي@j3/9-GsZw wW~_)6ü^2kQVcyZI@7|͒ +cO˹ g6X Y= 8X|NE/Iv229fٌ^2kzG-D Gӌs]*9% +h7 @gMUJàe##h&Ab. Vpj("P +(le"8yY6}D,ͽBBWCkFUyk0rQIF%˭R +ŗٶI͊̀}(HYMK&-"aZт O&чNjؙ!'O +}e\)jWnR?<+3:CHr=6ʢ\N986b^T?G=·(;˓o޾}q/߼zR>_?<(hS.3'q.h"s[`0Ʉ7|_NCǿ/_݇_ݽ{{}?Ňo˓ϾC_~|}Զɳ~xȟ?ӫ}_vkw壡c/O^nJjne)h'xF2_b0w^wy;ZSml:Τ^a@2g.㓿ڴ&o6cQ>~wCl !wꈢNL</AK.ړ%Ȍ¿mwȱ 񫭬p+Kt o^Mg=AF V!pBXe,p| 'eS;KeBw-L]\|ŋ@gH+HMKZ) VB Q*Ѱ"i=1)T8%a#;4C.H4g:e. )dw7~) +{|Ej +Hty6ֲ$aDjoSժ,w޶F659@eN8 ++zk =C[QJ?L ;-eJj u3Z^"dr۶*t㼭r]"yFkڿ$8xDTtCh^EN#E9V8"؍ce(R mTmBf1wk6D'Ta<r0Y!"oµ A5j(_ѕ C8BR''$ AG)7VnwR)PDy|eS*TU">zx 镗n @`ԢXY~=BhGrY|z1(e'DINDQu@$l%3"y ydr. .3y0i#= GϮ=‘G1`Sp$g%i#5Pv<ݫ;uȃ ټL[#JpxT?Vb#}<{#=!L&ieN1,&JeL<.1 Gb!] Q(έO0!qQxtf&fuj!6!?CĹ\߄dɱAB7< -Fg}- @G h߃QCBN@i:6" a)aRa#T. % %E!ci'$n y^v꺐<;YRm[d!m˗t[.d[uڶJ? eL[;* j+ }JY$ۥp,XL]"J),`ikCƒ 4&}g+q \ [\J +#uOm.vJv7K)%rf)v"S;]`C"DR{ܵf S0wQ  L4 +l;/r꿩/s%M+ +J\nn= D0z~}RU ! 2ngtxJ7@EZ7LTo4vyT|ƅM fI>N`bX"/p1,iun5A.VsUe%بCcKB}5>WQ8?sD4c2ar=iDD NzaN IlI&ѱ@輬0<LCw1J~\HTWK;_<=BhV"trpu8Bql7ϧͬ +Otg0-A,y>~JG̚+*@[~jlXB-v϶=OFuTy~2tk$j1}JZl˶71+7B&E\RH]'*2j\e5Rdqޞ5RN֔OA]d ,ˡ=Ecq}|)RRh5ǹ}i߸n=|~_> b/;w{O/#ѣwwDv=:2(@cHއ Af5SbΤe$PÄO.yALerwN;|Kt |XOv {2f-ѤݒpzNfXL +0 Z2qEcמDjw5 P݌kɲ@)I&WY,Y $k4K<,%=f$sVT +̚ wǮFЯ1S,zl%/)hARds?DnT%I>ȁ%-9cA'l앝`#)Ys<ܺ:8D +"qMIw%Y0 )IgNǑk{?}L \mk\b`PԬrXS6@"Κvp6<=f|O<>Bԑfߝ(iJq+wm'+u̶F!A!-W* s>K7*mf3TZΪ:= 3;h=,xtr _+$I$A ^cYH(DoAQJ%ץ2,a=ci0DbE\V&'r$4B%/I>C0(@[O\s]V/(xM] fm)=fUZk"P2To=T;*讇q2$S7m2R}]KPWCCh~܃w_ Z4AJz~:G$/"CVaay@fHhV*۹S1O+M%eY$T,#宗\,"Z 6o1 - (ѯ麩 (V-]+ +;Ǟlw.гNJ~cvYyyVۄM8w|=[8 =QoF'T@3&;)z&*&/O_H(ւE]wLeWu-W'3zЙfOXHb ϣ\v HB+UJVU*UhbG1n JG[*FqDߡ`zu<%xG<:}j._9Qz0ߥPЕzH$eՈ(]i=̽]%LBQs\0v~(CMS =qLjRQֵ1@qLȀgnJܚtt[lQ>\.َ,bSݣ:6t4|#/J%i^(HWh GJ`RVQv\~2TL2o|RJ藽l&lNQ#?Vs$ )]Um],e[\&" +A[D*QZKeIAĪDlst#2I"N}AnlW'ͪ&nJay$)']; >?'/ss`qJYL2hK/MrP}MvG"Z>e^bb֒ZيMf۪:dNPJ,m599KFAֶm`m0څԶfTnRjlv2 QzsE8jۭ鱨mމp[0R?˧iS,>~ax]PHUӴ#xv䂾01d7¯/ jY2x,8W-ъ`K">߹5uDl AXu3Dqdn(HSS_sArymz4}Չ)~!tX'%K1K1'JK'>2䤃eqZ!Qi^]ZJ*A:C$=:ke]Q̳ι:cc}M+Ք3n.ȩ)Ypfi+B9w>UR_n<;E]!dpj$3M&Egf"nsX*I,6Z?ȼ]=c< s<)xF3oM֌%H?ћ$B!4>@vIX[:k 0%i]Rڊ06-H#cN'kໟf0/PL +gNFQSXor`(͙s0 ;3KŇ jgѭNJ1P'Nۑ‰|A3Aǘb ^Z9I: -Lng78$r:(95%-|IeUMTp*7Ul>*pN=,0@,$S I@Zeae K;SR'R\g9gj8j(%k7 .tCDdYҌFҷjD^`X/+L? 0AN626*Yv-A!XйFôd\̟:ڿ{DCp0zc3^SoQxXR%FZ5 qANFb0򡉪xdJϫELUj~ +fEk*dnSc$-PhƈC5-rd@Ajگ-A+ɭaKbZ)@Et˾3&wyR^ eݗճHZd/(#Xc&/m%^ޙج'?,Vr}z-c&FȵC_pm=}2^)ekDPlVڠy @Hi䠲6-#ǃ +m :?\8VZF\sߊ}o~ƕ!ބ 󖂵dU>db6tN ]ȶ")KGiH gT>iՕ<~1Q^\۹WsR3YOIuk1I}G kWyLoyסf@}mEܛѻֽ<(O<$=aae-. ]Vҋ 5B_8웯g=xߨDToISSsU-ŢͻeUPI#DCm_B]Py04)*[c`fʠE#^Lt&I%Fr6SfNbމT\_YLSAm;|$gDTn\4Z3MfF<` 88|w,N5_3"L/MYT'J{@m.wǴFM!pO4: ē.<($crv 3Sn\ٰv.4q+NJ },lNo Q+|gԤWzeC_FduwʪRn_ʒ~_cFzR]0k[,&10b[82@sCBޓ>?\> #.']_/O7w^ˋ~wGۛ_rs?l<{?wۯQ<{o^~!u}__^{2R9˳Ԃ6}.?0FXžލV2aQ:ErwB &NAf*MF$+#4?d:8_'׍1Hc:ǀW0>~d+7{ +Mfoy!עXNvIE-M +@|,8@X->>̓vTWdq@Ն-rZ&!!<(lҲ}WJՇ퉉ӛftSj Jy 9/U 0IV 7d?T5H<;Nb0)Rx jO؜ X-.~U D>stream +HWmn\<,`M6N։5ENlkybj7Rd]Y6?UE$)Ji7K Z<\UUC|u +R):")4m. +@\KcqEra`qڸR7!EDsKÆ2WIfkfWԱykEӺG G,1{:0GiMYL]zjXKYRk-SҸ1N3*%ѰS|fa~{8ç}\6oWRXnw_HB@U84^oϷ|顽?092ry?1,Îys{bx˸yqy1gwˁ|;=~xuv|ѽϓwCpp (odSݥY3MS'"XNl +‹r&!Q_{> Sse; ց;{>,_s>6c1W]r^4B|p`a4oisCx`T4ȏ*o#@+_D$hIDz6Ly$_(h@R\r{s2( \2QN"4kl9SlC} oSeĺ;7gH\IgK3u") U[ sz&Vzn _0q/ 62r? Q)G@N 'j"$ʤ@+5GW0VPl1SZ))? 'dI67Lc5ԛMKnbQzsPEN5R2]Gc?@ >?aӴLzLHr}5+@;`{ П%LC-}Ħaf0аEcS[?%< ybrƑ]f<(#Q{A|H i֗Mb \J_ +U'I5l84y0| ۼ\(A%GrVltfSxLފьB%Vc \^ݨf@hl3#bj{Xt.M=l;FӍÚAh0vb,, GA&rg {3L4ZFSmfQjYVbZ>҃5> +cf4+3ᣄ,%(|.àW2a6N 38OY1S u+`)Qi`ih6ѣ>#ףqȂ=` +n+Vx%⤍Ҡ H>y-AQnmcӒHP> eA +_*4r5-xhlfJ: + n/o.I @ F,DeS Z&Ke5LlUBF +-0v!ybH$oan=bLLŠʝJD3չa| <^zP[;;\o3NjYh#U21Ey4EPUMNpAjbY*i0#)NQp} +uTzH.Hs%z  >^㐴*b} 1޿dʃ1FyqdFxXyu7H:$EѬ^ཬw/5Z&:u D~jh#+7IC)_ʲp4Y0^*cS'L!2xC̫a7j19)}Յ[%$t{qjgҢC`Q}*\>'#Rڄ Oq'罹Y^R,)CԪGY0i6c`]0mMvMJ8`4FJZi +g_&=f{ 1ڽfeUXZ] |f^'&*7n1O㺣L3PcQ2٘g_jCج;Id3zäXG?.B $ir4NjLP~컅1N^kӑu0Qt#Uuk-n[)1HNY_) M6*&t[d]CdhD@t.~6,^Qqꝯz`-'pF5w9aH[ 1je"y<6[ȒxhVj22D}ˋ%;"̼(:μ z,Zo޲mgʒdddWE*['DnI|KnZ&(/߲yYѕ1#hq 1G&i/$v>il]E}%!HYGGAYxHr8k?4$&KC$sraA7k~v^7I O EJo'd_gyꃗ~m(ad<^%f2+| Ṙve>3T2QHSg0Г9[ញx+V͓d4l"lMdX}堙=8bNJ$7J B~[u$EEb& +P]Sbg]r]]F2ɸF՞xتRqt-Лn MdQ~=BRr.U7咫{S^@Z&P'DC꽋&*)|V-kG\(R aw&R*%K1Sŵ#Ua!Q~1D'RQeaSmLL8I{3"#9cfRԄq܇Ps2V\Ipt{I5ؒDS^Sa"-X +/3o(a*i#$|qD#AF`hTZ"3ycݔz89N XQW R"B[b]UNBl*|Zʧ矾?|~o4ӏ?2/7}HeR4>F&"Z̬zaP]Fg|SՕyZXt1u9aĦe\m(^qOow,IL2AuG#|a<0+̖{aUh &-"Ẍw2r_zއjnsK:`9r`7P9?mǙW:pwX{v)uupvHtXtI6V4 Ě-᧨(w#-!F{$um&1\9^ +$ (v8q<~-)?`mfփjYgYv$j7ub nR.%T>1 +]*;;OE]\6)d9xp 35|҇-؆h +Z/gY9Zra@WZo鲝`U>R-3j{/-eh9 تUY}K%=/[~ .|cŲՄߨ +2t;>R#( +ZϔW# ^m^E5Cl7:6IdeV'0[cTo@h6Ö:r:,vV%+"X9wFBr_"~ӄ2qOaB)!Wۚyfp}="Na$$e6"RZ"D 9$$F;ʙ1c +{M {Y$kTaFD3-h3KWȐ:9%`w}H-4V;}ޝ4@Dz^1.uM fK++uqIErKFuxX#F.} 2~$#LFDFus0f[ET\#|-%!VZ4Un$A Si+fw% +e)CVr)YjU qZ~I7}jY_[(&(pH1JEwRo91EٛsiIbDp{mAtYeeNYfDv;3"= 2}nFT:RS7T .1n5u:rBJI:%y߬M"9IJV>5|WLIn nWϳڮ &YTD58ey̯舼Up,G-6|&w2i!?e~E:)hMOʣKaz:_C=^i +Y/˜SVRZX8iqtTIk̂Wĸ'<s=[ p +lOէT#d^! ̻i\Hu.y0O[B<06 jv:vi!+{97Mś_鉔ɦ[E -Pz8Nh/!'g|%g\~֕R˜la.`H'tȹC {%LPҝ ǟY/ˊ+ +ʾԐ`z$FThZ7Ƭ#\4M֪Üsɑ+?_~k/J)_>ǧ~~~/e7^^{?x1q[Ae.Tk؏gS9GJŜ\t&,9ӢuQ*uƣjK#fE zrR+ AiC6D>a ,:e͒7/>a!hᮏ\ؕDeEX}OêO)}-C߭5KPV,R"kճc*& 2=K)>Ra<Msǻi x+`wPo_~zvvPCV\ʈKٓ`ɅǰZ;)\Ro'q{"8k~~OP$1s8phŶ4' 2wi žŤ/jFmBu@=zA4Zm7z7?-ߎC->x~^m։ߪG*`ct6XgD\V?\7l rݨXyq l`dP] +EՄH v91ɖ2. 8L} 3~&8))<1@U1Kg֒5&Z1J: a&ֳMxyC{э왻ث:@nhSizoF=nndCTF &b5F>L>I54&e4mɉBBu'*i$l1$r^AܗP{LYIH5sftХw:{\S+5꾒U*k'2\}t!"(}zik>+9 NR!MJ&/@ݔ-4djwBE#R=s(_vFF"mcuZ _Ryr #>1YKo$U&,ĪxU6X2O/T ZYa۳X#gIaȧ|)C$*yIVų͟-8F>\kfp#kQK0:]v84Kk@"XግK +iCɵ#Re[cLPX ٽϦۤE?xrg@O3W,6!u`ˌnTTUj麗<  u;f,p:Ym)FLeےrFZZU pc1cK_g"?ﬓRbfKZ}8k#uFUFfFDcb[#k;"*e@ +M&'R^x1P]j ج%.]2=p3o4Y${g!e#WJuFY n bp#j8}፵/ Q%Y\ANk_жMJ7q2/uICsV Zf t/q;RˡP=yuʠ|P04#kV&[\{| UT +uxGEF%4lxGO$6a Ŵ0>՜/zr]vXàrfE><"'ES}3.9=D/|x*ǩ=rZZӅ\%P{ a7TQȞ;_=eT"eǑljqh>״U`k+٫CMD5ݧACA[k%0Fp%uUh9U9!͟zLHdS)GRs6qLa>w.Hi7Z ^ߏ)nОĤZjݡ(q:FxJ5fD_O2/rff B dY +T5iO.GQ<+O}6;M#G\mWa/ڮ6/F:FȘq{"91:Zo*Įc)}WP}Z":gArvK>;me/8D7;AA+qf|١*(\DaCN@_㹔^n+zW~R +TCr%&a0҈(Ϸ'$w0{}"iǗ;Y;%WRà@=E0]hRF@ . tא(B=rqq +YI($P[2êF`{I)Wwdj[Zn3Vw L9xzOX\`mTk ϐѳvr:h6jHnqsMRr԰U]첞uR}Oq(u}.h(Z7'_ s$tEt>Y ]C!?Zm*9|BIs2֣2hkgS-+l[|p S{_n>ݼ=' +h_luϿ'o_x|>ZA$fG6(_ӀJ + b0jDBAgSCOCCb|Lؚ*)~#GC$GBzBLbȎ$?xI!Wׄ圄{QqJ5 !~\8]ָ* &WIe2~"ICcٳ{ +Ϛ-Q{0:wCW.ć(PḮQ+T2ʻroJ#3APmG Eu)$V#a- BȨ}MdE +̪`-k֮3ET<h=Ƶ8%O'F*讛7vX#ǎPpuEㄩP}wMǫ!o}L B!E Y 1:HyquVQz % !.* nbŗ2*80g6x»[1xU5ˬo&d:j)nu ʰX٠2a%- #Q{{&k@"$3GB,w- oV +)B񄑽7h?*I9p, UM]a}ҶG=X ԚSs^iGhÍ7!f c&όxRW<3fF[:7iacev(KEI̎(ݔbXB!!BD 5-O4< T,?܀K'V2b4Z)JJ)%0N2qFYd#mx1'P1kZPK݊(jHIfD Ⱥ6]Ӓ+ !yOj*逭 !?4Дz6Ws0,ؚ5]} Nw&ʾQ+6h0 x=B\Ǩ7SlqT.ʻAY<{:Y4s#4.kHSMWGPͦuqTR}*jll)*K!l,ne$$T94:7UY?|"{7⣰UW HӆSG5@^4y4YѸ2m].JDKIuYUP:N!1ܒD/ߒQo[L|=KezaTf3\Ifs# MѼMKΥ⒝KCk°bPvh +W֔}$:>i35,V6)/J=VQslEboi,)h!ta$JMײq}6d$@0Dt"`L1&z\,`Tګ+ Gs *jFiA|.VzT0q%8Br@q͔4dl 0_im%590;Qe(""W@U~L{)®"R/ Ҩyi6I1 +imXς\|hxZ\>2` +S 9xr ++G@k'@5L6QȦ:ΊIsО +Ub\_;@ʓ}S;9܋?I ]æ潑#EС TQ߿o]$xWTj{6eԎ`h"8Qs^ƌH^[T!_ʲϗ.B[6`&R D{-`-Ξ#tF:lLDc]h5mҏ scGś3rKfwwOvs*9ÈzPҭfazf*_:9UY!+'MQ= HWnrY7߳C% -N&QIb-| +B`{ܴr3dpl3,\GU0\m47 %A> 4 EijݴjQְ DJ +ݳ͉G-\̚a,onIҽSz.Ta>GIl9یk<)΍["I1ۉ68xlВFj dDf]HgRMg>ee3>-\ѐ?2R1#X1S9g-d-">LhhܢfN̸Nm+`3I\E<=iWYv+X^fn-2DAK"|LB. DAZSAeI h82Ef~C]qX@`'EJk05rnƝqqlQlY=f6]jiz|F)kbj_=ӦiK$yEk8^@=J4(-^@\M:B^^Rnv\H9׫:a"PR"ر&2t26" jؑb((!{Λ;memQ" +5@p]~1z!7,!.k! 6 YK3a3흄}*uQJ\ο}NJ^ "$ЅP%!"MQrc x{XL89l8Y9&^rͻlV$hDw!rV5ޅ_-łg4LMŹD<) Y=͍ |όb [Ssrɪg&VJqD<,_<4>Br+f^(Q"/aSjᐡP)7:Ї.~S "H(oM-GpPwjG`\Qe}_ǡV&Rn%|}ʑUhO{'bq#ԧX"[uFIfSПAE͟lە$Ȯ!E)Dz"CҨ/MGh-͗OBb&2f\ZR,}v_׺7N̓oZ2kwLA/2Kd)%6K3:g96r7o„)nj.7Xԡ ݸ:@ިEޖ\ BX&uA!LrK@0%&{/7"etj[pm8n) ilBQ<.G7&&\n{SԟHyY6夝jhx$=CGOQ^uq@,ݏ  +yߏ3v<)]XvB*>6rJ2կ Evz3)Sl=i WL0p"ߗ[ZNT |/[I*nN_>6u7䝷^H!q%h(=HYW] bˢ("h )B01-&$&h+ 3nMH}ݾjv%?boɝoC_2,%~&Cţp:8q.$XUz9S˟fr^d6L] 4tqG"0YmT"E[pO;BƑekk}dhR>}|~_퟿}LJ5goI! zcs02 ~O +ᆆ>^Df}d|6 {hA* ~ӿy.HTE;3\MCCDjȪ <+^d;h"ʯP4&_Y)`<ϯV]5fe!ID5sES!aphRH[RaYzԨ]̃cdx&JYkC3 ]EX/Ez{W*1eET,1tbS15#]!I>ҷ,2>'ZAz\[VЕf\S9 Gd"e^<݀+('A1#"hB5Cw~qk-֡9 J~_y592G$|3i:תZ'm,=wP7-HLXf $zIH tl~M6-!}P8vo +vsQFx=,j/vrDn[k̻*'-is!+vλ5K(#R+8풾 Ik0U(z&`vnq/̍iz`"Pl PL@| |yY#S^ u^FؕگMy[\|;QoqF8SyA[摳Q&:;5֍#"FҎe 65ʥ2pz\̛OT{lP)@j=yԬ +jsEUE LفQTC3[_3l` b՜<lkw~ZW-]3Bdfftsx5B0\8GD?g Akt\ +?jk9!'< @/菱4+k)F8p{;@3`2"BHN!]1SBW#l~;5HюhN ȭyHB'͛Y*UuJ"0k"1&̆M<ǣG@~c5.d|bxc4")ϐxh0|(YxўlX%\KsPD 6bEg1 oɍlqS)p YK1fV`+?[c >f\ z+ϚCO(6 :1 Mic@ϴFR-l;~YB_W)?7x]x4gq5g`0@lئFS AxKBaӷn*WT# )~`*.d?LWX؝zE^'M @IoWS$ShnFΛ*(uP 2o㉨B +y,;_QY`wG?q~,oPsDpr?C7Fb@e_|hGiP3b> +'W +ǜllȾlP5rn+1 n⇈ވإ.,`Xⷨ[ ȐM2M Kbh*\b@H_ڗ6zTF7D^gCq;` 6S9QߑgM q92۵c@^R|}gQp&TV_aCґ0\@t:HdNO`bA\Aݳܕ=`WKAȣUVw2s-(xdpTQRJx5 +zB\)JP3<+h]5rB<?`?ڬwJE;l[x4Zid z^@@(\=;vg{Z} -SN;"ǙNߏ@Le / @Hx-OP֓;4"!PNi`_^ +Y:77 +D=|  Ǚ(V}EArT(#ŋNDř {[ׅp1h: EECAS-O~SbrP尹nTDIU΄vPAc8_DD LbEź zZLS#.r-@;{U;;{D4H@lD_LE[y;)P#R_8*Ӛ %3e%I»W- &G̴Pٺl!%/lq@Z.2d^^j0*LIZ);jΦ> ֶ{+U+fWRsOiYT@Z_ 9ԨDFs<5Qxu/1V؏ED\#8yFS<֬;('dluDslo<@o) n1%!7lؿ<_q ƊK KK!V^u+K{Es W[eG*|J 655|g/@1eΦ!wMP̸ُ v^McTfDvTF/sܗLed2Ro̤:)d. NBttGy!Ҩb`5[FEɏ-x+T%'C pH@8WG< }zlW ݾq]7ro YJfBz0LA\Ƒa>cG4 庻e}UwfV9'kG>3J}`dhNEޏ̡;!fЌz fRW21_7EPیֿv`?u +~)njk>]@gŃ%BԾ5P2i.Dܜ綼 ZKh|I(R)45Db J9q] M۞r^}hu q,40S魐RF%8eyStDFU2zbǫNɈH*Tq7͖$>v:\8PzH+42_-EӉ,ؾl:NgܓmuήB.=TGj kU^I +-M$ckC5:STe͜?䙲rɥ O +y1;x:V +L67aaFX獘S!&0l1:4'H0QHLWDS5Gθh{D9e][4 +dӓTЬ]G7E IAn7&STmLn_e_!|Hl 5d ~|kU'r!K3=UOO_~?}$TJ>O_>_?ʿ߿Ѓ~Gz?{8`"bR=|rLSx6{+9[& . lY*ݑ3!Ӌ +MUcwѪ8mKT\dzomAxK %g @c4Ս,x?CIbh| +_=,ۥF#ȹv0J)Ll؜O({HmJ!Nջ*v첧5Yr?1O]Z \Ր!Vlۥ#_Tw_)Mj!Ĺ\MuYdNLB<_#t#B@H-.*%vNT3.J%S332I)E7HxS elѪ w +/oHlD5찅bZ\*luۍ"mâ<8|&骯x8f'Piz%4/gr9H B(>׽x\ "LɠxtiyĜ5溦8+nFfIxtkLe_#Ⱥ +kuUN@H+AœkMHk"'ՌϬTVWSJ?fI.T|ND{Rj:8-2b Ҿ]# ؅ToS⣨h)~˼ߎ)i14[[q̴(jp:F8J5*'iD_π2/RNx9;3) +93ؽJR~O=~r(}i*NDWHxmk̋)9{ݘurvn2crۮYo*Hg+G "EA}oZ]arEOh@"fD茉Kj9( 0oC u0^Xt!sKs V>9_v;0OhD nƫRcB(jA.AGE0\!?iBq̉qA =챪%:q/vU*76979h#tl=I׀ ecVAn_K/5:U~:Nl;r.4IDM +@[w#3svĹ"`wCqwix) `6V#j*hrȞ<λYkҳgL5l^>-q5`A񢤸$uŕP}9OFFSϝP$~)|$8tn`d`8|s;iwɴ + +)^H +'H~k,!vV> + *wb<6oH8ƸOBqVE&At̾zHWI>ܔprfH/|vO*$ݛbJ^JM%M>w xq- $7A`5*9rĒϕS`S@uS7lײWuQc(#F"|Ȯ3O LFMjmm| k}}Bw68u3t 42*jDoפN^cwP͔b&m?O}|Ƿ_~k':W~nO?էw?<ܯndo_?6Kdߏ?r5ۓn?,ߞ>xɳ/|x,Oyxo>}w>}p:'O$3ϯRd3o;}cL_S 6U4vx4iN Sm(vy9b>IDf&Mܩ*8bF jXS;N)SNu M8$/ڱ9RcOKDucmFj_j SU(?;ng +UJ1K/aG1r,Ou$kNcH {ձRFECrI\0c5 Jn;֍h֐G2:`kU퍙 ߐksjIJ/9\ RtqŬB5Җ!/^1 rcpF[)aR1tU<SDAg̵WA4D!l ]ԿO%vT)K#D$Ăb,+5-MY)jvJ,35K8tM߉x X6]G_[J6/#uɑC(K3Cc u7撺GMJtЁdoelPQ%q.+>Y3eb#Μ6u1=:''>T +3G]L;G\b>vc\HH:I +a:A1$vaz͢%<\Y6FʰfA-nZd.`eSfx[sS\٠rZw t/אpVTl ( +0])1?kltلg4)SEF٤.l/Ī Jt)$^E2$|ҐcRO\@qNfl,y7i_mdMK +-ly=ޡx&)H Ғ#&~UT_}=S!2#0F#SģL FH,!4Cq/u:],`CEg^j#\I-' CDߌ3.?2PgVƖR([*Np=@OyIQQ!=-way[ׄ h$V(@@R0t6.rZUzJY܋fcٌvpL,/93􋞀)v*U=e O7>_o^ۇADh`u%o*_Ghg[o~]͒VH)< JeCϮ42V^CTlwTuʪ.aYlU-kZȎTk]7D-9JNm,֏=Ր)+Ϛ(UWkLgr|']k~dV6)ݬmEǡ8Ti8Y˫8 FxՎ{6Q*6L"E׌~ő)8s쫉hv^9}Z=rB[MlSN-H;5|ג5^Pk="طqR~a,HyaJ(ginq +t ĬSe@z\|' SB֘e DBFow9 GhDhs4{[4Hɿ+ +Y=}o=F$rfr9Ꭻ{;Dwe?t9CU-GJtՉ<u[D!Rj^TP.%:m0pXYp]$y 5{l)&ʽ+Mko?O÷!nI-iV+tP4:邙`5&2[uJد{+#@D檵۞(z"HCBF` +YH~v{Ƽ pFkYsj +#^ +\պ#hCw]ed ƉC֣ͨ +GWYM\CP +%"g~c}ZeȪyؠS=:qizT]mQl-ܣאIe SݯsyS)daل+0c 9><+/e^#]i8WE%$}:aVY5!~f)ES+xBb5%V>dl%%lޱ0RJ4ViTY1(SYJ|H'?/(G̢@,{zlVUvj,l4&cp&{~At 1 uQe 075yHj=Lq9uJ7U +b~䖓dz,Ff9|ZMQ|s*,K?`DѠʾ\R!D.:ćQ߼JTC ʧO endstream endobj 26 0 obj <>stream +HWˎ` D(\G +/H)Y!hhnw [4rv=?'14/q\bvHl>_yo1׷TBPy]V@HݗL;ġ0ǭ4o h[g{d"]87םz1n|Ч{1u4`r*\چC +x;yEØΜqPɽyۚ2)OD.p} z?/g\5y_OvNq'TZ%]n-InDKFZg;+#ҥwh?6Sqb:uMJ#/dMJZG`4sWD |tFz[/97ITō#UGpSYpB?i;Ι 3oɤ(58yD!ʺg(H(]c=w 6qEm:{ȑ fQ†lEEEL^bnYQ,$ÇFj_Cb4>h9V}iV3/I&b)GZO`f9z>4ݎfkP}j(hunJªD"5Us0zN[5G !шmV=5(<O:T-e*LZx-(zϛ9Қ FqƶLX;9T$ݲ +эb4gT. C2?UEW@^s- ,aG˨mD-v}q%tR-qDGQbKjh+( 0@`"Hz. m9C_~ӻ//0te>ǧo~y=~~'FVÈvET PJ}DP^v5d`ζ@)8`m>%X{ȩ_B)Q! 8p?/ߧ IvhBgGw 2t$ƚ\-%xy +D!Y.yp +T: $BBwc)m%{9 49 Aʿٷ`Y`X-bA Xin6٧];P9i zBAFc + v FɞޓzNkB*j;ci[QŒm +G  @&2 +{Q PٕB +C_jا5Zo~Kڱ/Fme*z#mbbBU0֡ft9)c^*2qlD{Qҁ: ҝf _eIi +'*q)XOtXQ]o lmRpH9!Efd]UlCoh-%5қ/QTʠ ġ֛őńb6Pgqd8. +d<HJ%83X4H!kqT`T<ҋˀ ;̈́I8= +{138hPkT6D< K cUi~Jg% +tHCPnfB)p坧{TiӿG?rZDgI#bqVroS:ۛvQN`pߎC*(0{CEWν5xȬa5N4qV- i  Ah= ߑ02iN|# "829?A,A\!y0FO,p~\T1 -{6Jf,[d&i0'MtGa: D Yu[㲺G9/FDWUE)PPe HhW+%̕e3'dՏHf\-\OFkDٔ4ȧ?$ JsK`#NI|ciA m>E Ag۲ƒYdkjlFl";Ri{[f3)z9gʖRPz 1lG1 ɪqRd52\hb4zMJ0qFi +≂RfF'p#9)%$cŰ{Qgj-wO~1)ǷOBAVXRW̜Wk앋\a@(9Iιpx $}*L4=CE{+= +⌯zVtO\\(".f;O'O/IERKx?Y).ThZo?wndvw婌ȸ\oMjO'XdXۥ@mtȪhnߤb;jםs7J~=h {j|'*ac-qkLjcx5:0[dbg/Qf4}n $#o#}J + R#E:ëFT!E\+S&j1̹hF7H';z83j:N:MEepB蔞u%(LBz{p#T ]֎@ߗ ۍ)}˲]3@rX#P כj?CLki2CL5xP$qf~AweO1k6+!|(p2B`C,q)qnXruVv>p^QI 1n"I$M9p>B+% +`Q |0F|{dzpF;@wRC|RJum3RC6j&dѾ} -"Zwb_}aGӟbk 7Tg$3?.gLFpE[BS:Gf5#v˚DoԾ=HmWFC i0Bg'^}vM|O_6,tFiYpfd$iःX??Ki:AM6g-Pr=PEQUSDcGxu6q"bt5kWKMHۮZTUYL@ڋ}RWиPn1hSEK&(:p)cRgumeฮeme!SBFɜ&hY$H 6IZdu=wJEq [f0:Z`׊xbpv"^>XDs::4'V810_ɾ#bAl݃Bn|lvZVQ7_QT˛ ;N ˪}{͒E`ce;EZ+# Jx±uVjh}`atGP!b3i@j(Em=BT/VB4v;҉#{K"#\1ՂɢU^` [2h3!A}5~- +IJy+gA-rȠjb/b >A9=@euIʨשpn}=I^@c]$z\v ǵ6lQِJ1uNӋӒO,o\d4Z9Tt4>ݮh˃aEd@3eov-HGtyA2΄yz!,Q'h([AC+72o,5PH:p +t³K3ɣEXG*Ӌ7. "l^3{U]麖gNH 3,U,,+~8|DL,Ap%b֬*N[>öFզϗ~b l&]@Ml2il@$-(ׁI}zR޿ݧlCQ9wDaڨD&hNsqX8&.F_?9}JX?9T@{a]3a "-(K.~ຼ˱Ty=8$ mFx@SP5me짉Qʉ J5< tvI/+Wi-\09H*I;`kHjIRA}T*I7Z #^IMtu@l=)M)W0h\R/'0zX>iɕ`] Nzq^4\g5XFpޝ"hJ &J=7cWT~2,ۀxCp _-6UG'1ΓL|G +iϺOl] +#imfO):aڔe5ph.P2nYlrhM`sO4/k:ELYYv2%aǵ`}]Tu4T!֍RRVPpI[%~f /awC uj)܂BMFź db ĊvFX9F)kb5sӕca+$mUj>m/ۮ(ZW*AZ^ϺǭP@yQ)mI?" crtVBdDRUY))ӂG#ORbKwIa͐[/iQNB7 ;m.KjN%IZpyH)2%mN8u\j@;A\.ZJ?U\@+5-u.yMQy9<7{/4.͐Z42RLu%*%/.D}(k#} 4Tn:M=*c[[?M1ghgh{,qTZsB<ܵAբdP5PwlEЮAifٗMY4^1st,tC#Hp- +H>*Cрނf1^H@U[Z'^Ær qJ/go-7Kz%}Ly=]drۦ-~ޔ1{KP^B8uZ("2oJ;]$[>ڸf V(prIpC]TNp  'P Ǚ+-&Gᤴgfϴ}}HGf{EEoqd2G5D\ F 2 vK8 "C5)}oWa~_}׸i[)eXZ]8\D*nt9NVLM>&@:ϓuWx:DEt"3h5}R"U\ֱ[^jI&ZG$RXzEMrC$[(8#ҷP[~kEC 4Оvŏp>dn*eXޭPAF*v3psiN&]sFMb(hPU=hR:'Cƴ$Uz[Ic d =xd\tL<}a(Q"2[)̢WY;@zW)%~, }RHoetE:7Mw5,mNpd +SYKL*ZrEH&Tt3ٚvϷq65騱:hٖ"B>,Fd5]cr \\̍ OQ1|h…m֖EK̯xzf: d# = vyE4@UB[Qm~ϧwo޽~w@/~ChPM7߾w~~r5#շit%3_^˿ϟu{W}W_o~z[q~ݫ/~?G[ >|/_7/f\-?^nw9~(B=FN!q"ZujҲN]f!һ"NR^q5G3MC)kcNEÙT?Q8BM S499IU,]זH% ~ LR +]UWJռJ]bP3hWGkLáMI_^i % qH@9cI))BFzZقQj4ѓCF:Zw9= fsJc6ԒTyw~cB FbGҌ~ǹ`VAVRg +37AK!s$m%58 Kd"6d $`:hnO_`U6QԺu teݑ+J~GK-s|@_B)h]R]2UCq];fj_n?`٤@?H>#Qz{Q=Ҍr6BP+ib{"SNJPe*%VoADM/?߳fSyȭ.ψ(ZK+G (G#ucّ0t+^±Y\RUy~hQ%Q$j+(Xk!gB*nu!1AJ + +JDJ]گ>.cBj4μ3b¨#=Re /F8 +Ȟ3.wveiS5̢\\S4}.oēˉ+E IG~.*ɱ1Ff̓7+,U>Ō̻/7'qSł啇H2Y>!-TGc mSef9b:8=HaN=]Wh^3J9_AvG~8(WhT|Ao5ZOql粨˘ _v +]WгxAYׇ&^:]i7yh\*ҌcE8vQ)Tjք#&' T +ucp=7FOHP434 đ4mpq`N;gȜX܁AسR|"5b(z+|: /~vH3vi F[odJ {VqpK3$GEMȖBq?ZYghw&eh6Ђ]i"dU6#YxR5z($5h:R)Z=<.E,g8*&s/VˍL u][pO()MEI"7CRoz6W19D`9c׌@Hs214:}@`<#KegY0Wݚ._$"5%KΘI"pD^O10pWtzdse!N pf|*-[ڑdӱ.r RrV٪~j}΃&}̿6O 4 eC)?AVF["\Nl[ډ.Nr=Bce2SɳExŋ|iEDL![.kZ5iq -[B9`p5ڴ HP#ir ^Ƈ4NR/_tz鮪f Z)U汚fAd@<"No.7.\'U2dĹ, + Xv"6F:NH~QWT=[m 㶨[}-l2sm T4U)v#CY6#ҭ$dȨ8ڵo0F+McvZAuM `Uk~cS4) ϦS-YԋN`~Alupؔi_XvAF m7Ra]\rb}Pfb5 RˆSȞg>e/De0%ZG?"EAҀ s=%fHr81~ J焘_[ d>!jJ;0?6xh^/1V9[p7^l:U^/iIy%:"aPJaV<_D#s򔙛%C7!oRuJ-+> u&({ǵ>|66Nq<\rvBjD: 7Dh82 ^S&u:e I8AG>~@۔ m8-R"1Vw^2})UK6EC@b)(?Dd8|PX+!׫z%/S?jE>Bu~K!>B/d-E2DJY[RE; +K/ꃈDqC +.2bFST f}791~-1.c2*ut.m a25H- +R9NY&nsGWN5Y!@RǃUv亐!&$ߜזL/ǞHtQոD?1Qb+Ex+"/;A 5^A8ɯ6:%ZBh`۠wjdn%R>FV9t`W +NYk )GZS-fQu{E"CϕOE{SҟmR0V+bYH_HF钏u5$IJ̷캆I8+fHZ*>뼧(?PB=Tbخ83~9[gVf4d?ā?#m҃s m3 N ѨvxQzDs[ ʀnHb72 whgiw֤F T,&㳞r1^.zG~3( }%#O(R2DH<$ Yߪ޿"dNwTK-!*$fָ$&r>$BIMS6< 2EqZWW8uc /% TCl* gjZc!Ƙw $ cF*I#ðW+Ƌ LXndQՊTv?Ƙ|H7_*ow}}+߿G-yEͨde{6Bp1D!]oǂ~m%*Lv'Af: THsT$H8֜Fa'wȲQ|9BVmEQt,HU'CE;!)ٞhԫ: Mv R(v6="`Ny=n4Hl q7:Uk tMLdNu7<#(pnK=`#^VvE*Ve̢jRKM;YWhkzXFmCVm4 '8! *5ۗf K\ +.ѯ'k(A~ot(5I$ʙ[wX[b;oiE?UUU>˧Fdtocb2(xv8DLW3Ee֐Я^gžREn+d?Eƥ<K؇qꫂyQ_<ԋ uSNFdˌ`&ڹn g1#s#{+3&DSTZh@Mv?FYTie)1l "PiORSH- ?>{?݇_&苿u}??~x޾曯۟5cwI2CHmMZꘆ[$$!:MGP{A,1)$RF䒌k&mQ$&Q':ܛn;tЎݮ` +i%OB@0 +T4_OMS@3P\$݌tVˆHV ~katToJW׍fPQpm2EM#oX/[at$sЉJ@k`q $8azI +Z99 zyg 2}y$vC_@~R,s|Ж`ƾ2R-i +c)%j9şc\)c21hG T9Nbyv"^OB*ai;hɫr.7:DɎq.R\d[㉔7{ +Nwvv[,1_4AL| 0GK;6PW[& $oFZshquc=m-v?,%*i WP&Psms-?mE\Zr;pej2VBQŴqy<"=䖦vOeZIAJpQ8IiͼdA(34jւ)lD,j:e-75ѽQ~Qt`3x;SBjgo;խO KE +:A=L=Oɸ+[l 5kmSZEv&+o,Gj6FzTM}`сHBSX=F*K^i8Y&ʩ6T v +Z]G +HV;XfǓw$ӱ)1b nNHN9쁖3'63~eĖNߠKΙ{m +2?ș#)9EՕAmXy~f&D'ՅIǼ{{U9S[4=$,H5on{*8Rvu ڗ؂N*0n4d~bN\ODQ-28YwьX)|"UOuHUbX#/<OU9ruPQ_]֪W2T>{aRrqMQg0ܖ0 Bݷ=x,Sl8tL=rH{T_>/J˒nԆ)"yI\s}ąr*BU)SN΄'I-bp֋Г}Ͷ*8eǰ~A hRR4I+&{DR'"ZI2p)l"Yr>*NcQe}fQXڗBT^.zW~(~ #0Ì@!"dH}ַvuljX`x]{Ν=:&n9rC|Z&F ] {;Ca0IȪ)\ ń1î}bjY*Ku:@QwE$rd ,b8 @#xT %z;|dDm:J*=Zr +1qW +bښ0 cꗊ 2A**҅J淊Stl( _pUݻҺnSqw|\Z=ۭPdIpW (ot񤬿!!#lPG#>z:}JxȻUڈx P"Tf%*a)>d`7" 7&o]{Ex֑Q;h˞|'pJL:Ii;TN) LqbnRc(ۄfӘ-z|iD2 U6] _xV1vA6WSG'Ӑki8RG_ljwSBKlD_2ș5n1ѽvKiuWƉlRګ<2bhnN_!C ~ٙ0rRMGՉWAw x;gZpxRYҟ|ݻˏ~Mg)>~xϏ/o{d헏hgzo<;?l)7ECCu30Ƨu)3z3x9/t }ZnNHy,FR-!1r6, D,id$\D-'Xf˜-y8C|9PdqfDNs0qҘ-V$+Z$ne?aJP6C3a@1!t( D̒<˴cm;- -: rZoO@+iJKBs>2 .Kei{gXwE Rv-6*ާ")ajՕ +tE@abߍP>bi[1I 9:ϩ"0S#A}oT`瓘p] ,!H+@1 /.y3tm#1u{HbiJv<#VQ.}UM~LF;z^a8kJRPÈIjzlh_9쎸Kr먢_Cs]<Ee% ȴuνF0CVzuթwEr؅%8+ءMjݕIcmnX J-C ؖ<ϢP|2(17DyGbR8r{>PAs fMS4t +/'r@־ 8'vG,l,2L/߷J8HKv"Wn>5*]BOYz] X` Kd +ʁ}B[I1d ++Ҿ,{11L @4,Hhyz8p'Оym Iz'VZii b؏P9\FʌX@OU{mTq?Ж)ZK-~! <lռer QNUel,GV[k$/vC\ݜ@*OHRxM:! &׉ELAi'و*vDD}-k_뾙o*D1h̰םe'C\',(q۩dT'r\U]\ +%/yy\>Pۧ䗥6"ĹnS 7Ϋn$Ǿ,G--3=ϙx>l] k#Q)RF0f9V_d }|W`X(YaޟLq ٲ^n赙BPyMT|)m̺5&aYv*剹FLFFx!Cqr(n+< lkB{D]*\PXNǚbPSE8 lTBDK )v5f-W ]6O+&,@{/?z?7{\&R f$fMqY3wi&c +U428=,va-; H9/Q[$Iv+}징L+am&)dR7H#rΉ&lƔdKJ( +oM*@Pw, %'oQi68I;06WS1W0: `x"9Ȩe۱ ŦÀѻdڔ;*jTM +:-GӮwP@ +j8Fز%Xr!GO?{>{ۯ^ ++r߾w~~r%#7cMv~{ۿϟq{WzW_o~zKqxݫ/~~߽G[>//O;?3w-=dy6JXyq B #xe%ѧbFgqbE$gڙsZbbIC1ԋrb٥#&SIwFTRUܐuJ4ŽiQjyI͝ڗ tn7%{% +jB"6|VCgQw яq͌nCh(9Ƿj5s%MCtpBf%FJC/ 6{ޅֈzI.TTerkw3hqksv" +IQLФ*M'|̨K!Yȱ3P#y姜:!!6D^fBEIjfc 4هmPK ;nmZD2 +Y1%ZE.T#*8F/t~[w遑/X Aj-<5J[o9+7:Vt6eTdIv6Co)gEJ&)6Uh@3S.g&1$R|sHQj}v2鲺o VᏎZr2MU*O3ե₆}L2va̩3dn^;I iQyoPhmLvi3X`Ma^nވ]hs*+a\ ZR|f./s Zͧsvm^. tySGP=Oܷ7ژH_HUul}d.={mx 4|Pڒ 67%h3A/xf9 +RNuoRM]jOG/ކ݊CIy3gĀSlգ{7@ ]¿mo흇EmFg!gb##C ތ ~1N #mS[SzJmD;3ݡ+ LZ_v! D i3LAh]AɁ1J3nr?>d |zkB@Z8HXf8 qj&9Ʉrg^ 8i42cmg"jc+&JXK6!'˥m!iDDuhHMV>kQ1SY֩4Sݚ._$Ω>]34I<2q]B; ؃f&#AF'~qfzyQVPu(a qm]3iЪ꟟q{*[~82[Oo׃Nu8-ûò%|=Z2 qf!e3W$^Bve ͘17 򄩍CW, ":A[.w [%^6c% ,j8aY ->)gQpB&Q@!1Zp3ܰ'N1cۚb-q_;letI7T +?Y̛9.P +}F+*aZ٨ƣ9'OAi'RAPcⷼdMEU{ dW/Q[狶 ҊՍ#aL`KÈk dxRWķݙᬄ6c[ dȨ-N|H7ۯdvZ7{C#wnsMAU*=it.:1G{Ռ-*æDƪ°Tv}E?Y8DL`t RK[/F ,ԌTÂ[$E"\{UWؤE%ם?7Wߊ/yIE\n@%ZiF%{-BgAn-ypKm +[+"jr%] uBa8 THsZTnH!wA;fa'ϮPdh>.xM!'_l4xm5.mxsn/? X"c<|]Zvr‹<2; *Pg;8̈}g_v@9#h Pq7VoTyհwqJvmF/HnϾ`QC^otbɖljޠ'\ 2$EP\U[jbl1>Q 6,e/!"c]% PP6nѯ4E7:k2U"lץb%?\iE}ӄŔ{/>ǯyӷ?ɿ9$c W7 b҆-ګ/Բ-OH r=Hk%e@± 廼8)T]8v'v5I +:\| +ZwA뭁OXt"fcd4Vv ~kcۅʸ|J}Ȯ#++3{!Jn8̅]~ V&~3]ɜ;t0C5'8ŵVNddyTص]V46~nt`MiHF>ķ'i.%<d [>Ӭ/p!%`A=ɕF@;/#XJnC=H}MCZs74bߥyʛAM\"4MG!wp,SMrJ=w vQ[[D̐x^';ZLM-īCZ7D?As>'m7t?WOi-HasN9+ƆN6r*ZFaVX*ކ}{ +1Պ!j.Q~7szyd4J#u<" C6'ITA='DٹەXpkt$\{qJhv.4>9|P:/ШMX ElSޥW\R&-JVfR'g9v +ALO;Y*6:'M"fmv`c>3᪼߱Уz3tjt+$S-!Dul64@xP_!s;È:<VWKB\gŵM#WY}r5Wv\Q O~Ph Yo":HE'I%lx[N##%BIș'>yΊJIa!,[z5/xGJ<ݣPyRiD%J&\{9.ktwyeǡaDPRǘyP +N#0:آ5X#6qhZ]W}3-:Y^ }BȆ4tE?/аLOcSX0r,^̑:]|yS#llsӧ'AlB |Tw!&OeaLǦP3F: /i1aFrWE1A7֑9û7˯y<V fߤϯ=J#ʪßY~'G"^ctc|P̈-eC?8e`S\P^ Q4ʰ.>iL6"{82Ð ^1tB"ӹkn9ݨ̯ԃod%@ vϽ³;|X5uԊ j> \BAtmdtSJ62yd^p k*RtdI0F4RҺ}4>HG.a2Eb+}^J/1=Xψ-B\3C>4$V=u_nd4BtrRK$Yv̂s}9> ̸F:[M@d·J=Jbd1hw\+IO9%( W1 @ +d{a ܮro2@pR+]xBr#~0~J; QQA<9WڋKB}l7ȟ-Ċ( ȢQfCI Z:$X wwnȨHt(_$,!*s" H}8I+O5J=ﶡҊ@p[ym|iқ[|8<^gS 'zme p=Cr?" endstream endobj 27 0 obj <>stream +HWʜ||9%W A0A}g]a~?=>TW+F7w^5J3f)_ү9x[*뚱kڌ.1\SG],e\|1z} \ڣy6qR`9m,k͙-lvy곹P\hiGIaBJCpcPxMZs2BHdT=K|\S>@;`nxfڀka×_an 5WəQUAw16} +D? DFݑb0xeFFcȁ^QY 0Ar~:tUs].d)bO ZY!2%A( @htgnD0шW_cyIMN۬9k[Y, ͎$Tz:\^h=嵲e+Mw`@ց ]HJZ9?H(@= [p p f5kHy#`ef6Psd` ѹESz&acg*Zˈ\'!3,OC/q.4K5I"`auvJ%Ydʔ]$|lodQ*O)M4ZhAOs!RLAK%9wo!䴔۬EZ* 7vÂmq#l#u(pT!%>F%Q;(ĦuJ:"."h5zIY@D^ i3۲eʂI 0jU)?TkӡhQKr]cx 95ɑ7COВAP NBJb׻ިoYYJa t陪L}s:&%8A1Fih>ID) Ċ$Q]$ ;Q֏k+5AW#X O2x=%I?$eTNkYL]ٔ_Q 3V!euj~UX WĢ%2[6)DYFu, h; RHϠ#"11IF|UYp8A827L0wKk`39GvE[`v)Q  TY +K;ٜl1A]ysv\(p1 X5,cU7 unmt/C]r먢CA\:#;A(aFdݑi#Yu!b[UuL%VT= &RA#~ <]ū˞ '(d#s$)YmnQd/@0 +QSTRS_R=B{WǍ {&G>ѝ)RYOPg" +*R|2DN=śQ$m8Bѕт+H5WAbRl} &#碅WMj;'d"TR3aRa^>PvqBzNk3QlPhȠ11Mҿ]3 e21S(8Ąӑq1G-b6hA[T3qSe,(Cd}O$AQ) f׉EdqD%m6! >̈́N{k#c Q5=eO#luF#3h\~zrȴS6X)!gM񈲟"mv48F@)9ϸ]LGr#l8ܝߑ8b}X61#M?DE )bmC_s~]fPO( +CT:\L` =U[~ VӺ2CzWv~Q %;gNBf>ǹLvM6B?[eaD.P^O9PAnlI.cX^v** &]}h`bUz≖T +ir +)JQ׸L0S'5|i@}R袿T8w[)QDUB0iXQc{dk{8YV>tx+R^fYZɫĭꑎɰ1n +F5$" HL)"|6bĪM7iw{"A RfՇ8_$ m"=BDG&Wj& v T(qʦM^3own\G80Bbz}{#1 0@=t˂9Bb}}^߬)^m&W%%~'b8&" EaO /neԻ7,xe 8\w,ee3\m'pnS .1Q&ĕ}k7JH+ Tm`ѻSק&ah ;Trj *s"4Ƕc0bSJ_$v} + A>H~ N +o^qDP[UGcN?~Ç7?~-ٯWϏ}˗/޾ۇ7K_|?-nD[>r{~g_^,ߞ|xًoo?_݇_=}|O>?qO'նm 7$ȷVq̲OQuC #'MYIXPqCJz5=j6I`1ee滱lސHk-LцM\;cpPf IM/77u]ѥyF[b ~>2n(Af*U1.3R옜pL;UdU~nۣ+9 4҅ZJ<ҵ3t,j +wz9=v.?L)0 nZ0;)֊Yإ0ӤA |@;~`'k \58GTFB\Y϶#tƁv @1gm Tb8oQ4YNP[*BR/ #qwLe2=ɴJMd%Q.b8{]TeTN*b- (gQJ|L/P 8*~4㮽%z8GO-}HhRi.\/\NP=A,.O9P_S\$VVj[1b-$8uv +coD U($>CLnZ#g?.x(˔ K)މq& 9!契`RDwqy- +5ifΉ0FeV#f̧F6+WBR ),> 2{o!.Q \2낤@E`XXwl?ϘY.!].zW~hĮ[%0@24 d ~o!qRUu]^9u2le͘8m]F5zPG'~"vS.d=NѣzY6 +IT2q] #|{4u~mݶYRst[Tnnęc' P%ZT a9qYMi}7 误_Xuh\=SH|3cMF7=JmeIE̍Ps"VCDm!q"3Nʚm7 ˞w@٠ƞ_ԐrZgꄸr.8i{Ӎ\u(4N$S1BV5#f[ro 4ڭRSSˍ:JQQU݊1[|VA: S4Q-92V5`AIn2p=ϱOaћt3G(B 77D6}ڼQ]PesQ&aC/~ezXr'do:aW,kJæ<EE%t#d3&V +pHvﶥfEKcXZ eZ@Px&^ e N~컑Ψ$m>ŭde {m5$aҰ@=gOs2MYu9FI JTT^T@/kJ*356=uCZWvJ@5Ps%+^V]neoUCcY*qcx`bWߘ<'bhmm]hi/UhWP H+.pjb6q$J.Zأ!9\u-U :e_R%pϲ1Q(~ч+$zegkq&}BeAU*dĹ~T i|^/{EB"|-(>d{V~ñ2rak咛JkmV{żC Q'#DP^Ň8iki,%r&#f듼6J'6%լ맜 3Tb\g_g>37SU%J +23u'36Hz&p];!7ZoT2ۈ֪f[5|TZ_7*7B&^h +VGѡArkgڬM5p5hsT{\#=+r :!m[n8z)\Z.ZwDo}+4C|!еJj |)L &K*L^/lEkA5 +U2, S4165THbUST̚)M6t=i7(bֽˤҸ,XjLFA_ yOvGM@_E.X{6iI +iZnLBJlvֹ;( .9~E~e%Lk$n|vYDs +MH2uRIaX40DT{Fc)nq>3VHc0D.<7e}Q/q_6C\]&9e yѲj{K²4\p V̅ٿ"׿=n~S!2!} &8!S *"Jd"*c0O 7D&3oҙ|[*OkvA %㛽Ocv!/?^?p_Gͮ +[+@6YD6vB*Dl8Q8~A'XIx-D=j8 t^{sQףZ3Qils[VWׁ `@]<^6J)UVT2Q Z+q=JIHq6?Pʵ FWu1q L5PP{ `w(M 5L*o`kO*ENS|vONɪEQ[|vQO8";eHH.J۔RQzŭlj%I]S99[WZ=PYqz0BUؖ{f.4xHreLd fg.߶*8ƫo//U9e π-"2g/f˾kuI,Kt7BcxaܭMݭ1KD:U3躏:%Eu47C@b9ONy ^}qV6,%Kvm>r}3لv]Ky=x5H8Vi_MQD02J*b\A +%mZjVz@|B +O>~~ς쯮_?/592̭fẸhBAudM}UU0* R +US*ureɍQW/쟸dVJf qa VĮ9{G."B*\n\ْ:7:eI;ż +JG:)QDOmNQkOIT@jiW *~doΌ#*Ys>{d7Y c_"'s(CPDoyfG} T g!LBف +!` QVNRPb c@ά ;MS\%/rbZH,DIrDˁ~Yf +,yo񓎫 Ԧ9EGڣ[UyR3_3DO@G[3bPF!pi5ݙ_0Vֽ( Q|xӚHν'21o0ժNȒE6a~]/"]{-;".AwnP/ˇfWS轮ps,rf$hP}:~ՒW[*"?k}S]ӸSoQZ/X\+^fWUmg;C*uh.y_Wȭ1[TEPύf@5oqaQ [?Ұ.b#KUԊ_usNUdu3r<*M{y*O')(]OP)n;Q;48W\M2ySrݾ qh", + +2/SX[˧< *`uMenvx;1xxSƋ"OI(7iJq΍M{xRapI \dM߆*X%ZMMvK9I:Pkׁ7sT_a#h_ÜE$[#l҂^rR/y:̈́#3쩵CEZ';MF fwD[ zQaG1GڏH 'D[5iH?%3G\OD#埓ܨSE?D5j~(#J)xH׮#|=e勬Z ,Q@P)* {8T1VX +ev9kL^I2{*YM/n8MMP-^coDV㤯"VVU4 ߉ֈiU2&NHȊ5J ++RP\ x.?) үlqQQ`fHV9j +$`#[bzDLdzJ]hkϜH!~*]vgi֩U6IIl; cSrf*ta[/wULыÌ(IM +qY* 76%0)_ m^2-Qc#sTRa{7^\lFwk8/3QW饍2aeK@#d[-/Nfu,TtfU^Ή /x1lRb\le _"޷C; $ +\Pzi/jRv7)Vt:)!#j5|01mC҄tW2T3ٓ!.r$@mu-dϐJg^xClP󥱡sfXmuݿT^?7~ǷO=$?@ܗ7Oz|w߾_~c~^#^ /?~o )|ACF Lvx7Lly&}dpCE VsO^hY8DF"ƌˈ̴S[%ȰCY'SF*~ HLYr%vE& K'_JgBwVŠ QG/TːwwzɀľtHLэEJTfGŶ-hŅs7=կ4鴴lU{0^I=/y:2ArZy԰2΍F쬄č +&=1znǏKmA([J̔]OT?/Y=Q@kHs7ZE 6TvW ^:/.nA؜nuܨ}TԈ `^þFّ&|govG^8lrXۤ&dY/J9 ȲEpBiY)}ߪ&Rs&Fz0u>W{ZO^1|bis3eJ[XWzϾSN8[WɟYOqBf[,9cFW EtBk cX&V ^&8~'bůTku\b D p1Qe,(s]۸?`P289mP0ur02O9R(N]; kZûa /([*d$(-) r H9v@V_W`Q/Y/juA: ĕ~_PbM32BysK^@!,FkCe+OZV9b#!wOl_["A;pvq.;3H]ʋFgf$2p\< 9e^C^xyEPmNw:S߁O*uKQj~qў>_;`!Əs@UmuE+SS,D,y7Nx7Փ:s‰LwE)+BMoF;gj*+ ԣM[܇)W$oZ|+N22#aXfB@uJ ǸB܊ VK3Ý y0XQ!MjBN;|Ў"\*kmF#QQ ~7k*b$ :t:x%.qTifx@]SHʶyAM L9Cʾhl =?[]G~t$k3 B@dY,OdzPbjb$خH>{I*+:˼e6df2t夓0wĩigchhq@RAIc + +|2xSQJ5F=:C\L MvEsG8}]8]CNN(zhك:rbxڡPs%x I:ܪ:jM\/8".kg#\/-'e1z:x@56VBAiI?xH u$xȇsOu Fo49| ΙƇ4ACjSUuXuP3-b)4$!-q@]HT )4k2,B䘅4shv$6J#U N@qHJxbJǑR#p_7k\,Ĝf뛳$ez^zwN(FȗEKRe;u4hD*O,aQHSc!T莼QI#F+USݯm2{"c@M/ e+F!3-Ćt-G =e|Ed ?b!gu5 @#Bɬ%Vlו[򱤘1ln?Q0s&I*M˹hq[-ZӺa/1^m"uF%T|}%P{g3ΣB'ԍpЅRшJmS +P5/4`8)`PK՗6uC8z#/%ejU:R%$A* t x\۠H]#itp]4M.3Z{K#{P [Lק2n%טj(z6??ۧw|5Ћ_+ ?}o/>Ï<=Ondo?}inﻟ}=?ۋOnon}ۋϿӫ7߽/yӛWoI@lw/|O?oOn]'{߼1qw:UkHF}t4uHI^oj"CHe@kdq:!F$Qf^Z/1웄 F@j 4$FI+Wӕ|m!Fh.AR6l᷋ MTZbqcgJ N=xtl%Λ^בv#sd!021HZ1"mv0F"EFGhd<7WqлvK^S}yJq0l9Q*.|, |,o$vsiubw@('C kʈf4% Ң.@)cOzBK +pf$f")Ҩ@fۏlBG ٭O=B}UM4n w[`KS +@;y;CaNG/rD/R,ɼR*LgF\ ݍxA" PP +f`I\Z;&HEmP-H\(W19TVf#u4#w뢦T7UHAD/mRVYNJkq#m23[uq^+d*W-yK8s,}%lEY<Xv6!ZXGI] OYj"rf=0 G`8 NZ::J:\d㌟%>4K&=4.-drl)%ypoxr\:]YeEBy%gH3[#21]MS E;~߹,zXqMUd4[ 8fkf}#hk3D%J ,{|Qc$y9mW75IƘ*7q ,uh⍂GԠ$SXn V(&~ 3b(f =IEYcRr|k\D@J-; +WzaKCe*E]N.)h>(xzQ7_"o8$xT`fm%J6 {,B= b.+e{:rOR43ʑfFA])$ڧ8iZgvI<4]6c͉uh(㮾 +y\X{2FLR6ѦagG̖z4H}L`6LW|5蚨V<8[$fVI͒rԻЩ2 eopzGTr#mG2{b=$ꙭd:1b헀,Y8> +oG"QhzXU3sGdjZgjľ*z FѳDv }ݤ@g¢aAH6s?A PЈҌl/Q0(_s D]gļo#G1@%$v5],mݑOgnĸ#4VTx#/T>om?tռ#&ZxUxG08oe¯75$XKL+!4EH>j-pV]5kq(5mϛ-#/:փF#?_i!.8-?z@~;$Nbwo"^w{:L_@$,$ k0w;VpBlf@f?)`yKW, NЖ @oyY %^ȂڣvF~D%#;%PD52w5lGH2q)&u[X-]s>HQ:o8#ە^{Ъ轛so~s45',VUPiQ`TWx4z񔪶t6Jd.G;U%L%.SNߋP'DP5Ne 8 #]) idhZJ<ԏZ l/BV'1K2YTNmRT%Li}ڹgiN;U׹F\ELHNxKn5-őX`Oy OF@f-Ie vwY6cG dȐ~/h71Zn_i(ý"ץ,ql +VYM:0ozц MYM +qR|QͲq4[lX=hu:]|qƾ"߯|fVrJĔ0_6c<;{|/{ʐ!^B σW?Cq=xA%Y5DecP%~lAVd2[aV*snb9; 8f 4N/*6U-^QI">H0o(RRX_H;Oܬqۤk!QȰuwr5u +kT6q<*SD87nMuUZAj2 =v6W $N7/Q48>f"g5G _. :d.w!8B1f;AȭuV[) Kg 2`trXX&qD2k>XDQ@|R(,VO:%HfƎ;BY#kߖ)~U'^wEwJmPT|عY^wcm."u1< +Tnܢe/N Q|vLnsKn,4.dH)Av?4]C2]4g7% űg"{p!;/pzT(3,AIHi$tx)T^P)X'|NqP~[_s7D>PXmT./)Fd |4 ظӱ +lҢ'J,|PMnqf= gzp+bYk/VسQ]h\J·QBl|uAdqV5ӘQT|yN˞wD<6*v*:ϔqvJώOԧHat (1Az>'.̞ݸP'yA:ajTP-ѥql}\x:WlR݁> !UJoBkQ 5A^lj,e7":Fߣ 1+r7n;Ce)dkkW /$n#TZ ڮQT;Nű7D%} +)I@aU^D0A)XC"Q5&ֿ?73$#tz p<+b n![B~t4ݎX0QV; ;EӢ=GjN!A@O|lY'Yهz#dzM,KCG2^i粋H +1M.2TN^P'WQ&{?鉸 ˖NH巹 +;9Vv^|f!8I{2V'B4Ɯُɥ4Kk(#z g߰hri * в҃m~O—O|ݧ۟?㳯~o?}Q+*>X/=4&&ӈIkEj (.Rö(= d'L8K2N[8X6 H8E1|wNtJ4tgU hayjҤC .RP-I{j4h>k jfĢ7I##kfDu5k7ڳsM "=Sndv*+jB +Q +'9_c+홶dΝ:,B%9 psպ"c%1nƃ}\`BJHqv~f9<4a |R~,rs85%#f%r _hIZbЫ,DO eڈ%UGF9H|^&TAފ+7Τ"5Q(DpDd +^ş4BMWZwzo ƣEށ k-lh.qHl/%/IAJ}wqv;.VfpTѭ{ƪ@Iz =6^ΔMUi[ "S +kG}TCܖHsN9+ʆVv&V6 iXT#$2|o'3%9e{ +cMF8P5A" pyx=ݜNѡnK7=GD% }+M=C̵%$Sc%Z K.x>Lg@]d+Eɝx^0 K0l7W +Fm΁dPLmpTkVy+%qL@` +N$Xg]d-Ӝ.f"Bfmnbʾ҈YP*_?I[Z* i3HR:qO Љ_ԱЎ{'wl 9@)Qa\Fk@v䝩7nE({5q~T-"fQDr6P@c+:21XٚS`;9FZ ܭ'\Y#+oKE=ба WQG6AL^Ku*%Rm?߶#W3ݔH.HVauzPX)0 (~2kSSRUgH".DLi;:= b "H^@3/d8qqXZ%nܨfA4-ǔG +CsFp^.Ge>gDݭ^=4gGLHZ"M2ߕNErk&EΌOpOЪzb.ys?*1$@X)=n:\` l7 A`RW.d:@^^NJQb h*.҆):]EN:bi=[#~ P@mZG-[}Щ ;9i.mI8̳gɰ7/,LLqSwy\7:1$<saBBʜ9~)8Wm@[7A ^Gnm[^c'DҘA1#ң_ɱp@y+TQNÅtTj@e8GF[U)7英Ї%GE1hYp8ʽm%u> +Bw[7e#2TvtDz]hUÉP:GƊZ]q`h"zvdtF}JBt`"q`U/E*hk)AM|#J/ݭzu\G,'R<:#4 gY#:762t:|#Vh۳o~$8q0jNRyA+3| +mB>Z.fAsM$&ڢTB|GDdF )܉0G@q3ʹ#bgTYu8~cI½`I q ܔ,{TT?512+RG܊rHp VrP'fLd-F9~@Vݴ3QFPhBZ*px⥃[sviix kGc o!4Ip3[EBލ\h VH{ZR 1q^ɾ+פD4 Z~L(# ׺x+2oKD/=98R$@X4=Q.:^zO-k~b8肅*ID"[t~,]"Sf+ٮfH# QJK_/(jZӅ*-+(yN+Sj& ܚui9!.[Q'HJ36# ۳R+MZDVFݨJ0^zZ[L$RIx:"Ĕ5Ԝ0Vg|&S m0FÀ &@r,_J9?%$aXQ+Y7LV 1r$b^=|V\?f3 gb)TF1\v܌c KT Wb=Wj݊P~)F0'Z F,Q+}Pպ\46};B-ٲ*{("ܵv0DE0:e}!k wU.yi+KH]4o*Qq)&X_ CۅuہP/n9 +*\m"t`vORz!RdGkefZĘͲShsYO &DTKcK8, &K@Q V{2'gǁ%XAؕ$NBy QE#Eb*J 4f=D Hck6OqT\B "#>:fu%Az$6NAmari>xm>N<*BʚHkJd-额E _x\ϸD.ya}TG&GXE"q)k#r;"4?h=΃mh7 +C9}`A*7ƤX]F"lxoH9$~1JY&{>T@Y7%ۉ-Z +78IyfsTJ! vwCϸ2OӕB~0RxJT9T#8)v/şe:1%[FJO + =}EaثJK0Jyk J]I*zLh?f[77B"Ƌ~-ݮВٕYcƔFo$E#V2$ i)(rRYvb}Ps+mP9Hl\.pd|>Ť u'ԆPg '>6O7h5e d ]u]%h=Cڴoj3"V')ɋ6)&e:}e1eBD, Hfwk/I@BAI9ߙ{Ԩ A9X(ּHR6*˨>7D[-52T<3ڣ:R4Z/$6_>Ϡ?^gFR]{-}=vHUQXFvodk++:6jw +z $(.!2%u*IDŽb-xԊ-,=n:rnZ~L䨭vTh&25Tokئk.٢:>P"y dϪ'`pi-y4O;jc9\"vWn<8ٲiHli/ *B/l%ۻGz S-GQm3uBWlQV; cs61j8:(̃.*iŌ fiE-㯍vn|qWaK;5-Is_v*gUiWc,RB +gMrb^v4HQJ g<ߋ.#9%E6|1w'/$^3lSDm'</ev%9 ڒudzU,`Ķ .Vtk zg6(;h|[Y涒lfR`(+-q)_:W9D;)ŴnO6$ىms[Nq=碗Tw'psq鋔b@`TzJٓil +2^`26CĖ{#rѺfHA]iCΘ0>B_n y(`od 嘨Ϲ1cB-Ҭ_ @é|7tD0}_-C+*j:g"!jjTT)//RiUV_z܏iϱ+f/)HiLLE(H.B(z[aCUŗn##$ʥ(q(w*w@f9 cE+c"bݑJ"1a65C7aPZ{7tQEDA=DFW-DȚoofߊ.la (`Tuɱ#nH/\AMh#H6 ddIfX>J"QLQQځ K#ffW + Kj^.7URw endstream endobj 28 0 obj <>stream +Hݎ]Gw7HJr@Ap5Y;2c=ߪ}1;dќ5U]UViRQ[;vO7du>7t̳2Bf;gxrQV:yg-goub7ϒX|1;vfVO[%:s*-3w[~ӑGTildU~eUv:]؈Cs3{[=v{g*ASF;qT$A ᗉbxg/Fm%o.iG +:h@ElBAf'd!\pdtnoV͑Vת{־ٳVUyքDE]^y]se2od`](r2jW9GF>vGSŕD>VBwUDa'hV')MѷK!$7Bo%8md7e@4'2؎*1DsLX[7t 2~ju 9Z*P*I;JOdnG3V:'p8AfCY$A(59^74jnHR{fvi;H^,(ԫ5zI u#n7ʶ+uуcLءs~(RfXێ_ KÅ5T'漯2ͺ.aVDH1(YRO$eaJwXa3wwԠ&yL DR ,L]oFvqAyޮEY29='"E$-9ڣlqOPWisv1$BMΈ/ѳJDdbS\#A_DŁKv]HHĉJ1Ǫ]7Pu__4)& !z +j6H EڕN1"d@v< 4r@5 -!%Z:<ɧ]iY=p%Fbi9oڣwL#Q{Q.ڢ{WD6ɩh :+ݎQVjfvXy% 菰nU.ofZER eRMOEӐt_* H:ywmwtҥͅę54\FmED{ԇ#!@@ГyC.5kZ>n@VVlάTIzR\:]C-esK>)n%Np>BXAo˥ծbe7ޏ{[jAPP!D1fw+!dZs@6]3ZPr_l/*`\`+mQz!5-)Pk dȧ*ʄLkft+ ٳ26vlJ+E2;p&9m ߜ`Sjgnvх6`Qh&hX-%K)-h3 +X&UhgkOfJUhaCQtG̤|&Emr|bσ׫T*آ=CfJQ J21_[uEU+[̙?@h^8UT 7~Mz@|;-(C }*EB`z/h ®rAnٱT6tGH\=~kT q)W T$yF1C95NOJ6*J-3oLH.ϙ&J7xa$ ~Wg_kkUkjd.$y9mcԮ&P}AmCk.I"BqUz&TxXr$ʻԢQ]$Mld%ie8z@'M@z/G[rBPgRHӈkMB$Ȝ?fYV{wqKlb8u2l=8z\)z1)`";o20̐{\T_l$w0|R$F7o!QVe_of/͝|.PND<)zY=ŔBv/!]2dӄs ɱgD%K /D/} ]"aS!-u!SumTZtIIՊU˗iz`-'pH5/PpxIfS,SMF{"+]y*G`Cۋ% w +4 +ߛ?ٶ+ET0 +)͔b"=2\ը/MGh-smOBdb&ˌM 3\ǞW'oD~/^(G>H%An۳}7zC 3txdnjn7,H瞪aJD;SިGRΠ{!7D +P*fz&vxJXgb[*Ti\ N{Sz| 3&lAⲽ[ +mg5P'_2ȱ-⒤MD|Q;hS9[fwt/3HITW^Y{iW^Pdâ&ĤcQc?y$lȓ8oS+:ZFL*Z6r%J@ՏqFtm%FgPdf8 9ʼgVsP$HSZcɂ'gܩOY5OVR("->|QO,lG˧8oI⋘LȵF{JyUJF'zV\;n*,pz` 4=o=n4HDHC)yW*|cw׳|7 +}멻*C=Yg9C ckz:LwSg:R\> ! Iz98dX1m}"zyJ5ۗ(*DƼ,08 E.aSEHq Q@ڜ13քqLfgX%#Xg>&)uN|ӧo(QřXz9SûFP39/3![ZΛ;B*zon:S I'Sdˍ!ekk}0/3RY)⎄B]da3 om XO DiD1!7R4RrG,7*g:!e=)ɢӮA @SSiPJ/޼{>K޿'_۷~O159$!K[ zlNVm=t?Q +DfźrSÂ2 %IN7Rw gbK( 4wA*w]Y-o-jjW]54yUA/ZHTC9gugFM,9$]TY#%5#֩O73۹Y< M(KҊQ|ozw{̹R)0MN +)c<7FZRj1nx&ZYku@j?ffY}$?GQ +Ö$[z+η_\]X}eD1f,"GFYzВtiP]2=(+DYTffL}?lӴ}NdWa$(Xc=ٸ#EZEBp8g=DZ.Tp1#Xc"Rdsj JwaRCBHCLgZ +*!Vv($dgR6KBKEQ鮾БD$$`¿w=6)g~/U)>yMj D\SKCr/eyMc:duX]So&HC.a~A޴ֱvGD9_ki>/Zh^%]pPڲgI`:'&gBɍxZh~!!a @@= ϳdPƖj-`FJt(P:k}󟼬"Jfu1v˕5ƕۜmT}U(liG&Kp^B+3fh`Ph͞U!>ռD;YD4@G0]k J=Oqd%q<{ƾƄ1~jqKuG<]P>H}LQ*ı1'"G@tȉ=Qrgg{\635Å) -k]ԀC6CJ}G4=҃/_WrmqȒJu<|XdbXbzpVઢee<gm+;R=vO&T!R-(DB6K#uLHH4g}̜V>L2.M@ɜVG,nB@';Fz l`uI3$Ib[TTcUemd1F<sM^ગWNY7!-niս +<;)IzaOw4Y,Ñ4"8Aa{2i"22R)~cTLI/c:ͯkXдq* g~BbdDdQ=*iRř0Ta-L*5b^{+-&$~TESLy5~O rnS4Rm%{TEB~AE΂6en]a""jrOJ98fo>ZSdQ@Y-eѣ&` !QAn~}&FO1(aXNOS1NTyW\ǿ`b+AIE'F)NŠ^SY_)7mr¥%e&bw:]BR/ OX^RLzqBoCMt௞ΫjN֎S +LiC <"JDۍ\RoI- *~闷?)l"/駏?Ç돟~/-3Gy?xjbo4gBE;.)N@rERaXٛ Mf}_Kw[a] +1)맾jpiٲ]5_g|ŪQmhNHf#_yDKz8FH'ƀc7b:Bb9jo4;H-0/c8d;{*/pdP0^ L%'ÖqZ?Zi 5c   ezcy%D̒< GqOQc-omu";ú/2ڃZVADouVic8J(lQg ]ca5; 3:@$s[N@i ƾv߾YQ8[D:7ݎDO4{A=:nDVd=nd<@AD\ o#pZ?]edCMda\$̰<:S'l:Ns1j<}8:R܁jt .{dw x{5zx>9-MvSn>J&B6XBh)f2tdCpe 4ەЃz%9]w[XD7ICy]*|Nʎo&lT$Bf_S3*S,FbTrh%VݛHXD)qޚ-īߔAuZ/JFJq+A>֧-I=hﰐD*B o4i6|+]rJ||OLЎYx,8d9]6<2>llBm݋<R[OIVmMNdZ3mB=+ >{ R~]->@Q|SJW3(4oS' Gk&aL,tZmD8K: +vPpC1*RlĂ b~W>+q8]Ip)$#gĥ!;)iv/ŗy&[TdWA\j^ْZ2aԂwU +c8IC7ƈO]P5x 3ZWnzD}x/IJ*L$^ ~h:ZGvlCw۫kF s; ^4 ꜤFeu]uxފI0"~֧Ȼl\.pdsЁIã jEO}6rd7hEzqXE|.󺮋NNt 6\rpp3\d<>u^"VOO`ݹı|kMBǛEXwc͵j (&H\+ir es.%$}H,^aʻ0*lu<СlzlbTuҨq<>7^TB+_#.=]@:g7T͹ow'dbzmL*MsM{⿾(3Wۇ[?;[P $5"XYXb@ NM(EU:nX`Hi)^T?}IgA% 72c$uF1Y_[QivM9fNNĨLRc]mEqk̡0-y椋0L- rEC 9b|u-љBzށTc=+ΡLWYF»#pnM-6ڙA}>u&MqܩiDUi"m{oDa0O,/'b^Tb#JMm&tkd >uT4iϙ >L"M2`hȴAMJqY"X$ƦHڮŽSfxg<)5,&4]ҢN__O<,Sw&j">~梙 H+IBPS̆@#6ƋWI[D}GaDY*s3Il'~҃hi?}wP/货"Z+%tF]7sϡ5BxЌA}aD>vzqTAG\%O8D)jQ s=}Y.z\T`)"]99cc`6*w#-t/$zXЕkwbч=0J0<1ysk'r\Cܮq E/Kqv).(IHs8B5y Af7Vp }=u=S6H;E%.Bg/@qE@YTe8`r#qzxĴ)HNFA)knIuVſ` +yDPԚ`W1_9X:SÊ HO|$Nkd*V8yоx>>"KyJw}&ˡHt&D.:s@1 "eD2GR֯÷;7Z_bzBα,pGw\,h-XL͟#0NW kYQMW%%q'b8ޑ37,M:+ݸcKKI՛8 Ypt #!)d+QwZ)GoTHT]b P0ڽMNu n"J9X}AWlMM8 VRӋuVSMET;ߑHc۱s)%]o_?}zO +zx:U>}~{矽~Oϯ;X2-ø_ϟy{Wy_o~|/5!>/xO?o?ܺvso=?cV,t<޻1@b@o*#? h8dM]VUA4[X#9]Iy 93*xMGQڲKHcŅљ1!]TkH2[ $@18(bR!sQ۝oҾT +pfRGI-pdR&T@ V(a"2xɬ%:Ϡ9L Q(`tjMF !K@"ydA Od: [pD_t)AnYc2?%vx14 ;iLu8+У +TfiǺEQgef~tt-zΝ<{. HjRUUu%|䪇v\ ;UkWiAs/MŒWoS(UDiW1^b$yl3H 2=*GtA(`s,)@R&_$*ƴ{d<1ݩj+:Zax`][) TWO5MxV +s!54(l=%Oی3r)\X_>fӬKaֶ(Huvu9uÈZ1ΙJ[ +tbjDHM%Va̜/6b"2K>"Dt %h V[0? .`x]ߛyTGi7b"۾_;#wegA˧|jE%wiF[Jͨ4So8^ d:PVݛ4 IhG kDī1ĺGVg5v]N(2)D-%ּb'zk1mM3{ +̪5p6Bc`5Z15hҠ _Pڍ}?dV}r՜b[Qjiϛ ]~8;H褧] +)Syh{EL8AmcJJ%.iӓE=@o)߱ILgˠ}0jVTu`,H`i 0ጅ TLd_tG@y J0T +NWslpa)9ROVHr>m.P\oD~k1b-$LrԹ5iA}+Zq8h&Ϥ!eYH)3$OY6(hO!W#!.SbH[kGz6"2/sGtLZSܣL*"u #o` 7#8HrT6 0=Id#}2rZgꄸNaȦ}5|a 3"@CH+[HԊ9fl R:Mq=ZHMykgZ+s"Ac5tѕQ)ݑW8lB#>QwB1BUo]um5gDs8>N=xG2%TdWEb.bmPk;t@Sqc^ ٝds93,FK$an@c2AH5#ՍJ fȫaTJ FF=;! ȬF֊YVi$ˆArӳ6kK3W8GTmx\#=p!Wcz:d@,- N3âg V7N [x_0v|FEpD]5A峅jSåKoU,A*|,YYJ:Ik4^89*dYdNK{ZԭOҀ|~tVJ˽  @@L{@5&ձuoB+ֶKX"~՘&@: +`w%qZuC8ZwT&Pl1*o<1ݣ0:iJ/PI5)gH47XKͷIPQY\y]nrJj +sXl%[xK3טmuD!"\>5x2s3-2I$!Z=;:]WXF +~ +)zֻ +bU$=2Cvn b5ÓAS "Y7 +NjT|[ )vw{s y hR4Ƙ]?EK%Fy%#f7"Nҁ>4O

JhQET8mtXC+ӥUc4'D|q)bo_>{UWуש?|__}ݷ>?_3Ñ-enU?69q +n(I?e =c +6IlfD1bp4G z 9q=94j {ET|ՅyM%ZBs^$xd^"y(QB΁=4 nJ!17":BvYt';10#xl?]R&eFviK\'$\9E hX[WS9 4)/:҈0B7E)BWAIjwƕJLa"a_-UB{ I`}C,lJ 4xY25["ׅstlF-3J|%ĤK#%] )Kt uNJĥ٣YIݖ_6Y xe;Lj-OէfꝉkXl&^;<ܮ-H4m:Z +W35<.=@zF$9"WO/Lױvv}09@9vu~7W# $>/Hy\TVac\+TyRU?=fMEwP}66cn>Wm35e꫞7b'Rҕ XK㍐ y{ OvPe5ȳ[@z*xV.OHMX†YE4c9P[mYexГ&eh +7:5jF@;ELu/i%,|z RFЏ^qǣ) ֍L5XSNk^fWW NH< B5> yDJ Ƃ4UZî)3; ^ʼn2h<7U$ħ(>+=Q xhpX'zie#uɒůkAgL +hF PL] + y%й&_]0b0~H(92Jxo sja'a8'ӧ[iaŢ![;AƎdӜp=ht4;M-v^FџC2ۢGdkߡ*Օm;lLk Y٭V'1rHc3D]Vcõ&npW?8+*> ߩ^R_Ҭ~X :2, S@+=^u2BPQӓPVMhkb[ 佢,M3V 尫 )Ws,plBsE ]{DN߅ҊtKST;¾Xud]Bllk-Y:MVp;FA=bE q7ݩxtK/P hGnt~Gf Pgٸ,kC7JYAWb͠]+o)7RԼܖ! Nti4gԤ( {B=l^46 5I]pn此/e[i{xΖAQg}ĸh/ޡLU0 iov 6[W JAFT|01!tW2f+'t@-,y&1|A:.$@-cL38oNzb/~g_Շ?~dzQOE_y*o皿7SY Kc1FtAi{& ߺiy']Gz2xcfGQC5G].Ng6byVZ] -dP'S){F*>q uܶwDKQjmp>ha;3%ӛLK ?ٟ:j'Q֑!enbȄ420ҙCȻ-۹)]lI\_k+v_#m+*[9nMv=?!S^MBaA#üz̥{Jm*[~ӥv΍FOTFA }j?ޔx.f +JDX \g` HƦ.&i.HG'T +'ګKfy/T̾CVTL?H 4_G @@́.o 0u-g_eGrABb8X#uB';Awu=OP2 *nu2鄎a'N! uV7H̓0\d6B.&ڋ aoAlstp; mJ0 +*U󑔔?rW9G\$D]N+E[UlvS߉Tؽmb̏@w rqF0~(#7m/20y#Io|Ǧs&FtvP!lC%j Bt ¼K؏&*/AK*T 47ٳ݂ũ0QɚQ[#$NL@uFF!LRW|4zBr#^ٝjŠ=[#}L 9}hϓ!=г,GMq+D0vjW'odՋPhL)NŞRT1ΝC/"*nFr(.!Sn0O</d.id:bg>ԟ5pd2)י`Ħ2 [7|whw7u[ۯ,qa9>hTu 1Z3TE|Z `~=ZJ[o0]fvZ!~Nʕs9*8љ҃ CҟeAd`,L+ӈ@kf?L (@ØwhxL9#`L-0hϠ> ^%o"0ͷb.$*1bU=0WH`SmE.tM7=;|Gquuѹ۹U4"∢iQVP'b~YƩbR{%O)>T Z +B :)($@9@ bհ\\gV_.* &{=;",ײ`zmj\Ba3Y@XK)YBϳ7CeEg=P_!ʵf4,gg?:>:o{, Zm(ӄK, NYc2 P9Ӟ3􁚋;yV5A  GoOS`(? +X'Y2DtT<r¡8((V]: k52cKg@zdUԻƐ"Պ)1P(=ЦVyk n[wĿtv]05<ԣa!H-ruT腹-t {q7\V +P!H(϶X/iFY! M VJ{$.!ߣA>ZLD%ݹ.‘){7c7I z 4j*FF,&Guo`xyآ9#^AQO!G8<#8q'qU:v%@e6R1#墷۹˦Y[@*9EkS4ӳoZOX)Z M*n|* b+j¿Nj<% @8{IkihJ e~cuDG*LUOjxN?BN}:c]KDA!EĄ΁bg^̾~&9*hjy:L;|Ў&ٜ*]oYW(KW5w5IO|5LAj~Gʆ\f60N=QR𔯠:$L17a=[N99WH1D\&s 0#Pgbx]E>bk=I:Cfsx@|el2y .MqQL 4IZeeXw.2J +P "I[5 +GN7R'B7|վ.d;&@o z)'u, ߝBm@( ^F(1hcyzvAň\MD=u1u~!ScѸ fC5}WVfK*gm@Â1:3l<4A,Au,:s +oD%YO?_a ln;1aݍd2#8fNeUUj*G?nE@Q!bǩZcA+Nh W!I(2E+ІD~("UZg^zhepݢ(82K:wY c$ѽZ]PoNUhv zvpٗo?G؀zy?Br=pTvڪ,)l?4oi)nwo\EBgh-H#9ڗ:jmhF%Ģ턳RILEې-)C x{H6 *wM) Zj N||tρ݀ɀTivYU H;.IgHa{۷2][-]xA0-TVC%F@8$].8mO$z#7|s}wWw_zZ>_w݇ѳg7}<'[ɘ6q0w_4||zrfK7ܬ?K~koLj Q`>39~}>ǎ%n?J\eSrYەw034knf8@zh.Lbߣ#M |6@Aެzh==PHCt} +Wl +R&yOB[A?0mM2CA 9Xv{!qdҩ< /"m`tKb\j1 d`{^R"=$4UhG쉆RH#p"e-`QJ@x,Fa VWL +ή0mfy+oWUˤ<MF|-UiIrqc2ft|u`U9䦁byw(Fi +_b`=~2!rhf^NrY)1hMf,-J/sv]RiK_ՖvM#A\O-z #ݝ|OLpJo&k!fgŝ/ZC+8^2k"Iyg+Q!.:٪>stream +HWAd awaڸy~p|kຆyJDo' X%"b]gʗ!ް)NkN0Ax[-(n7Ϊ-[BW-юR/΁ OS qo0\>|${o'/29jtm&…r﫤+MO^|p}ړ. X׎rv^QhX|+\Ph{,Öާ <ӂnyE_(RCWT)P˚Ѓ:afi_P)z,k-wp͟y ih3@WGo%#(y1czp?#϶6}ǀ8ժg{ak+v.mF5=ãF6ڱ(t"hk +,&.XWH<W;tEsA7̧T/ul4l0*:ΖB0,c1J: uG'w`]=nlLf!1ApzyD 뜥s:gH_' +6ksFPjQw820 gT# DmY.j%Q ]YMGm,7:d.־Zr' =ڹč% ܡ͑ywaw <3BB\ak.{|78f9V*AKnϯYs׾l>K;*?bUh x .SMi_8@:i4^@Z ge]\0&}u'w.gYGu:eU4 EZ;^5X`.5|P^mV_B._?qp?uj\ =^W3Ġ 0$S7/30Ze piKD83Vt^:aӛV`^~0cm>eȪR.rtH?w&ؙy .6tgnO@rWα KQx2'p)+PN"U =c>1[j]rQluvmEƸm?2OPjw|$yO!iW{_t! t Y5\~;~ri+:2Us3YI闠 (𹞘).8oeR8˹uZvwLrF0;kܲŪHg>kY/߬X/s̊?@|1+ =~Ts4 9gI88omͬKLO YP3~R6( aWCYQ\L[(OtX&ܘ/;K%VY[.Q>՝t9d!zlfħ=dIkvoNb8YIວycl*YWdž_沎k= G1Lx '^}=杊Bd?l{UW҇аጹz ci{g:zfm +jTmL+'D&q>ml2F)1Vȴ#ANj9Cq-&DuJ.tJJU}!_u:]f I +Mkn&R4>dmŃ7Ry|6\an\M 8t/0~.[DItK»G}Z +IOfdI +>IpMoc1Ӓ#l*:oXJ \^=wGWT5NRBf_9Ұ]TuQ:;UbVX_%2@+Rcɬvh")90=hr]O@Y%;c`r'ǝd([Xۚ>jKQ:XGxR 7vsXfJ_|Fgb;6.X홗9H)/Ozy2|+p\0}rj3|ĤޝvEe!R5X+g`fgSf+໗\I+L^qm?B[ Utر|!QaqGg.Hq +fe(ww~G +&9.0&q2XVa-}3_aL-Ldqk]$V[ a%R cW%8%wR5 .)8`ο88!ܛDN znhZAh,QEP%kMHRGfg +0܂JiΑe'kV?$Y4dk7;qgWɦYM +ep~%|4H7MM$5 .FŧM^ZݎߔLZ9VvO6ٸ7X|0iÿ26ׂ{43 uLF6JDKQk [La堢#hRؗtT.₊Z`V5ƝUwu׳ !FatyX])ق-Hq+_>zEDki;yY_s/#,0Y@Pdk[Np ?+=tZҮl#ss2Fn7$/;P^Yt/gHgGXTO @'{Qx<׋a2X#'^7E09 k*TCЦ_xKK峵I*ϙUc dIc7))S`0AYV&Ju078$8 {8eF^]ڔm{>Vߣ0[5 4lG @qFi.r3L cJݡX8n6{3ʝI%_+!6@IH- VuPv0;1R_V.:RYXR6m}Nqzԇ3'LCE#k"?ˆ bƭ,)7JRv: j+KI5M{WйK_4xBgeũrpm!4S5 !`O<5RG_gεr Ez/Pg4Yl?*ŲԻ"`;SMY춮@8cB?mK7Վ-WV{я{·μt@`U(]'*@;J'aw`Oc;;9u0:-:`Am\==p'_,5 Eb\uz4Hp5R:ԍKuz;w-^3"e15cf1˹E~gz#􋼇f>-U];5kEW3(hxķʂ̱9RajJvWhzc} +܏xL@|EKϑ[ a2eBSXyyg"z VUoK߇N[tݛ,̭nSG ` Q=3\'[&Z|GSQMs+@Y 8 -lwL36녮] Oػ\Z/UjA 6kJ<BL8R .&{C5έDCw 䇫!2lڜЀ?Lfu0%$kU3KEITC*I`mV\ WF +V\=vKAM3X8LxK6 zI:bqijOt:#u3 y\oW+lDXej}W{ ]L=exe4'pd5X.i|w[n f]l5OȠkq FHu>FvSne1\nl;KFv:0:/S"qmERY(3DvU k[cF^$ zvz2 U},ee)hDebϳ&Sh!nO Bv*qk7[fK9 +qyiN8Wv6Ǿ|C`,k6WwuJ,K)Vq`bS(e6|18KLwf 89 qxUThz Z nЇt;j] `m09뮤RGk쬵֖(Fze3Qڊ O3\K3pC ngJ ]y=04{^4!8_]8p3uz^凰4lt3;1X%ݾR%ʣC?1W+BFP'}6dV #.EF#*.a`̂}.cπЗ +,~",Tz`"g$T@jEڷrDP zs u^ ^Isl֔GD V}|P6lV^}lxXF{/vd 4DRݓ<޹vc #^#h+D|MQD5kV=;u~ʱ5/ޭ:7U]\U`x9VY,e .WViжwp mN?|@ץQ/D1`/BaMo8/?yZ0R_sJ;|֋'MޖzuϞ"pWXwYyŞÓvۍ©F8zc7$2,nH{DXٲv1`˹vmė\U !}m;x˛}?!/=s8W +F12=E!Y O;V&4CZ<jΞ%Hpj{>' ǢU{$f%%Xmfp͞=GrHTG; p1)h^KǿRv"^Kac/嬦&8{9Ue|^&I{-SJW4)&qO. +ڕLXFD8N``hZCcWZvCϕ;`lT1I.T4E$z<% %Ng+q 58*"&PQYvcPN;Rvs7,Hq(D"i0gkצSؙsnɩ$әVzi&9مE8^?U0ys"UՉֱjj.б*[ED tEASTN &f>S2R7Hp";[8 xC"{i2G/TS<Ԣegnp'M ( |ONii]p(VcѰj/ api҂B~+Cg"g>c9Uڢ5]-xԾp,$Wh ;-_P PxDuĩ.x +/Ɓ zhNq4O`3j0wVLu|/P)jC +4)LR ?$`n +`H\:8Њdێ-dz +cK"m'ڃeOy (&ixq>M%=큾'$pj&OhFd8<CE R$CT&Upy AݤP^0':0tIZjAAřZt)'8L`sIM*.d"n%"<lu'DjR,qDV˺B +*8 +ySlQָwPNa#d /L N5^G:Q~L& @bۛdf>XVtC#}͌/FԩI{,6zCN+T6(de2`Ty]Y(%k.x(MYfW$hpv ~/1[#@#΢?ɢ .}=z +tQd6׃φk"MҙX vJ8L0S؂Xh ˒3+G/7!KۑQ -΁>\kpF4Aq +}&>A5]pAੵˢWZtt.4q{Ŋ}xx ~\;?cv`Z{¼楊ւ~1fh0׎M]FA v!܇Z;%ӷݻ"U"Zk`jfdۛz(&Nvr$:BH78 +w/(m/O}S13gg/I?㦨ʬÓi [uq1o踮b:ytup~x)1`0\zMnb\޿ Wh}ft.`J~93L^ q|ܜTrTkn?,mf{NXL`JQR%y}1859;`ʧgix˷_a~d*E6a®3,hkqrfWZL3سu"Z9z5n T;z@k`9 8E:u^gMUMaKaQ ~õ[gs^qή/q8 X0yNjV4e.=GO1:L0:8}Y 3 ?\k#aeU'Z6ϯl]jðexcM6ԍq6$Ta̠OqxN&ESkzl7l?#D+? ?Q(a+\;ZڠB$[~j^e(N %2w) 7mt]t#ya5';_T;l>Yy>Vu)1:kpmzZή/qx;{\]]W_CQi8C ~\6HN$k"kޮObh&^?gu\^Mxz¾wЯ:R' έ﹕/]vxѓ_5m@?Caٍ{-`;EP.XV__j%Y\5\ ̧y5mL|{G7i)U'w?o~G بlaziV\i{ӕXP/kfW?ݣ?7㛱sG~p`2f2hT R)H}!>J=䊭aνEm} cSatv(Ccei+q-ɱX<%ƝאccJ| 9FDdžzYON'E?nl_)*1%Vxf 3Ӷ+R vO(Szl Ұ)9 SXe)Qc# |`9Ttr) +b#+ŭi'F˶&) +'E0?Zj =mKo`'.Z+'N_w0ۮr*nIMđnU5ՊuZtPQH S%9zk[bfߑ_y!g>]ɱ2b@a]lTGhĮ:9|m,mc% ݧ^Kz;vGPDL@w70CCrd3}r.) bOQwDp +qŃВL/tT ?þ/GͿ<{i`VJ4t|I9L>ƚ~fLVT8Wf+w1v^]{lt +u^B&_ZKИA`9 +3&x ez mW91sæs_D8nh +}9Ccێ)c[|R%?-13Hb^G<3gQjؕ++E>9 iNuQGXqDAK#(g"E & :;ԡ!lsJr.) 9MԺ;"UIJ*3AhIp6S5Xk16GHL&.Ɠe)ax&^GzJ|cEc?}}_@v8M8܆svv__9nc&ν%94$]I]0x9䠖e{oƹ7 +H.XlluV/KzX?cS>@@0)0@lYcRf0(E墪`Э1X'6v΄zI(Nد:6 #P|^%4~Uj*KQP_ x endstream endobj 30 0 obj <>stream +HWn۸}MXxch- MjI*6} _y+vm'QZS-g9sXf^Zy j&{y̲ܾ'\V_wcގ%"Y$pHIy`Z M&VUk.!ZQm \XCǟFgybڠ/fO}r%'7vszǩQ]FpG1~Y*9 F3Ha$ +g؁J$MKwi50PWoYtsO7'MAy×/{(|M(OrAlQib,~ ΑUqDvChfK*_@9Ie7T8RB]7oحa9moj8ɁvÈah{I`xU ve0߷5n'İ3N pyTcm(M _[9d2L .1ѓDs?m4"R21feljG?D `. 2g[XAOY].r4&$`S&ISU}:՟֣ݭ(V>ww# *@>^vx*1-'YA#Jr5'{0/jƾ BOvV|ָwy YΑqGfhk--ѥr6˜&캄(,JF &c̡V׊YC8oM4 &uEpHAk<E:92bA(ߖ o ]&Di &{B6"1ȁgݟOx&ϫrV_a&%E2j }{Oag0z ll "ɣ?r +ƭK&eJ1%mxouѦ$"]}6cv)3+q O89H0XFL ta3H,"GCnbA6e^~4%_5ۧkZY>O[^SQ.w}H{%vX:ddt+֜#É~ٽe9V^0}ͲOf buT[<=4:=I+vt /oׄ6kfQ.-ؔ5*3Mz#9JtFg7$ {; !u;!F,Dב!c:f0H"#I(sBs"1ctn9 +!m'97Izm8:fs*20"1A!M&cGqvU#,ZbIMax39ȜeZa^7]ع(ޒ<ڽ/xb$fL8=ʲ O4<:9dCq@ VR?%ˤ`/<ޟ?|K=<)wYUnw^yo3]N +/c&VFD/+8=%QJϥS5)5|iB,{78cnH#g*Șhn)"ۊ_ً֏iI먶AKhYzsI_wes+(b:naDŽ*lV$g؁J$MKwHi50PW& u +5D)h4_ҍ;u1-'YA0$'?cʷ>pwF$19(WF5n4hNԎxN* fhF"` -]|dP(E%~=$yZH$vg V,/ǺoKU +T]v,TĬ!ibюuB^ y=LD;G;UXnalfa+EY:l |$?01JcQs'MtHVnF/}v ZūLF{=9|F0oATg<8m.-@ &fA"k+Jlj:U-6F76L +=5iW1O;3O%E=&ҮX%:`}GW+cKzУFbHN(TMce +}+܏,@q >_7@^wg*Hhn)x||~E>\yj*dL7vAhcn  ׃ZJ5%ZC͙3Fҳ!<|w1Na;JkbUQnI) +bT;U՝(' ZjBaV]$nvS׊ʃgTFXxG!.IO%73rFhOT0S%ϖxQ82d858U=3m2'*]y endstream endobj 6 0 obj [5 0 R] endobj 31 0 obj <> endobj xref 0 32 0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000047719 00000 n +0000000000 00000 f +0000049185 00000 n +0000308791 00000 n +0000047770 00000 n +0000048113 00000 n +0000049485 00000 n +0000049372 00000 n +0000048381 00000 n +0000048624 00000 n +0000048672 00000 n +0000049256 00000 n +0000049287 00000 n +0000049558 00000 n +0000049996 00000 n +0000051147 00000 n +0000083155 00000 n +0000102704 00000 n +0000115870 00000 n +0000132032 00000 n +0000142331 00000 n +0000161331 00000 n +0000185297 00000 n +0000212762 00000 n +0000240028 00000 n +0000266794 00000 n +0000293035 00000 n +0000305369 00000 n +0000308814 00000 n +trailer <<52D1DEE7A87744F48C968A2B1EC4BA73>]>> startxref 309019 %%EOF \ No newline at end of file diff --git a/latex_verze/template-fig/VUT_symbol_cernobile_CZ.eps b/latex_verze/template-fig/VUT_symbol_cernobile_CZ.eps new file mode 100644 index 0000000..8069c62 Binary files /dev/null and b/latex_verze/template-fig/VUT_symbol_cernobile_CZ.eps differ diff --git a/latex_verze/template-fig/VUT_symbol_cernobile_CZ.pdf b/latex_verze/template-fig/VUT_symbol_cernobile_CZ.pdf new file mode 100644 index 0000000..7b80bd9 --- /dev/null +++ b/latex_verze/template-fig/VUT_symbol_cernobile_CZ.pdf @@ -0,0 +1,1656 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[5 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + VUT_symbol_cernobile_CZ + + + + + 2015-09-16T11:06:50+02:00 + 2015-09-16T11:06:50+02:00 + 2015-09-16T11:06:50+02:00 + Adobe Illustrator CS6 (Macintosh) + + + + 256 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A894FdirsVdirsVdirsVd irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV dirsVdirsVZDa/l1+YN3bQ3Vr5Y1a4tbhFlgnisbl45I3HJXRlQhlYGoIxVU/wCVY/mV/wBSnrP/ AHD7r/qnirv+VY/mV/1Kes/9w+6/6p4q7/lWP5lf9SnrP/cPuv8Aqnirv+VY/mV/1Kes/wDcPuv+ qeKu/wCVY/mV/wBSnrP/AHD7r/qnirv+VY/mV/1Kes/9w+6/6p4q7/lWP5lf9SnrP/cPuv8Aqnir v+VY/mV/1Kes/wDcPuv+qeKu/wCVY/mV/wBSnrP/AHD7r/qnirHJoZYZXhmRo5Y2KSRuCrKymhVg dwQcVW4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq/Qj8sf/Ja+U/8Atjaf /wBQseFWS4q7FXYq7FXYq7FXYq7FXYq/OfzZ/wApVrP/ADHXP/J5sCpVirsVdirsVdirsVdirsVd irsVdirsVdirsVdirsVdirsVdirsVdir9CPyx/8AJa+U/wDtjaf/ANQseFWS4q7FXYq7FXYq7FXY q7FXYq/OfzZ/ylWs/wDMdc/8nmwKlWKuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K uxV2Kv0I/LH/AMlr5T/7Y2n/APULHhVkuKuxV2KuxV2KuxV2KuxV2Kvzn82f8pVrP/Mdc/8AJ5sC pVirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir6O8q/85X6XoflfR9Ffy7PO +l2NtZNMtyihzbwrEWAMZpy41piqaf8AQ5Gkf9Sxcf8ASUn/AFTwq7/ocjSP+pYuP+kpP+qeKu/6 HI0j/qWLj/pKT/qnirv+hyNI/wCpYuP+kpP+qeKu/wChyNI/6li4/wCkpP8Aqnirv+hyNI/6li4/ 6Sk/6p4q7/ocjSP+pYuP+kpP+qeKu/6HI0j/AKli4/6Sk/6p4q7/AKHI0j/qWLj/AKSk/wCqeKqd /wD84jfpa+uNVHmz0Rfyvdej+j+XD1mMnHl9ZWtOVK0wKof9CZf9/h/3Lv8As6xpXf8AQmX/AH+H /cu/7OsaV3/QmX/f4f8Acu/7OsaV3/QmX/f4f9y7/s6xpXf9CZf9/h/3Lv8As6xpXf8AQmX/AH+H /cu/7OsaV3/QmX/f4f8Acu/7OsaV3/QmX/f4f9y7/s6xpXf9CZf9/h/3Lv8As6xpXf8AQmX/AH+H /cu/7OsaVj/n7/nF3/CXlDU/MX+Jvrv6OjWT6r9R9LnydUpz+sScftV+ycVeEYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX6Taf/ALwW3/GJP+IjCqvirsVdirsVdirsVdirsVdi rsVYB+fn/koPMv8AzDp/yfjxV8I4FdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi r9JtP/3gtv8AjEn/ABEYVV8VdirsVdirsVdirsVdirsVdirAPz8/8lB5l/5h0/5Px4q+EcCuxV2K uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV+k2n/AO8Ft/xiT/iIwqr4q7FXYq7FUq1z zb5X0FVbW9Ws9N5/YF1PHEzf6qsQW+jFWPf8rr/Kj/qaLH/kZ/Zirv8Aldf5Uf8AU0WP/Iz+zFXf 8rr/ACo/6mix/wCRn9mKu/5XX+VH/U0WP/Iz+zFXf8rr/Kj/AKmix/5Gf2Yqwv8AOb81fy61j8sd f03TNftLu/uYUWC3jeruRMjEAU8Bir48wK7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FX6Taf8A7wW3/GJP+IjCqvirsVdir5z/AD6/5yHvdKv7jyn5PmEV5bkx6pqy0Zo3/ahg6gMv R37HYbiuKvmO6u7q8uZLm7me4uZm5SzysXd2PUszEkn54FUsVdirsVdirsVdirsVdirsVdirsVdi rsVdirsVdirsVdirsVdirsVdirsVdirsVdir9JtP/wB4Lb/jEn/ERhVXxV2Ksc/MfzHL5b8ia5rc JpcWVpI9sSKgTMOERI8BIwxV+e8kkksjSysXkclndiSzMTUkk9ScCrcVdirsVdirsVdirsVdirsV dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVfpNp/8AvBbf8Yk/4iMKq+KuxVgH5+f+ Sg8y/wDMOn/J+PFXwjgV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxV2KuxV2Kv0m0//eC2/wCMSf8AERhVXxV2KsA/Pz/yUHmX/mHT/k/Hir4RwK7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX6Taf8A7wW3/GJP+IjCqvir sVYB+fn/AJKDzL/zDp/yfjxV8I4FdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVdirsVdir9JtP/wB4Lb/jEn/ERhVXxV2KsA/Pz/yUHmX/AJh0/wCT8eKvhHArsVdi rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVfpNp/+8Ft/wAY k/4iMKq+KuxVgH5+f+Sg8y/8w6f8n48VfCOBXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq/SbT/wDeC2/4xJ/xEYVV8VdirAPz8/8AJQeZf+YdP+T8eKvh HArsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVfpNp/+ 8Ft/xiT/AIiMKq+KuxVgH5+f+Sg8y/8AMOn/ACfjxV8I4FdirsVdirsVdirsVdirsVdirsVdirsV dirsVdirsVdirsVdirsVdirsVdirsVdirsVdir9JtP8A94Lb/jEn/ERhVXxV2KsA/Pz/AMlB5l/5 h0/5Px4q+EcCuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxV+k2n/wC8Ft/xiT/iIwqr4q7FWAfn5/5KDzL/AMw6f8n48VfCOBXYq7FXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq/SbT/94Lb/AIxJ/wARGFVfFXYqwD8/ P/JQeZf+YdP+T8eKvhHArsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir sVdirsVdirsVfpNp/wDvBbf8Yk/4iMKq+KuxVgH5+f8AkoPMv/MOn/J+PFXwjgV2KuxV2KuxV2Ku xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kv0m0//AHgtv+MSf8RGFVfF XYqwD8/P/JQeZf8AmHT/AJPx4q+EcCuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2KuxV2KuxV9mWn/OUH5TRWkMb3d3ySNVb/RZOoABwqrf9DSflJ/y13f/AEiyYq7/ AKGk/KT/AJa7v/pFkxViX5rf85Bflv5k/L3WtD0u5uXv76JUgV7d0UkSoxqx2Gy4q+WsCuxV2Kux V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV 2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2 KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kv/9k= + + + + + + uuid:66c73065-8051-e544-99ce-26ff8a93e861 + xmp.did:9C7A612D0820681188C68CFC782F358D + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + xmp.iid:24CA2FC66E206811822A831E66324EB2 + xmp.did:24CA2FC66E206811822A831E66324EB2 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + + + + saved + xmp.iid:01801174072068118083ACEEA6F111F9 + 2015-06-01T12:00:44+02:00 + Adobe Illustrator CS6 (Macintosh) + / + + + saved + xmp.iid:24CA2FC66E206811822A831E66324EB2 + 2015-06-23T23:11:48+02:00 + Adobe Illustrator CS6 (Macintosh) + / + + + converted + from application/postscript to application/vnd.adobe.illustrator + + + saved + xmp.iid:9C7A612D0820681188C68CFC782F358D + 2015-09-16T11:06:48+02:00 + Adobe Illustrator CS6 (Macintosh) + / + + + + + + Print + + + False + False + 1 + + 58.741634 + 58.299973 + Millimeters + + + + Black + + + + + + Výchozí skupina vzorků + 0 + + + + Bílá + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Černá + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK červená + CMYK + PROCESS + 0.000000 + 93.000000 + 79.000000 + 0.000000 + + + CMYK žlutá + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK zelená + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK azurová + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK modrá + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK purpurová + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + R=228 G=0 B=43 + CMYK + PROCESS + 8.425999 + 93.444702 + 67.586800 + 1.315302 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000004 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000001 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 19.999998 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 10.000002 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000002 + 95.000000 + 30.000002 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000002 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 14.999998 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000001 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000004 + 100.000000 + 35.000004 + 10.000002 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000002 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 19.999998 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 39.999996 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 39.999996 + 45.000000 + 50.000000 + 5.000001 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000004 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000004 + 65.000000 + 39.999996 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 39.999996 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000002 + 50.000000 + 75.000000 + 10.000002 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000004 + 60.000004 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 39.999996 + 65.000000 + 90.000000 + 35.000004 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 39.999996 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + PANTONE 185 C + SPOT + 100.000000 + LAB + 49.803898 + 77 + 49 + + + PANTONE 185 C 2 + PROCESS + 100.000000 + CMYK + 0.000000 + 93.000000 + 79.000000 + 0.000000 + + + + + + Šedé + 1 + + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999405 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998795 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999702 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999104 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999401 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998802 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999701 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999103 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998803 + + + + + + Světlé + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000002 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000004 + 90.000000 + 0.003099 + 0.003099 + + + + + + + + + Adobe PDF library 10.01 + + + + + + + + + + + + + + + + + + + + + + + + + endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/Properties<>>>/Thumb 11 0 R/TrimBox[0.0 0.0 166.512 165.26]/Type/Page>> endobj 8 0 obj <>stream +HlPK +@ @|:igkW"?`?*ϼ<E8>stream +8;Xp,SbbTU79^^kTjeGa8._Xn)_.Zn'SNMS(kYWi1'u0(5rB1S$D@rG&sPjaLLMph +D,;.C3fpt\Tep)*+ShD[5_B-R!93h@hu~> endstream endobj 12 0 obj [/Indexed/DeviceRGB 255 13 0 R] endobj 13 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 5 0 obj <> endobj 14 0 obj [/View/Design] endobj 15 0 obj <>>> endobj 10 0 obj <> endobj 9 0 obj <> endobj 16 0 obj <> endobj 17 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 16.0 %%AI8_CreatorVersion: 16.0.0 %%For: (Klara) () %%Title: (VUT_symbol_cernobile_CZ.eps) %%CreationDate: 16.09.15 11:06 %%Canvassize: 16383 %%BoundingBox: 937 -555 1037 -455 %%HiResBoundingBox: 937.7168 -554.6885 1036.9277 -455.4756 %%DocumentProcessColors: Black %AI5_FileFormat 12.0 %AI12_BuildNumber: 682 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBCustomColor: 0.922763 0 0.160076 (PANTONE 185 C) %%CMYKProcessColor: 0 0.93 0.79 0 (PANTONE 185 C 2) %%+ 1 1 1 1 ([Registrační]) %AI3_Cropmarks: 904.0664 -587.7119 1070.5781 -422.4521 %AI3_TemplateBox: 421.5 -298.5 421.5 -298.5 %AI3_TileBox: 584.3223 -784.582 1367.3223 -225.582 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 1 %AI9_ColorModel: 2 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI9_OpenToView: 836 -417 4.34 1820 1125 18 0 0 46 133 0 0 0 1 1 0 1 1 0 1 %AI5_OpenViewLayers: 7 %%PageOrigin:115 -694 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 18 0 obj <>stream +%%BoundingBox: 937 -555 1037 -455 %%HiResBoundingBox: 937.7168 -554.6885 1036.9277 -455.4756 %AI7_Thumbnail: 128 128 8 %%BeginData: 31680 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F82727F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F8F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F82727F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F82726F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F82727F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F82727F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F8F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F82727F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F82726F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F82727F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F8F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F82727F827 %F827F827F827F827F827F827F827F8272727F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F8F827F827F827F827F827F827F827F827F827F82752FD277D27 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F82727F8272627F8272627F8272627F8272627F82726A8FD27 %FF7DF8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F82726F827F827F827F827F827F827F827F827F827F8277D %FD27FF5227F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F82727F827F827F827F827F827F827F827F827F827 %F87DFD27FF52F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F8F827F827F827F827F827F827F827F827F8 %27F8277DFD27FF5227F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827272627F8272627F8272627F8272627 %F8272627F8A8FD27FF7D2627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8F827F827F827F827F827F827F8 %27F827F827F8277DFD27FF5227F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F82727F827F827F827F827F827 %F827F827F827F827F87DFD27FF52F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F8F827F827F827F827F8 %27F827F827F827F827F8277DFD27FF5227F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F82727F8272627F827 %2627F8272627F8272627F827267DFD27FF52F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F82726F827F827F8 %27F827F827F827F827F827F827F8277DFD27FF5227F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F82727F827 %F827F827F827F827F827F827F827F827F87DFD27FF52F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8F8 %27F827F827F827F827F827F827F827F827F8277DFD27FF5227F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27272627F8272627F8272627F8272627F8272627F8A8FD27FF522627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8F827F827F827F827F827F827F827F827F827F8277DFD27FF522727 %27F8272727F8272727F8272727F8272727F8272727F8272727F8272727F8 %272727F8272727F8272727F8272727F827F827F827F827F827F827F827F8 %27F827F82727F827F827F827F827F827F827F827F827F827F82727522752 %275227522752275227522752275227522752275227522752275227522752 %2752275227FD2FFF2727F827F827F827F827F827F827F827F827F827F8F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827A8 %FD2EFF52F827F827F827F827F827F827F827F827F827F82727F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F82727FD2FFF2727F8 %272627F8272627F8272627F8272627F82726F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827A8FD2EFF52F827F827F827F8 %27F827F827F827F827F827F82727F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F8FD2FFF2727F827F827F827F827F827F827 %F827F827F827F8F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827A8FD2EFF52F827F827F827F827F827F827F827F827F827 %F827272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %2726FD2FFF27272627F8272627F8272627F8272627F8272627F8F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827A8FD2EFF %52F827F827F827F827F827F827F827F827F827F82727F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F82727FD2FFF2727F827F827 %F827F827F827F827F827F827F827F8F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827A8FD2DFFA852F827F827F827F827F8 %27F827F827F827F827F82727F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F82727FD2FFF2727F8272627F8272627F8272627F827 %2627F82726F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827A8FD2EFF52F827F827F827F827F827F827F827F827F827F827 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %FD2FFF2727F827F827F827F827F827F827F827F827F827F8F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827A8FD15FF7D7D %FD175227F827F827F827F827F827F827F827F827F827F827272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F827262726FD13FFA85226 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827A8FD11FF7D27F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F82727F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F82727FD11FF7D27F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F8F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827A8FD0FFF7D27F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82727 %FD10FF52F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F82726F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827A8FD0EFFA8 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F82727F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F8FD0FFF5227F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F8F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827A8FD0EFF52F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F827262726FD0FFF27272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827A8FD0EFF52F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F82727F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F82727FD0FFF2727F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F8F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827A8FD0DFFA852F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F82727F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %2727FD0FFF2727F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F82726F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827A8FD %0EFF52F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F82727F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F8FD0FFF2727 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F8F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827A8FD0EFF52F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F827262726FD0FFF27272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827A8FD0EFF52F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F82727F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F82727FD0FFF2727F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F8F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827A8FD0DFFA852F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F82727F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F82727FD0FFF2727F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %26F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27A8FD0EFF52F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F82727F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F8FD0F %FF2727F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F8F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827A8FD0EFF52F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F827262726FD0FFF27272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827A8FD0EFF52F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F82727F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F82727FD0FFF2727F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F8F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827A8FD0DFFA852F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F82727F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F82727FD0FFF2727F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F82726F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827A8FD0EFF52F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %2727F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F8FD0FFF2727F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F8F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827A8FD0E %FF52F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F827262726FD0FFF272726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827A8FD0EFF52F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F82727F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F82727FD0FFF2727F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F8F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827A8FD0DFFA852F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F82727F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F82727FD0FFF2727F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F82726F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827A8FD0EFF52F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F82727F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F8FD0FFF2727F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %A8FD0EFF52F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F827262726FD0FFF %27272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F8272627F8272627F8F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827A8FD0EFF52F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F82727F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F82727FD0FFF2727F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F8F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827A8FD0DFFA852F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F82727F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F82727FD0FFF2727F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F82726F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827A8FD0EFF52F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F82727F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F8FD0FFF2727F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F8F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827A8FD0EFF52F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F827262726 %FD0FFF27272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827A8FD0EFF %52F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F82727F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F82727FD0FFF2727F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F8F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827A8FD0DFFA852F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F82727F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F8272627F82727FD0FFF2727F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %2627F8272627F8272627F82726F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827A8FD0EFF52F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F82727F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F8FD0FFF2727F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F8F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827A8FD0EFF52F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827272627F8272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F827 %262726FD0FFF27272627F8272627F8272627F8272627F8272627F8272627 %F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827A8 %FD0EFF52F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F82727F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F82727FD0FA827 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F8F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F82726F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F82727F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F8F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F82727F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F8F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F82727F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F82726F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F82727F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F8F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F82727F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F82727F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F8272627F8272627F8272627F8272627F8 %272627F8272627F8272627F8272627F8272627F8272627F8272627F82726 %27F8272627F8272627F8272627F82726F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F82727F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F8F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827F827F827F827F827 %%EndData endstream endobj 19 0 obj <>stream +HWr^ʮZBs 'YUNYrjMTJ؀l+XN(:/2elN>}')ys0;<ŧˋٗQQk)x^ŠJ{o[s5vnC~Jއuޫ>iŸNNb|KoPyHm}Yz&mx^rd!ӾΓI~o+odwVNI/}QNӼ=1Y9B|$]~~&(V_M< }'-6V;$Mǿ֤UQG ( ^eZwZ9E[`m[C&d'%aݾ{vIosKk6] C}JA38V9-]^%ZJlì"qPT*zVh.:]{cDY~q/IWo0_6Ǖ75eՖZʡ9;m4;w": vonճգp֙i_L${]g(Z9²:i&]pPNӼZ_he;z6ɧ%ͻm>M|-zpVN{XsX9座~1LnbǛp}ߖA5Wٽw+>+p +|Wl_:XWdw=]3p =w3p7z eV,fٔ?ԭɂ{egrn&̙ n:-lT}p\ʚl 'y5gIyB9xs ʡ&jܺ^V֯(əi;jse W.+ٲeXW#atWG{w` )E̒AI jrdZ$ oE788)_A [qP#avm+t@6ef[Y47VNl_&sy`i&150;Fjp~΋&ޫl흼?|7?9K=G;| v$3?Oz:}X'<}jvT˪.vG7o;yNpvrp#sdd9;ʿbev?ntr5:޳ì>ٞX>Z|—o0}Tp,_z}!r`ԣO6o,oo,}|*n +D:VE22A_*6 xF + bC% NB.tЗai= %S,4 2Z;/ m$ +D$t527%D&P)Gʀhjb{8 tqڥHƍԙM֙]mgz.;) qVtRG)C#vNt ?ct|"r?FXHBDR)'+9UfL] RAɡ! wnq+6)2xO|4&_U%`د +,V}9ZvE!n}LUa _l(RYؗ(,R1JZ6]8@E@2n>xi`%˥] [6ʡX UUUmn"kN*PH5@S(%8ѵ݄dt7PؒXv֥aL|m[N4^A.B*RĵBkQ"B^P"$|mؔp!A$ {Ig]rc~ϸi`)ҿ86-Ntb*T̋#uyCA[+ME1 y4)O0g~׬VH,!K2:2#3o~h@RUKd좥G(Ffp$/DJ˵U=<]#'n!kZ:f0p[tEa亽5s&Y4^R{U%*$lJLj;R?0?;٨B؋GSz b +xv3!^E| ;QE8WRA md':=E1g?1֨Jl,4F]±)+RSbP(dUP.IgF%OHA͋A[^+ H +Gd}<@[MnXn +.=|v= t8P?su, `K5KqF2 ]r.XdX:C܊;f4[[ oz;OfchͰ4e`J+-CBfG:%fADWيHOW֘jb|?ˢ֜B3 +ѰffY,yA΀u h{ݿǽo8U7V4/X a)}F. S/}3b=WփrǭmlƊ׉W7s[dIn:ϴwez|867o0ꎊ[w&>` +0 M,Z#s2qA}5/^}r,k&5̷\X ĴFʲ F-&}[`M5j[FߺÁrN@ҥO-a?^v~Xd-e$%yi?#L,$j";vUX Ce:yO>\DI\N@s8EicX PI`ykݪGXC1{alqܵVpô1a#d<=m 5#4Ix}ԢgWn+vo\ۘl~̑I(zܡd-E.nj2T9?@7e#+32|S6Ž~mg x^p\镜 󇀟nbGI)B0/xXj%(9:eJ.6PcSCBmyYnHk_cTP| Y,P3O:Bb 8iZ:$W4Qs5~2|cK$ ;HT3Te/2=䳒KuAd}`W<QN%;(W>T5Q3Z~/M4WoBt6Hj+Lyr0JFMk=mU~oRf>BhT#͏=Gk^_ph!B$Py[Tή`ҸTiۊ^*O_4!{^S>hh/!=I&RH+``veL8/zBAH4>8]B@@NV$ThB@r^Sb=^Ը Ek6uX@LߑKC6|1.u ly-[s jw*^3w߻p1^CNY%ZU*=x]yPDb^D5sU.di?z!k]~d9d\tC6j!R-&*2 +vR۬n*X!:2oC:x_KV!іVJzG}ߚ9 #hQN +Q-,.ci->\An6FSwP@Ü{F甅ߤ6 +֝-xUCdHZXud ;"=eMI\EU {hn'OCw"[Ӈ=LG*۸o4~XL_\Z>JuL9H36+X-.{_ Dh(z qt۰=nT5m̑f*͓IDZvf]ywGRw^VMT0]nV`7vm!Yyfi?0xɩʯ}xkԵn_H@(r4FNˌ*XXh ~(H/:6Ga3[p>GSt"{،q1 +\&c]l_z[cdF}H!ⳓeD@H@ +)p!S)+dU( ^̿%Upӳ=2ʵ^ U)PkKL:w-ˆ5c=fr*p+b(Ox2kܵLکimwƐo.TXLJвV6$+OPxʚ@/bO}?WHC!`0RZ<U($%[y%u![{{UwWs¶+G |[P)EЬ\~iYG5u' +$}׶wo5YxŒ[L$!6RSsAC݄ZRGLBˀ\ [YcI})ηt7ʅĸшŰ|B+1˂D6*uf(kr$cjZ);Afgc ۩}ݠ-y -mH7G]m&,?^0F8  2SBYD?q=ӣi#˙x%Jh2aSCw6=t~GLo[țM}ѯ=t%VsL +8K,}QvLYYm&㴧.xMng[C^<V(Jqq8Д߇ITzں__0€G-^v%zEWtWp1zet35բ7EWzմa/ +C-m)[uΈV4l)0Xzc!2jd񠁘gZv:?܍ȌHV _d!@HFR +e[ߒYQ_9;{( Ö 35UUNB+z, b"$OX:vYԣyk Ldks_8d nḃeA]tqpJCD@SdB&hfHqD@ diY(آ,%AxtQ+kD -UַX7۞]U#Qt4 +r^fVG"Yں(F^lY[(2% KղrpqrlY.Lo"a(4W^Ȝc+PN"4HG!LKMeV)HK0Pm9EʖTDrH TIw #˜mFaa$R2% P\!w쑬 g;=+~ iF%{kݕ@Vid$B%:APV$6 +-X^<棉؍?9zYYLr퓕Y}/:L&6z$2lv $86"XN!P}f&+ p֛$@!kl *PA¦H{aהRRDk퀐 +gc +ݶLDA]Yڈ $S>nGLr)Ī5(ՒcOd1j;6~ϵtsSW0mN?Z5;T]~C!߃=+= EtnuT[7kp~’rGf9]{[zW=Y^<{/9um_!>~/ƇBMUwUwNuhj-HTvѱs"Cw2DsJHF3<}7\'3J ["aU4xT 4șd7.lѣtuq=:=qmsfKXhTsh ]#lJbJ={ZIu'tTgl7u"At~H +vM;->, \.?ƭWU!i73#q܍ CU|Ua91x\ S[&:=x)O? %9C c:|_m(v1oeyD߇3|fnM-ԮͼF>QC߃EM6Ň!&{mрέsܻbj1 ebX$Sސ"ɦKML,Vr.9twdXdX7 O~h?٬90vw͏thgnh'MbL\ۄ.[&9xK"ilؤ>CۋMޖ1δU/T`E :CX<0⳿=ԥ +{Ia}z[ĺO@oz@h2 +~H-trz0Y+ .w.{Ɣ TF +kV߲ܨ@ (jϣ`ɬɼ׵SDY0m+;w|RI%fvdQrF頸dQCncj'/9>kBByV6Bv\ZHVkuϮӱ7|aϿ0O~?|t25ܶzdm.&s" 9GE*h:R _B76Zqٌ<LidBCl$h 9Eں|LhiM-ZkkED˛ 2) q*hpOp v9 iJio:e#.  L*e$q5R'QKDW&[9(kp+3Ě˼EJ[i/L1IDb@Ԕuy$jA^,`#|!DQw.D  kSi6KiI;R9].jxk\t* "\V4;k/ިh,GS8nmho}qYw嫋9XwG}W.j=ݪ*&|\]=>{J y3ƊFS*Ib m/ં JHpK%!l&(Y ĚeTRDus?%Ϋ#n'pвA =8&H"Ld,([kRUzUؘPB D Qge_U& c XYh`U-{UDv`Sr¦gX!7Fb4Eʑv6KMZN +hL.Mw|{mVWd!Ҙ@! +jց}U-Y/hB?NN=FOF^Q~鏫6$|j4â6-CL5j +bR!yâK +#>Xk,7x"B?99(h\_/ÓV[΢Aj@LE6( +HnZշO-#jT83cL +STĬ1k>ɉԖƳ@d +@P\`N=F} yIUV^"*cQ(lV]FC~5ʇ Lܐ~rShhh25q~" 0{lW{ g6]3!Ý$m {yW^g/ˇFq(&fV$n]تjvGS-3VP8yWs@?/yI)/%GX$PAr>`N).*Bq_΁.-qoFA +:'i٩;bq`&QtenrdϕJ;%za!T2mu$kR@1mBPڞ#-YO]%+ʩY5ONԀsy:RXC9rr9x4:ކ:7LHgfR1"&PlIu."8htuJ@+jlMq)gW FO?$aUi,[snE:!0$DQ$ehPp.ř/h9b,/;RXrʳ2^9'`C=A ķv47;DN2J+/T NKmOR@bpu0L;3 Y.zČ['bVbB8eֶ̡Κ;5+9hS*8CD\iճQK=EmaLְd&%R=ض* iXEZXHziO#H1Ţ.q_ZVLT  C'kUMaӻN,))y*^P 3nY- l95plJˈK *ZmcGVf8镽ĪDe@`ӉN<pif+Y#dʄTTXk˰ Zw3EZ%Qur.[vrNփř=qN, TZQy1Ye‰GY85՘mڎ{B8.x>"vhXx*s#(㎌C ENt+4D/@#zPwTh"k\uH$p@H&=x"[a{eBQ 0eCsBY`G@-#$ DՁ>|ӥ$*a+VyEfQW+ӸRx({g3FS$cAlV N~`{Y) f@Kz{ SƘskWi. t]a,AG=Vro/z߽|͟߾/\~}//^}}/޽T?o>~ŋw}ŋ_K7ӿ/}ӳ߽|۳/}<חy{xw?`G<޻{z_?d;$G DOw +[9$Hu}VXͩ?J^? wkCHvYC;DnT\P4up*붛}~z<)Mop~% ̗|VSc=T-DV-ŤNRD\Z5w$Xiwl!1:!BZ캚MetQ>oǬ)>Li84WihmԭN#L*<=EڃEkTIhY{ `ER0dmzcE +]1=_@qҙspl.#+?WE%zC4Xuұ?p* IJO'W䗑u_s;WqN RPwb#m^{)D[tncۅrrR|99h ji#4%.s+x%igb, [!l +9O!M$ usKR+)C#Wy@4 TsVz8 `ҩ]v?-4wIWEb7mأ%̛s0$CRA)bd)7f"8D, +Log'ܶ)]Z2ٕq͖4jxJ*Ki,_&*l۲!45A4 O +R_K`OXw +iebiGf'rߊ^4ZL#RN BQܦTy8 1g + +`(]\#A'6dQ%71>D4lj5}N~:creg !D$>ms?)7A|:$*OJ:mjK5̷EDIՠ[v7wUs>>~Ku +%nd:4I&툨2&_ txH"Jd1dq]Pup!b{ͅ'@X5/eWt) + vʆM@i\>FC2)rL] ~4y՜y HZh*irVE,]}Q!tA>]W gim#LmY endstream endobj 20 0 obj <>stream +H\Kr$7 DO;I\ַڳ +>DrW;vk{fqe+^W=W;ͺ__wd_[wzf2wtd-k߾f|X֚3/ :kӸ{V5^kI6tjߺw6/p|G"k4|=߾{a:"}_}B_1]\;7VHDN.<Ƶ y-9rvOۓS-&פxm1I{Z2- +Y`FR˝EIR}}Fޙҍ3cN䍗/N3 X0pSFd +&K=&^|[fO\N:&fn[‘qa_ P2:)eNKi 9JIam1LBKwǞ)W +x&8 ^ xo~K2+ע"TMZŴszŌQSBp8u< C{z,C9c5q_Y8Xʨcw!87Uua;lx &SREiFq1 ӘT'-e}>- זv(4,m2mFὋǨILs|KȲPWـh[>**<}ֻuR/&~gsՈʶ-e%DqQjЙmVFqځT> .U<Tp`L0~hPŰ _F+\]V-OgID"H;'uniuY:m^8%h9Yx;ɶ2rJEML[u m Xj0SPӢSlWE雮,$|TfPfUѡȼW,cdj0`RLiCæmu +|%ضބOq<|igJZsX,hGa%a yUW{۪u6Ry**5O(ҔBY 6 վgBCrcfjJ*# ̮0<}m$H 6Koebnyd즒1)u0$s71DWbYCC + e?ۚX[?!HZI|*aq< + Y+1e_Hy&޾)2*-(V5l NT+:h~T=r!-t^R";+u15A4HpW9τM 5jj5KbϪYtD(UmI. ɩC8"Hk<ؓH$ZSt%4j"54c[n[DOiiD{JGщt";pd ]rX>cH m'N]?ĸj@3UC%z^0 ETmԤjCĀ2=\LI_\ڵ=tQcC84 +bqU~5p3sxD26ڶvEJ +ٕH/9T0R).nQR{=uvysn٣\`ݸJR=ŏ#w~i5+2\C1X銣葅 +IpP"vk\Z(/bEXbaT$:L8н(b_po.y*$ 27-=ɝ,b;͊ Lq,YYG Ҵ J}/%ԋB_֓i"ظ,Ԣ\r%Ys>o YjÉI{\&c="T~KM4 aPzdhIUd!.=` ԦtjMT +AJ5q]6}*mz;O0P@ >˽% #ELkLDO50xSj`u~A$ ߄gEY$&zMlTɡ^4nC[|JMD`v!al'"O%y $!8;{?<_}?yq{J}ɻחW7}.[ +{D'oN׺+|1_7#Y@VÖiӓ|v|sugVbON֕&|T#!~O?N/Ngגf@+fl35f^|>On7]@Y|?C>tjuyhKo %6RC~&BkIoҹ~Hjw8.p5'7ċ@I![Yf0J]gcQCl3BN"P]e@UWx +o MU.Q@ Kz% +(Fe+DOCj%vcaH9'E~qa|v2fvR +aka2)oҌ(Đ|OxG%np2]2RީhnjG ǎ>(;@C6>k-\0ͥKD%FgoRoz&ʴ#)2\R{2z S(8C#3Hf8 ٖOۖ0Єuʬw&@M͘RR5Q j #f_SbԤsJ3.)>X&: Y'BՔQh%bɪ}\7̃-H|)-~K(W dM +SRm4㹡א L+a *'QQ#{2#OmRL8&zC\:[@um.l{_,w|od uT2)~h E{a{=1-ru6RٛPtF:)`}7V5Sx/bL>+ B|I 2:C3-5pN5в#P7{.ס^\3u9oB fPklgI>0 бt]bF oo&w_I&(>/{3NP:C=T/z-ܮM KV,^X\nPe-u{n*uT$e^ڀŶ֫:1-`qeIvFWZyQXkKڛWέ* 4{ȜeO&Ug~ޓggXW,"LB{W5{/e}NPO^ڤM=   "x +*ta&G \Ͽmo\PsperI~p~@~LE¡ U*꜊+YZ8RˡYtiMD I)` ߬:t:ެܸT}6%C0QWjyP#H-hFRPMYs J})g.JQt=rshS ?tLwE /  w/-.:7J]ٽTnÈu- кdQrG=.n'D)׎Xl + ;1mce|Prʁ< |Vx +ЯSq=j%s[ +]HNg>EcJ{.+1/dzDa$UTæϷWpK>ԛ{ֱ>$L~O +O fqf~͟D5[_O4h*شRxcOc^w> jT~6~~f.1 RZ {T|`e_I[67囍ʘV|+nZ=fxݘlZF}v+XXY߳iH To43S>#ޠF]/e+ZYknEP!e9}t{PF6C&F#}WYo#b2DQB>Dy1?bA|v1Nus=@vpj+9}cx0G ~tDꦐbX-jta*t婜Ar}uzMJFU!5tn+sA"qCRųCueZC fBZ{jbUbc`>Oco`oRȞ,s eyia⊍dEfߙb5FĸԞ-;u CZ#L1jK;P{°OXΨ΢%F޷*wf'\eAf!*|BYx<5|ɪubOf=OsIpPm?l +R${PlZ)d \WVɽ|X*ǖW9f>T:k[0-O(Td3kPz'zOFCGͰ,a_"@{>ݰ%*Uo˜JÏZD롭*ڭS(0K<`ZO`1V<yŰ($`ۤ +kҡEk4+8l+^VkI/H߅.,}ȡlTMsLFz+%u<H̝)s6J5hdƯ{0blYj1C5˵> uV!umN-+e=Za;Ѻ\/ +dջps1i?Ok8Oƨ~=,)Q$<4ZO*'y^[sJ<s n T㓃5$/1}75*jI,)+pPdfD AH#"V;^Kq0#2NDƽ=h?7elt ̽10G%Ts=st$B +)',1/??F*_zW?WS:2qn+vANST'DנUKWNVv͊v;;Uz+np\ɫtp1BM{7$0:=vVCɳҴmƱd2k]dh_]ԮSGy?T$:Y Fe֪r P dv\ïzXYVZj+W9Uհ5.)Ẅ\<m&le%zJc~CI]0JxXg9 +G%=-WN'א,0+u1H67ϐzm'J )ažH,?&rLٷ6x!*sWj|tt]uz+fgWLΞO +d0Nw8$<^WhwtJ)!ao0tM>SWv՟3TV(W9 |*21#@:,5 :dLb4̏!3)Z3S΢Z屎8lcaN8Z(n=v!<2Nw:}]5ա}]t {܏lьqJwic^k,We8vkb1y3v6&P1$gBۜa0!d$vvTzr(B=n⩶!bхl'|MJLbS a i.ݵJO-~2*G54}BidOcix(=N x@GTH[{RWbZyBLgԀ>xMnv9R~胂kckoKAP$u%WJV +P_m++HPpa8Qz`$Al-8~cIee2 +ͬHBB:a)S\r9+9d.#?h-:SE+#e0%"AȺ#v2Gm0hÁ^Zue oD^lS4y`|AoUFr#aګ!NT]ʮ)޹|_Eĺ`{O `syStqHc8l\p ((ߐ: :GS~X+1 #HG%'RhanAgR85vYМ>B)+,,dFJ13J'N#b +Ӿ#| #i!BvJw#uF@4)/x k;Zi5vzDu؀ຍ,zDE LӨ,fwxSkn3º`2&2v5zZ7{o N 7 30rҕ} _< St +n GE8bkȖ*Rs;#GJe1y a#R dų{$u"E Ϡ;u'%()%ŢjlJޯ~x{l#z }`cP b)T{FbZrD =UO%f, GJ>[ǵ*LRd1vdwK5?F"]d=RmO,$<4H/Iti[øB'^F^Lv̳I2<[@F kkmoxX2C8첍t&T1'fpP*RE>@t\j$7^K0--XA4Ajw XY5S$jJ#)YKԓ2XE5t^AOd{ .VvQ|PVx3cANiӔl^>ۃeTE P3^z$RqɂbfLR%dUPvCk7,-sR8ʝf+C.-4*i55H/ʣ\ߙ  $Ԑ25B{ez ;L1Q'IH<0ͥ5Sd3֭SczB|I't`x<4=ftY9!n2ʙ%<3iɖWZ&h +^v$ 6 NeQΒ,ƙfAT?5 Uh1"æ%X3/ՎD˝ +AQWffE~V 4lT?ZT d;2ޭJ:8#-@b]W2?8V:u]^~ٝ/ߪi[5u8#%c&|\)^3P{<_AU|hrQ?x,gGU踚K}G&x;]DrXqNL~&e1V=y5-wż>ZT'&{;pD^c  ÕB>oEU` `.j5_@V'D198kN(Ɉ ;vÎ W]sF1W6Y*_6?7/#kr,^AQ 5 =ǯ#&s}Y7lϛf-f YP9WBJrr9n'#2F]3{;-*@ǻ 8R>{M*â^\w }R+^ٯZ#?g^9D Ic \W-HqeS1ȶk2\B׉H5x.˙V &× g MK۱f I& 44N,@dr&߃;qyW<5$_cTƪrY @vڳyLi^ 9TdIiN7Gвg9"UMP#L + ujYvbzbYM 4jbzo@&[Ţ=Nhʫ"R m}n lr1ɏH$qc(O8S+f,O +oDP2+I,^!Ȁ $cGԾ<ef5YP&,ٞ$y$+U=()RϺ[JlfЬf   kwAZP&,00V~D WPJ `95m05 $b(}޾|qj4-1ZfBZVl9' x@Y)wLCP&>8-'>\.b{gw=⃳}qt'f|Q8> x*S Blq$v/,^ .Vf:K}§|@}@]3k8>M"ҧ?9ޝ>cQnH峮&\h|Dq(` 1,\FCa ]̆Y>41RcUe:UMvӑYo,k`ɲժ!J,7D9(ԚMLa]Q)F1%x(.ͲkdNf&GIp%VӬ1ƔSS*kJaJL1m0^4ۨ~^/xt<ʖt{U+!"eW,߆"&M7Fznd;W|}X|'wb!픎?\FCHhc,t" Ri娔 1ErqNaj77%GRI;1Ge~!+7B?*yi˒MaXU?arw_#桾zDnD>j&^e!(#ua6 ]$/t#Sv;1Sp q|/ƹ;ÃPi6(I$ʲpkrL>qS!9Ib5Y{zxJ@' + 0O} endstream endobj 21 0 obj <>stream +HWn8;G"vҦA㵻E:"-Xrb3wCg?M;d]]Ӄو/L_DZw(ViT壟&_ 7Z:|Xd/$  '/fZ%^N-s64TK~ iPlCk + ðK2 _UWMk7+fj&O[ +zC/MJ(Ze3CTE)atsaC*oP-AI}MI!1c2 qD 5H5izn y[l4g+ gy[@FB * +1P=9SN)8R3 ?_k]Ura30 PLy5ݔ#Pbrj +Z8WtfSoq!#iV 3,T5(y 59fl&^$`CS9w䮑%wG4uC`"g.ؒz]7= 9M3+i][y@2Sl_D=hgPP*s9F(SsA&t:|a<G𯳶lMa&)iv7ݡ :5^kuպrvu&q@B4xLbBw3>5&} 5v='$~1D&& l~t9ad?*C؋3,V|!w~fݳ#xF ^%'r\ .倌n+Kfe^ # a(:>܄⚯<`%`!FVo='HH S;ngAB2r@=nBPF?ss}8 +7;9:2ܷ/鶬̝C)zm&a3~Џ:'ߨˑr Ǫv(x +ҺH̞"8eh\#0YAaMZWN F2f#C>FQȡ{[$^E14pLcF!{nD=xw p  +p@BP[ (4,L|rQ05CWBxo +$KؼhnFkky4hx@C'Mzn0=Oq#NS^ =u\粛,x8UQPYRfY=H]q4rv\cgyMh(ͦl]5'] +7=z/H(?fQSEV$qvo:KjwPș$^n(0-[Em5,UmI~]RSRfUoAd>>JȆs|HS$8@ +"Q\O`,g#XwhKex@D 3?唯2/Olo⿮ XWEoUi +L+g)kɆ1K<& +Η΃X-E25n0 ,qU܋66V\4ў=ӸR(hG]Zݑo![QA%o͠MY7px +li+?iD5w"aG +Z]9E-3iʱ5="ZEB{b1|Q)Qh`y k (;\_5`O]͗bv;7T|vU୙LAgJ9>Q{Rz#/1A)ƺ Ox]l5S @*sQ!r#! +f6Tɡ RyXD `Ԇuy#z*_8FsW2?%H񝁩xǺ9)tGFy!>w~_l`4zj`ē%"zBz+Fu<cV2_C*NA/duUHk#1,{6ExX)~?ABw$WF'\M}NX*恧S &E k9iwVj[#&V>|x\4 ?вmA9Gc-㽖yDH}{(&Tg"7wR}8Gwx:QhkJfqg.oA}}%lFd4;X2^;4\ x>H!0=QXICHέ8eϨ|X5̺乙Gu DW " ?gФ*r/?Ѱ +OxGciHbp48Jtl +qHE?B?@hBnSbDdjňu1g1U]:ÙT&w/6RlѼp^?xgv a VMo>8U" O;m !Q34,!5`4[m*’ &@mzޙbjw+P,oQj}R%]v&bAHpDأwkL9ܔ7!- #<(ЬRG*6zS~M]Mr7 Ī8*g5uk(pHJPdDK{ YL q;S|KN(` 8_C5PG{"靰t +m njN2w_J9x,vGvn٩tbw3}eH`xdк%B ~jósO`־-9J<$o +x8Eg:w5,%4Xf]gZrS`=fEʵ32k%#H57Ϋ0)6ۿư~ÆQ[t/.M:Xo{$Nۭ­s By%LkqVzhi>ܩ R,o$#LG0-/SlE j=(@^q;s0bv17蕄+໭.tm5niXqQ][- +*nu{X&M]rL_A)jnL}&ňxy4M)~4guIAr_ګkKU%~p< 8 +Th 1g}̹k}qTu]sELksZƒELm~= TIsX4ap*y|C``Ǣ#Gr;9 r~X$xu2͜8|3.E2 .Up)FБFZ)'}\$I^t7qq[*9M&eM]i*4a/k8`Gd܁ ٿ juF{daa#dk {OJ,jem6$Τµac Ak14K)O;=R ^sG0.HqHry/:Xl@@ҌρBcLpJ @&P0 ОT 1-"[6L2А6gy2q;3mV"HZ}}σFWce]yD-eEڴGzÄڞX*!1GS_~+*w^Աy>;fb>ٸOސ Db)7!w2<2ܘS$>? {^=s2}TP¨@SrxbPF7u9ݐW8{-PFĤbf=%\z靱`ִ[ɕƩLt*ztVTyLEF4juuLVmN3;D*al4 ը4A|V""ĸpGeOo6s21[fjxD +>x5~'p#(H^Tu-a~Q7ބED 1oZѭF8!bHi~+5fATX4)IuE0Cf"f"pR0lěv +;t*!C?_ ٝQÁXZe3a9 *L]3ANb3uR6ȏK<=(8EޘqJ XRxflcpJ#*vLS i7fryo5aQXkyb)XfpM"Gݓ ;_MJaU8{cʯwD#&dr +i.T7:N~F_ʏk[A݋ .Ue\J(v_p=烀:Җo;Kq=l{v鏟1qUYG +͔oF+yo| gdzM9WZW*-A*e +=FڍX9Q<ŵugF0pk`>9g{1ceֱrݯ;ED'/R/ pvΠ,4:k?^gkS}bvqmU{}!Nc#b%A>fN"h6]DGg{Y; ,חqC)=Q`ϊufA)a'o=9SBY>"#fQYcp.RvK,`qUHf_{X/ J'噞20ߴm÷`m#mp]ݭC\ hh  DեEIUb$Nو|P +RVpr?haP}&Y~gcgjT+<3_PKzu..'aVńT9FL ϹUTMvZ8й$*Xbs51_#c |^vb骔3X ) _?2&vcps`()>?SpEW>@1+ .nj g[F)r&)wC_ +/6&݂ +RS+ (W:#b㳦s{_\"8smoSe{!גp>TvuYᜊ[X?SEYP!g>Ǫn6FAI:_qb61S)Ks'qlc2zepS^B#l0m_#]$GXv :1`,9wf **ꬣ`a 2uEm%(l ʄGs?%M5:(2qsjĻ DBޕ%MX9[I(WV]l @goOng[;}Nz1ۤ3>KܕDl/@~W㘑z}F@5~-&.ѷVɻ'NWת +[4  ȷ ˇ]Oß3"ڜLL ٷa%I4b0 c@OMAHCeegٗe +kXvBd!% +>t6NW_$ezP Z9]>L6B[*x_ \vpgw!in]GwQPJ}-Ο{@7} ~ +ڠۂ@i0훨|ר~ Ta(JECo1Dv]d_0ΨǕL*vƲSd3*s2 (~HS7ODӏE9`6.AE]|=;W.Ea8pZ +Ϟn $>Ot08v ?C%i */6LlZ51WsĤ(h sL$ydD_hAYir8OJL}GWΆޓ'=|z +:+ 6+ F_΁3NN3ΆtvNVTgYVa-/E[w)*j᝼/H_Sҷp/" +8Yg-k=q%+kq)g.iNDЀYVT-ϒvqr v֥U5'tjDHA CiעO_: m) Z ҷmp ,G< x etX8A\iSWyEZ_9&MϋV֮6G޿VT,$W/d}"d+D7Zbb._!"Y2Kl0"ZaLf L0F>l*c!PȯXTFxyw\6=/ɴRXr喅xyM\8^Q&cWȭh0aI%钥Px*KBh3 燚dT$ֿaFx흙{/:cUSgb^=q}]pDMUcۣ#tL[=,l y`V`MhbZY̯4CIŰM Bh||=4FL,m{x:4r p{$!&rbY/ݘl3@s<əkB,Q@ZI gɄ|ΕF /B"{h[,衠50D}Yl7b-܏ش˙P.ȏ_:hDim uIOtSkV jpnROtXst[ +orFy+=gf2DChuફ&ʉb6yos, wrg(hji +{̒k})-EWPc!?'\vך~[OFBbCsU6졧 +4bU(gȿ-2uS[贳P}yu7yt!dmNN:@E! Y`:Ra MC.e:uӜɹ]F ˦!M!C=fڤA +( ~SPU '-bᓸ@#(AErgU\=Ia͕@k"S}D=lUB( @ m`߱Ɨ&vÖdq1p(AՆޙ".}|GY7TmM-{o5k\;1i&R|`X}iW&뗝"ouv@onVg{WHk ں|eLb wǵZojZv^_!_}pKvʕɽ~NlZ1%=HN{;Ր;S֧<7C BfHkqWҲDżIiZKim0yXc<kT%3+9yZ +g6XTSc D}%CZOq/S׃10KXn/axǂ^ ^>v'WS\/2s1G}oݎRcܑmnIurU"z[M~A@nxFc$|DveU? BAXﰩv]{nO7hR^82H?c +cP}G@yL3 +ryu14NH>,CB„½3aU2(ǿynv>J{d3;C- IP˧auzΟC\ˎllмp'|I;ͣ_wk~p Hd +n\-#p-A< sbd#ۥw?1?w<\}F^W~=9pen7.7c{T#6).}n >Zd|yy隭\|S>&#a~Au?_1 :M~d?/',oсGrM_ 2|W޶`W)Ӎ݁.֣3=0_wϭriuծwoa ie쏃]M8i~"6/V1R\6Amv H3UEUլ3oh 2|UasnDa!=)%7jm|Dj;9$?SPj0Q(;N{7=S;!FGi/c̠[|z2MX fLv"j(~*l2cٸR"Maf'yZ-륷[d0Uy=4&1r3kP4=LMI;{޻/ֵWN>*:uJ\n,U<|YmkGw^AE dh] x+׵_h:[Nӵb8j9"'0^j;çH)ΚU"K}\I+΀8rgkaWD|w؍WfcsI6QEA+vEr/j^)Ȯw%t6,U]h%Rꋠ[4hf ͡=-:bt + 7$OgIxs]f醷h"'+iraG#wv7-Jm_)yis`esu*{p찢 '-jB Ie:eZ(+̦D)q۠BSpIn|r +'ѵH|w|0deξ bZM/׆7}ftM.yr J7ξhGI?a=씠`_Ύ" .2Iq;F3cqS?8Tck 78X)`Gn" +ف.zMm1hՏ9]h53Fq0/0ꚈB>ќqg4c4[+w2Z'95]ƢЩ&#(+{+U7oӖ:oI@_KYZ4 #HVAE}if}p8} +Q`\ ?ڿbt,2\j9K .ABT_ V o{jH+koSEZj3iY`KU15WS1gOEpw#q^Ż^8j(B0{!}Щ,6=}2' LVPIr&T^w?kYĔI +t^| sH-g&B|r)k ^/^,5ryRAJrOz/V͐_\\I Jz(+Jwz?,;|tӑ/,46NNrI>&'|"4ݙ 'bkEW׳O7e໵Z?$޷"oHSiE6OHfr?1۳HyJk4YE +UW oE.ojwE9;zKǣj5jz0)tD[C.K hk%(dXl߭/Q+zR-=fW1ؙ =D?zx=Q}2}Y+66|/JGScQqq}YJXjQqj:u?jfࣉY\dDG#w]gg7ӈTӂ>wśP-}ktܙ;LQͿZ܇7eqY$fq6%IJ;&`KR{f8mTՔ}JN۷(sԵ3u}n*%f̻'C($%)!4E{d>\Mz8s+>'8(^fC9N>J" fܻ>Mf +wݻc龨I5r;rMDlBܷXfiM?M} 2t8[RZaȕA09SBK;f [Z6&/ͽf]eʰ9dsnv+ dv ʒo ߧ"bK dt!-rl .ҒyGN:zVBgc9qH6qvmjŕ $>CI2ʀEዡLS[isǠN)c{o+47u_6\ysa|,PUrFBOWG8' 1k*gR}4 qJcli.;Wq9\ kUdA}V8/V>HA! +d ?4Va~۳CBF+p{tm= dpȜ *u.|Ay%Uds{M˹TSvJGUBPwc;^Ε7^vR=q#q<Q&%~IT %vULӡjJ'K'u<ˑ8'v Lp13z&t1tfS|!!'ĜkPWs{+Ny=JKJ#\>[eʰF +;%jPϹۥΆe2`쐏5@)/+Cy9X(dy,a.xމ5ͺo]P3 SMƁ)P:4p_ ^⏜AQiդ4JΕҀCM`>z4 /G 5ДB*U8$ +ZUPrhQc;/[;vKQ2^/̅ #}R"nj^.NSN LE.@bxzfgIҖcB3+[u1Jj%WOtr'߫lsXYA!g0mwc8-GNp8nHDJ\z-1Lm6̺ >\MƳã"oi2LPfHI.n*/Wʪ.,"ZszS/^Ksy&⽥̝ł,nDڒJx z.4Е1kxM՗9Ӊ&cgɭ|K扆i8 Ev]澈H{, ѻB0$ Cå f_Q4D`sKN565u _n5 %1$=i2c?G>  endstream endobj 22 0 obj <>stream +HWBJ}<@H @GPBEAAALj_wIGwS۩PPOp~dw4z (~;UBAl- +~ +f"8e_0l6RorHʉxل0O,?v2ZX.WI9vBi-`*>Lh2,$g,e>Ϛ`oX!B80 ŰrD!M`Qdms(kB[3*: a/l<{0t81X !a'7w|4WLL +Z::/VS]_jS JeZ%[0_"mh4aOiMiCi"Ѯ5FGUbg4w!C%r Cxr^BW%P*,F(7] sXk+(,$#2i9sB!a} f"\+B "$,Yo][9HMJ9pɋK`VIVQ)FBAױҥQ1$̌<SO~ُ8"gXCZ,V.'-?'[ʳx|yuCU*#/`oJD=#Yy)Տj.r+kiǁ_ +Oalzr)_\_@]Ug8gRڞdz:~9i]Z,a1Bo;k NWݳp]Q/N8{y5fPu*ReTˋf,kIF_=4 F7ۼշ؝>2Qy4~8^x}6ٿIQm#_^|v Fo4;|&~B5N5U]zDl>%,΀lT}VF2#Q` +ֈZQy]K +1k3Vg #Do+P4z!){ޑN*T +_z,]\mGʰU}\C]>_+oG.~w +.؅ˢڅZqkHq.K K0/dKOIs +` y%\%c;& +%&P=- c[W?[AhCCSH%O][bELR"fUᲢM:/gh,]rxƆ;Z_>/["kOW-{`C+ʍ&Q'SY;%_JգO'sT0JVlUժ* "'gL=?͎]0Q]<v,KVuANdd]I:O,ai1j\.юC{9&OQp + 0}'O?R#Ȅ[ r}뺈2 +V;]9k'\VGkW>\(%ge,sNZ1iiyACI,5)maBTj#ʰ-rN@ + ʨ>-Iir/r - 1h$sqch;}nŷrz.u x%uݪ b-r1wòؗE<$/vM4ܢ_x +͖ܺ%WWhW1t1+n^@l4mo4'?bАT@+п0c*ĘbR۟ľΤ9lJM: +$PJ؉o RXY}G>%Y٧}%i8Gwִtᄭ]"xj1 ˵miQV 2_6`Ak 3"RQ͋By%zYIB54I `{o+2:^N(ţg)q޸ 7x*o&vkhu'Z VJuj냼KFL>Մ Kӆ c2`E+wnCm<;wPyV#,JkBD)} ^N6m1s|BtZMfr i80"~W`6K's9rWJ_Mxkd׫aGezE`2:X&rh~l}z̤8q(8ߘz]8ҏD|qděFKʬTJI&_-Aҥ\1uK<|EH؎݆y^TH]iuPƾw%Ȥ+ kڴ@ە/kSHEP $F5+~ҐJ21~q {7d+#\ A%Yxɡ`< +Zᕆؾ,F(78fz-ig J:ȥd9 FX`/p\XmV욉h3_Rڞ֮z\.IJxVg^e[+A B Q#(fQ +ݙ$/Y,5ڵ =<^&4TnDw|^|[TOeO,8>똝e/} e{ ,ꢒ͋o^^ #Sy?Ĭlq+`4;-\2ܥ:嫳Ȼiv0\@cSqW5ns;MX!7$9e89WSoi:K?m4%[ r1+ce_|>2j% prС;h{t-!Fn}IySSKD{h5ߓ`օPf5 r$qѩ}6˳`P-:d=͖I݌_v3}6P3NTJQ4Z^5mHAd,(kHoz`Z^邐{jH G)x;8aeT c +8U_ @6$%]?{S̯e^ex\~VMנ[9!$ j>lA(n:]Ilѕ+iTo1?j.+ٰ;^y0!߬衦yJj/55(QSsuZ5K P)Cn#~ȗWK F5!OQQ&X}SkϮh,F3p$c*jAd¢B%Jv}aJjSW/,uJ9%a(<|:P]O?B!9$yw wca1zwer*&7_B>^#4ȪO%RHn6)}-[ _j亼8-#,$%xFYjjk3eυx.}K +2SqwA{E\s6m{y[Fx50F;FrD1vU̪+s˯{mW:*a&G3t&1؎ujAP~ q jj¢-mPh™\JeeTtsǢBZ]vip12,!E $d&UXCﰐFֵaVV)'wUc0I@ҡL3ԔKJ{~펥#fRZzeD% 8!As(.qZD-pUHOYNC?Fڄ~WL{.('1545(Cڶ^+\ܹ+ + c?≐}$uN<2b _&7ӂ>)pc;5WKP-8&ا$+k;Nܭ5JD0e1drg*5y4a=-Z4UL +x#.Ȍ.Kf(?AWPAB蝬M%k^Âvr)`]q{+R/º$}@`+8mfÝ*T Vv§DrJVQocDWbzLB u ‡]QJWCC!PBU)| kr܍!0vbCb_?P Y+Nu1Ĥ=Uk N06$Fd/+u*?=A3i r{żD屩?^Pzl{ 72 woȦ=O1L5@= !;Ӊ r铬;N;8>-lI-ٹ8Ce˳-*K\/8uLac!8cD*2bmr,\[f@ 3 eՖkx1V~('Hu[Ĕf,XXpJXgc7JPˈ1 +<{81P!".;"/4>{+Da!Ⰼ a\Ti8T`,Px8AY$؁O3r# kv߱H8DG(zXy?qۛFú$|jB6{~hOWk6SրJg^'[7[ܖ97+d_cRkF{ʮ4hC6 W|.EREΣ}|f$_ $-X$OWZL."H0E:BT5JiOٖwi|Y->?W+T|qdew>C$G{$(QDiV3=ߌJXWhWl$X<汰iSȷktQB;He2O#ۭ)AaZHש ]c}.ʈaRXQEΥbUQF[49o˒?T SCTKk(w+.d+TYsՎj6TR7E65p ;s5 >b\c2H,j%|lmazC>#4mz$>h-v/m_K-z)';1O 'g2!,DP&8x"UPqH;- !>LԨ.q3+xַE\) j->Zoa7ƹr@K0^X_zf0=cXCi&B"V|Y)prĂ,5#M[RIDk"FBP]z{|nЫުdc&uf}'-:-cx)؛2 \V}g̋++T⵨Y;tO2{ܲaK@^c_sփ +E|Uf]q +ʥmԲ@2j5f@]#TziQ*ı,B᥌׀9YoQm=>#z!Ѧ7~jF>ySmsxZV^f%޽Ah@nBJ A`vF& C)\,B\B 3 @dYir&K ~r@+)0v,BPO>KX)EVH˗Z3틐~ -^3_qgdADwOL 7 p"ocXQ`mZ3N\p. c9&P/@=s$@ ^ 8|oc?!]#">}G؏! |o!3>tKbw2^<9 #k¿Z#]$4里vX|dЯ|wO3SFAjuOu*)'WL/^Z㖒t|\W 5C 5el}1YnD Ey\A,%ܺ@SXi2UPV0MxFK9 qc=WXAةh!O7zo\mjb;3WW4s3;2V>`[Piw@El56&ʸ!A>h-v/m_Kԓb'uigZ uc֋g;ӓ+ m [nH\fȉc"pdTvFs<6lSBsE5%Ԥ`1Eu90hd4aU$co/Z6=IG,N&.Vxcrg *y*qv3a^2v{лȑQwQHTkZW9,yyBo +|+rDsUqHƥpUPXn`a\N[ܯ+s*{[/`zX2țXd+S.''e+*%d2':|N`~FMO3)r2il +=M[stco+l8tK]t"ľyr݃?+'y"椙s'8=x# _6Λ}\HEHƥ}RΨ^bőr!rYwf՜zqV\}A$e^B.6ފYMwh҆DbsR'|w N9rrpch[P;U( +"fax, |2aZ#bwD3¹ ꍸri5,]"#sc`+_ˈrT:\QC CB\ Kε_!w"o+ ]?s.G ]<%⧔G) \mycעqyDF08h(c [miuBMuᐩ p;erQ:v3B/cE +CabCc<xwOp`kMdYkyE3xs9M1X[ixH o+LP*V͋UƋ!sSpŦ)L$L,7I (eP +&!ƿM'l@d\=o L%.'~ +5У)P`I@o"bJv#ra]czEFv%3en㫪n'62/s@2k& g(c= į O.^1&\sJA$ǮWZU$_VK:,'b 35,5p)ƾt1,?gӟO0$ >[ OnÐ9#]]c3}P8(m⿊vd~vH~J_:T6a 5p +]y`:cj/˸BhG2/bx1>ջHbM*?BLɩA*.1͖B>:"aAtH8)YvA(#hJ)*d֙`H>>tl>CH\K4k'{x$VsiG~Ao&}2plNuDzJVժge~[z Dd iw$АfAa 7howy)/|@ i}S5,[ߠ +x hH(bSMn =vXPh(!\{BhJa$w[v ?l[tLQ8ϙĘbxv9nQ]Ďڳ}Rqp2Zڔ3O#hN5Ǐ>i|ێk7W6z_mTF_f;,'kaB˥hڝ2K|Oo|z 9WP/M +T +OIh/J6sli4Wq`/5kˇ=^t13"E(l"@ĺ&?n`BI1vc5ZͅY&Nu|1(RJV+͋))ϧO5fՑx}X#Ѥ&J푰Dn xT}$?h^'W3%<˾wgj/FFswIl}Ii}cIjA1t&tn8gvG(+@ϺH}rfK4'&ʩ %W1N.+XTpRjXl`9:>'wO9o'%)6`;f\r_%c^4ш'.|Pc1CW]Yfgyr)+(|jwcdcc7mATT~urD9h6v|swD)4DAzR +b a !pvBB(Ի&QN}:xѦFÛ4#?BMA7æ2*ȡڌ㥒Ϯa')d(\1z0h5ސ; kA.Dnq_m3· Mm.8¢qLI]ö WD-!e 蓁=|ΪG~d^c FmCJp&:5MƟ0%fT +n)PTJZC9ơ@WPGyr]jfp*+] WbIaW&sQ)J: +w^3/s,NA %|GQiB ̓`IF!QۧwF07w= endstream endobj 23 0 obj <>stream +HW[nF]0`aF@U-=R2lR`w+c!8ל*H Ůuo}S/n>4|Fѣ06j4?r5ơ/wrfJ9(ne;{i*MVq㯻zw;9jW]ׯ'Cw|ڌpvqv֜/w.]VQɞQSGTzl?In8m|WJ MH /MD]1SƤjfV̈́a1M:f C7˽w 1.UNY<{Fٱ_zq ʰ8̏W OqX?[`Y=|}X$5akL+REVhESl?=;Kf9kӍ֘z:g!{<t u> uk'c1Mlgu{s]rli+.h߾aD/v|ms$Nu?@/n8otu_y?oFUc(^@8? +KKʕ{^|6|ygb(Ӣ=s?atrO3Sj՜bZ2m?H ~ +vklY?sh(4q#סlߵumO߶|ѵ^L#q՞vY2,XJWidɳN"7D2E$U "TQL3$^,0~RMW$C$IDD%1IFܕ+ Yj(gR*|+a\df)oSxWjf5~%%%Ռi% >D{cEImMfFrm!e*caf_%Wn܊{IxREQ3 RqУ wl8Nǯ( * ˹R^H{%Hԏ| +ꖷMN,O̧,N>O?OϷy tdAùQUo',,o_8#x| ߑ>w}xN?ǏL7MF9i&ri?>'b/|~(bعD'g ;x^+A9o z(<=]>tALG5yxxX3/**ԁ2Nd"$vTltE']"f˘5 OT\ + +Ӂ41*EDMx"´8\A!>RL"qϴg!60uT׍ȝ +W  +3jk + +X—С>Da"Uпu`=̠[dP\toIGiB;L 0^LE`! 0c qv'H`.#C"섦0bxw(W +1/T w]K$ i a wCC=oL!&}i,gf>Y J3˦!+-pmU q*Gnd:6gXzΏFNCPDua`uy嚪5G./FZau{F +X"u]a]NC(62EC8@}+Tp;țvدj1~yuد؋umsDa#f11YڞhScXWHHH(,0Ug%%E@B%Rb%rUU +欁¥QEDTDTJn*҆g=h( (U(p"q*r=}FktuvwxyT=*_bV8te+ ۶ &ڥ#f]eTmuT},h$dlښBsȭ;f;M;I[4r|! =[ Ӡ5fP +!ٵB \'*LKU0HC+t +;+]\֓;Sn;ao2ltPʐfu3<7eE6/!J>۷.g +nWKLk[J!#e?ی)5DȨ3Œԃ隸"6yTmdk:-iuSyP.c\S~ +8phF9̡dLjv!t(G1QEJ((*J֨hʶpI4hfnT̵XQ˲_{y\<('a*v}X}#!uJl3ԧY] +rep $UǕG.ү r%9j_mEYUtaMuhWhR!3A8G:r\5We:JrUzm fwy > -DAń"mB4 V ii5l7p 5\Ip T(ik+Z\7”=LJ= hA)^U\e{-6@-V<є %t]nLhAKt}Ffffˌ˚0vůvU4MAMa7EBFřqm")Vd^aq{f_}џU| m-!̼>3C5-W%R&`0Ν-KlY{/Wjņk[ +*4Mlڦk/5暓mdFPĪP7}۾> bIerPAa +I1K}JiH# +WCS! ةEYDY%b8*< +pE YxUt%uSckG]ZS4Rőwg9t!޳f%g1}w_\#?'q9<:~9 RYq,8BX&SECƈdё=z2H" 9);S$vPKEz!ACDMK:;#@Y0bAF$IK53FB<%mFp]f2#Lalj +T4 Fy=ˏǬ[fWףOZDE&Gx:f#ų%-D]<9gL_2 JoSq`x{g

%qxqm.Sd~ixz~G=н}i:ӯyzzӻ|dW(>ʝ7("۲DChm8K4_krڭD6*tU'~nIk]zIIHr]VUMVEV=8k"{[)ELRi&L,fb(*e$v3kRԐS['OCEG9`Sb**U`: +k[K1 + +:0EL3!Y!hW5C5[օٛ({T +3߮ )@;q-2)Y(_@s$@h( +J$p-28lb ذKtXhk"d +٠ٖeC6[2{Z|sݚV5gzNA txN&WUKމsխ\ + !q(JqdW-َbR{$VIJOBґjXj{fo^a,cvc@ $Ƶ3,SH 1͕,"P&2!jT n h:<X7@UX(`zR$0bR~39=V! P K\agnȈH&ajFyT(4zF?[xEDlI V`sKSYNaK's*w^fX9 ~jlS<)|FS%lf Icٖ-'Ezq B8K#٘d#wC|:xiEjx܈Y># :luՉ6]gޙW_ܿfMe pp(a<C{PtG.NFDR&)"\b[ȦN{c&m \䔒ʋH+#W5=[B.aW"`°7R9L`6h'heN <$rDB͆/PhRin9  Ֆj=2ϡV1O:+Jl>\k'Y=9=j3 7Pc-;;zK9 /5wף1fHVk$9잙B+pXs%wYjQ>m-7|"Q e2 &

p ]W!#"cl-f@ +uʎp}TYee/tL풠.R땜:ϒ\qF{</0BI +Fpg-Lj3 tL-72NCYQZ/}u8lCc bIa շS)/ҧTm[{նcmE`^@7Jk"MA10lט&ΤA>_&)Qs#hPk>I$ju<YD(k\1(ޥ?L']v0JE=:vFe͵5WE_SdN!1EBIq8LR%!lI'> P)},>c.>o`F!xˮy'i x$nyÄr #qD`(-JGi)sm-> &ufJ)妔Rvڦbٓ7)HVijITK\yҫŠ9-;C4Gy}g,ﲴw|ѕ`xqT܆K\l~lKpq?J/jH w-d6 \LTXf)'@c+|l ?׎Fk1.7 +z EԽM]C?xY őAN. -=\hYX&] ˒̂8*q3X5Dwj+Yg kcuXWGS4b񒞽,dh$]D~9+oAW=eS'.]vj/0afK3\IJ݌>b 0$9 a"6?."=Bں>b#.:^9)O"t#wӽ;G ivpCJ>%9~Ɉlwvv) jc#1XCn7IJe.EqK[悂x Y9N.:MkPקPe:E'9_W8Za#/G[^`z^ƒTa])/IoWk//gǩen(7C MU PqͩTXJuO5?j*L]Z-yk=WB4F3%>\qŘxܭ*im~j'f9pnx7o}uwt^ޥCw^!L/?%#aڂ+,ʠ#̌:Џ6^"@|m$@}g" +U4e[yKCcĘSHhtfGnDSlM6#DL !XڃDhh̡,A݂ۡ٠egp Ҧcj]O:^r QVAKlg];r ,C3VR7& +DЈT8#e*OTN1YK韶-( +&q-Œj\ ? "UAt75K֕+}uVTp:r uL9mv, bG}ۡ!6 ;ӂqqsѦʹG+<+LO.Wc$ u[ضXY3l4>C{#Dg}e m4AʃEOW5F܁MU,Af1(Q0 C6]vhohㆎnSY7jLN9sT:sk;eCv\=C@막*8Wк_7XC+" +g[,Yб:傲Xb) +e5zq3$2G($/( =e(|~s?1:t\`sڜ73s_uYܭ:9(Y OV\pj|Le=3Q$h-x60ƈ)` sB 5CӠg u۠Aq=Dw1hw.Av_Є*e5xS;>Uhy *wEv +A 1>pWA!.*(+4yL N9NBiFW㎯XUdco[^ZZ?-6ܨae +`:S>V  ܃ZaPr(up} -ppFXhB| nruP65\0X,߳2Fإ]B Ӷ.+eӗ[cݗooo^Q +g|~߿1BxEm ӨR4Vʺ:h-Jơb8#z]ߪe򕯤t4gT|My>;}{?ܾ}sO'\wo|[|~Wf|y{M7X?~W/€_fӧ7I)UzΖpTU6Ԅi +4qF +>@ +Q*zg8\H +A;ʊ03i*s4NqRZ4vN>x,`ş:U"$M/"[; G,% fKU%z GT +Gt#JQU1R~.+pjGxh%#Mç:,"υu/e+QD2q'5,`H8(d=ϩyG6 &y9qgw ^ԫ8(OUD#roLxnЇ=3ҌU9v+A@ѓt4"ʉ`C7w62Yx/Q۝kc M*B_0PHB@)$P$2V7:oBí+IT"Qb+ 9 0j`B&*x!L4f*fX!5sSCbw( +mYO8o^a;L5[{n+Zk'?WJ,2SL"U~cЎCݧ"g mb%IEh:|% lQZ1L"(-8+JZF5RzZ7 =鬶b + L'J +';ׯo/SIl(;´#k 켅2)ZwdL)x{+gL!/X%K/&wcҊ`jF_rcX#?{~(!}iޢ}V ]c|iKjO?wӧ#럄Pc#voo¿~O{7}](@[(nC@9 Ê{[7솾&'ݞ151(mrkl4/Fd|E˶6'[-gjG $g Т(PQ GpS35=_vw` >=71[$UpFciOy 03+e ]/0VPiih%mLرėiFlv*G,m% +"|yirsi4 sIm%쾍V-+AdܡZ]v ,1G܍/z)(+"6I u.L[M:p&A5K#e}~I\ P)˹Q +]m=oҀdJ-?v,U?br+P(8 FC.i'1V(p +YU.6݋Hߵ]|׿ArBr]~9tQb2:ȧ=i~侄e~~ErI 0@hD-Ri#n!IAEᘌpPЃJТU{PV"5M + 2.xHDhg{*51 /U߄;>4)]q~#ᒕ؆ZKe+^1̪E]~BE,bln peiqRVt.u2d]} -f>rNwQAEh}Ȍ#I<DQC%r=dPlù [6wV.:vQ6k]7{ENSp l´,hѰc⺽xSwtjTk}I\r~G~zYHluwU=j`1GV4&%@h_!|͍IcEbz2,zǓc|ܶQdYeUUEiz1e1x:-$㘫SUì*kAR-|7B$ۮ +VOnkַ +޸&aƽ +nkn ('^xwH==|~1Au4Q9|XB+Bͯ{X81H< =kYH|x9.qW>AyF5=Mdv2} ,ȜqF"nb]GBKX,RzW(Bbm"  +jDgSXF!K5aPCCi1]cPORRbT +n))bBkJ DJ8)IF(;ȨfGl./`F ߛg+ nThghהNSEB15"l"i% Ke,Ay :D뎋鹽~# r`!.:XcmxHA(Q͞q "&6MѺu7lr(a(GЭcbC8?D9/4reչ&VCGQQ֊ΎVt_mA%#Jg]\uNs=NpЙ[0%8QdDD`{-XJa3ߎʂ +]4Ggud0.^}[ ek(ע$SeJs+̙<%?+ﶮ?v I/ }2 Qy;D옍mX+?t4\6kTf\8U_pz2rk!JJc}F`"o1]LFynyHbYۈZsH+ +/Znzg(BU!'IYO]^>ÙVWΆs)i"YՆN'Př2m}y2Peݸj +n8*}M%6)m0":0u\tp~R fFw5I,)e + +/iX$0EZ (u,m @MDG^))J" 8C8^mDvj p:49@Q6;t\IƗ: RL)E#iXXv'P[ hį(׉ 6藇@2`yS[R2:v h͢o[{){CIAV }ۏo?_xC?޿:_[ʠ@ȓZL@חo/>07x/?V;={uuWo{?]_ǏY?O>>ӳ>AY){Aן3wgO4F5F ~Д..\$aRU}  +o*eѭj&}(Ѣ>Hγ^ל7c'@k] HiUA8 +l|#Ϭϔ:CԣY9?g.(GɹTjhZ{% K1<}ObfΑ*#QhN2r=ޢ0h?9@ͫآ۴k+CuB+9oo_ ֊phcHj J:s >kĵ8>ɻ_S|P0!fU>jb=Q ]1T?5L3IJ!*ɔᑙI_ʰ[wIBP{pX .t\ҁ^1ݬA^k|}E3N#U]`^43Bz$' 5/F<ZUOO + vM)CY +XҪX6٫&_yEjV'V9 [dPEkzT-9ے0ŭJ+d?CXz\h+h̴{z\ZY3|r hZWezOl8'ŏGFT qE x:튻Y 5%M #h%8@Jgs4fPB}xoԨV* 1b^^kuZBFG6TEKB- DV=dM86bMfa[+w[ k)XMmiZͿgse}9d/˪aEWC+xU/W9g`&4r_d^O/PX7 <`|Y f]Ca KPԡRn hA3Th6D^u!wU;Eh K)s&G(s|( `)WVi!-;| O5j`Ir%,&R@0J0t)К)$>v3=-N')4!ER#̸䀭v<6z\(gfpid9@-g>|me%729X,QZ#4jT +"<'OEHPRX| WTOЬbCϟ |Ϛ W\%HTm2HweQ8;\ RprJPLpB\l%+)Fyi,Ԉ>_uC)^Qt^Cȩޡќqf"LZam*PN|HhY8VڃyVk/+Vb+6+Uឳg>fϜs:`N;h#zy~{ Ow߿"M *w4RK +y<<i.2d5Gox2U:3%5rD0gL_xDdn䋆FfrmXSbSi2A +I9i(%Lr0|Hlp$N ?_:!ePbdž`PF͉rDegT\H#ve'V +b=m]#N١ !D]&]B{ RlrgUHƐ`*R k +7V4A `Ŧݺg6DN'?{?"RbwݿWN?&rcbѭDil |u4G'|;w;=?b0us A0C~"ؠ28!FqXM@-Ƃ+Dd.bZ`!GY@e<ۺT'<X0"߼N;oP𞏴,LIPHSn4FwIbLW]FLnR7c(ad"ĕ;@K%I L%} ]8i+@m2_])/mY*rEBK.xk ltG_9](ʵ%@\xX˗=ԵA}GVt 0Q C6k`~} /\IG,KIFW>v TT30Uvg^A2,¢[ng8g'RD3ߙ!,agp1g)"q#1RZ?rvrsɗbL%î|qw|[qȃ|.DE2OH&SMƥ)cMU9|@pHzkTN|gy}_W0˭g#% H1 +*%" [1!I~/Má c"Ffr(rޖēMH? +:s`YEiV u?amئ[MDS +e=1&HW// bXG|$o0e82) @0J_RBD\e7 + P{aG]㩤!]$JAki k 8oMVWj738o`rɧҨܵevÀO@! endstream endobj 24 0 obj <>stream +Hl96DW=0qʃƌXP@{}1O<衺.k.¸Xw\ݭzYw ŮbbAxt{aYl~25,他rKh{_v.%Ku[=ޡdYh1b#(ǜG<ϵydrwk==!{ +a#݁Dy&`ΓZ=qg_[!Q]E/mwհ{䒴\o, W,Um-]ئ͖ywS,mP\X+w +F~Q|eP0ʘVj"/ (U{3g-6qHe@b"h`DzKD}U)(Z:@HZ[)+~MnLc{7=sht݄;?"2Q;@cjDtE5au/CͧFr)?4U¢ŷ.PT*Fm3r[_YdڈU ~ gl)+1@4 |}e!)=xD9e +I;b"'{4!绌]^EJU|'BoQ Y +l@D٫ZV5k6^/Qʝh{}J3V'=LXdXKߏ3$ȡ;T OG> p'k5W]7tM8vK|iKf( pnV`bh JZ9u͈yRa`p3.F3r>CU=yD{4]V3hJ%D$)E4Od&#،48Ҝ9{S3[(i}$F + /6Xʔ^2;iq~Ȥo̖=#{?}!㈔DwiQ#bd#RQgzUDq:O%6 {X +p8RzTǚ&Y4h!uJx,j|Kl9׽ߥ0f372E>6ݽ~Z'ߓa~ dže1R8@?jP|i +ؿY1^?rה# +K}_x' +ER|.ed425&CLI&ny#yy\8ysT He +,ͪA_X# nZd1;lJt5IEL$[0YAe((OqtBbӶZѩw>s037* ohDM+ J[=S$oES-W/l;_̜wˉ|a~LX-h2&[P &s +Gn8s+_qzϩiXt`!O_@fqIO:Gx)ITv,$*[( p2'i}4:, ]?I׮egM ZHjmv'^ipY7|"I1G 82B#F5e)CЊR0*WƜc9|lGζ 4r {`ddά4T {R(m yCG׊6ִі7&MJ9 ܐDBDLcbebӑ]c7_'HmN̦+=eil 7OEc~xN8Gg7^e% K-pIB!2qG"EMn8GplEw[,bPGfʯ|Ư`cF04+vÏ'9m^ DߣG^Cnǣ{. g׶,۴?$6Em$6RPZJJ,ʣ1 [ tg:Ԥ8{;qKi궓nr~kpjTtYԀg5{zV=ݶ5f!)~1~g3L~png,giӹ\xMe8wI粀:s7Q[f\;% D$9Bn9>$ fپ,iY*5#lk[tfbc9S7xc[snFsQ.i(uAokTz>wW)s#7FMB\BW*AZRH)v&CRB4+ǺAk(~V +_ŴK ޑ",GȌMs&hYyVOlpY?F~AsRm>B2g.S>ԗYtB@P&C.1D7bJɤj[FD[J$096Qu]̤(G]b4/nm\6UDf&sK?uiG\d,A"WEѝn_:k7*r޴RCxs[v̒O +{[)fM;[Ptҝ߾^I-aCtG5,^G3sG[8hS~^^yi옰:k|1d}}-֨c߾m FN0>Ö)s(è1BU':ūk1ulY4&#Dhdk  =!5Jw BD3Am6\Bn[lshjB֦5o Au~/%q1>exZ&(n5̩Ec%̕I=fK"G}uS$C cջ{xzjgPUD̏$-묧z#N"'"Tt:{~^W?/wo޼]~'ZV~_%(-%do~yyWz7?߶znWay7o^o0뇟y?wßuqwop}k/,Ͼ -M}_^jY=_-|eemu֒ϸSH(PUQXChFHFǤ s54aݮbv@ŦÓc!u6M}뱗1lM-Xna6ه\]vx %Z̕ugڪ $fS`z4n vp_U jYB?m_{ *>4ZH4lޛn֍c$- UTC 1 duXNgL=86{ xHPEOsC T!TeXO-,9谉vE].b&4sfZi;&|P-bΘ˲G bFۭ'$ZNkEg9#l6A8͟X=ss@zFc~FlVYdg u6P sˋ˻Wzxտ߼[qI?P,NX*R'`/<)k#i W Lɉ6pқuU/ +]DƛP$iRB%yqy2LvH" zFT]ۓ֟d_E1:O& dRa>Y !#zI) RdxEaK[S\}$UTJt?}>/JD`:e_:n^y5/gA>_^| +nyvywW۪Wȯ@>&:~ tTWGc+Qy@I\#A@TGNE*4Fhƕ s446 {P0 y#IRWmd2Ʋ<^TAY$( gބrHkɤ35T)]O+գB8 cʰ;msAмHLQҌb +݃1=I]#o`^fNm/<B兎l T +!ftR7TF9r.m}3۲A~ @eOw4Y"Rs nc*a4\7 ī1`1 \WМÐ#pX7[dY]x{6DenlWڃR:GnB&vBAc8bS 4X4u x!T$ik϶%{M$^"Y!+S7~v*}/t IE`'!^YM;.PX'Oek$=R93d:zH¾ba{zr羭{\+P[OUi}/9#s795}7c 'lgPaj+^;*0kT8Sl3z Uvuѿ=$xlS +<S&M(3wҨ'>x.낻+} W zu4eXPhIF(t5b19YhY3S].m +PzGw10H?8s1hL<F_iX.0lP/o9ؑRZ".˸b|JuVՈPbA8B5fP@5Tƛ_O' T%s-Q@騳~<2'(XvSҊFEڀ zb#'UwL. T,;WMB$ kEBxdMiBfy bɛiR(ީ5YinMwҕp1|WCY )O@ +ici&H¡jb62&*oW+廐Ⅽs_E{-QW0x@K!hfBS-2 U%VfňT77 c Yz={xh]twM C3]}ƛLuB'zEPZ%R?͗^e>;<Mn5CzV#}ME}pzGi1, 7MPNahp.XخJV1#(ro|f]?KZ1`E,nqȓ2Ɠ/̦@&z/vX]BNB{6߇W#y4»|bLht˩PaӃpNQNz(تpĽh/Jɺ`6KuXẻ=(ndtY$e/#$ŝзj5c[:egyv9C$5o b*t^A!6tW3f"UU+MJqEXQVUu,dc݁h Bt"YhO +vٵBYע/06D7Pkg>IBT R_\J [ +`qa94^@$^Y ݇)G<'PsN1Az dWI6Q)va ,H`&* OF.`_U:sу(&=Lz(x? jmRݾ rcA j$RPԌfP1z/2rmJFNBMEkuQׂ"7u!ZcɔrF F*0@^@c-zPl Pc"}[_mB#t !; W0i^PjC%NE(BD / # CKUwr!6$>!ĹjCĺ&Ն]e_j^a@m#ka +!g2p K@úqDsGZ-\`4$)o0U"(+A (jh=ҷ!A=!n/wTK;dAP; s* 7E.ґf5& Y[ۑi)0Lw–"Kc"K[ЈRA1i鮀Vl jF2MPsk PHD(D!cq2vy 9. TIcQN1HGhҐ)SM, ܔ.ʥȕY| qxC;J0Ǡ[7} 88K1SjB<ɏbMQrɋIJGnbV) r^ 19ŭ.ԏA\?V]9̱ꊇGE +A<OYJCHKq&:px[(?E!fO*PNō[m*$2=Mp]xU){u\4ѻVV DMͶ3rio]&4ql<ӈ%𲝃$N4kp!m3aGYF {[(䤰Zpx +*"wc^6!M:s pŽ$SiDuICz\VnDEhJFmL~*Fh42J3ϙiÝI/Jrr_z J(Wu>r^Ry%znPN'}?{Ͽ>ߏWӻO?N ~kD@H Oo͏z_>}?~o?>^~ǧ7oߟ;w/_Ϸ???~| "ߒ~uTQat;~ i3 aEAp|kWթsw ْ:ϵ׺y+x/|g[|g!u㨞ZP4/CL5E,A E&IQ,*Q!Dj} ԵANQ˨c6{zxRӃ#J8&O+Ŷzf_dca>dф9;rs/^N>|gAu [2#ݗ:zۥ٩]*T9x"[noǾj~B۰k>ƽπ N $.5v`̓m̴&F%F8$y t=LEWX++beMLjaV0,va⊊:FXK)|Ur!͋M2K~څvM';"+}vۘ ,=UH (1] Ɍ[Frru׊A}]U/ۢ|<,3$0(:|<  V+ p*e†#蔢iGIwPΤDazd<ɪĭ(d\^AEF}LtY1\cإຣVҧ}Owyhiejw׮P^pF&+CunN3VMl#εp3[q*qLh1BZ\'rTP18i8o9;o*A^ܪt#JGWVb/ .qS2H=dۃ\TބqUq2DD:z7CaSdgʄ"LL {[d +@85i~"áe1&M*KM +NfTEVʰ=D=uZ fD0MD/|ЕIOnrsCd.p!zۡ +?Gh-bNRa>JzVʏm(Mxn_\E-[_{QG4?"{K+~YzҖo&@|?~|}o_&50.{('2*ɍxx+5CV2QexJH#6ycf`j}'r'3i W8|IY*GM/4; xOny2 +|Ű=ej "%k}`6X`X.nw TV*56 .Jc_a74M"_. ЪNY^a+2Xc/"yx6RWڷV681j-! {ryTϜsu< +kON_I|^{G3~|"&\05 @iꀨA6ynQG@@O#060kane6<&;ܞƛg>ذ)S=36O + ;Levs ; X uTMVߠNruC?:OoCޒs{?BywU:NzyRC5F';$A`9"P|M 1l e:Ln!&[ryWAL;:s}}ՐF]!)!$U!Jqa-v8D`Ih-4a!VuFD37 7"s JJ[L=&]̀ZQxЋ1Tmt.?hK!JP T*1 H?S1՝GtȤ'gJRFĹLÄ8ଉ %]d`9iV2 !h')! Q2(υNϢ[Tr!#awqZ&4quuAEjY,4EM4)HNjrmJXh"ZH,fyC`떕 TJ=/$Is"W5fU%X4GL0uצ~SJ1?J'P+[cZR"0fbzBj}*9Q"1*aڥR&z~-d%@ ɩ N!4Kz7; =EVЪY:|Y=5_"z/TȧZ4KJd {PNZo*/)F-z#JXEԬH#GbpKW}Ji5{H,E5LD9$Vc[b]Әl5G}J5XmK"tA]PbPr_ jRH,Ԗw\2?|VX%R=- ?8o-$Z'#Ũ:-N[` xrOrZX<[` h_[ +RC`i.VN5eEB$K[e[o-`1NY + #Ra[b ؚ{x4VjKc޺X6(w34\ihdЋ5VjziTPm[@@w5-gXӜoe8Y%k +5ѧ}}0A9/ SmI$(ŽڱyZ&wOSWX [A邃Ԫ9tSu@).H.mKM?2DY! jӢ^|K +:P_W8KKZ'H2YOdHӒ˿wX!KX12\~}ĪҟĒs{PCΡΡ0}4B^1"!7BRr9)V)1oBSN +eO Mn S M7O Mrw%C3>^[14e +t#&:kJU;L1ֆ+&"*WֆIܼ2ɡǝCS'Z94Iod^94ɻrtrhB=|i#_D4Y*(RT:%O;+u0cW‚* h;eY4I +d5>S>oC 8r&źcpki}iaH5A cdt-,}Plf:kY~Xea.$p5TU4¦@Q̢dE El܂Ai]]sƕfm_,pu/ǖ!͆R 3bD|˰x470I 2n5L-haE=wG ɯmsY%TͪI_̴ _0[sƩf)cg]3,n뜑:2}(pӥJ҇yRrgz?W[5nZ\Vt}_䬧+jhޜϓ+lbWJИȢJ ~*@h<} ŅRRbneNܫԼRÐ>^TO}Y0m C9 ]Pp:r/ P+C\]0-eSg.Y{YbmYRhslgR)yxRڀz8hL%Ӂrċ_sy IQ|@ Tɦœ.B"}ӔL"ٹ,%Ub(l]\KQfYƯ.d&e`1#r!,rt -nq{dљnE*{NNKj WPgK=9Ejі8Saៗȴȴ}(Ȍas$iBg;Bu+J_*ʚJqŇ^tK;iء.-W2k s$I:*zO[W +$;#f#4`Ѕ~M`:Y6hKA0 ۩I2T+'BtEba2.Q+Q0΋TfOUdxK&󻞓k>4o$/TU80nbtmFGLi7mMN1מ?Y&zp"IB x>)6zisz\@'480hh/喯8ǀ$-T&D+0 I,S\^٤l&V/2]$`B0o2ΛT8iͮҟkdB)DM;SnEkHeSs2F.4GӁ +' Uk"-*XD19٣2SᖸDs[@5jE b "ڠ?_]B[KP_d"&t$x3lCq2L>IZg?q~?,n+g=߿| ߌn-~5ol*'_~ |c?X'ն@7P UeR(hl;Gz'!4jnyESI^+DәsWŸښo` J*cޣh)x yZ+yit6ᄊz/bpj^AANFeu41z?]UROA EӼ"{ 43 y :| f[zԈw-jњ]l3p5ޟȋhV{ԣق9 =mhn_A1`9> /GK(P'M 0fii2_ϓ- /%E؍d,*@A'4)IF:c@c# /Ff[ePx"X!6-+Duҙz[ua?a)?d6J 1$C#f@,d|܈)4QX㭵y_`vLp|Hfp) Y)K;eHNkK&1U3SE.q=XdTN B9G E[{!RkKNe$)[1pzp H}͐1]iвWhMv'?ew]I:R]B<v(]s{-GKQ״Uk$#g/n[_]yy3` .q]@eh% VXYg1{8}PF>x]Tw-|aK4N>.%y+"4 =Qc!.|8 +?T Fт0\ Dؼ#ƵZ=hvBFV+ xZtB!7|wvg]. +5N*ކ1MB|(a",jO.au殉k J*XZl3+Kt2ngb^ \#?~!LcYu,x:"0lQO~te8,BP}i/@&ŽE?q"`c֒neeVJ8гuno0LOQ_wJ("rY$v$p7̀Nø/\Q"_RhwX) +G<ʭk&45F{0L=]Ea&nVeyxs85*sUXI֋^KhڪtrMrFfkv/BiT}`FK̀Vpnڣ:5a+^^C9N ^e0MqvE6+ݭ9Hgtڃs'mj/{1 +G<{̿@̝`+EmAa}j%:1xfJ+";!zG)GDQ5.l:5 tj.y a.LC)c 2ϰj(+%E孴'=4?L bDm* LJqhfLFO6)H$l+3u[BлhX m_VR!ګ%c?'"GU-0K!OR"*ѹrs8Bq\菧-"<]gI\W+K.Xc_$&dV9NB\e޶bv݈aoQͿ3v5J;gVLw¿@-k*xAވI'!C]wT`NӼ佼,CBe_(V +);/HL`+K팆gE^CUWϕi özyA/31H6d_m\mC(q'!3KQc$LDSKT(:+$fT4ZHZ(qYra\CYYFMvo‘z{bHi2ol^:ap,-!T8C{h#Z\yD +Z DZo+m)..+u7-O3dyyçOӿwao^~:w-?߾Gdּ*Ӑʓ44ZQ yd!!*z>L*^0,^AҚuГi%1/ >?[Om񒎮KqI.?`TĬԛ[N k[ H\D-@ߴ'] H<@7j0zQ +a?%bKϬ5j +< %-f$sTT+̚ wzЯnсS,z4Tc@ 8\@c;I!|'kQŖ|, rɸ :9aa[AO$ϲ7dd׮ &RHdӐ4qU rttI=+*4ƾ +;ӜZ8nkHX3Ɔ;C^C]GCһkgA軽%-Pi2Nc.^`vlk+" m0㳀Q+zJlf-88@Ũ娚= 2ʿٽҌG/{6HN?%I5:KB4d5,PMT) K$eey A2L!4_`S<!QBp+ U8<9KoI:¬6(J~BZdޜᭅg*qX07Spr!XVJWIu ]`Jz tV]O{sU P_I/ßvE<㑣7HȐUXu9k*uߩȏ%־*̒r*ґr#2V6~,(F+AJCŽ{u=D U ;,!3-%1r9kܫmBPI8W|͵K85-q|+ 7}Ulu/z¥1{gcg r"_nm1[Ϩd☁=]x5zgz=*.w(*fxaM + +&W8ɯMfU*w$ sR"+Z+L`R37 ^LK6x>ayk.NY?:~-kV^P_R&;ҎtaP::^1퇏% 6e-t 7-;|٫[xxB^BW&VzDilJ_D;\UZ$dn5j[QБ24y. +Ώ2,,QnCƣZ%,kic*/,X%=5*Y+1َ,b]ݣ2]644 #~l c +@5.ޭ(rT}m9.uY2TH4o|kKR677 (o+Y9W __Ll \eSJzH92amȒ<~]E,#|ACm" HH@ŠGBĢZ+5®مy Oos |INBp\)@ӣybrVܓz{`Z~zg$pNRF lCX^]O+4j_meW59k 3q-la8ņ7K bnRVd3FsކT{9&c'պ ?ǤirVu)C= 7[~RE7 ijC1q;~CFh<,05֢wogk1,u!l5NMۨk'V:g;~,ʊ`$sرaOFW#ʇ7[HQ8L;tY +2i*SU`69kP[?/&[p^[B3(6N^ɖ}lٚhk<6$J?a"B0Xԗt8I[q5{KE#C,Yo_*W6@mUdԇ_XP<$JڻfE1[y߀ ,ϸJ} 豯qAO}0c5arih+;:٭ұX+ο W[Q endstream endobj 25 0 obj <>stream +Hˎ ЛR=Yid "Yq"y$+=0"gFJSde_w/-rN8_]/ru5])n$W2\Xv{ڒO<܋i- 7-9_[&U7yᦸKFCffV]IK'Mwue^յU^QTKB9 S 4T 6DWzi\t>[ޫJG\1.&Y }j\lD#rIjWԧ$D]kRp)'䈓]> x,-$IDK* Bnb#"L%n"\镧bt=t\fpx.f d_>Eиº[ +iHq%j>TZL$>ȷ( ~bnHq7щOU[r>>l%5qP^g\Py@@IDo-TG)\I PchA5zzW7kBsYE dyIl޽yfwH"1gbZϔ웷Ax{{=7x|{o__[^_w>wS)~__lOn/i_wkέALiAJEoXFr\pPG=,Mb0PZ 륦I:`]vr}`_ z aZۋC=-$uWu:)&b#':իc~0딒&P} b'yI餑7_ܐ3|O= >%+ĚJ8 + V/ڣϋZ}N6C^!5cfRˮ?Ax#00,Bay1:SJ/c9t(vsi 7M?fy3xFI.Nr7[p;XG\it +;MZr&hEw)wɆ%aȍp워U hx9\Ge Sʀ)v2Xv53¼ _M͌L10&[z2o2rUeT:I̝zͬn>iV@gkN0,pGUܟo g9FaCs[ơ3 +#,*`v[ͪ +4_,/FsX) 걗|JRA"RHw'tFnr2$EMNUcr[Z83>]d;̯JY戆"X`[*5Qe?)U{ wyN(~dRPe2Uc%o;&^a/683!<`'LQk9{j>й2mnK'݃W.ŞQ-NO+;mΈ;Cr$_m=)8.?j~M!m?H'g; g7w_qL> +"=s5#<31J̣?))(쇐Ui՗X8x"+kSoP&5Ghc 'Q T\y +h 0M ZHdи3i +Auh Pad(fTwV".246[e<"Ҩyv'6HV 9&>! 40O& +SP.}RO)U32s՛D[F4tOoDO?BXfFI\v[;M9#(\h 8^J-ZS~Zt;[ju]:8!f[l%k?{O9UMbeٞ sSoK*c]LPTnj9mP~~my!!FV8.Zd%vmh]D.JS( [{v*EL# Ŋ}Tm=6<%sхj俔ێ]GE p^rBj4Ivǖ?os{NbHLWծZ9ʗ߄uKZ2_MzɇO{^:?mph8=deԺ#܂x= R*#I RqK*>|_qV<jl^r}ȭXu˸}-G?FcD?y//D=fdՓ?ﯮo~{w{E ?|˫O}G=>ڧw7W~gAH4]{>?=_z_oo_~/4^O goV@D#U?_;yOw}]wDՓ?aJZuۗO'7/f뛅˧߾|W_߿z{O6L4s𠼻.!}x-_oN1xol.4NO.FO.Oq 7?9?|kua뽿GIg +4n d + +Nc +2 |$F +@&횲a1K,&¨wRfHR,X|'d5f8R#ƾo&dMhvZ0lDѳάH)>Nf;䢙2tQj&9&=  +j@M1jFMwIl Pt@7 PB{꺔LR!5uj[jMTk\oWA,`v>Ih +FBMoUWĶFА4SDXw} sJ'0{UfO{BS{fg1425f$14ah"F:V7EF%3Glt2fK!dp>WohP@:} `: v 2|jqi!ŋujd7.YmGddG9BOT!{/٩gy1b5DΦ`RdrzmF +d˼x5j(bH.tIVK.BrbZf5%힆 +_53kq"rTm^Nh Fscة} 6_e7xXhذǚ74b1OѓI4o[CTڹ!$C?P|ζ":4mIΑ8THgLfՠw" UƘ&rmC;9X"9hlSc;SlK}ҷW?X !j͹wH*e!fט3n\f9|tqEAnv81Sh(R1N@ +.'TXUQ +erqrA5;j0y37v!.Ib0eh5R$g(Ny;brUV"AZLpȋdjU&d ʵzm1֡bM6=%HY E4I+3UB fمԗAJoM`ݻ]j5BLUQ}`@] 4;T`e%!X5+` ٷU)*`/jʺlYvn +XJ7;T-}j#F)(Zb&-pJI qE5Q$OƼ rF%gYU>?-2Pl&7 0w۶Q0H[[ѺnS6YA3B*Ɏ,G2ohzIJhegq5-73Nc=1F#de|[h@g}f]d=w7¯]*)Fů#o)CĢ& V S裔% FjM蘉:_qlz#{?uHZhq 1-G28xk,na"Jcr<<. Hm& E>ne[ c3s%'>u^|P?]q|<؎IRZLL5(K H &]~6K5bDE!U0޵jؽmLH X^&Y+w7H͡#EС$(9P!I {ũ{Eĉfȸ Pjgb~1[^ >[8NݟnjW>t2y 7*KbfV C =@;͘&g `T + +EMv %bEKJjVDG_ J4cy5F;`CWe#sLY[9g:1"r?6Am<~)Y՘gjY3UMg>eCv.@[? ]j2ߊyܡ Qٲ1SrH?hq +q$ >ѸEؗ ,n[ 1H`9WM6vUS`Z򂪺&Q xxϥ?AHH>)+ _cޅn43){DW$nF~ "去"ЬNUkc)r7θJ6c{l\=3/T5U}6chmRqJȮEl!|iԗ- ebSv{:]9g=o<]SMTKg ~%աt O)iC?P,'.-m \vlo 7T+s)zl>WM7w#Vg s\ba du3=8^ sKBXn Q"n {7*oeCө=nM +tH\~V=q POJ=e0ӄ .m74'i]GN9[f']ǙxP리#C[aZx%}bհ4Yؿ?x ǿf3I'y@w%cdFzEv %ųշWjF1a-WBN{f5R d0Г>{&%1W" x4eE=4eEJK[JmՕL)@uN:sK:c$&~*.S(VY7;]TYFUӈ- 0U7VӫԎxetkLD⿹C{nGƗ*bZ@PP IYUR1,Y8|ѪQ{D[+lCBp%/F`pJj<3lS@dbZLI&h+Q2H3f&n >@Z;scu盺%uH"ITɩ/(('5Iy0wxl䘩GN{:JZw$T2mTE`رn (z85 +HڌS_%)<+mIE;T}Ħ3لVv]3A@э5VlX=لhJ BHmzbN4fy!QSKiiJlx3ƴe _ +UhX!'ዿ|>?R'ŧ|x_ݟ}ǟ37=$鶗ԪyS I{jG݇v6ro\は8vL6`'q͇ހ@qӠ)Šҋ@qvgcǛ}/U&m+tXJ's\qE4 Ԗ1fR&!Z̬ a&sHQ#-߸wR)+rJŢ#儥M7_ԧ{ Hbf.($mFo#܍M9¿a>5?%DӌV \O5Vɋo +h{.I>'q*rv6ḈS:٬ڻW\k׸MpÏb&%bx;͈eFp wQ7\!OL+-loBf 28вwP=N"nAJ7zLx"*. WPΉF!nl9;ѽ!;r(srԟj>sp~#1H9&;R]OHd]u&8(037<-4Y; G#jf)l*CY&5cO_SM̔λevͫnuo|R3W:ټWbXPO ;q ?=/nx@L30 14"D-0 Yɒ4W *'ٙQbOV3ܤC)R0AMUkR3?esQDѿ-m9 V@H,Yȶj#sND=nTw5=i# +Bn >vNAgo=Վ:,pw˳k$-ݟd 徐vbjfI(u2z|:)g45;{~/Yk Z:ۼ#-f{X89JMH@,v״k+wg #Mj#'4>ۖ^ +miQwؾ,}tل8MYe)$}P Yo[*ۿ&QRbqm6ș42p>{q T/@GJ &ˎ]&Ho5|4L=ÖՄqKF [/bVKaOa^X']?v9 +!g4rkEI:*zߚڰ +.t]VxK$n9g,&2 ~[wZE+;-3cP:y^`t f4H3ڔkI,H[)"| +$%jRh6>hü} +N/hЖ jKo߁AյcX5/WVDf? #b.{EpcT3hHP {QOxjqQ^>iD +pڼǧv rc5Cl+Nd?l`ѣ,uzӕaٶHi@$Q蛘9V"Y9SmŸ \zx1n\Ԃ@GQ[WUz6L+J!,B@O+~&^^uVҠr͕;اMJ$Q_EKҶVz&:3SmftD,,qIF.f/~|CڻeƼAh{[XD| +".mM/~7}eQ83P3\8?R!i^n(q*J=L#Beg51+e׃ȸ"|Nd?;rאȆ<ěNnEsEdo) N1:s50͋'VЯun/[M!'qxujUqjZ/-s)}iNU^y-Mf CQH8;"Pt~K[O*z i i5_3Dk ;33Jd މ<%5RC5]TӸ 2b>!a|6k$X\4C]IWTZf7ҥnwCL|Xѫfp @ƅO:Dݩ6Cj=|:}Wƻ%a8/@#jq'F +qiz،ͼwy(S\-kR>tC46nc]^A=%g{/?g2m_ }y9;t9Cռ*ۢMmhKz")2†:Vz8n7ϐ(R[gx[J.3⩂ +xSjdEx.;C""SBBa(*;IPwːɕN#|Ç~?P˷Oo~o~ޱ_];s9{4:^%&n~>h̃;zXgG6rkpr+0fhql +Q@ E +\2'JdJ%Mm}N`aL]qۢ|oz|M*E.&QǴ>U8{93CSy :Hh7`´ƬLmjP#!Utԥ a<ʒMsiY4.K|G;'@^`9MKt~$Xrc^c8Pʥu@|5דNH/Riat`zaĬYd3 rpNdjJ{'2 +^B+ڠ+v m=8çhҿO/ϳɑ$9Y)p&eyG@f튬cRa Dpc˷/h㲟s[uƷ"( O< *K{٦vȳƐyÃP/[8WkdpK)u*Wk}U*k'2\}t!"(}zJpȜ'S%P4y2~M)BCA 9sFy:)y*v;~oG#ӳcHP|QGq.Bb$_J}3Wiimdt/"H܆;Vg%)_* =*&dWlf-. b|HԫLY3.U_leŸ^T ZYa۳X#gIaȧ|)C$*NfoYfFRrqP{palEdFϵ(|eB.r;5ieH,pF%|Cڐ+}rF䈅T + $;ٔyԿo7%/ pCHt]"X2Uv=2Uڄr)"gBFBAlG\8ն"oT-)jZ% 7S:Fu&bP:)!f4Y+C0420@ǔ.nD4spc\YZOnՎbwDRUʀ|%L +P|b6բ g>`xt]\ʘoDf6&hb)("H%zBFDꌺ'"Ϲ=1Kb>ڽ! +Uc2 C08ȉ} ֲ^^!.&YZt\TkMe.rt/޸)Pz(< : eP>M([c]@Dg+߉lV4_B@$B|:3QXܨ &C;lF QO[o-3/Ag}X,œq9V x O 2(^GBMDT}z4\ kXYXc\IhɭDŽT@.Briۉ*C V?Iqʮ4^$9hIIMwPF+E:Op~7[ɱ_dP^8v!BjXPWG 5CZ/Jۅ`i~L⣨h)ON 見$&RmEUS1PQ6#z,y:f˙1FtB +q&9f 7Jةj\d\)yV +&TImvhG$ʋG\mWa/ڮ6/F:FȘq{"31:Z~~!U:]R8@)"EAuΞ +[|v8ϝc^  qBUI$o/AA훃8R >VP}x.Hw~drqn j5_v;<*74J Q>Հv.A ūdmD0hj>[^Oк;gJMSIudbʦөq(l(U*˛&6̖feBkUQ/ (\[/'/Tγ-o-'k`FEą*C&hmɮC : c|7wXvpF;Q(䪥k& AFFے%0"TbWFJKK;9^C|†|1s)E2ޗܝ,'橤0@4?H!7LZ)gd[n +ި'Yn=[8N|x{dFP5}%o\5{b%2E\նg4BX9xN[X\=j353$glYAգP`)\ QK7԰]]ruRN ush,:@4'_M{?P4eE"bkwidd)|+VgO(zy-f=RE?;jY+yg7!S0'`8",ƙF@jH]<ϯdr;Y?"\J36e\ZA8+v#ȄZipKtE$H:ILI EZTIt*,JR~3b77D e/i1 SsFh {Hj<]68H 2]`U6Ykz{B'DyTSGc؏M@y? E%'zs}%Ǵ8y&83r1SUa g"\żCGS/i沀ygRUU() +QfG9 P%V)JGַ yc͋z=sFqƴh9Q<;fdeZSN,BOlavgx"J'#Yqd?jȨ5Tafڐ;]at)9=Xi61>3^~|o Qgzyy_^y~xxؗ_3w~?-(;}s./^^,^^yxr㗏wO?2?ۇ/n~?<>|lsW;g?Ïx}|>ZA$fG6(_ӀJ + b0jDBAgSCOCCb|LؚjFg[ɑThPIGJΰ4|cґth85)`zI6e+qNd󢼔G ّ q7 +7⚰Pxo8*R`!\C7ЏWemy=tEyB| +0PL(%B/H+)ϡ +=4 +UN_^B!a19:8&LL nDv41NϬk ق-hh:- Xi ZD1-y=g/r48@uS^+cucD# +X4N +%Gyao:^ I{ gZh )zf̎|fi͔ԝgE25g-CE݀BdM8W\(IWgL& qQap+Q93sDd%^f'|S/!QLu+'WnUƺ XF4(i!ddɟ3\C:!)V9 + 44?I?2)lZħT2BFT1',TN65v!4~r+&HebM.[kNyY7*K܄7Į>3I] wT^M;]L {s/CٟX %1;lRr&`A^(Z +5[ִJ +[8 P +`j@J6$ZKzUЄfEjD(/%gqVq6zFu[8^8pJu|KFn1,ٗ%VHuPD&U͍$#W36M"F6-9&N%;<aŠfX)Ht|ZSqg{kXɽ6lS^X; 8T=$9[ dMo(-_p^8^-㣒X*5=z0DZeؐul!1M+l&PqE1SRWh>.%0 VpՌL\ҩ6]aWKp <.IMa)i\a4:JjrD psawP0-ED0 R]E,[_ Qlctڰ6BP 4}dHsv8I7V\|kV՞ +& + +(ydigEQ$g9JMChv*1 ]\I杜tEBcW77u3G[` ĉr}3"UD `1()"B*,S_4ח6XDz!ְ[&`&RD%g)FaF:hl&7 0w{ڨJ;`ͭFn@n/R̤KV)+%9?Q-砑cˆyquMuoFQ54Hg]dex̲JPQ +dXܧp!$ FSlk̛6]{#7~*Ya 0΁qMDM41)wF\,5XVS)M T<;1kr]Q&'@߿%{L޺v\eKyU?&waLv@Ɓfiy`1ytz4"UִEh ^&vY;MM @LI=b9ZL͋'6tηnL!}XmGqgܩ^g0`PHw;NGj3IYj܇#vB4nZ((kJJ2vMhoNt(ztUbF.f07n\cpqonmY\Sz.|}N%qYLTqn IRNisP-dU#hlUt2Yi]E陪{f3Y\0~ {_T@v2|5wAO^k@kF9a_8fqJAE.uJ<$zbW&X9rȀGz]42 e@AZSAT Ϥ8(2Efm "去"8Y@U'}7K)9M܌;>*٨"ز{l\=}|~_퟿}LJ3tۋ+x^<6TA4/+v}x+`W  8CLonI}OxP,P ,yosD)r]qV8CHsy7M2t@w. +5IYlY=wh @ůP#Niદ"gZ`פ3SrGdB}U7_, Lz'R3W蘄WD mXzԨ])^vZk!nliZSi)\wAwR)+rJŢ#儥Ma*5#]*}pҷolω~bH+IbB}=P! nx>)g=$S 8qQ{L +5ワDƛU{ݾmn~3u+ ^GH& ^5E]lP?գH =Sv8h; Vpa z0=i=g&< ld(EżsmmN?Et/!sȅs>(SҤ}(~a!9; Ɏ,<j!z:DvՙpJ.EqB*Ba.17G()X3FDP֪I(u_60xMYf ݼV'{Zh]tma8+(P.:Ǽ~L5;1\dWl,oJ3~*TN3kz-mU&JiS̀MKq]Oߠ8J3B3x-nbf'S:6RvԜL_c߬ɮeGE m8Fn@H0,,d[*羪9uw̓'2b7!. #`CO2HDȅO E2': @0@ +`U$`관{u^H+)#V ,֕`)|IʋHmy#D +Ԓ<"`X,vt;G)Lk"9&†M]|W>vn#F9~ZUMqVm+퇩9`}t/kĪ=Vc⢹ȡPgGMb=w.IF#*ض0-~v'(\Ȗh:mʛHST]1-M ec1^#mue@-Rs&t2\jBNm1 +YN4n KDwX?GOW.\]~C/'R}K=h4a(.cM-_"[ rJ:0]4`uθ4+r/kmFrYW}eb:f4'n }3:2qw4OaK3j lr'G GrF kJM,- vT #]x>j|nH}Y:1- wZ?flZDBlM>b{C&^_; no#M: TL Kb)Rb ,k` s "("PީI,CTip4wwqbLqެ22,۵@e}Ey21)m1iUCcxX{UV{Yaʞ'`VKaO,UC3sM +/:3^ZCG9*h1a܈ㄛ[[(ť~Q +`{ANjC,xhH WF3:xgh t \Z(]B;?Z9} -s+9{g ;iQʷW@Le// Xx#W#Hԭ3F +Z+;Sk1=ƢF8*\, +vHQ!؏(-"`ެB8 @x GEZ<ܵ},qL_6k Q+gV/PC#@$QXAJb֋⹰ Qٺ[ZwSKpR̊U|JLV Q%Չ-P +`ڬZ-P%p aQĒN@Ҙ獷shpJYփiE]jβ, w^Ҙ'3Sme ]r3'ޙWE&f2v5>ipK0z_^6&urj4+C3c9'4,*$m;_8BF.C9z< +R` ->V{-=lu{>(\OYif1!t4H͢K?C,a3N1RZ@A|J_(f8]QOŠ\e b^#.dUm-U۬MC0]IT)Z4Kp_W+ko³D7Q.CnI'aiە֭cenX xW]뭑xg)Q0 O +p@nZ\,zqg'DnČ)R̯6Z:]C3 O+օy4NBb;c%4nŅ,]WAS{sc%D+iGp CkW̆K`8>gଆ)es$ᶈV;p3>@16QHF^gY<[7=V6EIrׅy9;t9CF +JNnP ;Er'bVJJC#XZ V>V8HL*.Kr +>cMTUcQ;T#5E2J5=td)ݹò :ŬT]!_'| ?dP)˷Ï?o~鯿|g|=OW7_o1uO=#jYY2Z*ps?_Kх|6K@# +Xav|I/wlɅ$X'CnwU8ي!'W39F%g5Vݗ!0#T=õ^4<ƛt[Z ,_9{=aZZh|;%5b2˪˺wqn|p 2uT9y|-XTMnߤ_h7a^XE"K]fgl焫O~c΢ DHA11s[uQzHN|Ve,mѫa}@UKf2-!@ [!VSb-DLa 4j +p2FcX%&[P$Nq<ϓjls;\f0#XpalN.^r md^J]̘>rL̟,lV@s#AMm0(wI`R鎜) Y%T`orH{Vi[$3շ-sxWW$1Ŏ]sӬ+,x?F1M4>D RЂKZ +\ehtElΧ $X%']tvӬM韘'.Pn5dd1v?n?&]ktЦ:,2Td'&!{SS ;X*%Y)Xݛ 'H>Z[aÝ! Ϧ%J/[:wӒ9ggtХw>{H_.KF2OgBW]Ć02TR1M!FCr +#|pf7_'y2o" +nmaۀuiMf<ha۳ v7RЅvn9SU KdwYrމH.5kF9^f os/>+z)!fC?vۡ7XYZT-dY6!|b.7j*DXHqOo %Φ[E?xRFB,B<- +#W-FdtxFPPj|PqCuUZ!*ѳ<7餵mW3I%P gV Ŕ”AByy$Ҹ$/̖tq+"VjO#3#5Fǔ/nH4*+ﱮ,-+zG}6%J+S>H@ +l V5Oa:|Y!-7TG` S:6=!dl$JAsl鉬2 >ʌdA?{?ǯ%, )+Q%WF=-5Ym{%{p]5Zy\Zt\k",p[ø+e]e +=y;PӄR0"Ҍ=Xwx~U͵P5I_w=j4V.ZVF% lxG$6vB1-.F WʺPD|CmXt $]{,*S/()~!= 2t(>[GBM1q/AMA9X}J$0ڥ;?2~847 jce Ff*52Dn(9Rpm wƉ2'* +ġ=pdGv +3dǪĩ?TR/oweBkUQتUƪK N Ϊ+`5b>5~{6Ж~=tfΎ8w@vSn(. "%jDUR&W(@w2dn>aHFğ1հՀ1ŋH֩WByrJ k{;,./I{)|ȓ9H ?0O2bJ|sO),xl 1d_Lr %S`s2%-cW_86T%}nWzvF~We>d<kC#|ȩ3z6 Q1Az "T *'+JRA(8{$Tjmuݙݝ7| Gq52VHMIK>7XՋ>! SLJ-!|>4%Td70(֪ Eq=1Ε rk0/LHѲH<2DU Z1*ag0p[uT)P֣\h5XR ^Kq_b!mӲR˪ortFj +`Ss4@T#V"$Ih$Rp hU3:ը/VaÌ1ZAy&Er,ZIkRH<ѷLX%7,ۄ\Zfvna{iJTN͗}w|Za)ߩ{~_quowςKOzsyZKG3-mC{2[%;SƐq]l֮KƣItk낤XPJZ[ev+]pG$3 AEPU٣2fM͘Hs @F$`M*$KsٔtrN $8EA*B:(!,KZԃB`C endstream endobj 26 0 obj <>stream +HT9$9DOwH0\slRAFR'sOn}OOy~rOk||V`=;篿 8kjg/HZ2jzz-ǴkF-?#-=y̕ڧ6R&%==uܟ~ 09A(ɥTgSg=i .,j0g6],?{e@՜Uf֮VY#zx+e֧S{;ĥqcE.8OSkM> Hxdr_0iyNz}O}&w TR FQ桳SR?@]@MTR.a7*]o9An/F!̈zJ 'ģʦ+p.*#a5Wa]S:׮[g鎟_{;U٠'v|שz/?2tIsߊ4>S=Vw9,F!ey^$tչO]l6$y08] j.”CiC%%2>X^2zB=>)Ojp +kVAl³ ܬ]c\/+P;*}'טK+BQmʹXޜ M* @t[Hun%U>d-/]9 1py`*Lt;-B yTGpX&Fifyˤw%MjP" zOu-:b& +1l2 8CT#ڃ6(J*pO۪݄'5(bTL="d W2W)b 3滆JK8B͚iQ@nu kXWi s\M$*_6-EŸ`x2u5+9ǪjE:똳vn q><*%qא2v1ƶ w@P|W*F1b +Oe]yR!TcJbӷQB9(WlHmR_ GwKiWiS7uMQ5" +]ȴfjʽkuĢծY]E{_.ŻZuWA PE kp2[BmoSɱ0!URhۤ]XPP rV% dQDžb YfL .KtC߉pFd ڬ)ѳ~9%GZU&gr@Խ /|TsI]+PE!*(õC dq_elPQ%q/+>Y3eE9+?)C[ŇPa戢˂mm ˥!)iV͋ fT(^[\_<ƍ*R-& s kw/i 7RS3sXĵ.nji*[Ԙo t/Ҭ!! Fd P8a0ݣ瘟uN9cʌlBBVk(SEFE*o4Ŕ" rDROU$C--ML;).:,W@tvA&{]G ++lq]P[EcwXiI{5՗B~8}1BSM19T%5djOX nd-_)B;YbTޡߏѕFJwQbuR74_1 +G@ G)ZJQEN`㬛.kb굪*KxIwxP[2pX?Ti_R>4>7&AZRo*_Ghg^? wZ!):$R̜/$Pzxwٔ4~L* +p1AFIz;=ڴczP=f Qyk[L!|׌~+<%qjv*[^9}Zg$mI!'Zv.4|{UPZx +%'uV]Iѝ/عz]ˎ8eosS?f]UdqJiKNlމzJ7icV!SlqYj}H?/DPfQ qA,{I[ +FɍXl4&I&{A@Ӣ$$ \i`Lk&DԼ:xI': +:~E `G얛W'X4vr'}÷ ²TJI(;WK=̃h[x!W3\c%ZF&\qQ4iJeթLQ}Lz\&r 9+JQ0YnXQ+ݜR =_U+>"HZhFJ:s|隫q&lZ"/ +K B9"'cdILAjk r\h*Yh rD.0ϟɿ~ֿ'V,˹;jDv'A%Ө,tH6Byw˷ţ6mȿ=(+-*[j ȘA( NЏ)gKD3'thg:POg 3 {x8`;kƆ[JI]DcǣGB摡;?^1B Sd4`jb s> Z v҈65\)qzE> Dx~wKr*v;R{B+"_]띦&U(E>be1`~dUR6XѢ݅6g1GYCNVIԋ$s^0BWg84q׸H "dLB8tڛg`5l׸܇J=@ ⩺-MN.Z!r+T?7œBh#rc|ںN(nKTW^~2[.winHvk֦$cBT??G>hKd;HŪqO Av>xd 2HX8iqlEHč9d7 ?S} "Qry8æ_ВtůhN4B1 +Ow>>/,S#|>o~>_>ғ3Ñ~=CfbNL[kgj%oF ܽ`Ąar ]fr-0b3%pr9GpHؤBGGNѠ{V'e4=4B}@ :݁R; + ƫV3{;78[cӶfV͝}R \6Qb4*t9 2I[EL zЏSnfJǃhyT/)X%Gm]%ilX88T,+RAT޲I)ЍuMb[0/O-=[Zm^I޼%qjG,A&%Nu8D^1n/#_'m$)s$hvn Aָ]nyRt/VvRB%z\}48SVyyIdq)k=qh/+Hp7orq5Q4lZ!} S4k +fɎkӿg?RhE)' +.VNy#˯FS`]:~wEG;j^z+ywD g;t׌0.2R~mjVu]FPQQ˴rkTN1o%~\3''?߫y/g].U)<,RbB03xRC;[lT}›'@鬗y:MI +=ʑ.g,fDp>ArQs^ Jc_:ި;WPG=,r[>&FD +'·KH G.Ggń%B fbEb':<&j7Qj `z%iZb0Ț)7,8>P0&GkH#-odٟɑF TJDWӓ rC1v*R_7睉ΘOaG]BY:<CxLk]'MV%6Ƶ5b$%i3_zGJp4oLj#ZTȺ6 ͂Dm=ۡ l<&Oj',vh3YM`v貲ﱳF"k]T(T%]5i)zzM|??'}ܔ!j1*K4rL̓m0i̤CaiGkPH )sO,9;1B^VR/+GE2K5~Jҕ"R *(=s?AItuWߺ:k I!:Us)RPھD߮bmCZ=YR <tSU4"Ǘ`k;[y OqILS-jV}UlzSUoW{:)R&ƚ.v@ɮjA6M*v9~ڃ׭ƇapR 6VX^ǿTvoF'f+v[%ʌ bmD^.ԈEj@Hb s!~ iM h5jž7B2ڵlxI}g,5 $U7 +pӈ=?^k< cv۽,RoėjJbtyOr'iQņQ'Z.V,^ ,hԩ%;4W⫐RNצ8#5^F,ڷED.7R o1h|3pZ 1茨jϴKv&5t J#"^)h/g͈ݲ~$hiݱMhi>QPBFċRya+cD_ˆ( a jV@Fb& *ĊY M9m~v;2%UNzEU1#:TFUUеpSg&ymo8Ru?f^p*}̈́rӍ-pAc<(*'0]d G(}= k++庖}L y$SM&XI@l*#x{( ]-oxhK1EF ۉx`aCRi*V810_ɾ#bAlAC!7P_6;t-+y{ WFUfBNȲjqgd#X! -D}b plsݮh˃aEdi'} t!gqߠv-HGtyA2΄yz!,Q'h([ACgWH1}oeo,k$x]^3 mjGgmakkԦ-vőR۴ yu*ɖ:h<&FTp|FZ6_ 8Lr*b1pz~3N I*~_!1Ѐy + v$%3UZhĬa9zl'yw_y~~|g>$C^}~~/x~o~#~\GOWz|L#++B_zGQH x#au. +;V:%b.kZ[`3& Pd!? &V9 Mc'`;$c|ia XaR<P7㚙 +V=eYz:fB.50]~o̭y,"a. ,\\dT* +,їZNn瘊!ZmU^1}lPb^v9('dmuK6kT{ pk97h.ԩw{9@*~2+6ip`Tg>Uv뻯S|k*I2T 8 |&W.TqE x(^U/(9)T^.fa~}K!{Z-?00.S2"p㮡u]rDPA )Y'H:vQUc0Xh@&=xa3Nq>nJ'5F80"P滕A̧RjTXG0}|ǬH-@B8:$P^ ׸q Xeޫ*N׵\!!#I <@ 5b +Ų4 kg%P +X Ea[%J?;30_g f%~ sm6]㐍t~1sX!*NsT@{a]3a NgE[P!\uyc4z^ qT=I3A)mFx@SP5me짉Qʉ J5< tvI/+Wi-\09H:v!%I٢Q OJLNjGVԕ^ѳ6 _ 9sK~K聞;c+DBNi1YeF`ͨ)VHл3]pl|s3FpE'ò 7A?HoXu|? j<)wzUAG%05pBRAawѾv[L9Ψrr> J^vi٤ (gIE<_?qb8$OԱjPM-R"Ypc΍.b)Y9Tf[یNm99 +@)*x j!Qm$HX`F*Uї(Y]H=펦Z,%=v ` NadM!ڐ1w +Pȶ5]#e6U\Ni=m b9غRSDɜCI*׸NKv2# !$EBxQ2֥Qb;H_g}; { D2"o.>ԉJ/հpBOzn5Dmdfbo ™R|F/PR%(nGu;sh*F#X yJsW]J+iS7H`cao9"O=B v2U: JOCq<8=FL@/*-)G$AzlX]2nJ҃ HJ*k6%eZPpZhI[J,pin#1r%-V|ͅz y#Qթc54I 2)E?x7@RM k] h#EZIjh%%oPI2*{8/ǙGXS; c{j fuf%RKFFJuiDd%ԅem/JMBR 3Ge|lk+2 lm/ߞE7._J+bN>]:6HZsn9Xܛ5H!,rI;+#yNph)%wXuɧCe(4Pv[1@ jN.MխfTwǞ@\$kPd6N)48 RsfIo=ϴu7<,^n۴eU/ԛ2Fc/xx ˳\N E"YVtrMiku_]0|G,3AWvN.8inɴUb*"8~cdu}3V ތVhl}` "L樰fka(zWfz !Qy&1/*7m+0K + ЕXmN`c;I +)^Hy +OGX]@p_Q +>[:v+R0V> @k34DRzú]Izd E30pDjp9h"[{.7lM ۻ*hU\Unt.9ɤvnu4ȻIlXŴ괪M^z˜vQ`]Ro+)LA',ڃ."1ǷW;"%1RDzk>Y*xQP Or7O +LHW'⮆Eⴵm` NLtae*kIBK)dXa.s&[3Q6Φ&5T!"0RDGňhL!q);8MP׷mڲhcuo\Ϭq]A,@czGbVS.HFhVQ*YV6uK0w_W~ )>ݛO_==؏neÿK7]2C|K oŽfgOO˿z~~/?~LzO?釗=íu>?3/DY7YԻo?n +#MRH'O8VI-:ni.V3]QYkxF') +ɦC!_Z"Lןu( !&ւ)*\kKy`t SגD +?YWw&YIj^.1R#I&P&֤/PnZQ@B1qͤcf!#jsElAŨk5l!M#Jpa-軜ߞ9%1rSjI|VG;_AcX?D|oؑ4q.pvU&vTgBLFs@І 3RĜIy a ΂@?Y 1}?G;& Z| XMn]i! F%+lYw$㥒Rr\!.P +ZWlExLUF0~isW#ŽCZ0e>`6)HEucY0t+:^JǓldP,Q$0SiFBQD!41o"S)Je%voADM/?ȓ\6\;Bh `raʇ >b]Ni7YMmҢأ?#h.F0,&Ğ6V6QhQBτU(9"BCb#r6B- 廴_}]t9)PAihPyӬS-F46BZdkrT:]YP#NA"͐ES)2pI'dɏWy6k43ڔ qsP6"eNo%dYަN$zz}źe 4>f!VP=j6#8yEˑYV~婺fp:6T(}ygD#ĄQ{)Fz:h@^Vq竑=g 0]|!rӖjFEʡ#NGi$\ވ'+W|1YA<\TcYec !&͚oVX|i{w_o" +NR?3⦊+d8*|CZ ڦ>s:Fu qzœz"&мf|@4s ΃ȿ6pP#TѨσjmeQ1-/g%.|B}3M(u"Ӭo nѸT%!yq}SVԬ GӑM̵ORIz0nhBőiZgvi4#)i0ۥ7v@9aqgD._'kQa VtB_ 3xT٥Dz-o#<FD +n#J]Ap. +nq 9T-Ixz#bnuSp#rj1rH ZǻKuS'~=@x\^cr%Vy3g E-Somj9D̲.7Lߖ7 \q҈jۤAnDFȍN#l7ayfO2z.}:gȎ$-ݑ.H]4gHЧ- eM$ +l<\EɪlYG2Qpj$6PHjktRz4yN]82Yd:qjUL$X_$˭yQ@뺶PRNEnjg*ån4,lBb>s +!r: ¯zҟdbhun%xF:"yϲNa XG#v5],}HDjJ]'Ɲ1hE"剼(b`(j0h"d!6xBMAtU$F3 [# Llii7I^:]U! RhSc5:v25xD +]nd]FPRdDz3 Z9mQ"[~=ت*3"dҩi2!SF]mF[IȞ%Q +pk`փW(õj?7>Ʀh2R*AM3u[41 D1f/`)|Hl)f@ڲojúҹj4W64[q`I=|^0%ZG?"EAҀ s=%fHr81~ J焘_[ d>!jJ;0?6xh^/1V9[p7^l:U^/iIy%:"aPJaV<_D#s򔙛%C7!oRuJ-+> u&({ǵ>|66Nq<\rvBjD: 7Dh82 ^S&u:e I8AG>~@۔ m8-R"1Vw^2})UK6EC@b)(?Dd8|PX+!׫z%/S?jE>Bu~K!>B/d-E2DJY[RE; +K/ꃈDqC +.2bFST f}791-1.c2*ut.m a25H- +R9NY&nsGWN5Y!@RǃUv亐!&$ߜזL/ǞHtQոD?1Qb+Ex+"/;A 5^A8ɯ6:%ZBh`۠wjdn%R>FV9t`W +NYk )GZS-fQu{E"CϕOE{SҟmR0V+bYH_HF钏u5$IJ̷캆I8+fHZ*>뼧(?^&zQ~bS}hAP2P!$[ι7d$1wݪ:콚:('P bY+jLc-(u +H~JI%:&g9qavmSgL#pSjimDDn팧|{o 7:zB. PU&Yݭ㳞 R;XCdXn Q!1Kߦy%1ٗݎ=nM"$^9`7ΰ(MQi]]!ԍID/PuH?!BeԮqdj*=C>$ }PBaZ{yW LXndQՊV?Ƙ|H?__Wz!OHdx$EsGRT'EդvP $+!2چ(nANTqBTk/!"c 08$=JA!Mb H_OP&h+QjH3f&n DYW:Sw?Š[w) X'}R;Od QJIp:fS=:-!K _u}WtUaV"ɺk;NKyv6W '髏GE텶u额NFdˌ`&>n g1#ct#is+3&DST(9рT*|ˍ:%F(5N{NSbEnDÞB +1 _݋7o_~{A_|͖_߾yߏ/~ūW忷2_*R[/=D6:* D-~.TK Sځd$#I}τP#aÀcX#wD{my'}vڱbWMt:G%!Zk5 +T4w Eo..F*FHI͈HT ~kngdoJg׍"ME%{7bǧogL|gڒ9W +@A%9 wʸBrҖ8` +9ѫ zqf~ 2}y$VA}C~R,r|В`ƾ2R-i +cBJ%%r ?I>9Sۈ)d`vS}hG T9NbyV \OKT(! vrьW2H#]Z}N9Nth$;:ƹHBri$ܸS;Hx^w4q`GmQqL5NN w]*j1yEOBf k2Q>вw8P=./7̄Y pz% +=Z1o`X 5׆5\D-Cv|'ޜ;Aȥ&QWèɏbvy<"=䖆fv6Gw="޶ۙXp`AM7Egvl~piY)3`B`]QF1iτG.(d\aY%lޘ4(J:Q8>(^ɵfn 䭶$A,[ݼչ|J2Og+7*OjQiM]e8'G'_1]<~¡at{J + %uT:a*|\bVpXTtsE:ǾtJ2驽*@WFH?Yk@NJ5u$"ۃy˦O8Wm$N;r83넝#5HV;fϷ+21HbSZ7M :Q"9q{(O([.lfNʈ-O}NߠK- +2?=)9+*/1)}f&D'ՅI8{{U1S[4$,H5/ny*85:1kJ! \/]ɝd䡟b)2ȝZ68QwшX)|Z j'ՑFP_x`M  ~r$/JnԆ("汣I\c}ĉr*BU3S΄J-ڈ'4d*6[N +x@M[k#5_z;:gxKVmؾOYq|T߭bfnk qt닝l\UQ'9I>_ԭO9OԩI])KIp#ʪR ]ͫCNM3YҩC-3;vq8Nn/5TҮ:C2_^aLx~{#]S]ؿuyI*S;yarBr5ctY2 Em.]}LJ'}'*:Cwg;$( {R N EAԥi@ݮrhlf{N(0 *ɾ>V7ř|%?r8D_Y9ҭˁ:uC-&h}=):bv:`nV'-Ng駰:KPXH4l+4)Ǥa M,P!rG:M!q*ۉCa[J;J|2ϊxycJQ`hM53!L=k\RM72uFyav}vZ@d @Ղwt+(R6KߧVmhH'᝺`@b*jθE숇TЯ*މbȇ&@1r*U{c绒,4 )( z+b.5fPqn P)rw7 ΘA d9Na.NAs+T  :AHN:t@tg1> +}zv\T˙B0tHND}N.Wϝ~%&zPl;D_QTU1ԲUYm0BtQ:,拮 0٩~8P P.Bm"]8d~uCmp*^ս+Ҝ[uٳ n"mܼe 0 N*+OH<Dޘ}اǓ + +"wolnW8:!Sy7J"JJLc +1=JdX`"7`ߍaA^=udN$yسDNI7Z') Brnu +$>s9S5J9j wXΗM$^iSm›FՑr +^iN9OM[[`>LCj2p:ȿQ6ą4و0e:3)kb{LҪWƉlRګ<2bhnN_!C ~ٙ0rRMGtAw x3-8|ۏ~?&苿೔?~۷׏?_k_3=7_?ԈnxPҍ!gS SKKٺd*Bg|օm-y^3/yDKz8FHw; >K Q V{2'g˼|^?t3T8Yb!6 wv4fK.q[$ne?aJP6C3a@1!t( D̒<˴cm;- -: rZoO@+iJKBs>Uu b%D%mFl@Z=]d<)]}hg钔0J: o 0zFi(yXVL`Huĥ5R%߸}ڍZ +Oe5~TEݪ ljnEPxs[ Z w2FL,L s,-0?6!?87Z'5yD)q9NwP'Ј+G#B""l^3A4[$c3a tWo4r0Njz=o%|ni{Su*txhgjHѪ3 -H@D[ΙF>OECd+<ՒmilDD&KS'4bp9( +˷sGbJWbځj׹@\ uKG@ wzDOs%ZV`&ӪO!!KRD#1dI'C@Eˡ< Pڅ=aw:;=ISˁM@hmeϡU>-:JzIByX QG#qBb*޹J 4;m썌C$ O5<=Gg+T>AtrMj簺hQm"ѯd^3I_@s?OtvpQY:g}ƙOCi:Spe7}cR4¾K em$rl.Jʲ9if#{CxGKLp$Cj!B4 U +DwlDɱ3_1Py}cM+7^SGG&Ei5m/0OsL#aHu.$& D%;tš6PA')lLY/=* +2#WɌȀ ƫt!g]U;ӫ:_l!Cre6-N'NC!y':FGW0Ws@VvQ<][PLu-jMG!b6̫i*fTR TiH8"%r3:'QUTf]UJ$w+ aI?(Kp2V0W6CwLv7sH|ZPj H$C !a.DMYBlA 6.ҮsQO|e?¤ Y'd$<_J-dǒ"oe X,$"=Էڨr,86/H*"[gڕa >LOw#e+؄rهyiI1d{"Jc4+⤲#RL! 6SgΖbCS2-ER!YoC.vY@ LmIcAˠxXtHWƅf`q |\@x^qIz)[챍$Fv $Gn|׊sobwc*Gm$D0U`rUQV#\0@ $LAɑUhe!ŗ6 i_E@V,{11L @MiXn=!']hW:qN5seKw [IZ;ғV+ -40 R +1?B3s1 TfIHi;e%4wR˜;\hF-揞&B9U1 dr"=5x>9F˔SN4vPL B]̶R*BK88C|Q/_YF$h}ElxP CTL +oʞcrBm:$Dܢ$mΦQSBg=Kf +J >6eQ9ıڠQgbPv&:wf1![ ѻ!|9Uݢ5vT+l}r,b^fG%RF~PIZi,$wx'.4J9 cÃ7rJ.8xhm/yy\:P]䗩6Ԓ 5B_?-F3w=ڸ֍%9j!u1]mLOam<@qE*CDRJQW5mI9#40"D +dJ̚tkB)d:΃orOKigE5 K;T)OUfҽ+ +ϐ|YQҡp5Š5ŲwP +!4O 3٭U7oYw`bV}Dd(xwmB`f +b& +Sk@|fZ}Cw5cyob_vB UZL4iJi˰l.?*rIzD\c=d:%] #k3Q!粐yGs6ՂU46I6į/q-*A=TbcJ(kKFM/8r{h'^/o^<<zӇW>{+&R}^ۇ_^=o?_mn|ֹ?yz~qLgTj=sP!Y77 Q^pf1E)5-}ecvDԨ@gU(*v!(!m "$5UU]ƠqBLl{@&gyN)z7ИJsTຬ ( +;F{F* PϋhM!Q5M^:tIkAUM(Tf:I]\nHoލm;h%'VIr&GѾ`C4;sPh2Դ׬hc`4.H UV^`;h A%KkcBl }7n.1BdUT!5iBD Ou)$);V8R6'o7GFk"/3]&ٵ@ ݊Wþdi\)'3?Tx&̀ t:ŝ X1m"̟qV}D|_A1:"1zQփ8ԍu1d%O-m?z_²9awfΓ7h^?i?ޠsLgS6 v)3ۉo_)Ź{ jvVP}4A p˸Y rL/|0 eѕZ;{0ɡ!jzS5!gctӆLTD!WLŸE5ܧz\ETf'*GoQ;T5XDj,J,Pf>e'\{ ykJl=Im1!č[A%Њ jqYR^O!^Jd3pyQ;W0 ;)-3lVf@Dg3BEh+ƥniT'#7i`% +xiěѦ !w&<$[o=ɗz=m\ FGGA(R_{Rt6+TI8˫=g Zm-88r(Ef hTȁ񺽶 ă/6\T}++81$SR Me(8mkv_D< ~f̛ .D7J.%-n0@W$vo23qT_hu`&:2QfL,qiHu|2s=/Ux5Z+%"|(Y#3n\1RD(>}QtY7UGG-l* qqAC@W&Pֈsz27T$3FLP}_a9XzvٶV/FZo#'[dmLʯLm\>2 ws>(]mIZxT4m뙠^mf<Rn`V)7Ϧ.Cx@ߧOonš$f3bLh{٩qVUѽޅ.H[L߶7Bt"ҶBBr#Ґ3R{̡doi?s`-ډCj=G̶t]PIQ&x\ k_" SUGӮ 7GDYqD_QZP>=pU~͵VKs!rr -_$,F3g8 +dj3/J4wܶ3u{~vJS%c%}NA RXܶQ4"]̺f 4@LW X+x(똩,TƩW nMK/Tҿ`V_DTf|8v.VBkAbhWۑ @?83=Ǽ ++g[8¶.r V4hUKO-?EgȭAbEia>BĞe-| +xs82ޙhh/!;2f̘ y!+wf-}/1ԋx UG +ݰìOXTd`3Zɨ NHO8p!(X ؏-n 1NmpvΈQ8Q]Y_D2ދz,~ԜVx^d(>d0-lTќLaGVrEI|T[q&ڢ*=T~/B!ܡ;i;&VKDU5#]Q Ս&ѴY˱jr&f/㋴I(]mRT[i1吩A02AEEY6W?U([4B ۙ酇&2[՗E[LidV0R&Mf%aD̵2v< dpVBW1ӭg dTᖋj'vփW +2;pu雽;79*ph4XID`q䣽jFDuTÖEaSlgZmcUaX*];vƾ"ߟ,?HN"&"z /1|dpyjPCq=xMuB4J [v?f +U21de wMfO^/F߷̙?(s%aJ[W}Nl*f,8f4EE\>[^ar0N x)ܥ#jFa-lSE?ofnugw4WdB=@Vρtd:9ߜ&cL|E.REY+d8^͸a֠kT FTS!DR-zJ,_x`S +wcؒUGp,Ul.w8b ^ec.0wTU9tK- KΐAcA`aMngUWɰiK$]''v_$;=}RH@^ ֒V)Q2K>ը=Ix2r Hܩb+V-ЗNzغ_yv$GV*V֣,)t ijĸٗҝwpI?("ãOz9/|Gy}g}_??$I$eBZՌj4؃& -ppCt;S#>J*jԪ`,e:0/*A9zvj),hG(z(lɄd:veE+g/Xl^\E _ ܹ"=JJvULf<0ޏvU,," \􈀵G^~ϾU.Ћ\=h"P~o SbUI [ 0FZМq.4$T{,Xf$#n]@>stream +HW]ʵ \Apn + OlI*?+hPJ%I | tmo y3-ˣѸomoD猨Fܷ;fW=dw;| +iqEG29kLvV.Q#R/_=;pcK/%lcD\OV +Wc-}e1?3DdN~8r~/O?O|̾|}O?__|/_ƿgcU89~?T2wV82$J!f Oqiid l<5y&S@!Fƴ{qLl?\Oy4YYUl$NO,p쨣*HPgو\'С]8l0O[!1h/k=Wv$v3nec>+@ +IȿLMs]~ܞ<̽sM1NPh Y*!QhK+CdB(j%tDB"Zkm_'nA;׃o80:v2{z&\zv pYddt&2J3f@R$DXn(\-V?BXFwQ3<({u2p3}U`ߧOPC>~MԈ:蛇Cs@{ #G[(LUPN F8T[4Xv$4hv3SWg8#DPhEͲ8)>2`EQ+ۣ]B,gAc#h;6t&3p 61i}8m +uF]vR\ w5{D!5(S;̊LDOoKЊ 5DdJAGohx6(K*WF[A;6]#u:s}sخ\A^w1Ǎ"OE̫ FEyH;b3Y*.YcҐ0agӼCzb1{TgGfNMk:`HzGR, :7pOm5ܕ,Rli 7X>"L2vr@p#r{_"٣6Rch>tOՄ#lO7 %R8ՔXIR V=Q)q-󽮘m(bn>1Ց4Ȫ;F.m:Z (#/HB^j{!&1/?`3 =aC3 bSy;Ѭ*>Gp38VcS%R;:7xRswDSܚ;[/ȅޗc.O>\Y~ʂ4x!Ϻڃbpg;1}Pg;v+h?BEWhUkLCM M*a~OI'7V%4׹#~WxR6Nl,Nv/T/d_ gG uhIÉxoZ*~Dn +|( MGH!D;򂎡gW[W0o3%yuZH>\ d~I L";Wuz!Ivr1$!: jNȉpl:⻄0ӧIE/sef}WU> gh }+WkbrC=5TjB4w#.tY/C hÄHaz"re#dT]K/Pp`>D<;pA\s7{C@5I2Gsjt*7 xoixhZtsXdLIcLK2WQWΖvCZ%;69kdk;jir,q riW顆$| 3J$Ci04Ai~U!d j{{ݪs{=D4]:Pd`g93c`} Pߩgu5SRu [ٞTA#f`cgcXWR!} m:截E/N螨.ٕ!g{,g@zSt!e]|s'p4W!4X:Daϖnė4ʹI)dnjBzCi5@!FJ; M]™>̳"^yޘR+ A,$GkN:3B-4#DNFR iy$SVtZ$~aX;V}$S Hb7if+ͳGqݶ*މbaNLw* ⣀t8EYyq=qScu  +]V +3.U S!4 Sa~@)L@Ju{Ӷ}|zvj l#$'S7iUޜVPcgǕ$*De^/IO8 4G/43 wU5lI(jB QяWy _ʪJ|ѵ(^N2 4Cyjc41V!˶V.|\ܦʷU,us=wQa֩wWj-Fh~_qx @'Q0}6e߆*]|<)W +"Ool:mrT_io,]ZBDͰh#V5xvC)xqTz҂֘t`"ͯX1&o]{Ex֑Q+h/$rx|J2Wև̇ +7NgBT ^n! T mDD D?Z*Vuvr +`wu>1L0#DԻ)qYK S&L^;UZ]'q"\e(A +d"3aP)Y*ճpY05SpJ`P9Z#*˟>~?ORǟ>w}՗_-k?{ӿoyw9O$QҖrԳhbk%%)AErl]ʌ ^x2 Ծ + 7'T^W[ +$[f#_yDKz8FHw揝Æd߈%w>@Erhv@-$Cp83"e%ڹ;;8A\*t6IR ި-!CwLol<RH4,ɳL;ֶ;~Seaŝ-tg:g +A2|vXe}f0пxLg*F 2KTZ"2e>tˠ,!fĖIޟa3E̶5H8İQ툃& N9 R>=( %#'m US(7.ZNMW؃3p2B>;ݚF"#P6 E3L d.NxA;::!{/GD9.JhNخyfNb4a3:@'-< "PZ9H;e}͂ 1ɯnnT%JfҠ:nDVd=m2:=Bje@,Fര4d"s?)'4EJ x0úA74Xj +qbgv1}> vsӁ@$9_;#^ x֐>9-KZf\kVJ}:)tzzj-QIugGr#DtACEyB$G?qw:=7{<.*,6t*!})TU3*Sc>DY g*-K촵72RO9-'b&)O:MDj%%"qlެST[\`-2Sa#T&myMW +`Vijl3ͳ0މϨF"<((s\aF6E[r,Y4enݿr+ f,.Xd*ҹxh'v|Q_5HOoyŲ$ },6Om$ysj$fLY&>T@Y8Re=#r T5>h=Y;a `اߝ=ʼqNWF + HN2jȎ9tN/şk*=1zqOfgy(,TR i@P"'}킪{1~w@gcK __I%IbR^ Ԟ3i D7J"߽w((X@<6AC2\u{cBڽ74w' WA=PQ' lπd>g '@O7he d .󺮋dE^qfƷ[ڌgȭxS>N<=Mʒu +XmВfdXɎY{QNbBv;_$+lcѣIp +8wm ǖuA3C.EBuҨq<^[ ?u En _˥ǮFvP$((",+!#ӎ֮s 3^:{=✕B> x>(OE&?*){M;+:κ6I,]go%@ b_#2G VW0 5ۣ3Ɗ%DҾȲz}̂LC¼)Jsm?^LW&;9Qhyu/Ez(ZJ43O:‚bD/i@h7햅jb?.}^3W $/xڧzx`MU%҅ OZԗN'";rGURjWɀxt=QB79lA9Ui8`sT'lɑxM"xAY2PxMrdkXe= ?!7A;+4DÝ͉DKunW4xL}eܒaA'bk.mWo"&I :7n%$n1UOC)stR*(cO'gf| " +q:IJfe}7Ǩa [9M')B}/m1ChkjsPuw> }(269uzbw=UY%@O&|FKfI]xz!NPt!p= +R} |ŕrЀT=>xԊfbuX0 +~Q[]uyLx\3s@%lz_*_j۟j@걝\VvZi8g1w - 2h~F[#-@eo߮wP2)$q{Wb8B]\1FW\ -*ۊ縡2@Nm'Iecp +ubQ#G;QI(fK4O3S^3H%.C7x`O#2Ö^wjT;Z*é<姇C_rlcf8ClG)fGm1J#SkbPۧo$#%]W +` +} +z AF7vA1=u=S,+>tx+RZ^fYZɫĭ||0&MAVc-ɼSt$[aH1slbզ+}=I'FƮqa(5NV*n+cy@)b3/TMqd"0ZM5aPu1h`PLr{,58{fpfb{1oqû_~;";2lrI\޷&AZT܏.@P0ڽMNeLж:N+a0qmh0C! +6@N$fvFlJy?m %Ye\(4:ޢ 9 ++X*zőAml-鏄,ǒϧ/?<O|A/~O綎Onx7||~rFV/__>nD[_oC_b髧^o/o޾?~}OɢGѫ~zRmό)/|࿩'G ~c}j-lT~"H/A )H3{.lja| &=;Qb/0ߕ/. IZC +<"ڐ9EL]mT[Ur|[NE +- +ږpϪ8-- +Sj#= MK`4p]R÷ өQ4SVp %IicmeKt,kˢ%O,Uk{ +,=|  ktk47-PP륏vKi㸭ky2_g{\iGu09s} &0gSn]^z`mթ_`ډkE} R{rqS9&lT=;d| &}vEM?s㢗^˜7/ P{%K.@Cn?0H`v7whm O)+3"@A-*#$$i)$Te+:j0< 0!0 $1R4[)L&솃O3<(osVn7;=kr3g̰.OU;1]iju&g1(Fք*fv3eS8vԈ c WU'P<7Tuz])YW(l +Ōevز#Z jecQ`w$%xܻ7jiԏB\a7ce%\Y!xv()?;ҼCn5?ckn.(Af*f)NvLN8&**?t+9 T҅ZJ<rҵ2t,j +wz9=v.?L)0 vnZ0;)֊Yإ0ӤA |@}߱ou\58{TFB\YϺCuښSAUNLpy!$E%AZ}uva:FuY 2hwC.Xsg]d \2낤[O"Zm,j`;x6g,.mH<måL+cY3&jG&N[ex?ODpepSl^mrB,袴d\ȽtaOmB/>L*u_:O!0@0jIwcS5ZZ8=n"^5ȿ(hOѸF8%.2V-o{T?(ڗ%2!ZEBDfهg5m X_@&03$I3!4 q]^@?c,7n0s~)4N$S1BV5#f[[doU@jY&Z$6}I_B y2c>,5hiMo~[6Пaj#T}Pii!_4ݸQ~ب}>G/S!#JbgMA%laa \}G@EՈMYKO*K<ϨΖ@ayjD@;ռaXc\!TTUbL_8Udj @] 4XPG@R @8\sbog +8(BMm ѱem>-FpxYĜlut{\U+waOsٯ_Eav}+i H,**d3&V +YpH춥fE[cXZ eZ@Px&^ e N$m> ŭde S0`i8]e^@sյ{#nȤr%it@/*`5Jo} xkCbVƕR:+P-?:)cˊ%q[U\wVJܘzس7&e'9Zf[W Z:JvU$U=f!5Ҋ XM{ {VC'Wk qՂyh|>GIlܳdLT3_ +EٚFuz,tz\傌8]e限֝cz,{W A'/P4%۳/MݬS16deKn:"+}X % <׶GPxG4u`u;q4g ^I{z$ҿF' +"=@i:|KNJ&isIPEQ?$.BZd*|?WhT>y2NA0)FxG\dJ*&{l-Z cqIJ+l٭7FY; .s1X枋)/q*62&_I=zq%kH߸"#+sP7j()רy"vROJ;Q,pBPRͺ~)PQ=8ŻM%ƍy%Apv .;0EQU k2Sw18i#/IwDһ5Ktt )8Ph3Z[mNk q`*7B&ttEcbk +Ԃ#PRA^5gڬ-5p5hsTmx\#=p!7D1 2p[ '_âgf +VE_͐_H;tFeg&j[ +KscaRP[QZn7qU%0KT&j -֧ + 2Q,vVJ˽ /`1"Iolݫ +~^T]Ꮝd4a`/j8-r:ӎI3ORXOt`"U_euS|bܣ0:iTJ%L/cb :n{>˅ I4ŗz +a]5gzJ*4C)Cָdq|LiQmQz^Ҟ5qCUy=EZgLv,(+9ɘ7 /@9jH2{^{O +?אG +"rgD;%*\Yd2O[ksO58͛|9ŗ?T,bdή'f vYi3)p_V>ٺ\fQ\Σ]:}I߶|wȕ7@{*>so~+:ڥz@s9L᾽3YC0cq:"P"qvyoEQʫh%UTmxnꭨ0h[Z9?hhgzOFmo_ߟ뗟x뷿?+1Z +nͪ?INʠ#4QaW5`T0A-%\MVHcj$;ÒBd9,xU*krU`sFK"sX%%+3i`xDUֈzhE_DE $ve@[(SLjȉgD3Ǹނ n ozvҕӹN[[!xswWtn(ܭ-"MSI# Yw?WxiaDr>.0ő[cR$2Xy-ۃuٻ:o֌0JnƱEĸYf0 GKjJ:{ տ[EĹ Y&^' N־}C l_zЈ]>s8vyc.֣oUTȟW}w0XyZpm{oZXNJt\e6=)hÐR%z:a2 +Kr9EM>iLk"9n܂ec~`NȒE6aގރq&L"]4ݠNFSS轮psHР;f Om!P"/M5yLNDihbqH9ޯnږZ+ +n6g ԕ5ڏ,>]}k,uVԬ0=L&9(uc+pڔh$1͜$2@)7NWl^{ĪUtb*~#9#^Ur +Tpn|a+Q+48WH{&d9>LT'A Ԓǟ3LmZGWlG]&Z7J-d'NSX'G OyTxinvx1xx<&pX͋t# +g1HVQ9^NoTqR]RƷM{Z+2cs"]>tnClzbh])e4uA% &SП ƫdדH ߚ§Pz)zh-G3i8 Uv>L h~2kܠY,CR2@@,FŹmB| GOb(e#"xpO>u0f3/hn+wT#Y4'GDH] L[^y! +F}F-DVX_EVI֫i*+ +ӪdL`jsPy(dZb ]|RW9~ݯeFE݇"svTLe< GEos d/WAQAS񏸓-?7(LJINIi3ߥ Np!sT&ӕLHzv/ u}W3XyU0+ai%:+Kƣ1@:ӊtYGXuZ@=AHՙXk3!Bt'(DѨs7Fu~-9}Xl&>ލJolI7±z3R9VWC>cMLi?n${+h/evać}Zu` +ls裉̋ǟgwzjnds#\{b9'AyїoZ$fO[PzlVTQB/:fHcC҉ ! ]uޯD~WW.R6 J׷emnFV"Wί^SKjщ"m}1̻&mSN~ixMph)П ֡BNV?<\<[ȹ ΢/Uya jD +1lRb\le _"޷C; $ +jmFn( =t4X[5)M[+>DZ!iAZzeiUWLLL:JB`M ly}~݇÷?>=믿okF;o9_$/~{p?hpE}^׿eq/-Ԥ .0TPo5ꅖA@l$b̘F,>w5؂/A +ȾJ66RPۆ7i0DbbPΖ >,QːO -01f \:5Ph<˵.^zQD$\BS<& CwnLA*}RǶr.JnI{N_itmi#>ہ;9W 9eJ 5 +zL5 Vt3JeB4DO1Zyz԰2΍F쬄ċ +&31zn׏KmA([9J̔]OTgFua"C>h9&P}7 +qu-Aj>5^$A>y +w1,Px޹ ޟgюnwaGx_&}p6!%_xQ}n@%,BJ;ȶ'N! uV5钚7X6C E~ڋ~|3 6[M F0)sWzž%^Sr*>*MzΎ2gB f3K(ZKR4ϴjpb A,>+(y;$@cYP,- qd6!q +r4)Ǡ`a$d6+#csx*PtR?wϴw1 ^Q8UHfPZR@@@%r퀦"a2p~eS&W}oBEnz"56[t|b ?iQv>GM䈃ՙ_(*9,$ATz8;Pub8 nE#Ă;3E8r/2O8rVs*cx%2:0 +wU !t}YTi&uB-A]ۏJ){'$ +jsnATqn=V&qU g*-K̴7B7j& +)'iؚ㚌Š}(u[UzDdwNۨ/=5ldo|B^x]y$F E67;]*u)r}"4S=KS +Z/9ptO " MllوD sĘ"CLvrBaӬߺ4\sz@,{ eOGqI-D˭׎ +e?:43nF>DhGKGJ#K+3B'IJF#UlNJ'q+BS^ +i w9>W@PK57%m*q MUrdDKēTWo}Nr^l"uQl~ѱqv[ӕ\hvK6jn0a iTƭYDћ?}髷޾Ϸ_^Pg~n/ׯ?W헌 ׷r-~0n/>}X}?zzz˯7?yL?z^OO6|Թ?zw_?oޘqw8M6Mn`|qxT>4]!r5BDa%)-Q~@dܢ8dP:r<l0N'aHeEHY{_0Qz(&!HkAZPͽJ8rhtڴ`]-ehrSDPOhq@>JtUzsΩ }Kr ob%ӱP8𸁴9[L#syͤc͎HG[\!&9>Fu͍c$zW?;o"DI1ޗ< g3̉rNtP٧Cp+da+OXΥ) P N I1#1JD3OQB HIOh&YH +t `kBgJv8F7[֩qliJEuG^%(%?CRJ<{ uD%zbI&.K#qJ;v79t 60F@7#zpŨsFF&RUMICU!5^+ x!-h:klj5iq vLw.LyݜG=8{@海T.XQ[pYoXrl0DY<.Xv6!ZX򤮅8E#B(s[jcQ ؂3id%8kih(ir'~i +zhnXu?evY%Wfk=,Hʃ{#jB\w.ʛ-q 85s +5fz0k;TCjff= qQ& C2Noe)-Y72Y_hGKD%I Yw|Qcdy9Pw5IbL-[nx"[m,$SX gFGG`0*y&E' h@F֜ߚP.ڪcGlrh,:OT,r_trTKq?%Zh6W1BbM2(׸ow&S'^ 3ctPPH6!Euug6ΐN2i! +z:!ޅ3Gqf lbK4=E3PlNXFD$WH)y'k!u#Ym!f?;bՇKcZs<cF6"Rw+@.'A&,+\,.9獪-I 0MqW,IH6)LՁϦ 1+c2i嶂_ylyXxm Y^@p ro=IHTԩfmSoRZ7qwEq)So yxD6!FBn~V)e#%3[ؼ蹘EZj3jX֛h'I3"+]3s׉w\BgtN2K0Ld15.c +*ڠmQ'+(ϸVONԄA%\lkD]6Wk?pZT")f8 qjd s/Hμ(!PM:K h3u{Â[*հBԑ/T!(ш&c7;<R:"3bZu{G)@hՐt"1S}JqghZy|Qq@VcVE擳bd`bf;j"FQ:pÞ8d qJo z~v4Nve}w +]D+ܙ"fk0[ !è|6]rDvoԸں_2B] >SҾ`K(ad;U2mwj3f@, e71F+ eV͒zMT*<}O9tR/0)+[]!]jU,MDe߃\ŧng(2͕V"<G0ga(*Mx/Z~D|QS2-ɪ!%-3*g&ܲWZ{/F߷ s85(s)EB}`?(RZ4H1;Oܬqڤc? q=aq\#5 թukT6qp.ܚ{UZAj2 =f6H.L za$ ضiWi z3C27YD~52$QlA|A>(a?_mjƹH܊p*LJ1PۖslXj=ce ڟA""KRd!,lǭ.(Duz-A2}6v2hGdu:Y,Lٗ[W}߫.(Ah؟/;7 r8̽>`tx)ܥTNE-:QV +"Oiq[]29͕.:YP Ds dwuvd`ӜURoCb˱g"{d8>/}̋.܀Pe%(齱_m85j!%j *dǻwc`I1D0bdO G{Ɲ=hU`UD7kg惪H uˈ6a8v]6b= C>ը/[IX%Ķ̧K{U1:.{EcNRMTg;D-F + B糜0v=i{γҹF ]J.n:/rE;)qԥ:utAB .dQ3=/ +!THbJ;N%f)Ӹ10z%HlpI\S=q*MQԏ0NL:{%MB6BիHvG9u*}]q|PHI}$4KeZ{+]` Yl Z:=cL>7~W?ҏ3wI'_*+:+fR}u8Gvǂ~m%ZbQArp>bZ(Yͩ$H#z1 d'gw>y<팊!O6_Shb\rb*-M;]E/$f6hO4U y$z25'!xؒX􈀹{~[vU{h "&u +qyQ=p[h:rj.^gNX,]]ֻաzR@  CR1P2چ(nANTy *5ۗf K +U6- y1In(5 3oMHDŽn_v,f/|ScY=CI3rrQIq;HyVR=tSj3#Bu۪³Qpj\J˨Q0k3N}d^Eq^=hx;N osg o Xf!8I{k!v4=لhĜhُɥԨ:Kk(#z g߰hri * а҃mH—ӯzUAx+Ab86+ DH=U)k~O>sO[ݗϿ??~O}/?sIBjcVDŽZiöHUEԲ-U bAn$#E ;zG-mw(ÉN)w՛nmc7/}bWCd]#UՒ$Π@E@:ΌX"fcd2Z[O:0 #]GެfLdIA갃d/ o~,r5WF +3J\ jВhkz Anf:Z)m T("F~'3 +ē$ٵdu\ǿK+%NS8Q\DY<8Jnw:p*nSGBzΥbˣӥu󪴴b{'sladg$ݥ^5r4gۇדLҫbAZ/5ȉ(Y6{v8$=i + [ZO%5/cGn4 aJǽ +Yi?(JY)g /cլ(Rރ}2mÄN?%S8Fl@Ŀ6oLU-4Cl4mA.2֤`%06''jݐef d\uWq3M2o[gs.ZSGHS:˯E:PgMȂj3jvh!4c|PGv,9?2@J&UEsa!@56Fۘ0U)觽7KЇ1'G1EhYr9νm]^*sJݍ/vWJ*2ȏgs8Ogm_#!V + n#{M*C +yU6.(rm- OP@z^5bK<{ƙ/ F~unLd4B|ɞ#Vس0l>$Hm"43R#-Z Dj<Ղw_6b KSS}t$``1 g;YW>.UHD[f9_J;?ediXQ+7LV 3rdbN|vl?f45 grv +uP9V2Sݎ>=FpRXVlW$tI@)>N+Nmf#I)DeVhNN.gHGbUrzIB<@TҫjG9 #(mݘs$hV2֞>.t楬l"F|S/.V8˧_-hiVW KW]͋X=s;po'ikLz#pש ~ Ey(ڃTN* D%4JsfH+b#M[&XI3G o_l{-nNvZ +>%t(,wqYqä:DԻSb[|tY5n1}@UN9Q:+ )-d" J Ġr-f)24J't)[L`,M9Bi|_~>OǧǻGARJoקk/1n3ߏWO$1X(0И ECrQxĔ cdNi ^dFuuz@fk׬T6`?%=T#c@QY1,FXZN07sl'u#: DŽ!J7) !瞛D977tIgLo3ӱ J)f€c!@ +FaI@YfIvl-]5V] ->stream +HWKΤ ܐa+8G C ++r@X}FJ5LVt Hd$$ K)9?ll6A+&p g)\8B" xGG +WId1Ye=AI"SQVDv;U .IuB`<ȼcIYN&xkqo)yv"*GYœ`=Dqm"!8#csBWUP!-"#ȅK3dPP`|Ây#Us_p +cqP>\r覤E!z+)"[ܯHd&Y@gB!ƞ +ڑ qQ֧R@-R5s ؿnR(O1M^XN' 2\A$lI +}>1Ua[@iĺ19e [GYu'P] 戈[#g!DŭȜ֨ 5n; +p 9QuBCK4;yBtfQBXH6nG,']Kہ/ԡ!.^ pq]p+9Z.Y8g0QW,6*''Ju6d5,NE MZT Б9klkS6O *`qs`'C9% FtAr&yM: 8$7ZGmrJZNg{>vllZ#:EJm dOEB MD"LWVq4=&lM]c$H5(ݣjs[5=O l &l%'BN=&^AU&PҳśjT']{EniMy +{A-"*fbZW~G{CM>Pnr +Lvrߋ +5f67#."dNMv 挙2!Xv^\EH!R roBထ8v>HCoPv'xBl~5ɳ88 x5&,ne]׍{h|gܩzXqO9|tz(]橫؈"Ê&h%VH0Hiz'THܡ/@AsJBmӢ7I8!ZB]*ج7;&ݍ4% guyC. +|vYI+QWqJC@ĸ$5;VBw!~h@`F=RW)<ǚ! i '7O@:ܲ\1:Jij.B喁UR~x4?ㅰ5MS֮^T1? +}&u +uҭt@}";e fОdOuIFiW;D~#&ߑQy BupQWbDޒ=5U9T.wHmh%g+^ + @-}kot:DX%b)<~xI-ϷBX#Fꎤ)I'jdE-Şʮ}̒ѩNY1eWjeu+ WgPw9QTԸX%_x$W`*u>B}S|*6Zt>K'^$z:qNΝ$0۬u^h :Mv= p{JE*^6KJe+GluQSJLԸa}9(ڶiڹ [t!H YZcTGl?^-wv +(2.[ +qٍhM΅ߞ(BAf1PH:]Lx:2vqr).-}vJYTn8  ;>}< cP'_JyKڍ 4SCM ;ѓ8j1)o[iGr*<*FcGc,ilgHR#zqTAGA2}\%O8ȂD)jގ %|tedG]M!$(R9>G{jHN 'w_;YTRw/HҊRچ^\?ϳ7xvLSt[+T)%TҌb.D҅c]C~"D~Xkmɮmκ-dsk +w7j&neF$Brz\$ŎƖSSqX]m҅H$JB߃˿PIڐi%x0&^ +xУ <6<v!WQ㦂/llb}JХ6"ĹY7BDUYP8e9j!m!u~΄ӝesèHeL5쀩W5J뎄>Hs> K>&AAP[eeʄə ۙ)d:.kDD;"3kka˲;=%62}hCVcyD8?ĺg(޺OSQ4|^sǐI*S!\Fp%pKfvߚtZUEby,{,K;G#0XfOT+ZXLHAx}fX:f +ߤ}*B*q6wENGd 躕^~T ܰDmWEv+zt,ef煬҈sTj0+Yavi D\BqBI|{t&vpҎ# &aMG`" +ՎɉDF-ێm(6G~ڔ`\H%qGECstH~u7')iNVOO>}ś<}o^+two>?~Jc?q2G_Ϟy{yۗ_Wz/ۗ?˧^7x6׹{w_?ow8?xr2 H7ꞹP!و 1B) +oFvxܩCß݌XacZS 7 iJvM!q$I#!ȝ>D g A0A<;C|A t}\UJIP: +@ElBz00~kft|,V4k16r^{ؕR'Vod@NT?kVrnTI1) l{މZI.*H4lRɉxQ}WN%*DVa5J G#'|:B.dg!΀BK +pf\O=uBBid6DXI `~z%hj 47)S-x"Lhui^BjQѽ<޺;ΠF>KrcunL$32C9>{_`IJ1*:˭^eBNJΦB,3 )"f)ɮėoq,x{n$uhƢq8 +TxܩH L9!\٦վ~O)LfL.,(gvw!d*iΞ6DgkCWȤ5i!94Uo{yS3"IlbyPjX!D*GdnWT49X$iL/֭1F­Ӓ"\ec8` B +X13דf*ILjB7w|3m\:>7Zr2Lq&$|o˜F[1h#mD);N\3ˎ5O#NgB*Ph !MDЁN)(!8sд0ڛ[a+?0Hi,(I.ʇ=jdHɱ8$1Ln٩oeh969U\Frzeopz'=,BmqqFqXgD$C4^Dθ n؉U0uFZ/҉xf-t/v^yڅ0 [2ϰc"mP Z6O:0ˈeg2Pu/?chtNnaz +Ji$kQv>AF\@L;@@ &%ykc&箴oL%$v5],mݑ8'6s{'IrҪoqr%YyYfH"$PATW3JAOyfz G|6pWq֤v٩n4u wzyPVjfyMDZm^k]o_Z>{Pj'MC54.'%5vxw򷏀S B {񽑫hh/4f{u2Ļ%'IZtVoe-[弬RISU{ P6Kq0%#C)n9O+ 5Y)yB؏Un؁3-#qKöNJ8#gY2ރB:nU/?퐒,V!*aZp:ˡ<'ֱbyQ[;0mimYccJUyoh-%J̭7B!]'s^iHxRZX3fjgdX_duz^Kw@.`*(TӬch%Sl%V "p#!Eҙ ~eH<4v"6F:S5[5|Pخ  vd_uhgE=adTeB|ۍڌH=K <`lhg|Mi=~HfG\ߤ53AY<ܾ!]Dt& *fƞy)~br؍;Pƪ61*E;X;~4SBsa 3ˆF!|D$ED>/{/p)WS{ UE{)̈'+F dc#ɨ:[!+o!wW*V ș?6Ѽ/qn~M @؜O>bB}zoh ®rAnyjU!zniT qixCH+F1Cs k2kpʏ[*٨V!Pj lΘ\^&J7xa$ _~Wy"u4*vZ5NoLQk~f{8A6Ee $n1U鑚[A`e%kN-*UA PhP +hzP=˕V.P!Y4A!/dIB#R>ڧdڻ[RŘU0~22̐{$/Bz GI;[nq*qUx8:M;\fNF!@R%?f°Blz|sn_R6a8DNZr]_xC">WD^tqTOP 9hٯ^NuRjA%%W+V)J,_N<9j_y} #X"̦X2اeB|VT]U[7DyJ7ij(Pn*"~odۮ +W`Nl6JpGWNn%^(2߲ȒE$یIKM 3\ǞwHb`LT'4V!?lF\8g=ї72c} O U􆂅䩺=,O?Fry$RM6_73nW m$vuflsK@xb&ƞ2ǔÄ([lB Iẕ ~!q[BEM:Q;hLsR"_#"_HI/f%_UgeS&<"U7y$bͿ?C?~GHGyyjEJ u-#C[H-BMxGM˂A}J?t[DD ++9JYHaEAiў'S A@5,|r|NU|z̪8y[IDiz +Mf`=2/b|Ej'/bk,:F'zָRwjf񲅛#sf`QfZ:@ ! u +}")1Tt|IgrnQ]OU<@U$, +s*lWǖzz:LwSg:V$\KYr QԂ=<:%f5DF\K ^\˦!yJ{3&9#2)kB8&Dv9Y4l,f/~sDŽP0ro'1}kqڜ!ޥ4}SW{liK:oΟ;*PQ|{ʰՙ$!wN3[n (X[諄y阑ʦz^ܑPhv:[8RF ‹ B4,fdn$}8T3STud/Ԁ?oއ8bQ I5)89MM v] JڞJ*XVzI_}w?O}?ܴb)~|||_|/ǟO?ʿϜ!B +h%eCI\@DkV+|i]8,,Or"𽑺I)v-9X6 Ҹc<trؕТvv}8UC+W%I$MJ9yu_93jb!b)NoM} +g%J>DgDu#3Y< C(KҊQ?-?֋-&3mdΕ"tLP4nwZWO![ɸ5j4#e^CR16#9^ɒ$7 +O@ P<f D>ǰ]ٍ$ֵ 8.kl*246ljga5aGlaT*1M$2O:GPPzCmXG*gKkA$4SXܢ>㽔:Za~G/5iS'lheGS8:g2X Dׁ{ +riyhuɋl=o%buO5<\mНC>XfK;M9cmbZh^%]pP2%{0yt3AN$lpoHHl HSzy PR̈]g_|8JP'~-;*iV C\I3on ꫬBaKX#?0$m g.g8J̠aACo̵P$yбD,U_"k4 8L9AiT!?aq ט0S=o{[4;8{a 僌g_C4/=ql̉,$wl;8FE([y3vR +rws{wn .Rj^R!' QXH8rO D(=xLdK %zamOR;thYO[CF A@_CòR.ٲgmmd3mE(Hn J@ f?;B,Wm =3NvubezȃcKgxI4H +bJ +?Yka{Gk|Q`fgvᛨRhgbѰ"a E}7)ч+z!ЎWKm~m2c|wSb X@@u=zsShνt;SKu7?T^Ou$!Xyv6uyDcYh}YRf˩ 0=SzdA4kjI#1Цr#e$p@V$e>w3#`a~Gv^o}0#،t71eGZV}6;D渎/sSC~۶sWbhrH)ԕNwzf"r VHݲq'p_;3@Y>Me& I[dN#֎_f +_d/;Ud86;6O5a Æ9ILtKx@ܱ8XW\YbNzTӫV~<ω2}j 4&)?8W +m@>'g=9(}-tcg$m2h)c fQjz$H( fs &,O|V +f‘r_}#:Kˑh=@AS.OeTW|GvbT +rD8K4*zDx:GUsVenBfےǑS79lYB^=6, GD4y^D^ zL0y$~HH+s~yFh$/2t:9wD$B]m.b{9{um_:6nRd86(}gw1=j bOA={0~FYfUzYF"P}#wѤG_!^&'Ǚd0b3+*I:|Z/|FN y3cv@oIN8j&!bd&҃OX@Jh_G>cu\%f279!h}?a2b&ӌ%A)-jxȦy⥃[mNRpL2BL0W*@fڭ{L^RKhd?FNo4*z=ȶ 3Eu-՘ʼS}KՇ> IH*BwH8B[/1%NpKz"`.a-qDo]ѕ!͵t~F \|򉌖ˀ-"NiYRBCH52k`@x9J!Y0_U/A0!-niս<7)Ið@ƹ5믍fE7h'pm9r4NaؾL~flitnoj)7# :VܣwpB@  DmWWJgRņsh3 +X7 +%-6$~|a6N|g cy.5M)9 JT]iP_@>, )TF5uxAgf3*-y"31Dd봒(+`=*qTώ)F0p'vNab2`OZkyR cTxa[*~N Xg׺TeD;k[O U'Yk(JHXťoU,&q j-D`Tp(`ۖ4OZ~Z)yz\O="CCE΁6e_]a"&jrOJy9foZSdQ@٠-eѣ&`>B&FO1(aXNOS1e'*g_R01읋Ƞ$pѢ +d)NŠ^2(Pbm@pZlDܠ%$5a)R-UY'̈́l5T@.d>$a\v8(*g ]*%`YYȉd9o (ήꪽEӆ&yDz[$'ǧq&-(2 d^9#P6C2 J ĠY49镾: fa=fBSi8?ç_$?86圿~毟?}_o_}ݷ/?}گ~?~zzjw7tPP4Mu^B%_V?sћOfkkPX1 -bI<׌lj1xђ҈1 jX1,F։XXN7''|" CkY`' )s?d W{LtIqeB9S`4Dy2pW@YfI턣8㧨1t Au}斉7M6bK[_u";/dx$25[x ( +j\dyi"*ɹ$;ǽN: :AiJ[vuPKqF2-/TD :B} +, 0z +Dy16R>:v:Vyƍҝn %:疰#}2&{p[ _\'t}0d"tmC؏OndqlG"ؗM62˅eA| #4x2?9m + Ys]#}}SRIVTd +hOC|4x<1GI]]fЦq0:j#!0Uj  X.|,hD~gD&u6!*d*9;ucW]ǴM!1'blLd(F:s g ^j&9?˩5o$j6k0277M#+6?'Ҡu "M+FV@t0 Et#".˷8-.2Z2a! &H0fXOiV[iv:F GǝYr;P bs"yOZp:^u^i3šwNr6Ʒ[F K,GaATP3:I! |pa4ەЃz%9UXDg"BFs/; +9Su森-AZ=Іa!T&h ިlMte+m"(ubJv4{ei\NFes*c&^(fѽhKNs a:i4Ane3TѫiLnʴ h^_\ r(>)g+dxR' GkaL,temD8I:2v)ySxpC6*RlĂ b~V+¾9]Ip$#g])TCvL{US^/Q (؂0Լ%u\Pb?Zp~&r,}Fa6y"W9Ah"25* Pzn-ڏe5 5@| h3_H Q!G4Ƞ*NmQW/:SHK+bw̳{Y^hHxWbqd|BMcF;40oAٻNsW>;5((MD(Ft0'ͥ;bTb#JMm&tk uaz: WΣe rA(,qDfWzs;3RJP4> -dSU4H5ƀ3\ѨȴA:xYt-e"(U>|lJQ>^tq!tfB#ISxݑxfkhac؜hGIVV\4- jӓքV3מ0P\LL0K҅pմ.:w~ۣÿ bPm*[u9Mbn-Sӯ;3 }!nFFJe.*b)GQ]_sCb쎍ݺV)-v~˔Dr#C6x$ŃxGWD! DMݦUr۵ _Yx?W.Q9#5}t`Ƶ~Uh12ҎXҖ=SW;ATSk34g/l\*PJҲtLe5Xh95 iSjSAhGnS5635x_ۈ#ҙ/+; 2)I52vs'}-bϯ|xo^=%S}_}~|}>˭ݗOsΟ-?>V,-{`Қ(#'PhpbRFd V t3k8ٙ#& +m&MaψWXQB$ ,C'. K.U5&aT22&ꔁ:B]ATKqǪ&ٝo̾T + DGC}J[j!E<`O 5}@K3f`>0.5 (@ejC0_d lyxlpLكCVIK'a3D5xa= W^$ ȉD FvG )Es16 1c aY6-Jh"@ڶ*p"Ե3?5]U:fے~RS=ME}8GI4)OųRW&;en`c;KCfKyX܀J)Q+aa4z[(ëy f/XP, ++@{IFt@œƶC{di9ܩx9馎IʒM][U'e'4u+^B\ 5Ii`q6!o?cs`em2r)\X_b,LNf5VKuv k(X54W+FeumQBMB,[hT!2CK[qCxS:b)yp/Q:.y }Z hyQ Ǻ-A+Trw<{Wf^uRdFh#9v|`y;\ H\+X3X%wijFLruʖQV^u_*rHXK H1ƺG3bͪZlcr!2ѭy!b;Azk,aL&e4N 5]`o#vq׊]eA9-;Kvʣ/ b +rc6@RϘ36vj Is.[+̩<`8f,;q\L1\d1.;I!DwlzhuлVIm +4)9|)a@G\PXNCw~tGKq̢. 3i I\Pac=Y `Z}Z] \i(}Y;0b-JwTV(eeL3)∈a:#=5 e/ߤG<(d&ژa,{ ʑ ܧWbSu"g`'N IV7sNEZ%AV@P·Ү\Mb8g 77s6%PM?T)C_U0FU3\̲4Au6]x"9r[[f[W Z:JvU$UUd!lXEH+.pjb6q$JJ=sURy0+ꖼ?GI,s!D5En9Y@u/* 2)mG'*ӫ"@I_6m:nĸqq~IN[Qgf0|n%\έL<~; haLfuQ^T=Qݨyt=̚JW@7򶩴`nTnps=̚jDlUa\Dq=/fmx*5hwJՆ59~B$(Ӷ biqk1WEBO_O"ܠbLi<Ӟbغ7b_k˥Q,jLFA@: +`w%qZuC8ZwT&Pl1*/1ݣ0:iJ(bg$S.gH47}%[$^LyVa9Ҡھ\*[.&.w&!|kԶ:IVO]LLr\׾UWe$eoSƐ -ת3`T#?Kujv%z +bU$=2Cvn b:V #hХH%{B:"3VFi +'^\C"eA>11fB??xbG6qq# ȆuV#îYH ӏ0$k5q׌h%ZL2{8'exrKu@Τ(y+y7Y!I;IT+i`g>ݺz%Byt݇I3 + 662-'.ZZ0.t"Gx&p߮l d ׮@"+ >^MQD02J*ձBA(EQ +ac LGhO4BhRaﯾ~O<?R|_?}~owoh)skqT̉S'uCI-M)cUU.o{@WA /Jb3#@ۀ3M0@Q/#1QJW]xJY%!~k$mO0̫P$85%J([9@f~M 6$FTF]`p[. av .qGm]>%6hvkj-v3g&~Xg\f[(Q,8I.ظrB)Yd>2kR3Jh/!hgq< P/YnTi@s %sfV\qb]Qˌ'_9B 1H%A:9{BnHO{Tsw<+k"a y')R%KzgF'ۣ Վp +nWAj6gnerqEWvHdfQB A}ַ>W"ccKwSuvP5K^SW +NKˉ)²KȭqA>B=i`uFLxɉTNT2. +S=$O~ٽ7}\9#t C>Zsrӣ'0V/igjbL :oe!*'#A:A,? + 6=DCu9=SPư[AnΣL7&ZcW? \V:80EK +)<' +ʐ߅nwƅ HCv 9k:c`n|>&ͷ^B4WX1=U Cm>xR:Q`dbf_%B:t/l@3-k}z&16߾B~z`:5]뜃󫉸<~ ;5x MutL4XW`joL"\BH:1hJ}tj`w9Ȩ=]y4ڢgj"ե7l'TR P#=00G:Gl. +Hzg{vM +Z~ @OI3*E Q K"v\DbM1vu zٖD 3%ISeh +C6jFVLu/i}{>"|]Gt((x+q3&!TӚm.X7:NJ_|ULq." Ӟ)YDuʗewխaG4KduhEHG{Z:ꪓck"4V>c:8(CCNlJtZT }Z/YVǙުdeʮ USx#)%&FqFGYŸ/{{5<c/f_njU]A|e[ZVJ<nuLeivElXAx:P ~-k'HF@[\J_p9aƭT@EȢnO4^Tr3g9*PA5={Ěij$=ņ? nRPtu& i̖%z@k@+}+GG{30#f|nNWH7 +j +oՋXs!l*S1儌vCk&)S>23#HiV.=#TUۑ6VYAliD4%.s@Ѫ4w)]I/M< uDgspL+ȠG<ޯU[#ƳhH2h\$9!8A G-uUR;D`l4d "h~®)1;Ђ ^E2h<7U'' (ಬ5eHa# wBE9J/n4St_DQ,D#?Nwu=eXȳ1-Vn \y/it#Fⶔ!hv⟤K9s[X&3WٸiT-8TkU此.me[ia{xΒA(_K9餸ߒ?tpmnvDibhA,5{9hQ^)J{ҘƲIdE϶ta#hd='$ЏY|ODJWhQ7OV+'Jm3t,°ޑt +C{RHNXY[gm/zvVr)42U%̐85(a|KhsX>^O9TEmPKnK̆0l RE{c}-7tMWH%}K{;^H4 b(PzEM@ *P`s~hD)@c|Y/d$}߼{O<_GFw퟿Z@]2cDN?c؞q +|o}^-I瑞 ,/*#0j뉶!gv4ӻ"DH]M*R&%10fɺ"aE}~-c؛(mE5.ݍ`8SʱaY?_*>W&_9B3ftPD-0V&g&8~7bALmX9ɜ IUdATXA;? 3HÚLi);ہuJ|%(?1-]L0Ȇ@jj紴+,`P9qD 5m {C.R]|+6QI)u]]:.ĚfeDyGtr o#PZlQPYğz9"!r^(ݪTeͷFjN/pvun;3d~B,;@mK]69E/i{!HzS=6{G41;"Id3*Q%UHLp_fs]~4Q Z\Wᡔ6#h<ʒ`F=RzjQɞ-NAJ֌}@ܕ qE`*\U^72a0࣡EpЃ(Mlk>(g6PsVLLȜ\g_!/C{x 聞e5 2Dv/ÌlTYGpYmT<[?>P]{yC]ep7 47:rp]!*gs~t>Ps`Gz\:Ϫ9 A[:ث>O<IV,<37>ǡZN8e"_R]ªK'x a\fXfyl{Ha0zRDZ<% + +:ovm7NyCz ,IK:ya*\:ָNL.p+Hy$gۉLYE4oaE DB=\jg&lw rYȔD콛ʱ$=ot_Ja5#vc#A#xE:f70kw?D 15'SZc*OuIt1N^m@Ꚇx&Z'fRqAz=/Xё'S&@i(SNiXQPGg鷷390Pˀ?G414M-OgC{#SEּ4M:j4D߻$}'ĚAc& J# ei.3Ff([F܃zxWP@brb|ƭ@nf+$r".Kʹvl o1RJ"}1µvY!W< >2[6a`¼LA$SGa ; %~(oe|^ \yIHDVu!r>j_7CiN\Cus# JH1żp=RH bDg&b~麘:)1h\3r!ҚCUEْY'Ep=r`Cw@u OM jy]'N,j-QIhWvh=N;@LXw&h!فLvFnhdgtYUo]MZm(*DY۝8Uk>HTu8|^miA }U#6 M#D>Y6F=g@V\ٙ3ghR-̠16` +F`T8%bfJ Z4zXN!43*kAs7=\Ra,,4GXbʽV;u  Qdm QoΪJ1ug"ǩH0VJcFl%BdOzJ|ʦ[xᏠ^━ʝ4$%-1àD,UK{ȉƏu߾&%kEJws ᙉ> I*GE +|p8kVX@oԲ33u%#E{)U + (R,N'G27d%IP6=8vI'  G#&!`#m=˾R3Ny?%NF\MȈ9v.ݎ5BT8PLgPa=[Rp/:q@M)FtE\,dN$q$1LwX=gu"_YV}E\n&;[\/qTVٹ3l*ƍtGE?r3cLwgY}wǏר>stream +HWۊ] %03MI*U='yH\1ۓ݄$>1teIn_ᖖwVRO"uy9-/O.rħO׌O'~Pyr[]33\VhP=,lpCZKc>r`t'`U9z0Wۚ ʑ588K]!K> h'H~˻4zJ-r(m$ܿ-c3$O~kUFGvlJӾ?=soͧ,yZ;>; +|q ޑhR*'w8ɋ Z/vrf`]lg1p0KNPAwSch9LDpM55M*V jkIVD*a ͫ +*ɡ_FVlP .߶ 11z +=u`4QY+X U@L%N,YIK?PVE;VljT*HZZ4'_(t5F1@$ps] jQ51e, mjA:N%4Q{<4F-=Hf 4'(@AA )Uj1 +jH)59:pXpib>,1NoY;{}SAmVmABiem}fHkh6xG\F 3w(н صs =q˶n=Oux=s>Pm/=;>,W;v}Ҹ7:$F7xovexgtw(3z/?S޾|RvH5+/91TM=1MѸ +o/aQLwwE> Jf &]G +sV-e{;uuI>XId.9`bE}EΩ'QVZv?1 $0X'O-}sLΌM~Ծ} X1eFӄ0W83eԥwI<%"3#}0yL]ʸȀp髵-U*5=h +%ϞF).V >ѯ=AxmQӅ3eo)%GPYQ,9al5-q=BSKa>NJw0H ٻ #D"<'-5ex"}?NyvJ"쫜 ,cuKϜ1-ըŠE 0;܋5k薿\zpMqS 7)ʾ"9}E>V@T"ZS~o r2V®{_vn +.oqT$*)V9D {&8E@[fJ/[8݋Q35)Zµ>3W}E=;Z$~geտ +2 +=Vg%T|dx?c ޵w +'gWTΨn= -"*_.zLԺn;>{r,ӏy?(=QO$Ufqej8諬 +Eu\7;лT(jMU$BqgtkQY\h+͌nN EĠgÀ +ꖇ"6Z.=p z7)7_Vl~ | 2 +pU+S2 bʾlVMb,c88E0uĪQ1GtI2}Hj"c-)^Y&x6e.Mc늡(7FJ^~M{c[ɤ礅|\Wm}F]GFoOGHJ^) WW;v,ۊܣzw8``u=fQ Ӗ~֥2}L!~[ZM;pYJ+KkcgGժ!h bY۫aNxdnslwi:[=2;.yVv,0|ho}`r?ۢ d:iAruv _n w+@ ':[3{'=MPK, +!`+SfW }`"ݿ l x^/>#wԪKZ[܏>itphվ|!j~Kli}q≮5T];*)8cj*Z^t8IhEblɻ}g*QUc,$]ޫ$_~Lt:Y͓'`{43\KCa@c;[a>#RjVjqgo~*O|f5{έa![wjzŻ>y7/Q䍖Pj{BUGUF@+S7 +͞`L28䴶6gwb*ͬ: }f0oKi 6om[4|5o= +Zȫm½]Hq$+V(f&Ǹz\Z ^d. ɡ|x;VvJwkE.ZC=77 L;mb[de/p.umS%a GQltIvl55,£-jUQgKe?^x2H"o/…,g P 9WAxf'>[QC`zbZQgWQF/'9".7lo5{Θ GgS1g:^&SqNdk̬a pi]A>d|8KBrDeT +$2?^w(LivvR"; w`jÒ88uV5v\s^۪#k z~]8i+&ivVH =>}n'?o\Gh  |`iRãI]ב`]BÐ +.kR6.sHGAC a3Bq~ѫpBΔ_?yk&?T:q]#$B,!<4ζ`$*' blQڝBunSPZaU.3T` =Y=ʸtvQlSk`A-[l` 0#Zæ;~ k[v6×:&6lxlw]M`[ZB9Rml[qasqKF&4p]3j٤TǨŞbuYWl%)8&7@m>{pޚnz2o_&?ӥ(-JEqU~]QtdTгh"ڢqsU`u;J|\YjVkn(*p5nuvJٞƨ UCXG)v)83FF+%7(EP<=B  zmUC;CG +v`2<#& h]W SYƳ}Z~G,x6q8fWo㩀xqVx6$ "w?6-ux|-޻rF.a-.I) "6 +`?度dL5*q6=Zv]Tqks#4(WQ R;/id>؂9k8 vC$o;kL[uD_J;M DOjY)ln.-R<Ih?"&:>v}Ua$[Z ]pzpo3 PԪ\?|!vF`~z/@mf25mW x8U2Xxߣ4i>&K p$[x{`+=uiQ&QμG W5on$M.kb2< - o- 2M 7p[hMab@g*W'Dc:Z0eb$aR 8ڠVAh*g{/bV he\%pOYJ6VzpU=QĠ%N$Np|q;{8x\ +&A) +dq6gF#ɓoLxඵ/ezş{(AA"mJkm-Mc +ut`=!$1?1L 3$~Ɯu)(fzHJ|1 IGF\a8XR(ý(=&3b=pv 6Ζ; JZNJ5 xk^jnL,4mJz&gfJzh(`\6unx.SL ʼFR(lxU#D }&~| i4+ΟleUn&=Tm'/6f(>&]mMrL ~S- ˵Ʃ.Q'oƂT_ 3qZ|C#WzKMY Zi 'ZFM6V | AtU/_d/b54L -O”uPK,*̬ D^b9Uq1cmY,'AMSmrestvn\l) 2j]WsY?m٪ܱ12u]!`ۺY07Ad!_{8[ZYe% +0UP5Cqo_cܬ pKϷZL}h3x?W-Ӡ~ {w6m(7gGe:+f0]ZQy%ts ʡ>*LL!MZc)[<*~:;\˚Wj$O3MƝ삨Z7 ȸj=Bt~0a{eqC_ F4*MwMz -䫊b[o Rml)[2bSenMybu)cTw>갘Q^y|"klrw^O.NoXL0z8KTVEH26Nne?e-v`$ /էTY:M7.]23{ퟐY^u=+_`!ж04Cj,"`O>TR)' cOFRz/i.Uk\uvFx %).1iB jT:Xax7"Z1F\Z{)/y/rHP_{~.Wmb DzN kw66Eo@Ǯ[]sǰ6.A\bIōփ P3ۿ!yXڈj}p]C;,U[Zµi .wj,->ґ`9Gc}ͿUd-@,A\\j*@H\ymiS(2D/ +CvhC ֖ƕ#t-kC} n29sw#͙o')Ş^a3?]PؿǮͺ("Ps{N+ Go7eJW'rL\|(7hx^hbj7P4sR6zI)7t%ښSL\_u9<2HcAFoy1] GrQ#\V4;Gn FbWV:v9{/1;ݦ$VnKGn!tJ؁ 6d}|Y~ \8(;exx)Cv#KC26eދWء +.uoinnJNG&eV  .U{lQcm%9SǙ4OAwD0>~pd7G!@/Y`4u$M239{P[ʤ/CE$XyNc ^He&HLB,+{"AfTڝ/74yX[fZNe%^-R3r{RV4D򴠵1׿P.}FjL_#v pߗFH]}3vSnaH/26zuõ>p@!+, f;ΦV(LͨרMQ<},V zU40Hl0J>&:bWZy^, l7̡U,Fwf'Zfq3?MzuXe|ȓ2]O%{fܹ)R i0TF%MW ]3=[m7AЃ6Cv4Yq@#@?},,G3>zIH%wllb=ź,7&ոx1ro 񃰳㙮"f1 +~r Q\pvӋu +d.dRh'ϭ&8 !Q?D8=6%A;5׿j\ HcШ\8^`B}d9u9 /։A/)^鼭sDбUY3Yw:;RpVq*d4Xūy)N@>$}]N ~t%;;s 8* pXi4 @1q]A'(`!ŎTP] eí +:Lg0뮤˴PSֲ0- Dh(kH>u:)b0ܟ9qQ)'Ι\KpXDaX3$)c89mlF}Sl)IO5y`ȽQ9 ^ `ӎ& xo)t2;1h%^V8TX7 Eۏq)Tɠ0c]{2XK[# +-Q*fAYcY3L:~ _>xSԞځwPy[pW. +!#;g\pF+ð^B~;AL껠 LMvJX-16XIZ`~'XۍYxPޓ,[{#o\ЙFIIzv3$FC#u^i !zjC|eۧߪf.Q9@5>K'״Y xzWۃW^gN),f caNO pOՆ-> tcpmSF;=}X9HJmcR30Ƈ5Nl,/} Nq٢ӝYO|zlgO8RonLp,uKdw^qd. y[i@ĀJ(nE/1

ꆞ'ܑI߷K(c c`4>APިq~ *, +~\' EYP4W Z$0){cq G.b*̷qWYbuo]4tPe\~0G=l6STD2<% ++IJn bS1Ha7 _ʫHVz^D/~iG[֪\JvDOk€Zbi/qJLH"SlF٥Ͷ%PWrbvl1~p>OwRHHS`(wQJؠ@Ժ]k|&5 3<B 01< } EJ6T 8 Cמ[z"VTn{ D %oXz1kP&?D#/4Z-8ng|1fƇ jږ(vf3[W+R\`9Ô1 Օ YBB q n+ %4@H @3kU +Bj4oEA~:ڊfC:ɡ +c%ݼ5PP,sYPa f)7Zkt@GbmVzѳẄqyQΣo!@N:],` )vx .$GqvuFi B2JǏ?P-~Ik9+ȰuFdj + bΉSrU1&HBJT.ls +/V7@$r=w뇣W_tZ5USq=ED(b<8i/w_{}t; I"9ABD L0:⳾8/!+YxTTPo&…d>%GtF+ے +;/`{Gv,sΥ.B̨zA;gj$rz]|= +!N`WЍx +8zt#Ε^ykG`TDRd׺^Ww0_օʜd%O'SF{j*rdZž]qkRk׊^%4rhk@Ghx^W2ڇĥqɊ֥~WZA>lPN{EiNJPxM}AIJ˴`tX?a02oYP $04vɻuA :V$+bJ(@ +Ty.qJd4$=@ptJ?^!k.k„tСl(?W3q%fm Y\[֠$pVȁ賊bjr~Zfc䆴 +Iƅp 0>$92@g2^ŀ4$1?ꁒ Q#Z'1«ʊ:+n_b5&s/Lڟ_&.Tȟ'YRgeWO}8t}|zfUuSsQU+',O+Q9xUo\oψ9x[d /Aoq?z>1K뻧Kf"ς)x]Ft'ۻ9>:&{D|i8~/zZ6E +M ^_ºQG5ޝѡ:o+b 1KH̏JE[/論6l-J,ܾSw\n:^W7+FGXuV'B=˅}!V4I@ֽbӁ>c?yǻ_g-'b0rp6:\Tq]VֱY^V;\M*e=XAljI>iX򾜾﹜i_N]Ѱ X:7Fgi{Ӳ)R0qZ~CѡBS/epE6XYypfE*nb#_\}eOYk߾P,!f1VbQU= x~t\5kq3<=:, -Nfa؈}#JX>TI' 0:2ygafuius0~:䐺ׁ?>-`˞[Z" OdX]M|~[3JﻖFwo=~:Ә:c|[Wh74n,.bWTK\Tq]L*e}ޝyjиmnK`fytgi bB4Xю*f1 /-MRGf2(uK!=խδ׳c6dy-q'Tw(apkaZkm~/zZ6E +&NO`z(P3:ԣWW?WL6LNI?~]IJ |H-6+Rqi)E\4sct|=e }Brk#?XcV ϏZcOQօ'I3k؞+=ҭ<+D%$ΓҞv. q'YYmzl/MC:=M>R;I0g|vp#Nfb.v2,.avOޝѓAZrU]!eٲ+&yI-9v8=iCVE7R&33lQ~JV͍2A:7~e647Ə.ϼ%!}GLJQoI +5TPQ*}qJ]P) 9zj$.>"9YBN- 4|Qɹ + ٻ>Qg_FUFF&N~cA۱ܬ"M>l'&u$g'Y郧(d#C`ؓUHg.)cޥQdX+})016^ xs蕖uĹПč !_vC?01%k׬5]n;ܕ)˃{ 0sYS +o?%4n΁ކaFC@` fLDHzp#-m-D;EdAG/.CtTT8l˹TE*}q> 0 g| endstream endobj 30 0 obj <>stream +HWnK/WJf,qѾYtq=dž~@~`}l}!H7ةtUs\r^6(@c% Gc%wc 0es-Aƽi a""+F{J| #4fj| +SQZlS#blRF1 R ~\dhU4E|cH ~#OV/|{6FT +CgCMK d+Ǭp<&kWd̓,YnEi\0Bq&UJ0%mxmuQω'"QOh3fg,(s>Nt>r= ':€],} Y/NV9H)UEĂlʤ$q4iJ5ۧ[XiQ]L /JU펱tn9 +V9;|پP3HlP ~E˵>r;2/0C[ki.x4fvG* o dbKFsl0Z_+g +A40<9%#EDw`P4 pj[~[~$Ttɧ%.jِ$p"uΣ*MW `)#) +CgCMK , d\-l6~L ;쯄כY\`#m(M V`70n?_Z(6LR-m3}6}N8*pƾ'HĈ X_\9*ljAw 2g[`%Q]hM,HLKO$Q}Z՟_E*:{G}0PߙJ_#hcr;ҭ$[sw<#  Ib '/{ֳ{!x+rHEdz²ЋQm \X|sF92<=';*$Ⱦ ^۬esE `S֨T4 +F*jG<;U:һr2?.HLr0H@r!v:$we/(b|Y*9 3 Ys$=weۿ=XhNOٙ8AK얓 vspc׆c&8G+CÉb4 l#D\pNJ(ΉsPJϥ35)5|i߼:1Xn:8@ +z wMdL4єY~ߵsa1TpN Z Uah틤)1 ^~qKvWG5pa, ݣb8u2|W|'׌뺱U7=6wo_pHCMn8ov:weskEO"\V1OaLϪfA[*eDҴ*x䑆Zqwq= ,i9tS(ePBwCz1-'YA0$/=CÉb%EBq UhWeZ,IMa6 h) \H?ǶmCjG<8euT[C~%4,lt/<#6ikSv.~eEO"\V1qLϪfA[*eDҴ*x䑆Zqwql@@`]/NF1A/cPtn9 +!m'y}=S˸W7$1~!6?BW5Z@pApvsVah6C3qkp]mp8 +@#B)z( M~4 Q@ v<6E L4VC|=IhIJ#˪73s5J^]Zd=a9|c[*+Qc=᭔ 1DƱ@ԸN;ڂDʩsoOLQv1ZޒI&vcNEX8q>pؑV%\U_\gs$˴F +p8s.dPfȹ°è \z/~LuߢSDg`A*>\T&C/jݓCZ]!;wQyIєd +_I ;;E)Q!n ъzQ[Df ej!p> endobj xref 0 32 0000000000 65535 f +0000000016 00000 n +0000000144 00000 n +0000046010 00000 n +0000000000 00000 f +0000047465 00000 n +0000307078 00000 n +0000046061 00000 n +0000046404 00000 n +0000047765 00000 n +0000047652 00000 n +0000046663 00000 n +0000046904 00000 n +0000046952 00000 n +0000047536 00000 n +0000047567 00000 n +0000047838 00000 n +0000048276 00000 n +0000049416 00000 n +0000081306 00000 n +0000097574 00000 n +0000112988 00000 n +0000129080 00000 n +0000140808 00000 n +0000159180 00000 n +0000181496 00000 n +0000208230 00000 n +0000235298 00000 n +0000262350 00000 n +0000289352 00000 n +0000303615 00000 n +0000307101 00000 n +trailer <<83C09487EB324375B97C0101A1C964BB>]>> startxref 307303 %%EOF \ No newline at end of file diff --git a/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu-01-kapitoly-chapters-en.tex b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu-01-kapitoly-chapters-en.tex new file mode 100644 index 0000000..f23ae48 --- /dev/null +++ b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu-01-kapitoly-chapters-en.tex @@ -0,0 +1,1280 @@ +% This file should be replaced with your file with an thesis content. +%========================================================================= +% Authors: Michal Bidlo, Bohuslav Křena, Jaroslav Dytrych, Petr Veigend and Adam Herout 2019 + +% For compilation piecewise (see projekt.tex), it is necessary to uncomment it and change +% \documentclass[../projekt.tex]{subfiles} +% \begin{document} + +\chapter{Introduction} + +This text serves as example content of this template and as a recap of the most important information from regulations, it also provides additional useful information, that you will need when you write a technical report for your academic work. Check out appendix \ref{jak} before you use this template as it contains vital information on how to use it. + +Even though some students only need to know and comply with the official formal requirements stated in regulations as well as typographical principles to write a good diploma thesis (bachelor's thesis is a diploma thesis too -- you get a diploma for it), it is never a~bad idea to familiarize yourself with some of the well-established procedures for writing a~technical text and make things easier for yourself. Some supervisors had prepared breakdowns of proven procedures that have lead to tens of successfully presented academic works. A~selection of the most interesting procedures available to the authors of this work at the time of writing can be found in chaptes below. If your supervisor has their own web page with recommended procedures, you can skip these chapters and follow their instructions instead. If that is not the case, you should read the respective chapters proir to consulting your supervisor about the structure and contents of your academic work. + +Diploma thesis is an extensive work and the technical report should reflect it. It is not easy for everyone to sit down and simply write it. You need to know where to begin and how to progress. One of many viable approaches is to start with keywords and abstract, this helps you establish what the most important part of your work is. More on that in~chapter~\ref{abstrakt}. + +Once the abstract is finished, you can start with the text of the technical report. The first thing you should do is create a structure for your work, that you'll later fill with text. Chapter \ref{struktura} provides basic information and hints on writing a technical text, that can help you avoid mistakes beginners make, create chapter titles and figure out what the approximate length of individual chapters should be. The chapter concludes with an approach that should make writing a thesis much easier. + +Diploma theses in the field of information technology have a specific structure. The introduction is followed by a chapter or chapters dealing with the summary of the current state. The next chapter should evaluate the current state and provide a solution, that will be implemented and tested. The conclusion should contain evaluated results and ideas for future development. Even though the chapter titles and their length may differ from other theses, you can always find chapters that correspond with this structure. Chapter \ref{kapitoly} deals with the contents of chapters that commonly occur in dimploma theses in the field of information technology. Most students will only use a subset of all the described chapters as not everything will be relevant for their thesis. The descriptions and hints provided help students with the inner structure and the contents of chapters as well as decide whether or they should even include given chapter. + +The final chapter of a thesis is always followed by a list of references. Citations that this list is comprised of and their respective links is the subject of chapter \ref{citace}. An inexperienced student may not perceive it that way, but the list of references is a vital part of a thesis. One of the important aspects of your reviewer's evaluation is how you work with literature. A single missing entry can lead to an F for your grade, disciplinary proceedings for plagiarism and ultimately to being expelled. There are other consequences to this as two czech ministers resigned over allegations of plagiarism in 2018. Be as thorough as possible in creating your list of references. + +When you're done with the text, it is necessary to figure out what the requirements for a thesis at BUT FIT are and work the kinks out. Formal requirements that are stated in~regulations and at faculty web pages can be found in chapter \ref{formality}. This chapter also contains information about the required length of different types of academic works and other helpful information. The chapter concludes with an overview of the most common mistakes that the reviewers have to deal with and that you should avoid. The review of the formal aspect of thesis is just another important part of the reviewer's assessment. + +Once you deal with the formal deficiencies, you can sumbit your thesis. Before you do so, go through the checklist in appendix \ref{checklist}. The submission of paper and electronic versions of a thesis is described in chapter \ref{odevzdani}. + +Chapter \ref{zaver} contains a summary of what you can learn by reading this text, and most importantly things to keep in mind before you submit your thesis. + +\chapter{Abstract} +\label{abstrakt} + +Ther should be a summary of work at most 10 lines long under the Abstract heading. Despite how short it is, a good abstract provides enough information to know what the problem is, what was the chosen solution as well as the results achieved. The purpose of abstract is to let the reader know whether or not they can find the answer to their question here. The rest of this chapter was taken from professor Herout's blog \cite{Herout}. +\bigskip + +\noindent First and foremost - abstract matters. Second - It's not that hard to write one. Without further ado, let's dive into it. + +\subsection*{What is the purpose of an abstract} +An abstract is used for \bf searching \rm purposes, together with the title of thesis and a list of keywords. These parts (perhaps except for the title) are not directly part of the text and it's not expected that anyone who will read your thesis actually reads them. The fact that they're reading your thesis means they're past the abstract stage. Abstract serves them well to decide \bf whether or not \rm they want to read your thesis. + +When someone looks for an answer to their problem, they give the librarian or a search engine (these days) keywords that directly relate to their problem. They then receive list of theses, that could possibly offer a solution based on the match between the keywords used and keywords in the theses. A good thesis title can help the person guess which texts could have a direct relation with their problem and can get them to read your thesis. + +This is where abstract is crucial. The reader reads abstracts of the theses and decides, whether or not they want to read them. It also informs the them that their filter based on a title alone is wrong. + +At this point, they don't have a PDF with full text or a printed version of the thesis available. Abstracts are \bf not \rm supposed to be in the text itself, but to be available on servers aggregating scientific texts. Therefore the first rule is: an abstract needs to work on it's own -- if it contains references to literature or text (``The efficiency of a method is summarized on page 51.''), it only makes a reader less interested in the author, won't read their work or cite them. + + +\subsection*{When and how to write an abstract} +It makes the sense to write an abstract when the writing is done -- as a summary and real annotation of the thesis. +I however like the opposite approach -- write an abstract in the beginning. Whenever I write a scientific article, I start with a long list of keywords that are related to eachother. It's a lot more than end up as the final keywords used for indexing. It help me understand where the article is headed at all times -- what should I talk about, what needs to be in the text, what does it deal with. As soon as I'm done with keywords, I form a title and an abstract. + +I consider the following four parts of an abstract especially useful -- Which problem does it solve? What solution does it offer? What are the results? What is the meaning of these results? Once all of this is clear, the text essentially writes itself. If this is unclear, how on earth can you form a coherent, meaningful sentence in the same text? + + +\subsection*{Recommended structure of the abstract} +An abstract of a scientific thesis can consist of four parts and be useful. Each individual part consists of two to three sentences, in some cases even a single sentence is enough. + +The term ``elevator pitch'' is often used in bussiness. It is not a coincidence that its structure is similar to the recommended structure of an abstract. Realistically, an abstract should contain anything the author would say about their scientific thesis if they had at most 2 minute and could not use slides, images or text. What should they talk about then? + +\paragraph{Part one -- What is the problem? What is the topic? What's the goal of the text?} +\begin{itemize} + \item{This thesis deals with.} + \item{The goal of this thesis is.} + \item{My aim was.} +\end{itemize} +There is no place for fairy tales specific to wrong scientific literature: ``Our five-year-plan of~work open new and bold goals for us'', ``With the evolution of computing technology and especially the display devices, it is more important than ever \ldots'' do not belong anywhere near a good text, especially an abstract. If you can express the purpose of your text in one sentence, do it and forget about everything else. Less is always more when it comes to the abstract. + +\paragraph{Part two -- How is the problem solved? Is the goal fulfilled?} +\begin{itemize} + \item{I solved the problem using this and that.} + \item{I used this method, this procedure and analysed this.} + \item{The work represents an algorithm that.} + \item{I used these tools to process data and evaluated results like this.} + \item{The principle of our algorithm is.} +\end{itemize} + +There is a new methodology in the nature of scientific text (= ``how to do something''), it needs to include a description. If the solution consists of three parts, it probably means that this part of an abstract will have three sentences, where each sentence is about a~different part of the solution. A good abstract should be honest and accurate in this section -- no ``revealing secrets'' in the text itself. Vague formulations of a solution principle in~an~abstract usually means that the authors can't write or don't have anything to write about -- neither one is good enough to waste your time. + +\paragraph{Part three -- What are the results? How good is the solution?} +\begin{itemize} + \item{It was 87,3\,\% successful.} + \item{We created a system that.} + \item{The solution offers these options.} + \item{As a result, we found out that.} +\end{itemize} + +Stating a specific number is not a bad habit in this part -- ``we made existing XY method five times faster''. If the contributon of your work cannot be summarized in two or three sentences, something is wrong and the entire text is probably not worth writing. + +\paragraph{Part four -- Well then? What does it bring to science and the reader?} +\begin{itemize} + \item{The contribution of this thesis is.} + \item{The primary discovery is.} + \item{The primary result is.} + \item{Based on the data it is possible to.} + \item{The results allow us to.} +\end{itemize} + +When writing scientific articles, I myself struggle with the similarity of third and fourth part. Both of them speak about the results and contribution of the text. The goal of the third part is to be specific and name achieved results whereas the goal of the fourth part is to interpret their meaning and significance. I guess it's fine if these two statements merge to an extent and both parts not only don't have their own paragraph, but they sometimes even intertwine with their common sentences. + +\paragraph{Part zero -- What is it about? Where are we?} +\begin{itemize} + \item{The context is this and this.} + \item{It deals with studies of this and that.} + \item{We build on these recent advances in our field.} +\end{itemize} + +Sometimes it is necessary to insert a short specification of context at the beginning of your abstract. It can be a great asset when it comes to obscure and esoteric field, that is off to the side of the main flow. Usually this part is not needed and sentences contained here are prime examples for pseudoscientific nonsense. It's not necessarily bad to forget that this part can even exist in an abstract. If an expert in the field shakes their head after reading an abstract: ``I have no idea what this is about.'' only then it makes sense to include this part to specify context. + + +\subsection*{Innovation is not ignorance} + +In this text I describe a general model of a general thesis. I would like to state that this is my opinion and taste and I'm interested in alternate opinions and tastes (I really am!). Every graduate (Mgr. and Bc.) feels that their thesis is special and extraordinary. Therefore they won't follow some scheme meant for common and average theses -- i.e. the others. I see good reasons to divert from the outlined scheme and recommend some students to divert from the scheme myself every year. Indeed, every thesis is unique and extraordinary. If they weren't, there would be no reason to write them, just copy them instead. Before you divert from the standard and canonical way of organizing scientific text, put some effort into learning, understanding and tackling it. The way of scientific work, structuring scientific text or citing sources can look rigid and clumsy, but for now it is the best way mankind could come up with. If you learn it, understand it's advantages and disadvantages and innovate it, it's great and you're welcome to do so. If you choose to ignore it, you'll most likely end up with a very poor innovation. + +\chapter{Drafting the basic thesis structure} +\label{struktura} + +This chapter contains a selection of useful hints and procedures useful for writing a dissertation (bachelor's thesis is technically a dissertation -- you receive a diploma for it) from experienced supervisors. First a number of general princples are listed, followed by a more detailed description of the advised procedure of drafting a thesis structure. + +Before you into it head first, ask your supervisor for any advices or if they have their own web page with hints and guidelines. Their area of expertise will probably coincide with that of your thesis and help you with the most appropriate structure that you should comply with. If the authors learn about a another collection of useful hints, you'll find it here in the future. + +This text deals with the general recommendations and thesis structure, that always has to be modified and thought of based on the specification \cite{Cernocky}. + + +\section{Useful hints for writing a technical text} + +The following instructions can also be found on faculty web pages\cite{fitWeb}. The overview of basic typography and the creation of documents using \LaTeX{} system can be found in Jiří Rybička's book\cite{Rybicka}. + +One of the evaluated parts of a potential engineer is quality of language and literacy. Your goal is to create a clear and comprehensive text. You should express yourself accurately, use the appropriate level of Czech or Slovak grammar (or English if need be) and comply with the generally accepted customs. Slang words and phrases are not allowed. If you are uncertain of the translation or transcription of foreign terms, use literature available in FIT library. + +The text should be a short path to understanding a problem, predict it's difficulties and preventing them. Good writing means perfect grammar, correct punctuation and use of appropriate words. You should strive for a good text, one that is not monotonous due to use of small selection of words, or overuse of some of your favorite words. If you use foreign words, it is expected that you know their exact meaning. Obviously, you need to use english words correctly as well. For example, there are certain rules when using the word {\it obvious}. Is {\it obvious} really obvious? And did you make sure, that the {\it obvious} is really valid? You should be careful about using the subject {\it it} with a passife voice too often. For example, you should never use the Czech {\it it has proved itself that...}, ever. + +It is advised to think the use of symbols for {\it labelling} through thoroughly. By this we mean a well thought out choice of abbreviations and symbols used for distinguishing types of parts, labelling program's main functions, naming control keys on keyboard, naming variables in math formulas etc. Apt and consistent labelling can help reader a lot. It is advised to provide a list of labelling at the beginning of text. Not just in labelling, consistency is important in references and in typesetting in general. + +There are numerous typographical principles that can be used to distinguish things. You can choose different styles for different purposes. As an example, keys can be placed in a rectangle, identifiers from source text can be written in {\tt typewriter font} etc. + +Whenever you state facts, you should also state their origin and your attitude to them. If you claim something, you always have to explicitly state, which part of it was proven, what will be proven in your text and what you took from literature (including it's source). You should never let the reader doubt whose idea they're presented with, your own or someone else's. + + +If you want to write a clear and comprehensive academic text, you need follow these rules: +\begin{itemize} +\item You must have something to say, +\item you must know, who you want to say it to, +\item you must thoroughly think through the contents, +\item you must write in a structured way +\end{itemize} + +\subsection*{You must have something to say} +The most important prerequisite of a good academic text is to have an idea. If the idea is significant enough, it will last, even if it is not formulated in the best way. However, if you want to articulate your idea as precisely as possible and save the reader's time, you must comply with certain principles discussed further below. + +\subsection*{You must know, who you want to say it to} +Another imporant prerequisite of a good academic text is the audience. If you write down notes for yourself, you usually write in a differently than when you write a scientific report, article, thesis, book or a letter. Depending on who the target audience is, you can decide the writing style, the amount of information and how detailed it is. + +\subsection*{You must thoroughly think through the contents} +You must thoroughly think through the contents of your thesis as well as the order in which you want to present the reader with your ideas. As soon as you know what you want to say and to whom, you need to create a structure. The ideal structure should be one that is logically accurate and psychologically digestible, where everything has it's place and it's individual parts fit into each other. All the conncetions between them are clear and it's apparently what belongs where. + +To achieve this goal, you must precisely structure the contents of your text. Decide what the main chapters and subchapters are going to be, as well as the connection between them. A diagram of such structure would be a tree-like graph, not a chain. When structuring the contents, it is important to ask yourself what you want to include as well as what you want to exclude. Too much detail could discourage the reader, and so could lack of detail. + +The result of this stage is an outline of the text consisting of the main ideas and all the details between connecting them to eachother. + +\subsection*{You must write in a structured way} + +You must write in a structured way and work the most comprehensible format simultaneously, good writing and perfect labelling included. If you have an idea, you know who your target audience is, you know your goal and outline of the text, then you're ready to start writing. When writing your initial draft, you should try to include all your ideas and opinions regarding the individual chapters and subchapters. You need to explain every single idea, describe and prove. The main idea should always be formulated in a main clause, rather than the dependant clause. + +You should approach the writing itself in a structured way too. As you're working on the structure of your thesis, you're creating a framework that you are gradually completing. You should use a DPT\footnote{Desktop publishing (DTP) - creating printed document on a computer.} program that offers a structured layout of text (pre-defined types of headings and text blocks). + +\subsection*{It will never be perfect} +Once you have written everything you thought about, you should take a day or two off, then read what you wrote again. Make last changes and move on. You should know that something will always remain unfinished, and that there is always a better way of explaining something, but every stage of the editing must come to an end. + +\section{Who is the target audience of a thesis} + +This subsection was taken from professor Herout's blog \cite{Herout}. + +\bigskip +\noindent \bf Write your thesis for a student, that will build on your work. \rm +\bigskip + +Imagine that another student will continue the work in your thesis, they're about as~smart as you are. You have four hours to show them your thesis, explain everything necessary for them to be able to continue your work. The student studies at the same school and knows about as much as an average student would, they're not an expert in the area of your thesis, but they're not stupid either. The student just found out that they'll continue your work, so they had no time to learn about the topic, just like you. + +It's best to start by telling the student what the goal of this thesis is and what the results should look like. + +Nobody in their right mind will spend an hour explaining things like this to the student: ``{\mbox{Interet} was invented by the american army in 1962, then www was invented in CERN in 1991, nowadays it is used for various purposes.''}(all of this on six pages with countless references and figures). +The student usually doesn't need countless pages of details regarding colorful modules to represent figures, history and details of Hough transformation, complete description of the ISO/OSI reference model layers or a set of pie graphs representing individual mobile platforms on the market over the last decade. +The student needs to be shown the valuable sources that helped you and wants a brief description of tools and algorithms that were a vital part of the solution: ``{You need XY tool that does this and that, especially it's PQ module, that is used then and then. The most useful information can be found in~this documentation.}'' + +Tell the student everything about what worked for you and what helped, but also make sure to tell them what seemed like a good idea, but ended up being useless. + +Try to provide just the right amount of detail. Explain an optimization method one line of code at a time, a module in one paragraph enriched with description of input and output data, and a reference to the respective library. + +Imagine this four hours long session with the student. +\begin{itemize} + \item{What do you think you would talk about in the beginning, how long did it take for the student to understand?} + \item{What are some things that should be mentioned?} + \item{What kind of figures would you draw during the session?} + \item{What would the student ask about, what is important but not clear?} + \item{What restrictions and unfinished things would you need to inform the student about to prevent them from falling into a trap?} + \item{How can the student continue? What is left unfinished and is worth trying? What could be improved?} + \item{What would you say in the very first and very last minute of the session?} +\end{itemize} + + +\section{Thesis structure -- Five chapters} + +This subsection was taken from the blog of professor Herout\cite{Herout} (partially inspired by a book from Jean-Luc Lebrun \cite{Lebrun2011}) and from a document on professor Zemčík's web page \cite{Zemcik}. +\bigskip + +Thesis is something that students work on for 2 semesters of their studies and then write a small book about it. The misconception is that this little book is the master's thesis. The book is in fact a technical report about the year long work and master's thesis represents the result of student's work. + +The year long work includes studies first and foremost: ``What already exists in the area of my thesis? How did the others do it?'' It is implied that a student tries to innovate and design some things: ``The problem has several solutions, I chose this approach, because it is the most efficient option for the given platform.'' +The researcher should implement and evaluate their designs to validate them: ``I used these tools for implementation, the entire system is split into these modules. The result is this fast, it is this effective and user reviews are such and such.'' + +The basic structure of master's thesis according to professor Herout is as follows: +\begin{enumerate} + \item{Introduction (1 page)} + \item{What had to be studied (including assessment of the current state; 40\,\%)} + \item{New ideas that this thesis explores (30\,\%)} + \item{Implementation and evaluation (30\,\%)} + \item{Conclusion (1 page)} +\end{enumerate} + +If the text has these 5 chapters, it is not a mistake, neither is if one of them is split in two parts -- more on that later. A big mistake is when any of the parts are missing, or when it's content differs from the rest. + +Names of chapters can vary from this structure, even though your thesis will have an introduction and a conclusion. The content of your thesis itself is what really matters and if it means you have to break the structure, then do so. + +Many supervisors agree with this basic structure, even though some of the recommend different chapter titles and for example assessment of the current state can be used in second chapter, and even in third chapter according to professor Zemčík: +\begin{enumerate} +\item Introduction (1--2 pages) +\item Summary of the current state (40--50\,\%) +\item Assesment of the current state and solution draft (3-5 pages) +\item Your own work (roughly 40\,\%) +\item Conclusion (at most 1 page) +\end{enumerate} + +Opinions of supervisors also differ in length depending on the specification of thesis, this can be seen for example in recommendations from assistant professor Beran \cite{Beran}: +\begin{enumerate} +\item Introduction (1 page) +\item Theory (1/3 of pages) +\item Solution draft (1/3 of pages) +\item Implementation, experiments and assessment (1/3 of pages) +\item Conclusion (1 page) +\end{enumerate} + +When it comes to practice-oriented theses, where the most important things are data and user interface, associate professor Černocký \cite{Cernocky} recommends the following: +\begin{enumerate} +\item Introduction (single digit of pages) +\item Theoretical part (roughly 10 pages) +\item Data (single digit of pages) +\item Breakdown of Your algorithm and testing (roughly 10 pages) +\item Draft and implementation (several pages) +\item User interface (several pages) +\item Testing (roughly 10 pages) +\item Conclusion (single digit of pages) +\end{enumerate} + +\section{Thesis -- comics edition} + +This subsection was taken from professor Herout's blog. \cite{Herout}. + +Thesis (including bachelor's) is a fairly complex work comprised of a large amount of letters. These letters follow a certain hierarchy, organised into chapters. The whole thing should follow a logical order -- reader should first learn one thing so that they can then learn and understand other things. It should contain figures, tables, formulas; these non-textual objects should fit in with the surrounding text and enrich it. Every single aspect of the specification of your thesis has to be explored, it has to be finished by a certain date, printed and bundled into a book. If you want your thesis to be good, you need to make it good. Whenever you bake a cake from ten ingredients and one of them is rotten, it doesn't matter how hard you try, the cake will not taste good. + +\subsection*{How should you approach everything?} + +Whenever we write an article (all the time lately), we create something called a ``Comics Edition'' in the early stage. We do it because I insist that we do it and because it helps us a lot. Perhaps it can help you with your thesis. + +First, make sure you know answers to the following questions: +\begin{itemize} + \item{How would you explain the principle of your solution in three to five short sentences?} + \item{What are the strenghts of your solution?} + \item{What arguments would you use to support the correctness of your solution?} + \item{If someone wanted to criticize your thesis -- what would they criticize it for?} + \item{What would your answer be?} + \item{What keywords should one use in a search engine to find your thesis in the search results?} +\end{itemize} + +If you are finished, let's get into it... + +\subsection*{Create THE document} + +I often see people write an ``initial'' version of a thesis somewhere in their notes. First of all, that's extra work and second it is entirely pointless. It's best to create a document where the fight begins and also ends. + +\subsection*{Chapter titles} + +Chapter titles are an important part of a comics edition, put them in your document. + +Put them in for the sake of formatting -- no provisional bullet point lists: ``I'll just do it later''. You need to see how the automatically generated content looks now, before it's too late to change everything. + +Put them in for the sake of wording. Chapter title says, what the chapter is about. Chapter titles represent a skeleton covered in flesh and skin of text and figures. + +Of all the words in your thesis, words in the titles are the \textbf most important ones\rm. Put some time and effort in your titles. + +\subsection*{Figures} + +Picture is worth a thousand words. I went through the last 8 articles that I helped write. They're 80 pages total and contain 87 figures and 17 tables, that's 1,3 of visual information per page (including pages containing references, title pages with abstracts etc). Many figures (about a half) are comprised of multiple subfigures, especially referenced figures. I~counted 221 of subfigures in the mentioned articles, that's an average of 3 visuals per page. This is what I imagine the role of figures in a scientific text should be. I think a~thesis with ``too many figures'' does not exist. + +You should think about what images you will use and where they'll be even in the early stage of comics edition. + +Figures don't have to be finished. We don't know what exactly the figure will represent just yet. We don't know what the caption will be. We only know that there will be a figure and that it will be comprised of multiple subfigures. It takes roughly a minute (we already have a vector format of a ``TODO Image'') and it shows us how the text will look. + +In some cases, we know what the images will look like on a conceptual level. Draw it on a paper or a blackboard, take a picture of it and insert it where the final figure will be (vector image made in Inkscape\footnote{\url{https://inkscape.org}} or generated using Gnuplot\footnote{\url{http://www.gnuplot.info/}}). + +As a side note: Picture is worth a thousand words. Stupid picture is woth a thousand stupid words. + +Just one more thing on the side when it comes to figures: If instead of vector images (schemes, graphs, drafts, diagrams, esentially everything except photos and screenshots) you use bitmap images and you use screenshots with a lossy compression (usually JPEG), don't expect a positive feedback or assessment. + +\subsection*{Quantity of text} + +Just like with figures we don't have yet, we insert even text that we don't have yet. + +LaTeX has a beautiful command \textbackslash Blindtext\footnote{Short tutorial: \url{https://texblog.org/2011/02/26/generating-dummy-textblindtext-with-latex-for-testing/}} just for that. If you don't want to use it or don't know how, use \url{http://lipsum.com}. It helps you estimate the length of your work, figure density in text and other characterstics. It takes roughly 5 minutes to create this sort of estimate. To make sure you don't get lost in your work-in-progress text, change it's color to grey (smart person creates a command to change the color of the text unanimously for the whole document). From experience, it's easy to get lost without colors -- what is finished, what isn't and what needs to be worked on. It is advised to spend a couple minutes getting a text coloring package to work. You can use command \verb|\todo| in this template, for example \todo{This needs to be finished}. + +The genesis of each chapter begins with 3-5 TODO pieces and some Lorem ipsum. Each TODO is then transformed into a larger number of TODOs of a smaller scale or into text, figure, other subchapters, and pretty much anything. TODOs come and go, but they always move you closer to the final product. + +\subsection*{How do you work with it} + +When you sit down and LaTeX is having a good day, it takes you an hour to write a thesis (bachelor's thesis included), with the right number of pages and a pretty good idea about where everything will be. It is slowly forming the result that is yet to come, after some more work. + +The document does not really grow in size anymore, but it transforms. There's a~big difference between sitting down in front of a blank page and ``write a thesis'' and transforming one TODO into a paragraph. The first one is difficult and sometimes you just can't make it work. The latter works: it has it's head and tail. At least you know what to do. + +Still, the thesis won't write itself, but it gets a lot easier and the final result is that much better. + + +\section{Chapter titles} + +To publish well does not mean to fill up as many pages with letters as possible. Scientist's achieve their renown when their work is useful enough to another scientist, that they end up citing them. Therefore it is important that one's article is well written: nobody will cite a thesis that is poorly written because it degrades them. + +Though poorly written article won't be cited because \bf nobody can find it\rm. Long before the internet SEO even existed, scientiests used all kinds of methods to make sure that other scientists working on their recherche will include others' materials that they read, make notes and finally -- cite in their work. + +There are a lot of articles in the world. Whenever a scientist searches for materials relevant to their work, they enter keywords (formerly on paper in library, nowadys electronically into a search engine) and they get a lot of results -- e.g. titles. First step to get someone to cite an article is to have a good title. Title so good that a scientist is interested in your article enough to actually read it and find out more. Title is the \bf first filter\rm. + + +The scientist then opens the articles that satisfy the requirements of first filter. That means they get to see the abstract of the article. Abstract is the \bf second filter \rm and quite important one. It's similar to getting to a second round of interview for your dream job. People tend to care at that point. + +If the scientist is interested in the title and the abstract, they download the entire PDF and scroll through quickly to get an idea: print it, or close the window and look for other articles? That is the \bf third filter \rm and it's similar to being among the last few dream job applicants. What are the scientist's interests in the third round? Visuals, i.e. figures, tables, formulas, and chapter titles. Does your article make it through the third filter? Will the scientist use your article? We'll talk about figures another time, this chapter is about titles after all. + +It can be slightly different when it comes to theses. Not every author wants people to read their thesis. We belive that there are people who wish for the opposite. Let's just work with the hypothesis that the author wants to write a good text, that mankind could find useful and worth reading. One that gets a decent grade. + + +\subsection*{Keywords -- half the success} + +One of the best advices to write an article (scientific text in general) I heard is not entirely intuitive and obvious. +\bf Write a list of key words, that one should enter in search engine to find your work as a relevant search result. \rm + +Let your fantasy roam free. Think about how your work can be utilized and concepts connected to it. Write down all the keywords, this will be a couple lines. Keyword can even be a phrase -- typically two or three words. + +Choose the important ones. This step needs some intuition and experience. I don't really know where you get those, but you can ask someone for help. By the time you write your thirtieth article, it'll be easy. + +\bf All the important keywords need to occur in the article title or in the title of chapters. \rm + +\subsection*{Title too general, title too specific} + +So what's up with the keywords? Titles are essentially pointers, ponting you in a certain direction: ``The thing you're looking for is here!'' For someone to appreciate your text, they need to not get lost in it. They need to know that the text offers answers to some of their quesitons. Titles can tell them this is the article they're looking for or to not waste time. + +If you're moving and you write ``stuff'' on all of your boxes, you have a truthful and formally correct labels, but you didn't really need to write anything. If they're too general, they're useless. + +Chapter titles that contain one or two words are usually the primary suspect of a title too general -- except for the conclusion, where chapter titles are canonical and I would avoid experimenting with them. If there are more single word chapter titles than the two mentioned, they're probably wrong. + +Chapter title that could be used in a different thesis of the same branch e.g. ``System implementation'', ``Image processing basics'', ``User interface principles'' is suspicious of being too general. Something like ``Fly movement monitoring system implementation'', ``Algorithms to detect objects and track thier trajectories'' or ``Principles of simple web systems user interfaces'' is much better. + +Chapter title that could be used on a completely different faculty is essentially always wrong -- way too general. Title such as ``Theory'' could be used at a university of agriculture, IT, law, university of milk and cheese. It is wrong. Title such as ``A study of existing solutions'' is wrong. ``Exploration of available technologies'' is wrong. + +I have never seen a title that is way too specific, and I don't believe anything like that even exists. It can be wrong -- not describe, what the chapter actually contains. And if it does, it's never too specific. + +I don't want to see five lines long titles. Vast majority of good specific titles will be on a single line and they'll contain roughly five words. Every now and then a title won't fit in a single line and there will be a good reason for it. Good titles -- specific enough and not too long -- are not easy to put together, and it requires thinking. Much like anything that should be worth something. + + +\subsection*{Abbreviations in titles} + +There is no place for abbreviations in titles, unless they're known worlwide (ČR, AIDS, IT). + +You can explain a term in chapter one and say that it will further be referred to with an abbreviation. This abbreviation can then be used in the text of chapter without any further explanation. However, you can't use the abbreviation in the title of chapter two, because a scientist reads chapter titles in third filter when they decide whether or not to even read chapter one. If the scientist gets the feeling that the text is weird, not clear and that they don't really know what it is about (in case of abbreviation in title), they close the article and don't open it again. + +Literature references and references to objects in articles (figures, titles, \ldots) do not belong in the title and I've never seen a case where they would be needed (and I've seen quite a few cases, where they occured). + + +\section{General advice from experienced supervisors} + +This subchapter contains a selection of hints from other experienced supervisors, whose students have successfully presented hundreds of academic works. They even took the time to write comprehensive articles containing their recommendations and posted them online. To read the full texts, you can visit their web pages, the links can be found in references \cite{Beran}, \cite{BeranPDF}, \cite{Cernocky}, \cite{Zemcik}. + +\subsection*{General advice from assistant professor Beran} + +This subsection was taken from assistant professor Beran's web pages \cite{Beran}, \cite{BeranPDF}. + +How to write/How not to write +\begin{itemize} + \item{use chapter numbers up to second level, leave titles of a lower level without a number and don't include them in the table of contents, the final thesis and it's content is much less cluttered} + \item{Logical structure -- each object -- whole thesis, each chapter, each subchapter has: introduction, treatise and conclusion: + \begin{itemize} + \item{introduction -- tells the readed what it is about, what are the contents, what can we find out, what the problem is and introduces the context} + \item{treatise -- deals with context, problem, details of a problem, solution, steps and the results} + \item{conclusion -- summary of the task, achieved results and their meaning, concludes the work} + \end{itemize} + } + \item{it's a scientific text, leave your emotions and opinions out of it} + \item{don't use ``WE'' did, wanted, etc. + \begin{itemize} + \item{use passive voice, ``tests were carried out'' rather than ``we carried out tests'' -- especially in the theoretical part, where thoughs taken from elsewere occur,} + \item{if you want to emphasize Your contribution, Your work, Your idea, etc. use ``I'' -- designed a solution, experients, realization} + \item{because WE (me-you, you-reader, you-world) didn't do anything, YOU did} + \item{(ignore the fact that you're using my idea, that is expected, it is your thesis on my topic)} + \end{itemize}} + \item{when you use figures/ideas/tables from elsewere, \bf cite the source \rm} + \item{each \bf title \rm (of a chapter or subchapter) should be followed by a paragraph of text that informs the reader about what they can find in the following section} + \item{don't underestimate introduction and conclusion} +\end{itemize} + + +\subsection*{General advice from associate professor Černocký} + +This subchapter was taken from associate professor Černocký's web pages \cite{Cernocky}. + +\begin{enumerate} + \item{Read a handful of good theses and try to understand what makes a good thesis. Your supervisor will gladly give you some examples.} + \item{\textbf{Czech/Slovak or English?} + \begin{itemize} + \item If your english level is decent and there's a chance that someone else outside of BUT FIT will read your thesis (part of international project, work for an~international company, SW description that you want to submit to GooglePlay etc.), I highly recommend you write everything in english. You can tell yourself that you'll translate it later, but there isn't really time for that. On the bright side, you don't have to worry about diacritics. + \item If you work on a thesis of a local significance and know, that your english isn't that great, I suggest you save yourself, your supervisor and the reviewer the trouble and write in czech or slovak. More information as well as common mistakes students make can be found in appendix \ref{anglicky} + \end{itemize} + } + \item{Don't worry about the number of pages! Don't write about nonsense, don't copy needless things from wikipedia -- this only makes your supervisor and the reviewer angry. If you follow the advised structure and write about what you have actually accomplished, the final product will be worth it.} + \item{Take your time -- you don't have to write the text of your thesis in it's final state, but keep some sort of README file to write down what you're working on, current results, what you read, what was it about, etc. I highly recommend you avoid the ``work first, write later'' approach -- in six months time, you won't know what you did and you'll have a hard time remembering or worse, you'll have to relive your past. Writing your thesis as you work helps you keep everything organized and structured.} + \item{Use a spell checker. Save your supervisor and the reviewer the trouble of correcting stupid errors (typos, etc). MS Word has a pretty good spell checker, linux has a~decent ispall/aspell/hunspell utility (called from popular text editors such as Emacs). Some spell checkers are useless, e.g. the one in PSPad ignores a lot of errors.} + \item{Give your supervisor a draft of your thesis -- in advance! -- one chapter at a time is probably the best approach or at least two weeks before you submit the final version (tables with results/conclusions don't have to be finished). Your supervisor will cross most of it out, you'll get mad at them, how dare they ruin your (nothing short of beautiful!) work. Once you cool off, you realize they're right, fix everything and the next version will be much better. If you instead opt to submitting a version that only you've read, it will severely affect the thesis review.} +\end{enumerate} + +\subsection*{General advice from professor Zemčík} +This section of text is taken from a document on professor Zemčík's web page \cite{Zemcik}. Generally known and respected principles are written in normal font, whereas text in italics contains \uv{extra} personal recommendations from the dean. + +Table of contents should not be longer than a single page and an entry should not be longer than one \uv{line}. The thesis should be split in subchapters equally (except for introduction and conclusion). This principle even has a higher priority than the \uv{Universal Decimal Classification} of a thesis\footnote{Decimal classification according to ČSN ISO 7144 and ČSN 01 6910 - for extracts, see \url{http://web.ftvs.cuni.cz/hendl/metodologie/doporuceniupravydizprace.pdf}}. When it comes to font, do not \uv{waste} font styles and typefaces. Less is most definitely more in this case. Other than basic font, headings, captions of images, tables and equations, you should use as little fonts as possible, e.g. use italics or bold font style only to highlight text (preferably not both at once) and an~appropriate \uv{monospace} font for snippets of source texts. It is important to comply with the pre-written thesis formal template, that can be found on the faculty web pages. + +\it As for introduction and conclusion, I highly recommend you don't split the in subchapters and keep them as concise blocks of text. The text above also suggests that it is appropriate to only use first level subchapters. If you ever feel the need to use more headings than an~average of one per page (take a moment to think about if it is really necessary), you can use a \uv{secondary} heading without a number that won't be included in the table of contents. When you're coming up with headings, consider the possibility that they might not be a good enough guide for the reader and if that's the case, you should probably change the headings. It's also a good idea to include a short text after each heading (i.e. chapter heading should be followed by \uv{2.~Work status} and rather than following up with \uv{4.1 Initial status}), include a short text and then continue. Another thing you should try to avoid is ending text with an image or equation. It is advised to conclude a chapter with a brief summary. + +Equations, images, charts, headings and others are significant typographical elements of a thesis. Their format, however, is for the most part \uv{strictly} set by the template, which means that you don't have to spend too much time with them. Nevertheless, a few things should be said about their integration in the thesis. First of all, make sure that these \uv{graphical} elements are well separeted from the text and that the result \uv{looks good}. Excuses like \uv{TeX did that} or \uv{Word did that} will be short-lived. As for images, make sure you use uniform style of inclusion in text and that the images are either aligned to center or (if they are not as wide as the page) aligned to the inner side of a page (with respect to the future binding, or strictly right side in case of a single-sided print). + +Note: If you aren't happy with what this chapter says about table of contents and you want to \uv{guide} the reader better, make an index -- it is a different typographical element and unlike the table of contents, you can use as many keywords as you want. It is, however, very time consuming and for that reason it's not something I'd recommend. +\rm + +The primary language of a thesis is either czech, or english. Thesis cannot be in slovak \uv{officially}, but a thesis written in slovak with czech title and type is tolerated. Please, don't take this as some czech chauvinism, it's a matter of laws and academic field accreditation. + +When writing a thesis, use exclusively standard language and avoid colloquialism, or slang (technical slang included). + +\it I highly recommend you pay extra attention to the following things, as they, unfortunately, are a common source of errors: +\begin{itemize} + \item{Try to avoid using first person singular (\uv{I/me}) as much as possible. The use of first person plural, despite the fact that it's commonly used in belles-lettres, needs to be emilimated completely. There are some exceptions though: + \begin{enumerate} + \item{You can use first person singular in introductio and conclusion of the thesis as means of stating your \uv{personal opinion} (e.g. \uv{Usually this method is used... , but I chose a different approach...}), it can also be used in the assessment of the current state, but never in summary of current state.} + \item{First person plural can be used in case you're highlighting a part of the thesis, that you did not do on your own, but in a group. Considering the fact that a~thesis should be primarily your work, you have to use it sparingly and it needs to be obvious, that at least 90\,\% of the thesis is your own work (e.g. \uv{I wrote the program myself, but I asked my peers to help me with testing and together we conducted experiment...}). Avoid questions like \uv{So you didn't work alone?}} + \item{An exception to both rules stated above are mathematical texts, where first person plural is used often (e.g. \uv{We have a cube of side...}), here's where you can use first person without any limitations.} + \item{Another possible exception are rhetorical questions, if you ever use them in your thesis. I recommend using first person singular or first person plural at most ten times in the thesis (except for case 3, don't limit youself there), there is no floor, but using it once or twice is fine.} + \end{enumerate}} + \item{English expressions shouldn't really be used in a thesis. Considering the fact that our academic field is full of them, my recommendation would be to state both versions of a technical term (czech and english) if it is a first appearance and put the version that you will no longer use in brackets with a comment if you want (e.g. \uv{... octree (oktálový strom, only the english version will be used going forward, because even experts in field are accustomed to it)...})} + \item{Abbreviations should be explain when they first appear in the text. Alternatively (better, but more time consuming method), you can create a list of abbreviations, where all the abbreviations are explained in detail.} + \item{Past/present/future tense should should be utilized as follows, generally speaking a~thesis describes facts (use present tense) combined with a description of your work (that already happened, therefore use past tense). When it comes to future plans for the thesis, you obviously use future tense. However, more than anything else, use your \uv{sense} and adjust the language, so that the thesis is easy to read.} +\end{itemize} +\rm + + +\chapter{Individual thesis chapters} +\label{kapitoly} + +In this chapter, We're going to talk about the meaning and recommended content of individual chapters a thesis. We have also included the recommendations from experienced supervisors. + +Structure of a thesis changes depending on it's aim, progress made over time and achieved results. It's likely that you won't put all the things mentioned in this chapter in your technical report or that you will add an extra chapter that is not mentioned here. It's never a bad idea to plan the structure of your text in advance and consult your supervisor about it. + +Individual chapters should be in a logical order. \bf Use references. \rm \it In function XYZ, we implement mathematical formula, that we have derived in section 3.2, equation~7. \rm If you reference things further in the work, describe what you're referencing in roughly two sentences. The reader should not get lost in your work, don't make them flip pages. \bf Each chapter should (within reason) make sense on it's own. \rm If some important terms, abbreviations or thoughts are integral to the whole thesis and appear time and time again, always explain them (as soon as you use them in a chapter). If the reader opens your work in the middle (for example chapter 4), they should not immediately drown in abbreviations and technical terms.\cite{rady} + +Unless specified otherwise, the rest of this chapter is taken from professor Zemčík's personal web pages \cite{Zemcik}, blogs of professor Herout \cite{Herout} and assistant professor Szöke \cite{rady}, and web pages of assistant professor Černocký \cite{Cernocky} and assistant professor Beran \cite{Beran}. + +\section{Table of contents} +\label{obsah} + +Long text -- such as a thesis -- comes with automatically created table of contents. It MUST fit a single page in a thesis. I can see how it could be difficult to fit table of contents in a~single page when it comes to a book seven hundred pages long, but not in a thesis. + +In a thesis, table of contant should only have first and second level headings, third level headings are not present as they are a bit too specific. Fourth level -- although it wouldn't be included in table of contents and only used in some chapters -- is just wrong in itself. + +If the chapter headings are good, just by looking at the table of contents (no further information, without reading the abstract) any reader that somewhat understands the field must be able to recognize what the thesis is about. They can gauge the goal of the thesis. They know what modules the solution consists of and what the purpose of each module is. +They can tell which and how many experiments were carried out during the research. They can also tell who the target reader of the thesis is -- who and what is it useful for. If they can't tell just by looking at the table of contents, the chapter headings are probably wrong and it's up to the author to fix that, or have a poorly written thesis. There is no third option. + + +\section{Introduction} +\label{uvod} + +The first chapter is titled Introduction. It's purpose is to provide broader context of a~problem and define structure of the thesis in the form of an eptiome. + +The length of an introduction should be roughly 1--2 pages of text. It is expected that the introduction is readable even by someone just ``passing by'', who is literate, lives in our time, on our earth and that's about it. They don't have to be an expert in the field. They should still be able to understand the introduction. It should be written in a way that makes it work as a standalone figure of literature and if anyone reads the it, they should understand what the thesis is about. It's also common that people only read the introduction. + +\subsection*{Advice on thesis introduction from professor Zemčík} +It is not appropriate to split introduction in subchaptes or include references in it -- it should be a figure of literature that is readable and ``feasible'', and it should be easy to read. When it comes to the inner structure of an introduction, it should be as follows: +\begin{itemize} + \item{Roughly 5 lines long general introduction for a topic, based on well known words without any scientific terminology if possible (example given ``computer, video'' yes, ``tree structure'' no),} + \item{short text explaining why the thesis is important in the given field, the importance for world and for us, what the relationship with studied field is and other important facts,} + \item{short text about the past advances in the field, about it's current state, and even about things to look forward to in the future,} + \item{you should write about ``why I am interested in this'' too, what lead you to choosing this topic and do you find interesting about it -- truthfully and honestly if possible,} + \item{it's also a pretty good idea to write about the goals of the thesis (in your own words, not word for word from the specification),} + \item{and finally, it is important to describe the structure of your thesis to make sure the reader knows where to look for things (example given ``the following chapter contains..., described in chapter ``xxx'', in chapter 3 ...'' etc.) --- don't forget that the introduction should be a manual to your thesis.} +\end{itemize} + +\begin{samepage} +\subsection*{Advice on thesis introduction from professor Herout} +It is not supposed to be ``an introduction to the problem'', but ``an introduction to a small book'' (technical report). After reading it, the reader should +\begin{enumerate} + \item{have a pretty good idea what the book is about,} + \item{look forward to reading it.} +\end{enumerate} +\end{samepage} + +\subsection*{Advice on thesis introduction from associate professor Černocký} + +Introduction is basically an ``extension of specification''. It contains: + +\begin{itemize} + \item{Why was it researched -- what is Your motivation?} + \item{Project background -- is it a part of a research project? describe. Any industrial cooperation? describe.} + \item{If a thesis is a collective effort, be clear about who is responsible for what} + \item{What are the specific things you would like to share (``claims'').} + \item{What can the reader read about and where. \texttt{\textbackslash subsection\{Table of contents\}} etc.} +\end{itemize} + +\subsection*{Advice on thesis introduction from assistant professor Beran} + +Introduction should be brief (1 page). It should contain: +\begin{itemize} + \item{Introduction to the problem (we're in the IT field, for example: image processing and not chip manufacturing),} + \item{goal of the thesis -- one clear goal of a thesis and steps leading to it (there is only one goal, but there are many steps to reaching it (e.g. function library, creating dataset))} + \item{a brief summary of the entire thesis (an overview of existing solutions, introduce a~draft of my solution based on the existing ones, testing, evaluation, ...).} +\end{itemize} + + +\section{Summary of the current state} +\label{stav} + +This should be about 40--50\,\% of the length of your thesis. The purpose of the part is to familiarize the reader with the current state of technological field that is the subject of your thesis and introduce the apparatus used in thesis (mathematical, electronic, IT etc.) to them. It's not expected that the summary of current state will contain everything directly related to the thesis, but it should contain all the necessary information to make sure that a reader who is at least somewhat familiar with the field of your thesis can understands it. This part should be split in chapters, especially if it is a ``multifield topic''. This part should also ``heavily'' reference literature. The length depends on the type of your thesis, if it's theoretical this part will be much longer than in a practice-oriented thesis. + +\subsection*{Advice on summary of the current state from professor Zemčík} + +It is appropriate to state at the beginning of this part what it contains and why, and that it is not ``encyclopedic dictionary'' of said field -- to make sure that reader doesn't get the impression that ``something is missing''. You should write the text in your own words, but you can essentially copy the cited literature. If you have to take a whole section of text longer than one sentence, it's necessary to distinguish it properly from the rest and cite the source. A thesis should only have as many of these as necessary and the maximum length of such text is (roughly) half a page. + +It is best that you don't express your opinions about the technical content in this part -- the current state needs to be described, but not evaluated. Essentially, if someone wrote something in literature, you can use it in this section. The reason for this is that if an expert in field reads the thesis, they should have the option to skip this part (they're an expert, I'm sure they're familiar with it) and not lose out on anything important in the thesis itself. It is advised to write this part as you make progress, while the literature is still in your brain -- so you don't have to read it again. + + +\subsection*{Advice on summary of the current state from professor Herout} + +Chapter describing what needed to be studied should take about 45\,\% of the thesis. + +I intentionally avoid the word ``theory'' that would fit this part of a thesis well. It's because the word theory has this magical property to trigger the urge to write purposeless text on various topics more or less relevant to the topic of a thesis, but also topics that are very distant. + +You should ask yourself ``Is this information necessary to understand what I designed and implemented?'' whenever you're about to write a paragraph. If the answer is no, don't bother. + +This part of the thesis text can often be comprised of two chapters. If you're developing a web-based accounting system, one chapter should be about accounting and the other one about safe web systems. Here's a typical example: lots and lots of IT solutions need to be studied as a field of work (where can the system help) and as a tool (process of developing such systems). + + +\subsection*{Advice on summary of the current state from assistant professor Szöke} + +This chapter (there can be more of them) is where you show that you understand the problem. You've studied the usual solutions to your problem, state why your solution is different from the others and why is it better. Theory is a great source of entries for the bibliography. Your grandmother does not need to fully understand this chapter, but it's a good idea to leave the mathematics for a second and summarize what your calculations and derivatives actually mean. It is especially useful should the reader lose themselves in the text, this will help them find their way back. + +\subsection*{Advice on summary of the current state from associate professor Černocký} + +Theoretical part should be about 10 pages long, perhaps a bit longer when it comes to more theoretical theses. You should only write about the theory necessary for your thesis. +\begin{itemize} + \item{Only describe what you actually need, we're not interested in contents of a script, book, wikipedia ...} + \item{If you use formulas, you need to provide an explanation for every single symbol and it needs to be clear what the purpose of each formula in your thesis is. Don't use formulas ``just to illustrate'' or ``to make it look more scientific'' or ``just to try it in LaTeX...''. } + \item{If a theoretical part is too complicated (for example HMM \& co.), don't write about all of it, write about the basics instead and cite a good source to ``pinpoint'' what is absolutely necessary for your thesis.} +\end{itemize} + + +\subsection*{Advice on summary of the current state from assistant professor Beran} + +Theoretical part should contain: +\begin{itemize} + \item{existing solutions from the perspective of your specification,} + \item{what already exists in the field of my thesis, what other solutions of my specification exist,} + \item{what existing tools and procedures could be used as a part of the solution,} + \item{any and all theory should be \bf emphasized \rm (state why it is important that the reader is familizarized with it and how it relates to the solution your thesis offers).} +\end{itemize} + +\section{Data} + +Data is the key feature of any project that deals with recognition and this chapter should not be missing. Recommended length is single digit of pages. Describe: +\begin{itemize} + \item{where did you get the data (producer, catalogue number, etc.),} + \item{technical description -- e.g. Fs, bit width, number of speakers, audio length, etc.,} + \item{dividing data in subsets -- training, development, testing, evaluation -- who did what (it's best to use existing subsets).} +\end{itemize} + +This chapter will probably not be a part of your thesis, unless you work on for example sound processing for real-time play. + +This chapter will be a part of theses, that work with data sets, that are processed daily on different workplaces and allow for comparison of results, or theses that were given data sets for testing purposes. + + +\section{Assessment of the current state and work plan (draft)} +\label{navrh} + +The main goal of this part is to write an evaluation of the current state and draft of your innovative solution. + +\subsection*{Advice on assessment of the current state and work plan from professor Zemčík} + +It is advised to include this part of thesis. It's length should be ``as long as you need it to be''. The purpose of this part is to set a goal of your thesis based on the assessment of the current state and create your own ``detailed specification'', alternatively set the expected parameters of a solution, but not the the actual solution. This part should contain: +\begin{itemize} + \item{Critical assessment of the current state (what is correct, what is wrong, what is not researched at all and possibly cost paramateres, availability of solution, necessary computing performance etc.),} + \item{draft, what should be researched and solved based on the knowledge of the current state and personal preferences, specification, requirements etc.,} + \item{given options even a specification of thesis, as in ``what should it do'', ``what should the parameters be'', ``what tools will be used'', ``how is it going to be evaluated'', ``how do you know that you were successful''.} +\end{itemize} +It is advised to write a truthful deliberation in this part, especially when it comes to ``draft'' so that the rest of the thesis is credible and to convince the reader that all necessary steps were taken, after reading this chapter and the rest of the text. + + +\subsection*{Advice on draft of a solution from professor Herout} + +This part should contain ideas that the thesis brings: +\begin{itemize} + \item{I decided to.} + \item{I devised.} + \item{I laid out.} + \item{I calculated.} + \item{I derived.} + \item{I simplified.} + \item{I improved.} + \item{I designed.} + \item{I found out.} + \item{I researched.} +\end{itemize} + +Sometimes it's difficult to separate new ideas and implementation. Programmer confuses ``designed'' with ``programmed''. +It's also easy to confuse ``I improved'' with ``The results are''. But seperating these chapters is correct. + +Theses in many non-IT fields are structured as research theses called ``scientific methods''. In our environemnt (lets assume engineer's decree IT study), theses don't follow this structure. Our theses (not entirely wrong in my opinion) are more similar to project documentation. It still is the correct way to separate hypothesis from a draft, how to validate them, and from their actual validation or assessment. + + +\subsection*{Advice on draft and description of your algorithm from associate professor Černocký} + +If the purpose of your thesis is ``science'', this part will probably be the longest one and it's advised to split it into multiple chapters -- for example \textbackslash chapter\{Basis\} \textbackslash chapter\{Innovation, ...\} \textbackslash chapter\{Results and discussion\}. On the other hand, if the purpose of your thesis is to try something existing/new, this chapter can be very brief. The length of this chapter should be roughly 10 pages and contain: +\begin{itemize} + \item{what specifically did you do with the theory described above -- block scheme, setting constants, technical simplification of complicated theory etc.,} + \item{draft -- can be a simple block scheme or a full object draft, but it should be clear that your SW has structure.} + \item{choice of OS, programming language and libraries. The point of thesis is not to write everything on your own, you can use any and all free and commercial programs, libraries, modules, etc -- essentially anything -- it's a standard engineer's decree thesis -- the goal is to \textbf{make it}, not to \textbf{write everything alone}. You do, however, need to describe everything in detail and cite sources, not plagiarize work of others!. Libraries have a good, accurate specification -- where from, which version, if it needed to be paid for, how much did it cost.} +\end{itemize} + +\subsection*{Advice on draft of a solution from assistant professor Beran} + +What it comes drafting a solution, it depends on the specification -- the following points are not general. The length of this part should be about a third of the pages. +\begin{itemize} + \item{Write from the perspective of a well paid expert on thoughts, that drafts a solution to problem, innovative solution, solution full of interesting thoughts.} + \item{The ``draft'' part can be perceived as a procedure/tutorial to a solution, this draft is then passed to a team of programmers and testers, that realise and test the draft.} + \item{If possible, it should be a general draft, without considering implementation on iOS or Android, Linux or Windows, MySQL or Postgres, HTML5 or Flash.} + \item{Detailed specification analysis, detailed specification and formulation of goal and it's parts.} + \item{Description of solution application, situations and problems that the project solves.} + \item{Work procedure or steps leading to the goal, split the whole project into parts.} + \item{Draft of the entire solution as well as it's parts, including references to theoretical part.} + \item{Analysis of the results over time (measuring, observing, testing).} + \item{Draft development and updates.} + \item{If you update the draft based on the results of tests -- include references to tests and their results.} +\end{itemize} + +\section{User interface} + +This chapter is only useful in some theses and it should only be a handful of pages long. In some theses, it just doesn't fit at all. If it's necessary, it should be included (even prior to a draft) and contain: \cite{Cernocky}: +\begin{itemize} + \item{UI concept -- what was the inspiration (existing programs, classic mechanical device...) -- write about it,} + \item{mockup -- if you made any hand drawings, don't hesitate to include them!} + \item{how did you choose the final version,} + \item{if a UI went through more development, for example you weren't quite happy with the first version and made changes based on user reviews, write about it!} +\end{itemize} + + +\section{Implementation} +\label{implementace} + +This part of a thesis should be about the work itself. It should contain information about ``what you actually did'' and it should be about 40\,\% of the entire thesis. It should be clear what the basis of the thesis is, how was it made, what tools were used and what results were achieved. + +\subsection*{Advice on describing your own work from professor Zemčík} + +When writing this part of thesis, it is necessary to avoid technical details that could distract the reader or even worse, bore them. Important things are concept of thesis, outlines of solution and what lead you to that solution. +Another important aspect of this part is that it must describe how the solution is used, while not being a manual. +Any and all technical details, that are not vital to understanding the thesis (and disrupt the ``flow of the text'') belong in the appendixes part and not the text itself. This mostly applies to long snippets of source code, instructions, tables of results etc. If you include snippets of your code in this part, keep them short and well distinguished from the text. A typical issue with this part is that it just isn't ``feasible'' for the reader due to a high number and depth of the solved details and the attempts to reflect how tough some thing were to deal with, in the text (usually in a way that emphasizes how much effort the author had to put in to finally overcome an obstacle), but the reader just doesn't care. On the other hand, images, photos or even screenshots are welcome. This part can be split in multiple chapters or it can exist as a whole. It is advised to split this part in multiple chapters if the realisation consists of vastly different parts (e.g. server programmed in C++ and a client in HTML etc.). The outline heavily depends on the individual in this case, although the basics can still be identified and should be in an order specified below. +\bigskip + +\begin{samepage} +\noindent Typical outline: +\begin{itemize} + \item{What is the basic concept of the work,} + \item{How does it work as a whole (and what is it good for), description of the functionality of individual parts of the solution (there's no need to emphasize everything equally -- some things are more important than others, the ``routine'' can be reduced to a~minimum),} + \item{How do you use it including a good example, ``case study'' approach, ``screenshots'', procedures (instructions are not desired).} +\end{itemize} +\end{samepage} + + +\subsection*{Advice on implementation from assistant professor Szöke} +This chapter (there can be more of them) is where you describe your problem from implementation perspective. Which development environment have you chosen, which libraries, class design, communication design, protocol etc. Don't bother with the details. Instead of explaining how a button is implemented, explain how you have implemented artificial intelligence, communication or an interesting function, that's what the reader is interested in. \bf There has to be a clear reason for every single decision you've made. \rm Again, your grandmother does not need to fully understand this chapter, but it's good to have multiple levels. Someone who is not completely lost in IT should understand what and why you have implemented, experienced programmer should understand even the details (how exactly have you implemented it). + +\subsection*{Advice on implementation from associate professor Černocký} + +If the goal of your thesis is to create a ``production'' SW, describe it here. This part should contain: +\begin{itemize} + \item{implementation comments -- for example list of classes and what they represent, you don't have to describe minor things in detail (command line parameters), focus on the key functionality. Don't include full source codes here, those belong to the CD appendix. If a snippet of your code is vital here, you should include it and explain it's importance,} + \item{if your program is supposed to communicate with the outside world in real time, write about the time sync, conflicts and how you deal with them. It's not expected that you make a 100\,\% ``foolproof'' SW, but you should know about the commonly occuring issues,} + \item{if you implemented something in Matlab for example, write about it,} + \item{what were the results -- preferably comparison with existing results from someone else,} + \item{if the goal was to build on something preexisting and explore new options, here's the place to write about it in detail.} +\end{itemize} + +\subsection*{Advice on implementation from assistant professor Beran} + +This chapter should be separated from testing, especially if the nature of the thesis is implementation heavy. The recommended length is about a third of the thesis. + +Write from the perspective of a poorly paid programmer, that got specification of a~prototype (your draft) and they're supposed to implement it. The chapter should contain: +\begin{itemize} + \item{target platform and technology specifications,} + \item{tools used for implementation of the solution prototype.} +\end{itemize} + + +\section{Testing} +\label{testovani} + +This text should provide a clear picture of how the functionality of the software was verified. Through mathematical or experimental means, or a study conducted on users etc. What were the results of verification? The length should be roughly 10 pages. + +This part can have a single or multiple chapters. It's advised to split this part into multiple chapters if an extensive testing and evaluation was conducted. The outline depends heavily on the individual, but the basics can still be identified \cite{Zemcik}: +\begin{itemize} + \item{Methods and results of verification, that can contain mathematical proofs, testing procedures, testing procedudes involving humans,} + \item{interpretation of results and possible application in practice (TODO things included).} +\end{itemize} + +\subsection*{Advice on testing from associate professor Černocký} + +This chapter chapter can be wildly different -- only use things that are useful \cite{Cernocky}. +\begin{itemize} + \item{Offline data testing -- same or better results as the published ones? If not, why? Worse results don't necessarily mean that the thesis is wrong (access to less data, worse algorithm developed over the course of one semester, etc.), but you should know why.} + \item{Offline data testing -- are results from implementation in C/C++ and from the original Matlab algorithm the same?} + \item{How demanding is it when it comes to HW? -- CPU, memory, parallel behaviour, behaviour when using GP-GPU, etc.} +\end{itemize} + +\subsection*{Advice on experimentation from assistant professor Beran} +This chapter contains experiments and evaluation -- if the nature of thesis is not implementation heavy, it can be included in the implementation chapter. + +Write from the perspective of a poorly paid tester, that got prototype specification (your draft) and it's implementation and they have to test it. This chapter should contain: +\begin{itemize} + \item{specifications on the platform used,} + \item{experimental data used for the prototype -- description of data, source, conditions under which the data were obtained, what are the data like,} + \item{data annotation -- annotation format, source and usage,} + \item{description of measurements, description of experiments/tests and their conditions,} + \item{measured data,} + \item{results -- discussion and interpretation of measured data.} +\end{itemize} + +\subsection*{User testing} + +Again, only relevant at times, but in some cases it is vital \cite{Cernocky}. +\begin{itemize} + \item{Testing subject selection process (naive, experienced).} + \item{``Testing protocol'' -- what did they actually test, what did you ask them -- questions, evaluation, \ldots} + \item{Testing results -- answers subject by subject and summary.} + \item{Conclusions -- Were the users satisfied? What were/weren't they satisfied with? Is it good? Is it bad? Can it be improved? Did you make any improvements during your thesis or is it a matter of future?} +\end{itemize} + + +\subsection*{Advice on experimentation and testing from assistant professor Szöke} +In this chapter, your results should be subjected to extensive testing. Not just you, let independent users test your solution. The most important thing is to collect all the feedback and formulate a relevant conclusion. For example improve GUI, make some sections of code faster or choose a completely different approach. If you have enough time, you can even try an addition iteration and work on the biggest shortcomings of your work. + + +\section{Conclusion} +\label{zaverPrace} + +The final chapter -- Conclusion contains evaluation of achieved results with extra emphasis on student's contribution. A mandatory part of conclusion is also evaluation from the perspective of further advancement of the project. Student states ideas and suggestions based on experience with the project and also states how it relates to other finished projects (other bachelor's theses that year or projects at external workplaces). + +The conclusion of a thesis should contain facts summarizing the thesis and give the reader (even without reading other parts of the thesis) information about what the subject of this thesis was and it's success. The conclusion should contain your personal opinions and impressions, and even better a summary of options going forward. Conclusion should be at most one page of text long. Don't include references to thesis text or literature in the conclusion. + +Make sure there are no new breakthroughs, new numbers or a new chart in the conclusion. + +\subsection*{Advice on conclusion from professor Zemčík} + +I highly recommend the following outline: +\begin{itemize} + \item{Brief summary of the conclusion (for example ``The goal of this thesis was \ldots''.),} + \item{Stating that the goal was achieved (preferably without self-criticism, save it for the reviewer),} + \item{Summary of all satisfied requirements of the formal specification of your thesis, either directly as a ``reaction to the specification'' or ``hidden reaction''; either way, state one sentence summarizing the answer to the question ``How did you meet the requirement X of specification?'',} + \item{Healthy balance of qualitative and quantitative summary of the thesis, e.g 3--5 most notable information (numbers, data, etc.) about the thesis (recommended length is 5--10 lines),} + \item{your observations (``I learned \ldots''),} + \item{What are your future plans, preferably split in parts ``I would like to continue my work and \ldots'' and ``My work could be expanded on \ldots'' -- different parts based on what you would like to try and what could be done, but you won't be the one to do it.} +\end{itemize} + +Please, keep in mind that that conclusion is a part of thesis, that people will read the most. If anyone reads your thesis in the future, they'll only read introduction, conclusion, or introduction and then conclusion, introduction, description of the work and conclusion, but it is very rare that people read the whole thesis. Each of the possibilities mentioned should be ``feasible'' for the reader. + + +\subsection*{Advice on conclusion from professor Herout} +The functionality of a conclusion: + +\begin{itemize} + \item{Author looks back at their work: ``The main accomplishments are. The important results are. I managed to.''} + \item{Author states ideas they did not have time to realise as a way to continue their work: ``There are things that can still be done. If I knew then what I know now, I would.''} + \item{Author summarizes steps taken to satisfying the requirements of specification.} +\end{itemize} + +\begin{samepage} +\noindent Two things. +\begin{itemize} + \item{First: ``Discussing ways to continue your work'' sounds easy and safe. I would not take this brief statement lightly. Things like ``It would be a good idea to increase the speed and precision'' show, that the author does not really bother thinking about their work and that they don't really have any ideas. Other ``ways to continue your work'' can leave the reviewer thinking that you should have done it to meet the requirements of the specification, which means worse evaluation results.} + \item{Second: Conclusion is the very last thing the reviewer reads just a few moments before they start writing their evaluation. Therefore the conclusion should put them in the right mood to write the best evaluation possible. It's a good idea to leave impression such as ``I'm a good student, that met any and all requirements of the specification and did a good job.'' There's a thin line between that and ``I'm a bad student, that can't think and program, so I have to scream that I'm the best out loud.''} +\end{itemize} +\end{samepage} + +\subsection*{Advice on conclusion from associate professor Černocký} + +The conclusion contains: +\begin{itemize} + \item{Summary of work -- I did this and this, this didn't work, this worked, i didn't have time to finish this because \ldots} + \item{Future work + \begin{itemize} + \item{\uv{short term} -- things that you are certain you could do alone or with the help of 1--2 people within a couple weeks -- months and that it would help.} + \item{\uv{long term} -- this is entirely a thing of your imagination.} + \end{itemize}} +\end{itemize} + +\subsection*{Advice on conclusion from assistant professor Beran} +Conclusion should only be one page long and contain: + \begin{itemize} + \item{what was the goal of the thesis,} + \item{what steps did you take to get to your solution (see ``brief content of the thesis'' in introduction),} + \item{what did you manage to create,} + \item{evaluation of the solution based on results,} + \item{other possible solutions, future possiblities,} + \item{I do not recommend selfevaluation and things like ``I chose a specification, learned to program and achieved the goals of thesis''.} + \end{itemize} + +\section{Appendices} + +This section should contain descriptive parts of the thesis (e.g. user manual, snippets of source code, detailed schemes, descriptions of designed solutions etc). All appendices need to be numbered. If there are more appendices, there needs to be a list of them at the end of the thesis. \cite{fitWeb} + +There is no limit to number of appendices pages. However, it is necessary to keep it purposeful, concise and consider the signifficance of an appendix for the review of the thesis and for follow-up theses in the future. Needlesly large volume of appendices (i.e. not well justified) can negatively affect the assessment from at least environmental and economic perspective. \cite{fitWeb} + +Appendices are the right place to include instructions, detailed descriptions of designed protocols and formats, tables, most images and other elements that would disrupt the ``flow of the text'' of thesis. The length of appendices does not count towards the length of the entire thesis. The number of pages should not be too high -- it is important that all the appendices in paper form serve their purpose. + + +\subsection*{Advice on appendices from associate professor Černocký} + +\paragraph{Appendix one -- The cookbook} + +Instructions for those who would like to redo your work, less than 10 pages +\begin{itemize} + \item{What needs to be downloaded, compiled, how to ``hack the OS'' to make everything run smoothly \ldots} + \item{directories, scripts, launch order, where to look for the results,} + \item{etc.} +\end{itemize} + +\paragraph{Other appendices} + +Anything that would disrupt the flow of the text of thesis -- a perfect example is a two pages long derivation of something, three pages long table of specifications, etc. \ldots + +The included data medium should contain: +\begin{itemize} + \item{All the source codes -- Matlab, C, LaTeX, etc.,} + \item{All the parameters of a model -- HMM, neural network, transformation, basically everything,} + \item{Everything necessary to be able to launch your software -- external libraries, modules, etc.,} + \item{All the data -- unless they're under some sort of license,} + \item{Detailed results -- table summarizing the results belongs in a thesis, but you can include multiple MB of automatically generated tables in the appendices} +\end{itemize} + +\subsection*{Advice on appendices from assistant professor Beran} + +Assistant professor Beran recommends you include: +\begin{itemize} + \item{all used libraries, source codes and build instructions,} + \item{Your application (including binaries), ie. solution executable directly from the CD,} + \item{Video -- a decent presentation of your software, you can even include a clip of a~working final version of your software,} +\end{itemize} + +\subsection*{Poster} +\begin{itemize} + \item{Burn it to CD and print it too (pdf is probably your best bet),} + \item{A2 papersize,} + \item{print it in the library or have it printed by a commercial printing company,} + \item{A healthy balance of the contents: + \begin{itemize} + \item{preferably eye-catching and clear format (what is it, what can it do, what is it good for, why is it good),} + \item{a bit of technical description (procedures and methods used).} + \end{itemize}} + \item{A poster should have:} + \begin{itemize} + \item{student's first and last name} + \item{student's email} + \item{supervisor's first and last name} + \item{academic year} + \end{itemize} +\end{itemize} + +\chapter{Rules for bibliographic citations} +\label{citace} + +These rules were taken from the faculty web pages \cite{citace}. + +\section{Definitions} + +\begin{itemize} + \item{\bf Bibliographic citation \rm is a summary of details on the work cited, or its part, allowing for its identification and search.} + \item{\bf Reference to a bibliographic citation \rm is an in-text reference to a bibliographic citation in a different part of the work.} +\end{itemize} + +\section{Using works of others} + +When using works of other authors, it is necessary to properly differentiate them from your own text. Otherwise you present the text as your own, which is an unacceptable violation, especially when it comes to theses and dissertations. There are two ways to incorporate works of other authors into one's own: + +\begin{itemize} + \item{\bf Quotation \rm -- the text used matches the source document word for word. Short quotations are enclosed within double quotation marks, long ones in an indented free-standing paragraph. +The quotes are also often typed in italics.} + \item{\bf Paraphrasing the original text \rm -- the author of the presented work puts the original text into his/her own words, while maintaining the meaning of the original statement. Paraphrases are typed in the same typeface as the rest of the text. In order to distinguish which part of the text is borrowed and which is your own, you must use other means (for example, by a reference to a citation at the end of the sentence or paragraph the author indicates that the sentence or paragraph was cited or paraphrased; when the paraphrase is more extensive, you can specify that at the beginning of a~subchapter, for example: ``This subchapter has been adopted from [1]''.)} +\end{itemize} + +Quotations are suitable for definitions, parts of laws, regulations or rules, or to discuss the opinions of other authors. Quotations are therefore not that frequent in technical texts. If there are no valid reasons for a quotation, use a paraphrase. Also, think about the scope of the quotation. Too many and too long quotations indicate that the thesis is of poor quality (usually finished in the last minute, and the quotations only serve to reach the minimum length required). + +\section{Basic principles of citation} + +Bibliographic citations are provided to make it clear to the reader what works the author used as a basis for his/her own, to familiarise the reader with a wider context (for example, +so that a reader less knowledgeable than the author's target audience could find more on what the author did not explain in his/her work) and also to comply with the terms of the +Copyright Act (see Section 31). When citing, the following rules must be followed: + +\begin{itemize} + \item{\bf Cite all the sources you have used! \rm If you fail to cite any of the sources, you are presenting someone else's work as your own! Make notes of all the sources you have found since the very beginning of your work on the project. It is more difficult to look up all the sources once you are done.} + \item{\bf Cite only the works that you actually used! \rm Readers who actually know the works cited (or look them up) will soon realise that even though you use them as reference, you do not really know them.} + \item{\bf Only cite primary sources! \rm Only cite the works that you actually worked with \texttt{physically} (or on a screen). Otherwise you risk using a quotation with mistakes.} + \item{\bf Cite precisely! \rm You will make it easier for the readers to find the original source avoid the suspicion that you intend to make the identification of the source difficult or impossible by providing an incomplete citation, so that the readers cannot check the scope of the quoted text.} +\end{itemize} + +When writing your text, pay special attention to these citation principles, as their violation means, for apparent reasons, far more serious consequences for the overall assessment than non-compliance with the formal requirements for bibliographic citations. + +\section{Citation standards} + +The standards for creating bibliographic citations and their reference in professional publications are governed by ČSN ISO 690: Information and documents -- Rules of bibliographical references and citations of +information sources of 2011. The standards are available at the FIT Library. There is a citation generating tool based on these standards, available at \url{http://www.citace.com/} (in Czech, but simple to use -- write ISBN, DOI or name and search it). and you can find a brief summary of the standards with citation examples +on the same website \cite{biblio}. + +Although the standards allow to place citations in professional publications in different ways (at the end of the text, at the end of the individual chapters, directly in the text, in the footnote, partly in the text and partly in the footnote), it is required for theses and dissertations at FIT BUT that the list of works cited is provided at the end of the work. + +The reference to the citation is in the form of a serial number, under which the citation is listed in the Works Cited section at the end of the work. The serial number is stated in the text in square brackets. + +\noindent Example: \textit{The SMTP protocol is specified in RFC 5321 [1].} + +Citations are in alphabetical order. Ordering of names containing letters with diacritics can be changed using the \texttt{key} element, the value of which can be set to a last name without diacritics. If a record does not have the author element, the citation is ordered to the beginning of the list, which is not ideal. In this case, we can change the ordering by setting the key element to a desirable value. + +\textbf{Example:} +\begin{verbatim} + @Article{Cech:2020:Citace, + author = "Čech, Jan", + key = "Cech", + ... +\end{verbatim} + +If you quote the same publication several times in a row, you can use the +term \uv{Ibid.} instead of repeating the entire reference, supplemented +by a page number. + +Examples of citations are in appendix \ref{priloha-priklady-citaci}. + +\section{Using electronic sources} + +Finding high-quality sources to use as a basis for your work is essential. The quality of a~classic printed work may be recognised quite easily. When working with electronic sources, examine their credibility and quality thoroughly. Always verify who the author of the material is, and evaluate the depth of the information provided (a number of electronic sources presents merely superficial and incomplete information, and therefore the authors copy eachother's mistakes) critically. +Even if you find high-quality electronic sources, do not rely solely on those, and try to find a printed work as well. + +Whenever you cite electronic sources, always state when the information was found and used as the entire website may not be available several days later. When using BibTex, this can be achieved by adding the following key: (\verb|cited = "yyyy-mm-dd"|). You can use the \verb|@website| (entire domain) or \verb|@webpage| (a single page within the domain) record types to cite electronic sources. If you cite a magazine article or a paper from a conference, do not cite them as electronic sources and use \verb|@article| instead. + +\section{Evergreen: citing web vs. paper} + +Yes, everything is on the web these days. Thank god. + +Web however does not have an archive. It changes every minute. If the references to literature are all URLs, this part of is somewhat alive, ungraspable, fluid -- links refer to an environment, that changes every second. This part of thesis should ideally be rigid, constant -- only references to paper version of literature. + +It's easy to cite a web source, when it comes to a downloaded .pdf file of a magazine or conference article. Don't do it in your thesis. +\bigskip + +\noindent Don't include this in the list of referrenced literature + +\noindent \it BAY, H., ESS, A., TUYTELAARS, T. and GOOL, L. V.: Speeded-Up Robust Features (SURF) [online]. 2006, updated 2008 [cit. 2010-07-13]. Retrieved from: \url{https://www.vision.ee.ethz.ch/en/publications/papers/articles/eth_biwi_00517.pdf} +\bigskip +\rm + +\noindent when you can use this instead + +\noindent \it BAY, H., ESS, A., TUYTELAARS, T., GOOL, L. V.: \uv{SURF: Speeded Up Robust Features}, Computer Vision and Image Understanding (CVIU), Vol. 110, No. 3, pp. 346–359, 2008. +\bigskip +\rm + +There's a chance that the web no longer works in a month, whereas a~conference proceedings can be found retroactively until at least the end of this civilization. + + +\section{Typesetting of citations} + +The template for BUT FIT theses and dissertations uses the BibTeX system to typeset citations. + +The following text is taken from ČSN ISO 690 standard and condensed. Individual parts of a citation are separatedy by the dot symbol ``.''. +Each item in the cited document should be stated as it appears in the original cited document. The usual order of items in a bibliographic citation is as follows: + +\begin{enumerate} + \item \textbf{name(s) of the author(s)/creator, if they are available(s)} + \begin{itemize} + \item Persons or institutions responsible for creation of the contents should be stated as authors. + \item First names and other parts of names should follow after the last name, e.g. \texttt{GORDON, D}. + \item If a cited source has multiple authors, list them (using the ``and'' separator), and if there are more than three authors, we do not list all of them and use ``et al.'' (names followed by ``and others'') instead. + \end{itemize} + \item \textbf{title} + \begin{itemize} + \item Title is typed in \textit{italics}. A title too long can be cut short and missing words replaced with \ldots{} (three dots). + \end{itemize} + \item \textbf{type of medium} + \begin{itemize} + \item A type of medium is a medium, where the cited material is available (e.g. [DVD]) as well as the form in which it is available (e.g. [Braille]). This information is stated in square brackets. [online] is used for online materials. + \end{itemize} + \item \textbf{edition} + \begin{itemize} + \item Edition should be stated with symbols, e.g. ``2nd ed., (re-edition)''. If it is an updated version, it should be apparent from the citation, which version was used. + \end{itemize} + \item \textbf{place of publication, publisher, date of publication} + \begin{itemize} + \item If the place of publication is not stated in the cited document, but is known, we state it in square brackets. + \item A publisher should be a person or organisation that is the most emphasized in the cited document. + \item Date of publication should always be stated. A year is sufficient for paper publications, however it is necessary to also state a month and a day for electronic sources. + \end{itemize} + \item \textbf{numbering within a unit, page or page range} + \begin{itemize} + \item Citation should idenfity the specific part of a cited document, that is used for citation. + \end{itemize} + \item \textbf{title and volume in series, if they are available} + \item \textbf{standard identifiers} + \begin{itemize} + \item If a cited document has an international standard number (ISBN, ISSN, \ldots) or DOI, that serves as the unique identifier, it must be stated. + \end{itemize} + \item \textbf{dostupnost, přístup nebo umístění informací} + \begin{itemize} + \item The location of source should always be stated for electronic sources. Stated as: ``Available at:'' followed by URI or URL. + \end{itemize} + \item \textbf{additional general information} +\end{enumerate} + +\chapter{Formal aspect of a thesis} +\label{formality} + +The formal requirements for writing a bachelor's or diploma thesis are based on rector's directive no. 72/2017 \cite{smernice} and FIT guideline no. 7/2018 \cite{smerniceFIT}. Formal aspect of a thesis is an important part of reveiwer's assessment and should be given some attention (it is necessary to familiarize yourself with the mentioned directives). Other instructions and recommendations are listed on faculty web pages \cite{formalniBP}, \cite{formalniDP}. + +Required length of the thesis text without appendices is shown in table \ref{rozsah}: + +\begin{table}[hbt] +\centering +\caption{Required thesis text length in standard pages} +\label{rozsah} +\begin{tabular}{|l|c|l|l|} +\hline + & Minimal length & Usual length & Length should \\ + & & & not exceed \\ \hline +Bachelor's thesis (9 cr.) & 30 & 40--50 & 60 \\ \hline +Bachelor's thesis (13 cr.) & 40 & 60--80 & 100 \\ \hline +Semester project (SEP) & 20 & 30--40 & 50 \\ \hline +Dissertation & 50 & 80--100 & 120 \\ \hline +\end{tabular} +\end{table} + +The length of typeset pages will be roughly 1/2 of the extend in standard pages. The term {\it standard page} applies to evaluating the volume of a thesis, not the number of printed sheets of paper. From a historical standpoint it's approximately the number of pages of handwriting, that used to be typed on a typewriter to pre-printed forms at the usual line length of 60 symbols and 30 lines per page. Considering the need for proofreading marks, the line spacing value used to be 2 (every second line). This data (number of symbols per line, number of lines and the spacing between them) are in no way related to the final printed product. Their only use is to assess the length. \textbf{Therefore, one standard page means $\mathbf{60\cdot 30 = 1800}$ symbols including whitespaces.} Images inserted in text are counted towards the length of the thesis by estimating the amount of text it replaces in the final document. + +For a rough estimate of the number of standard pages when using the \LaTeX{} system, you can use the sum of source file sizes of the thesis and divide it by about 2000 (usually we'd divide by 1800, but source files contain other symbols and commands that do not count towards the length of the thesis). For a more accurate estimate, you can extract the plain text from a PDF (e.g. use cut-and-paste or {\it Save as Text...}) and divide it's size by 1800. You can also use the Detex\footnote{\url{https://www.ctan.org/pkg/detex}} application (on Linux available in it's distribution, for Windows, however, you need to install it separately\footnote{\url{http://urchin.earth.li/~tomford/detex/}}), that removes special symbols and commands from source text and then you can divide it's size by 1800. \textbf{The Detex application uses the \texttt{Makefile} in this template to count the number of standard pages in the core of the thesis too} -- command \verb|make normostrany|. + +In Microsoft Word the approximate length of the thesis in standard pages can be computed using the {\it Word Count} function in {\it Tools} menu if you divide {\it Symbols (spaces included)} by 1800. Only the core of the thesis is counted towards it's length. Parts such as abstract, keywords, declaration, table of contents, references or appendices do not count towards the length of the thesis. It is necessary to select the core of the thesis first and then have the software count the number of symbols. Assess the length of images manually. The same procedure can be applied when using OpenOffice or LibreOffice. + +Original text dealing with the assignment, where the solution is core of the thesis, must be at least a third of the entire thesis text. A mere compilation of available sources is unacceptable. + +The subject of reviewer's assessment is primarily the text and final product. +Needlesly large number of pages is the evidence of poorly processed topic and a burden for the reviewer. Theses, where the length of text report is equal to amount of work done can be longer and enriched with explanatory text. The explanation of the essence of solved problem and the procedures used to solve it does not have to increase at a linear rate with the amount of work. Well structured and comprehensive text report can be of relatively small length. Detailed descriptions of significant parts of project, that are more of a documentary (rather than explanation), can be included in appendices and referenced from the main text. + +If the length of a text report is close to the minimal required length, reviewer will focus heavily on whether or not individual parts of the report for understanding the thesis are really necessary. The inclusion of foreign texts, that only vaguealy relate to the topic of the thesis or ones that are questionable, in attempts to reach at least the minimal required length (for example not enough time just before the submission deadline), can lead to a~much worse overall review of the thesis. + +When you insert an image, choose the dimensions carefully so that they do not overlap the are for text printing area (i.e. text margins on all sides). Put large images on a~separate page. Images or tables that are larger than A4 dimensions can be folded (so-called Engineering fold, similar to Z-fold but doesn't make issues with binding) and included in the main text (if it is crucial for the thesis), appendices or fold it and put to the pocket on the back side of the binding. + +Images and tables use their own, independent numerical series. This means that references in the text must state if it is an image or a table as well as the number (for example ``... {\it see table 2.7} ...''). It's rather natural to comply with this principle. + +When it comes to references to pages, chapter and subchapter numbers, image and table numbers and many other examples, we use special tools provided by the desktop publishing program, that can generate the correct numbers even if the text moves due to changes made to the text itself or changes to typesetting parameters. + +Equations referenced in the text will be provided with serial numbers on the right side of their respective line. These ordered numbers are surrounded by round brackets. Equations numbering can be in order within the whole text or within individual chapters. + +If you are in doubt when printing a mathematical text, try to follow the LaTeX-defined printing system. If your thesis contains a large number of mathematical formulas, we highly encourage you to use LaTeX system. + +There is no space between a number and letters that form a single word or a symbol -- for example {\it 25x}. In a paragraph, it is better to spell both out though -- for example {\it ten times}. + +Punctuation symbols such as a dot, comma, semicolon, colon, question mark and exclamation mark, and even closing brackets and quotation marks are adjacent to the preceeding word, without a space. The space comes after the punctuation symbol itself. This, however, does not apply to decimal point. Opening brackets and quotation marks are adjacent to the following word and the space in front of them is excluded -- (like this) and ``this''. + +We do not use the same symbol for connecting and separating dash, and a regular dash. There is a special (longer) character for a dash. In \TeX (\LaTeX ) system, the connecting dash is a single ``dash'' symbol (e.g. ``Brno-center''), when typing text for intervals or pairs, opponents and others we use two ``dash'' symbols (e.g. ``price 23--25 crowns'', ``match England -- Belgium''), to separate a section of a sentence, to separated an inserted sentence expressing unspoken thoughts and in other situation (see orthography) we use the longest type of dash represented by three ``dash'' symbols (e.g. ``Another term --- no matter how pointless it seems --- will be defined informally in the following paragraph.''). When typesetting a~mathematical minus symbol, we need to use a different symbol again. In TeX system, the source text, the regular minus symbol is used (i.e. ``dash'' symbol). Typesetting in math mode, however, is done by surrounding the formula with dollar symbols to generate the correct output. + +Rules for the use of abbreviations in different languages are listed in their respective orthography books (e.g. Pravidla českého pravopisu \cite{Pravidla}). There are other reasons to always have one of these close. + +\section{Common errors} +\label{chyby} + +This chapter contains a selection of the most common errors as well as advice on how to avoid them, taken from professor Herout's blog \cite{Herout} and from the list of common errors that assistant professor Szöke posted on their blog \cite{chyby}. + +\subsection*{Minor things that notoriously ruin reading} + +\begin{itemize} + \item{ + \textbf{Using hyphens instead of dashes} \\ + A dash is long and there should be whitespace surrounding it. Dash is very often used instead of a dot in sentences: ``This book -- published before the war -- is amazing.'' It is also used for ranges: ``page 23--26'' or ``success rate of 3--5\,\%.'' More examples can be found in the language handbook \cite{prirucka}. + +Hyphens occur in our IT theses very rarely (at least they should). A good example would be phrases or joining subjects ``Rh-factor'', ``real-time'', ``propane-butane''. + } + \item{ + \textbf{Brackets surrounded by whitespaces} \\ + There always is a whitespace in front of the opening parenthesis or brace (when referencing literature). There is no space after the closing parenthesis or brace, if they're immediately followed by a dot, comma, exclamation mark or question mark. There are no whitespaces inside the brackets. + } +\end{itemize} + +\noindent Here's a brief overview of common stylistic and language sins. + +\begin{itemize} + \item{ + Correct in english: + \begin{itemize} + \item{\uv{by using the OpenGL library}} + \item{\uv{in the MVC model}} + \item{\uv{all UI elements}} + \item{\uv{from the JSON string}} + \item{\uv{call it from C\# code}} + \end{itemize} + + Incorrect in czech: + \begin{itemize} + \item{\uv{s použitím OpenGL knihovny}} + \item{\uv{v MVC modelu}} + \item{\uv{všechny UI prvky}} + \item{\uv{z JSON řetězce}} + \item{\uv{volat ji z C\# kódu}} + \end{itemize} + + Correct in czech: + \begin{itemize} + \item{\uv{s použitím knihovny OpenGL}} + \item{\uv{v modelu MVC}} + \item{\uv{všechny prvky UI} -- nebo ještě radši \uv{všechny prvky uživatelského rozhraní}} + \item{\uv{z řetězce ve formátu JSON}} + \item{\uv{volat ji z kódu v jazyce C\#}} + \end{itemize} + } + \item{ + \textbf{Sentences without verbs} \\ + Every single sentence needs a verb. Sentences without verbs are sometimes used for artistic purposes in poetry. Over the course of the last two weeks, I have read countless sentences without verbs in them and it never quite worked, always lead to a negative outcome. Make sure every sentence of your thesis has a verb in it. + } +\end{itemize} + +\subsection*{Figures (almost) without captions} + +Figure (similar with a table) consists of the image itself and it's caption (\texttt{\textbackslash caption} in LaTeX). The caption of a figure or a table is there to make sure the final object works as a~standalone object -- reader checks the figure often even before reading the surrounding text and therefore it is expected that they can understand the figure even without reading the text. + +I wouldn't worry about five to seven lines long figure captions. Two lines will do just fine at times. Sometimes -- not very often -- captions consisting of just three words are the best ones. If all the captions in a thesis consist of only three to four words, the reader will most likely be frustrated, because the figures make no sense whatsoever. + +If a figure contains a colorful code (some objects are red, some are blue and others thick green), proper explanation of code must be a part of the caption. If a figure consits of parts (for example top right, top left and bottom), naming and explanation for each part belongs in the caption. + +Whenever I tell my students this, they get anxious about the whole thing: ``But that means I have to move entire sentences from text to the captions!'' Yes, move them, there's nothing wrong with that. The basic explanation will be a part of the figure and that's how it should be. More detailed explanation, reasoning and interpretation should remain in the text itself. Twenty lines long caption for a figure or table is too long, but five lines long caption is a standard. + + +\subsection*{Grammatical person} + +Using \bf second-person \rm (addressing the reader with ``You/you'') is almost always wrong and it gets annoying very quickly. + +Incorrect: +\begin{itemize} + \item{``If you look at figure 5, you'll see ...''} + \item{``If you work with library X, I'm sure you'll stumble upon ...''} + \item{``If you want to switch to settings, select the respective option in menu.''} +\end{itemize} + +Correct: +\begin{itemize} + \item{``Figure 5 shows ...''} + \item{``A commonly occuring thing when using library X is ...''} + \item{``Settings can be accessed by selecting the respective option in menu.''} +\end{itemize} + +Using \bf first-person plural \rm (``we'') is not always wrong either and ``classic'' literature about writing technical text sometimes even recommends it as so called ``author's plural'': +\begin{itemize} + \item{``We found out ...''}, + \item{``We focused on ...''}, + \item{``We designed a solution, that ...''}. +\end{itemize} + +Less experienced writers often switch from author's plural to some weird and incorrect language mode, that has a common occurence in kindergarten. This is how teachers in kindergarten speak (nothing against them otherwise): ``Alright kids, let's glue a bead right in the middle of the flower. Now we push out a bit of glue, yeees, and we push the bead into it with a finger, juuust like that.'' + +It's not funny and cute, if diploma student uses this language to describe their life's work: ``First we need to link library X. Then we create objects of selected classes and send them to a server one by one. When the server responds with an error code, we must reset the connection.'' Do not use this language mode if you wish for your thesis to be perceived as a work of someone who is not on the mental level of a child in kindergarten. + +Using \bf first-person singular \rm (``I``) is correct, when it comes to a matter of subjectivity: +\begin{itemize} + \item{``I focused on ...''}, + \item{``I created ...''}, + \item{``I measured ...''}, + \item{``I addressed several respondents ...''} +\end{itemize} + +It is incorrect (and unfortunately quite common) to use first-person in the description of procedures and phenomena: +\begin{itemize} + \item{``In the first step of the algorithm, I reset counters.''} + \item{``If the pointer points to null, I allocate new object.''} + \item{``It's clear from the graph that the cache size I used is too small.''} +\end{itemize} + +\subsection*{Other errors} + +\bf Don't cite stupid things: \rm Information in introduction about the fact that internet is available even on Mount Everest can seem like a thing, that needs to be confirmed. Nevertheless, this pointlessly inflates Literature with a lot of irrelevant sources (not within the scope of your thesis) -- that can be a bad thing for you. Just don't write anything like that in your thesis, or don't cite it at least. + +\bf Abbreviations (and notes) in footnotes should make sense on their own. If your text contains an abbreviation, specify what it stands for when you first use it: \rm If an abbreviation occurs two chapters later, you need to specify what it stands for again when you first use it there, alternatively write a footnote addressing the abbreviation. It is important that the footnote contains the abbreviation too. If it's an abbreviation of a~phrase, feel free to translate it to the desired language. + +\noindent Incorrect: +\begin{enumerate} + \item{large-vocabulary continuous speech recognition} +\end{enumerate} +Correct: +\begin{enumerate} + \item{LVCSR -- large-vocabulary continuous speech recognition} +\end{enumerate} + +\bf Don't leave text between a section and subsection out: \rm There should be a text between the titles of chapters and subchapter. This calls for 1 -- 2 paragraphs, where you explain what the chapter is about and what can the reader learn here. + +\bf Hand drawn sketches and images: \rm It's easier to quickly draw something, take a~picture of it and continue writing, especially when it comes to a work draft. Usually the initial sketch of a scheme is wrong and re-doing it takes precious time. I'd be careful with ``hand work'' in the final text. Some reviewers could see it as a false indication, that you did not have enough time, and so you decided to save time by doing some quick hand drawing. + +\bf Introduction and conclustion: \rm Typos, nonsensical sentences, errors, ungrammatical words, \ldots Neither one of these belong in a thesis. An evasive typo can hopefully get lost deep in a thesis. Everyone reads the introduction and conclusion though. Making errors here is shameful. When you try to convince the committee members, that you did a big chunk of work, how is the fact that you can't read a single page of text going to affect the thesis review? + +\bf Cite figures: \rm If you ``borrow'' an image from a source, don't cite it and it is later discovered, you receive an F. Citation referring to literature at the end of the figure description is (probably) OK. Nonetheless, many reviewers prefer stating the source explicitly in brackets: (taken from literature [xy]). + +\bf Don't overdo it with chapters: \rm If a chapter has 1 -- 2 paragraphs in individual subchapters, try to think of a better way of doing it, like bullet points. + +\bf Notes in images: \rm Don't describe complicated images with ``A is on the left side, B is at the top, C is in the middle, D is under that and next to it is XY.'' This results in a half of a page worth of text. And if the figure is not on the same side, the reader has to flip the pages til they die. Add captions to figures and it becomes a standalone figure. + +\bf Details belong to appendices: \rm Don't try to describe a complete class diagram, table diagram, object diagram, ... at any cost. Include one complete scheme and describe the basic components. Then you can focus on the core of the system (for example the three highlighted objects). Those are the key and they're the basis of your thesis. Description of other ``supporting'' objects (e.g. data loading and rendering) can be a part of an appendix. You can simply reference the appendix by writing: \it Detailed description of all classes and their methods can be found in Appendix 1. \rm + +\bf Avoid compound sentences that are too long: \rm If your sentence is the length of a paragraph (6.5 lines), by the time the reader reads third line, they already forgot the beginning of the sentence. Don't be afraid to split the compound sentence into smaller parts. Fire short sentences at the reader rather than suffocating them with loads of words. Alternatively, you can present information using the \tt itemize \rm LaTeX environment. + +\bf Unbreakable spaces: \rm A typographical error such as leaving ``s'' at the end of a line as early as the title of your thesis is extremely shameful. There is something called non-breaking space, in other words a space, that prevents breaking the end of a line. In LaTeX, this space is generated using a tilde \textasciitilde. It is described in most \LaTeX{} books. + +\chapter{Thesis submission} +\label{odevzdani} +Bachelor's and diploma theses are submitted in both printed and electronic version. The electronic version needs to be on the data medium included in the printed version of thesis and uploaded to BUT IS. It is only considered submitted when both versions of a thesis are submitted properly. This chapter is mostly taken from the official instructions that can be found on the web \cite{formalniBP}, \cite{formalniDP}. + +Those that have decided to keep some of the parts of their thesis a secret need to submit an application at least a month prior to the submission of thesis. Based on the changes of university law no.~111/1998 with law no. 137/2017, \S 47b, paragraph 4 -- in case of a delayed publishing, one print of full version of the thesis must be sent to Ministry of Education, Youth and Sport of the Czech Republic -- as of 2017. Student must submit an additional print of the full version in a proper binding. This second print will be identical to the first one, except it will have a copy of specification and it won't have a declaration. Both prints will have a paper stating that it is a print for delayed publication (at most 3 years), reason for the delayed publication, and the thesis will then be published when the agreed upon date of delay has passed. + +Before you submit your thesis, go through the checklist (appendix \ref{checklist}) and make sure everything is okay. Then make sure that the thesis is in compliance with directives \cite{smernice} and \cite{smerniceFIT}. Important details that everyone seems to forget from time to time: +\begin{itemize} + \item \textbf{Title page:} Don't forget to set the correct year (of submission) and department according to the specification. + \item \textbf{Specification:} Don't forget to download electronic version of the specification (template expects a file named \texttt{zadani.pdf}). + \item \textbf{Declaration:} Don't forget to sign the declaration in both prints of the thesis. + \item \textbf{Bibliographic citations:} Make sure you cite all used sources in text. +\end{itemize} + +Print the thesis and have it bound. As soon as you open the bound thesis on a random page, you'll find an error. Honestly, don't worry about it, that's just how it is. Nothing is perfect, so \uv{just ship it}\footnote{\url{http://blog.igor.szoke.cz/2011/08/zkoumejte-bezte-za-bod-odkud-neni.html}} \cite{rady}. + +\section{Submission of printed verions of thesis} +Bachelor's thesis or dissertation is submitted in two prints, both of them contain signed declaration of authorship. The archived print must be bound in an undeconstructable way. A file made out of dark (blue, grey) bond paper is recommended. There will be an envelope with a CD/DVD or other allowed media glued to the inner side of the file back so that it can be easily accessed. The print that will be available in FIT library and serve as a~preview before the presentation can be bound in a deconstructable way (for example comb binding). + +Student also submits the following parts of thesis in electronic format: +\begin{itemize} + \item{text report in PDF format (and in BUT IS),} + \item{source form of the text report (including everything necessary for editing and printing again),} + \item{complete documentation (installation instructions, user manual, schemes, etc.),} + \item{source codes of programs (binary programs must be compilable from submitted source files),} + \item{all programs in executable form capable of running in FIT Computer Center environment. If this cannot be achieved (machines in Computer center do not have the required software installed, or the required hardware is not available, or if the result of thesis is a new hardware), after discussing the situation with their supervisor, the student will present a functional product to the reviewer.} +\end{itemize} + +You can convert document from LaTeX to PDF using the pdflatex application or from dvi using dvipdf application, or even from postscript using ps2pdf application. The final document should be under 10 MB large. If it is larger, something is wrong. Documents like this usually contain needlessly large images. + +A complete electronic form of thesis must be included on a non-rewritable media CD-R, DVD-R, DVD+R in ISO9660 format (with RockRidge and/or Jolliet extension) or UDF, or SD (Secure Digital) memory card in FAT32 or exFAT format,and card is set to write-protected mode. + + +\section{How to submit thesis in BUT IS} +The full thesis text in PDF must be submitted to BUT IS -- in the My Final Project module. You also need to fill in the abstract and keywords, both in Czech (Slovak) and English (be sure to replace non-breaking spaces when copying from \LaTeX{}). The only reason to not make the thesis text public immediately is protection of intellectual property, which must be approved by the vice-dean. In this case, the student submits the full version of the work for review in writing and electronically. Thesis is considered submitted only when all the requirements are met. + +The semester project for master's thesis is also submitted to the BUT IS. Bachelor's term project (term thesis) is only submitted if the supervisor requires it. + +\chapter{Conclusion} +\label{zaver} + +This text summarized the formal requirements for a technical report of a bachelor's thesis or a dissertation. It described the usual procedures used when writing a text of technical nature and offered additional information and independent useful hints and tips for creation of a technical report of a dissertation. It was also explained that a bachelor's thesis also a~dissertation and needs to be approached as such. + +It is necessary to point out that dissertation is a unique individual work, that is developed under the supervision of an experienced expert. Regardless of what this template says, you're only obliged to comply with the official guidelines stated on the faculty web pages. You always need to consider which things in the text above are relevant for a specific dissertation and which are not. Most importantly, you should listen to your supervisor, who understands the given problem the most and is therefore able to provide the best advice that you can get. + +Despite the effort, it is not possible to include all the elements needed for developing a thesis in this template and guarantee that once the text, images, literature and others are added, that everything will be alright for every single dissertation. A longer text than expected will break to two lines, en entry in list of references that the style was not tested with, and in other cases the result can be hardly satisfying. It could require a modification of the template to account for an error that occurs once in hundred projects. The final PDF and consequently the printed version needs to be thoroughly checked, don't let thoughs like \uv{this was generated by the template, therefore it must be correct} cloud your judgement. If you find errors in the template or you have suggestions on how to improve it, contact us via email at \texttt{sablona@fit.vutbr.cz} and help us improve it. Any and all comments and suggestions are welcome. + +Your supervisor can help you significantly when it comes to correcting errors. However, do not expect them to read through your work the night before submission deadline. For that reason, it is necessary to have everything ready in advance and consult your supervisor as you write your dissertation. Supervisor's critical viewpoint can allow for a better result and the extra effort will have a positive effect on their evaluation of the work. + + +Lastly, on behalf of all the authors, I would like to wish everyone currently in development of their own dissertation and those who are getting ready to start developing it a~successful completion and presentation of their work. + +%========================================================================= + +% For compilation piecewise (see projekt.tex), it is necessary to uncomment it +% \end{document} \ No newline at end of file diff --git a/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu-01-kapitoly-chapters.tex b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu-01-kapitoly-chapters.tex new file mode 100644 index 0000000..68d692a --- /dev/null +++ b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu-01-kapitoly-chapters.tex @@ -0,0 +1,37 @@ +% Tento soubor nahraďte vlastním souborem s obsahem práce. +%========================================================================= +% Autoři: Michal Bidlo, Bohuslav Křena, Jaroslav Dytrych, Petr Veigend a Adam Herout 2019 + +% Pro kompilaci po částech (viz projekt.tex), nutno odkomentovat a upravit +%\documentclass[../projekt.tex]{subfiles} +%\begin{document} + +\chapter{Úvod} +\label{uvod} + +Tento text slouží jako ukázkový obsah šablony. + +\chapter{Co bylo třeba nastudovat / Teorie} +\label{teorie} + +Text teorie. + +\chapter{Nové myšlenky, které tato práce přináší / Návrh řešení} +\label{navrh} + +Text návrhu. + +\chapter{Implementace a vyhodnocení} +\label{implementace} + +Text implementace. + +\chapter{Závěr} +\label{zaver} + +Text závěru. + +%=============================================================================== + +% Pro kompilaci po částech (viz projekt.tex) nutno odkomentovat +%\end{document} diff --git a/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu-20-literatura-bibliography.bib b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu-20-literatura-bibliography.bib new file mode 100644 index 0000000..d993a3f --- /dev/null +++ b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu-20-literatura-bibliography.bib @@ -0,0 +1,230 @@ + @BOOK{Pravidla, + author = "Zdeněk Hlavsa and others", + title = "Pravidla českého pravopisu", + publisher = "Academia", + edition = "2", + year = "2009", + isbn = "80-200-1327-X", + } + + @BOOK{Knuth, + author = "Donald E. Knuth", + title = "The {\TeX}book", + publisher = "Addison-Wesley Publishing Company", + year = "1996", + isbn = "0-201-13447-0", + } + + @BOOK{Rybicka, + author = "Jiří Rybička", + title = "\LaTeX~pro začátečníky", + publisher = "Konvoj", + edition = "3", + year = "2003", + isbn = "80-7302-049-1", + } + + @BOOK{Olsak, + author = "Petr Olšák", + title = "{\TeX}book naruby", + publisher = "Konvoj", + year = "2001", + isbn = "80-7302-0007-6", + } + + @BOOK{Eikh, + author = "Victor Eikhout", + title = "{\TeX}by Topics, a {\TeX}nitian's Reference", + publisher = "Addison-Wesley UK", + year = "2001", + isbn = "0-201-56882-9", + } + + @website{cstugWeb, + author = "Petr Sojka and others", + title = "Československé sdružení uživatelů {\TeX}u", + howpublished = "online", + url = "http://www.cstug.cz", + cited = "2019-10-02" + } + + @webpage{fitWeb, + author = "Zdena Rábová and Petr Hanáček and Petr Peringer and Petr Přikryl and Bohuslav Křena", + title = "Užitečné rady pro psaní práce", + howpublished = "online", + publisher = "FIT VUT v~Brně", + year = "2008", + month = 11, + url = "https://www.fit.vut.cz/study/theses/theses-advice/", + cited = "2019-10-02" + } + + @webpage{citace, + author = "Zdena Rábová and Petr Hanáček and Petr Peringer and Petr Přikryl and Bohuslav Křena", + title = "Pravidla pro bibliografické citace", + howpublished = "online", + publisher = "FIT VUT v Brně", + year = "2019", + month = 3, + url = "https://www.fit.vut.cz/study/theses/citations/", + cited = "2019-10-02" + } + + @MISC{biblio, + author = "Olga Biernátová and Jan Skůpa", + title = "Bibliografické odkazy a citace dokumentů", + howpublished = "online", + url = "http://www.citace.com/download/CSN-ISO-690.pdf", + publisher = "Citace.com", + month = 9, + address = "Brno", + year = "2011", + cited = "2019-10-02" + } + + @webpage{formalniBP, + author = "Zdena Rábová and Petr Přikryl and Petr Peringer and Petr Lampa and Bohuslav Křena and jaroslav Dytrych and Petr Veigend", + title = "Pokyny k~bakalářským pracím a SZZ", + howpublished = "online", + year = "2019", + url = "https://www.fit.vut.cz/study/theses/bachelor-theses/", + cited = "2019-10-02" + } + + @webpage{formalniDP, + author = "Zdena Rábová and Petr Přikryl and Petr Peringer and Petr Lampa and Bohuslav Křena and jaroslav Dytrych and Petr Veigend", + title = "Pokyny k~diplomovým pracím a SZZ", + howpublished = "online", + year = "2019", + url = "https://www.fit.vut.cz/study/theses/master-theses/", + cited = "2019-10-02" + } + + @MISC{smernice, + key = "Szz", + author = "Petr Štěpánek", + title = "Směrnice rektora č. 72/2017 -- Úprava, odevzdávání a zveřejňování závěrečných prací", + howpublished = "online", + year = "2017", + url = "https://www.vutbr.cz/uredni-deska/vnitrni-predpisy-a-dokumenty/smernice-c-72-2017-uprava-odevzdavani-a-zverejnovani-zaverecnych-praci-d161410", + cited = "2019-10-02" + } + + @MISC{smerniceFIT, + author = "Pavel Zemčík", + title = "Směrnice děkana č. 7/2018 -- Úprava, odevzdávání a zveřejňování závěrečných prací na FIT VUT v Brně", + howpublished = "online", + year = "2018", + url = "https://www.fit.vut.cz/fit/info/smernice/sm2018-07.pdf", + cited = "2019-10-02" + } + + @website{prirucka, + key = "Cerna", + author = "Anna Černá and Jan Chromý and Hana Konečná and others", + title = "Internetová jazyková příručka -- Ústav pro jazyk český Akademie věd ČR, v. v. i.", + howpublished = "online", + publisher = "Centrum zpracování přirozeného jazyka FI MU", + year = "2019", + url = "http://prirucka.ujc.cas.cz/", + cited = "2019-10-02" + } + + @website{Herout, + author = "Adam Herout", + title = {herout.net -- Poznámky učitele, kouče, čtenáře.}, + howpublished = "online", + year = "2018", + url = "http://www.herout.net/", + cited = "2019-10-02" + } + + @webpage{chyby, + key = "Szoke", + author = "Igor Szöke", + title = "Textová část BP/DP -- Lessons learned", + howpublished = "online", + year = "2012", + url = "http://blog.igor.szoke.cz/2012/01/textova-cast-bpdp-lessons-learned-1.html", + cited = "2019-10-02" + } + + @webpage{rady, + key = "Szoke", + author = "Igor Szöke", + title = "Píšete diplomku? 15+1 rad, které vám pomohou.", + howpublished = "online", + year = "2011", + url = "http://blog.igor.szoke.cz/2011/12/pisete-diplomku-151-rad-ktere-vam.html", + cited = "2019-10-02" + } + + @webpage{Beran, + author = "Vítězslav Beran", + title = "Beran-BP DP Projekty", + howpublished = "online", + year = "2017", + url = "http://merlin.fit.vutbr.cz/wiki/index.php/Beran-BP_DP_Projekty", + cited = "2019-10-02" + } + + @MISC{BeranPDF, + author = "Vítězslav Beran", + title = "Jak psát technickou zprávu", + howpublished = "online", + year = "2013", + url = "http://www.fit.vutbr.cz/~beranv/podpora/Jak\%20psat\%20technickou\%20zpravu.pdf", + cited = "2019-10-00" + } + + @webpage{Cernocky, + key = "Cernocky", + author = "Jan Černocký", + title = "Černocký BP DP -- obecně", + howpublished = "online", + year = "2016", + url = "https://merlin.fit.vutbr.cz/wiki/index.php/Cernocky_BP_DP-obecne", + publisher = "Wiki FIT VUT v Brně", + cited = "2019-10-02" + } + + @webpage{CernockyEnglish, + key = "Cernocky", + author = "Jan Černocký", + title = "English SOS", + howpublished = "online", + year = "2016", + url = "https://merlin.fit.vutbr.cz/wiki/index.php/English_SOS", + cited = "2019-10-02" + } + + @MISC{Zemcik, + author = "Pavel Zemčík", + title = "Všeobecné pokyny pro studenty a vůbec", + howpublished = "online", + year = "2012", + url = "http://www.fit.vutbr.cz/~zemcik/Pokyny.pdf", + cited = "2019-10-02" + } + + @BOOK{Lebrun2011, + author = "Jean-Luc Lebrun", + title = "Scientific Writing 2.0: a reader and writer's guide", + publisher = "World Scientific Publishing", + year = "2011", + edition = "1", + isbn = "9814350605", + owner = "herout", + timestamp = "2015.01.20" + } + + @MASTERSTHESIS{Pysny, + author = {Radek Py{\v{s}}n{\'{y}}}, + type = {Bakal{\'{a}}{\v{r}}sk{\'{a}} pr{\'{a}}ce}, + title = {BiBTeX styl pro {\v{C}}SN ISO 690 a {\v{C}}SN ISO 690-2}, + school = {Vysok{\'{e}} u{\v{c}}en{\'{i}} technick{\'{e}} v Brn{\v{e}}, Fakulta informa{\v{c}}n{\'{i}}ch technologi{\'{i}}}, + year = {2009}, + location = {Brno, CZ}, + language = {czech}, + url = {https://www.fit.vut.cz/study/thesis/7848/} + } diff --git a/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu-30-prilohy-appendices-en.tex b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu-30-prilohy-appendices-en.tex new file mode 100644 index 0000000..2953076 --- /dev/null +++ b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu-30-prilohy-appendices-en.tex @@ -0,0 +1,839 @@ +% This file should be replaced with your file with an appendices (headings below are examples only) + +% For compilation piecewise (see projekt.tex), it is necessary to uncomment it and change +%\documentclass[../projekt.tex]{subfiles} +%\begin{document} + +% Placing of table of contents of the memory media here should be consulted with a supervisor +%\chapter{Contents of the included storage media} + +%\chapter{Manual} + +%\chapter{Configuration file} + +%\chapter{Scheme of RelaxNG configuration file} + +%\chapter{Poster} + +\chapter{How to use this template} +\label{jak} + +This chapter describes individual parts of the template, followed by a brief instructions on how to use it. If you have any questions, comments etc, feel free to email them to \texttt{sablona@fit.vutbr.cz}. + +\section*{Template parts description} + +Once you extract the template, you will find the following files and directories: +\begin{DESCRIPTION} + \item [bib-styles] Literature styles (see below). + \item [obrazky-figures] Directory for your images. Currently contains \texttt{placeholder.pdf} (a.k.a TODO image -- see below) and image keep-calm.png to demonstrate inserting raster images (you don't submit these images with your thesis). It is advised to use shorter directory name, so that it is only in your chosen language. + \item [template-fig] Template images (BUT logo). + \item [fitthesis.cls] Template (design definition). + \item [Makefile] Makefile used to compile the project, count standard pages etc. (see below). + \item [projekt-01-kapitoly-chapters-en.tex] File for Your text (replace it's contents). + \item [projekt-20-literatura-bibliography.bib] Reference list (see below). + \item [projekt-30-prilohy-appendices-en.tex] File for your appendices (replace it's contents). + \item [projekt.tex] Main project file -- definitions of formal parts. +\end{DESCRIPTION} + +The style of literature in the template is from Ing. Radek Pyšný \cite{Pysny}, whose work was improved by prof. Adam Herout, dr. Jaroslav Dytrych and Mr. Karel Hanák to comply with the norm and support all frequently used types of citations. Its documentation can be found in the appendix + +Aside from compilation to PDF, the Makefile also offers additional functions: +\begin{itemize} + \item rename files (see below), + \item count standard pages, + \item run a wave that adds unbreakable spaces, + \item compress (zip) the result, ready to be sent to your supervisor and checked (make sure that all the files you've added are included, if not, add them manually). +\end{itemize} + +Keep in mind that the wave is not perfect. You always need to check whether or not there is something inappropriate at the end of a line manually -- see Online language handbook\footnote{Internetová jazyková příručka \url{http://prirucka.ujc.cas.cz/?id=880}}. + +Similar rules apply also in English - see eg. article Run Ragged\footnote{Run Ragged\url{https://24ways.org/2013/run-ragged/}}, according to which there should be no prepositions, dash or short words (2--3 letters) at the end of the lines, the two lines following each other should not end with a comma and line break should not be also in the phrases from 2-3 words. + +\paragraph {Pay attention to page numbering!} If the table of contents is 2 pages long and the second page contains only \uv{Enclosures} and \uv{List of enclosures} (but there is no enclosure), the page numbering is changed by 1 (table of contents and contents \uv{mismatch}). The same thing happens if the second or third page contains only \uv{References} and there's a chance that this can occur in other situations too. There are multiple solutions to this (from editing the table of contents, setting the page counter all the way to more sophisticated methods). \textbf{Check the page numbering before you submit your thesis!} + +\section*{Recommendations for working with the template} + +\begin{enumerate} + \item \textbf{Make sure you have the latest version of template.} If you have a template from last year, there should be a newer version (updated information, fixed errors etc.) available at the faculty or study advisor web pages. + \item \textbf{Choose a language}, that you want to use for your technical report (czech, slovak or english) and consult your supervisor about your choice (unless it was agreed upon in advance). If your language of choice is not czech, set the respective template parameter in file projekt.tex (e.g.: \verb|document|\verb|class[english]{fitthesis}| and translate the declaration and acknowledgement to english or slovak). + \item \textbf{Rename the files.} When you extract the files, there should be a file named projekt.tex. If you compile it, it will create a PDF with technical report named projekt.pdf. If multiple students send their supervisor projekt.pdf to have it checked, they have to rename them. For that reason, it is advised to rename the file so that it contains your login and (if needed, abbreviated) work topic. Avoid using spaces, diacritic and special symbols. An appropriate name for your file can look like this: \uv{xlogin00-Cleaning-and-extraction-of-text.tex}. You can use the included Makefile to rename it: +\begin{verbatim} +make rename NAME=xlogin00-Cleaning-and-extraction-of-text +\end{verbatim} + \item Fill in the required information in file, that was originally named projekt.tex, that means type, year (of submission), thesis title, author's name, department (according to specification), supervisor's titles and name, abstract, keywords and other formal requirements. + \item Replace the contents of thesis chapters, references and enclosures files with the contents of your technical report. Individual enclosures or thesis chapters can be saved to separate files -- if you choose this approach, it is advised to comply with the file naming convention, and the number will be followed by the chapter title. + \item If you don't need enclosures, comment the respective part in projekt.tex and erase everything from the corresponding file or delete it. Don't try to come up with an aimless enclosures just to have something in that file. An appropriate enclosure can be the contents of included memory medium. + \item Delete the chapter and attachment files for a language you haven't used (with or without \texttt{-en}). + \item Assignment that you download in PDF from BUT IS (link \uv{Thesis assignment}) save to file \texttt{zadani.pdf} and enable its insertion into work by appropriate template parameter (\verb|document|\verb|class[zadani]{fitthesis}|) in \texttt{projekt.tex}. + \item If you don't want to print references in color (i cannot recommend this without consulting your supervisor), you'll need to create a second PDF for printing and set the template printing parameter:\\ (\verb|document|\verb|class[english,zadani,print]{fitthesis}|). Colored logo must not be printed in black and white. + \item The binder templace where the thesis will be typeset can be generated in faculty IS at specification. Can be enabled for dissertation using the \tt cover \rm parameter in template. + \item Don't forget that source files and (both versions) PDF has to be on a CD or other medium included in the technical report. +\end{enumerate} + +\subsection*{Instructions for double-sided printing} +\begin{itemize} +\item \textbf{It is advised to consult your supervisor about double-sided printing.} +\item If you used double-sided printing for your thesis and it's thickness is smaller than the thickness of the binder, it doesn't look too good. +\item Enabled using the following template parameter:\\ \verb|\document|\verb|class[twoside]{fitthesis}| +\item After printing a double-sided sheet, make sure that the canon of page construction is in the same position on both pages. Inferior printers with duplex printing unit usually cause a shift by 1--3 mm. This can be solved with some printers. Print the odd pages first, put them back into the same tray and print the even pages. +\item Leave a blank page after title page, table of contents, references, list of tables, list of appendices and other lists to make sure that the following part starts on an odd page (\texttt{\textbackslash cleardoublepage}). +\item Check the final result thoroughly. +\end{itemize} + +\subsection*{Paragraph style} + +Paragraphs have justified alignment and there are multiple methods for formatting them. In Czech paper literature, a paragraph indentation method is common, where each paragraph of the text have the first line of a paragraph indented by about one to two quads, that is, about two widths of the capital letter M of the base text (always about the same preselected value). In this case, the last line of the previous paragraph and the first line of the following paragraph are not separated by a vertical space. The interleaving between these lines is the same as the interleaving inside the paragraph \cite{fitWeb}. + +Another method is indenting paragraphs, which is common for electronic typesetting and for English texts. In this method, the first line of a paragraph is not indented and a vertical space of approximately half of a line is inserted between the paragraphs. Both methods can be used in the thesis, however, the latter method is often more suitable. Methods should not be combined. + +One of the above methods is set as the default in the template, the other can be selected by the template parameter \uv{\tt odsaz\rm }. + + +\subsection*{Useful tools} +\label{nastroje} + +The following list is not a list of all useful tools. If you have experience with a certain tool, feel free to use it. However, if you don't know which tool to choose, consider the ones listed below: + +\begin{description} + \item[\href{http://miktex.org/download}{MikTeX}] \LaTeX{} for Windows -- a distribution with simple installation and great automated package downloading. MikTeX even has it's own editor, but I highly recommend TeXstudio. + \item[\href{http://texstudio.sourceforge.net/}{TeXstudio}] Portable opensource GUI for \LaTeX{}. Ctrl+click switches between source text and PDF. Integrated spell checker\footnote{Spell checker for czech version can be installed from \url{https://extensions.openoffice.org/de/project/czech-dictionary-pack-ceske-slovniky-cs-cz}}, syntax highlighter etc. To use this tool, you need to first install MikTeX or another \LaTeX{} distribution. + \item[\href{http://www.winedt.com/}{WinEdt}] A good combination for Windows is WinEdt + MiKTeX. WinEdt is a GUI for Windows, and if you want to use it, you need to first install \href{http://miktex.org/download}{MikTeX} or \href{http://www.tug.org/texlive/}{TeX Live}. + \item[\href{http://kile.sourceforge.net/}{Kile}] Editor for KDE (Linux) desktop environment. Real-time preview. To use this tool, you need to have \href{http://www.tug.org/texlive/}{TeX Live} and Okular installed. + \item[\href{http://jabref.sourceforge.net/download.php}{JabRef}] Neat and simple Java program for bibliography (references) file management. No need to learn anything -- provides a simple window and a form for entry editing. + \item[\href{https://inkscape.org/en/download/}{InkScape}] Portable opensource vector graphic (SVG and PDF) editor. Excellent tool to use to create images for technical text. Difficult to master, but the results are worth it. + \item[\href{https://git-scm.com/}{GIT}] Great tool for teamwork when it comes to projects, but can be incredibly useful even to a single author. Simple version control system, backup options and transfer between multiple computers. + \item[\href{http://www.overleaf.com/}{Overleaf}] Online \LaTeX{} tool. A real-time compilation of source text that allows for simple collaboration (supervisor can continuously keep an eye on the progress made), move to a place in source file just by clicking in the PDF preview, spell checker etc. There are some limitations to what you can do if you want to use it for free (some people are comfortable with it for dissertation, others can run into it while they write a~bachelor's thesis) and it is rather slow for long texts. FIT BUT has for students and employees of a license, which can be activated on \url{https://www.overleaf.com/edu/but}. +\end{description} + +Note: Overleaf does not use template Makefile -- to get compilation to work, you need to go to the menu and select \tt projekt.tex \rm as s Main document. + +\chapter{Writing english texts} +\label{anglicky} +This chapter is taken from web pages of Jan Černocký \cite{CernockyEnglish}. + +A lot of people write their technical reports in english (which is good!), but they make a~lot of unnecesary mistakes (which is bad!). I'm not an english export myself, but I've been using this language for a while now to write, read and even communicate -- this chapter contains a handful of important things. If you want to be certain that your thesis or article is 100\,\% correct, your best bet is to hire a native speaker (preferably someone who is technically capable and understands what you write about \ldots). + + +\section*{In general} + +\begin{itemize} + \item{Before you jump into it head first, I suggest you read a handful of technical articles written in english and try to remember or preferably understand how you should approach writing one yourself.} + \item{Always use a spell checking tools -- built in tools in Word, or in OpenOffice. If you work on Linux, I suggest you use ISPELL. Some spell checking (I think it's the one in PSPad) are not very good and ignore a lot of mistakes.} + \item{Use grammer checking tools. I'm not entirely sure if there is one available for Linux, but the one in Word is fairly decent and if it underlines anything with green color, it's probably wrong. You can even copy and paste Latex source code here, fix any and all grammar errors and save it as a clean text again. If you use vim, there's a~built in grammar checking tool too, and it's capable of detecting typos and errors in basic grammar. Write this in the first line of your thesis tex file: + \begin{verbatim} + % vim:spelllang=en_us:spell + \end{verbatim} + (alternatively \texttt{en\_gb} for OED english) \textit{Editor's note:} There is a very good online tool Grammarly\footnote{\url{https://www.grammarly.com/}}, with free basic version. + } + \item{Online dictionaries are good, but don't rely on them in every situation. Usually you get multiple choices and not all of them are correct for the given context.} + \item{\begin{samepage}You can probably figure out what the correct option is by looking each option up and seeing the context in which they're used, example given: ``advantage/privilege/facility of approach''. Online dictionaries give you a handful of results. Look them up one by one using google search: + \begin{verbatim} + "advantage of this approach" 1100000 hits + "privilege of this approach" 6 hits + "facility of this approach" 16 hits + \end{verbatim} + I'm not saying it's 100\,\% correct, but at least you have something to go on. This can be used to find the correct connectives (e.g. ``among two cases'' or ``between two cases''?)\end{samepage}} +\end{itemize} + +\section*{SVOMPT and concord} + +The structure of an english sentence is SVOPMT: SUBJECT VERB OBJECT MANNER PLACE TIME and there's no other way around it. It is not a flexible structure. There are possibly exceptions in things like a theater play, where something needs to be emphasized. Subject must be present in every single single sentence, people tend to forget as some languages have a sentence structure where the subject can be implicit and not mentioned. SVOMPT applies to dependent clauses too! +\begin{verbatim} + BAD: We have shown that is faster than the other function. + GOOD: We have shown that it is faster than the other function. +\end{verbatim} + +\noindent Concord or grammatical agreement between two words in a sentence -- it sounds silly, but people make countless mistakes here. + +\begin{verbatim} + he has + the users have + people were +\end{verbatim} + +\section*{Articles} + +Articles in english are a nightmare and almost all of us fail to use them correctly. The basic rule is, that if there's a particular noun, it's preceeded by ``the''. Definite articles must be in following phrases: +\begin{verbatim} + the first, the second, ... + the last + the most (superlatives and adverbs) ... + the whole + the following + the figure, the table. + the left, the right - on the left pannel, from the left to the right ... +\end{verbatim} + +\noindent On the contrary, there can't be an article when you're referring to a specific figure, chapter, etc. +\begin{verbatim} + in Figure 3.2 + in Chapter 7 + in Table 6.4 +\end{verbatim} + +\begin{samepage} +\noindent The use of ``a'' and ``an'' is based on the pronounciation, rather than how the word is written: +\begin{verbatim} + an HMM + an XML + a universal model + a user +\end{verbatim} +\end{samepage} + +\section*{Verbs} + +Passive voice can be tricky -- regular verbs are usually not a problem, irregular verbs however are a common source of errors, typically +\begin{verbatim} + packet was sent (rather than send) + approach was chosen (rather than choosed) +\end{verbatim} +\noindent \ldots most of the time, the spell checker will correct it, but it's not guaranteed. + +Tenses are a mess at times. If something just is in general, use present tense. If you did something, use past tense. If you got results that already exist and you just discuss them, use present tense. Try to avoid complicated tenses such as present perfect or worse past perfect if you're not 100\,\% sure. +\begin{verbatim} + JFA is a technique that works for everyone in speaker recognition. + We implemented it according to Kenny's recipe in \cite{Kenny}. + 12000 segments from NIST SRE 2006 were processed. When compared + with a GMM baseline, the results are completely bad. +\end{verbatim} + +\section*{Sentence length and structure} + +\begin{itemize} + \item{Try to write shorter sentences. If you sentence is 5 lines long, it's probably a pain to read, if it can even be done.} + \item{Comma is a powerful tool and you should use it for your sentence structure. Use a~comma to seperate the initial dependent clause from the main independent clause. Sometimes it is appropriate to put a comma just before ``and'' (unlike other languages)!} +\end{itemize} +\begin{verbatim} + In this chapter, we will investigate into ... + The first technique did not work, the second did not work as well, + and the third one also did not work. +\end{verbatim} + +\section*{The specifics of a technical text} + +When writing a technical text, don't use common phrases such as +\begin{verbatim} + he's + gonna + Petr's working on ... +\end{verbatim} +\noindent and others. The only tolerated thing is ``doesn't'', but you can never go wrong with ``does not''. + +\begin{samepage} +\noindent Technical texts utilize passive voice a lot more than active voice: +\begin{verbatim} + BAD: In this chapter, I describe used programming languages. + GOOD: In this chapter, used programming languages are described. +\end{verbatim} +\end{samepage} + +If you want to use active voice, it's more common to use ``we'', even though you work alone. ``I'', ``my'', etc. are only used when you need to emphasize that you are the person of utmost importance, for example in the conclusion or when discussing ``original claims'' in disertation. + + +\paragraph{Common erros in words} + +\begin{itemize} + \item{Pay attention to his/hers, it's not ``it's'' but ``its''} + \item{Image is not picture, it's figure.} + \item{The connective is ``than'', not ``then'' -- bigger than this, smaller than this \ldots very common error! ``Then'' is used in the context of time.} +\end{itemize} + + +\chapter{Checklist} +\label{checklist} +This checklist was taken from a template for academic work, that is available on Adam Herout's blog \cite{Herout}, based on the ideas of Igor Szöke\footnote{\url{http://blog.igor.szoke.cz/2017/04/predstartovni-priprava-letu-neni.html}}, with their permission. + +A big part of the safety of air transport are checklists. They have checklists for basically anything and everything, even the most cut-and-dry procedures. If a pilot can get over the tedious process of marking off every single checkbox of a procedure, you can as well. Make a checklist of your own before you submit your thesis. \bf Yes, really: \rm print it, grab a pencil and check every single item on the list. It will make your life easier –- avoid unnecessary errors that can be fixed within a couple minutes –- as well as others', at very least your supervisor and reviewer of your thesis. + +\subsection*{Structure} +\begin{checklist} + \item You can tell that the assignment was completed just by looking at the chapter titles as well as their structures. + \item There is no chapter with less than four pages (except for introduction and conclusion). And if so, I discussed this with my supervisor and they gave me a green light. +\end{checklist} + +\subsection*{Figures and charts} +\begin{checklist} + \item Every single image and table was checked and their position is close to the text that references them. In other words, they’re easy to find. + \item Every single image and table has a good enough caption, to ensure that the figure makes sense on it’s own, without the necessity to read the text. (There’s no harm in a long caption.) + \item If an image is taken from somewhere, it is mentioned in the caption: “Taken from [X].” + \item Texts in all images have a font size similar to the surrounding text (neither signifficantly larger, nor signifficantly smaller). + \item Charts and schemes are vector graphics (eg. in PDF). + \item Screenshots don‘t use lossy compression (they‘re in PNG). + \item All images are referenced in the text. + \item Axes in charts have their captions (name of the axis, units of measurement, values) and a grind if need be. +\end{checklist} + +\subsection*{Equations} +\begin{checklist} + \item Identifiers and their indexes in equations are single letters (except for rather uncommon cases like $t_{max}$). + \item Equations are numbered. + \item All the variables and functions that haven‘t been explained yet are explained below (or rarely above) the equation. +\end{checklist} + +\subsection*{Citations} +\begin{checklist} + \item \bf All used sources are cited. \rm + \item URL adresses referencing services, projects, sources, github, etc. are referenced using \verb|\footnote{\url{…}}|. + \item URL adresses in citations are only present, if necessary – article is cited like an article (author, title, where and when was it published), not using URL. + \item Citations have author, title, publisher (conference title), year of publishing. If a~citation does not have either of these, there is a good explanation for this special case and my supervisor agreed. + \item If there is anything taken over from some other work in the program source code, it is properly cited therein in conformance with the license. + \item If an essential part of the source code of the program is taken over, this is mentioned in the text of the thesis and the source is cited. +\end{checklist} + +\subsection*{Typography} +\begin{checklist} + \item No line extends past the right margin. + \item There is no single-letter preposition at the end of a line (fixed using unbreakable space \verb|~|). + \item Number of image, table, equation, citation is never a first item of a new line (fixed using unbreakable space \verb|~|). + \item There is no space before a numeric reference to a footnote (like this\footnote{footnote example}, not like this \footnote{another footnote example}). +\end{checklist} + +\subsection*{Language} +\begin{checklist} + \item I used spellchecker and there were no typos in the text. + \item I had someone else read my thesis (at least one person), that knows czech / slovak / english well. + \item Someone who knows english well checked the abstract in a czech or slovak written abstract thesis. + \item No part of the text is written in second person (you). + \item If first person is used (i, we), a subjective matter is being described (i decided, i~designed, i focused on, i found out, etc.). + \item There are no colloquialisms in the text. + \item There are no {\it default} words in the text. +\end{checklist} + +\subsection*{Result is on a data medium, i.e. software} +\begin{checklist} + \item I have a non-rewritable data medium ready. + \begin{itemize} + \item CD-R, + \item DVD-R, + \item DVD+R in ISO9660 format (with RockRidge and/or Jolliet extension) or UDF, + \item SD (Secure Digital) card in FAT32 or exFAT format, the card is set to write-protected mode + \end{itemize} + \item If the result is online (service, application, …), URL is visible in introduction and conclusion. + \item The medium contains the following mandatory items: + \begin{itemize} + \item source codes (e.g. Matlab, C/C++, Python, \ldots) + \item libraries necessary for compilation, + \item compiled solution, + \item PDF containing a technical report, + \item text source code (\LaTeX{}), + \end{itemize} + and the following optional items after consulting your supervisor: + \begin{itemize} + \item relevant (e.g. testing) data, + \item demo video, + \item poster in PDF + \item \ldots + \end{itemize} + \item Source codes are refactorized, commented and labelled with an authorship header so that others can tell what they actually are. + \item Any and all snippets of code taken from another sources are properly cited -- differentiated using a opening and in case of multiple lines of code a closing comment. Comments contain everything that the license on web (always try to find out what the license is -- for example, Stack Overflow\footnote{\url{https://stackoverflow.blog/2009/06/25/attribution-required/}} has a very strict citation policy). +\end{checklist} + +\subsection*{Submission} +\begin{checklist} + \item Do I want to delay (by at most 3 years) the publication ? If so, I will submit an application (in IS) at least a month prior to the submission of the academic work, and I'll include attitude of the company that the intellectual property belongs to and needs to be protected. + \item I have at least minimum number of standard pages (can be calculated using Makefile and by adding number of pages that images translate to). If I'm just under the minimum, I consulted my supervisor about it. + \item If I want a two-sided print, I consulted my supervisor about it and I've used correct template settings for two-sided printing. Chapters begin on odd pages. + \item Technical report is bound in a bookbindery (at least one print, both prints if I'm delaying the publishing). + \item Title page is followed by the specification (in other words, downloaded from IS and inserted into the template) + \item Abstract and keywords are uploaded in IS. + \begin{itemize} + \item There are no \verb|~| characters for non-breaking spaces in the abstract and keywords in IS. + \end{itemize} + \item PDF of thesis (with clickable links) is in IS. + \item Both prints are signed. + \item One (both if I'm delaying the publishing) of the prints contains a data medium with my login written on it using a CD marker (CD marker can be borrowed in library, at Student affairs or when I'm submitting the work). +\end{checklist} + +\chapter{\LaTeX{} for beginners} +\label{latex} + +This chapter contains commonly used \LaTeX{} packages and commands, that you might need when you're developing a thesis. + +\subsection*{Useful packages} + +Students usually encounter the same issues. Some of them can be solved using the following \LaTeX{} packages: + +\begin{itemize} + \item \verb|amsmath| -- additional equation typesetting options, + \item \verb|float, afterpage, placeins| -- image placement, + \item \verb|fancyvrb, alltt| -- change the properties of Verbatim environment, + \item \verb|makecell| -- additional table options, + \item \verb|pdflscape, rotating| -- rotate a page by 90 degress (for image or table), + \item \verb|hyphenat| -- change how words break, + \item \verb|picture, epic, eepic| -- direct image drawing. +\end{itemize} + +Some packages are used in this very template (in the lower section of fitthesis.cls file). It is also advised to read the documentation for individual packages. + +A table column aligned to left with a fixed width is defined as "L" in the template (used as "p"). + +To reference a place within text, use command \verb|\ref{label}|. Depending on the placement of this label, it will be a number of chapter, subchapter, image, table or a similar numbered element. If you want to reference a specific page, use command \verb|\pageref{label}|. To cite a literature reference, use command \verb|\cite{identifier}|. To reference an equation, you can use command \verb|\eqref{label}|. + +Symbol -- (dash) is used generated using two minus signs (like this: \verb|--|) in \LaTeX. + +\subsection*{Commonly used \LaTeX{} commands} +\label{sec:Fragments} + +I highly recommend you check the source text of this chapter and see how the following examples are created. The source text even contains helpful comments. + +% A left-aligned, fixed-width column is defined in the template as "L" (used as p). + +Example table: +\begin{table}[H] + \vskip6pt + \caption{Assessment table} + \vskip6pt + \centering + \begin{tabular}{llr} + \toprule + \multicolumn{2}{c}{Name} \\ + \cmidrule(r){1-2} + Name & Surname & Assessment \\ + \midrule + Jan & Novák & $7.5$ \\ + Petr & Novák & $2$ \\ + \bottomrule + \end{tabular} + \label{tab:ExampleTable} +\end{table} + +% Ohraničení lze upravit dle potřeby: +% http://latex-community.org/forum/viewtopic.php?f=45&t=24323 +% http://tex.stackexchange.com/questions/58163/problem-with-multirow-and-table-cell-borders +% http://tex.stackexchange.com/questions/79369/formatting-table-border-and-text-alignment-in-latex-table + +\noindent Example equation: +\begin{equation} +\cos^3 \theta =\frac{1}{4}\cos\theta+\frac{3}{4}\cos 3\theta +\label{rovnice2} +\end{equation} +and two horizontally aligned equations: % znak & řídí zarovnání +\begin{align} \label{eq:soustava} + 3x &= 6y + 12 \\ + x &= 2y + 4 +\end{align} + +If you need to reference an equation from the text, you can use command \verb|\eqref|. For example, to reference the equations above \eqref{rovnice2}. If you want to align the equation number vertically, you can use command \texttt{split}: + +\begin{equation} \label{eq:soustavaSrovnana} +\begin{split} + 3x &= 6y + 12 \\ + x &= 2y + 4 +\end{split} +\end{equation} + +Mathematical symbols ($\alpha$) and expressions can be placed even in text $\cos\pi=-1$ and can also be in a footnote% +\footnote{Formula in a footnote: $\cos\pi=-1$}. + +Image~\ref{sirokyObrazek} displays a wide image comprised of multiple smaller images. Standard raster image is inserted in the same way as image \ref{keepCalm}. + +% Využití \begin{figure*} způsobí, že obrázek zabere celou šířku stránky. Takový obrázek dříve mohl být pouze na začátku stránky, případně na konci s využitím balíčku dblfloatfix (případné [h] se ignorovalo a [H] obrázek odstraní). Nové verze LaTeXu už umí i [h]. +\begin{figure*}[h]\centering + \centering + \includegraphics[width=\linewidth,height=1.7in]{obrazky-figures/placeholder.pdf}\\[1pt] + \includegraphics[width=0.24\linewidth]{obrazky-figures/placeholder.pdf}\hfill + \includegraphics[width=0.24\linewidth]{obrazky-figures/placeholder.pdf}\hfill + \includegraphics[width=0.24\linewidth]{obrazky-figures/placeholder.pdf}\hfill + \includegraphics[width=0.24\linewidth]{obrazky-figures/placeholder.pdf} + \caption{\textbf{Wide image.} Image can be comprised of multiple smaller images. If you want to address the partial images from text, use packagae \texttt{subcaption}.} + \label{sirokyObrazek} +\end{figure*} + +% Uncomment this to switch to landscape oriented A3 paper +% \eject \pdfpagewidth=420mm + +\begin{figure}[hbt] + \centering + \includegraphics[width=0.3\textwidth]{obrazky-figures/keep-calm.png} + \caption{Good text is a bad text, that has been changed countless times. You have to start somewhere.} + \label{keepCalm} +\end{figure} + +Sometimes it is necessary to attach a diagram that does not fit on an A4 page. Then it is possible to insert one A3 page and fold it into the thesis (so-called Engineering fold, similar to Z-fold, where two folds are created -- face down and face up). Switching is performed as follows: \texttt{\textbackslash{}eject \textbackslash{}pdfpagewidth=420mm} (210mm to switch it back). + +Other frequently used commands can be found above in the text, because a single practical example of correct use is better than ten pages of examples. + +% Uncomment this to switch back to A4 +% \eject \pdfpagewidth=210mm + + +% newline command +\newcommand{\odradkovani}{\\[0.3em]} + +\chapter{Examples of bibliographic citations} +\label{priloha-priklady-citaci} +The czplain style is based on the style created by mr. Pyšný \cite{Pysny}. This appendix contains a set of supported type of citations with specific examples of bibliograhpic citations. + +The next pages of the appendix contain examples of bibliographic citations of the following pubplications and their parts: +\begin{itemize} + \item Article in a periodical literature (magazine) (str. \pageref{pr-casopis-clanek}), + \item monographic publication (str. \pageref{pr-monografie}), + \item conference proceedings (str. \pageref{pr-sbornik}), + \item conference proceedings entry or book chapter (str. \pageref{pr-kapitola}), + \item manual, documentation, technical report and unpublished materials (str. \pageref{pr-manual}), + \item academic work (str. \pageref{pr-thesis}), + \item web page (str. \pageref{pr-webpage}), + \item and web site (str. \pageref{pr-website}). +\end{itemize} + +\noindent Items are color-coded depending on whether or not they are required or optional: +\begin{itemize} + \item required element according to the standard + \item \textcolor{blue}{optional element according to the standard} + \item \textcolor{magenta}{required element for online information sources according to the standard} + \item \textcolor{red}{element that is not specified in the standard, but is available and optional within the template's bibliographic style} +\end{itemize} +Required items are only stated if they exist. + +\newpage +The bibliography file contains records in the following form: +\begin{verbatim} +@Article{Doe:2020, + author = "Doe, John", + title = "How to cite", + subtitle = "Article citation", + journal = "Writing theses and dissertations", + journalsubtitle = "Formal aspects", + howpublished = "online", + address = "Brno", + publisher = "Brno University of Technology, + Faculty of information technology", + contributory = "Translated by Jan NOVÁK", + edition = "1", + version = "version 1.0", + month = 2, + year = "2020", + revised = "revised 12. 2. 2020", + volume = "4", + number = "24", + pages = "8--21", + cited = "2020-02-12", + doi = "10.1000/BC1.0", + issn = "1234-5678", + note = "This a made up citation", + url = "https://merlin.fit.vutbr.cz" +} +\end{verbatim} + + +%------------------------------------------------------------------------------- +\newpage +\section*{Article in a periodical literature -- @Article} +\label{pr-casopis-clanek} +\noindent \textbf{Record items} + +\medskip + +\begin{tabularx}{0.95\linewidth}{>{\raggedright\arraybackslash}X X >{\raggedright\arraybackslash}X} + Element & BibTeX item & Example\\\hline + Author & author & Doe, John\\ + Article title & title & How to cite\\ + \textcolor{blue}{Article subtitle} & \textcolor{blue}{subtitle} & \textcolor{blue}{Article citation}\\ + Periodical literature title & journal & Writing theses and dissertations\\ + \textcolor{blue}{Periodical literature subtitle} & \textcolor{blue}{journalsubtitle} & \textcolor{blue}{Formal aspects}\\ + \textcolor{magenta}{Type of medium} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + Edition & edition & 1\\ + Version & version & version 1.0\\ + \textcolor{blue}{Secondary author(s)} & \textcolor{blue}{contributory} & \textcolor{blue}{Translated by Jan NOVÁK}\\ + Place of publication & address & Brno\\ + Publisher & publisher & Brno University of Technology, Faculty of information technology\\ + Month & month & 2\\ + Year & year & 2020\\ + Volume & volume & 4\\ + Number & number & 24\\ + Pages & pages & 8-21\\ + Revision & revised & revised 12. 2. 2020\\ + \textcolor{magenta}{Date of citation} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + Series title & series & Guidelines for writing theses and dissertations\\ + Number in series & editionnumber & 42\\ + \textcolor{magenta}{Digital object identifier} & \textcolor{magenta}{doi} & \textcolor{magenta}{10.1000/BC1.0}\\ + Standard number & issn & 1234-5678\\ + \textcolor{red}{Notes} & \textcolor{red}{note} & \textcolor{red}{This is a made up citation}\\ + \textcolor{magenta}{Availability} & \textcolor{magenta}{url} & \textcolor{magenta}{https://merlin.fit.vutbr.cz} +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliographic citation} + +\medskip + +\noindent \textsc{Doe}, J. How to cite: Article citation. \textit{Writing theses and dissertations: Formal aspects} [online]. 1st ed., version 1.0. Translated by Jan NOVÁK. Brno: Brno University of Technology, Faculty of information technology. February 2020, vol. 4, num. 24, p. 8–21, revised 12. 2. 2020, [cit. 2020-02-12]. Guidelines for writing theses and dissertations, no. 42. DOI: 10.1000/BC1.0. ISSN 1234-5678. This is a made up citation. Available at: \url{https://merlin.fit.vutbr.cz} + +%------------------------------------------------------------------------------- +\newpage +\section*{Monographic publication -- @Book, @Booklet (brochure)} +\label{pr-monografie} +\noindent \textbf{Record items} + +\medskip + +\begin{tabularx}{0.95\linewidth}{>{\raggedright\arraybackslash}X X >{\raggedright\arraybackslash}X} + Element & BibTeX item & Example\\\hline + Author & author & John von Doe\\ + Title & title & How to cite\\ + \textcolor{blue}{Subtitle} & \textcolor{blue}{subtitle} & \textcolor{blue}{Monographic publication citation}\\ + \textcolor{magenta}{Type of medium} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + Edition & edition & 1\\ + \textcolor{blue}{Secondary author(s)} & \textcolor{blue}{contributory} & \textcolor{blue}{Translated by Jan NOVÁK}\\ + Place of publication & address & Brno\\ + Publisher & publisher & Brno University of Technology, Faculty of information technology\\ + Month & month & 2\\ + Year & year & 2020\\ + Revision & revision & revised 12. 2. 2020\\ + \textcolor{magenta}{Date of citation} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + \textcolor{red}{Pages} & \textcolor{red}{pages} & \textcolor{red}{220}\\ + Series title & series & Guidelines for writing theses and dissertations\\ + Number in series & editionnumber & 2\\ + Standard number & isbn & 01-234-5678-9\\ + \textcolor{red}{Notes} & \textcolor{red}{note} & \textcolor{red}{This is a made up citation}\\ + \textcolor{magenta}{Availability} & \textcolor{magenta}{url} & \textcolor{magenta}{https://merlin.fit.vutbr.cz}\\ +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliographic citation} + +\medskip + +\noindent \textsc{von Doe}, J. \textit{How to cite: Monographic publication citation} [online]. 1st ed. Translated by Jan NOVÁK. +Brno: Brno University of Technology, Faculty of information technology, February 2020, revised 12. 2. 2020 [cit. 2020-02-12]. 220 p. Guidelines for writing theses an dissertations, no. 2. ISBN 01-234-5678-9. This is a made up citation. Available at: \url{https://merlin.fit.vutbr.cz} +%------------------------------------------------------------------------------- +\newpage +\section*{Conference proceedings -- @Proceedings} +\label{pr-sbornik} +\noindent \textbf{Record items} + +\medskip + +\begin{tabularx}{0.95\linewidth}{X X >{\raggedright\arraybackslash}X} + Element & BibTeX item & Example\\\hline + \textcolor{red}{Author*} & \textcolor{red}{author} & \textcolor{red}{Čechmánek, Jan}\\ + \textcolor{red}{Editor*} & \textcolor{red}{editor} & \textcolor{red}{Čechmánek, Jan}\\ + Title & title & How to cite\\ + \textcolor{blue}{Subtitle} & \textcolor{blue}{subtitle} & \textcolor{blue}{Conference proceedings citation}\\ + \textcolor{magenta}{Type of medium} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + Edition & edition & 1\\ + \textcolor{blue}{Secondary author(s)} & \textcolor{blue}{contributory} & \textcolor{blue}{Translated by Jan NOVÁK}\\ + Place of publication & address & Brno\\ + Publisher & publisher & Brno University of Technology, Faculty of information technology\\ + Month & month & 2\\ + Year & year & 2020\\ + Volume & volume & 4\\ + Number & number & 24\\ + Pages & pages & 8-21\\ + \textcolor{magenta}{Revision} & \textcolor{magenta}{revised} & \textcolor{magenta}{revised 12. 2. 2020}\\ + \textcolor{magenta}{Date of citation} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + Series title & series & Guidelines for writing theses and dissertations\\ + Number in series & editionnumber & 2\\ + \textcolor{magenta}{Digital object identifier} & \textcolor{magenta}{doi} & \textcolor{magenta}{10.1000/BC1.0}\\ + Standard number & isbn or issn & 01-234-5678-9\\ + \textcolor{red}{Notes} & \textcolor{red}{note} & \textcolor{red}{This is a made up citation}\\ + \textcolor{magenta}{Availability} & \textcolor{magenta}{url} & \textcolor{magenta}{https://merlin.fit.vutbr.cz} +\end{tabularx} + +*Either author or editor is stated. + +\bigskip + +\noindent \textbf{Bibliographic citation} + +\medskip + +\noindent \textsc{Čechmánek}, J. \textit{How to cite: Conference proceedings citation} [online]. 1st ed. Translated by Jan NOVÁK. +Brno: Brno University of Technology, Faculty of information technology, February 2020, vol. 4, num. 24, p. 8–21, revised 12. 2. 2020 [cit. 2020-02-12]. Guidelines for writing theses and dissertations, no. 2. DOI: 10.1000/BC1.0. ISBN 01-234-5678-9. This is a made up citation. Available at: \url{https://merlin.fit.vutbr.cz} +%------------------------------------------------------------------------------- +\newpage +\section*{Conference proceedings entry or book chapter -- @InProceedings, @InCollection, @Conference, @InBook} +\label{pr-kapitola} +\noindent \textbf{Record items} + +\medskip + +\begin{tabularx}{0.95\linewidth}{>{\raggedright\arraybackslash}X X >{\raggedright\arraybackslash}X} + Element & BibTeX item & Example\\\hline + Author & author & John von Doe\\ + Entry title & title & How to cite\\ + \textcolor{blue}{Entry subtitle} & \textcolor{blue}{subtitle} & \textcolor{blue}{Article citation}\\ + Parent document author & editor or organisation & Smith, Peter\\ + Parent document title & booktitle & Conference proceedings on writing theses and dissertations\\ + \textcolor{blue}{Parent document subtitle} & \textcolor{blue}{booksubtitle} & \textcolor{blue}{Formal aspects}\\ + \textcolor{magenta}{Type of medium} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + Edition & edition & 1\\ + Version & version & version 1.0\\ + \textcolor{blue}{Parent document secondary author(s)} & \textcolor{blue}{contributory} & \textcolor{blue}{Translated by Jan NOVÁK}\\ + Place of publication & address & Brno\\ + Publisher & publisher & Brno University of Technology, Faculty of information technology\\ + Month & month & 2\\ + Year & year & 2020\\ + Volume & volume & 4\\ + Number & number & 24\\ + \textcolor{blue}{Chapter} & \textcolor{blue}{chapter} & \textcolor{blue}{5}\\ + Pages & pages & 8-21\\ + Revision & revised & revised 12. 2. 2020\\ + \textcolor{magenta}{Date of citation} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + Series title & series & Guidelines for writing theses and dissertations\\ + Number in series & editionnumber & 2\\ + Standard number & isbn or issn & 1234-5678\\ + \textcolor{red}{Notes} & \textcolor{red}{note} & \textcolor{red}{This is a made up citation}\\ + \textcolor{magenta}{Availability} & \textcolor{magenta}{url} & \textcolor{magenta}{https://merlin.fit.vutbr.cz}\\ +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliographic citation} + +\medskip + +\noindent \textsc{Doe}, J. How to cite: Article citation. +In: \textsc{Smith}, P., ed. \textit{Conference proceedings on writing theses and dissertations: Formal aspects} [online]. 1st ed., version 1.0. Translated by Jan NOVÁK. Brno: Brno University of Technology, Faculty of information technology, February 2020, vol. 4, num. 24, chap. 5, p. 8–21, revised 12. 2. 2020 [cit. 2020-02-12]. Guidelines for writing theses and dissertations, no. 2. ISSN 1234-5678. This is a made up citation. Available at: \url{https://merlin.fit.vutbr.cz} +%------------------------------------------------------------------------------- +\newpage +\section*{Manual, documentation, technical report and unpublished \\materials -- @Manual, @TechReport, @Unpublished} +\label{pr-manual} +\noindent \textbf{Record items} + +\medskip + +\begin{tabularx}{0.95\linewidth}{>{\raggedright\arraybackslash}X X >{\raggedright\arraybackslash}X} + Element & BibTeX item & Example\\\hline + Author (person or organisation) & author & Brno University of Technology, Faculty of information technology\\ + Title & title & Manual for writing theses and dissertations\\ + \textcolor{blue}{Subtitle} & \textcolor{blue}{subtitle} & \textcolor{blue}{Manual citation}\\ + \textcolor{magenta}{Type of medium} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + \textcolor{red}{Document type} & \textcolor{red}{type} & \textcolor{red}{User manual}\\ + \textcolor{red}{Document number} & \textcolor{red}{number} & \textcolor{red}{3}\\ + Edition & edition & 1\\ + \textcolor{blue}{Secondary author(s)} & \textcolor{blue}{contributory} & \textcolor{blue}{Edited by Jan NOVÁK}\\ + Place of publication & address & Brno\\ + Organisation or institution & organization or institution & Brno University of Technology, Faculty of information technology\\ + Month & month & 2\\ + Year & year & 2020\\ + Revision & revised & revised 12. 2. 2020\\ + \textcolor{magenta}{Date of citation} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + \textcolor{red}{Pages} & \textcolor{red}{pages} & \textcolor{red}{220}\\ + \textcolor{red}{Notes} & \textcolor{red}{note} & \textcolor{red}{This is a made up citation}\\ + \textcolor{magenta}{Availability} & \textcolor{magenta}{url} & \textcolor{magenta}{https://merlin.fit.vutbr.cz}\\ +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliographic citation} + +\medskip + +\noindent \textsc{Brno University of Technology, Faculty of information technology}. \textit{Manual for writing theses and dissertations: Manual citation} [online]. User manual 3, 1st ed. Edited by Jan NOVÁK. +Brno: Brno University of Technology, Faculty of information technology, February 2020, revised 12. 2. 2020 [cit. 2020-02-12]. 220 p. This is a made up citation. Available at: \url{https://merlin.fit.vutbr.cz} +%------------------------------------------------------------------------------- +\newpage +\section*{Academic work -- @BachelorsThesis, @MastersThesis, \\@PhdThesis, @Thesis} +\label{pr-thesis} +\noindent \textbf{Record items} + +\medskip + +\begin{tabularx}{0.95\linewidth}{X X >{\raggedright\arraybackslash}X} + Element & BibTeX item & Example\\\hline + Author & author & Brno University of Technology, Faculty of information technology\\ + Title & title & BiBTeX style for ČSN ISO 690 and ČSN ISO 690-2\\ + \textcolor{blue}{Subtitle} & \textcolor{blue}{subtitle} & \\ + \textcolor{magenta}{Type of medium} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + \textcolor{red}{Document type} & \textcolor{red}{type} & \textcolor{red}{Dissertation}\\ + Place of publication & address or location & Brno\\ + School & school & Brno University of Technology, Faculty of information technology\\ + Year & year & 2020\\ + \textcolor{magenta}{Date of citation} & \textcolor{magenta}{cited} & \textcolor{magenta}{2020-02-12}\\ + \textcolor{red}{Pages} & \textcolor{red}{pages} & \textcolor{red}{220}\\ + \textcolor{red}{Appendices} & \textcolor{red}{inserts} & \textcolor{red}{20}\\ + Standard number & isbn & 01-234-5678-9\\ + \textcolor{red}{Supervisor} & \textcolor{red}{supervisor} & \textcolor{red}{Dytrych, Jaroslav}\\ + \textcolor{red}{Notes} & \textcolor{red}{note} & \textcolor{red}{This is a made up citation}\\ + \textcolor{magenta}{Availability} & \textcolor{magenta}{url} & \textcolor{magenta}{https://www.fit.vut.cz/\-study/theses}\\ +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliographic citation} + +\medskip + +\noindent \textsc{Novák}, J. \textit{BiBTeX style for ČSN ISO 690 and ČSN ISO 690-2} [online]. Brno, CZ, 2020. [cit. 2020-02-12]. 80 p., 20. p. apps. Dissertation. Brno University of Technology, Faculty of information technology. ISBN 01-2345-678-9. Supervisor \textsc{Dytrych}, J. This is a made up citation. Available at: \url{https://www.fit.vut.cz/study/theses} +%------------------------------------------------------------------------------- +\newpage +\section*{Web page -- @Webpage} +\label{pr-webpage} +\noindent \textbf{Record items} + +\medskip + +\begin{tabularx}{0.95\linewidth}{X X >{\raggedright\arraybackslash}X} + Element & BibTeX item & Example\\\hline + Author & author & Nováková, Jana\\ + Page title & secondarytitle & Post citation\\ + Site title & title & Web on writing theses and dissertations\\ + \textcolor{blue}{Site subtitle} & \textcolor{blue}{subtitle} & \\ + \textcolor{magenta}{Type of medium} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + \textcolor{blue}{Secondary author(s)} & \textcolor{blue}{contributory} & \textcolor{blue}{Edited by Jan NOVÁK}\\ + \textcolor{red}{Version} & \textcolor{red}{version} & \textcolor{red}{version 1.0}\\ + \textcolor{red}{Place of publication} & \textcolor{red}{address} & \textcolor{red}{Brno}\\ + \textcolor{red}{Publisher} & \textcolor{red}{publisher} & \textcolor{red}{Brno University of Technology, Faculty of information technology}\\ + Day & day & 12\\ + Month & month & 2\\ + Year & year & 2020\\ + \textcolor{blue}{Time of publication} & \textcolor{blue}{time} & \textcolor{blue}{14:00}\\ + Revision & revised & revised 12. 2. 2020\\ + \textcolor{magenta}{Digital object identifier} & \textcolor{magenta}{doi} & \textcolor{magenta}{10.1000/BC1.0}\\ + Standard number & issn & 1234-5678\\ + \textcolor{red}{Notes} & \textcolor{red}{note} & \textcolor{red}{This is a made up citation}\\ + Availability & url & https://merlin.fit.vutbr.cz\\ + Path & path & Home; Art; The art of citation +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliograpic citation} + +\medskip + +\noindent \textsc{Nováková}, J. Post citation. \textit{Web on writing theses and dissertations} [online]. Edited by Jan NOVÁK. version 1.0. Brno: Brno University of Technology, Faculty of information technology, 2. february 1998 14:10. revised 12. 2. 2020 [cit. 2020-02-12]. DOI: 10.1000/BC1.0. ISSN 1234-5678. This is a made up citation. Available at: \url{https://merlin.fit.vutbr.cz} Path: Home; Art; The Art of Citation. +%------------------------------------------------------------------------------- +\newpage +\section*{Web site -- @Website} +\label{pr-website} +\noindent \textbf{Record items} + +\medskip + +\begin{tabularx}{0.95\linewidth}{X X >{\raggedright\arraybackslash}X} + Element & BibTeX item & Example\\\hline + Author (person or organisation) & author & Nováková, Jana\\ + Site title & title & Web on writing theses and citations\\ + \textcolor{blue}{Site subtitle} & \textcolor{blue}{subtitle} & \\ + \textcolor{magenta}{Type of medium} & \textcolor{magenta}{howpublished} & \textcolor{magenta}{online}\\ + \textcolor{blue}{Secondary author(s)} & \textcolor{blue}{contributory} & \textcolor{blue}{Edited by Jan NOVÁK}\\ + \textcolor{red}{Version} & \textcolor{red}{version} & \textcolor{red}{version 1.0}\\ + \textcolor{red}{Place of publication} & \textcolor{red}{address} & \textcolor{red}{Brno}\\ + \textcolor{red}{Publisher} & \textcolor{red}{publisher} & \textcolor{red}{Brno University of Technology, Faculty of information technology}\\ + \textcolor{blue}{Day} & \textcolor{blue}{day} & \textcolor{blue}{12}\\ + \textcolor{blue}{Month} & \textcolor{blue}{month} & \textcolor{blue}{2}\\ + Year & year & 2020\\ + \textcolor{blue}{Time of publication} & \textcolor{blue}{time} & \textcolor{blue}{14:00}\\ + Revision & revised & revised 12. 2. 2020\\ + Date of citation & cited & 2020-02-12\\ + \textcolor{magenta}{Digital object identifier} & \textcolor{magenta}{doi} & \textcolor{magenta}{10.1000/BC1.0}\\ + Standard number & issn & 1234-5678\\ + \textcolor{red}{Notes} & \textcolor{red}{note} & \textcolor{red}{This is a made up citation}\\ + Availability & url & https://merlin.fit.vutbr.cz +\end{tabularx} + +\bigskip + +\noindent \textbf{Bibliographic citation} + +\medskip + +\noindent \textsc{Nováková}, J. \textit{Web on writing theses and dissertations} [online]. Edited by Jan NOVÁK. version 1.0. Brno: Brno University of Technology, Faculty of information technology, 2. february 1998 14:10. revised 12. 2. 2020 [cit. 2020-02-12]. DOI: 10.1000/BC1.0. ISSN 1234-5678. This is a made up citation. Available at: \url{https://merlin.fit.vutbr.cz}. + +% For compilation piecewise (see projekt.tex), it is necessary to uncomment it +%\end{document} diff --git a/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu-30-prilohy-appendices.tex b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu-30-prilohy-appendices.tex new file mode 100644 index 0000000..2925c66 --- /dev/null +++ b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu-30-prilohy-appendices.tex @@ -0,0 +1,24 @@ +% Tento soubor nahraďte vlastním souborem s přílohami (nadpisy níže jsou pouze pro příklad) + +% Pro kompilaci po částech (viz projekt.tex), nutno odkomentovat a upravit +%\documentclass[../projekt.tex]{subfiles} +%\begin{document} + +% Umístění obsahu paměťového média do příloh je vhodné konzultovat s vedoucím +%\chapter{Obsah přiloženého paměťového média} + +%\chapter{Manuál} + +%\chapter{Konfigurační soubor} + +%\chapter{RelaxNG Schéma konfiguračního souboru} + +%\chapter{Plakát} + +\chapter{Jak pracovat s touto šablonou} +\label{jak} + +TODO + +% Pro kompilaci po částech (viz projekt.tex) nutno odkomentovat +%\end{document} diff --git a/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.aux b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.aux new file mode 100644 index 0000000..76e0de2 --- /dev/null +++ b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.aux @@ -0,0 +1,46 @@ +\relax +\providecommand\hyper@newdestlabel[2]{} +\providecommand\babel@aux[2]{} +\@nameuse{bbl@beforestart} +\catcode `"\active +\catcode `-\active +\catcode `^\active +\catcode `'\active +\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument} +\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined +\global\let\oldcontentsline\contentsline +\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global\let\oldnewlabel\newlabel +\gdef\newlabel#1#2{\newlabelxx{#1}#2} +\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\ifx\hyper@anchor\@undefined +\let\contentsline\oldcontentsline +\let\newlabel\oldnewlabel +\fi} +\fi} +\global\let\hyper@last\relax +\gdef\HyperFirstAtBeginDocument#1{#1} +\providecommand\HyField@AuxAddToFields[1]{} +\providecommand\HyField@AuxAddToCoFields[2]{} +\babel@aux{czech}{} +\@writefile{toc}{\contentsline {chapter}{\numberline {1}Úvod}{3}{chapter.1}\protected@file@percent } +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {chapter}{\numberline {2}Abstrakt}{4}{chapter.2}\protected@file@percent } +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{abstrakt}{{2}{4}{Abstrakt}{chapter.2}{}} +\bibstyle{bib-styles/Pysny/czplain} +\bibdata{xlanro00-Generovani-3D-modelu-otisku-prstu-20-literatura-bibliography} +\@writefile{toc}{\contentsline {chapter}{\numberline {3}Závěr}{5}{chapter.3}\protected@file@percent } +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{zaver}{{3}{5}{Závěr}{chapter.3}{}} +\@writefile{toc}{\contentsline {chapter}{Literatura}{6}{chapter*.3}\protected@file@percent } +\ttl@writefile{ptc}{\ttl@starttoc{chapters@1}} +\@writefile{toc}{\contentsline {chapter}{\numberline {A}Jak pracovat s touto šablonou}{7}{appendix.A}\protected@file@percent } +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{jak}{{A}{7}{Jak pracovat s touto šablonou}{appendix.A}{}} +\ttl@finishall +\gdef \@abspage@last{10} diff --git a/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.bbl b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.bbl new file mode 100644 index 0000000..4ab5dbb --- /dev/null +++ b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.bbl @@ -0,0 +1,5 @@ +\makeatletter +\makeatother +\begin{thebibliography}{} + +\end{thebibliography} diff --git a/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.blg b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.blg new file mode 100644 index 0000000..93d3f15 --- /dev/null +++ b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.blg @@ -0,0 +1,55 @@ +This is BibTeX, Version 0.99d (TeX Live 2022/dev/Debian) +Capacity: max_strings=200000, hash_size=200000, hash_prime=170003 +The top-level auxiliary file: xlanro00-Generovani-3D-modelu-otisku-prstu.aux +The style file: bib-styles/Pysny/czplain.bst +I found no \citation commands---while reading file xlanro00-Generovani-3D-modelu-otisku-prstu.aux +Reallocated singl_function (elt_size=4) to 100 items from 50. +Reallocated singl_function (elt_size=4) to 100 items from 50. +Reallocated wiz_functions (elt_size=4) to 6000 items from 3000. +Reallocated singl_function (elt_size=4) to 100 items from 50. +Reallocated singl_function (elt_size=4) to 100 items from 50. +Reallocated singl_function (elt_size=4) to 100 items from 50. +Reallocated singl_function (elt_size=4) to 100 items from 50. +Database file #1: xlanro00-Generovani-3D-modelu-otisku-prstu-20-literatura-bibliography.bib +You've used 0 entries, + 3946 wiz_defined-function locations, + 812 strings with 5351 characters, +and the built_in function-call counts, 22 in all, are: += -- 0 +> -- 0 +< -- 0 ++ -- 0 +- -- 0 +* -- 2 +:= -- 7 +add.period$ -- 0 +call.type$ -- 0 +change.case$ -- 0 +chr.to.int$ -- 0 +cite$ -- 0 +duplicate$ -- 0 +empty$ -- 1 +format.name$ -- 0 +if$ -- 1 +int.to.chr$ -- 0 +int.to.str$ -- 0 +missing$ -- 0 +newline$ -- 5 +num.names$ -- 0 +pop$ -- 0 +preamble$ -- 1 +purify$ -- 0 +quote$ -- 0 +skip$ -- 1 +stack$ -- 0 +substring$ -- 0 +swap$ -- 0 +text.length$ -- 0 +text.prefix$ -- 0 +top$ -- 0 +type$ -- 0 +warning$ -- 0 +while$ -- 0 +width$ -- 0 +write$ -- 4 +(There was 1 error message) diff --git a/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.lof b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.lof new file mode 100644 index 0000000..5eb90dc --- /dev/null +++ b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.lof @@ -0,0 +1,6 @@ +\babel@toc {czech}{}\relax +\addvspace {10\p@ } +\addvspace {10\p@ } +\addvspace {10\p@ } +\addvspace {10\p@ } +\contentsfinish diff --git a/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.log b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.log new file mode 100644 index 0000000..a0903ba --- /dev/null +++ b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.log @@ -0,0 +1,787 @@ +This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2022/dev/Debian) (preloaded format=pdflatex 2022.12.2) 4 DEC 2022 20:52 +entering extended mode + restricted \write18 enabled. + %&-line parsing enabled. +**xlanro00-Generovani-3D-modelu-otisku-prstu +(./xlanro00-Generovani-3D-modelu-otisku-prstu.tex +LaTeX2e <2021-11-15> patch level 1 +L3 programming layer <2022-01-21> (./fitthesis.cls +Document Class: fitthesis 2022/11/14 Sablona pro BP/DP +(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls +Document Class: report 2021/10/04 v1.4n Standard LaTeX document class +(/usr/share/texlive/texmf-dist/tex/latex/base/size11.clo +File: size11.clo 2021/10/04 v1.4n Standard LaTeX file (size option) +) +\c@part=\count185 +\c@chapter=\count186 +\c@section=\count187 +\c@subsection=\count188 +\c@subsubsection=\count189 +\c@paragraph=\count190 +\c@subparagraph=\count191 +\c@figure=\count192 +\c@table=\count193 +\abovecaptionskip=\skip47 +\belowcaptionskip=\skip48 +\bibindent=\dimen138 +) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +Package: amsmath 2021/10/15 v2.17l AMS math features +\@mathmargin=\skip49 + +For additional information on amsmath, use the `?' option. +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +Package: amstext 2021/08/26 v2.01 AMS text + +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +File: amsgen.sty 1999/11/30 v2.0 generic functions +\@emptytoks=\toks16 +\ex@=\dimen139 +)) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +Package: amsbsy 1999/11/29 v1.2d Bold Symbols +\pmbraise@=\dimen140 +) +(/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +Package: amsopn 2021/08/26 v2.02 operator names +) +\inf@bad=\count194 +LaTeX Info: Redefining \frac on input line 234. +\uproot@=\count195 +\leftroot@=\count196 +LaTeX Info: Redefining \overline on input line 399. +\classnum@=\count197 +\DOTSCASE@=\count198 +LaTeX Info: Redefining \ldots on input line 496. +LaTeX Info: Redefining \dots on input line 499. +LaTeX Info: Redefining \cdots on input line 620. +\Mathstrutbox@=\box50 +\strutbox@=\box51 +\big@size=\dimen141 +LaTeX Font Info: Redeclaring font encoding OML on input line 743. +LaTeX Font Info: Redeclaring font encoding OMS on input line 744. +\macc@depth=\count199 +\c@MaxMatrixCols=\count266 +\dotsspace@=\muskip16 +\c@parentequation=\count267 +\dspbrk@lvl=\count268 +\tag@help=\toks17 +\row@=\count269 +\column@=\count270 +\maxfields@=\count271 +\andhelp@=\toks18 +\eqnshift@=\dimen142 +\alignsep@=\dimen143 +\tagshift@=\dimen144 +\tagwidth@=\dimen145 +\totwidth@=\dimen146 +\lineht@=\dimen147 +\@envbody=\toks19 +\multlinegap=\skip50 +\multlinetaggap=\skip51 +\mathdisplay@stack=\toks20 +LaTeX Info: Redefining \[ on input line 2938. +LaTeX Info: Redefining \] on input line 2939. +) +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2013/01/14 v3.01 AMS font symbols + +(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Redeclaring math symbol \hbar on input line 98. +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 106. +)) +(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2022/01/26 3.70 The Babel package +\babel@savecnt=\count272 +\U@D=\dimen148 +\l@unhyphenated=\language87 + +(/usr/share/texlive/texmf-dist/tex/generic/babel/txtbabel.def) +\bbl@readstream=\read2 +\bbl@dirlevel=\count273 + +(/usr/share/texlive/texmf-dist/tex/generic/babel-czech/czech.ldf +Language: czech 2008/07/06 v3.1a Czech support from the babel system +Package babel Info: Making " an active character on input line 172. +\cs@wordlen=\count274 +Package babel Info: Making - an active character on input line 226. +) +(/usr/share/texlive/texmf-dist/tex/generic/babel-slovak/slovak.ldf +Language: slovak 2008/07/06 v3.1a Slovak support from the babel system +Package babel Info: Making ^ an active character on input line 123. +Package babel Info: Making ' an active character on input line 129. +LaTeX Info: Redefining \uv on input line 278. +\cs@wordlen=\count275 +) +(/usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf +Language: english 2017/06/06 v3.3r English support from the babel system +Package babel Info: Hyphen rules for 'canadian' set to \l@english +(babel) (\language0). Reported on input line 102. +Package babel Info: Hyphen rules for 'australian' set to \l@ukenglish +(babel) (\language76). Reported on input line 105. +Package babel Info: Hyphen rules for 'newzealand' set to \l@ukenglish +(babel) (\language76). Reported on input line 108. +)) +(/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +Package: inputenc 2021/02/14 v1.3d Input encoding file +\inpenc@prehook=\toks21 +\inpenc@posthook=\toks22 +) +(/usr/share/texlive/texmf-dist/tex/latex/cmap/cmap.sty +Package: cmap 2021/02/06 v1.0j CMap support: searchable PDF +) +(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2021/04/29 v2.0v Standard LaTeX package +<>) +(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty +\Urlmuskip=\muskip17 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +(/usr/share/texlive/texmf-dist/tex/latex/ragged2e/ragged2e.sty +Package: ragged2e 2021/12/15 v3.1 ragged2e Package +\CenteringLeftskip=\skip52 +\RaggedLeftLeftskip=\skip53 +\RaggedRightLeftskip=\skip54 +\CenteringRightskip=\skip55 +\RaggedLeftRightskip=\skip56 +\RaggedRightRightskip=\skip57 +\CenteringParfillskip=\skip58 +\RaggedLeftParfillskip=\skip59 +\RaggedRightParfillskip=\skip60 +\JustifyingParfillskip=\skip61 +\CenteringParindent=\skip62 +\RaggedLeftParindent=\skip63 +\RaggedRightParindent=\skip64 +\JustifyingParindent=\skip65 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty +Package: color 2021/12/07 v1.3c Standard LaTeX Color (DPC) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package color Info: Driver file: pdftex.def on input line 149. + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +File: pdftex.def 2020/10/05 v1.2a Graphics/color driver for pdftex +)) +(/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty +Package: etoolbox 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count276 +) +(/usr/share/texlive/texmf-dist/tex/latex/enumitem/enumitem.sty +Package: enumitem 2019/06/20 v3.9 Customized lists +\enitkv@toks@=\toks23 +\labelindent=\skip66 +\enit@outerparindent=\dimen149 +\enit@toks=\toks24 +\enit@inbox=\box52 +\enit@count@id=\count277 +\enitdp@description=\count278 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks25 +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +Package: graphics 2021/03/04 v1.4d Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +Package: trig 2021/08/11 v1.11 sin cos tan (DPC) +) +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration +) +Package graphics Info: Driver file: pdftex.def on input line 107. +) +\Gin@req@height=\dimen150 +\Gin@req@width=\dimen151 +) +\mkspc=\skip67 +\DESCRIPTION@totalleftmargin=\skip68 +\DESCRIPTION@linewidth=\skip69 + +(/usr/share/texlive/texmf-dist/tex/latex/opensans/opensans.sty +Package: opensans 2019/06/20 Style file for Open Sans. + +(/usr/share/texlive/texmf-dist/tex/latex/fontaxes/fontaxes.sty +Package: fontaxes 2020/07/21 v1.0e Font selection axes +LaTeX Info: Redefining \upshape on input line 29. +LaTeX Info: Redefining \itshape on input line 31. +LaTeX Info: Redefining \slshape on input line 33. +LaTeX Info: Redefining \swshape on input line 35. +LaTeX Info: Redefining \scshape on input line 37. +LaTeX Info: Redefining \sscshape on input line 39. +LaTeX Info: Redefining \ulcshape on input line 41. +LaTeX Info: Redefining \textsw on input line 47. +LaTeX Info: Redefining \textssc on input line 48. +LaTeX Info: Redefining \textulc on input line 49. +) +(/usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +Package: ifluatex 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead. + +(/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty +Package: iftex 2020/03/06 v1.0d TeX engine tests +)) +(/usr/share/texlive/texmf-dist/tex/generic/iftex/ifxetex.sty +Package: ifxetex 2019/10/25 v0.7 ifxetex legacy package. Use iftex instead. +) +(/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty +Package: xkeyval 2020/11/20 v2.8 package option processing (HA) + +(/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex +(/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex +\XKV@toks=\toks26 +\XKV@tempa@toks=\toks27 +) +\XKV@depth=\count279 +File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA) +))) +(/usr/share/texlive/texmf-dist/tex/latex/float/float.sty +Package: float 2001/11/08 v1.3d Float enhancements (AL) +\c@float@type=\count280 +\float@exts=\toks28 +\float@box=\box53 +\@float@everytoks=\toks29 +\@floatcapt=\box54 +) +(/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty +Package: calc 2017/05/25 v4.3 Infix arithmetic (KKT,FJ) +\calc@Acount=\count281 +\calc@Bcount=\count282 +\calc@Adimen=\dimen152 +\calc@Bdimen=\dimen153 +\calc@Askip=\skip70 +\calc@Bskip=\skip71 +LaTeX Info: Redefining \setlength on input line 80. +LaTeX Info: Redefining \addtolength on input line 81. +\calc@Ccount=\count283 +\calc@Cskip=\skip72 +) +(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty +Package: longtable 2021-09-01 v4.17 Multi-page Table package (DPC) +\LTleft=\skip73 +\LTright=\skip74 +\LTpre=\skip75 +\LTpost=\skip76 +\LTchunksize=\count284 +\LTcapwidth=\dimen154 +\LT@head=\box55 +\LT@firsthead=\box56 +\LT@foot=\box57 +\LT@lastfoot=\box58 +\LT@gbox=\box59 +\LT@cols=\count285 +\LT@rows=\count286 +\c@LT@tables=\count287 +\c@LT@chunks=\count288 +\LT@p@ftn=\toks30 +) +(/usr/share/texlive/texmf-dist/tex/latex/booktabs/booktabs.sty +Package: booktabs 2020/01/12 v1.61803398 Publication quality tables +\heavyrulewidth=\dimen155 +\lightrulewidth=\dimen156 +\cmidrulewidth=\dimen157 +\belowrulesep=\dimen158 +\belowbottomsep=\dimen159 +\aboverulesep=\dimen160 +\abovetopsep=\dimen161 +\cmidrulesep=\dimen162 +\cmidrulekern=\dimen163 +\defaultaddspace=\dimen164 +\@cmidla=\count289 +\@cmidlb=\count290 +\@aboverulesep=\dimen165 +\@belowrulesep=\dimen166 +\@thisruleclass=\count291 +\@lastruleclass=\count292 +\@thisrulewidth=\dimen167 +) +(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +Package: xcolor 2021/10/31 v2.13 LaTeX color extensions (UK) + +(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +File: color.cfg 2016/01/02 v1.6 sample color configuration +) +Package xcolor Info: Driver file: pdftex.def on input line 227. +LaTeX Info: Redefining \color on input line 711. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1352. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1356. +Package xcolor Info: Model `RGB' extended on input line 1368. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1370. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1371. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1372. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1373. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1374. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1375. +) +(/usr/share/texlive/texmf-dist/tex/latex/colortbl/colortbl.sty +Package: colortbl 2020/01/04 v1.0e Color table columns (DPC) + +(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty +Package: array 2021/10/04 v2.5f Tabular extension package (FMi) +\col@sep=\dimen168 +\ar@mcellbox=\box60 +\extrarowheight=\dimen169 +\NC@list=\toks31 +\extratabsurround=\skip77 +\backup@length=\skip78 +\ar@cellbox=\box61 +) +\everycr=\toks32 +\minrowclearance=\skip79 +) +(/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty +Package: multirow 2021/03/15 v2.8 Span multiple rows of a table +\multirow@colwidth=\skip80 +\multirow@cntb=\count293 +\multirow@dima=\skip81 +\bigstrutjot=\dimen170 +) +(/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty +Package: tabularx 2020/01/15 v2.11c `tabularx' package (DPC) +\TX@col@width=\dimen171 +\TX@old@table=\dimen172 +\TX@old@col=\dimen173 +\TX@target=\dimen174 +\TX@delta=\dimen175 +\TX@cols=\count294 +\TX@ftn=\toks33 +) +(/usr/share/texlive/texmf-dist/tex/latex/blindtext/blindtext.sty +Package: blindtext 2012/01/06 V2.0 blindtext-Package + +(/usr/share/texlive/texmf-dist/tex/latex/tools/xspace.sty +Package: xspace 2014/10/28 v1.13 Space after command names (DPC,MH) +) +\c@blindtext=\count295 +\c@Blindtext=\count296 +\c@blind@countparstart=\count297 +\blind@countxx=\count298 +\blindtext@numBlindtext=\count299 +\blind@countyy=\count300 +\c@blindlist=\count301 +\c@blindlistlevel=\count302 +\c@blindlist@level=\count303 +\blind@listitem=\count304 +\c@blind@listcount=\count305 +\c@blind@levelcount=\count306 +\blind@mathformula=\count307 +\blind@Mathformula=\count308 +\c@blind@randomcount=\count309 +\c@blind@randommax=\count310 +\c@blind@pangramcount=\count311 +\c@blind@pangrammax=\count312 +) +(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +\lst@mode=\count313 +\lst@gtempboxa=\box62 +\lst@token=\toks34 +\lst@length=\count314 +\lst@currlwidth=\dimen176 +\lst@column=\count315 +\lst@pos=\count316 +\lst@lostspace=\dimen177 +\lst@width=\dimen178 +\lst@newlines=\count317 +\lst@lineno=\count318 +\lst@maxwidth=\dimen179 + +(/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2020/03/24 1.8d (Carsten Heinz) +\c@lstnumber=\count319 +\lst@skipnumbers=\count320 +\lst@framebox=\box63 +) +(/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2020/03/24 1.8d listings configuration +)) +Package: listings 2020/03/24 1.8d (Carsten Heinz) + +(/usr/share/texlive/texmf-dist/tex/latex/appendix/appendix.sty +Package: appendix 2020/02/08 v1.2c extra appendix facilities +\c@@pps=\count321 +\c@@ppsavesec=\count322 +\c@@ppsaveapp=\count323 +) +(/usr/share/texlive/texmf-dist/tex/latex/titlesec/titletoc.sty +Package: titletoc 2021/07/05 v2.14 TOC entries +\ttl@leftsep=\dimen180 +) +(/usr/share/texlive/texmf-dist/tex/latex/ae/ae.sty +Package: ae 2001/02/12 1.3 Almost European Computer Modern + +(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2021/04/29 v2.0v Standard LaTeX package +)) +(/usr/share/texlive/texmf-dist/tex/latex/regexpatch/regexpatch.sty +(/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty +Package: expl3 2022-01-21 L3 programming layer (loader) + +(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +File: l3backend-pdftex.def 2022-01-12 L3 backend support: PDF output (pdfTeX) +\l__color_backend_stack_int=\count324 +\l__pdf_internal_box=\box64 +)) +Package: regexpatch 2021/03/21 v0.2f Extending etoolbox patching commands + +(/usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +Package: xparse 2022-01-12 L3 Experimental document command parser +))) +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +Package: hyperref 2021-06-07 v7.00m Hypertext links for LaTeX + +(/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +Package: ltxcmds 2020-05-10 v1.25 LaTeX kernel commands for general use (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty +Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO +) + +(/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty +Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) +) +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode found. +) +(/usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +Package: kvsetkeys 2019/12/15 v1.18 Key value parser (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty +Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty +Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty +Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) +) +(/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +Package: kvoptions 2020-10-07 v3.14 Key value format for package options (HO) +) +\@linkdim=\dimen181 +\Hy@linkcounter=\count325 +\Hy@pagecounter=\count326 + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2021-06-07 v7.00m Hyperref: PDFDocEncoding definition (HO) +Now handling font encoding PD1 ... +... no UTF-8 mapping file for font encoding PD1 +) +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref-langpatches.def +File: hyperref-langpatches.def 2021-06-07 v7.00m Hyperref: patches for babel la +nguages +) +(/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty +Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty +Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO) +) +\Hy@SavedSpaceFactor=\count327 + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/puenc.def +File: puenc.def 2021-06-07 v7.00m Hyperref: PDF Unicode definition (HO) +Now handling font encoding PU ... +... no UTF-8 mapping file for font encoding PU +) +Package hyperref Info: Option `unicode' set `true' on input line 4073. +Package hyperref Info: Option `colorlinks' set `true' on input line 4073. +Package hyperref Info: Option `hyperindex' set `true' on input line 4073. +Package hyperref Info: Option `plainpages' set `false' on input line 4073. +Package hyperref Info: Hyper figures OFF on input line 4192. +Package hyperref Info: Link nesting OFF on input line 4197. +Package hyperref Info: Hyper index ON on input line 4200. +Package hyperref Info: Plain pages OFF on input line 4207. +Package hyperref Info: Backreferencing OFF on input line 4212. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4445. +\c@Hy@tempcnt=\count328 +LaTeX Info: Redefining \url on input line 4804. +\XeTeXLinkMargin=\dimen182 + +(/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty +Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO +) +)) +\Fld@menulength=\count329 +\Field@Width=\dimen183 +\Fld@charsize=\dimen184 +Package hyperref Info: Hyper figures OFF on input line 6076. +Package hyperref Info: Link nesting OFF on input line 6081. +Package hyperref Info: Hyper index ON on input line 6084. +Package hyperref Info: backreferencing OFF on input line 6091. +Package hyperref Info: Link coloring ON on input line 6094. +Package hyperref Info: Link coloring with OCG OFF on input line 6101. +Package hyperref Info: PDF/A mode OFF on input line 6106. +LaTeX Info: Redefining \ref on input line 6146. +LaTeX Info: Redefining \pageref on input line 6150. + +(/usr/share/texlive/texmf-dist/tex/latex/base/atbegshi-ltx.sty +Package: atbegshi-ltx 2021/01/10 v1.0c Emulation of the original atbegshi +package with kernel methods +) +\Hy@abspage=\count330 +\c@Item=\count331 +\c@Hfootnote=\count332 +) +Package hyperref Info: Driver: hpdftex. + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2021-06-07 v7.00m Hyperref driver for pdfTeX + +(/usr/share/texlive/texmf-dist/tex/latex/base/atveryend-ltx.sty +Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atveryend pac +kage +with kernel methods +) +\Fld@listcount=\count333 +\c@bookmark@seq@number=\count334 + +(/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +Package: rerunfilecheck 2019/12/05 v1.9 Rerun checks for auxiliary files (HO) + +(/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) +) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +86. +) +\Hy@SectionHShift=\skip82 +) +(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/hypcap.sty +Package: hypcap 2016/05/16 v1.12 Adjusting the anchors of captions (HO) +) +\enitdp@checklist=\count335 +LaTeX Font Info: Trying to load font information for T1+lmr on input line 19 +8. + +(/usr/share/texmf/tex/latex/lm/t1lmr.fd +File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +(./xlanro00-Generovani-3D-modelu-otisku-prstu.aux) +\openout1 = `xlanro00-Generovani-3D-modelu-otisku-prstu.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 198. +LaTeX Font Info: ... okay on input line 198. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 198. +LaTeX Font Info: ... okay on input line 198. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 198. +LaTeX Font Info: ... okay on input line 198. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 198. +LaTeX Font Info: ... okay on input line 198. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 198. +LaTeX Font Info: ... okay on input line 198. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 198. +LaTeX Font Info: ... okay on input line 198. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 198. +LaTeX Font Info: ... okay on input line 198. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 198. +LaTeX Font Info: ... okay on input line 198. +LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 198. +LaTeX Font Info: ... okay on input line 198. + +(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count336 +\scratchdimen=\dimen185 +\scratchbox=\box65 +\nofMPsegments=\count337 +\nofMParguments=\count338 +\everyMPshowfont=\toks35 +\MPscratchCnt=\count339 +\MPscratchDim=\dimen186 +\MPnumerator=\count340 +\makeMPintoPDFobject=\count341 +\everyMPtoPDFconversion=\toks36 +) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf + +(/usr/share/texlive/texmf-dist/tex/latex/grfext/grfext.sty +Package: grfext 2019/12/03 v1.3 Manage graphics extensions (HO) +) +Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 +85. +Package grfext Info: Graphics extension search list: +(grfext) [.pdf,.png,.jpg,.mps,.jpeg,.jbig2,.jb2,.PDF,.PNG,.JPG,.JPE +G,.JBIG2,.JB2,.eps] +(grfext) \AppendGraphicsExtensions on input line 504. + +(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv +e +)) +\c@mv@tabular=\count342 +\c@mv@boldtabular=\count343 +\c@lstlisting=\count344 +Package hyperref Info: Link coloring ON on input line 198. + +(/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +Package: nameref 2021-04-02 v2.47 Cross-referencing by name of section + +(/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty +Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) +) +(/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) +) +\c@section@level=\count345 +) +LaTeX Info: Redefining \ref on input line 198. +LaTeX Info: Redefining \pageref on input line 198. +LaTeX Info: Redefining \nameref on input line 198. + +(./xlanro00-Generovani-3D-modelu-otisku-prstu.out) +(./xlanro00-Generovani-3D-modelu-otisku-prstu.out) +\@outlinefile=\write3 +\openout3 = `xlanro00-Generovani-3D-modelu-otisku-prstu.out'. + +LaTeX Font Info: Trying to load font information for T1+qhv on input line 20 +4. + +(/usr/share/texmf/tex/latex/tex-gyre/t1qhv.fd +File: t1qhv.fd 2009/09/25 v1.2 font definition file for T1/qhv +) +\@obrlogo=\box66 +\@rtext=\box67 +\@vyskartext=\skip83 +\@sirkartext=\skip84 +\@vyskaobr=\skip85 +\@sirkaobr=\skip86 + + +File: template-fig/VUT_symbol_barevne_CMYK_CZ.pdf Graphic file (type pdf) + +Package pdftex.def Info: template-fig/VUT_symbol_barevne_CMYK_CZ.pdf used on i +nput line 204. +(pdftex.def) Requested size: 116.65646pt x 115.17995pt. +LaTeX Font Info: Trying to load font information for T1+opensans-TLF on inpu +t line 204. + +(/usr/share/texlive/texmf-dist/tex/latex/opensans/T1opensans-TLF.fd +File: T1opensans-TLF.fd 2019/06/24 Font definitions for T1/opensans-TLF. +) +LaTeX Font Info: Font shape `T1/opensans-TLF/m/n' will be +(Font) scaled to size 18.0pt on input line 204. +LaTeX Font Info: Font shape `T1/opensans-TLF/b/n' will be +(Font) scaled to size 18.0pt on input line 204. +LaTeX Font Info: Font shape `T1/opensans-TLF/m/n' will be +(Font) scaled to size 11.0pt on input line 204. +LaTeX Font Info: Font shape `T1/opensans-TLF/b/n' will be +(Font) scaled to size 11.0pt on input line 204. +LaTeX Font Info: Font shape `T1/opensans-TLF/m/n' will be +(Font) scaled to size 14.0pt on input line 204. +LaTeX Font Info: Font shape `T1/opensans-TLF/b/n' will be +(Font) scaled to size 14.0pt on input line 204. +LaTeX Font Info: Font shape `T1/opensans-TLF/m/n' will be +(Font) scaled to size 10.0pt on input line 204. +LaTeX Font Info: Font shape `T1/opensans-TLF/b/n' will be +(Font) scaled to size 10.0pt on input line 204. + [1 + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <./template-fig/VUT_symbol_ +barevne_CMYK_CZ.pdf>] [2] [3] (./xlanro00-Generovani-3D-modelu-otisku-prstu.toc +) +\tf@toc=\write4 +\openout4 = `xlanro00-Generovani-3D-modelu-otisku-prstu.toc'. + +pdfTeX warning (ext4): destination with the same identifier (name{page.1}) has +been already used, duplicate ignored + + \relax +l.216 {\hypersetup{hidelinks}\listoffigures + } [1 + + +] +(./xlanro00-Generovani-3D-modelu-otisku-prstu.lof) +\tf@lof=\write5 +\openout5 = `xlanro00-Generovani-3D-modelu-otisku-prstu.lof'. + + +(./xlanro00-Generovani-3D-modelu-otisku-prstu-01-kapitoly-chapters.texpdfTeX wa +rning (ext4): destination with the same identifier (name{page.2}) has been alre +ady used, duplicate ignored + + \relax +l.9 \chapter + {Úvod} [2 + +] +Kapitola 1. +pdfTeX warning (ext4): destination with the same identifier (name{page.3}) has +been already used, duplicate ignored + + \relax +l.13 \chapter + {Abstrakt} [3 + +] +Kapitola 2. +[4 + +] +Kapitola 3. +) (./xlanro00-Generovani-3D-modelu-otisku-prstu.bbl [5 + +] + +LaTeX Warning: Empty `thebibliography' environment on input line 5. + +) +\c@ttl@toc@chapters=\count346 + (./xlanro00-Generovani-3D-modelu-otisku-prstu-30-prilohy-appendices.tex +[6 + +] +Příloha A. +) +\tf@ptc=\write6 +\openout6 = `xlanro00-Generovani-3D-modelu-otisku-prstu.ptc'. + + [7 + +] (./xlanro00-Generovani-3D-modelu-otisku-prstu.aux) +Package rerunfilecheck Info: File `xlanro00-Generovani-3D-modelu-otisku-prstu.o +ut' has not changed. +(rerunfilecheck) Checksum: BC22338126CD797A5DC99FB450544CBA;521. + ) +Here is how much of TeX's memory you used: + 15758 strings out of 478287 + 250717 string characters out of 5849289 + 569113 words of memory out of 5000000 + 33629 multiletter control sequences out of 15000+600000 + 524477 words of font info for 58 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 70i,5n,77p,438b,447s stack positions out of 5000i,500n,10000p,200000b,80000s +{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}{/usr/share/texlive/texmf-dist +/fonts/enc/dvips/opensans/a_jg4h6q.enc} +Output written on xlanro00-Generovani-3D-modelu-otisku-prstu.pdf (10 pages, 385 +419 bytes). +PDF statistics: + 127 PDF objects out of 1000 (max. 8388607) + 91 compressed objects within 1 object stream + 15 named destinations out of 1000 (max. 500000) + 56 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.out b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.out new file mode 100644 index 0000000..57a49a8 --- /dev/null +++ b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.out @@ -0,0 +1,5 @@ +\BOOKMARK [0][-]{chapter.1}{\376\377\000\332\000v\000o\000d}{}% 1 +\BOOKMARK [0][-]{chapter.2}{\376\377\000A\000b\000s\000t\000r\000a\000k\000t}{}% 2 +\BOOKMARK [0][-]{chapter.3}{\376\377\000Z\000\341\000v\001\033\000r}{}% 3 +\BOOKMARK [0][-]{chapter*.3}{\376\377\000L\000i\000t\000e\000r\000a\000t\000u\000r\000a}{}% 4 +\BOOKMARK [0][-]{appendix.A}{\376\377\000J\000a\000k\000\040\000p\000r\000a\000c\000o\000v\000a\000t\000\040\000s\000\040\000t\000o\000u\000t\000o\000\040\001\141\000a\000b\000l\000o\000n\000o\000u}{}% 5 diff --git a/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.pdf b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.pdf new file mode 100644 index 0000000..6ad9dc9 Binary files /dev/null and b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.pdf differ diff --git a/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.ptc b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.ptc new file mode 100644 index 0000000..82118f3 --- /dev/null +++ b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.ptc @@ -0,0 +1,8 @@ +\babel@toc {czech}{}\relax +\contentsline {chapter}{\numberline {1}Úvod}{3}{chapter.1}% +\contentsline {chapter}{\numberline {2}Abstrakt}{4}{chapter.2}% +\contentsline {chapter}{\numberline {3}Závěr}{5}{chapter.3}% +\contentsline {chapter}{Literatura}{6}{chapter*.3}% +\ttl@starttoc {chapters@1} +\contentsline {chapter}{\numberline {A}Jak pracovat s touto šablonou}{7}{appendix.A}% +\contentsfinish diff --git a/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.tex b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.tex new file mode 100644 index 0000000..65720e6 --- /dev/null +++ b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.tex @@ -0,0 +1,381 @@ +%============================================================================== +% Tento soubor použijte jako základ +% This file should be used as a base for the thesis +% Autoři / Authors: 2008 Michal Bidlo, 2022 Jaroslav Dytrych +% Kontakt pro dotazy a připomínky: sablona@fit.vutbr.cz +% Contact for questions and comments: sablona@fit.vutbr.cz +%============================================================================== +% kódování: UTF-8 (zmena prikazem iconv, recode nebo cstocs) +% encoding: UTF-8 (you can change it by command iconv, recode or cstocs) +%------------------------------------------------------------------------------ +% zpracování / processing: make, make pdf, make clean +%============================================================================== +% Soubory, které je nutné upravit nebo smazat: / Files which have to be edited or deleted: +% xlanro00-Generovani-3D-modelu-otisku-prstu-20-literatura-bibliography.bib - literatura / bibliography +% xlanro00-Generovani-3D-modelu-otisku-prstu-01-kapitoly-chapters.tex - obsah práce / the thesis content +% xlanro00-Generovani-3D-modelu-otisku-prstu-01-kapitoly-chapters-en.tex - obsah práce v angličtině / the thesis content in English +% xlanro00-Generovani-3D-modelu-otisku-prstu-30-prilohy-appendices.tex - přílohy / appendices +% xlanro00-Generovani-3D-modelu-otisku-prstu-30-prilohy-appendices-en.tex - přílohy v angličtině / appendices in English +%============================================================================== +\documentclass[]{fitthesis} % bez zadání - pro začátek práce, aby nebyl problém s překladem +%\documentclass[english]{fitthesis} % without assignment - for the work start to avoid compilation problem +%\documentclass[zadani]{fitthesis} % odevzdani do IS VUT a/nebo tisk s barevnými odkazy - odkazy jsou barevné +%\documentclass[english,zadani]{fitthesis} % for submission to the IS VUT and/or print with color links - links are color +%\documentclass[zadani,print]{fitthesis} % pro černobílý tisk - odkazy jsou černé +%\documentclass[english,zadani,print]{fitthesis} % for the black and white print - links are black +%\documentclass[zadani,cprint]{fitthesis} % pro barevný tisk - odkazy jsou černé, znak VUT barevný +%\documentclass[english,zadani,cprint]{fitthesis} % for the print - links are black, logo is color + +% Základní balíčky jsou dole v souboru šablony fitthesis.cls +% Basic packages are at the bottom of template file fitthesis.cls +% zde můžeme vložit vlastní balíčky / you can place own packages here + +% Pro seznam zkratek lze využít balíček Glossaries - nutno odkomentovat i níže a při kompilaci z konzoly i v Makefile (plnou verzi pro Perl, nebo lite) +% The Glossaries package can be used for the list of abbreviations - it is necessary to uncomment also below. When compiling from the console also in the Makefile (full version for Perl or lite) +%\usepackage{glossaries} +%\usepackage{glossary-superragged} +%\makeglossaries + +% Nastavení cesty k obrázkům +% Setting of a path to the pictures +%\graphicspath{{obrazky-figures/}{./obrazky-figures/}} +%\graphicspath{{obrazky-figures/}{../obrazky-figures/}} + +%---rm--------------- +\renewcommand{\rmdefault}{lmr}%zavede Latin Modern Roman jako rm / set Latin Modern Roman as rm +%---sf--------------- +\renewcommand{\sfdefault}{qhv}%zavede TeX Gyre Heros jako sf +%---tt------------ +\renewcommand{\ttdefault}{lmtt}% zavede Latin Modern tt jako tt + +% vypne funkci šablony, která automaticky nahrazuje uvozovky, +% aby nebyly prováděny nevhodné náhrady v popisech API apod. +% disables function of the template which replaces quotation marks +% to avoid unnecessary replacements in the API descriptions etc. +\csdoublequotesoff + +\usepackage{url} + +% ======================================================================= +% balíček "hyperref" vytváří klikací odkazy v pdf, pokud tedy použijeme pdflatex +% problém je, že balíček hyperref musí být uveden jako poslední, takže nemůže +% být v šabloně +% "hyperref" package create clickable links in pdf if you are using pdflatex. +% Problem is that this package have to be introduced as the last one so it +% can not be placed in the template file. +\ifWis +\ifx\pdfoutput\undefined % nejedeme pod pdflatexem / we are not using pdflatex +\else + \usepackage{color} + \usepackage[unicode,colorlinks,hyperindex,plainpages=false,pdftex]{hyperref} + \definecolor{hrcolor-ref}{RGB}{223,52,30} + \definecolor{hrcolor-cite}{HTML}{2F8F00} + \definecolor{hrcolor-urls}{HTML}{092EAB} + \hypersetup{ + linkcolor=hrcolor-ref, + citecolor=hrcolor-cite, + filecolor=magenta, + urlcolor=hrcolor-urls + } + \def\pdfBorderAttrs{/Border [0 0 0] } % bez okrajů kolem odkazů / without margins around links + \pdfcompresslevel=9 +\fi +\else % pro tisk budou odkazy, na které se dá klikat, černé / for the print clickable links will be black +\ifx\pdfoutput\undefined % nejedeme pod pdflatexem / we are not using pdflatex +\else + \usepackage{color} + \usepackage[unicode,colorlinks,hyperindex,plainpages=false,pdftex,urlcolor=black,linkcolor=black,citecolor=black]{hyperref} + \definecolor{links}{rgb}{0,0,0} + \definecolor{anchors}{rgb}{0,0,0} + \def\AnchorColor{anchors} + \def\LinkColor{links} + \def\pdfBorderAttrs{/Border [0 0 0] } % bez okrajů kolem odkazů / without margins around links + \pdfcompresslevel=9 +\fi +\fi +% Řešení problému, kdy klikací odkazy na obrázky vedou za obrázek +% This solves the problems with links which leads after the picture +\usepackage[all]{hypcap} + + +% Informace o práci/projektu / Information about the thesis +%--------------------------------------------------------------------------- +\projectinfo{ + %Prace / Thesis + project={BP}, %typ práce BP/SP/DP/DR / thesis type (SP = term project) + year={2023}, % rok odevzdání / year of submission + date=\today, % datum odevzdání / submission date + %Nazev prace / thesis title + title.cs={Generování 3D modelu otisku prstu}, % název práce v češtině či slovenštině (dle zadání) / thesis title in czech language (according to assignment) + title.en={Generating a 3D Fingerprint Model}, % název práce v angličtině / thesis title in english + %title.length={14.5cm}, % nastavení délky bloku s titulkem pro úpravu zalomení řádku (lze definovat zde nebo níže) / setting the length of a block with a thesis title for adjusting a line break (can be defined here or below) + %sectitle.length={14.5cm}, % nastavení délky bloku s druhým titulkem pro úpravu zalomení řádku (lze definovat zde nebo níže) / setting the length of a block with a second thesis title for adjusting a line break (can be defined here or below) + %dectitle.length={14.5cm}, % nastavení délky bloku s titulkem nad prohlášením pro úpravu zalomení řádku (lze definovat zde nebo níže) / setting the length of a block with a thesis title above declaration for adjusting a line break (can be defined here or below) + %Autor / Author + author.name={Rostislav}, % jméno autora / author name + author.surname={Lán}, % příjmení autora / author surname + %author.title.p={Bc.}, % titul před jménem (nepovinné) / title before the name (optional) + %author.title.a={Ph.D.}, % titul za jménem (nepovinné) / title after the name (optional) + %Ustav / Department + department={UITS}, % doplňte příslušnou zkratku dle ústavu na zadání: UPSY/UIFS/UITS/UPGM / fill in appropriate abbreviation of the department according to assignment: UPSY/UIFS/UITS/UPGM + % Školitel / supervisor + supervisor.name={Petr}, % jméno školitele / supervisor name + supervisor.surname={Malaník}, % příjmení školitele / supervisor surname + supervisor.title.p={Ing.}, %titul před jménem (nepovinné) / title before the name (optional) + %supervisor.title.a={}, %titul za jménem (nepovinné) / title after the name (optional) + % Klíčová slova / keywords + keywords.cs={ + otisk prstu, 3D model, generování 3D modelu otisků prstu, + tvorba falzifikátů, falzifikát, snímač otisků prstu, čtečka otisků prstu, + obrazový filtr, + 3D tisk, pryskyřice pro 3D tisk, MSLA tiskárna + }, % klíčová slova v českém či slovenském jazyce / keywords in czech or slovak language + keywords.en={ + fingerprint, finger, 3D model, 3D fingerprint model generation, + creation of fake fingerprints, fake fingerprints, fingerprint sensor, fingerprint reader, + image filter, + 3D printing, 3D printing resin, MSLA printer + }, % klíčová slova v anglickém jazyce / keywords in english + %keywords.en={Here, individual keywords separated by commas will be written in English.}, + % Abstrakt / Abstract + abstract.cs={ + Tato práce se zabývá problematikou vytváření falzifikátů prstů z nasnímaných otisků prstů. + Hlavním cílem práce je vytvořit falzifikát otisku prstu schopný oklamat různé typy snímačů. + V rámci práce bude vytvořena aplikace, schopná načíst nasnímaný otisk, upravit je pomocí knihovny filtrů a převést je na trojrozměrný tisknutelný model. + + TODO - postup, nástroje, řešení problému, vyhodnocení, splnění cíle + + TODO - výsledky, jak dobře je problém řešen + + TODO - přínos, užitečnost + + Zasvědcuje čtenáře do problematiky a shrnuje teoretické poznatky, nabízí postupy řešení, navrhuje jej, implementuje a testuje. + },% abstrakt v českém či slovenském jazyce / abstract in czech or slovak language + abstract.en={ + TODO + }, % abstrakt v anglickém jazyce / abstract in english + %abstract.en={An abstract of the work in English will be written in this paragraph.}, + % Prohlášení (u anglicky psané práce anglicky, u slovensky psané práce slovensky; u projektové praxe lze zakomentovat) / Declaration (for thesis in english should be in english; for project practice can be commented out) + declaration={Prohlašuji, že jsem tuto bakalářskou práci vypracoval samostatně pod vedením pana Ing. Petra Malaníka. + Uvedl jsem všechny literární prameny, publikace a další zdroje, ze kterých jsem čerpal.}, + %declaration={I hereby declare that this Bachelor's thesis was prepared as an original work by the author under the supervision of Mr. X + % The supplementary information was provided by Mr. Y + % I have listed all the literary sources, publications and other sources, which were used during the preparation of this thesis.}, + % Poděkování (nepovinné, nejlépe v jazyce práce; nechcete-li, zakomentujte pro skrytí nadpisu) / Acknowledgement (optional, ideally in the language of the thesis; comment out for hiding including heading) + %acknowledgment={V této sekci je možno uvést poděkování vedoucímu práce a těm, kteří poskytli odbornou pomoc + %(externí zadavatel, konzultant apod.).}, + %acknowledgment={Here it is possible to express thanks to the supervisor and to the people which provided professional help + %(external submitter, consultant, etc.).}, + % Rozšířený abstrakt (cca 3 normostrany) - lze definovat zde nebo níže / Extended abstract (approximately 3 standard pages) - can be defined here or below + %extendedabstract={Do tohoto odstavce bude zapsán rozšířený výtah (abstrakt) práce v českém (slovenském) jazyce.}, + %extabstract.odd={true}, % Začít rozšířený abstrakt na liché stránce? / Should extended abstract start on the odd page? + %faculty={FIT}, % FIT/FEKT/FSI/FA/FCH/FP/FAST/FAVU/USI/DEF + faculty.cs={Fakulta informačních technologií}, % Fakulta v češtině - pro využití této položky výše zvolte fakultu DEF / Faculty in Czech - for use of this entry select DEF above + faculty.en={Faculty of Information Technology}, % Fakulta v angličtině - pro využití této položky výše zvolte fakultu DEF / Faculty in English - for use of this entry select DEF above + department.cs={Ústav matematiky}, % Ústav v češtině - pro využití této položky výše zvolte ústav DEF nebo jej zakomentujte / Department in Czech - for use of this entry select DEF above or comment it out + department.en={Institute of intelligent systems} % Ústav v angličtině - pro využití této položky výše zvolte ústav DEF nebo jej zakomentujte / Department in English - for use of this entry select DEF above or comment it out +} + +% Rozšířený abstrakt (cca 3 normostrany) - lze definovat zde nebo výše / Extended abstract (approximately 3 standard pages) - can be defined here or above +%\extendedabstract{Do tohoto odstavce bude zapsán výtah (abstrakt) práce v českém (slovenském) jazyce.} +% Začít rozšířený abstrakt na liché stránce? / Should extended abstract start on the odd page? +%\extabstractodd{true} + +% nastavení délky bloku s titulkem pro úpravu zalomení řádku - lze definovat zde nebo výše / setting the length of a block with a thesis title for adjusting a line break - can be defined here or above +%\titlelength{14.5cm} +% nastavení délky bloku s druhým titulkem pro úpravu zalomení řádku - lze definovat zde nebo výše / setting the length of a block with a second thesis title for adjusting a line break - can be defined here or above +%\sectitlelength{14.5cm} +% nastavení délky bloku s titulkem nad prohlášením pro úpravu zalomení řádku - lze definovat zde nebo výše / setting the length of a block with a thesis title above declaration for adjusting a line break - can be defined here or above +%\dectitlelength{14.5cm} + +% řeší první/poslední řádek odstavce na předchozí/následující stránce +% solves first/last row of the paragraph on the previous/next page +\clubpenalty=10000 +\widowpenalty=10000 + +% checklist +\newlist{checklist}{itemize}{1} +\setlist[checklist]{label=$\square$} + +% Kompilace po částech (rychlejší, ale v náhledu nemusí být vše aktuální) +% Compilation piecewise (faster, but not all parts in preview will be up-to-date) +% Další informace viz / For more information see https://www.overleaf.com/learn/latex/Multi-file_LaTeX_projects +% \usepackage{subfiles} + +% Nechcete-li, aby se u oboustranného tisku roztahovaly mezery pro zaplnění stránky, odkomentujte následující řádek / If you do not want enlarged spacing for filling of the pages in case of duplex printing, uncomment the following line +% \raggedbottom + +\begin{document} +% Vysazeni titulnich stran / Typesetting of the title pages +% ---------------------------------------------- +\maketitle +% Obsah +% ---------------------------------------------- +\setlength{\parskip}{0pt} + +{\hypersetup{hidelinks}\tableofcontents} + +% Seznam obrazku a tabulek (pokud prace obsahuje velke mnozstvi obrazku, tak se to hodi) +% List of figures and list of tables (if the thesis contains a lot of pictures, it is good) +\ifczech + \renewcommand\listfigurename{Seznam obrázků} +\fi +\ifslovak +\renewcommand\listfigurename{Zoznam obrázkov} +\fi +{\hypersetup{hidelinks}\listoffigures} + +\ifczech + \renewcommand\listtablename{Seznam tabulek} +\fi +\ifslovak + \renewcommand\listtablename{Zoznam tabuliek} +\fi +% {\hypersetup{hidelinks}\listoftables} + +% Seznam zkratek / List of abbreviations +%\ifczech +% \renewcommand*\glossaryname{Seznam zkratek}% +% \renewcommand*\entryname{Zkratka} +% \renewcommand*\descriptionname{Význam} +%\fi +%\ifslovak +% \renewcommand*\glossaryname{Zoznam skratiek}% +% \renewcommand*\entryname{Skratka} +% \renewcommand*\descriptionname{Význam} +%\fi +%\ifenglish +% \renewcommand*\glossaryname{List of abbreviations}% +% \renewcommand*\entryname{Abbreviation} +% \renewcommand*\descriptionname{Meaning} +%\fi +% Definice zkratek - z textu se odkazují např. \Gls{TF–IDF} +% Definition of abbreviations - referred from the text e.g. \Gls{TF–IDF} +%\newglossaryentry{TF–IDF} +%{ +% name={TF–IDF}, +% description={Term Frequency-Inverse Document Frequency} +%} +% +%\setglossarystyle{superragged} +%\printglossaries + + +\ifODSAZ + \setlength{\parskip}{0.5\bigskipamount} +\else + \setlength{\parskip}{0pt} +\fi + +% vynechani stranky v oboustrannem rezimu +% Skip the page in the two-sided mode +\iftwoside + \cleardoublepage +\fi + +% Text prace / Thesis text +% ---------------------------------------------- +\ifenglish + \input{xlanro00-Generovani-3D-modelu-otisku-prstu-01-kapitoly-chapters-en} +\else + \input{xlanro00-Generovani-3D-modelu-otisku-prstu-01-kapitoly-chapters} +\fi + +% Kompilace po částech (viz výše, nutno odkomentovat a zakomentovat input výše) +% Compilation piecewise (see above, it is necessary to uncomment it and comment out input above) +%\subfile{chapters/projekt-01-uvod-introduction} +% ... +%\subfile{chapters/projekt-05-zaver-conclusion} + +% Pouzita literatura / Bibliography +% ---------------------------------------------- +\ifslovak + \makeatletter + \def\@openbib@code{\addcontentsline{toc}{chapter}{Literatúra}} + \makeatother + \bibliographystyle{bib-styles/Pysny/skplain} +\else + \ifczech + \makeatletter + \def\@openbib@code{\addcontentsline{toc}{chapter}{Literatura}} + \makeatother + \bibliographystyle{bib-styles/Pysny/czplain} + \else + \makeatletter + \def\@openbib@code{\addcontentsline{toc}{chapter}{Bibliography}} + \makeatother + \bibliographystyle{bib-styles/Pysny/enplain} + % \bibliographystyle{alpha} + \fi +\fi +\begin{flushleft} + \bibliography{xlanro00-Generovani-3D-modelu-otisku-prstu-20-literatura-bibliography} +\end{flushleft} + +% vynechani stranky v oboustrannem rezimu +% Skip the page in the two-sided mode +\iftwoside + \cleardoublepage +\fi + +% Prilohy / Appendices +% --------------------------------------------- +\appendix +\ifczech + \renewcommand{\appendixpagename}{Přílohy} + \renewcommand{\appendixtocname}{Přílohy} + \renewcommand{\appendixname}{Příloha} +\fi +\ifslovak + \renewcommand{\appendixpagename}{Prílohy} + \renewcommand{\appendixtocname}{Prílohy} + \renewcommand{\appendixname}{Príloha} +\fi +% \appendixpage + +% vynechani stranky v oboustrannem rezimu +% Skip the page in the two-sided mode +%\iftwoside +% \cleardoublepage +%\fi + +\ifslovak + % \section*{Zoznam príloh} + % \addcontentsline{toc}{section}{Zoznam príloh} +\else + \ifczech + % \section*{Seznam příloh} + % \addcontentsline{toc}{section}{Seznam příloh} + \else + % \section*{List of Appendices} + % \addcontentsline{toc}{section}{List of Appendices} + \fi +\fi +\startcontents[chapters] +\setlength{\parskip}{0pt} +% seznam příloh / list of appendices +% \printcontents[chapters]{l}{0}{\setcounter{tocdepth}{2}} + +\ifODSAZ + \setlength{\parskip}{0.5\bigskipamount} +\else + \setlength{\parskip}{0pt} +\fi + +% vynechani stranky v oboustrannem rezimu +\iftwoside + \cleardoublepage +\fi + +% Přílohy / Appendices +\ifenglish + \input{xlanro00-Generovani-3D-modelu-otisku-prstu-30-prilohy-appendices-en} +\else + \input{xlanro00-Generovani-3D-modelu-otisku-prstu-30-prilohy-appendices} +\fi + +% Kompilace po částech (viz výše, nutno odkomentovat) +% Compilation piecewise (see above, it is necessary to uncomment it) +%\subfile{xlanro00-Generovani-3D-modelu-otisku-prstu-30-prilohy-appendices} + +\end{document} diff --git a/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.toc b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.toc new file mode 100644 index 0000000..446c5b1 --- /dev/null +++ b/latex_verze/xlanro00-Generovani-3D-modelu-otisku-prstu.toc @@ -0,0 +1,7 @@ +\babel@toc {czech}{}\relax +\contentsline {chapter}{\numberline {1}Úvod}{3}{chapter.1}% +\contentsline {chapter}{\numberline {2}Abstrakt}{4}{chapter.2}% +\contentsline {chapter}{\numberline {3}Závěr}{5}{chapter.3}% +\contentsline {chapter}{Literatura}{6}{chapter*.3}% +\contentsline {chapter}{\numberline {A}Jak pracovat s touto šablonou}{7}{appendix.A}% +\contentsfinish