]> mj.ucw.cz Git - ads2.git/commitdiff
Prvni verze zapisku o KMP.
authorMartin Mares <mj@ucw.cz>
Fri, 20 Nov 2009 14:04:17 +0000 (15:04 +0100)
committerMartin Mares <mj@ucw.cz>
Fri, 20 Nov 2009 14:04:17 +0000 (15:04 +0100)
6-kmp/6-kmp.tex [new file with mode: 0644]
6-kmp/Makefile [new file with mode: 0644]
6-kmp/barb.eps [new file with mode: 0644]
6-kmp/barb.svg [new file with mode: 0644]

diff --git a/6-kmp/6-kmp.tex b/6-kmp/6-kmp.tex
new file mode 100644 (file)
index 0000000..1666010
--- /dev/null
@@ -0,0 +1,167 @@
+\input lecnotes.tex
+
+\prednaska{6}{Vyhledávání v textu}{(zapsal: Petr Jankovský)}
+
+Nyní se budeme vìnovat následujícímu problému. V~textu délky $S$ (Senu) budeme chtít najít v¹echny výskyty hledaného slova délky $J$ (Jehly). Nejprve se podívejme na~jeden primitivní algoritmus, který nefunguje. Je ale zajímavé rozmyslet si, proè.
+
+\h{Hloupý algoritmus}
+Zaèneme prvním písmenkem hledaného slova a~budeme postupnì procházet text, a¾ najdeme první výskyt poèáteèního písmenka. Poté budeme testovat, zda souhlasí i~písmenka dal¹í. Pokud nastane neshoda, v~hledaném slovì se vrátíme na~zaèátek a~v~textu pokraèujeme znakem, ve~kterém neshoda nastala. Podívejme se na~pøíklad.
+
+\s{Pøíklad:} Budeme hledat slovo |jehla| v~textu |jevkupcejejehla|. Vezmeme si tedy první písmenko |j| v~hledaném slovì a~zjistíme, ¾e v~textu se nachází hned na~zaèátku. Vezmeme tedy dal¹í písmenko |e|, které se vyskytuje jako druhé i v~textu. Pøi tøetím písmenku ale narazíme na~neshodu. V~tuto chvíli tedy zresetujeme a~opìt hledáme výskyt písmenka |j|, tentokrát v¹ak a¾ od~tøetího písmene v~textu. Takto postupujeme postupnì dál, a¾ narazíme na~dal¹í |je|, které ov¹em není následováno písmenem |h|, tudí¾ opìt zresetujeme a~nakonec najdeme shodu s~celým hledaným øetìzcem. V~tomto pøípadì tedy algoritmus na¹el hledané slovo.
+
+Tento algoritmus v¹ak zjevnì mù¾e hanebnì selhat. Mù¾e se stát, ¾e zaèneme porovnávat, a¾ v~jednu chvíli narazíme na~neshodu. Celý tento kus tedy pøeskoèíme. Pøi tom se ale v~tomto kusu textu mohl vyskytovat nìjaký pøekrývající se výskyt hledané \uv{jehly}. Hledejme napøíklad øetìzec |kokos| v~textu |clanekokokosu|. Algoritmus tedy zaène porovnávat. Ve~chvíli kdy najde prefix |koko| a~na~vstupu dostane |k|, dochází k~neshodì. Proto algoritmus zresetuje a~pokraèuje v~hledání od~tohoto znaku. Najde sice je¹tì výskyt |ko|, ov¹em s~dal¹ím písmenkem |s| ji¾ dochází k~neshodì a~algotimus sel¾e. Nesprávnì se toti¾ \uv{upnul} na~první nalezené |koko| a~s~dal¹ím |k| pak \uv{zahodil} i~správný zaèátek.
+
+Máme tedy algoritmus, který i~kdy¾ je ¹patnì, tak funguje urèitì kdykoli se první písmenko hledaného slova v~tomto slovì u¾ nikde jinde nevyskytuje - co¾ |jehla| splòovala, ale |kokos| u¾ nikoliv.
+
+{\I Hloupý algoritmus} se na~ka¾dé písmenko textu podívá jednou, tudí¾ èasová slo¾itost bude lineární s~délkou textu ve~kterém hledáme - tedy $\O(S)$.
+
+\h{Pomalý algoritmus}
+Zkusíme algoritmus vylep¹it tak, aby fungoval správnì: pokud nastane nìjaká neshoda, vrátíme se zpátky tìsnì za~zaèátek toho, kdy se nám to zaèalo shodovat. To je ov¹em vlastnì skoro toté¾, jako brát postupnì v¹echny mo¾né zaèátky v~\uv{senì} a~pro ka¾dý z~nìj ovìøit, jestli se tam \uv{jehla} nachází èi nikoliv.
+
+Tento algoritmus evidentnì funguje. Bì¾í v¹ak v~èase: $S$ mo¾ných zaèátkù, krát èas potøebný na~jedno potovnání (zda se na~dané pozici nenachází \uv{jehla}), co¾ nám mù¾e trvat a¾ $J$. Proto je èasová slo¾itost $\O(SJ)$. V praxi bude algoritus èasto rychlej¹í, proto¾e typicky velmi brzo zjistíme, ¾e se øetìzce neshodují, ale je mo¾né vymyslet vstup, kde bude potøeba porovnání opravdu tolik.
+
+Nyní se pokusme najít takový algoritmus, který by byl tak rychlý, jako {\I Hloupý algoritmus}, ale chytrý, jako ten {\I Pomalý}.
+
+\h{Chytrý algoritmus}
+Ne¾ vlastní algoritmus vybudujeme, zkusíme se cestou nauèit pøemý¹let o~øetìzcích obèas trochu pøekrouceným zpùsobem. Podívejme se na~je¹tì jeden pøíklad.
+
+\s{Pøíklad:}Vezmìme si napøíklad staré italské pøízvisko |barbarossa|, které znamená Rudovous. Pøedstavme si, ¾e takovéto slovo hledám v~nìjakém textu, který zaèíná |barbar|. Víme, ¾e a¾ sem se nám hledaný øetìzec shodoval. Øeknìme, ¾e dal¹í písmenko textu se shodovat pøestane - místo |o| naèteme napøíklad opìt |b|. {\I Hloupý algoritmus} by velil vrátit se k~|a| a~od~nìj hledat dál. Uvìdomme si ale, ¾e kdy¾ se vracíme z~|barbar| do~|arbar| (tedy øetìzce, který ji¾ známe), mù¾eme si pøedpoèítat, jak dopadne hledání, kdy¾ ho pustíme na~nìj. V~pøedpoèítaném bychom tedy chtìli ukládat, ¾e kdy¾ máme øtìzec |arbar|, tak |ar| a~|r| nám do~hledaného nepasuje a~a¾~|bar| se bude shodovat. Tedy místo toho, abychom spustili nové hledání od~|a|, mù¾eme ho spustit a¾~od~|b|. Co víc, my dokonce víme, jak dopadne to - pokud toti¾ nastane neshoda po~pøeètení |barbar|, je to stejné, jako kdybychom pøeèetli pouze |bar|, na~které se (pùvodne neshodující se) |b| u¾ navázat dá. Kdyby se nedalo navázat ani tam, tak bychom opìt zkracovali... Nejen, ¾e tedy víme, kam se máme vrátit, ale víme dokonce i~to, co tam najdeme.
+
+My¹lenka, ke které míøíme, je pøedpoèítat si nìjakou tabulku, která nám bude øíkat, jak se máme pøi hledání vracet a~jak to dopadne, a~pak u¾ jenom prohlédávat s~pou¾itím této tabulky.
+
+Aby se nám o~pøepisových algoritmech lépe mluvila a~pøedev¹ím psalo, pojïme si povìdìt nìkolik definic.
+
+\s{Definice:}
+\itemize\ibull
+\:{\I Abeceda $\Sigma$} je koneèná mno¾ina znakù \foot{Mù¾eme pøi tom jít a¾~do~extrémù. Pøíkladem extrémních abeced je binární abeceda slo¾ená pouze z~nul a~jednièek. Pøíklad z~druhého konce (který rádi dìlají lingvisti) je abeceda, která má jako abecedu v¹echna èeská slova. V¹echny èeské vìty, pak nejsou nic jiného, ne¾ slova nad touto abecedou. Pou¾itá abeceda tedy mù¾e být i~relativnì obrovská. Dal¹ím takovým pøíkladem mù¾e být unicode. Pro na¹e potøeby ale zatím budeme pøedpokládat, ¾e abeceda je nejen konstantnì velká, ale i~rozumnì malá. Budeme si moci tedy dovolit napøíklad indexovat pole znakem abecedy (kdybychom nemohli, tak bychom místo pole pou¾ili napøíklad hashovací tabulku, èi nìco podobného\dots) .}, ze~kterých tvoøíme text, øetìzce, slova.
+
+
+\:{\I $\Sigma^*$} je mno¾ina v¹ech slov nad abecedou $\Sigma$. Èili mno¾ina v¹ech neprázdných koneèných posloupností znakù ze $\Sigma$.
+\endlist
+\s{Znaèení:}
+Aby se nám nepletlo znaèení, budeme rozli¹ovat promìnné pro slova, promìnné pro písmenka a~promìnné pro èísla.
+
+\itemize\ibull
+\:{\I Slova} budeme znaèit malými písmenky øecké abecedy $\alpha$,$\beta$... .
+\:$\iota$ bude oznaèovat \uv{jehlu}
+\:$\sigma$ bude oznaèovat \uv{seno}
+\:{\I Znaky} oznaèíme malými písmeny latinky $a$,$b$\dots .
+\:{\I Èísla} budeme znaèit velkými písmeny $A$, $B$\dots .
+\:{\I Délka slova} $\vert \alpha  \vert$ pro $\alpha \in \Sigma^*$ je poèet jeho znakù.
+\:{\I Prázdné slovo} znaèíme písmenem $\varepsilon$, $\vert \varepsilon \vert = 0$.
+\:{\I Zøetìzení} $\alpha\beta$ vznikne zapsáním slov $\alpha$ a $\beta$ za sebe. Platí $\vert \alpha\beta  \vert=\vert \alpha \vert+\vert \beta \vert$, $\alpha\varepsilon=\varepsilon\alpha=\alpha$.
+\:$\alpha[k]$ je $k$-tý znak slova $\alpha$, indexujeme od $0$.
+\:$\alpha[k:l]$ je podslovo zaèínající $k$-tým znakem a~$l$-tý znak je první, který v~nìm není. Jedná se tedy o podslovo skládající se z~$\alpha[k]$,$\alpha[k+1]$,\dots,$\alpha[l-1]$. Platí tedy: $\alpha[k:k]=\varepsilon$, $\alpha[k:k+1]=\alpha[k]$. Jedu (èi obì) meze mù¾eme i~vynechat, tento zápis pak bude znamenat buï \uv{od zaèátku slova a¾ nìkam}, nebo \uv{od nìkud a¾ do konce}.
+\:$\alpha[:k]$ je {\I prefix} obsahující prvních $k$ znakù slova $\alpha$ ($\alpha[0]$,\dots,$\alpha[k-1]$) .
+\:$\alpha[k:]$ je {\I suffix} obsahující znaky slova $\alpha$ poèínaje $k$-tým znakem a¾ do konce.
+\:$\alpha[:] = \alpha$
+\endlist
+
+V¹imnìme si, ¾e prázdné slovo je prefixem, suffixem i~podslovem jekéhokoliv slova vèetnì sebe sama.
+Ka¾dé slovo je také prefixem, suffixem i~podslovem sebe sama.
+To se nám nìkdy nebude hodit. Nìkdy budeme chtít øíct, ¾e nìjaké slovo je {\I vlastním} prefixem nebo suffixem. To bude znamenat, ¾e to nebude celé slovo.
+
+\> $\alpha$ je {\I vlastní prefix} slova $\beta \equiv \alpha$ je prefix $\beta~\&~\alpha \neq \beta$.
+
+\h{Vyhledávací automat (Knuth, Morris, Pratt)}
+{\I Vyhledávací automat} bude graf, jeho¾ vrcholùm budeme øíkat stavy. Jejich jména budou prefixy hledaného slova a~hrany budou odpovídat tomu, jak jeden prefix mù¾eme získat z~pøedchozího prefixu pøidáním jednoho stavu. Poèáteèní stav je prázdné slovo $\varepsilon$ a~koncový je celá $\iota$. Dopøedné hrany grafu budou popisovat pøechod mezi stavy ve~smyslu zvìt¹ení délky jména stavu (dopøedná funkce $h(\alpha)$, urèující znak na~dopøedné hranì z $\alpha$). Zpìtné hrany grafu budou popisovat pøechod (zpìtná funkce $z(\alpha)$) mezi stavem $\alpha$ a~nejdel¹ím vlastním suffixem $\alpha$, který je prefixem $\iota$, kdy¾ nastane neshoda.
+
+\figure{barb.eps}{Vyhledávací automat.}{4.2in}
+
+\s{Hledej($\sigma$):}
+\algo
+\:$\alpha \leftarrow \varepsilon$.
+\:Pro $x\in\sigma$ postupnì:
+\:$\indent$Dokud $h(\alpha) \neq x~\&~\alpha \neq \varepsilon : \alpha \leftarrow z(\alpha)$.
+\:$\indent$Pokud $h(\alpha) = x: \alpha \leftarrow \alpha x$.
+\:$\indent$Pokud $\alpha = \iota$, ohlásíme výskyt.
+\endalgo
+
+\>Vstupem je $\iota$ hledané slovo (jehla) délky $J=\vert \iota \vert$ a $\sigma$ text (seno) délky $S=\vert \sigma \vert$.
+\>Výstupem jsou v¹echny výskyty hledaného slova $\iota$ v textu $\sigma$: $\left\{ k\vert \sigma[k:k+J]=\iota \right\}$
+
+Pojïme nyní dokázat, ¾e tento algoritmus správnì ohlásí v¹echny výskyty.
+
+\s{Definice}: $\alpha(\tau) := $ stav automatu po pøeètení $\tau$
+
+\s{Invariant:} Pokud algoritmus pøeète nìjaký vstup, nachází se ve stavu, který je nejdel¹ím suffixem pøeèteného vstupu, který je nìjakým stavem.
+$\alpha(\tau) =$ nejdel¹í stav (nejdel¹í prefix jehly), který je suffixem $\tau$ (pøeèteného vstupu).
+Pojïme si rozmyslet, ¾e z tohoto invariantu ihnet plyne, ¾e algoritmus najde to, co má. Kdykoli toti¾ ohlásí nìjaký výskyt, tak tam tento výskyt opravdu je. Kdykoli pak má nìjaký výskyt ohlásit, tak se v této situaci jako suffix toho právì pøeèteného textu vyskytuje hledané slovo, pøièem¾ hledané slovo je urèitì stav a zároveò nejdel¹í ze v¹ech existujících stavù. Tak¾e invariant opravdu øíká, ¾e jsme právì v koncovém stavu a algoritmus nám tedy ohlásí výskyt.
+
+\proof
+Indukcí podle kroku algoritmu. Na zaèátku pro prázdný naètený vstup invariant triviálnì platí, tedy prázdný suffix $\tau$ je prefixem $\iota$. V~kroku $n$ máme naètený vstup $\tau$ a k~nìmu naèteme znak $x$. Invariant nám øíká, ¾e nejdel¹í stav, který je suffixem, je nejdel¹í suffix, který je stavem. Nyní se ptáme, jaký je nejdel¹í stav, který se dá \uv{napasovat} na konec øetìzce $\tau x$. Kdykoli v¹ak takovýto suffix máme, tak z nìj mù¾eme $x$ na konci odebrat, èím¾ dostaneme suffix slova $\tau$.
+
+\>Tedy: pokud $\beta$ je neprázdným suffixem slova $\tau x$, pak $\beta = \gamma x$, kde $\gamma$ je suffix $\tau$.
+
+Suffix, který máme sestrojit, tedy vznikne z nìjakého suffixu slova $\tau$ pøipsáním~$x$. Chceme najít nejdel¹í suffix slova $\tau x$, který je stavem, tak¾e chceme najít i nejdel¹í suffix pùvodního slova $\tau$, za který se dá pøidat $x$ tak, aby vy¹lo jméno stavu. Staèí tedy u¾ jen \uv{probírat} suffixy $\tau$ od nejdel¹ího po nejkrat¹í, zkou¹et k nim pøidávat $x$ a a¾ to pùjde, tak jsme na¹li nejdel¹í suffix $\tau x$. Pøesnì toto ov¹em algoritmus dìlá, nebo» zpìtná funkce mu v¾dy øekne nejbli¾¹í krat¹í suffix, který je stavem. Pokud pak nemù¾eme $x$ pøidat ani do $\varepsilon$, pak je øe¹ením prázdný suffix. Algoritmus tedy funguje. \qed
+
+Nyní pojïmì zkoumat to, jak je ve skuteènosti ná¹ algoritmus rychlý. K tomu bychom si ale nejdøív mìli øíct, jak pøesnì budeme automat reprezentovat. V algoritmu vystupují nìjaká porovnávání stavù, pøièem¾ není úplnì jasné, jak zaøídit, aby v¹e trvalo konstantnì dlouho. Vyjde nám to ale docela snadno. K reprezentaci automatu nám toti¾ budou staèit pouze dvì pole.
+
+\s{Reprezentace automatu:}
+Oèíslujeme si stavy délkami pøíslu¹ných prefixù tedy $0 \dots J$. Poté je¹tì potøebujeme nìjakým zpùsobem zakódovat dopøedné a zpìtné hrany. Vzhledem k tomu, ¾e z ka¾dého vrcholu vede v¾dy nejvý¹e jedna dopøedná a nejvý¹e jedna zpìtná, tak nám evidentnì staèí pamatovat si pro ka¾dý typ hran pouze jedno èíslo na vrchol. Budeme mít tedy nìjaké pole dopøedných hran, které nám pro ka¾dý stav øekne, jakým písmenkem je nadepsaná dopøedná hrana ze stavu $I$ do $I+1$. To jsou ale pøesnì písmenky jehly, tak¾e si staèí pamatovat jehlu samotnou. Èili z $I$ do $I+1$ vede hrana nadepsaná $\iota [I]$. Pro zpìtné hrany pak budeme potøebovat pole $Z$, které nám pro stav $I$ øekne èíslo stavu, do kterého vede zpìtná hrana. Tedy $Z[I]$ je cíl zpìtné hrany ze stavu $I$.
+S touto reprezentací ji¾ doká¾eme na¹i hledací proceduru pøímoèaøe pøepsat tak, aby sahala pouze do tìchto dvou polí:
+\algo
+\:$I \leftarrow 0$.
+\:Pro znaky $x$ z textu:
+\:$\indent$Dokud $\iota[I] \neq x~\&~I \neq 0: I \leftarrow Z[I]$.
+\:$\indent$Pokud $\iota[I] = x, pak I \leftarrow I + 1$.
+\:$\indent$Pokud $I = J$, ohlásíme výskyt.
+\endalgo
+
+Zatím se v algoritmu je¹tì skrývá drobná chyba -- toti¾ algoritmus se obèas zeptá na dopøednou hranu z posledního stavu. Pokud jsme právì ohlásili výskyt (jsme tedy v posledním stavu) a pøijde nìjaký dal¹í znak, algoritmus se ptá, zda je roven tomu, co je na dopøedné hranì z posledního stavu. Ta ale ov¹em neexistuje. Jednodu¹e to ale napravíme tak, ¾e si pøidáme fiktivní hranu, na které se vyskytuje nìjaké \uv{nepísmenko} -- nìco co se nerovná ¾ádnému jinému písmenku. Zajistíme tak, ¾e se po této hranì nikdy nevydáme. Dodefinujeme tedy $\iota[J]$ odli¹nì od v¹ech znakù. (V jazyce C se toto dodefinování provede vlastnì zadarmo, nebo» ka¾dý øetìzec je v nìm ukonèen znakem s kódem nula, který se ve vstupu nevyskytne\dots Algoritmus bude tedy fungovat i bez tohoto dodefinování. V jiných jazycích je ale na nìj tøeba nezapomenout!)
+
+\s{Lemma:} Funkce Hledej bì¾í v~èase $\O(S)$.
+
+\proof
+Fonkce {\I Hledej} chodí po dopøedných a zpìtných hranách. Dopøedných hran projdeme urèitì maximálnì tolik, kolik je délka sena. Pro ka¾dý znak pøeètený ze sena toti¾ jdeme nejvý¹e jednou po dopøedné hranì. Se zpìtnými hranami se to má tak, ¾e na jeden pøeètený znak z textu se mù¾eme po zpìtné hranì vracet maximálnì $J$-krát. Z tohoto by nám v¹ak vy¹la slo¾itost $\O(JS)$, èím¾ bychom si nepomohli. Zachrání nás ale pøímoèarý potenciál. Uvìdomme si, ¾e chùze po dopøedné hranì zvý¹í $I$ o jedna a chùze po zpìtné hranì $I$ sní¾í alespoò o jedna. Vzhledem k tomu, ¾e $I$ není nikdy záporné a na zaèátku je nulové, zjistíme, ¾e krokù zpìt mù¾e být maximálnì tolik, kolik krokù dopøedu. Èasová slo¾itost hledání je tedy lineární vzhledem k délce sena. \qed
+
+Nyní nám zbývá na první pohled malièkost -- toti¾ zkonstruovat automat. Zkonstruovat dopøedné hrany zvládneme zjevnì snadno, jsou toti¾ explicitnì popsané hledaným slovem. Tì¾¹í u¾ to bude pro hrany zpìtné. Vyu¾ijeme k tomu následující pozorování:
+
+\s{Pozorování:}
+Pøedstavme si, ¾e automat u¾ máme hotový a tím, ¾e budeme sledovat jeho chování, chceme zjistit, jak v nìm vedou zpìtné hrany.
+Vezmìme si nìjaký stav $\beta$. To, kam z nìj vede zpìtná hrana zjistíme tak, ¾e spustíme automat na øetìzec $\beta$ bez prvního písmenka a stav, ve kterém se automat zastaví je pøesnì ten, kam má vést i zpìtná hrana z $\beta$. Jinými slovy víme, ¾e $z(\beta) = \alpha (\beta[1:])$.
+Proè takováto vìc funguje? V¹imìme si, ¾e definice $z$ a to, co nám o $\alpha$ øíká invariant je témìø toto¾ná -- $z(\beta)$ je nejdel¹í vlastní suffix $\beta$, který je stavem, $\alpha(\beta)$ je nejdel¹í suffix $\beta$, který je stavem. Jediná odli¹nost je v tom, ¾e definice $z$ narozdíl od definice $\alpha$ zakazuje nevlastní suffixy. Jak nyní vylouèit suffix $\beta$, který by byl roven $\beta$ samotné? Zkrátíme $\beta$ o první znak. Tím pádem v¹echny suffixy $\beta$ bez prvního znaku jsou stejné jako v¹echny vlastní suffixy $\beta$.
+
+K èemu je toto pozorování dobré? Rozmysleme si, ¾e pomocí nìj u¾ doká¾eme zkonstruovat zpìtné hrany. Není to ale trochu divné, kdy¾ pøi simulování automatu na øetìzec bez prvního znaku u¾ zpìtné hrany potøebujeme? Není. Za chvíli zjistíme, ¾e takto mù¾eme zji¹»ovat zpìtné hrany postupnì s tím, ¾e pou¾íváme v¾dy jenom ty, které jsme u¾ sestrojili.
+Takovémuhle pøístupu, kdy pøi konstruování chtìného u¾ pou¾íváme to, co chceme sestrojit, ale pouze ten kousek, který ji¾ máme hotový, se v angliètinì øíká {\I bootstrapping}\foot{Z tohoto slova vzniklo i {\I bootování} poèítaèù, kdy operaèní systém v podstatì zavádí sám seme. Bootstrap znamená èesky ¹truple -- tedy oèko na konci boty, které slou¾í k usnadnìní nazouvání. A jak souvisí ¹truple s algoritmem? To se zase musíme vrátit k pøíbìzích o baronu Prá¹ilovi, mezi nimi¾ je i ten, ve kterém baron Prá¹il vypráví o tom, jak sám sebe vytáhl z ba¾iny za ¹truple. Stejnì tak i my budeme algoritmus konstruovat tím, ¾e se budeme sami vytahovat za ¹truple, tedy bootstrappovat.}.
+V¹imnìme si, ¾e pøi výpoètu se vstupem $\beta$ projde automat jenom prvních $\vert \beta  \vert$ stavù. Automat se evidentnì nemù¾e dostat dál, proto¾e na ka¾dý krok dopøedu (doprava) spotøebuje písmenko $\beta$. Tak¾e krokù doprava je maximálnì tolik, kolik je  $\vert \beta  \vert$. Jinými slovy kdybychom ji¾ mìli zkonstruované zpìtné hrany pro prvních  $\vert \beta  \vert$ stavù (tedy $0 \dots \vert \beta  \vert - 1$), tak pøi tomto výpoètu, kt
+erý potøebujeme na zkonstuovíní zpìtné hrany z $\beta$, je¹tì tuto zpìtnou hranu nemù¾eme potøebovat. Vystaèíme si s tìmi, které ji¾ máme zkonstruované.
+Nabízí se tedy zaèít zpìtnou hranou z prvního znaku (která vede evidentnì do $\varepsilon$), pak postupnì brát dal¹í stavy a pro ka¾dý z nich si spoèítáme kdy spustíme automat na jméno stavu bez prvního znaku a tím získáme dal¹í zpìtnou hranu. Toto funguje, ale je to kvadratické \dots. Máme toti¾ $J$ stavù a pro ka¾dý z nich nám automat bì¾í v èase a¾ lineárním s $J$. Jak z toho ven?
+Z prvního stavu povede zpìtná funkce do $\varepsilon$. Prodl¹í stavy chceme spoèítat zpìtnou funkci. Z druhého stavu $\iota[0:2]$ tedy automat spustíme na $\iota[1:2]$, dále pak na $\iota[1:3]$, $\iota[1:4]$, atd. Ty øetìzce, pro které potøebujeme spo¹tìt automat, abychom dostali zpìtné hrany, jsou tedy ve skuteènosti takové, ¾e ka¾dý dal¹í dostaneme roz¹íøením pøedchozího o jeden znak. To jsou ale pøesnì ty stavy, kterými projde automat pøi spracovávání øetezce $\iota$ od prvního znaku dál. Jedním prùchodem automatu nad jehlou bez prvního písmenka, se tím pádem rovnou dozvíme v¹echny údaje, které potøebujeme.
+Z pøedchozího pozorování plyne, ¾e nikdy nebudeme potøebovat zpìtnou hranu, kterou jsme je¹tì nezkonstruovali a jeliko¾ víme, jedno prohledání trvá lineárnì s délkou toto v èem hledáme, tak toto celé pobì¾í v lineárním èase. Dostaneme tedy následující algoritmus:
+
+\s{Konstrukce zpìtné funkce:}
+\algo
+\:$Z[0] \leftarrow ?$, $Z[1] \leftarrow 0.$
+\:$I \leftarrow 0$
+\:pro $k = 2$ do $J$
+\:$\indent$$I \leftarrow krok( I , \iota [k])$
+\:$\indent$$Z[k] \leftarrow I$
+\endalgo
+
+Zaèínáme tím, ¾e nastavíme zpìtnou hranu z prvních dvou stavù, pøièem¾ $z[0]$ je nedefinované, proto¾e tuto zpìtnou hranu nikdy nepou¾íváme. Dále postupnì simulujeme výpoèet automatu nad slovem bez prvního znaku a po ka¾dém kroku se dozvíme novou zpìtnou hranu. {\I Krokem} automatu pak není nic jiného ne¾ vnitøek (3. a 4. bod) na¹í hledací procedury. To, kam jsme se dostali pak zaznamenáme jako zpìtnou funkci z $k$.
+Èili pou¹tíme automat nanjehlu bez prvního písmenka, provedeme v¾dy jeden krok automatu (pøes dal¹í písmenko jehly) a zapamatujeme si, jakou zpìtnou funkci jsme zrovna dostali. Díky pozorováním navíc víme, ¾e zpìtné hrany konstruujeme správnì, nikdy nepou¾ijeme zpìtnou hranu, kterou jsme je¹tì nesestrojili a víme i to, ¾e celou konstrukci zvládneme v lineárním èase s délkou jehly.
+
+\s{Vìta:} Algoritmus KMP najde v¹echny výskyty v èase $O(J+S)$.
+Linéární èas s délkou jehly potøebujeme na postavení automatu, lineární èas s délkou sena pak potøebujeme na samotné vyhledání.
+
+
+
+
+
+\s{Vysvìtlení:} V¹imnìte si, ¾e $z(i)$ je pøesnì stav, do nej¾ se dostaneme pøi spu¹tìní na¹eho vyhledávacího algoritmu na øetìzec $\iota [2:i]$, èili na $i$-tý prefix bez prvního písmenka. Proè to tak je? Zpìtná funkce øíká, jaký je nejdel¹í vlastní suffix daného stavu, který je také stavem, zatímco $\alpha$ oznaèuje nejdel¹í suffix textu, který je stavem. Tyto dvì vìci se pøeci li¹í jen v~tom, ¾e ta druhá pøipou¹tí i nevlastní suffixy, a právì tomu zabráníme odstranìním prvního znaku. Tak¾e $z()$ získáme tak, ¾e spustíme vyhledávání na èást samotného slova $\iota$. Jen¾e k~vyhledávání zase potøebujeme zpìtnou funkci $z$. Proto budeme zpìtnou funkci vytváøet postupne od nejkrat¹ích prefixù. Zøejmì $z(1) = \varepsilon$. Pokud ji¾ máme $z(i)$, pak výpoèet $z(i+1)$ odpovídá spu¹tení automatu na slovo délky $i$ a pritom budeme zpìtnou funkci potøebovat jen pro stavy délky $i$ nebo men¹í, pro které ji ji¾ máme hotovou.
+
+Navíc nemusíme pro jednotlivé prefixy spou¹tìt výpoèet v¾dy znovu od zaèátku, proto¾e $(i+1)$-ní prefix
+je prodlou¾ením $i$-tého prefixu o~jeden znak. Staèí tedy spustit algoritmus na celý øetìzec $\iota$ a sledovat, jakými stavy bude procházet. To budou pøesnì hodnoty zpìtné funkce. Vytvoøení zpìtné funkce se tak nakonec zredukovalo na jediné vyhledávání v~textu o~délce $J-1$, a proto pobì¾í v èase $\O(J)$. Èasová slo¾itost celého algoritmu tedy bude $\O(S+J)$.
+
+\h{Algoritmus Rabin \& Karp}
+Tento algoritmus funguje tak, ¾e porovnává hash hledaného øetìzce s~hashem aktuálního podøetìzce (\uv{posuvné okénko} stejné délky jako hledaný øetìzec) v~textu  a aktuální podøetìzec porovná se vzorkem pouze v~pøípadì, kdy¾ mají shodný hash. Kdy¾ si zvolíme tu správnou hashovací funkci, budeme moci vypoèítat hash následujíciho podøetìzce na základe hashe toho aktuálního. Jako hashovací funkci $h: \Sigma^J \rightarrow \bb Z$ pou¾ijeme následující: $h(x_{0},...,x_{J-1}) = ( \sum_{i=0}^{J-1} x_{i}.p^{J-1-i}) \bmod N$, kde $N$ je velikost prostoru, do kterého hashujeme. Jak zjistíme hash následujícího podøetìzce?
+\itemize\ibull
+\:$h = x_{0}.p^{J} + x_{1}.p^{J-1} + ... + x_{J-1}.p^{1}$
+\:$h^{'} = x_{1}.p^{J} + x_{2}.p^{J-1} + ...   + x_{J}.p^{1}$
+\:$h^{'} = (h - x_{0}.p^{J}).p + x_{J}.p^{1}$
+\endlist
+Tady mù¾eme vidìt, ¾e hash následujícího øetìzce lze pøepoèítat na základì toho pøedchozího v konstantním èase.
+Èasová slo¾itost je v nejlep¹ím pøípadì lineární vzhledem k~délce textu, zatímco nejhor¹í pøípad mú¾e trvat a¾ $\Theta(JS)$.
+
+\bye
diff --git a/6-kmp/Makefile b/6-kmp/Makefile
new file mode 100644 (file)
index 0000000..1831d14
--- /dev/null
@@ -0,0 +1,3 @@
+P=6-kmp
+
+include ../Makerules
diff --git a/6-kmp/barb.eps b/6-kmp/barb.eps
new file mode 100644 (file)
index 0000000..a136c1f
--- /dev/null
@@ -0,0 +1,2644 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: inkscape 0.46
+%%Pages: 1
+%%Orientation: Portrait
+%%BoundingBox: 1 666 595 775
+%%HiResBoundingBox: 1.6 666.74151 594.29565 774.11124
+%%EndComments
+%%Page: 1 1
+0 842 translate
+0.8 -0.8 scale
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+gsave [1 0 0 1 0 0] concat
+gsave [0.4054521 0 0 0.4054521 18.60297 20.583106] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+174.28572 329.50504 moveto
+174.28572 335.81361 169.16572 340.93361 162.85715 340.93361 curveto
+156.54858 340.93361 151.42858 335.81361 151.42858 329.50504 curveto
+151.42858 323.19646 156.54858 318.07646 162.85715 318.07646 curveto
+169.16572 318.07646 174.28572 323.19646 174.28572 329.50504 curveto
+closepath
+fill
+grestore
+grestore
+gsave [0.4054521 0 0 0.4054521 96.60297 20.583106] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+174.28572 329.50504 moveto
+174.28572 335.81361 169.16572 340.93361 162.85715 340.93361 curveto
+156.54858 340.93361 151.42858 335.81361 151.42858 329.50504 curveto
+151.42858 323.19646 156.54858 318.07646 162.85715 318.07646 curveto
+169.16572 318.07646 174.28572 323.19646 174.28572 329.50504 curveto
+closepath
+fill
+grestore
+grestore
+gsave [0.4054521 0 0 0.4054521 174.60297 20.583106] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+174.28572 329.50504 moveto
+174.28572 335.81361 169.16572 340.93361 162.85715 340.93361 curveto
+156.54858 340.93361 151.42858 335.81361 151.42858 329.50504 curveto
+151.42858 323.19646 156.54858 318.07646 162.85715 318.07646 curveto
+169.16572 318.07646 174.28572 323.19646 174.28572 329.50504 curveto
+closepath
+fill
+grestore
+grestore
+gsave [0.4054521 0 0 0.4054521 252.60297 20.583106] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+174.28572 329.50504 moveto
+174.28572 335.81361 169.16572 340.93361 162.85715 340.93361 curveto
+156.54858 340.93361 151.42858 335.81361 151.42858 329.50504 curveto
+151.42858 323.19646 156.54858 318.07646 162.85715 318.07646 curveto
+169.16572 318.07646 174.28572 323.19646 174.28572 329.50504 curveto
+closepath
+fill
+grestore
+grestore
+gsave [0.4054521 0 0 0.4054521 330.60297 20.583106] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+174.28572 329.50504 moveto
+174.28572 335.81361 169.16572 340.93361 162.85715 340.93361 curveto
+156.54858 340.93361 151.42858 335.81361 151.42858 329.50504 curveto
+151.42858 323.19646 156.54858 318.07646 162.85715 318.07646 curveto
+169.16572 318.07646 174.28572 323.19646 174.28572 329.50504 curveto
+closepath
+fill
+grestore
+grestore
+gsave [0.4054521 0 0 0.4054521 408.60297 20.583106] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+174.28572 329.50504 moveto
+174.28572 335.81361 169.16572 340.93361 162.85715 340.93361 curveto
+156.54858 340.93361 151.42858 335.81361 151.42858 329.50504 curveto
+151.42858 323.19646 156.54858 318.07646 162.85715 318.07646 curveto
+169.16572 318.07646 174.28572 323.19646 174.28572 329.50504 curveto
+closepath
+fill
+grestore
+grestore
+gsave [0.4054521 0 0 0.4054521 486.60297 20.583106] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+174.28572 329.50504 moveto
+174.28572 335.81361 169.16572 340.93361 162.85715 340.93361 curveto
+156.54858 340.93361 151.42858 335.81361 151.42858 329.50504 curveto
+151.42858 323.19646 156.54858 318.07646 162.85715 318.07646 curveto
+169.16572 318.07646 174.28572 323.19646 174.28572 329.50504 curveto
+closepath
+fill
+grestore
+grestore
+gsave [0.4054521 0 0 0.4054521 564.60297 20.583106] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+174.28572 329.50504 moveto
+174.28572 335.81361 169.16572 340.93361 162.85715 340.93361 curveto
+156.54858 340.93361 151.42858 335.81361 151.42858 329.50504 curveto
+151.42858 323.19646 156.54858 318.07646 162.85715 318.07646 curveto
+169.16572 318.07646 174.28572 323.19646 174.28572 329.50504 curveto
+closepath
+fill
+grestore
+grestore
+gsave [0.4054521 0 0 0.4054521 -59.397034 20.582993] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+174.28572 329.50504 moveto
+174.28572 335.81361 169.16572 340.93361 162.85715 340.93361 curveto
+156.54858 340.93361 151.42858 335.81361 151.42858 329.50504 curveto
+151.42858 323.19646 156.54858 318.07646 162.85715 318.07646 curveto
+169.16572 318.07646 174.28572 323.19646 174.28572 329.50504 curveto
+closepath
+fill
+grestore
+grestore
+gsave [0.4054521 0 0 0.4054521 646.60297 20.582936] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+174.28572 329.50504 moveto
+174.28572 335.81361 169.16572 340.93361 162.85715 340.93361 curveto
+156.54858 340.93361 151.42858 335.81361 151.42858 329.50504 curveto
+151.42858 323.19646 156.54858 318.07646 162.85715 318.07646 curveto
+169.16572 318.07646 174.28572 323.19646 174.28572 329.50504 curveto
+closepath
+fill
+grestore
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+10.354191 130.68182 moveto
+9.2204018 131.59589 lineto
+8.4996932 131.05097 7.8258658 130.77851 7.1989174 130.7785 curveto
+6.6832888 130.77851 6.3053595 130.91621 6.0651283 131.19159 curveto
+5.8307506 131.46699 5.7135632 131.76289 5.7135658 132.07928 curveto
+5.7135632 132.48945 5.8893443 132.83222 6.2409096 133.1076 curveto
+6.5924686 133.37714 7.108093 133.51191 7.7877846 133.5119 curveto
+7.8756704 133.51191 8.0221546 133.50898 8.2272377 133.50311 curveto
+8.2272377 134.83026 lineto
+8.0397327 134.82441 7.8991079 134.82148 7.8053627 134.82147 curveto
+6.9674682 134.82148 6.3844609 134.98261 6.0563393 135.30487 curveto
+5.734071 135.62714 5.5729383 135.99042 5.5729408 136.39471 curveto
+5.5729383 136.81073 5.7370007 137.16229 6.0651283 137.4494 curveto
+6.39325 137.73065 6.782898 137.87128 7.2340736 137.87128 curveto
+8.0602405 137.87128 8.8336772 137.48749 9.5543861 136.71991 curveto
+10.688175 137.67792 lineto
+9.7506685 138.67401 8.5846541 139.17206 7.1901283 139.17206 curveto
+6.0944222 139.17206 5.2770402 138.89374 4.7379799 138.3371 curveto
+4.1989163 137.78046 3.9293853 137.133 3.9293861 136.39471 curveto
+3.9293853 135.33417 4.4450098 134.58124 5.4762611 134.13593 curveto
+4.6149315 133.6496 4.1842678 132.9787 4.184269 132.12323 curveto
+4.1842678 131.42597 4.4391504 130.80195 4.9489174 130.25116 curveto
+5.4586806 129.69453 6.2409064 129.41621 7.2955971 129.4162 curveto
+8.5026229 129.41621 9.5221531 129.83808 10.354191 130.68182 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+83.15136 138.49641 moveto
+81.683586 138.49641 lineto
+81.683586 125.61165 lineto
+83.265617 125.61165 lineto
+83.265617 130.20833 lineto
+83.933583 129.37045 84.786121 128.9515 85.823235 128.95149 curveto
+86.397447 128.9515 86.939439 129.06869 87.449211 129.30305 curveto
+87.964829 129.53158 88.386703 129.85677 88.714836 130.27864 curveto
+89.048812 130.69466 89.309554 131.19857 89.497063 131.79036 curveto
+89.684554 132.38216 89.778303 133.01497 89.778313 133.6888 curveto
+89.778303 135.28841 89.382796 136.52474 88.591789 137.39778 curveto
+87.800766 138.27083 86.851549 138.70735 85.744133 138.70735 curveto
+84.642566 138.70735 83.778309 138.24739 83.15136 137.32747 curveto
+83.15136 138.49641 lineto
+83.133781 133.75911 moveto
+83.133779 134.87825 83.286122 135.68685 83.590813 136.18489 curveto
+84.088856 136.99935 84.762683 137.40657 85.612297 137.40657 curveto
+86.303698 137.40657 86.901353 137.10774 87.405266 136.51009 curveto
+87.909165 135.90657 88.161118 135.01009 88.161125 133.82063 curveto
+88.161118 132.60189 87.917954 131.70248 87.431633 131.12239 curveto
+86.951158 130.54232 86.368151 130.25228 85.68261 130.25227 curveto
+84.991199 130.25228 84.393543 130.55404 83.889641 131.15755 curveto
+83.385732 131.75521 83.133779 132.6224 83.133781 133.75911 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+157.47488 138.77879 moveto
+156.00711 138.77879 lineto
+156.00711 125.89403 lineto
+157.58914 125.89403 lineto
+157.58914 130.49071 lineto
+158.25711 129.65283 159.10965 129.23388 160.14676 129.23387 curveto
+160.72097 129.23388 161.26296 129.35107 161.77274 129.58543 curveto
+162.28835 129.81396 162.71023 130.13915 163.03836 130.56102 curveto
+163.37234 130.97704 163.63308 131.48095 163.82059 132.07274 curveto
+164.00808 132.66454 164.10183 133.29735 164.10184 133.97118 curveto
+164.10183 135.57079 163.70632 136.80712 162.91531 137.68016 curveto
+162.12429 138.55321 161.17507 138.98973 160.06766 138.98973 curveto
+158.96609 138.98973 158.10183 138.52977 157.47488 137.60985 curveto
+157.47488 138.77879 lineto
+157.45731 134.04149 moveto
+157.4573 135.16063 157.60965 135.96923 157.91434 136.46727 curveto
+158.41238 137.28172 159.08621 137.68895 159.93582 137.68895 curveto
+160.62722 137.68895 161.22488 137.39012 161.72879 136.79247 curveto
+162.23269 136.18895 162.48464 135.29247 162.48465 134.10301 curveto
+162.48464 132.88427 162.24148 131.98485 161.75516 131.40477 curveto
+161.27468 130.8247 160.69168 130.53466 160.00613 130.53465 curveto
+159.31472 130.53466 158.71707 130.83642 158.21317 131.43993 curveto
+157.70926 132.03759 157.4573 132.90478 157.45731 134.04149 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+172.12625 137.62743 moveto
+171.54031 138.12547 170.97488 138.47704 170.42996 138.68211 curveto
+169.89089 138.88719 169.31082 138.98973 168.68973 138.98973 curveto
+167.66433 138.98973 166.87625 138.74071 166.32547 138.24266 curveto
+165.77469 137.73876 165.4993 137.09715 165.4993 136.31786 curveto
+165.4993 135.86083 165.60184 135.44481 165.80692 135.06981 curveto
+166.01785 134.68895 166.29031 134.38427 166.6243 134.15575 curveto
+166.96414 133.92724 167.345 133.75438 167.76688 133.63719 curveto
+168.07742 133.55517 168.54617 133.47606 169.17313 133.39989 curveto
+170.45046 133.24755 171.39089 133.06591 171.99442 132.85497 curveto
+172.00027 132.63817 172.0032 132.50048 172.0032 132.44188 curveto
+172.0032 131.79736 171.85378 131.34325 171.55496 131.07957 curveto
+171.15066 130.72216 170.55007 130.54345 169.7532 130.54344 curveto
+169.00906 130.54345 168.45828 130.67529 168.10086 130.93895 curveto
+167.7493 131.19677 167.48855 131.65673 167.31863 132.31883 curveto
+165.77176 132.10789 lineto
+165.91238 131.44579 166.14383 130.91259 166.46609 130.50829 curveto
+166.78836 130.09814 167.25418 129.78466 167.86356 129.56786 curveto
+168.47293 129.34521 169.17898 129.23388 169.98172 129.23387 curveto
+170.77859 129.23388 171.42605 129.32763 171.9241 129.51512 curveto
+172.42214 129.70263 172.78835 129.93993 173.02274 130.22704 curveto
+173.2571 130.50829 173.42116 130.86572 173.51492 131.2993 curveto
+173.56765 131.56884 173.59402 132.05517 173.59402 132.75829 curveto
+173.59402 134.86766 lineto
+173.59402 136.33837 173.62624 137.27001 173.6907 137.66258 curveto
+173.76101 138.0493 173.89577 138.42137 174.095 138.77879 curveto
+172.44266 138.77879 lineto
+172.27859 138.45067 172.17312 138.06688 172.12625 137.62743 curveto
+171.99442 134.09422 moveto
+171.42019 134.3286 170.55886 134.52782 169.41043 134.69188 curveto
+168.76004 134.78563 168.30008 134.8911 168.03055 135.00829 curveto
+167.76101 135.12548 167.55301 135.29833 167.40652 135.52684 curveto
+167.26004 135.7495 167.1868 135.99852 167.1868 136.27391 curveto
+167.1868 136.69579 167.345 137.04735 167.66141 137.3286 curveto
+167.98367 137.60985 168.45242 137.75047 169.06766 137.75047 curveto
+169.67703 137.75047 170.21902 137.61864 170.69363 137.35497 curveto
+171.16824 137.08544 171.51687 136.71923 171.73953 136.25633 curveto
+171.90945 135.89891 171.99441 135.37157 171.99442 134.6743 curveto
+171.99442 134.09422 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+229.00638 138.77878 moveto
+227.5386 138.77878 lineto
+227.5386 125.89401 lineto
+229.12064 125.89401 lineto
+229.12064 130.49069 lineto
+229.7886 129.65281 230.64114 129.23387 231.67825 129.23386 curveto
+232.25247 129.23387 232.79446 129.35105 233.30423 129.58542 curveto
+233.81985 129.81394 234.24172 130.13914 234.56985 130.561 curveto
+234.90383 130.97703 235.16457 131.48093 235.35208 132.07272 curveto
+235.53957 132.66453 235.63332 133.29734 235.63333 133.97116 curveto
+235.63332 135.57077 235.23781 136.8071 234.44681 137.68015 curveto
+233.65578 138.55319 232.70657 138.98972 231.59915 138.98972 curveto
+230.49758 138.98972 229.63333 138.52975 229.00638 137.60983 curveto
+229.00638 138.77878 lineto
+228.9888 134.04147 moveto
+228.9888 135.16062 229.14114 135.96921 229.44583 136.46725 curveto
+229.94387 137.28171 230.6177 137.68894 231.46732 137.68893 curveto
+232.15872 137.68894 232.75637 137.39011 233.26028 136.79245 curveto
+233.76418 136.18894 234.01614 135.29245 234.01614 134.103 curveto
+234.01614 132.88425 233.77297 131.98484 233.28665 131.40475 curveto
+232.80618 130.82468 232.22317 130.53465 231.53763 130.53464 curveto
+230.84622 130.53465 230.24856 130.8364 229.74466 131.43991 curveto
+229.24075 132.03757 228.9888 132.90476 228.9888 134.04147 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+243.65775 137.62741 moveto
+243.0718 138.12546 242.50637 138.47702 241.96146 138.6821 curveto
+241.42239 138.88718 240.84231 138.98972 240.22122 138.98972 curveto
+239.19583 138.98972 238.40774 138.74069 237.85696 138.24265 curveto
+237.30618 137.73874 237.03079 137.09714 237.03079 136.31784 curveto
+237.03079 135.86081 237.13333 135.4448 237.33841 135.06979 curveto
+237.54935 134.68894 237.82181 134.38425 238.15579 134.15573 curveto
+238.49563 133.92722 238.87649 133.75437 239.29837 133.63718 curveto
+239.60891 133.55515 240.07766 133.47605 240.70462 133.39987 curveto
+241.98196 133.24753 242.92239 133.06589 243.52591 132.85495 curveto
+243.53176 132.63816 243.53469 132.50046 243.5347 132.44186 curveto
+243.53469 131.79734 243.38528 131.34324 243.08646 131.07956 curveto
+242.68215 130.72215 242.08157 130.54343 241.2847 130.54343 curveto
+240.54055 130.54343 239.98977 130.67527 239.63235 130.93893 curveto
+239.28079 131.19675 239.02005 131.65671 238.85013 132.31882 curveto
+237.30325 132.10788 lineto
+237.44388 131.44578 237.67532 130.91258 237.99759 130.50827 curveto
+238.31985 130.09812 238.78567 129.78465 239.39505 129.56784 curveto
+240.00442 129.34519 240.71048 129.23387 241.51321 129.23386 curveto
+242.31008 129.23387 242.95754 129.32762 243.4556 129.51511 curveto
+243.95364 129.70262 244.31985 129.93992 244.55423 130.22702 curveto
+244.7886 130.50828 244.95266 130.8657 245.04642 131.29929 curveto
+245.09914 131.56882 245.12551 132.05515 245.12552 132.75827 curveto
+245.12552 134.86765 lineto
+245.12551 136.33835 245.15774 137.26999 245.2222 137.66257 curveto
+245.2925 138.04929 245.42727 138.42136 245.6265 138.77878 curveto
+243.97415 138.77878 lineto
+243.81008 138.45065 243.70461 138.06686 243.65775 137.62741 curveto
+243.52591 134.09421 moveto
+242.95168 134.32859 242.09036 134.52781 240.94193 134.69186 curveto
+240.29153 134.78562 239.83157 134.89109 239.56204 135.00827 curveto
+239.29251 135.12546 239.0845 135.29831 238.93802 135.52682 curveto
+238.79153 135.74948 238.71829 135.99851 238.71829 136.2739 curveto
+238.71829 136.69577 238.87649 137.04733 239.1929 137.32858 curveto
+239.51516 137.60983 239.98391 137.75046 240.59915 137.75046 curveto
+241.20852 137.75046 241.75051 137.61862 242.22513 137.35495 curveto
+242.69973 137.08542 243.04836 136.71921 243.27103 136.25632 curveto
+243.44094 135.8989 243.5259 135.37155 243.52591 134.67429 curveto
+243.52591 134.09421 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+247.56888 138.77878 moveto
+247.56888 129.44479 lineto
+248.99271 129.44479 lineto
+248.99271 130.85983 lineto
+249.35598 130.19773 249.68997 129.76121 249.99466 129.55026 curveto
+250.3052 129.33933 250.64505 129.23387 251.01419 129.23386 curveto
+251.54739 129.23387 252.08938 129.40379 252.64017 129.74362 curveto
+252.09525 131.2114 lineto
+251.70852 130.98289 251.3218 130.86863 250.93509 130.86862 curveto
+250.58938 130.86863 250.27884 130.9741 250.00345 131.18503 curveto
+249.72805 131.39011 249.53177 131.67722 249.41458 132.04636 curveto
+249.2388 132.60886 249.15091 133.2241 249.15091 133.89206 curveto
+249.15091 138.77878 lineto
+247.56888 138.77878 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+304.35175 138.77879 moveto
+302.88397 138.77879 lineto
+302.88397 125.89403 lineto
+304.466 125.89403 lineto
+304.466 130.49071 lineto
+305.13397 129.65283 305.98651 129.23388 307.02362 129.23387 curveto
+307.59783 129.23388 308.13983 129.35107 308.6496 129.58543 curveto
+309.16521 129.81396 309.58709 130.13915 309.91522 130.56102 curveto
+310.2492 130.97704 310.50994 131.48095 310.69745 132.07274 curveto
+310.88494 132.66454 310.97869 133.29735 310.9787 133.97118 curveto
+310.97869 135.57079 310.58318 136.80712 309.79218 137.68016 curveto
+309.00115 138.55321 308.05193 138.98973 306.94452 138.98973 curveto
+305.84295 138.98973 304.9787 138.52977 304.35175 137.60985 curveto
+304.35175 138.77879 lineto
+304.33417 134.04149 moveto
+304.33416 135.16063 304.48651 135.96923 304.7912 136.46727 curveto
+305.28924 137.28172 305.96307 137.68895 306.81268 137.68895 curveto
+307.50408 137.68895 308.10174 137.39012 308.60565 136.79247 curveto
+309.10955 136.18895 309.3615 135.29247 309.36151 134.10301 curveto
+309.3615 132.88427 309.11834 131.98485 308.63202 131.40477 curveto
+308.15154 130.8247 307.56854 130.53466 306.883 130.53465 curveto
+306.19158 130.53466 305.59393 130.83642 305.09003 131.43993 curveto
+304.58612 132.03759 304.33416 132.90478 304.33417 134.04149 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+319.00311 137.62743 moveto
+318.41717 138.12547 317.85174 138.47704 317.30682 138.68211 curveto
+316.76776 138.88719 316.18768 138.98973 315.56659 138.98973 curveto
+314.5412 138.98973 313.75311 138.74071 313.20233 138.24266 curveto
+312.65155 137.73876 312.37616 137.09715 312.37616 136.31786 curveto
+312.37616 135.86083 312.4787 135.44481 312.68378 135.06981 curveto
+312.89471 134.68895 313.16717 134.38427 313.50116 134.15575 curveto
+313.841 133.92724 314.22186 133.75438 314.64374 133.63719 curveto
+314.95428 133.55517 315.42303 133.47606 316.04999 133.39989 curveto
+317.32733 133.24755 318.26775 133.06591 318.87128 132.85497 curveto
+318.87713 132.63817 318.88006 132.50048 318.88007 132.44188 curveto
+318.88006 131.79736 318.73064 131.34325 318.43182 131.07957 curveto
+318.02752 130.72216 317.42694 130.54345 316.63007 130.54344 curveto
+315.88592 130.54345 315.33514 130.67529 314.97772 130.93895 curveto
+314.62616 131.19677 314.36541 131.65673 314.1955 132.31883 curveto
+312.64862 132.10789 lineto
+312.78924 131.44579 313.02069 130.91259 313.34296 130.50829 curveto
+313.66522 130.09814 314.13104 129.78466 314.74042 129.56786 curveto
+315.34979 129.34521 316.05584 129.23388 316.85858 129.23387 curveto
+317.65545 129.23388 318.30291 129.32763 318.80096 129.51512 curveto
+319.299 129.70263 319.66521 129.93993 319.8996 130.22704 curveto
+320.13396 130.50829 320.29803 130.86572 320.39178 131.2993 curveto
+320.44451 131.56884 320.47088 132.05517 320.47089 132.75829 curveto
+320.47089 134.86766 lineto
+320.47088 136.33837 320.5031 137.27001 320.56757 137.66258 curveto
+320.63787 138.0493 320.77263 138.42137 320.97186 138.77879 curveto
+319.31952 138.77879 lineto
+319.15545 138.45067 319.04998 138.06688 319.00311 137.62743 curveto
+318.87128 134.09422 moveto
+318.29705 134.3286 317.43572 134.52782 316.28729 134.69188 curveto
+315.6369 134.78563 315.17694 134.8911 314.90741 135.00829 curveto
+314.63788 135.12548 314.42987 135.29833 314.28339 135.52684 curveto
+314.1369 135.7495 314.06366 135.99852 314.06366 136.27391 curveto
+314.06366 136.69579 314.22186 137.04735 314.53827 137.3286 curveto
+314.86053 137.60985 315.32928 137.75047 315.94452 137.75047 curveto
+316.55389 137.75047 317.09588 137.61864 317.5705 137.35497 curveto
+318.0451 137.08544 318.39373 136.71923 318.61639 136.25633 curveto
+318.78631 135.89891 318.87127 135.37157 318.87128 134.6743 curveto
+318.87128 134.09422 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+322.91425 138.77879 moveto
+322.91425 129.44481 lineto
+324.33807 129.44481 lineto
+324.33807 130.85985 lineto
+324.70135 130.19775 325.03534 129.76122 325.34003 129.55028 curveto
+325.65057 129.33935 325.99041 129.23388 326.35956 129.23387 curveto
+326.89276 129.23388 327.43475 129.4038 327.98553 129.74364 curveto
+327.44061 131.21141 lineto
+327.05389 130.9829 326.66717 130.86864 326.28046 130.86864 curveto
+325.93475 130.86864 325.6242 130.97411 325.34882 131.18504 curveto
+325.07342 131.39013 324.87713 131.67724 324.75995 132.04637 curveto
+324.58416 132.60888 324.49627 133.22411 324.49628 133.89207 curveto
+324.49628 138.77879 lineto
+322.91425 138.77879 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+330.40253 138.77879 moveto
+328.93475 138.77879 lineto
+328.93475 125.89403 lineto
+330.51678 125.89403 lineto
+330.51678 130.49071 lineto
+331.18475 129.65283 332.03729 129.23388 333.0744 129.23387 curveto
+333.64861 129.23388 334.19061 129.35107 334.70038 129.58543 curveto
+335.216 129.81396 335.63787 130.13915 335.966 130.56102 curveto
+336.29998 130.97704 336.56072 131.48095 336.74823 132.07274 curveto
+336.93572 132.66454 337.02947 133.29735 337.02948 133.97118 curveto
+337.02947 135.57079 336.63396 136.80712 335.84296 137.68016 curveto
+335.05193 138.55321 334.10272 138.98973 332.9953 138.98973 curveto
+331.89373 138.98973 331.02948 138.52977 330.40253 137.60985 curveto
+330.40253 138.77879 lineto
+330.38495 134.04149 moveto
+330.38495 135.16063 330.53729 135.96923 330.84198 136.46727 curveto
+331.34002 137.28172 332.01385 137.68895 332.86346 137.68895 curveto
+333.55486 137.68895 334.15252 137.39012 334.65643 136.79247 curveto
+335.16033 136.18895 335.41228 135.29247 335.41229 134.10301 curveto
+335.41228 132.88427 335.16912 131.98485 334.6828 131.40477 curveto
+334.20233 130.8247 333.61932 130.53466 332.93378 130.53465 curveto
+332.24237 130.53466 331.64471 130.83642 331.14081 131.43993 curveto
+330.6369 132.03759 330.38495 132.90478 330.38495 134.04149 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+376.90637 138.77878 moveto
+375.4386 138.77878 lineto
+375.4386 125.89401 lineto
+377.02063 125.89401 lineto
+377.02063 130.49069 lineto
+377.6886 129.65281 378.54113 129.23387 379.57825 129.23386 curveto
+380.15246 129.23387 380.69445 129.35105 381.20422 129.58542 curveto
+381.71984 129.81394 382.14172 130.13914 382.46985 130.561 curveto
+382.80382 130.97703 383.06457 131.48093 383.25208 132.07272 curveto
+383.43957 132.66453 383.53332 133.29734 383.53333 133.97116 curveto
+383.53332 135.57077 383.13781 136.8071 382.3468 137.68015 curveto
+381.55578 138.55319 380.60656 138.98972 379.49915 138.98972 curveto
+378.39758 138.98972 377.53332 138.52975 376.90637 137.60983 curveto
+376.90637 138.77878 lineto
+376.88879 134.04147 moveto
+376.88879 135.16062 377.04113 135.96921 377.34583 136.46725 curveto
+377.84387 137.28171 378.5177 137.68894 379.36731 137.68893 curveto
+380.05871 137.68894 380.65637 137.39011 381.16028 136.79245 curveto
+381.66418 136.18894 381.91613 135.29245 381.91614 134.103 curveto
+381.91613 132.88425 381.67297 131.98484 381.18665 131.40475 curveto
+380.70617 130.82468 380.12316 130.53465 379.43762 130.53464 curveto
+378.74621 130.53465 378.14856 130.8364 377.64465 131.43991 curveto
+377.14074 132.03757 376.88879 132.90476 376.88879 134.04147 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+391.55774 137.62741 moveto
+390.9718 138.12546 390.40637 138.47702 389.86145 138.6821 curveto
+389.32238 138.88718 388.74231 138.98972 388.12122 138.98972 curveto
+387.09582 138.98972 386.30774 138.74069 385.75696 138.24265 curveto
+385.20618 137.73874 384.93079 137.09714 384.93079 136.31784 curveto
+384.93079 135.86081 385.03332 135.4448 385.2384 135.06979 curveto
+385.44934 134.68894 385.7218 134.38425 386.05579 134.15573 curveto
+386.39563 133.92722 386.77649 133.75437 387.19836 133.63718 curveto
+387.50891 133.55515 387.97766 133.47605 388.60461 133.39987 curveto
+389.88195 133.24753 390.82238 133.06589 391.4259 132.85495 curveto
+391.43176 132.63816 391.43469 132.50046 391.43469 132.44186 curveto
+391.43469 131.79734 391.28527 131.34324 390.98645 131.07956 curveto
+390.58215 130.72215 389.98156 130.54343 389.18469 130.54343 curveto
+388.44055 130.54343 387.88977 130.67527 387.53235 130.93893 curveto
+387.18078 131.19675 386.92004 131.65671 386.75012 132.31882 curveto
+385.20325 132.10788 lineto
+385.34387 131.44578 385.57532 130.91258 385.89758 130.50827 curveto
+386.21985 130.09812 386.68567 129.78465 387.29504 129.56784 curveto
+387.90442 129.34519 388.61047 129.23387 389.41321 129.23386 curveto
+390.21008 129.23387 390.85754 129.32762 391.35559 129.51511 curveto
+391.85363 129.70262 392.21984 129.93992 392.45422 130.22702 curveto
+392.68859 130.50828 392.85265 130.8657 392.94641 131.29929 curveto
+392.99914 131.56882 393.0255 132.05515 393.02551 132.75827 curveto
+393.02551 134.86765 lineto
+393.0255 136.33835 393.05773 137.26999 393.12219 137.66257 curveto
+393.1925 138.04929 393.32726 138.42136 393.52649 138.77878 curveto
+391.87415 138.77878 lineto
+391.71008 138.45065 391.60461 138.06686 391.55774 137.62741 curveto
+391.4259 134.09421 moveto
+390.85168 134.32859 389.99035 134.52781 388.84192 134.69186 curveto
+388.19152 134.78562 387.73156 134.89109 387.46204 135.00827 curveto
+387.1925 135.12546 386.98449 135.29831 386.83801 135.52682 curveto
+386.69153 135.74948 386.61828 135.99851 386.61829 136.2739 curveto
+386.61828 136.69577 386.77649 137.04733 387.0929 137.32858 curveto
+387.41516 137.60983 387.88391 137.75046 388.49915 137.75046 curveto
+389.10852 137.75046 389.65051 137.61862 390.12512 137.35495 curveto
+390.59973 137.08542 390.94836 136.71921 391.17102 136.25632 curveto
+391.34094 135.8989 391.4259 135.37155 391.4259 134.67429 curveto
+391.4259 134.09421 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+395.46887 138.77878 moveto
+395.46887 129.44479 lineto
+396.8927 129.44479 lineto
+396.8927 130.85983 lineto
+397.25598 130.19773 397.58996 129.76121 397.89465 129.55026 curveto
+398.2052 129.33933 398.54504 129.23387 398.91418 129.23386 curveto
+399.44738 129.23387 399.98937 129.40379 400.54016 129.74362 curveto
+399.99524 131.2114 lineto
+399.60852 130.98289 399.2218 130.86863 398.83508 130.86862 curveto
+398.48938 130.86863 398.17883 130.9741 397.90344 131.18503 curveto
+397.62805 131.39011 397.43176 131.67722 397.31458 132.04636 curveto
+397.13879 132.60886 397.0509 133.2241 397.0509 133.89206 curveto
+397.0509 138.77878 lineto
+395.46887 138.77878 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+402.95715 138.77878 moveto
+401.48938 138.77878 lineto
+401.48938 125.89401 lineto
+403.07141 125.89401 lineto
+403.07141 130.49069 lineto
+403.73938 129.65281 404.59191 129.23387 405.62903 129.23386 curveto
+406.20324 129.23387 406.74523 129.35105 407.255 129.58542 curveto
+407.77062 129.81394 408.1925 130.13914 408.52063 130.561 curveto
+408.85461 130.97703 409.11535 131.48093 409.30286 132.07272 curveto
+409.49035 132.66453 409.5841 133.29734 409.58411 133.97116 curveto
+409.5841 135.57077 409.18859 136.8071 408.39758 137.68015 curveto
+407.60656 138.55319 406.65734 138.98972 405.54993 138.98972 curveto
+404.44836 138.98972 403.5841 138.52975 402.95715 137.60983 curveto
+402.95715 138.77878 lineto
+402.93958 134.04147 moveto
+402.93957 135.16062 403.09192 135.96921 403.39661 136.46725 curveto
+403.89465 137.28171 404.56848 137.68894 405.41809 137.68893 curveto
+406.10949 137.68894 406.70715 137.39011 407.21106 136.79245 curveto
+407.71496 136.18894 407.96691 135.29245 407.96692 134.103 curveto
+407.96691 132.88425 407.72375 131.98484 407.23743 131.40475 curveto
+406.75695 130.82468 406.17394 130.53465 405.4884 130.53464 curveto
+404.79699 130.53465 404.19934 130.8364 403.69543 131.43991 curveto
+403.19153 132.03757 402.93957 132.90476 402.93958 134.04147 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+417.60852 137.62741 moveto
+417.02258 138.12546 416.45715 138.47702 415.91223 138.6821 curveto
+415.37316 138.88718 414.79309 138.98972 414.172 138.98972 curveto
+413.1466 138.98972 412.35852 138.74069 411.80774 138.24265 curveto
+411.25696 137.73874 410.98157 137.09714 410.98157 136.31784 curveto
+410.98157 135.86081 411.08411 135.4448 411.28918 135.06979 curveto
+411.50012 134.68894 411.77258 134.38425 412.10657 134.15573 curveto
+412.44641 133.92722 412.82727 133.75437 413.24915 133.63718 curveto
+413.55969 133.55515 414.02844 133.47605 414.6554 133.39987 curveto
+415.93273 133.24753 416.87316 133.06589 417.47668 132.85495 curveto
+417.48254 132.63816 417.48547 132.50046 417.48547 132.44186 curveto
+417.48547 131.79734 417.33605 131.34324 417.03723 131.07956 curveto
+416.63293 130.72215 416.03234 130.54343 415.23547 130.54343 curveto
+414.49133 130.54343 413.94055 130.67527 413.58313 130.93893 curveto
+413.23156 131.19675 412.97082 131.65671 412.8009 132.31882 curveto
+411.25403 132.10788 lineto
+411.39465 131.44578 411.6261 130.91258 411.94836 130.50827 curveto
+412.27063 130.09812 412.73645 129.78465 413.34583 129.56784 curveto
+413.9552 129.34519 414.66125 129.23387 415.46399 129.23386 curveto
+416.26086 129.23387 416.90832 129.32762 417.40637 129.51511 curveto
+417.90441 129.70262 418.27062 129.93992 418.505 130.22702 curveto
+418.73937 130.50828 418.90343 130.8657 418.99719 131.29929 curveto
+419.04992 131.56882 419.07629 132.05515 419.07629 132.75827 curveto
+419.07629 134.86765 lineto
+419.07629 136.33835 419.10851 137.26999 419.17297 137.66257 curveto
+419.24328 138.04929 419.37804 138.42136 419.57727 138.77878 curveto
+417.92493 138.77878 lineto
+417.76086 138.45065 417.65539 138.06686 417.60852 137.62741 curveto
+417.47668 134.09421 moveto
+416.90246 134.32859 416.04113 134.52781 414.8927 134.69186 curveto
+414.24231 134.78562 413.78235 134.89109 413.51282 135.00827 curveto
+413.24328 135.12546 413.03528 135.29831 412.88879 135.52682 curveto
+412.74231 135.74948 412.66907 135.99851 412.66907 136.2739 curveto
+412.66907 136.69577 412.82727 137.04733 413.14368 137.32858 curveto
+413.46594 137.60983 413.93469 137.75046 414.54993 137.75046 curveto
+415.1593 137.75046 415.70129 137.61862 416.1759 137.35495 curveto
+416.65051 137.08542 416.99914 136.71921 417.2218 136.25632 curveto
+417.39172 135.8989 417.47668 135.37155 417.47668 134.67429 curveto
+417.47668 134.09421 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+451.87943 138.77879 moveto
+450.41165 138.77879 lineto
+450.41165 125.89403 lineto
+451.99368 125.89403 lineto
+451.99368 130.49071 lineto
+452.66165 129.65283 453.51419 129.23388 454.5513 129.23387 curveto
+455.12551 129.23388 455.6675 129.35107 456.17728 129.58543 curveto
+456.69289 129.81396 457.11477 130.13915 457.4429 130.56102 curveto
+457.77688 130.97704 458.03762 131.48095 458.22513 132.07274 curveto
+458.41262 132.66454 458.50637 133.29735 458.50638 133.97118 curveto
+458.50637 135.57079 458.11086 136.80712 457.31985 137.68016 curveto
+456.52883 138.55321 455.57961 138.98973 454.4722 138.98973 curveto
+453.37063 138.98973 452.50637 138.52977 451.87943 137.60985 curveto
+451.87943 138.77879 lineto
+451.86185 134.04149 moveto
+451.86184 135.16063 452.01419 135.96923 452.31888 136.46727 curveto
+452.81692 137.28172 453.49075 137.68895 454.34036 137.68895 curveto
+455.03176 137.68895 455.62942 137.39012 456.13333 136.79247 curveto
+456.63723 136.18895 456.88918 135.29247 456.88919 134.10301 curveto
+456.88918 132.88427 456.64602 131.98485 456.1597 131.40477 curveto
+455.67922 130.8247 455.09622 130.53466 454.41068 130.53465 curveto
+453.71926 130.53466 453.12161 130.83642 452.61771 131.43993 curveto
+452.1138 132.03759 451.86184 132.90478 451.86185 134.04149 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+466.53079 137.62743 moveto
+465.94485 138.12547 465.37942 138.47704 464.8345 138.68211 curveto
+464.29544 138.88719 463.71536 138.98973 463.09427 138.98973 curveto
+462.06888 138.98973 461.28079 138.74071 460.73001 138.24266 curveto
+460.17923 137.73876 459.90384 137.09715 459.90384 136.31786 curveto
+459.90384 135.86083 460.00638 135.44481 460.21146 135.06981 curveto
+460.42239 134.68895 460.69485 134.38427 461.02884 134.15575 curveto
+461.36868 133.92724 461.74954 133.75438 462.17142 133.63719 curveto
+462.48196 133.55517 462.95071 133.47606 463.57767 133.39989 curveto
+464.85501 133.24755 465.79543 133.06591 466.39896 132.85497 curveto
+466.40481 132.63817 466.40774 132.50048 466.40775 132.44188 curveto
+466.40774 131.79736 466.25832 131.34325 465.9595 131.07957 curveto
+465.5552 130.72216 464.95461 130.54345 464.15775 130.54344 curveto
+463.4136 130.54345 462.86282 130.67529 462.5054 130.93895 curveto
+462.15384 131.19677 461.89309 131.65673 461.72318 132.31883 curveto
+460.1763 132.10789 lineto
+460.31692 131.44579 460.54837 130.91259 460.87064 130.50829 curveto
+461.1929 130.09814 461.65872 129.78466 462.2681 129.56786 curveto
+462.87747 129.34521 463.58352 129.23388 464.38626 129.23387 curveto
+465.18313 129.23388 465.83059 129.32763 466.32864 129.51512 curveto
+466.82668 129.70263 467.19289 129.93993 467.42728 130.22704 curveto
+467.66164 130.50829 467.82571 130.86572 467.91946 131.2993 curveto
+467.97219 131.56884 467.99856 132.05517 467.99857 132.75829 curveto
+467.99857 134.86766 lineto
+467.99856 136.33837 468.03078 137.27001 468.09525 137.66258 curveto
+468.16555 138.0493 468.30031 138.42137 468.49954 138.77879 curveto
+466.8472 138.77879 lineto
+466.68313 138.45067 466.57766 138.06688 466.53079 137.62743 curveto
+466.39896 134.09422 moveto
+465.82473 134.3286 464.9634 134.52782 463.81497 134.69188 curveto
+463.16458 134.78563 462.70462 134.8911 462.43509 135.00829 curveto
+462.16555 135.12548 461.95755 135.29833 461.81107 135.52684 curveto
+461.66458 135.7495 461.59134 135.99852 461.59134 136.27391 curveto
+461.59134 136.69579 461.74954 137.04735 462.06595 137.3286 curveto
+462.38821 137.60985 462.85696 137.75047 463.4722 137.75047 curveto
+464.08157 137.75047 464.62356 137.61864 465.09818 137.35497 curveto
+465.57278 137.08544 465.92141 136.71923 466.14407 136.25633 curveto
+466.31399 135.89891 466.39895 135.37157 466.39896 134.6743 curveto
+466.39896 134.09422 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+470.44193 138.77879 moveto
+470.44193 129.44481 lineto
+471.86575 129.44481 lineto
+471.86575 130.85985 lineto
+472.22903 130.19775 472.56302 129.76122 472.86771 129.55028 curveto
+473.17825 129.33935 473.51809 129.23388 473.88724 129.23387 curveto
+474.42044 129.23388 474.96243 129.4038 475.51321 129.74364 curveto
+474.96829 131.21141 lineto
+474.58157 130.9829 474.19485 130.86864 473.80814 130.86864 curveto
+473.46243 130.86864 473.15188 130.97411 472.8765 131.18504 curveto
+472.6011 131.39013 472.40481 131.67724 472.28763 132.04637 curveto
+472.11184 132.60888 472.02395 133.22411 472.02396 133.89207 curveto
+472.02396 138.77879 lineto
+470.44193 138.77879 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+477.93021 138.77879 moveto
+476.46243 138.77879 lineto
+476.46243 125.89403 lineto
+478.04446 125.89403 lineto
+478.04446 130.49071 lineto
+478.71243 129.65283 479.56497 129.23388 480.60208 129.23387 curveto
+481.17629 129.23388 481.71829 129.35107 482.22806 129.58543 curveto
+482.74368 129.81396 483.16555 130.13915 483.49368 130.56102 curveto
+483.82766 130.97704 484.0884 131.48095 484.27591 132.07274 curveto
+484.4634 132.66454 484.55715 133.29735 484.55716 133.97118 curveto
+484.55715 135.57079 484.16164 136.80712 483.37064 137.68016 curveto
+482.57961 138.55321 481.6304 138.98973 480.52298 138.98973 curveto
+479.42141 138.98973 478.55716 138.52977 477.93021 137.60985 curveto
+477.93021 138.77879 lineto
+477.91263 134.04149 moveto
+477.91263 135.16063 478.06497 135.96923 478.36966 136.46727 curveto
+478.8677 137.28172 479.54153 137.68895 480.39114 137.68895 curveto
+481.08254 137.68895 481.6802 137.39012 482.18411 136.79247 curveto
+482.68801 136.18895 482.93996 135.29247 482.93997 134.10301 curveto
+482.93996 132.88427 482.6968 131.98485 482.21048 131.40477 curveto
+481.73 130.8247 481.147 130.53466 480.46146 130.53465 curveto
+479.77005 130.53466 479.17239 130.83642 478.66849 131.43993 curveto
+478.16458 132.03759 477.91263 132.90478 477.91263 134.04149 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+492.58157 137.62743 moveto
+491.99563 138.12547 491.4302 138.47704 490.88528 138.68211 curveto
+490.34622 138.88719 489.76614 138.98973 489.14505 138.98973 curveto
+488.11966 138.98973 487.33157 138.74071 486.78079 138.24266 curveto
+486.23001 137.73876 485.95462 137.09715 485.95462 136.31786 curveto
+485.95462 135.86083 486.05716 135.44481 486.26224 135.06981 curveto
+486.47317 134.68895 486.74563 134.38427 487.07962 134.15575 curveto
+487.41946 133.92724 487.80032 133.75438 488.2222 133.63719 curveto
+488.53274 133.55517 489.00149 133.47606 489.62845 133.39989 curveto
+490.90579 133.24755 491.84622 133.06591 492.44974 132.85497 curveto
+492.45559 132.63817 492.45852 132.50048 492.45853 132.44188 curveto
+492.45852 131.79736 492.30911 131.34325 492.01028 131.07957 curveto
+491.60598 130.72216 491.0054 130.54345 490.20853 130.54344 curveto
+489.46438 130.54345 488.9136 130.67529 488.55618 130.93895 curveto
+488.20462 131.19677 487.94388 131.65673 487.77396 132.31883 curveto
+486.22708 132.10789 lineto
+486.36771 131.44579 486.59915 130.91259 486.92142 130.50829 curveto
+487.24368 130.09814 487.7095 129.78466 488.31888 129.56786 curveto
+488.92825 129.34521 489.6343 129.23388 490.43704 129.23387 curveto
+491.23391 129.23388 491.88137 129.32763 492.37943 129.51512 curveto
+492.87746 129.70263 493.24367 129.93993 493.47806 130.22704 curveto
+493.71242 130.50829 493.87649 130.86572 493.97025 131.2993 curveto
+494.02297 131.56884 494.04934 132.05517 494.04935 132.75829 curveto
+494.04935 134.86766 lineto
+494.04934 136.33837 494.08156 137.27001 494.14603 137.66258 curveto
+494.21633 138.0493 494.3511 138.42137 494.55032 138.77879 curveto
+492.89798 138.77879 lineto
+492.73391 138.45067 492.62844 138.06688 492.58157 137.62743 curveto
+492.44974 134.09422 moveto
+491.87551 134.3286 491.01418 134.52782 489.86575 134.69188 curveto
+489.21536 134.78563 488.7554 134.8911 488.48587 135.00829 curveto
+488.21634 135.12548 488.00833 135.29833 487.86185 135.52684 curveto
+487.71536 135.7495 487.64212 135.99852 487.64212 136.27391 curveto
+487.64212 136.69579 487.80032 137.04735 488.11673 137.3286 curveto
+488.43899 137.60985 488.90774 137.75047 489.52298 137.75047 curveto
+490.13235 137.75047 490.67434 137.61864 491.14896 137.35497 curveto
+491.62356 137.08544 491.97219 136.71923 492.19485 136.25633 curveto
+492.36477 135.89891 492.44973 135.37157 492.44974 134.6743 curveto
+492.44974 134.09422 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+496.49271 138.77879 moveto
+496.49271 129.44481 lineto
+497.91653 129.44481 lineto
+497.91653 130.85985 lineto
+498.27981 130.19775 498.6138 129.76122 498.91849 129.55028 curveto
+499.22903 129.33935 499.56887 129.23388 499.93802 129.23387 curveto
+500.47122 129.23388 501.01321 129.4038 501.564 129.74364 curveto
+501.01907 131.21141 lineto
+500.63235 130.9829 500.24563 130.86864 499.85892 130.86864 curveto
+499.51321 130.86864 499.20266 130.97411 498.92728 131.18504 curveto
+498.65188 131.39013 498.45559 131.67724 498.33841 132.04637 curveto
+498.16263 132.60888 498.07473 133.22411 498.07474 133.89207 curveto
+498.07474 138.77879 lineto
+496.49271 138.77879 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+524.89874 138.77878 moveto
+523.43097 138.77878 lineto
+523.43097 125.89401 lineto
+525.013 125.89401 lineto
+525.013 130.49069 lineto
+525.68097 129.65281 526.5335 129.23387 527.57062 129.23386 curveto
+528.14483 129.23387 528.68682 129.35105 529.19659 129.58542 curveto
+529.71221 129.81394 530.13409 130.13914 530.46222 130.561 curveto
+530.7962 130.97703 531.05694 131.48093 531.24445 132.07272 curveto
+531.43194 132.66453 531.52569 133.29734 531.5257 133.97116 curveto
+531.52569 135.57077 531.13018 136.8071 530.33917 137.68015 curveto
+529.54815 138.55319 528.59893 138.98972 527.49152 138.98972 curveto
+526.38995 138.98972 525.52569 138.52975 524.89874 137.60983 curveto
+524.89874 138.77878 lineto
+524.88116 134.04147 moveto
+524.88116 135.16062 525.03351 135.96921 525.3382 136.46725 curveto
+525.83624 137.28171 526.51007 137.68894 527.35968 137.68893 curveto
+528.05108 137.68894 528.64874 137.39011 529.15265 136.79245 curveto
+529.65655 136.18894 529.9085 135.29245 529.90851 134.103 curveto
+529.9085 132.88425 529.66534 131.98484 529.17902 131.40475 curveto
+528.69854 130.82468 528.11553 130.53465 527.42999 130.53464 curveto
+526.73858 130.53465 526.14093 130.8364 525.63702 131.43991 curveto
+525.13311 132.03757 524.88116 132.90476 524.88116 134.04147 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+539.55011 137.62741 moveto
+538.96417 138.12546 538.39874 138.47702 537.85382 138.6821 curveto
+537.31475 138.88718 536.73468 138.98972 536.11359 138.98972 curveto
+535.08819 138.98972 534.30011 138.74069 533.74933 138.24265 curveto
+533.19855 137.73874 532.92316 137.09714 532.92316 136.31784 curveto
+532.92316 135.86081 533.0257 135.4448 533.23077 135.06979 curveto
+533.44171 134.68894 533.71417 134.38425 534.04816 134.15573 curveto
+534.388 133.92722 534.76886 133.75437 535.19073 133.63718 curveto
+535.50128 133.55515 535.97003 133.47605 536.59698 133.39987 curveto
+537.87432 133.24753 538.81475 133.06589 539.41827 132.85495 curveto
+539.42413 132.63816 539.42706 132.50046 539.42706 132.44186 curveto
+539.42706 131.79734 539.27764 131.34324 538.97882 131.07956 curveto
+538.57452 130.72215 537.97393 130.54343 537.17706 130.54343 curveto
+536.43292 130.54343 535.88214 130.67527 535.52472 130.93893 curveto
+535.17315 131.19675 534.91241 131.65671 534.74249 132.31882 curveto
+533.19562 132.10788 lineto
+533.33624 131.44578 533.56769 130.91258 533.88995 130.50827 curveto
+534.21222 130.09812 534.67804 129.78465 535.28741 129.56784 curveto
+535.89679 129.34519 536.60284 129.23387 537.40558 129.23386 curveto
+538.20245 129.23387 538.84991 129.32762 539.34796 129.51511 curveto
+539.846 129.70262 540.21221 129.93992 540.44659 130.22702 curveto
+540.68096 130.50828 540.84502 130.8657 540.93878 131.29929 curveto
+540.99151 131.56882 541.01787 132.05515 541.01788 132.75827 curveto
+541.01788 134.86765 lineto
+541.01787 136.33835 541.0501 137.26999 541.11456 137.66257 curveto
+541.18487 138.04929 541.31963 138.42136 541.51886 138.77878 curveto
+539.86652 138.77878 lineto
+539.70245 138.45065 539.59698 138.06686 539.55011 137.62741 curveto
+539.41827 134.09421 moveto
+538.84405 134.32859 537.98272 134.52781 536.83429 134.69186 curveto
+536.1839 134.78562 535.72393 134.89109 535.45441 135.00827 curveto
+535.18487 135.12546 534.97686 135.29831 534.83038 135.52682 curveto
+534.6839 135.74948 534.61065 135.99851 534.61066 136.2739 curveto
+534.61065 136.69577 534.76886 137.04733 535.08527 137.32858 curveto
+535.40753 137.60983 535.87628 137.75046 536.49152 137.75046 curveto
+537.10089 137.75046 537.64288 137.61862 538.11749 137.35495 curveto
+538.5921 137.08542 538.94073 136.71921 539.16339 136.25632 curveto
+539.33331 135.8989 539.41827 135.37155 539.41827 134.67429 curveto
+539.41827 134.09421 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+543.46124 138.77878 moveto
+543.46124 129.44479 lineto
+544.88507 129.44479 lineto
+544.88507 130.85983 lineto
+545.24835 130.19773 545.58233 129.76121 545.88702 129.55026 curveto
+546.19757 129.33933 546.53741 129.23387 546.90656 129.23386 curveto
+547.43975 129.23387 547.98174 129.40379 548.53253 129.74362 curveto
+547.98761 131.2114 lineto
+547.60089 130.98289 547.21417 130.86863 546.82745 130.86862 curveto
+546.48175 130.86863 546.1712 130.9741 545.89581 131.18503 curveto
+545.62042 131.39011 545.42413 131.67722 545.30695 132.04636 curveto
+545.13116 132.60886 545.04327 133.2241 545.04327 133.89206 curveto
+545.04327 138.77878 lineto
+543.46124 138.77878 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+550.94952 138.77878 moveto
+549.48175 138.77878 lineto
+549.48175 125.89401 lineto
+551.06378 125.89401 lineto
+551.06378 130.49069 lineto
+551.73175 129.65281 552.58429 129.23387 553.6214 129.23386 curveto
+554.19561 129.23387 554.7376 129.35105 555.24738 129.58542 curveto
+555.76299 129.81394 556.18487 130.13914 556.513 130.561 curveto
+556.84698 130.97703 557.10772 131.48093 557.29523 132.07272 curveto
+557.48272 132.66453 557.57647 133.29734 557.57648 133.97116 curveto
+557.57647 135.57077 557.18096 136.8071 556.38995 137.68015 curveto
+555.59893 138.55319 554.64971 138.98972 553.5423 138.98972 curveto
+552.44073 138.98972 551.57647 138.52975 550.94952 137.60983 curveto
+550.94952 138.77878 lineto
+550.93195 134.04147 moveto
+550.93194 135.16062 551.08429 135.96921 551.38898 136.46725 curveto
+551.88702 137.28171 552.56085 137.68894 553.41046 137.68893 curveto
+554.10186 137.68894 554.69952 137.39011 555.20343 136.79245 curveto
+555.70733 136.18894 555.95928 135.29245 555.95929 134.103 curveto
+555.95928 132.88425 555.71612 131.98484 555.2298 131.40475 curveto
+554.74932 130.82468 554.16631 130.53465 553.48077 130.53464 curveto
+552.78936 130.53465 552.19171 130.8364 551.68781 131.43991 curveto
+551.1839 132.03757 550.93194 132.90476 550.93195 134.04147 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+565.60089 137.62741 moveto
+565.01495 138.12546 564.44952 138.47702 563.9046 138.6821 curveto
+563.36553 138.88718 562.78546 138.98972 562.16437 138.98972 curveto
+561.13897 138.98972 560.35089 138.74069 559.80011 138.24265 curveto
+559.24933 137.73874 558.97394 137.09714 558.97394 136.31784 curveto
+558.97394 135.86081 559.07648 135.4448 559.28156 135.06979 curveto
+559.49249 134.68894 559.76495 134.38425 560.09894 134.15573 curveto
+560.43878 133.92722 560.81964 133.75437 561.24152 133.63718 curveto
+561.55206 133.55515 562.02081 133.47605 562.64777 133.39987 curveto
+563.9251 133.24753 564.86553 133.06589 565.46906 132.85495 curveto
+565.47491 132.63816 565.47784 132.50046 565.47784 132.44186 curveto
+565.47784 131.79734 565.32842 131.34324 565.0296 131.07956 curveto
+564.6253 130.72215 564.02471 130.54343 563.22784 130.54343 curveto
+562.4837 130.54343 561.93292 130.67527 561.5755 130.93893 curveto
+561.22394 131.19675 560.96319 131.65671 560.79327 132.31882 curveto
+559.2464 132.10788 lineto
+559.38702 131.44578 559.61847 130.91258 559.94073 130.50827 curveto
+560.263 130.09812 560.72882 129.78465 561.3382 129.56784 curveto
+561.94757 129.34519 562.65362 129.23387 563.45636 129.23386 curveto
+564.25323 129.23387 564.90069 129.32762 565.39874 129.51511 curveto
+565.89678 129.70262 566.26299 129.93992 566.49738 130.22702 curveto
+566.73174 130.50828 566.8958 130.8657 566.98956 131.29929 curveto
+567.04229 131.56882 567.06866 132.05515 567.06866 132.75827 curveto
+567.06866 134.86765 lineto
+567.06866 136.33835 567.10088 137.26999 567.16534 137.66257 curveto
+567.23565 138.04929 567.37041 138.42136 567.56964 138.77878 curveto
+565.9173 138.77878 lineto
+565.75323 138.45065 565.64776 138.06686 565.60089 137.62741 curveto
+565.46906 134.09421 moveto
+564.89483 134.32859 564.0335 134.52781 562.88507 134.69186 curveto
+562.23468 134.78562 561.77472 134.89109 561.50519 135.00827 curveto
+561.23565 135.12546 561.02765 135.29831 560.88116 135.52682 curveto
+560.73468 135.74948 560.66144 135.99851 560.66144 136.2739 curveto
+560.66144 136.69577 560.81964 137.04733 561.13605 137.32858 curveto
+561.45831 137.60983 561.92706 137.75046 562.5423 137.75046 curveto
+563.15167 137.75046 563.69366 137.61862 564.16827 137.35495 curveto
+564.64288 137.08542 564.99151 136.71921 565.21417 136.25632 curveto
+565.38409 135.8989 565.46905 135.37155 565.46906 134.67429 curveto
+565.46906 134.09421 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+569.51202 138.77878 moveto
+569.51202 129.44479 lineto
+570.93585 129.44479 lineto
+570.93585 130.85983 lineto
+571.29913 130.19773 571.63311 129.76121 571.93781 129.55026 curveto
+572.24835 129.33933 572.58819 129.23387 572.95734 129.23386 curveto
+573.49053 129.23387 574.03253 129.40379 574.58331 129.74362 curveto
+574.03839 131.2114 lineto
+573.65167 130.98289 573.26495 130.86863 572.87823 130.86862 curveto
+572.53253 130.86863 572.22198 130.9741 571.94659 131.18503 curveto
+571.6712 131.39011 571.47491 131.67722 571.35773 132.04636 curveto
+571.18194 132.60886 571.09405 133.2241 571.09406 133.89206 curveto
+571.09406 138.77878 lineto
+569.51202 138.77878 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+574.95245 134.11179 moveto
+574.95245 132.38328 575.43292 131.103 576.39386 130.27097 curveto
+577.19659 129.57957 578.17511 129.23387 579.32941 129.23386 curveto
+580.6126 129.23387 581.66143 129.65574 582.47589 130.49948 curveto
+583.29034 131.33738 583.69756 132.49753 583.69757 133.97995 curveto
+583.69756 135.18113 583.51592 136.12741 583.15265 136.81882 curveto
+582.79522 137.50437 582.27081 138.03757 581.57941 138.41843 curveto
+580.89385 138.79929 580.14385 138.98972 579.32941 138.98972 curveto
+578.02276 138.98972 576.96515 138.57077 576.15656 137.73288 curveto
+575.35382 136.89499 574.95245 135.68796 574.95245 134.11179 curveto
+576.57843 134.11179 moveto
+576.57843 135.3071 576.83917 136.20359 577.36066 136.80124 curveto
+577.88214 137.39304 578.53839 137.68894 579.32941 137.68893 curveto
+580.11456 137.68894 580.76788 137.39011 581.28937 136.79245 curveto
+581.81084 136.1948 582.07159 135.28366 582.07159 134.05905 curveto
+582.07159 132.90476 581.80791 132.03171 581.28058 131.43991 curveto
+580.75909 130.84226 580.1087 130.54343 579.32941 130.54343 curveto
+578.53839 130.54343 577.88214 130.83933 577.36066 131.43112 curveto
+576.83917 132.02293 576.57843 132.91648 576.57843 134.11179 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+656.14789 138.17416 moveto
+654.68011 138.17416 lineto
+654.68011 125.2894 lineto
+656.26215 125.2894 lineto
+656.26215 129.88608 lineto
+656.93011 129.0482 657.78265 128.62925 658.81976 128.62924 curveto
+659.39398 128.62925 659.93597 128.74644 660.44574 128.9808 curveto
+660.96136 129.20933 661.38323 129.53452 661.71136 129.95639 curveto
+662.04534 130.37241 662.30608 130.87632 662.49359 131.46811 curveto
+662.68108 132.05991 662.77483 132.69272 662.77484 133.36655 curveto
+662.77483 134.96616 662.37932 136.20249 661.58832 137.07553 curveto
+660.79729 137.94858 659.84808 138.3851 658.74066 138.3851 curveto
+657.63909 138.3851 656.77484 137.92514 656.14789 137.00522 curveto
+656.14789 138.17416 lineto
+656.13031 133.43686 moveto
+656.13031 134.556 656.28265 135.3646 656.58734 135.86264 curveto
+657.08538 136.6771 657.75921 137.08432 658.60883 137.08432 curveto
+659.30023 137.08432 659.89788 136.78549 660.40179 136.18784 curveto
+660.90569 135.58432 661.15765 134.68784 661.15765 133.49838 curveto
+661.15765 132.27964 660.91448 131.38023 660.42816 130.80014 curveto
+659.94769 130.22007 659.36468 129.93003 658.67914 129.93002 curveto
+657.98773 129.93003 657.39007 130.23179 656.88617 130.8353 curveto
+656.38226 131.43296 656.13031 132.30015 656.13031 133.43686 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+670.79926 137.0228 moveto
+670.21331 137.52084 669.64788 137.87241 669.10297 138.07748 curveto
+668.5639 138.28256 667.98382 138.3851 667.36273 138.3851 curveto
+666.33734 138.3851 665.54925 138.13608 664.99847 137.63803 curveto
+664.44769 137.13413 664.1723 136.49252 664.1723 135.71323 curveto
+664.1723 135.2562 664.27484 134.84018 664.47992 134.46518 curveto
+664.69086 134.08432 664.96332 133.77964 665.2973 133.55112 curveto
+665.63714 133.32261 666.018 133.14975 666.43988 133.03256 curveto
+666.75042 132.95054 667.21917 132.87143 667.84613 132.79526 curveto
+669.12347 132.64292 670.0639 132.46128 670.66742 132.25034 curveto
+670.67327 132.03354 670.6762 131.89585 670.67621 131.83725 curveto
+670.6762 131.19273 670.52679 130.73862 670.22797 130.47495 curveto
+669.82366 130.11753 669.22308 129.93882 668.42621 129.93881 curveto
+667.68206 129.93882 667.13128 130.07066 666.77386 130.33432 curveto
+666.4223 130.59214 666.16156 131.0521 665.99164 131.7142 curveto
+664.44476 131.50327 lineto
+664.58539 130.84116 664.81683 130.30796 665.1391 129.90366 curveto
+665.46136 129.49351 665.92718 129.18003 666.53656 128.96323 curveto
+667.14593 128.74058 667.85199 128.62925 668.65472 128.62924 curveto
+669.45159 128.62925 670.09905 128.723 670.59711 128.91049 curveto
+671.09515 129.098 671.46136 129.33531 671.69574 129.62241 curveto
+671.93011 129.90366 672.09417 130.26109 672.18793 130.69467 curveto
+672.24065 130.96421 672.26702 131.45054 672.26703 132.15366 curveto
+672.26703 134.26303 lineto
+672.26702 135.73374 672.29925 136.66538 672.36371 137.05795 curveto
+672.43401 137.44467 672.56878 137.81674 672.76801 138.17416 curveto
+671.11566 138.17416 lineto
+670.95159 137.84604 670.84612 137.46225 670.79926 137.0228 curveto
+670.66742 133.48959 moveto
+670.09319 133.72397 669.23187 133.92319 668.08344 134.08725 curveto
+667.43304 134.181 666.97308 134.28647 666.70355 134.40366 curveto
+666.43402 134.52085 666.22601 134.6937 666.07953 134.92221 curveto
+665.93304 135.14487 665.8598 135.39389 665.8598 135.66928 curveto
+665.8598 136.09116 666.018 136.44272 666.33441 136.72397 curveto
+666.65667 137.00522 667.12542 137.14584 667.74066 137.14584 curveto
+668.35003 137.14584 668.89202 137.01401 669.36664 136.75034 curveto
+669.84124 136.48081 670.18987 136.1146 670.41254 135.6517 curveto
+670.58245 135.29428 670.66741 134.76694 670.66742 134.06967 curveto
+670.66742 133.48959 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+674.71039 138.17416 moveto
+674.71039 128.84018 lineto
+676.13422 128.84018 lineto
+676.13422 130.25522 lineto
+676.49749 129.59312 676.83148 129.15659 677.13617 128.94565 curveto
+677.44671 128.73472 677.78656 128.62925 678.1557 128.62924 curveto
+678.6889 128.62925 679.23089 128.79917 679.78168 129.13901 curveto
+679.23676 130.60678 lineto
+678.85003 130.37827 678.46331 130.26402 678.0766 130.26401 curveto
+677.73089 130.26402 677.42035 130.36948 677.14496 130.58041 curveto
+676.86956 130.7855 676.67328 131.07261 676.55609 131.44174 curveto
+676.38031 132.00425 676.29242 132.61948 676.29242 133.28745 curveto
+676.29242 138.17416 lineto
+674.71039 138.17416 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+682.19867 138.17416 moveto
+680.7309 138.17416 lineto
+680.7309 125.2894 lineto
+682.31293 125.2894 lineto
+682.31293 129.88608 lineto
+682.98089 129.0482 683.83343 128.62925 684.87054 128.62924 curveto
+685.44476 128.62925 685.98675 128.74644 686.49652 128.9808 curveto
+687.01214 129.20933 687.43401 129.53452 687.76215 129.95639 curveto
+688.09612 130.37241 688.35686 130.87632 688.54437 131.46811 curveto
+688.73186 132.05991 688.82561 132.69272 688.82562 133.36655 curveto
+688.82561 134.96616 688.43011 136.20249 687.6391 137.07553 curveto
+686.84808 137.94858 685.89886 138.3851 684.79144 138.3851 curveto
+683.68988 138.3851 682.82562 137.92514 682.19867 137.00522 curveto
+682.19867 138.17416 lineto
+682.18109 133.43686 moveto
+682.18109 134.556 682.33343 135.3646 682.63812 135.86264 curveto
+683.13617 136.6771 683.80999 137.08432 684.65961 137.08432 curveto
+685.35101 137.08432 685.94866 136.78549 686.45258 136.18784 curveto
+686.95647 135.58432 687.20843 134.68784 687.20844 133.49838 curveto
+687.20843 132.27964 686.96526 131.38023 686.47894 130.80014 curveto
+685.99847 130.22007 685.41546 129.93003 684.72992 129.93002 curveto
+684.03851 129.93003 683.44085 130.23179 682.93695 130.8353 curveto
+682.43304 131.43296 682.18109 132.30015 682.18109 133.43686 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+696.85004 137.0228 moveto
+696.26409 137.52084 695.69866 137.87241 695.15375 138.07748 curveto
+694.61468 138.28256 694.0346 138.3851 693.41351 138.3851 curveto
+692.38812 138.3851 691.60003 138.13608 691.04926 137.63803 curveto
+690.49847 137.13413 690.22308 136.49252 690.22308 135.71323 curveto
+690.22308 135.2562 690.32562 134.84018 690.5307 134.46518 curveto
+690.74164 134.08432 691.0141 133.77964 691.34808 133.55112 curveto
+691.68793 133.32261 692.06878 133.14975 692.49066 133.03256 curveto
+692.80121 132.95054 693.26995 132.87143 693.89691 132.79526 curveto
+695.17425 132.64292 696.11468 132.46128 696.7182 132.25034 curveto
+696.72405 132.03354 696.72698 131.89585 696.72699 131.83725 curveto
+696.72698 131.19273 696.57757 130.73862 696.27875 130.47495 curveto
+695.87444 130.11753 695.27386 129.93882 694.47699 129.93881 curveto
+693.73284 129.93882 693.18206 130.07066 692.82465 130.33432 curveto
+692.47308 130.59214 692.21234 131.0521 692.04242 131.7142 curveto
+690.49554 131.50327 lineto
+690.63617 130.84116 690.86761 130.30796 691.18988 129.90366 curveto
+691.51214 129.49351 691.97796 129.18003 692.58734 128.96323 curveto
+693.19671 128.74058 693.90277 128.62925 694.70551 128.62924 curveto
+695.50237 128.62925 696.14983 128.723 696.64789 128.91049 curveto
+697.14593 129.098 697.51214 129.33531 697.74652 129.62241 curveto
+697.98089 129.90366 698.14495 130.26109 698.23871 130.69467 curveto
+698.29143 130.96421 698.3178 131.45054 698.31781 132.15366 curveto
+698.31781 134.26303 lineto
+698.3178 135.73374 698.35003 136.66538 698.41449 137.05795 curveto
+698.48479 137.44467 698.61956 137.81674 698.81879 138.17416 curveto
+697.16644 138.17416 lineto
+697.00237 137.84604 696.8969 137.46225 696.85004 137.0228 curveto
+696.7182 133.48959 moveto
+696.14398 133.72397 695.28265 133.92319 694.13422 134.08725 curveto
+693.48382 134.181 693.02386 134.28647 692.75433 134.40366 curveto
+692.4848 134.52085 692.27679 134.6937 692.13031 134.92221 curveto
+691.98382 135.14487 691.91058 135.39389 691.91058 135.66928 curveto
+691.91058 136.09116 692.06878 136.44272 692.38519 136.72397 curveto
+692.70746 137.00522 693.1762 137.14584 693.79144 137.14584 curveto
+694.40081 137.14584 694.9428 137.01401 695.41742 136.75034 curveto
+695.89202 136.48081 696.24065 136.1146 696.46332 135.6517 curveto
+696.63323 135.29428 696.71819 134.76694 696.7182 134.06967 curveto
+696.7182 133.48959 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+700.76117 138.17416 moveto
+700.76117 128.84018 lineto
+702.185 128.84018 lineto
+702.185 130.25522 lineto
+702.54828 129.59312 702.88226 129.15659 703.18695 128.94565 curveto
+703.49749 128.73472 703.83734 128.62925 704.20648 128.62924 curveto
+704.73968 128.62925 705.28167 128.79917 705.83246 129.13901 curveto
+705.28754 130.60678 lineto
+704.90081 130.37827 704.51409 130.26402 704.12738 130.26401 curveto
+703.78167 130.26402 703.47113 130.36948 703.19574 130.58041 curveto
+702.92035 130.7855 702.72406 131.07261 702.60687 131.44174 curveto
+702.43109 132.00425 702.3432 132.61948 702.3432 133.28745 curveto
+702.3432 138.17416 lineto
+700.76117 138.17416 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+706.2016 133.50717 moveto
+706.2016 131.77866 706.68207 130.49839 707.64301 129.66635 curveto
+708.44574 128.97495 709.42425 128.62925 710.57855 128.62924 curveto
+711.86175 128.62925 712.91058 129.05113 713.72504 129.89487 curveto
+714.53948 130.73277 714.94671 131.89292 714.94672 133.37534 curveto
+714.94671 134.57651 714.76507 135.5228 714.40179 136.2142 curveto
+714.04436 136.89975 713.51995 137.43295 712.82855 137.81381 curveto
+712.143 138.19467 711.393 138.3851 710.57855 138.3851 curveto
+709.27191 138.3851 708.21429 137.96616 707.4057 137.12827 curveto
+706.60297 136.29038 706.2016 135.08335 706.2016 133.50717 curveto
+707.82758 133.50717 moveto
+707.82757 134.70249 708.08832 135.59897 708.6098 136.19662 curveto
+709.13128 136.78842 709.78753 137.08432 710.57855 137.08432 curveto
+711.3637 137.08432 712.01702 136.78549 712.53851 136.18784 curveto
+713.05999 135.59018 713.32073 134.67905 713.32074 133.45444 curveto
+713.32073 132.30015 713.05706 131.4271 712.52972 130.8353 curveto
+712.00823 130.23765 711.35784 129.93882 710.57855 129.93881 curveto
+709.78753 129.93882 709.13128 130.23472 708.6098 130.82651 curveto
+708.08832 131.41831 707.82757 132.31186 707.82758 133.50717 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+716.17719 135.38803 moveto
+717.74164 135.14194 lineto
+717.82953 135.76889 718.07269 136.24936 718.47113 136.58334 curveto
+718.87542 136.91733 719.43792 137.08432 720.15863 137.08432 curveto
+720.88519 137.08432 721.42425 136.93784 721.77582 136.64487 curveto
+722.12737 136.34604 722.30315 135.99741 722.30316 135.59897 curveto
+722.30315 135.24155 722.14788 134.9603 721.83734 134.75522 curveto
+721.62054 134.6146 721.08148 134.43589 720.22015 134.21909 curveto
+719.05999 133.92612 718.25433 133.67417 717.80316 133.46323 curveto
+717.35785 133.24643 717.018 132.95054 716.78363 132.57553 curveto
+716.55511 132.19468 716.44086 131.77573 716.44086 131.3187 curveto
+716.44086 130.90269 716.53461 130.5189 716.72211 130.16733 curveto
+716.91547 129.80991 717.17621 129.51402 717.50433 129.27963 curveto
+717.75043 129.098 718.08441 128.94566 718.50629 128.8226 curveto
+718.93402 128.6937 719.39105 128.62925 719.87738 128.62924 curveto
+720.6098 128.62925 721.2514 128.73472 721.80219 128.94565 curveto
+722.35882 129.15659 722.76897 129.4437 723.03265 129.80698 curveto
+723.29632 130.16441 723.47796 130.64487 723.57758 131.24838 curveto
+722.0307 131.45932 lineto
+721.96038 130.97886 721.7553 130.60386 721.41547 130.33432 curveto
+721.08148 130.0648 720.60687 129.93003 719.99164 129.93002 curveto
+719.26507 129.93003 718.74652 130.05015 718.43597 130.29037 curveto
+718.12542 130.53062 717.97015 130.81187 717.97015 131.13412 curveto
+717.97015 131.33921 718.0346 131.52378 718.16351 131.68784 curveto
+718.29242 131.85776 718.49456 131.99839 718.76996 132.10971 curveto
+718.92816 132.16831 719.39398 132.30308 720.16742 132.51401 curveto
+721.28655 132.81284 722.06585 133.05893 722.50531 133.25229 curveto
+722.95062 133.43979 723.29925 133.71518 723.55121 134.07846 curveto
+723.80315 134.44175 723.92913 134.89292 723.92914 135.43198 curveto
+723.92913 135.95932 723.77386 136.45737 723.46332 136.92612 curveto
+723.15862 137.38901 722.71624 137.74936 722.13617 138.00717 curveto
+721.55609 138.25912 720.89984 138.3851 720.16742 138.3851 curveto
+718.95453 138.3851 718.02875 138.13315 717.39008 137.62924 curveto
+716.75726 137.12534 716.35297 136.37827 716.17719 135.38803 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+725.17719 135.38803 moveto
+726.74164 135.14194 lineto
+726.82953 135.76889 727.07269 136.24936 727.47113 136.58334 curveto
+727.87542 136.91733 728.43792 137.08432 729.15863 137.08432 curveto
+729.88519 137.08432 730.42425 136.93784 730.77582 136.64487 curveto
+731.12737 136.34604 731.30315 135.99741 731.30316 135.59897 curveto
+731.30315 135.24155 731.14788 134.9603 730.83734 134.75522 curveto
+730.62054 134.6146 730.08148 134.43589 729.22015 134.21909 curveto
+728.05999 133.92612 727.25433 133.67417 726.80316 133.46323 curveto
+726.35785 133.24643 726.018 132.95054 725.78363 132.57553 curveto
+725.55511 132.19468 725.44086 131.77573 725.44086 131.3187 curveto
+725.44086 130.90269 725.53461 130.5189 725.72211 130.16733 curveto
+725.91547 129.80991 726.17621 129.51402 726.50433 129.27963 curveto
+726.75043 129.098 727.08441 128.94566 727.50629 128.8226 curveto
+727.93402 128.6937 728.39105 128.62925 728.87738 128.62924 curveto
+729.6098 128.62925 730.2514 128.73472 730.80219 128.94565 curveto
+731.35882 129.15659 731.76897 129.4437 732.03265 129.80698 curveto
+732.29632 130.16441 732.47796 130.64487 732.57758 131.24838 curveto
+731.0307 131.45932 lineto
+730.96038 130.97886 730.7553 130.60386 730.41547 130.33432 curveto
+730.08148 130.0648 729.60687 129.93003 728.99164 129.93002 curveto
+728.26507 129.93003 727.74652 130.05015 727.43597 130.29037 curveto
+727.12542 130.53062 726.97015 130.81187 726.97015 131.13412 curveto
+726.97015 131.33921 727.0346 131.52378 727.16351 131.68784 curveto
+727.29242 131.85776 727.49456 131.99839 727.76996 132.10971 curveto
+727.92816 132.16831 728.39398 132.30308 729.16742 132.51401 curveto
+730.28655 132.81284 731.06585 133.05893 731.50531 133.25229 curveto
+731.95062 133.43979 732.29925 133.71518 732.55121 134.07846 curveto
+732.80315 134.44175 732.92913 134.89292 732.92914 135.43198 curveto
+732.92913 135.95932 732.77386 136.45737 732.46332 136.92612 curveto
+732.15862 137.38901 731.71624 137.74936 731.13617 138.00717 curveto
+730.55609 138.25912 729.89984 138.3851 729.16742 138.3851 curveto
+727.95453 138.3851 727.02875 138.13315 726.39008 137.62924 curveto
+725.75726 137.12534 725.35297 136.37827 725.17719 135.38803 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+740.90082 137.0228 moveto
+740.31487 137.52084 739.74944 137.87241 739.20453 138.07748 curveto
+738.66546 138.28256 738.08538 138.3851 737.46429 138.3851 curveto
+736.4389 138.3851 735.65082 138.13608 735.10004 137.63803 curveto
+734.54925 137.13413 734.27386 136.49252 734.27386 135.71323 curveto
+734.27386 135.2562 734.3764 134.84018 734.58148 134.46518 curveto
+734.79242 134.08432 735.06488 133.77964 735.39886 133.55112 curveto
+735.73871 133.32261 736.11957 133.14975 736.54144 133.03256 curveto
+736.85199 132.95054 737.32074 132.87143 737.94769 132.79526 curveto
+739.22503 132.64292 740.16546 132.46128 740.76898 132.25034 curveto
+740.77483 132.03354 740.77776 131.89585 740.77777 131.83725 curveto
+740.77776 131.19273 740.62835 130.73862 740.32953 130.47495 curveto
+739.92523 130.11753 739.32464 129.93882 738.52777 129.93881 curveto
+737.78363 129.93882 737.23285 130.07066 736.87543 130.33432 curveto
+736.52386 130.59214 736.26312 131.0521 736.0932 131.7142 curveto
+734.54633 131.50327 lineto
+734.68695 130.84116 734.91839 130.30796 735.24066 129.90366 curveto
+735.56293 129.49351 736.02875 129.18003 736.63812 128.96323 curveto
+737.24749 128.74058 737.95355 128.62925 738.75629 128.62924 curveto
+739.55316 128.62925 740.20062 128.723 740.69867 128.91049 curveto
+741.19671 129.098 741.56292 129.33531 741.7973 129.62241 curveto
+742.03167 129.90366 742.19573 130.26109 742.28949 130.69467 curveto
+742.34222 130.96421 742.36858 131.45054 742.36859 132.15366 curveto
+742.36859 134.26303 lineto
+742.36858 135.73374 742.40081 136.66538 742.46527 137.05795 curveto
+742.53557 137.44467 742.67034 137.81674 742.86957 138.17416 curveto
+741.21722 138.17416 lineto
+741.05315 137.84604 740.94769 137.46225 740.90082 137.0228 curveto
+740.76898 133.48959 moveto
+740.19476 133.72397 739.33343 133.92319 738.185 134.08725 curveto
+737.5346 134.181 737.07464 134.28647 736.80511 134.40366 curveto
+736.53558 134.52085 736.32757 134.6937 736.18109 134.92221 curveto
+736.0346 135.14487 735.96136 135.39389 735.96136 135.66928 curveto
+735.96136 136.09116 736.11957 136.44272 736.43597 136.72397 curveto
+736.75824 137.00522 737.22699 137.14584 737.84222 137.14584 curveto
+738.45159 137.14584 738.99359 137.01401 739.4682 136.75034 curveto
+739.9428 136.48081 740.29144 136.1146 740.5141 135.6517 curveto
+740.68401 135.29428 740.76897 134.76694 740.76898 134.06967 curveto
+740.76898 133.48959 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+623.5993 139.35719 moveto
+623.5993 137.55544 lineto
+625.40106 137.55544 lineto
+625.40106 139.35719 lineto
+623.5993 139.35719 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+628.59149 139.35719 moveto
+628.59149 137.55544 lineto
+630.39325 137.55544 lineto
+630.39325 139.35719 lineto
+628.59149 139.35719 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+633.58368 139.35719 moveto
+633.58368 137.55544 lineto
+635.38544 137.55544 lineto
+635.38544 139.35719 lineto
+633.58368 139.35719 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+39.691288 177.70506 moveto
+38.223515 177.70506 lineto
+38.223515 164.8203 lineto
+39.805546 164.8203 lineto
+39.805546 169.41698 lineto
+40.473511 168.5791 41.326049 168.16015 42.363163 168.16014 curveto
+42.937376 168.16015 43.479367 168.27734 43.98914 168.5117 curveto
+44.504757 168.74023 44.926632 169.06542 45.254765 169.48729 curveto
+45.58874 169.90331 45.849482 170.40722 46.036991 170.99901 curveto
+46.224482 171.59081 46.318232 172.22362 46.318241 172.89745 curveto
+46.318232 174.49706 45.922724 175.73339 45.131718 176.60643 curveto
+44.340695 177.47948 43.391477 177.916 42.284061 177.916 curveto
+41.182495 177.916 40.318238 177.45604 39.691288 176.53612 curveto
+39.691288 177.70506 lineto
+39.67371 172.96776 moveto
+39.673707 174.0869 39.826051 174.8955 40.130741 175.39354 curveto
+40.628784 176.20799 41.302612 176.61522 42.152225 176.61522 curveto
+42.843626 176.61522 43.441282 176.31639 43.945194 175.71873 curveto
+44.449093 175.11522 44.701046 174.21874 44.701054 173.02928 curveto
+44.701046 171.81054 44.457882 170.91112 43.971561 170.33104 curveto
+43.491086 169.75097 42.908079 169.46093 42.222538 169.46092 curveto
+41.531127 169.46093 40.933472 169.76269 40.429569 170.3662 curveto
+39.92566 170.96386 39.673707 171.83105 39.67371 172.96776 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+124.23328 176.5537 moveto
+123.64734 177.05174 123.08191 177.40331 122.53699 177.60838 curveto
+121.99792 177.81346 121.41785 177.916 120.79676 177.916 curveto
+119.77136 177.916 118.98328 177.66698 118.4325 177.16893 curveto
+117.88172 176.66502 117.60633 176.02342 117.60633 175.24413 curveto
+117.60633 174.7871 117.70887 174.37108 117.91394 173.99608 curveto
+118.12488 173.61522 118.39734 173.31054 118.73133 173.08202 curveto
+119.07117 172.85351 119.45203 172.68065 119.87391 172.56346 curveto
+120.18445 172.48144 120.6532 172.40233 121.28016 172.32616 curveto
+122.55749 172.17382 123.49792 171.99218 124.10144 171.78123 curveto
+124.1073 171.56444 124.11023 171.42675 124.11023 171.36815 curveto
+124.11023 170.72362 123.96081 170.26952 123.66199 170.00584 curveto
+123.25769 169.64843 122.6571 169.46972 121.86023 169.46971 curveto
+121.11609 169.46972 120.56531 169.60156 120.20789 169.86522 curveto
+119.85632 170.12304 119.59558 170.583 119.42566 171.2451 curveto
+117.87879 171.03416 lineto
+118.01941 170.37206 118.25086 169.83886 118.57312 169.43456 curveto
+118.89539 169.02441 119.36121 168.71093 119.97058 168.49413 curveto
+120.57996 168.27148 121.28601 168.16015 122.08875 168.16014 curveto
+122.88562 168.16015 123.53308 168.2539 124.03113 168.44139 curveto
+124.52917 168.6289 124.89538 168.8662 125.12976 169.15331 curveto
+125.36413 169.43456 125.52819 169.79198 125.62195 170.22557 curveto
+125.67468 170.49511 125.70104 170.98144 125.70105 171.68456 curveto
+125.70105 173.79393 lineto
+125.70104 175.26464 125.73327 176.19628 125.79773 176.58885 curveto
+125.86804 176.97557 126.0028 177.34764 126.20203 177.70506 curveto
+124.54969 177.70506 lineto
+124.38562 177.37694 124.28015 176.99315 124.23328 176.5537 curveto
+124.10144 173.02049 moveto
+123.52722 173.25487 122.66589 173.45409 121.51746 173.61815 curveto
+120.86707 173.7119 120.4071 173.81737 120.13758 173.93456 curveto
+119.86804 174.05175 119.66004 174.2246 119.51355 174.45311 curveto
+119.36707 174.67577 119.29382 174.92479 119.29383 175.20018 curveto
+119.29382 175.62206 119.45203 175.97362 119.76844 176.25487 curveto
+120.0907 176.53612 120.55945 176.67674 121.17469 176.67674 curveto
+121.78406 176.67674 122.32605 176.54491 122.80066 176.28123 curveto
+123.27527 176.01171 123.6239 175.64549 123.84656 175.1826 curveto
+124.01648 174.82518 124.10144 174.29784 124.10144 173.60057 curveto
+124.10144 173.02049 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+198.03504 177.70506 moveto
+198.03504 168.37108 lineto
+199.45887 168.37108 lineto
+199.45887 169.78612 lineto
+199.82214 169.12402 200.15613 168.68749 200.46082 168.47655 curveto
+200.77136 168.26562 201.11121 168.16015 201.48035 168.16014 curveto
+202.01355 168.16015 202.55554 168.33007 203.10633 168.66991 curveto
+202.56141 170.13768 lineto
+202.17468 169.90917 201.78796 169.79491 201.40125 169.79491 curveto
+201.05554 169.79491 200.745 169.90038 200.46961 170.11131 curveto
+200.19421 170.3164 199.99793 170.60351 199.88074 170.97264 curveto
+199.70496 171.53515 199.61707 172.15038 199.61707 172.81834 curveto
+199.61707 177.70506 lineto
+198.03504 177.70506 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+280.40613 177.70506 moveto
+278.93836 177.70506 lineto
+278.93836 164.8203 lineto
+280.52039 164.8203 lineto
+280.52039 169.41698 lineto
+281.18835 168.5791 282.04089 168.16015 283.07801 168.16014 curveto
+283.65222 168.16015 284.19421 168.27734 284.70398 168.5117 curveto
+285.2196 168.74023 285.64148 169.06542 285.96961 169.48729 curveto
+286.30358 169.90331 286.56433 170.40722 286.75183 170.99901 curveto
+286.93933 171.59081 287.03308 172.22362 287.03308 172.89745 curveto
+287.03308 174.49706 286.63757 175.73339 285.84656 176.60643 curveto
+285.05554 177.47948 284.10632 177.916 282.99891 177.916 curveto
+281.89734 177.916 281.03308 177.45604 280.40613 176.53612 curveto
+280.40613 177.70506 lineto
+280.38855 172.96776 moveto
+280.38855 174.0869 280.54089 174.8955 280.84558 175.39354 curveto
+281.34363 176.20799 282.01746 176.61522 282.86707 176.61522 curveto
+283.55847 176.61522 284.15613 176.31639 284.66004 175.71873 curveto
+285.16394 175.11522 285.41589 174.21874 285.4159 173.02928 curveto
+285.41589 171.81054 285.17273 170.91112 284.68641 170.33104 curveto
+284.20593 169.75097 283.62292 169.46093 282.93738 169.46092 curveto
+282.24597 169.46093 281.64832 169.76269 281.14441 170.3662 curveto
+280.6405 170.96386 280.38855 171.83105 280.38855 172.96776 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+359.95594 176.5537 moveto
+359.36999 177.05174 358.80456 177.40331 358.25965 177.60838 curveto
+357.72058 177.81346 357.1405 177.916 356.51941 177.916 curveto
+355.49402 177.916 354.70593 177.66698 354.15516 177.16893 curveto
+353.60437 176.66502 353.32898 176.02342 353.32898 175.24413 curveto
+353.32898 174.7871 353.43152 174.37108 353.6366 173.99608 curveto
+353.84754 173.61522 354.12 173.31054 354.45398 173.08202 curveto
+354.79382 172.85351 355.17468 172.68065 355.59656 172.56346 curveto
+355.90711 172.48144 356.37585 172.40233 357.00281 172.32616 curveto
+358.28015 172.17382 359.22058 171.99218 359.8241 171.78123 curveto
+359.82995 171.56444 359.83288 171.42675 359.83289 171.36815 curveto
+359.83288 170.72362 359.68347 170.26952 359.38465 170.00584 curveto
+358.98034 169.64843 358.37976 169.46972 357.58289 169.46971 curveto
+356.83874 169.46972 356.28796 169.60156 355.93055 169.86522 curveto
+355.57898 170.12304 355.31824 170.583 355.14832 171.2451 curveto
+353.60144 171.03416 lineto
+353.74207 170.37206 353.97351 169.83886 354.29578 169.43456 curveto
+354.61804 169.02441 355.08386 168.71093 355.69324 168.49413 curveto
+356.30261 168.27148 357.00867 168.16015 357.81141 168.16014 curveto
+358.60827 168.16015 359.25573 168.2539 359.75379 168.44139 curveto
+360.25183 168.6289 360.61804 168.8662 360.85242 169.15331 curveto
+361.08679 169.43456 361.25085 169.79198 361.34461 170.22557 curveto
+361.39733 170.49511 361.4237 170.98144 361.42371 171.68456 curveto
+361.42371 173.79393 lineto
+361.4237 175.26464 361.45593 176.19628 361.52039 176.58885 curveto
+361.59069 176.97557 361.72546 177.34764 361.92469 177.70506 curveto
+360.27234 177.70506 lineto
+360.10827 177.37694 360.0028 176.99315 359.95594 176.5537 curveto
+359.8241 173.02049 moveto
+359.24988 173.25487 358.38855 173.45409 357.24012 173.61815 curveto
+356.58972 173.7119 356.12976 173.81737 355.86023 173.93456 curveto
+355.5907 174.05175 355.38269 174.2246 355.23621 174.45311 curveto
+355.08972 174.67577 355.01648 174.92479 355.01648 175.20018 curveto
+355.01648 175.62206 355.17468 175.97362 355.49109 176.25487 curveto
+355.81336 176.53612 356.2821 176.67674 356.89734 176.67674 curveto
+357.50671 176.67674 358.0487 176.54491 358.52332 176.28123 curveto
+358.99792 176.01171 359.34655 175.64549 359.56922 175.1826 curveto
+359.73913 174.82518 359.82409 174.29784 359.8241 173.60057 curveto
+359.8241 173.02049 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+433.75769 177.70506 moveto
+433.75769 168.37108 lineto
+435.18152 168.37108 lineto
+435.18152 169.78612 lineto
+435.5448 169.12402 435.87878 168.68749 436.18348 168.47655 curveto
+436.49402 168.26562 436.83386 168.16015 437.20301 168.16014 curveto
+437.7362 168.16015 438.2782 168.33007 438.82898 168.66991 curveto
+438.28406 170.13768 lineto
+437.89734 169.90917 437.51062 169.79491 437.12391 169.79491 curveto
+436.7782 169.79491 436.46765 169.90038 436.19226 170.11131 curveto
+435.91687 170.3164 435.72058 170.60351 435.6034 170.97264 curveto
+435.42761 171.53515 435.33972 172.15038 435.33973 172.81834 curveto
+435.33973 177.70506 lineto
+433.75769 177.70506 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+509.08875 173.03807 moveto
+509.08875 171.30956 509.56922 170.02929 510.53016 169.19725 curveto
+511.33289 168.50585 512.3114 168.16015 513.4657 168.16014 curveto
+514.7489 168.16015 515.79773 168.58203 516.61219 169.42577 curveto
+517.42663 170.26366 517.83386 171.42382 517.83387 172.90623 curveto
+517.83386 174.10741 517.65222 175.0537 517.28894 175.7451 curveto
+516.93151 176.43065 516.4071 176.96385 515.7157 177.34471 curveto
+515.03015 177.72557 514.28015 177.916 513.4657 177.916 curveto
+512.15906 177.916 511.10144 177.49706 510.29285 176.65916 curveto
+509.49012 175.82128 509.08875 174.61425 509.08875 173.03807 curveto
+510.71473 173.03807 moveto
+510.71472 174.23339 510.97547 175.12987 511.49695 175.72752 curveto
+512.01843 176.31932 512.67468 176.61522 513.4657 176.61522 curveto
+514.25085 176.61522 514.90417 176.31639 515.42566 175.71873 curveto
+515.94714 175.12108 516.20788 174.20995 516.20789 172.98534 curveto
+516.20788 171.83105 515.94421 170.958 515.41687 170.3662 curveto
+514.89538 169.76855 514.24499 169.46972 513.4657 169.46971 curveto
+512.67468 169.46972 512.01843 169.76562 511.49695 170.35741 curveto
+510.97547 170.94921 510.71472 171.84276 510.71473 173.03807 curveto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+585.04383 177.70506 moveto
+585.04383 175.90331 lineto
+586.84558 175.90331 lineto
+586.84558 177.70506 lineto
+585.04383 177.70506 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+590.03601 177.70506 moveto
+590.03601 175.90331 lineto
+591.83777 175.90331 lineto
+591.83777 177.70506 lineto
+590.03601 177.70506 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+595.0282 177.70506 moveto
+595.0282 175.90331 lineto
+596.82996 175.90331 lineto
+596.82996 177.70506 lineto
+595.0282 177.70506 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+670.56141 176.5537 moveto
+669.97546 177.05174 669.41003 177.40331 668.86512 177.60838 curveto
+668.32605 177.81346 667.74597 177.916 667.12488 177.916 curveto
+666.09949 177.916 665.3114 177.66698 664.76062 177.16893 curveto
+664.20984 176.66502 663.93445 176.02342 663.93445 175.24413 curveto
+663.93445 174.7871 664.03699 174.37108 664.24207 173.99608 curveto
+664.45301 173.61522 664.72547 173.31054 665.05945 173.08202 curveto
+665.39929 172.85351 665.78015 172.68065 666.20203 172.56346 curveto
+666.51257 172.48144 666.98132 172.40233 667.60828 172.32616 curveto
+668.88562 172.17382 669.82605 171.99218 670.42957 171.78123 curveto
+670.43542 171.56444 670.43835 171.42675 670.43836 171.36815 curveto
+670.43835 170.72362 670.28894 170.26952 669.99012 170.00584 curveto
+669.58581 169.64843 668.98523 169.46972 668.18836 169.46971 curveto
+667.44421 169.46972 666.89343 169.60156 666.53601 169.86522 curveto
+666.18445 170.12304 665.92371 170.583 665.75379 171.2451 curveto
+664.20691 171.03416 lineto
+664.34754 170.37206 664.57898 169.83886 664.90125 169.43456 curveto
+665.22351 169.02441 665.68933 168.71093 666.29871 168.49413 curveto
+666.90808 168.27148 667.61414 168.16015 668.41687 168.16014 curveto
+669.21374 168.16015 669.8612 168.2539 670.35926 168.44139 curveto
+670.8573 168.6289 671.22351 168.8662 671.45789 169.15331 curveto
+671.69226 169.43456 671.85632 169.79198 671.95008 170.22557 curveto
+672.0028 170.49511 672.02917 170.98144 672.02918 171.68456 curveto
+672.02918 173.79393 lineto
+672.02917 175.26464 672.0614 176.19628 672.12586 176.58885 curveto
+672.19616 176.97557 672.33093 177.34764 672.53016 177.70506 curveto
+670.87781 177.70506 lineto
+670.71374 177.37694 670.60827 176.99315 670.56141 176.5537 curveto
+670.42957 173.02049 moveto
+669.85534 173.25487 668.99402 173.45409 667.84558 173.61815 curveto
+667.19519 173.7119 666.73523 173.81737 666.4657 173.93456 curveto
+666.19617 174.05175 665.98816 174.2246 665.84168 174.45311 curveto
+665.69519 174.67577 665.62195 174.92479 665.62195 175.20018 curveto
+665.62195 175.62206 665.78015 175.97362 666.09656 176.25487 curveto
+666.41882 176.53612 666.88757 176.67674 667.50281 176.67674 curveto
+668.11218 176.67674 668.65417 176.54491 669.12879 176.28123 curveto
+669.60339 176.01171 669.95202 175.64549 670.17469 175.1826 curveto
+670.3446 174.82518 670.42956 174.29784 670.42957 173.60057 curveto
+670.42957 173.02049 lineto
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+83.509975 164.51929 moveto
+60.542102 190.63893 35.300495 196.8634 5.651051 164.51929 curveto
+stroke
+gsave [0.74330631 0.81086111 -0.81086111 0.74330631 6.3943573 165.33015] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+13.185786 153.96139 moveto
+78.486819 153.96139 lineto
+stroke
+gsave [-1.1 0 0 -1.1 77.386819 153.96139] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+90.747017 153.9613 moveto
+156.04805 153.9613 lineto
+stroke
+gsave [-1.1 0 0 -1.1 154.94805 153.9613] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+168.72226 153.9613 moveto
+234.02329 153.9613 lineto
+stroke
+gsave [-1.1 0 0 -1.1 232.92329 153.9613] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+245.95329 153.96121 moveto
+311.25432 153.96121 lineto
+stroke
+gsave [-1.1 0 0 -1.1 310.15432 153.96121] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+323.85853 153.9613 moveto
+389.15956 153.9613 lineto
+stroke
+gsave [-1.1 0 0 -1.1 388.05956 153.9613] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+401.50851 153.9613 moveto
+466.80954 153.9613 lineto
+stroke
+gsave [-1.1 0 0 -1.1 465.70954 153.9613] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+480.48321 153.9613 moveto
+545.78425 153.9613 lineto
+stroke
+gsave [-1.1 0 0 -1.1 544.68425 153.9613] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+558.48215 153.9613 moveto
+623.78318 153.9613 lineto
+stroke
+gsave [-1.1 0 0 -1.1 622.68318 153.9613] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+638.59633 153.9613 moveto
+703.89736 153.9613 lineto
+stroke
+gsave [-1.1 0 0 -1.1 702.79736 153.9613] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+160.62469 178.6356 moveto
+103.11439 214.93588 51.117239 212.64411 3.651051 178.6356 curveto
+stroke
+gsave [0.89417844 0.64065975 -0.64065975 0.89417844 4.5452294 179.27626] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+241.11151 117.89139 moveto
+160.02376 69.180736 82.359446 79.809701 6.2789455 117.89139 curveto
+stroke
+gsave [0.98365551 -0.49236352 0.49236352 0.98365551 7.262601 117.39903] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+319.79709 118.68308 moveto
+234.48869 66.453676 158.66445 84.678135 84.96452 118.68308 curveto
+stroke
+gsave [0.99880898 -0.46084772 0.46084772 0.99880898 85.963329 118.22223] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+397.16706 119.82255 moveto
+317.23195 75.067632 238.9209 74.162508 162.33449 119.82255 curveto
+stroke
+gsave [0.9448267 -0.56329611 0.56329611 0.9448267 163.27932 119.25925] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+473.93389 173.72993 moveto
+393.31902 208.79011 314.69794 213.94352 239.10133 173.72993 curveto
+stroke
+gsave [0.97114563 0.51660058 -0.51660058 0.97114563 240.07248 174.24653] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+gsave
+0 0 0 setrgbcolor
+newpath
+525.80261 196.2317 moveto
+524.66882 197.14577 lineto
+523.94811 196.60085 523.27429 196.32839 522.64734 196.32838 curveto
+522.13171 196.32839 521.75378 196.46609 521.51355 196.74147 curveto
+521.27917 197.01687 521.16198 197.31277 521.16199 197.62917 curveto
+521.16198 198.03933 521.33777 198.3821 521.68933 198.65749 curveto
+522.04089 198.92702 522.55651 199.06179 523.23621 199.06178 curveto
+523.32409 199.06179 523.47058 199.05886 523.67566 199.05299 curveto
+523.67566 200.38014 lineto
+523.48815 200.37429 523.34753 200.37136 523.25378 200.37135 curveto
+522.41589 200.37136 521.83288 200.53249 521.50476 200.85475 curveto
+521.18249 201.17702 521.02136 201.5403 521.02136 201.9446 curveto
+521.02136 202.36061 521.18542 202.71218 521.51355 202.99928 curveto
+521.84167 203.28053 522.23132 203.42116 522.6825 203.42116 curveto
+523.50866 203.42116 524.2821 203.03737 525.00281 202.26979 curveto
+526.1366 203.2278 lineto
+525.19909 204.22389 524.03308 204.72194 522.63855 204.72194 curveto
+521.54284 204.72194 520.72546 204.44362 520.1864 203.88698 curveto
+519.64734 203.33034 519.37781 202.68288 519.37781 201.9446 curveto
+519.37781 200.88405 519.89343 200.13112 520.92468 199.68581 curveto
+520.06335 199.19948 519.63269 198.52859 519.63269 197.67311 curveto
+519.63269 196.97585 519.88757 196.35183 520.39734 195.80104 curveto
+520.9071 195.24441 521.68933 194.96609 522.74402 194.96608 curveto
+523.95104 194.96609 524.97057 195.38796 525.80261 196.2317 curveto
+fill
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+553.1751 160.12402 moveto
+557.10653 179.41906 543.9716 187.33653 528.05932 193.40244 curveto
+stroke
+gsave [1.0278486 -0.39182551 0.39182551 1.0278486 529.08717 193.01061] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+631.03403 159.49613 moveto
+609.41147 191.856 574.44081 198.85447 536.22195 199.68138 curveto
+stroke
+gsave [1.0997426 -0.023794225 0.023794225 1.0997426 537.32169 199.65759] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+0 0 0 setrgbcolor
+[] 0 setdash
+1 setlinewidth
+0 setlinejoin
+0 setlinecap
+newpath
+713.28821 160.75192 moveto
+670.74734 221.47065 606.06284 227.41306 531.82669 209.72769 curveto
+stroke
+gsave [1.070054 0.2549203 -0.2549203 1.070054 532.89674 209.98261] concat
+gsave
+0 0 0 setrgbcolor
+newpath
+8.7185878 4.0337352 moveto
+-2.2072895 0.016013256 lineto
+8.7185884 -4.0017078 lineto
+6.97309 -1.6296469 6.9831476 1.6157441 8.7185878 4.0337352 curveto
+closepath
+eofill
+grestore
+grestore
+grestore
+showpage
+%%EOF
diff --git a/6-kmp/barb.svg b/6-kmp/barb.svg
new file mode 100644 (file)
index 0000000..467c6ab
--- /dev/null
@@ -0,0 +1,431 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="744.09448"
+   height="1052.3622"
+   id="svg2"
+   inkscape:label="Pozadí"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   version="1.0"
+   sodipodi:docname="barb.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lstart"
+       style="overflow:visible">
+      <path
+         id="path3279"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mstart"
+       style="overflow:visible">
+      <path
+         id="path3285"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;">
+      <path
+         id="path3282"
+         style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective9" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.5926241"
+     inkscape:cx="285.31172"
+     inkscape:cy="911.02563"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1280"
+     inkscape:window-height="719"
+     inkscape:window-x="0"
+     inkscape:window-y="52">
+    <sodipodi:guide
+       orientation="0,1"
+       position="-59.857549,912.97878"
+       id="guide2464" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata6">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Vrstva 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path2386"
+       sodipodi:cx="162.85715"
+       sodipodi:cy="329.50504"
+       sodipodi:rx="11.428572"
+       sodipodi:ry="11.428572"
+       d="M 174.28572,329.50504 A 11.428572,11.428572 0 1 1 151.42858,329.50504 A 11.428572,11.428572 0 1 1 174.28572,329.50504 z"
+       transform="matrix(0.4054521,0,0,0.4054521,18.60297,20.583106)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path2388"
+       sodipodi:cx="162.85715"
+       sodipodi:cy="329.50504"
+       sodipodi:rx="11.428572"
+       sodipodi:ry="11.428572"
+       d="M 174.28572,329.50504 A 11.428572,11.428572 0 1 1 151.42858,329.50504 A 11.428572,11.428572 0 1 1 174.28572,329.50504 z"
+       transform="matrix(0.4054521,0,0,0.4054521,96.60297,20.583106)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path2390"
+       sodipodi:cx="162.85715"
+       sodipodi:cy="329.50504"
+       sodipodi:rx="11.428572"
+       sodipodi:ry="11.428572"
+       d="M 174.28572,329.50504 A 11.428572,11.428572 0 1 1 151.42858,329.50504 A 11.428572,11.428572 0 1 1 174.28572,329.50504 z"
+       transform="matrix(0.4054521,0,0,0.4054521,174.60297,20.583106)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path2392"
+       sodipodi:cx="162.85715"
+       sodipodi:cy="329.50504"
+       sodipodi:rx="11.428572"
+       sodipodi:ry="11.428572"
+       d="M 174.28572,329.50504 A 11.428572,11.428572 0 1 1 151.42858,329.50504 A 11.428572,11.428572 0 1 1 174.28572,329.50504 z"
+       transform="matrix(0.4054521,0,0,0.4054521,252.60297,20.583106)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path2394"
+       sodipodi:cx="162.85715"
+       sodipodi:cy="329.50504"
+       sodipodi:rx="11.428572"
+       sodipodi:ry="11.428572"
+       d="M 174.28572,329.50504 A 11.428572,11.428572 0 1 1 151.42858,329.50504 A 11.428572,11.428572 0 1 1 174.28572,329.50504 z"
+       transform="matrix(0.4054521,0,0,0.4054521,330.60297,20.583106)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path2396"
+       sodipodi:cx="162.85715"
+       sodipodi:cy="329.50504"
+       sodipodi:rx="11.428572"
+       sodipodi:ry="11.428572"
+       d="M 174.28572,329.50504 A 11.428572,11.428572 0 1 1 151.42858,329.50504 A 11.428572,11.428572 0 1 1 174.28572,329.50504 z"
+       transform="matrix(0.4054521,0,0,0.4054521,408.60297,20.583106)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path2398"
+       sodipodi:cx="162.85715"
+       sodipodi:cy="329.50504"
+       sodipodi:rx="11.428572"
+       sodipodi:ry="11.428572"
+       d="M 174.28572,329.50504 A 11.428572,11.428572 0 1 1 151.42858,329.50504 A 11.428572,11.428572 0 1 1 174.28572,329.50504 z"
+       transform="matrix(0.4054521,0,0,0.4054521,486.60297,20.583106)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path2400"
+       sodipodi:cx="162.85715"
+       sodipodi:cy="329.50504"
+       sodipodi:rx="11.428572"
+       sodipodi:ry="11.428572"
+       d="M 174.28572,329.50504 A 11.428572,11.428572 0 1 1 151.42858,329.50504 A 11.428572,11.428572 0 1 1 174.28572,329.50504 z"
+       transform="matrix(0.4054521,0,0,0.4054521,564.60297,20.583106)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path2402"
+       sodipodi:cx="162.85715"
+       sodipodi:cy="329.50504"
+       sodipodi:rx="11.428572"
+       sodipodi:ry="11.428572"
+       d="M 174.28572,329.50504 A 11.428572,11.428572 0 1 1 151.42858,329.50504 A 11.428572,11.428572 0 1 1 174.28572,329.50504 z"
+       transform="matrix(0.4054521,0,0,0.4054521,-59.397034,20.582993)" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path2424"
+       sodipodi:cx="162.85715"
+       sodipodi:cy="329.50504"
+       sodipodi:rx="11.428572"
+       sodipodi:ry="11.428572"
+       d="M 174.28572,329.50504 A 11.428572,11.428572 0 1 1 151.42858,329.50504 A 11.428572,11.428572 0 1 1 174.28572,329.50504 z"
+       transform="matrix(0.4054521,0,0,0.4054521,646.60297,20.582936)" />
+    <text
+       xml:space="preserve"
+       style="font-size:18;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"
+       x="3.068058"
+       y="138.96112"
+       id="text2426"><tspan
+         sodipodi:role="line"
+         id="tspan2428"
+         x="3.068058"
+         y="138.96112"
+         style="font-size:18">ε</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:18;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"
+       x="80.505852"
+       y="138.49641"
+       id="text2430"><tspan
+         sodipodi:role="line"
+         id="tspan2432"
+         x="80.505852"
+         y="138.49641">b</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"
+       x="154.82938"
+       y="138.77879"
+       id="text2434"><tspan
+         sodipodi:role="line"
+         id="tspan2436"
+         x="154.82938"
+         y="138.77879"
+         style="font-size:18px">ba</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"
+       x="226.36087"
+       y="138.77878"
+       id="text2438"><tspan
+         sodipodi:role="line"
+         id="tspan2440"
+         x="226.36087"
+         y="138.77878">bar</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"
+       x="301.70624"
+       y="138.77879"
+       id="text2442"><tspan
+         sodipodi:role="line"
+         id="tspan2444"
+         x="301.70624"
+         y="138.77879">barb</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"
+       x="374.26086"
+       y="138.77878"
+       id="text2446"><tspan
+         sodipodi:role="line"
+         id="tspan2448"
+         x="374.26086"
+         y="138.77878">barba</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"
+       x="449.23392"
+       y="138.77879"
+       id="text2450"><tspan
+         sodipodi:role="line"
+         id="tspan2452"
+         x="449.23392"
+         y="138.77879">barbar</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"
+       x="522.25323"
+       y="138.77878"
+       id="text2454"><tspan
+         sodipodi:role="line"
+         id="tspan2456"
+         x="522.25323"
+         y="138.77878">barbaro</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"
+       x="653.50238"
+       y="138.17416"
+       id="text2458"><tspan
+         sodipodi:role="line"
+         id="tspan2460"
+         x="653.50238"
+         y="138.17416">barbarossa</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"
+       x="621.96454"
+       y="139.35719"
+       id="text2466"><tspan
+         sodipodi:role="line"
+         id="tspan2468"
+         x="621.96454"
+         y="139.35719">...</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"
+       x="37.04578"
+       y="177.70506"
+       id="text2470"><tspan
+         sodipodi:role="line"
+         x="37.04578"
+         y="177.70506"
+         id="tspan2482">b              a              r               b             a              r              o             ...             a  </tspan></text>
+    <path
+       style="fill:none;fill-rule:nonzero;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend);fill-opacity:1"
+       d="M 83.509975,164.51929 C 60.542102,190.63893 35.300495,196.8634 5.651051,164.51929"
+       id="path5609"
+       inkscape:connector-type="polyline"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-opacity:1"
+       d="M 13.185786,153.96139 L 78.486819,153.96139"
+       id="path7588"
+       inkscape:connector-type="polyline" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-opacity:1"
+       d="M 90.747017,153.9613 L 156.04805,153.9613"
+       id="path9700"
+       inkscape:connector-type="polyline" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-opacity:1"
+       d="M 168.72226,153.9613 L 234.02329,153.9613"
+       id="path9702"
+       inkscape:connector-type="polyline" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-opacity:1"
+       d="M 245.95329,153.96121 L 311.25432,153.96121"
+       id="path9704"
+       inkscape:connector-type="polyline" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-opacity:1"
+       d="M 323.85853,153.9613 L 389.15956,153.9613"
+       id="path9706"
+       inkscape:connector-type="polyline" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-opacity:1"
+       d="M 401.50851,153.9613 L 466.80954,153.9613"
+       id="path9708"
+       inkscape:connector-type="polyline" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-opacity:1"
+       d="M 480.48321,153.9613 L 545.78425,153.9613"
+       id="path9710"
+       inkscape:connector-type="polyline" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-opacity:1"
+       d="M 558.48215,153.9613 L 623.78318,153.9613"
+       id="path9712"
+       inkscape:connector-type="polyline" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-start:none;marker-end:url(#Arrow2Lend);stroke-opacity:1"
+       d="M 638.59633,153.9613 L 703.89736,153.9613"
+       id="path9714"
+       inkscape:connector-type="polyline" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1"
+       d="M 160.62469,178.6356 C 103.11439,214.93588 51.117239,212.64411 3.651051,178.6356"
+       id="path9716"
+       inkscape:connector-type="polyline"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1"
+       d="M 241.11151,117.89139 C 160.02376,69.180736 82.359446,79.809701 6.2789455,117.89139"
+       id="path9718"
+       inkscape:connector-type="polyline"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1"
+       d="M 319.79709,118.68308 C 234.48869,66.453676 158.66445,84.678135 84.96452,118.68308"
+       id="path10774"
+       inkscape:connector-type="polyline"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1"
+       d="M 397.16706,119.82255 C 317.23195,75.067632 238.9209,74.162508 162.33449,119.82255"
+       id="path10776"
+       inkscape:connector-type="polyline"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);stroke-opacity:1"
+       d="M 473.93389,173.72993 C 393.31902,208.79011 314.69794,213.94352 239.10133,173.72993"
+       id="path10778"
+       inkscape:connector-type="polyline"
+       sodipodi:nodetypes="cc" />
+    <text
+       xml:space="preserve"
+       style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial;-inkscape-font-specification:Arial"
+       x="518.51648"
+       y="204.511"
+       id="text10780"><tspan
+         sodipodi:role="line"
+         id="tspan10782"
+         x="518.51648"
+         y="204.511"
+         style="font-size:18px">ε</tspan></text>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
+       d="M 553.1751,160.12402 C 557.10653,179.41906 543.9716,187.33653 528.05932,193.40244"
+       id="path10786"
+       inkscape:connector-type="polyline"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
+       d="M 631.03403,159.49613 C 609.41147,191.856 574.44081,198.85447 536.22195,199.68138"
+       id="path11315"
+       inkscape:connector-type="polyline"
+       sodipodi:nodetypes="cc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
+       d="M 713.28821,160.75192 C 670.74734,221.47065 606.06284,227.41306 531.82669,209.72769"
+       id="path11844"
+       inkscape:connector-type="polyline"
+       sodipodi:nodetypes="cc" />
+  </g>
+</svg>