summaryrefslogtreecommitdiff
path: root/20-implementierungsheft
diff options
context:
space:
mode:
Diffstat (limited to '20-implementierungsheft')
-rw-r--r--20-implementierungsheft/.gitignore305
-rw-r--r--20-implementierungsheft/.gitlab-ci.yml36
-rw-r--r--20-implementierungsheft/.latexmkrc7
-rw-r--r--20-implementierungsheft/Makefile18
-rw-r--r--20-implementierungsheft/README.md31
-rw-r--r--20-implementierungsheft/assets/.gitignore3
-rw-r--r--20-implementierungsheft/assets/KIT_Deckblatt.pdfbin0 -> 11836 bytes
-rw-r--r--20-implementierungsheft/assets/diagrams/backendComponentDiagram.puml61
-rw-r--r--20-implementierungsheft/assets/diagrams/class_after.puml574
-rw-r--r--20-implementierungsheft/assets/diagrams/classdiagram.puml463
-rw-r--r--20-implementierungsheft/assets/diagrams/componentdiagram.puml79
-rw-r--r--20-implementierungsheft/assets/diagrams/db.puml78
-rw-r--r--20-implementierungsheft/assets/diagrams/deployment.puml59
-rw-r--r--20-implementierungsheft/assets/diagrams/gantt-plan.puml31
-rw-r--r--20-implementierungsheft/assets/diagrams/gantt-reality.puml39
-rw-r--r--20-implementierungsheft/assets/diagrams/sequencediagram-forgotAndResetPW.puml41
-rw-r--r--20-implementierungsheft/assets/diagrams/sequencediagram-getEpisodeActions.puml38
-rw-r--r--20-implementierungsheft/assets/diagrams/sequencediagram-getEpisodeActionsOfPodcastSince.puml32
-rw-r--r--20-implementierungsheft/assets/diagrams/sequencediagram-getSubscriptions.puml38
-rw-r--r--20-implementierungsheft/assets/diagrams/sequencediagram-register.puml26
-rw-r--r--20-implementierungsheft/assets/diagrams/sequencediagram-uploadEpisodeActions.puml38
-rw-r--r--20-implementierungsheft/assets/diagrams/sequencediagram-uploadSubscriptions.puml32
-rw-r--r--20-implementierungsheft/assets/episode.pngbin0 -> 10778 bytes
-rw-r--r--20-implementierungsheft/assets/errorlog.pngbin0 -> 23928 bytes
-rw-r--r--20-implementierungsheft/assets/floatinglabelinput.pngbin0 -> 6125 bytes
-rw-r--r--20-implementierungsheft/assets/gantt-plan-eps-converted-to.pdfbin0 -> 99852 bytes
-rw-r--r--20-implementierungsheft/assets/gantt-plan.eps8314
-rw-r--r--20-implementierungsheft/assets/gantt-plan.pdf0
-rw-r--r--20-implementierungsheft/assets/gantt-reality-eps-converted-to.pdfbin0 -> 135081 bytes
-rw-r--r--20-implementierungsheft/assets/gantt-reality.eps11142
-rw-r--r--20-implementierungsheft/assets/gantt.pngbin0 -> 39076 bytes
-rw-r--r--20-implementierungsheft/assets/help.pngbin0 -> 14423 bytes
-rw-r--r--20-implementierungsheft/assets/lastupdate.pngbin0 -> 9363 bytes
-rw-r--r--20-implementierungsheft/assets/loading.pngbin0 -> 5236 bytes
-rw-r--r--20-implementierungsheft/assets/logo.pdfbin0 -> 11797 bytes
-rw-r--r--20-implementierungsheft/assets/logo.svg211
-rw-r--r--20-implementierungsheft/assets/navbar.pngbin0 -> 8940 bytes
-rw-r--r--20-implementierungsheft/assets/password-margin.pngbin0 -> 8701 bytes
-rw-r--r--20-implementierungsheft/assets/password.pngbin0 -> 8781 bytes
-rw-r--r--20-implementierungsheft/assets/passwordinput.pngbin0 -> 6856 bytes
-rw-r--r--20-implementierungsheft/assets/passwordvalidator.pngbin0 -> 24197 bytes
-rw-r--r--20-implementierungsheft/assets/progresstime.pngbin0 -> 4222 bytes
-rw-r--r--20-implementierungsheft/assets/subscription.pngbin0 -> 79929 bytes
-rw-r--r--20-implementierungsheft/implementierungsheft.tex98
-rw-r--r--20-implementierungsheft/sections/anforderungsanalyse.tex185
-rw-r--r--20-implementierungsheft/sections/apidoc.tex191
-rw-r--r--20-implementierungsheft/sections/aufbau.tex47
-rw-r--r--20-implementierungsheft/sections/backend.tex28
-rw-r--r--20-implementierungsheft/sections/changes.tex241
-rw-r--r--20-implementierungsheft/sections/einleitung.tex11
-rw-r--r--20-implementierungsheft/sections/features.tex43
-rw-r--r--20-implementierungsheft/sections/features.tex.orig82
-rw-r--r--20-implementierungsheft/sections/frontend.tex196
-rw-r--r--20-implementierungsheft/sections/glossar.tex371
-rw-r--r--20-implementierungsheft/sections/methodology.tex16
-rw-r--r--20-implementierungsheft/sections/tests.tex21
-rw-r--r--20-implementierungsheft/sections/timeline.tex7
-rw-r--r--20-implementierungsheft/titlepage.tex75
58 files changed, 23308 insertions, 0 deletions
diff --git a/20-implementierungsheft/.gitignore b/20-implementierungsheft/.gitignore
new file mode 100644
index 0000000..b1b3dda
--- /dev/null
+++ b/20-implementierungsheft/.gitignore
@@ -0,0 +1,305 @@
+## Core latex/pdflatex auxiliary files:
+*.aux
+*.lof
+*.log
+*.lot
+*.fls
+*.out
+*.toc
+*.fmt
+*.fot
+*.cb
+*.cb2
+.*.lb
+
+## Intermediate documents:
+*.dvi
+*.xdv
+*-converted-to.*
+# these rules might exclude image files for figures etc.
+# *.ps
+# *.eps
+*.pdf
+!assets/*.pdf
+
+## Generated if empty string is given at "Please type another file name for output:"
+.pdf
+
+## Bibliography auxiliary files (bibtex/biblatex/biber):
+*.bbl
+*.bcf
+*.blg
+*-blx.aux
+*-blx.bib
+*.run.xml
+
+## Build tool auxiliary files:
+*.fdb_latexmk
+*.synctex
+*.synctex(busy)
+*.synctex.gz
+*.synctex.gz(busy)
+*.pdfsync
+
+## Build tool directories for auxiliary files
+# latexrun
+latex.out/
+
+## Auxiliary and intermediate files from other packages:
+# algorithms
+*.alg
+*.loa
+
+# achemso
+acs-*.bib
+
+# amsthm
+*.thm
+
+# beamer
+*.nav
+*.pre
+*.snm
+*.vrb
+
+# changes
+*.soc
+
+# comment
+*.cut
+
+# cprotect
+*.cpt
+
+# elsarticle (documentclass of Elsevier journals)
+*.spl
+
+# endnotes
+*.ent
+
+# fixme
+*.lox
+
+# feynmf/feynmp
+*.mf
+*.mp
+*.t[1-9]
+*.t[1-9][0-9]
+*.tfm
+
+#(r)(e)ledmac/(r)(e)ledpar
+*.end
+*.?end
+*.[1-9]
+*.[1-9][0-9]
+*.[1-9][0-9][0-9]
+*.[1-9]R
+*.[1-9][0-9]R
+*.[1-9][0-9][0-9]R
+*.eledsec[1-9]
+*.eledsec[1-9]R
+*.eledsec[1-9][0-9]
+*.eledsec[1-9][0-9]R
+*.eledsec[1-9][0-9][0-9]
+*.eledsec[1-9][0-9][0-9]R
+
+# glossaries
+*.acn
+*.acr
+*.glg
+*.glo
+*.gls
+*.glsdefs
+*.lzo
+*.lzs
+*.slg
+*.slo
+*.sls
+
+# uncomment this for glossaries-extra (will ignore makeindex's style files!)
+*.ist
+
+# gnuplot
+*.gnuplot
+*.table
+
+# gnuplottex
+*-gnuplottex-*
+
+# gregoriotex
+*.gaux
+*.glog
+*.gtex
+
+# htlatex
+*.4ct
+*.4tc
+*.idv
+*.lg
+*.trc
+*.xref
+
+# hyperref
+*.brf
+
+# knitr
+*-concordance.tex
+# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files
+# *.tikz
+*-tikzDictionary
+
+# listings
+*.lol
+
+# luatexja-ruby
+*.ltjruby
+
+# makeidx
+*.idx
+*.ilg
+*.ind
+
+# minitoc
+*.maf
+*.mlf
+*.mlt
+*.mtc[0-9]*
+*.slf[0-9]*
+*.slt[0-9]*
+*.stc[0-9]*
+
+# minted
+_minted*
+*.pyg
+
+# morewrites
+*.mw
+
+# newpax
+*.newpax
+
+# nomencl
+*.nlg
+*.nlo
+*.nls
+
+# pax
+*.pax
+
+# pdfpcnotes
+*.pdfpc
+
+# sagetex
+*.sagetex.sage
+*.sagetex.py
+*.sagetex.scmd
+
+# scrwfile
+*.wrt
+
+# svg
+svg-inkscape/
+
+# sympy
+*.sout
+*.sympy
+sympy-plots-for-*.tex/
+
+# pdfcomment
+*.upa
+*.upb
+
+# pythontex
+*.pytxcode
+pythontex-files-*/
+
+# tcolorbox
+*.listing
+
+# thmtools
+*.loe
+
+# TikZ & PGF
+*.dpth
+*.md5
+*.auxlock
+
+# titletoc
+*.ptc
+
+# todonotes
+*.tdo
+
+# vhistory
+*.hst
+*.ver
+
+# easy-todo
+*.lod
+
+# xcolor
+*.xcp
+
+# xmpincl
+*.xmpi
+
+# xindy
+*.xdy
+
+# xypic precompiled matrices and outlines
+*.xyc
+*.xyd
+
+# endfloat
+*.ttt
+*.fff
+
+# Latexian
+TSWLatexianTemp*
+
+## Editors:
+# WinEdt
+*.bak
+*.sav
+
+# Texpad
+.texpadtmp
+
+# LyX
+*.lyx~
+
+# Kile
+*.backup
+
+# gummi
+.*.swp
+
+# KBibTeX
+*~[0-9]*
+
+# TeXnicCenter
+*.tps
+
+# auto folder when using emacs and auctex
+./auto/*
+*.el
+
+# expex forward references with \gathertags
+*-tags.tex
+
+# standalone packages
+*.sta
+
+# Makeindex log files
+*.lpz
+
+# xwatermark package
+*.xwm
+
+# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
+# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
+# Uncomment the next line to have this generated file ignored.
+#*Notes.bib
+
+# Gannt Diagramm als EPS ignorieren
+assets/gantt.eps \ No newline at end of file
diff --git a/20-implementierungsheft/.gitlab-ci.yml b/20-implementierungsheft/.gitlab-ci.yml
new file mode 100644
index 0000000..27d0617
--- /dev/null
+++ b/20-implementierungsheft/.gitlab-ci.yml
@@ -0,0 +1,36 @@
+plantuml:
+ stage: .pre
+ image:
+ name: plantuml/plantuml
+ entrypoint: [""]
+ script:
+ - java -jar plantuml.jar -tpdf assets/diagrams/*.puml
+ artifacts:
+ paths:
+ - assets
+
+tex:
+ stage: build
+ image: texlive/texlive
+ script:
+ - mkdir public
+ - make tex
+ - mv *.pdf public
+ artifacts:
+ paths:
+ - public
+ dependencies:
+ - plantuml
+
+pages:
+ stage: deploy
+ script:
+ - echo Hello, World!
+ artifacts:
+ paths:
+ - public
+ rules:
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
+ dependencies:
+ - tex
+
diff --git a/20-implementierungsheft/.latexmkrc b/20-implementierungsheft/.latexmkrc
new file mode 100644
index 0000000..bec2b38
--- /dev/null
+++ b/20-implementierungsheft/.latexmkrc
@@ -0,0 +1,7 @@
+# https://tex.stackexchange.com/questions/1226/how-to-make-latexmk-use-makeglossaries
+add_cus_dep('glo', 'gls', 0, 'makeglo2gls');
+add_cus_dep('acn', 'acr', 0, 'makeglo2gls');
+sub makeglo2gls {
+ system("makeglossaries $_[0]");
+}
+
diff --git a/20-implementierungsheft/Makefile b/20-implementierungsheft/Makefile
new file mode 100644
index 0000000..335b123
--- /dev/null
+++ b/20-implementierungsheft/Makefile
@@ -0,0 +1,18 @@
+MAIN = implementierungsheft
+FLAGS = -pdf
+
+all: clean compile
+compile: diagram tex
+clean: clean-diagram clean-tex
+
+dev:
+ latexmk $(FLAGS) -pvc $(MAIN)
+tex:
+ latexmk $(FLAGS) $(MAIN)
+diagram:
+ java -jar plantuml.jar -tpdf assets/diagrams/*.puml
+clean-tex:
+ latexmk -C
+clean-diagram:
+ find assets/diagrams -type f -not -name '*.puml' -delete
+
diff --git a/20-implementierungsheft/README.md b/20-implementierungsheft/README.md
new file mode 100644
index 0000000..2c08f29
--- /dev/null
+++ b/20-implementierungsheft/README.md
@@ -0,0 +1,31 @@
+# Entwurfsheft
+
+> Systemdesign und -spezifikation
+
+## Diagramme
+
+Installiere [PlantUML](https://plantuml.com/starting) (oder über einen Paketmanager).
+
+Arbeiten an Diagrammen mit Echtzeit-Vorschau (Anzeige wird beim Speichern der
+puml-Datei aktualisiert):
+```sh
+java -jar plantuml.jar -gui assets/classdiagram.puml
+
+# bzw (wenn zu PATH hinzugefügt oder Linux)
+plantuml -gui assets/classdiagram.puml
+```
+
+Bauen der Diagramme:
+```sh
+java -jar plantuml.jar -teps assets/*.puml
+
+# bzw (wenn zu PATH hinzugefügt oder Linux)
+plantuml -teps assets/*.puml
+
+# bzw über Makefile (Linux)
+make diagram
+
+# oder zum Erstellen von Diagrammen und LaTeX:
+make
+```
+
diff --git a/20-implementierungsheft/assets/.gitignore b/20-implementierungsheft/assets/.gitignore
new file mode 100644
index 0000000..16252a4
--- /dev/null
+++ b/20-implementierungsheft/assets/.gitignore
@@ -0,0 +1,3 @@
+diagrams/*
+!diagrams/*.puml
+
diff --git a/20-implementierungsheft/assets/KIT_Deckblatt.pdf b/20-implementierungsheft/assets/KIT_Deckblatt.pdf
new file mode 100644
index 0000000..7de8ed4
--- /dev/null
+++ b/20-implementierungsheft/assets/KIT_Deckblatt.pdf
Binary files differ
diff --git a/20-implementierungsheft/assets/diagrams/backendComponentDiagram.puml b/20-implementierungsheft/assets/diagrams/backendComponentDiagram.puml
new file mode 100644
index 0000000..806522c
--- /dev/null
+++ b/20-implementierungsheft/assets/diagrams/backendComponentDiagram.puml
@@ -0,0 +1,61 @@
+@startuml
+' skinparam linetype ortho
+
+'#########################################################################
+'SubscriptionsAPI
+component SubscriptionsAPI {
+
+ component SubscriptionService
+ component SubscriptionController
+ component SubscriptionDataAccessLayer
+
+ portout "Webserver" as wSub
+ portin "Database" as dSub
+ }
+
+dSub --0)- SubscriptionDataAccessLayer
+SubscriptionDataAccessLayer --0)- SubscriptionService
+SubscriptionService --0)- SubscriptionController
+SubscriptionController --0)- wSub
+
+'#########################################################################
+
+
+'#########################################################################
+'EpisodeActionsAPI
+
+component EpisodeActionsAPI {
+ component EpisodeActionService
+ component EpisodeActionController
+ component EpisodeActionDataAccessLayer
+
+ portout "Webserver" as wEpisode
+ portin "Database" as dEpisode
+}
+
+dEpisode --0)- EpisodeActionDataAccessLayer
+EpisodeActionController --0)- wEpisode
+EpisodeActionDataAccessLayer --0)- EpisodeActionService
+EpisodeActionService --0)- EpisodeActionController
+
+'#########################################################################
+
+
+'#########################################################################
+'AuthenticationAPI
+
+component AuthenticationAPI {
+ component AuthenticationService
+ component AuthenticationController
+ component AuthenticationDataAccessLayer
+
+ portout "Webserver" as wAuth
+ portin "Database" as dAuth
+}
+
+dAuth --0)- AuthenticationDataAccessLayer
+AuthenticationController --0)- wAuth
+AuthenticationDataAccessLayer --0)- AuthenticationService
+AuthenticationService --0)- AuthenticationController
+
+@enduml
diff --git a/20-implementierungsheft/assets/diagrams/class_after.puml b/20-implementierungsheft/assets/diagrams/class_after.puml
new file mode 100644
index 0000000..0a8f475
--- /dev/null
+++ b/20-implementierungsheft/assets/diagrams/class_after.puml
@@ -0,0 +1,574 @@
+@startuml
+' skinparam linetype ortho
+' skinparam groupInheritance 2
+allowmixing
+
+package authentication_api <<Frame>> {
+
+ package controller as auth.controller <<Frame>> {
+
+ class AuthenticationController <<@RestController>> {
+ + <<create>> AuthenticationController(AuthenticationService, EMailConfigProperties):
+ + logout(String, HttpServletResponse): HttpStatus
+ + registerUser(UserInfoRequest): HttpStatus
+ + forgotPassword(String): HttpStatus
+ + getDeviceList(String, HttpServletResponse): ResponseEntity<List<DeviceWrapper>>
+ + login(String, HttpServletResponse): HttpStatus
+ + deleteUser(String, PasswordRequest): HttpStatus
+ + changePassword(String, ChangePasswordRequest): HttpStatus
+ + verifyRegistration(String, String, HttpServletResponse): HttpStatus
+ + resetPassword(String, String, PasswordRequest): HttpStatus
+ }
+
+ entity AuthenticationResponse << record >> {
+ + <<create>> AuthenticationResponse(String):
+ + token(): String
+ }
+
+ entity ChangePasswordRequest << record >> {
+ + <<create>> ChangePasswordRequest(String, String):
+ + oldPassword(): String
+ + newPassword(): String
+ }
+
+ entity DeviceWrapper << record >> {
+ + <<create>> DeviceWrapper():
+ + <<create>> DeviceWrapper(String, String, String, int):
+ + id(): String
+ + caption(): String
+ + type(): String
+ + subscriptions(): int
+ }
+
+ entity ForgotPasswordRequest << record >> {
+ + <<create>> ForgotPasswordRequest(String):
+ + email(): String
+ }
+
+ entity PasswordRequest << record >> {
+ + <<create>> PasswordRequest(String):
+ + password(): String
+ }
+
+ entity UserInfoRequest << record >> {
+ + <<create>> UserInfoRequest(String, String, String):
+ + password(): String
+ + email(): String
+ + username(): String
+ }
+ }
+
+ package data_access as auth.dao <<Frame>> {
+
+ interface AuthenticationDao <<@Repository>> {
+ + findByEmail(String): Optional<User>
+ + deleteAllByEnabledFalseAndCreatedAtLessThan(long): void
+ + existsByUsername(String): boolean
+ + findByUsername(String): Optional<User>
+ }
+ }
+
+ package service as auth.service <<Frame>> {
+
+ class AuthenticationService <<@Service>> {
+ + <<create>> AuthenticationService(AuthenticationDao, PasswordEncoder, JwtService, EMailServiceImpl, EncryptionService, InputCheckService):
+ + verifyRegistration(String, String): HttpStatus
+ + logout(String, HttpServletResponse): HttpStatus
+ + changePassword(String, ChangePasswordRequest): HttpStatus
+ + registerUser(UserInfoRequest): HttpStatus
+ + deleteUser(String, PasswordRequest): HttpStatus
+ + forgotPassword(String): HttpStatus
+ + resetPassword(String, String, PasswordRequest): HttpStatus
+ + deleteInvalidUsersOlderThan(long): void
+ + login(String, HttpServletResponse): HttpStatus
+ }
+
+ class EMailServiceImpl <<@Service>> {
+ + <<create>> EMailServiceImpl(JavaMailSender, EMailConfigProperties, JwtService):
+ - substitutePlaceholders(String, UserDetails, String): String
+ + sendVerification(String, UserDetails): void
+ + sendPasswordReset(String, UserDetails): void
+ - generatePasswordResetURLString(UserDetails): String
+ - sendMail(String, String, String): void
+ - generateVerificationURLString(UserDetails): String
+ }
+
+ class EncryptionService <<@Service>> {
+ + <<create>> EncryptionService(SecurityConfigProperties):
+ + saltAndHashEmail(String): String
+ - getSalt(): byte[]
+ }
+
+ class InputCheckService <<@Service>> {
+ + <<create>> InputCheckService():
+ + validateEmail(String): boolean
+ + validateUsername(String): boolean
+ + validatePassword(String): boolean
+ }
+
+ class ResourceReader {
+ + <<create>> ResourceReader():
+ + readFileToString(String): String
+ }
+ }
+}
+
+package config <<Frame>> {
+
+ class ApplicationConfig <<@Configuration>> {
+ + <<create>> ApplicationConfig(AuthenticationDao):
+ + userDetailsService(): UserDetailsService
+ + addInterceptors(InterceptorRegistry): void
+ + authenticationManager(AuthenticationConfiguration): AuthenticationManager
+ + passwordEncoder(): PasswordEncoder
+ + corsConfigurer(): WebMvcConfigurer
+ + authenticationProvider(): AuthenticationProvider
+ }
+
+ class AuthenticationValidatorInterceptor {
+ + <<create>> AuthenticationValidatorInterceptor():
+ - extractUsernamePathVariable(HttpServletRequest): String?
+ + preHandle(HttpServletRequest, HttpServletResponse, Object): boolean
+ }
+
+ entity EMailConfigProperties << record >> {
+ + <<create>> EMailConfigProperties(String, String, String):
+ + resetUrlPath(): String
+ + verificationUrl(): String
+ + dashboardBaseUrl(): String
+ }
+
+ class JwtAuthenticationFilter <<@Component>> {
+ + <<create>> JwtAuthenticationFilter(JwtService, UserDetailsService):
+ # doFilterInternal(HttpServletRequest, HttpServletResponse, FilterChain): void
+ - authenticateIfValid(Cookie, HttpServletRequest): void
+ }
+
+ class JwtService <<@Service>> {
+ + <<create>> JwtService(SecurityConfigProperties):
+ + generateUrlTokenString(UserDetails): String
+ + isTokenValid(String, UserDetails): boolean
+ + generateAccessTokenString(UserDetails): String
+ + extractUsername(String): String
+ + extractClaim(String, Function<Claims, T>): T
+ - isTokenExpired(String): boolean
+ + generateTokenString(Map<String, Object>, UserDetails, long): String
+ - extractExpiration(String): Date
+ - extractAllClaims(String): Claims
+ - getSigningKey(): Key
+ }
+
+ class SecurityConfig <<@Configuration>> {
+ + <<create>> SecurityConfig(JwtAuthenticationFilter, AuthenticationProvider):
+ ~ corsConfigurationSource(): CorsConfigurationSource
+ + securityFilterChain(HttpSecurity): SecurityFilterChain
+ }
+
+ entity SecurityConfigProperties << record >> {
+ + <<create>> SecurityConfigProperties(String, String):
+ + jwtSigningKey(): String
+ + emailSigningKey(): String
+ }
+}
+
+package episode_actions_api <<Frame>> {
+
+ package controller as episode.controller <<Frame>> {
+
+ class EpisodeActionController <<@RestController>> {
+ + <<create>> EpisodeActionController(EpisodeActionService):
+ + addEpisodeActions(String, List<EpisodeActionPost>): ResponseEntity<UpdateURLsWrapper>
+ + getEpisodeActionsOfPodcast(String, String): ResponseEntity<EpisodeActionGetResponse>
+ + getEpisodeActions(String): ResponseEntity<EpisodeActionGetResponse>
+ + getEpisodeActionsSince(String, long): ResponseEntity<EpisodeActionGetResponse>
+ + getEpisodeActionsOfPodcastSince(String, String, long): ResponseEntity<EpisodeActionGetResponse>
+ }
+
+ class EpisodeActionGetResponse {
+ + <<create>> EpisodeActionGetResponse(List<EpisodeActionPost>):
+ + getTimestamp(): long
+ + getActions(): List<EpisodeActionPost>
+ }
+
+ class EpisodeActionPost {
+ + <<create>> EpisodeActionPost():
+ + <<create>> EpisodeActionPost(String, String, String, String, int, EpisodeAction):
+ + equals(Object): boolean
+ + hashCode(): int
+ + builder(): EpisodeActionPostBuilder
+ + getPodcastURL(): String
+ + getEpisodeURL(): String
+ + getTitle(): String
+ + getGuid(): String
+ + setGuid(String): void
+ + setEpisodeAction(EpisodeAction): void
+ + setTotal(int): void
+ + getTotal(): int
+ + setTitle(String): void
+ # canEqual(Object): boolean
+ + getEpisodeAction(): EpisodeAction
+ + toString(): String
+ + setPodcastURL(String): void
+ + setEpisodeURL(String): void
+ }
+ }
+
+ package data_access as episode.dao <<Frame>> {
+
+ interface EpisodeActionDao <<@Repository>> {
+ + findByUserUsernameAndEpisodeSubscriptionUrl(String, String): List<EpisodeAction>
+ + delete(EpisodeAction): void
+ + findByUserUsernameAndTimestampGreaterThanEqual(String, LocalDateTime): List<EpisodeAction>
+ + findByUserUsername(String): List<EpisodeAction>
+ + findByUserAndEpisodeUrlAndAction(User, String, Action): Optional<EpisodeAction>
+ + findByUserUsernameAndTimestampGreaterThanEqualAndEpisodeSubscriptionUrl(String, LocalDateTime, String): List<EpisodeAction>
+ + deleteByUserUsernameAndEpisodeSubscriptionUrl(String, String): void
+ + existsByUserAndEpisodeUrlAndAction(User, String, Action): boolean
+ }
+
+ interface EpisodeDao <<@Repository>> {
+ + existsByGuid(String): boolean
+ + findByUrl(String): Optional<Episode>
+ + existsByUrl(String): boolean
+ + findByGuid(String): Optional<Episode>
+ }
+ }
+
+ package service as episode.service <<Frame>> {
+
+ class EpisodeActionService <<@Service>> {
+ + <<create>> EpisodeActionService(EpisodeActionDao, EpisodeDao, AuthenticationDao, SubscriptionDao, SubscriptionActionDao, RSSParser):
+ - episodeActionPostsToEpisodeActions(User, List<EpisodeActionPost>): List<EpisodeAction>
+ - createEpisode(EpisodeActionPost): Episode
+ + getEpisodeActionsOfPodcastSince(String, String, long): List<EpisodeActionPost>
+ - getEpisodeFromDatabase(EpisodeActionPost): Episode
+ - addEpisodeActionsToDatabase(User, List<EpisodeAction>): void
+ - addNewestEpisodeActionToDatabase(User, EpisodeAction): void
+ - episodeActionsToEpisodeActionPosts(List<EpisodeAction>): List<EpisodeActionPost>
+ - addEpisodeActionToDatabase(User, EpisodeAction): void
+ + getEpisodeActionsSince(String, long): List<EpisodeActionPost>
+ - episodeActionPostToEpisodeAction(User, EpisodeActionPost): EpisodeAction
+ + getEpisodeActions(String): List<EpisodeActionPost>
+ + getEpisodeActionsOfPodcast(String, String): List<EpisodeActionPost>
+ + addEpisodeActions(String, List<EpisodeActionPost>): void
+ }
+ }
+}
+
+package model <<Frame>> {
+
+ enum Action << enumeration >> {
+ + <<create>> Action():
+ + valueOf(String): Action
+ + getJsonProperty(): String
+ + values(): Action[]
+ }
+
+ class Episode <<@Entity>> {
+ + <<create>> Episode():
+ + <<create>> Episode(Long, String, String, String, int, Subscription, List<EpisodeAction>):
+ + getId(): Long
+ # canEqual(Object): boolean
+ + getGuid(): String
+ + setTitle(String): void
+ + builder(): EpisodeBuilder
+ + setTotal(int): void
+ + setGuid(String): void
+ + equals(Object): boolean
+ + setSubscription(Subscription): void
+ + getUrl(): String
+ + getTitle(): String
+ + toString(): String
+ + getTotal(): int
+ + setUrl(String): void
+ + setEpisodeActions(List<EpisodeAction>): void
+ + getSubscription(): Subscription
+ + getEpisodeActions(): List<EpisodeAction>
+ + setId(Long): void
+ + hashCode(): int
+ }
+
+ class EpisodeAction <<@Entity>> {
+ + <<create>> EpisodeAction(Long, User, Episode, LocalDateTime, Action, int, int):
+ + <<create>> EpisodeAction():
+ + getEpisode(): Episode
+ + setEpisode(Episode): void
+ + setPosition(int): void
+ # canEqual(Object): boolean
+ + setUser(User): void
+ + setStarted(int): void
+ + getId(): Long
+ + getUser(): User
+ + getTimestamp(): LocalDateTime
+ + getAction(): Action
+ + getStarted(): int
+ + hashCode(): int
+ + setTimestamp(LocalDateTime): void
+ + equals(Object): boolean
+ + getPosition(): int
+ + builder(): EpisodeActionBuilder
+ + setId(Long): void
+ + setAction(Action): void
+ + toString(): String
+ + toEpisodeActionPost(): EpisodeActionPost
+ }
+
+ enum Role << enumeration >> {
+ + <<create>> Role():
+ + valueOf(String): Role
+ + toString(): String
+ + values(): Role[]
+ }
+
+ class Subscription <<@Entity>> {
+ + <<create>> Subscription():
+ + <<create>> Subscription(Long, String, String, long, List<SubscriptionAction>, List<Episode>):
+ + setId(Long): void
+ + getId(): Long
+ + equals(Object): boolean
+ + getUrl(): String
+ + hashCode(): int
+ + builder(): SubscriptionBuilder
+ # canEqual(Object): boolean
+ + toString(): String
+ + getTitle(): String
+ + getTimestamp(): long
+ + setEpisodes(List<Episode>): void
+ + getSubscriptionActions(): List<SubscriptionAction>
+ + getEpisodes(): List<Episode>
+ + setSubscriptionActions(List<SubscriptionAction>): void
+ + setUrl(String): void
+ + setTitle(String): void
+ + setTimestamp(long): void
+ + addEpisode(Episode): void
+ }
+
+ class SubscriptionAction <<@Entity>> {
+ + <<create>> SubscriptionAction():
+ + <<create>> SubscriptionAction(int, User, long, Subscription, boolean):
+ + equals(Object): boolean
+ + getId(): int
+ + getUser(): User
+ + getTimestamp(): long
+ + getSubscription(): Subscription
+ + isAdded(): boolean
+ # canEqual(Object): boolean
+ + setId(int): void
+ + hashCode(): int
+ + setUser(User): void
+ + toString(): String
+ + builder(): SubscriptionActionBuilder
+ + setTimestamp(long): void
+ + setSubscription(Subscription): void
+ + setAdded(boolean): void
+ }
+
+ class User <<@Entity>> {
+ + <<create>> User(Long, String, String, String, boolean, long, Role, List<SubscriptionAction>, List<EpisodeAction>):
+ + <<create>> User():
+ + getId(): Long
+ + setCreatedAt(long): void
+ + getUsername(): String
+ + builder(): UserBuilder
+ + toString(): String
+ + getEmail(): String
+ + setPassword(String): void
+ + setSubscriptionActions(List<SubscriptionAction>): void
+ + equals(Object): boolean
+ + getPassword(): String
+ + setEmail(String): void
+ + setRole(Role): void
+ + isEnabled(): boolean
+ + setUsername(String): void
+ + getCreatedAt(): long
+ + getRole(): Role
+ + getSubscriptionActions(): List<SubscriptionAction>
+ # canEqual(Object): boolean
+ + hashCode(): int
+ + setEnabled(boolean): void
+ + setEpisodeActions(List<EpisodeAction>): void
+ + getEpisodeActions(): List<EpisodeAction>
+ + setId(Long): void
+ + getAuthorities(): Collection<GrantedAuthority>
+ + isCredentialsNonExpired(): boolean
+ + isAccountNonLocked(): boolean
+ + isAccountNonExpired(): boolean
+ }
+}
+
+package subscriptions_api <<Frame>> {
+
+ package controller as subscription.controller <<Frame>> {
+
+ class SubscriptionController <<@RestController>> {
+ + <<create>> SubscriptionController(SubscriptionService):
+ + applySubscriptionDelta(String, String, SubscriptionDelta): ResponseEntity<UpdateURLsWrapper>
+ + getSubscriptions(String, String, String): ResponseEntity<List<String>>
+ + getSubscriptionDelta(String, String, long): ResponseEntity<SubscriptionDelta>
+ + getTitles(String): ResponseEntity<List<SubscriptionTitles>>
+ + uploadSubscriptions(String, String, List<String>): ResponseEntity<String>
+ }
+
+ class SubscriptionDelta {
+ + <<create>> SubscriptionDelta(List<String>, List<String>):
+ + getTimestamp(): long
+ + getRemove(): List<String>
+ + getAdd(): List<String>
+ }
+
+ entity SubscriptionTitles << record >> {
+ + <<create>> SubscriptionTitles(Subscription, List<EpisodeActionPost>):
+ + episodes(): List<EpisodeActionPost>
+ + subscription(): Subscription
+ }
+ }
+
+ package data_access as subscription.dao <<Frame>> {
+
+ interface SubscriptionActionDao <<@Repository>> {
+ + findByUserUsernameAndAddedTrue(String): List<SubscriptionAction>
+ + existsByUserAndSubscription(User, Subscription): boolean
+ + findByUserAndSubscription(User, Subscription): Optional<SubscriptionAction>
+ + findByUserUsernameAndTimestampGreaterThanEqual(String, long): List<SubscriptionAction>
+ + findByUserUsernameAndAddedTrueAndTimestampGreaterThanEqual(String, long): List<SubscriptionAction>
+ }
+
+ interface SubscriptionDao <<@Repository>> {
+ + findByUrl(String): Optional<Subscription>
+ + existsByUrl(String): boolean
+ }
+ }
+
+ package service as subscription.service <<Frame>> {
+
+ class SubscriptionService <<@Service>> {
+ + <<create>> SubscriptionService(RSSParser, AuthenticationDao, SubscriptionDao, SubscriptionActionDao, EpisodeActionDao, EpisodeActionService):
+ + getTitles(String): List<SubscriptionTitles>
+ + getSubscriptions(String): List<String>
+ + applySubscriptionDelta(String, SubscriptionDelta): int
+ + getSubscriptionDelta(String, long): SubscriptionDelta
+ + uploadSubscriptions(String, List<String>): int
+ }
+ }
+}
+
+package util <<Frame>> {
+
+ class RSSParser <<@Component>> {
+ + <<create>> RSSParser(EpisodeDao, SubscriptionDao):
+ + validate(Subscription): void
+ - parseTimeToSeconds(String): int
+ - parseEpisode(SyndEntry, Subscription): Episode
+ - saveEpisodes(List<Episode>): void
+ - fetchSubscriptionFeed(Subscription): Map<String, Episode>?
+ - saveSubscription(Subscription): void
+ - deleteSubscription(Subscription): void
+ - getFetchedEpisodeForURL(String, Map<String, Episode>): Episode
+ - deleteEpisodes(List<Episode>): void
+ }
+
+ class Scheduler <<@Component>> {
+ + <<create>> Scheduler():
+ + clean(): void
+ }
+
+ class UpdateURLsWrapper {
+ + <<create>> UpdateURLsWrapper():
+ + getTimestamp(): long
+ + getUpdateURLs(): List<Pair<String, String>>
+ }
+}
+
+class ServerApplication <<@SpringBootApplication>> {
+ + <<create>> ServerApplication():
+ + main(String[]): void
+}
+
+database Datenbank
+Datenbank <-[hidden]d- subscriptions_api
+Datenbank <-[hidden]d- episode_actions_api
+Datenbank <-[hidden]d- authentication_api
+() SQL as SQLSub
+() SQL as SQLAuth
+() SQL as SQLEpisode
+
+Datenbank -- SQLSub
+Datenbank -- SQLAuth
+Datenbank -- SQLEpisode
+
+SubscriptionController ..o ServerApplication
+AuthenticationController ..o ServerApplication
+EpisodeActionController ..o ServerApplication
+
+ServerApplication --() HTTP
+
+SQLSub )-- SubscriptionActionDao: JPA
+SQLSub )-- SubscriptionDao: JPA
+SQLAuth )-- AuthenticationDao: JPA
+SQLEpisode )-- EpisodeActionDao: JPA
+SQLEpisode )-- EpisodeDao: JPA
+
+model .o Datenbank: ORM (User, SubscriptionAction, Subscription, EpisodeAction, Episode)
+' Datenbank o.. Subscription: ORM
+' Datenbank o.. SubscriptionAction: ORM
+' Datenbank o.. Episode: ORM
+' Datenbank o.. EpisodeAction: ORM
+' Datenbank o.. User: ORM
+
+ApplicationConfig "1" *-[#595959,plain]-> "authenticationDao\n1" AuthenticationDao
+ApplicationConfig -[#595959,dashed]-> AuthenticationValidatorInterceptor : "«create»"
+AuthenticationController "1" *-[#595959,plain]-> "authenticationService\n1" AuthenticationService
+AuthenticationController -[#595959,dashed]-> DeviceWrapper : "«create»"
+AuthenticationController "1" *-[#595959,plain]-> "eMailConfigProperties\n1" EMailConfigProperties
+AuthenticationService "1" *-[#595959,plain]-> "authenticationDao\n1" AuthenticationDao
+AuthenticationService "1" *-[#595959,plain]-> "eMailService\n1" EMailServiceImpl
+AuthenticationService "1" *-[#595959,plain]-> "encryptionService\n1" EncryptionService
+AuthenticationService "1" *-[#595959,plain]-> "inputCheckService\n1" InputCheckService
+AuthenticationService "1" *-[#595959,plain]-> "jwtService\n1" JwtService
+AuthenticationService "1" *-[#595959,plain]-> "DEFAULT_USER\n1" Role
+EMailServiceImpl "1" *-[#595959,plain]-> "eMailConfigProperties\n1" EMailConfigProperties
+EMailServiceImpl "1" *-[#595959,plain]-> "jwtService\n1" JwtService
+EncryptionService "1" *-[#595959,plain]-> "securityConfigProperties\n1" SecurityConfigProperties
+Episode "1" *-[#595959,plain]-> "episodeActions\n*" EpisodeAction
+Episode "1" *-[#595959,plain]-> "subscription\n1" Subscription
+EpisodeAction "1" *-[#595959,plain]-> "action\n1" Action
+EpisodeAction "1" *-[#595959,plain]-> "episode\n1" Episode
+EpisodeAction -[#595959,dashed]-> EpisodeActionPost : "«create»"
+EpisodeAction "1" *-[#595959,plain]-> "user\n1" User
+EpisodeActionController -[#595959,dashed]-> EpisodeActionGetResponse : "«create»"
+EpisodeActionController "1" *-[#595959,plain]-> "episodeActionService\n1" EpisodeActionService
+EpisodeActionController -[#595959,dashed]-> UpdateURLsWrapper : "«create»"
+EpisodeActionGetResponse "1" *-[#595959,plain]-> "actions\n*" EpisodeActionPost
+EpisodeActionPost "1" *-[#595959,plain]-> "episodeAction\n1" EpisodeAction
+EpisodeActionService "1" *-[#595959,plain]-> "authenticationDao\n1" AuthenticationDao
+EpisodeActionService "1" *-[#595959,plain]-> "episodeActionDao\n1" EpisodeActionDao
+EpisodeActionService "1" *-[#595959,plain]-> "episodeDao\n1" EpisodeDao
+EpisodeActionService "1" *-[#595959,plain]-> "rssParser\n1" RSSParser
+EpisodeActionService -[#595959,dashed]-> Subscription : "«create»"
+EpisodeActionService "1" *-[#595959,plain]-> "subscriptionActionDao\n1" SubscriptionActionDao
+EpisodeActionService "1" *-[#595959,plain]-> "subscriptionDao\n1" SubscriptionDao
+JwtAuthenticationFilter "1" *-[#595959,plain]-> "jwtService\n1" JwtService
+JwtService "1" *-[#595959,plain]-> "securityConfigProperties\n1" SecurityConfigProperties
+RSSParser "1" *-[#595959,plain]-> "episodeDao\n1" EpisodeDao
+RSSParser "1" *-[#595959,plain]-> "subscriptionDao\n1" SubscriptionDao
+Scheduler "1" *-[#595959,plain]-> "authenticationService\n1" AuthenticationService
+SecurityConfig "1" *-[#595959,plain]-> "jwtAuthFilter\n1" JwtAuthenticationFilter
+Subscription "1" *-[#595959,plain]-> "episodes\n*" Episode
+Subscription "1" *-[#595959,plain]-> "subscriptionActions\n*" SubscriptionAction
+SubscriptionAction "1" *-[#595959,plain]-> "subscription\n1" Subscription
+SubscriptionAction "1" *-[#595959,plain]-> "user\n1" User
+SubscriptionController "1" *-[#595959,plain]-> "subscriptionService\n1" SubscriptionService
+SubscriptionController -[#595959,dashed]-> UpdateURLsWrapper : "«create»"
+SubscriptionService "1" *-[#595959,plain]-> "authenticationDao\n1" AuthenticationDao
+SubscriptionService "1" *-[#595959,plain]-> "episodeActionDao\n1" EpisodeActionDao
+SubscriptionService "1" *-[#595959,plain]-> "episodeActionService\n1" EpisodeActionService
+SubscriptionService "1" *-[#595959,plain]-> "rssParser\n1" RSSParser
+SubscriptionService "1" *-[#595959,plain]-> "subscriptionActionDao\n1" SubscriptionActionDao
+SubscriptionService "1" *-[#595959,plain]-> "subscriptionDao\n1" SubscriptionDao
+SubscriptionService -[#595959,dashed]-> SubscriptionDelta : "«create»"
+SubscriptionService -[#595959,dashed]-> SubscriptionTitles : "«create»"
+SubscriptionTitles "1" *-[#595959,plain]-> "subscription\n1" Subscription
+User "1" *-[#595959,plain]-> "episodeActions\n*" EpisodeAction
+User "1" *-[#595959,plain]-> "role\n1" Role
+User "1" *-[#595959,plain]-> "subscriptionActions\n*" SubscriptionAction
+@enduml
diff --git a/20-implementierungsheft/assets/diagrams/classdiagram.puml b/20-implementierungsheft/assets/diagrams/classdiagram.puml
new file mode 100644
index 0000000..4b1970a
--- /dev/null
+++ b/20-implementierungsheft/assets/diagrams/classdiagram.puml
@@ -0,0 +1,463 @@
+@startuml
+' skinparam linetype ortho
+' skinparam groupInheritance 2
+allowmixing
+
+package subscriptionsAPI <<Frame>> {
+ package subscriptionDataAccessLayer <<Frame>> {
+ class SubscriptionDataAccessService <<@Repository>> {
+ <<create>> SubscriptionDataAccessService(JpaTemplate jpaTemplate)
+ int uploadSubscriptions(String username, List<SubscriptionAction> subscriptions)
+ List<String> getSubscriptions(String username)
+ List<String> getSubscriptionsSince(String username, LocalDateTime time)
+ int addSubscriptions(String username, List<SubscriptionAction> addedSubscriptions)
+ int removeSubscriptions(String username, List<SubscriptionAction> removedSubscriptions)
+ List<SubscriptionTitles> getTitles(String username)
+ }
+
+ interface SubscriptionDao {
+ int uploadSubscriptions(String username, List<SubscriptionAction> subscriptions)
+ List<String> getSubscriptions(String username)
+ List<String> getSubscriptionsSince(String username, LocalDateTime time)
+ int addSubscriptions(String username, List<SubscriptionAction> addedSubscriptions)
+ int removeSubscriptions(String username, List<SubscriptionAction> removedSubscriptions)
+ List<SubscriptionTitles> getTitles(String username)
+ }
+ }
+
+ package subscriptionService <<Frame>> {
+ class SubscriptionService <<@Service>> {
+ <<create>> SubscriptionService(SubscriptionDao subscriptionDao)
+ int uploadSubscriptions(String username, List<SubscriptionAction> subscriptions)
+ List<String> getSubscriptions(String username)
+ List<String> getSubscriptionsSince(String username, LocalDateTime time)
+ int addSubscriptions(String username, List<SubscriptionAction> addedSubscriptions)
+ int removeSubscriptions(String username, List<SubscriptionAction> removedSubscriptions)
+ List<SubscriptionTitles> getTitles(String username)
+ }
+ }
+
+ package subscriptionController <<Frame>> {
+ class SubscriptionController <<@Controller>>{
+ ' @Autowired
+ <<create>> SubscriptionController(SubscriptionService subscriptionService)
+ ' @GetMapping
+ ResponseEntity<List<String>> getSubscriptions(String username, String deviceID, String functionJSONP)
+ ' @PutMapping
+ ResponseEntity<String> uploadSubscriptions(String username, String deviceID, List<String> subscriptions)
+ ' @PostMapping
+ ResponseEntity<SubscriptionDelta> applySubscriptionDelta(String username, String deviceID, SubscriptionDelta delta)
+ ' @GetMapping
+ ResponseEntity<SubscriptionDelta> getSubscriptionDelta(String username, String deviceID, long since)
+ ResponseEntity<List<SubscriptionTitles>> getTitles(String username, String deviceID)
+ }
+
+ class SubscriptionTitles {
+ <<create>> SubscriptionTitles(Subscription subscription, List<EpisodeActionPost> episodeTitles)
+ Subscription getSubscription()
+ List<EpisodeActionPost> getEpisodesTitles()
+ }
+
+ class SubscriptionDelta {
+ <<create>> SubscriptionDelta(List<String> add, List<String> remove)
+ List<String> getRemove()
+ LocalDate getTimestamp()
+ List<List<String>> getUpdate_urls()
+ }
+ }
+
+}
+
+package episodeActionsAPI <<Frame>> {
+ package episodeActionDataAccessLayer <<Frame>> {
+ class EpisodeActionDataAccessService <<@Repository>> {
+ <<create>> EpisodeActionDataAccessService (JpaTemplate jpaTemplate)
+ long addEpisodeActions(String username, List<EpisodeActionPost> episodeActionPosts)
+ List<EpisodeActionPost> getEpisodeActions(String username)
+ List<EpisodeActionPost> getEpisodeActionsOfPodcast(String username, String podcastURL)
+ List<EpisodeActionPost> getEpisodeActionsSince(String username, LocalDateTime since)
+ List<EpisodeActionPost> getEpisodeActionsOfPodcastSince(String username, String podcastURL, LocalDateTime since)
+ }
+
+ interface EpisodeActionDao {
+ long addEpisodeActions(String username, List<EpisodeActionPost> episodeActionPosts)
+ List<EpisodeActionPost> getEpisodeActions(String username)
+ List<EpisodeActionPost> getEpisodeActionsOfPodcast(String username, String podcastURL)
+ List<EpisodeActionPost> getEpisodeActionsSince(String username, LocalDateTime since)
+ List<EpisodeActionPost> getEpisodeActionsOfPodcastSince(String username, String podcastURL, LocalDateTime since)
+ }
+ }
+
+ package episodeActionService <<Frame>> {
+ class EpisodeActionService <<@Service>> {
+ <<create>> EpisodeActionService (EpisodeActionDao episodeActionDao)
+ LocalDateTime addEpisodeActions(String username, List<EpisodeActionPosts> episodeActionPosts)
+ List<EpisodeActionPost> getEpisodeActions(String username)
+ List<EpisodeActionPost> getEpisodeActionsOfPodcast(String username, String podcastURL)
+ List<EpisodeActionPost> getEpisodeActionsSince(String username, LocalDateTime since)
+ List<EpisodeActionPost> getEpisodeActionsOfPodcastSince(String username, String podcastURL, LocalDateTime since)
+ }
+ }
+
+ package episodeActionController <<Frame>> {
+ class EpisodeActionController <<@Controller>>{
+ <<create>> EpisodeActionController (EpisodeActionService episodeActionService)
+ ResponseEntity<EpisodeActionPostResponse> addEpisodeActions(String username, EpisodeActionPostRequest episodeActionPostRequest)
+ ResponseEntity<EpisodeActionGetResponse> getEpisodeActions(String username, String deviceID, boolean aggregated)
+ ResponseEntity<EpisodeActionGetResponse> getEpisodeActionsOfPodcast(String username, String podcastURL, String deviceID, boolean aggregated)
+ ResponseEntity<EpisodeActionGetResponse> getEpisodeActionsSince(String username, String deviceID, long since, boolean aggregated)
+ ResponseEntity<EpisodeActionGetResponse> getEpisodeActionsOfPodcastSince(String username, String podcastURL, String deviceID, long since, boolean aggregated)
+ }
+
+ class EpisodeActionPostResponse {
+ <<create>> EpisodeActionPostResponse(List<Pair<String, String>> updateURLs)
+ long getTimestamp()
+ List<Pair<String, String>> getUpdatedURLs()
+ }
+
+ class EpisodeActionPost {
+ <<create>> EpisodeActionPost(String podcastURL, String episodeURL, Action action, LocalDateTime timestamp, int started, int position)
+ String getPodcastURL()
+ String getEpisodeURL()
+ int getGUID()
+ Action getAction()
+ LocalDateTime getTimestamp()
+ int getStarted()
+ int getPosition()
+ EpisodeAction getEpisodeAction()
+ }
+
+ class EpisodeActionPostRequest {
+ <<create>> EpisodeActionPostRequest(List<EpisodeActionPost> episodeActionPosts)
+ List<EpisodeActionPost> getEpisodeActionPosts()
+ }
+
+ class EpisodeActionGetResponse {
+ <<create>> EpisodeActionGetResponse(List<EpisodeActionPost> episodeActionPosts)
+ List<EpisodeActionPost> getEpisodeActionPosts()
+ long getTimestamp()
+ }
+ }
+}
+
+package authenticationAPI <<Frame>> {
+ package authenticationDataAccessLayer <<Frame>> {
+ ' interface AuthenticationDao {
+ ' String login(String username)
+ ' int logout(String username)
+ ' }
+
+ ' class AuthenticationDataAccessService <<@Respository>> {
+ ' <<create>> AuthenticationDataAccessService(JpaTemplate jpaTemplate)
+ ' String login(String username)
+ ' int logout(String username)
+ ' }
+
+ interface UserDetailsManager {
+ void createUser(UserDetails userDetails)
+ void changePassword(String oldPassword, String newPassword)
+ void deleteUser(String username)
+ void updateUser(UserDetails user)
+ boolean userExists(String username)
+ }
+ note left
+ Aus org.springframework.security.provisioning
+ - liefert Methoden zum Erstellen neuer User
+ und zum Aktualisieren bestehender.
+ end note
+
+ class JdbcUserDetailsManager <<@Repository>> {
+ <<create>> JdbcUserDetailsManager(DataSource dataSource)
+ void createUser(UserDetails user)
+ void changePassword(String oldPassword, String newPassword)
+ void deleteUser(String username)
+ void updateUser(UserDetails user)
+ boolean userExists(String username)
+ }
+ note right
+ User Management Service aus dem Paket
+ org.springframework.security.provisioning
+ der CRUD Operationen für User bereitstellt.
+ Hier sind nur die relevanten Methoden modelliert.
+ end note
+ }
+
+ package authenticationService <<Frame>> {
+ class AuthenticationService <<@Service>> {
+ --
+ <<create>> AuthenticationService(UserDetailsManager userDetailsManager)
+ List<String> verifyLogin(String username)
+ int logout(String username)
+ int forgotPassword(ForgotPasswordRequest forgotPasswordRequest)
+ .. via JdbcUserDetailsManager ..
+ int resetPassword(String username, RequestWithPassword requestWithPassword)
+ int registerUser(UserDetails user)
+ int changePassword(String username, ChangePasswordRequest changePasswordRequest)
+ int deleteUser(String username, RequestWithPassword requestWithPassword)
+ }
+
+ class JavaMailSenderImpl {}
+ note left
+ Aus org.springframework.mail.javamail.
+ Implementierung des JavaMailSender Interfaces,
+ welches das MailSender Interface durch Unterstützung
+ von MIME Nachrichten erweitert.
+ Das MailSender Interface definiert dabei eine
+ Strategie zum Versenden einfacher Mails.
+ Unterstützt sowohl JavaMail MimeMessages und
+ Spring SimpleMailMessages.
+ end note
+ }
+
+ package authenticationController <<Frame>> {
+ class AuthenticationController <<@Controller>> {
+ <<create>> AuthenticationController(AuthenticationService authenticationService)
+ ResponseEntity<List<String>> verifyLogin(String username)
+ ResponseEntity<Integer> logout(String username)
+ ResponseEntity<Integer> forgotPassword(ForgotPasswordRequest forgotPasswordRequest)
+ ResponseEntity<Integer> resetPassword(String username, RequestWithPassword requestWithPassword)
+ ResponseEntity<Integer> registerUser(UserDetails user)
+ ResponseEntity<Integer> changePassword(String username, ChangePasswordRequest changePasswordRequest)
+ ResponseEntity<Integer> deleteUser(String username, RequestWithPassword requestWithPassword)
+ }
+
+ class ChangePasswordRequest {
+ <<create>> ChangePasswordRequest(String oldPassword, String newPassword)
+ String getOldPassword()
+ String getNewPassword()
+ }
+
+ class ForgotPasswordRequest {
+ <<create>> ForgotPasswordRequest(String email)
+ String getEmail()
+ }
+
+ class RequestWithPassword {
+ <<create>> ResetPasswordRequest(String password)
+ String getPassword()
+ }
+ }
+}
+
+package model <<Frame>> {
+ class Subscription {
+ <<create>> Subscription(String url, String title)
+ int getID()
+ String getURL()
+ long getLastActionTimestamp()
+ String getTitle()
+ }
+
+ class SubscriptionAction {
+ <<create>> SubscriptionAction(int userID, int subscriptionID)
+ int getID()
+ int getUserID()
+ int getSubscriptionID()
+ long getTimestamp()
+ boolean getAdded()
+ }
+
+ class Episode {
+ <<create>> Episode(int subscriptionID, int id, String url, String title, String thumbnailURL, int total)
+ int getSubscriptionID()
+ int getID()
+ int getGUID()
+ String getURL()
+ String getTitle()
+ int getTotal()
+ }
+
+ enum Action {
+ Download
+ Play
+ Delete
+ New
+ Flattr
+ String getJsonProperty()
+ }
+
+ class EpisodeAction {
+ <<create>> EpisodeAction(Action action, LocalDateTime timestamp, int started, int position)
+ int getEpisodeID()
+ Action getAction()
+ long getTimestamp()
+ int getStarted()
+ int getPosition()
+ void setEpisodeID()
+ EpisodeActionPost getEpisodeActionPost(String podcastURL, String episodeURL)
+ }
+
+ interface UserDetails {
+ String getUsername()
+ String getPassword()
+ Collection<Authority> getAuthorities()
+ boolean isAccountExpired()
+ boolean isAccountLocked()
+ boolean isCredentialsNonExpired()
+ boolean isEnabled()
+ }
+ note left
+ Aus org.springframework.security.core.userdetails.
+ Wird für die Schnittstelle UserDetailsManager benötigt.
+ Stellt wichtige Informationen eines Users bereit.
+ Diese werden nur indirekt von Spring Security
+ benutzt, indem sie vorher in Authentication Objekten
+ gekapselt werden.
+ end note
+
+ class User {
+ --
+ <<create>> User(String username, String password)
+ int getID()
+ String getSessionToken()
+ boolean getEmailIsValidated()
+ .. interface methods ..
+ String getUsername()
+ String getPassword()
+ Collection<Authority> getAuthorities()
+ boolean isAccountExpired()
+ boolean isAccountLocked()
+ boolean isCredentialsNonExpired()
+ boolean isEnabled()
+ }
+
+ interface GrantedAuthority {
+ String getAuthority()
+ }
+ note right
+ Aus org.springframework.security.core.
+ Wird für die Schnittstelle UserDetails benötigt.
+ Repräsentiert eine Autorisierung, die einem
+ Authentication Objekt gewährt wird.
+ end note
+
+ class Authority {
+ <<create>> Authority()
+ String getAuthority()
+ }
+}
+
+package util <<Frame>> {
+ class RSSParser {
+ <<create>> RSSParser(String subscriptionURL)
+ String getSubscriptionTitle()
+ List<Episode> getEpisodes()
+ Episode getEpisodeForURL(String episodeURL)
+ }
+ note bottom
+ Verwendet intern Spring um
+ HTTP-Anfragen zu erstellen.
+ end note
+
+ class CleanCronJob {
+ <<create>> CleanCronJob(JdbcUserDetailsManager jdbcUserDetailsManager)
+ void cleanInvalidUsers()
+ }
+ note bottom
+ Hintergrundservice, der in periodischen Abständen
+ Nutzer, die ihre E-Mail-Adresse nicht nach 24 Stunden
+ bestätigt haben, wieder aus der Datenbank löscht.
+ (Auf die Assoziation zu JdbcUserDetailsManager wird
+ im Sinne der Übersichtlichkeit verzichtet.)
+ end note
+
+ class ResponseEntity<T> {
+ <<create>> ResponseEntity(T body, HttpStatusCode status)
+ T getBody()
+ HttpStatusCode getStatusCode()
+ }
+ note bottom
+ Aus org.springframework.http.
+ Erweitert die Klasse HttpEntity, welche
+ ein HTTP Anfrage- oder Antwort-Objekt
+ repräsentiert, durch einen HttpStatusCode.
+ Wird von den Controller-Methoden als
+ Rückgabewert verwendet.
+ end note
+}
+
+class SecurityConfigurationBasicAuth {
+ <<create>> SecurityConfigurationBasicAuth()
+ PasswordEncoder encoder()
+ UserDetailsManager userDetailsService()
+ SecuryFilterChain fiterChain(HTTPSecurity http) throws Excpetion
+}
+note top
+ Erstellt einen Servlet Filter (springSecurityFilterChain)
+ der für die gesamte Sicherheit zuständig ist (Schutz der URLs,
+ Validierung von Anmeldedaten, Weiterleitung zur Anmeldung, etc.).
+end note
+
+class PSEApplication {
+ <<create>> PSEApplication()
+ void main(String[] args)
+}
+
+database Datenbank
+Datenbank <-[hidden]d- subscriptionsAPI
+Datenbank <-[hidden]d- episodeActionsAPI
+Datenbank <-[hidden]d- authenticationAPI
+() SQL as SQLSub
+() SQL as SQLAuth
+() SQL as SQLEpisode
+
+Datenbank -- SQLSub
+Datenbank -- SQLAuth
+Datenbank -- SQLEpisode
+
+SubscriptionController ..o PSEApplication
+AuthenticationController ..o PSEApplication
+EpisodeActionController ..o PSEApplication
+SecurityConfigurationBasicAuth ..o PSEApplication
+
+PSEApplication --() HTTP
+
+SQLSub )-- SubscriptionDataAccessService: JPA
+' SQLAuth )-- AuthenticationDataAccessService: JPA
+SQLAuth )-- JdbcUserDetailsManager: JDBC
+SQLEpisode )-- EpisodeActionDataAccessService: JPA
+
+Subscription <. SubscriptionAction: ID
+' Subscription <.. SubscriptionDataAccessService: DB
+' SubscriptionAction <.. SubscriptionDataAccessService: DB
+SubscriptionService --o SubscriptionController
+SubscriptionDao <.. SubscriptionService: <<use>>
+Subscription --o SubscriptionTitles
+EpisodeActionPost -o SubscriptionTitles
+SubscriptionDao <|. SubscriptionDataAccessService: <<realize>>
+
+' User <.. AuthenticationDataAccessService: DB
+' User <.. JdbcUserDetailsManager: DB
+UserDetailsManager <.. AuthenticationService: <<use>>
+' AuthenticationDao <.. AuthenticationService: <<use>>
+AuthenticationService --o AuthenticationController
+' AuthenticationDao <|. AuthenticationDataAccessService: <<realize>>
+UserDetailsManager <|. JdbcUserDetailsManager: <<realize>>
+UserDetailsManager <.. SecurityConfigurationBasicAuth: <<use>>
+UserDetails <|.. User: <<realize>>
+User -> Authority
+GrantedAuthority <|.. Authority: <<realize>>
+JavaMailSenderImpl <. AuthenticationService: <<use>>
+
+Action <-- EpisodeAction
+EpisodeActionPost -o EpisodeActionGetResponse
+EpisodeActionPost -o EpisodeActionPostRequest
+EpisodeAction .> Episode: ID
+' EpisodeAction <.. EpisodeActionDataAccessService: DB
+' Episode <.. EpisodeActionDataAccessService: DB
+EpisodeActionDao <.. EpisodeActionService: <<use>>
+EpisodeActionService --o EpisodeActionController
+EpisodeActionDao <|. EpisodeActionDataAccessService: <<realize>>
+
+RSSParser <. SubscriptionDataAccessService: <<use>>
+RSSParser <. EpisodeActionDataAccessService: <<use>>
+' JdbcUserDetailsManager <-- CleanCronJob
+
+model .o Datenbank: ORM (User, SubscriptionAction, Subscription, EpisodeAction, Episode)
+' Datenbank o.. Subscription: ORM
+' Datenbank o.. SubscriptionAction: ORM
+' Datenbank o.. Episode: ORM
+' Datenbank o.. EpisodeAction: ORM
+' Datenbank o.. User: ORM
+
+@enduml
diff --git a/20-implementierungsheft/assets/diagrams/componentdiagram.puml b/20-implementierungsheft/assets/diagrams/componentdiagram.puml
new file mode 100644
index 0000000..7e23754
--- /dev/null
+++ b/20-implementierungsheft/assets/diagrams/componentdiagram.puml
@@ -0,0 +1,79 @@
+@startuml
+
+[App] as app
+[VueRouter] as router
+
+[EpisodesViewComponent] as episodes_view
+[ForgotPasswordViewComponent] as forgot_password_view
+[LoginViewComponent] as login_view
+[RegistrationViewComponent] as registration_view
+[ResetPasswordViewComponent] as reset_password_view
+[settingsViewComponent] as settings_view
+[SubscriptionsViewComponent] as subscriptions_view
+
+[DashboardLayoutComponent] as dashboard_layout
+[EpisodeComponent] as episode
+[ErrorLogComponent] as error_log
+[FloatingLabelInputComponent] as floating_label_input
+[FormLayoutComponent] as form_layout
+[HelpComponent] as help
+[LastUpdateComponent] as last_update
+[LoadingComponent] as loading
+[NavbarComponent] as navbar
+[PasswordInputComponent] as password_input
+[PasswordValidatorComponent] as password_validator
+[ProgressTimeComponent] as progress_time
+[SubscriptionComponent] as subscription
+
+app --> router
+app --> navbar
+app --> help
+app --> error_log
+
+password_validator --> password_input
+password_input --> floating_label_input
+
+router --> registration_view
+router --> login_view
+router --> reset_password_view
+router --> forgot_password_view
+router --> episodes_view
+router --> subscriptions_view
+router --> settings_view
+
+
+login_view --> form_layout
+login_view --> floating_label_input
+login_view --> password_input
+
+forgot_password_view --> form_layout
+forgot_password_view --> floating_label_input
+
+registration_view --> form_layout
+registration_view --> password_validator
+registration_view --> floating_label_input
+
+reset_password_view --> form_layout
+reset_password_view --> password_validator
+
+settings_view --> dashboard_layout
+settings_view --> floating_label_input
+settings_view --> password_input
+settings_view --> password_validator
+
+episodes_view --> dashboard_layout
+episodes_view --> episode
+episodes_view --> loading
+
+episode --> last_update
+episode --> progress_time
+
+subscriptions_view --> dashboard_layout
+subscriptions_view --> floating_label_input
+subscriptions_view --> loading
+subscriptions_view --> subscription
+
+subscription --> last_update
+subscription --> progress_time
+
+@enduml
diff --git a/20-implementierungsheft/assets/diagrams/db.puml b/20-implementierungsheft/assets/diagrams/db.puml
new file mode 100644
index 0000000..bdefaea
--- /dev/null
+++ b/20-implementierungsheft/assets/diagrams/db.puml
@@ -0,0 +1,78 @@
+@startuml
+' Type Symbol
+' Zero or One |o--
+' Exactly One ||--
+' Zero or Many }o--
+' One or Many }|--
+
+skinparam linetype ortho
+
+entity User {
+ * int id <<unique>>
+ * <u>String email</u>
+ * String password
+ * boolean verified
+ * long created_at
+}
+
+entity SubscriptionAction {
+ * int id <<unique>>
+ * <u>int user_id</u>
+ * long timestamp
+ * int subscription_id
+ * boolean added
+}
+
+entity Subscription {
+ * int id <<unique>>
+ * <u>String url</u>
+ * long timestamp
+ * String title
+}
+
+entity Episode {
+ * int id <<unique>>
+ * <u>int guid <<unique>></u>
+ * <u>String url</u>
+ * String title
+ * int total
+ * int subscription_id
+}
+note right
+ Wenn der Client eine GUID aus dem Feed mitsendet, wird
+ diese statt der URL verwendet um die Episode zu finden.
+ So wird die Episode auch noch gefunden, nachdem sich
+ die URL geändert hat.
+end note
+note bottom of Episode
+ Wenn für die Episoden-URL einer EpisodeAction noch keine Episode in der Datenbank steht,
+ dann schreibe dafür ein Dummy-Objekt in Datenbank und lade asynchron die Episoden der Subscription.
+ Ersetze dann die Dummy-Objekte durch die Episoden und setze den Timestamp der Subscription auf
+ die aktuelle Zeit.
+ Um DoS-Angriffe auf den Backend-Server abzuwenden, können die Episoden einer Subscription erst
+ nach einer Stunde erneut gefetched werden. Bis dahin werden für EpisodeActions, die sich auf noch
+ nicht geladene Episoden beziehen, nur Dummy-Objekte für die Episoden in die Datenbank geschrieben.
+ Es sei noch darauf hingewiesen, dass diese Dummy-Episoden bei Anfragen nicht mit ausgegeben werden.
+end note
+
+entity EpisodeAction {
+ * int id <<unique>>
+ * <u>int user_id</u>
+ * int episode_id
+ * long timestamp
+ * int action
+ * int started
+ * int position
+}
+note right
+ Speichere für jede Episode
+ nur letzte Play-Action.
+endnote
+
+User ||--o{ EpisodeAction
+User ||--o{ SubscriptionAction
+SubscriptionAction }|--|| Subscription
+EpisodeAction }|--|| Episode
+Subscription ||-right-|{ Episode
+
+@enduml
diff --git a/20-implementierungsheft/assets/diagrams/deployment.puml b/20-implementierungsheft/assets/diagrams/deployment.puml
new file mode 100644
index 0000000..26918e2
--- /dev/null
+++ b/20-implementierungsheft/assets/diagrams/deployment.puml
@@ -0,0 +1,59 @@
+@startuml
+
+node "<<device>> \nBackend Server" as backendServer{
+ database " <<database system>> \n MariaDB Server 10.6" as database {
+ rectangle rectangle1 [
+ <<schema>>
+ User
+ ]
+ rectangle rectangle2 [
+ <<schema>>
+ SubscriptionAction
+ ]
+ rectangle rectangle3 [
+ <<schema>>
+ EpisodeAction
+ ]
+ rectangle rectangle4 [
+ <<schema>>
+ Subscription
+ ]
+ rectangle rectangle5 [
+ <<schema>>
+ Episode
+ ]
+ }
+
+ node "<<framework>> \nJava Spring" as javaSpring{
+ node " <<device>> \n Tomcat Webserver"
+ }
+}
+
+node "<<device>> \nFrontend" as frontendServer {
+
+}
+
+node "<<device>> \nEndgerät" as terminal {
+ node "<<application>> \nBrowser" as browser
+ node "<<application>> \nPodcatcher" as podcatcher
+}
+
+backendServer "1" - "*" podcatcher
+
+node "<<device>> \nFrontend Server" as frontendServer{
+ node "<<framework>> \nVue.js" as vuejs {
+
+ }
+}
+
+podcatcher -[hidden] browser
+
+backendServer - "1" frontendServer
+
+database "1" -- "1" javaSpring
+
+browser "*" -- frontendServer
+
+
+
+@enduml
diff --git a/20-implementierungsheft/assets/diagrams/gantt-plan.puml b/20-implementierungsheft/assets/diagrams/gantt-plan.puml
new file mode 100644
index 0000000..0e90aa2
--- /dev/null
+++ b/20-implementierungsheft/assets/diagrams/gantt-plan.puml
@@ -0,0 +1,31 @@
+@startgantt
+
+printscale daily zoom 5
+project starts on 2023-01-30
+
+-- Backend --
+[Controller-Schicht] on {Immanuel} lasts 2 days
+[Service-Schicht (Daten durchreichen)] on {Daniel} lasts 2 days
+[Authentifizierung] on {Gero} lasts 4 days
+[Model-Paket] on {Daniel} lasts 1 days
+[Datenbank aufsetzen] on {Immanuel} lasts 4 days
+[Util-Paket (RSSParser)] on {Daniel} {Lukas} lasts 6 days
+[DataAccess-Schicht] on {Immanuel} {Julius} lasts 8 days
+[Service-Schicht (Geschäftslogik)] on {Daniel} {Immanuel} lasts 8 days
+[Util-Paket (CleanCronJob)] on {Julius} lasts 2 days
+-- Frontend --
+[Komponenten] on {Gero} {Julius} {Lukas} lasts 15 days
+[API-Anbindung] on {Gero} {Lukas} lasts 4 days
+
+'Backend
+[Service-Schicht (Daten durchreichen)] starts at [Controller-Schicht]'s end
+[Datenbank aufsetzen] starts at [Model-Paket]'s end
+[Authentifizierung] starts at [Controller-Schicht]'s end
+[DataAccess-Schicht] starts at [Datenbank aufsetzen]'s end
+[Util-Paket (RSSParser)] starts at [Datenbank aufsetzen]'s end
+[Service-Schicht (Geschäftslogik)] starts at [DataAccess-Schicht]'s end
+[Util-Paket (CleanCronJob)] starts at [DataAccess-Schicht]'s end
+'Frontend
+[API-Anbindung] starts at [DataAccess-Schicht]'s end
+
+@endgantt \ No newline at end of file
diff --git a/20-implementierungsheft/assets/diagrams/gantt-reality.puml b/20-implementierungsheft/assets/diagrams/gantt-reality.puml
new file mode 100644
index 0000000..f726c56
--- /dev/null
+++ b/20-implementierungsheft/assets/diagrams/gantt-reality.puml
@@ -0,0 +1,39 @@
+@startgantt
+
+printscale daily zoom 5
+project starts on 2023-01-30
+
+-- Backend --
+[Controller-Schicht] on {Immanuel} lasts 3 days
+[Model-Paket] on {Daniel} lasts 3 days
+[Datenbank aufsetzen] on {Immanuel} lasts 6 days
+[Util-Paket (RSSParser)] on {Daniel} {Lukas} lasts 32 days
+[DAO-Interfaces] on {Julius} {Immanuel} lasts 6 days
+[Authentifizierung] on {Immanuel} lasts 13 days
+[Service-Schicht mit Datenzugriff] on {Julius} lasts 14 days
+[Util-Paket (CleanCronJob)] on {Daniel} lasts 2 days
+[Docker] on {Daniel} lasts 12 days
+[EMailService] on {Gero} lasts 1 days
+-- Frontend --
+[Komponenten] on {Gero} {Julius} lasts 15 days
+[Mehrsprachigkeit] on {Lukas} lasts 5 days
+[Router] on {Gero} lasts 1 days
+[API-Anbindung] on {Gero} {Lukas} lasts 28 days
+[Error-Handling] on {Gero} lasts 5 days
+
+'Backend
+[Datenbank aufsetzen] starts at [Model-Paket]'s end
+[Util-Paket (RSSParser)] starts at [Datenbank aufsetzen]'s end
+[DAO-Interfaces] starts at [Datenbank aufsetzen]'s end
+[Authentifizierung] starts at [DAO-Interfaces]'s end
+[Service-Schicht mit Datenzugriff] starts at [DAO-Interfaces]'s end
+[Util-Paket (CleanCronJob)] starts at [DAO-Interfaces]'s end
+[Docker] starts at [Util-Paket (CleanCronJob)]'s end
+[EMailService] starts 2023-02-14
+'Frontend
+[Mehrsprachigkeit] starts 2023-02-01
+[Router] starts at [Mehrsprachigkeit]'s end
+[API-Anbindung] starts at [Router]'s end
+[Error-Handling] starts 2023-02-05
+
+@endgantt \ No newline at end of file
diff --git a/20-implementierungsheft/assets/diagrams/sequencediagram-forgotAndResetPW.puml b/20-implementierungsheft/assets/diagrams/sequencediagram-forgotAndResetPW.puml
new file mode 100644
index 0000000..603130c
--- /dev/null
+++ b/20-implementierungsheft/assets/diagrams/sequencediagram-forgotAndResetPW.puml
@@ -0,0 +1,41 @@
+@startuml
+
+skinparam ParticipantPadding 30
+
+participant AuthenticationController << (C, #ADD1B2) @Controller >>
+-> AuthenticationController: ""POST /api/2/auth/forgot.json"" \n//@RequestBody ForgotPasswordRequest forgotPasswordRequest// \n\n-> forgotPassword(//forgotPasswordRequest//)
+activate AuthenticationController
+participant AuthenticationService << (C, #ADD1B2) @Service >>
+AuthenticationController -> AuthenticationService: forgotPassword(//forgotPasswordRequest//)
+activate AuthenticationService
+participant JavaMailSenderImpl << (C, #ADD1B2) >>
+AuthenticationService -> JavaMailSenderImpl: create link to reset password with JWT as URL parameter \n-> send(SimpleMailMessage simpleMessage) with link
+activate JavaMailSenderImpl
+<<- JavaMailSenderImpl: sends email with link containing a JWT to reset password
+JavaMailSenderImpl --> AuthenticationService
+deactivate JavaMailSenderImpl
+AuthenticationService --> AuthenticationController: int indicating status
+deactivate AuthenticationService
+<-- AuthenticationController: ResponseEntity<Integer> indicating status \n\n-> ""HTTP status code""
+deactivate AuthenticationController
+||60||
+-> AuthenticationController: ""PUT /api/2/auth/{username}/resetpassword.json"" \n//@RequestParam String jwt// \n//@RequestBody ResetPasswordRequest resetPasswordRequest// \n\n-> login user (""username"") via JWT (//jwt//) \n-> resetPassword(""username"", //resetPasswordRequest//)
+activate AuthenticationController
+AuthenticationController -> AuthenticationService: resetPassword(""username"", //resetPasswordRequest//)
+activate AuthenticationService
+participant JdbcUserDetailsManager << (C, #ADD1B2) @Repository >>
+AuthenticationService -> JdbcUserDetailsManager: String oldPassword = //resetPasswordRequest//.getOldPassword() \nString newPassword = //resetPasswordRequest//.getNewPassword() \n-> changePassword(newPassword, oldPassword)
+activate JdbcUserDetailsManager
+database Database
+JdbcUserDetailsManager -> Database: change password of logged in user
+activate Database
+Database --> JdbcUserDetailsManager
+deactivate Database
+JdbcUserDetailsManager --> AuthenticationService: int indicating status
+deactivate JdbcUserDetailsManager
+AuthenticationService --> AuthenticationController: int indicating status
+deactivate AuthenticationService
+<-- AuthenticationController: ResponseEntity<Integer> indicating status \n\n-> ""HTTP status code""
+deactivate AuthenticationController
+
+@enduml \ No newline at end of file
diff --git a/20-implementierungsheft/assets/diagrams/sequencediagram-getEpisodeActions.puml b/20-implementierungsheft/assets/diagrams/sequencediagram-getEpisodeActions.puml
new file mode 100644
index 0000000..47497d5
--- /dev/null
+++ b/20-implementierungsheft/assets/diagrams/sequencediagram-getEpisodeActions.puml
@@ -0,0 +1,38 @@
+@startuml
+
+' title =**Get All Episode Actions**
+
+participant EpisodeActionController << (C, #ADD1B2) @Controller >>
+-> EpisodeActionController: ""GET /api/2/episodes/{username}.json"" \n//@RequestParam("device") String deviceID// \n//@RequestParam("aggregated") boolean aggregated// \n\n-> getEpisodeActions(""username"", //deviceID//, //aggregated//)
+note right
+ Die Parameter //deviceID// und //aggregated// werden ignoriert,
+ da nicht zwischen Geräten unterschieden und für jede
+ Episode sowieso nur die letzte Play-Action gespeichert
+ wird. Dies gilt für alle GET-Anfragen der Episode Actions API.
+end note
+activate EpisodeActionController
+participant EpisodeActionService << (C, #ADD1B2) @Service >>
+EpisodeActionController -> EpisodeActionService: getEpisodeActions(""username"")
+activate EpisodeActionService
+participant EpisodeActionDataAccessService << (C, #ADD1B2) @Repository >>
+EpisodeActionService -> EpisodeActionDataAccessService: getEpisodeActions(""username"")
+activate EpisodeActionDataAccessService
+EpisodeActionDataAccessService -> EpisodeActionDataAccessService: getEpisodeActionsSince(""username"", \nLocalDateTime.MIN.toEpochSecond(ZoneOffset.UTC))
+database Database
+activate EpisodeActionDataAccessService
+EpisodeActionDataAccessService -> Database: get all EpisodeActions for all subscribed podcasts
+activate Database
+Database --> EpisodeActionDataAccessService: List<EpisodeAction> selectedEpisodeActions \n-> then remove all older than LocalDateTime.MIN (none)
+EpisodeActionDataAccessService -> Database: join EpisodeActions in selectedEpisodeActions with episodeURL of Episode
+Database --> EpisodeActionDataAccessService
+deactivate Database
+EpisodeActionDataAccessService --> EpisodeActionDataAccessService: List<EpisodeActionPost> episodeActionPosts
+deactivate EpisodeActionDataAccessService
+EpisodeActionDataAccessService --> EpisodeActionService: List<EpisodeActionPost> episodeActionPosts
+deactivate EpisodeActionDataAccessService
+EpisodeActionService --> EpisodeActionController: List<EpisodeActionPost> episodeActionPosts
+deactivate EpisodeActionService
+<-- EpisodeActionController: ResponseEntity<EpisodeActionGetResponse> response \n\n-> ""HTTP status code"" \n-> ""JSON""
+deactivate EpisodeActionController
+
+@enduml \ No newline at end of file
diff --git a/20-implementierungsheft/assets/diagrams/sequencediagram-getEpisodeActionsOfPodcastSince.puml b/20-implementierungsheft/assets/diagrams/sequencediagram-getEpisodeActionsOfPodcastSince.puml
new file mode 100644
index 0000000..d8797d1
--- /dev/null
+++ b/20-implementierungsheft/assets/diagrams/sequencediagram-getEpisodeActionsOfPodcastSince.puml
@@ -0,0 +1,32 @@
+@startuml
+
+' title =**Get Episode Actions of Podcast Since**
+
+participant EpisodeActionController << (C, #ADD1B2) @Controller >>
+-> EpisodeActionController: ""GET /api/2/episodes/{username}.json"" \n//@RequestParam("podcast") String podcastURL// \n//@RequestParam("device") String deviceID// \n//@RequestParam("since") long since// \n//@RequestParam("aggregated") boolean aggregated// \n\n-> getEpisodeActionsOfPodcastSince(""username"", //podcastURL//, //deviceID//, //since//, //aggregated//)
+note right
+ Die Parameter //deviceID// und //aggregated// werden ignoriert.
+ Siehe Notiz in Sequenzdiagramm **Get All Episode Actions**.
+end note
+activate EpisodeActionController
+participant EpisodeActionService << (C, #ADD1B2) @Service >>
+EpisodeActionController -> EpisodeActionService: getEpisodeActionsOfPodcastSince(""username"", //podcastURL//, //since//)
+activate EpisodeActionService
+participant EpisodeActionDataAccessService << (C, #ADD1B2) @Repository >>
+EpisodeActionService -> EpisodeActionDataAccessService: getEpisodeActionsOfPodcastSince(""username"", //podcastURL//, //since//)
+activate EpisodeActionDataAccessService
+database Database
+EpisodeActionDataAccessService -> Database: get all EpisodeActions the given podcast (//podcastURL//)
+activate Database
+Database --> EpisodeActionDataAccessService: List<EpisodeAction> selectedEpisodeActions \n-> then remove all older than //since//
+EpisodeActionDataAccessService -> Database: join EpisodeActions in selectedEpisodeActions with episodeURL of Episode
+Database --> EpisodeActionDataAccessService
+deactivate Database
+EpisodeActionDataAccessService --> EpisodeActionService: List<EpisodeActionPost> episodeActionPosts
+deactivate EpisodeActionDataAccessService
+EpisodeActionService --> EpisodeActionController: List<EpisodeActionPost> episodeActionPosts
+deactivate EpisodeActionService
+<-- EpisodeActionController: ResponseEntity<EpisodeActionGetResponse> response \n\n-> ""HTTP status code"" \n-> ""JSON""
+deactivate EpisodeActionController
+
+@enduml \ No newline at end of file
diff --git a/20-implementierungsheft/assets/diagrams/sequencediagram-getSubscriptions.puml b/20-implementierungsheft/assets/diagrams/sequencediagram-getSubscriptions.puml
new file mode 100644
index 0000000..4d8ab90
--- /dev/null
+++ b/20-implementierungsheft/assets/diagrams/sequencediagram-getSubscriptions.puml
@@ -0,0 +1,38 @@
+@startuml
+
+' title =**Get All Subscriptions**
+
+participant SubscriptionController << (C, #ADD1B2) @Controller >>
+-> SubscriptionController: ""GET /subscriptions/{username}.json"" \n"" /subscriptions/{username}/{deviceid}.json"" \n//@RequestParam("jsonp") String functionJSONP// \n\n-> getSubscriptions(""username"", ""deviceid"", //functionJSONP//)
+activate SubscriptionController
+note right
+ Die Parameter ""deviceid"" und
+ //functionJSONP// werden ignoriert,
+ da nicht zwischen Geräten unterschieden
+ und JSONP nicht unterstützt wird.
+end note
+participant SubscriptionService << (C, #ADD1B2) @Service >>
+SubscriptionController -> SubscriptionService: getSubscriptions(""username"")
+activate SubscriptionService
+participant SubscriptionDataAccessService << (C, #ADD1B2) @Repository >>
+SubscriptionService -> SubscriptionDataAccessService: getSubscriptions(""username"")
+activate SubscriptionDataAccessService
+SubscriptionDataAccessService -> SubscriptionDataAccessService: getSubscriptionsSince(""username"", LocalDateTime.MIN)
+database Database
+activate SubscriptionDataAccessService
+SubscriptionDataAccessService -> Database: get all Subscriptions for ""username""
+activate Database
+Database --> SubscriptionDataAccessService: List<Subscription> subscriptions
+SubscriptionDataAccessService -> Database: get Podcasts from Subscriptions
+Database --> SubscriptionDataAccessService: List<Podcast> subscribedPodcasts
+deactivate Database
+SubscriptionDataAccessService --> SubscriptionDataAccessService: List<String> podcastURLs
+deactivate SubscriptionDataAccessService
+SubscriptionDataAccessService --> SubscriptionService: List<String> podcastURLs
+deactivate SubscriptionDataAccessService
+SubscriptionService --> SubscriptionController: List<String> podcastURLs
+deactivate SubscriptionService
+<-- SubscriptionController: ResponseEntity<List<String>> podcastURLs \n \n-> ""HTTP status code"" \n-> ""JSON""
+deactivate SubscriptionController
+
+@enduml \ No newline at end of file
diff --git a/20-implementierungsheft/assets/diagrams/sequencediagram-register.puml b/20-implementierungsheft/assets/diagrams/sequencediagram-register.puml
new file mode 100644
index 0000000..b7b7aa1
--- /dev/null
+++ b/20-implementierungsheft/assets/diagrams/sequencediagram-register.puml
@@ -0,0 +1,26 @@
+@startuml
+
+' title =**Register**
+
+participant AuthenticationController << (C, #ADD1B2) @Controller >>
+-> AuthenticationController: ""POST /api/2/auth/register.json"" \n//@RequestBody UserDetails user// \n\n-> registerUser(//user//)
+activate AuthenticationController
+participant AuthenticationService << (C, #ADD1B2) @Service >>
+AuthenticationController -> AuthenticationService: registerUser(//user//)
+activate AuthenticationService
+participant JdbcUserDetailsManager << (C, #ADD1B2) @Repository >>
+AuthenticationService -> JdbcUserDetailsManager: createUser(//user//)
+activate JdbcUserDetailsManager
+database Database
+JdbcUserDetailsManager -> Database: create new User with given UserDetails (//user//)
+activate Database
+Database --> JdbcUserDetailsManager
+deactivate Database
+JdbcUserDetailsManager --> AuthenticationService: int indicating status
+deactivate JdbcUserDetailsManager
+AuthenticationService --> AuthenticationController: int indicating status
+deactivate AuthenticationService
+<-- AuthenticationController: ResponseEntity<Integer> indicating status \n\n-> ""HTTP status code""
+deactivate AuthenticationController
+
+@enduml \ No newline at end of file
diff --git a/20-implementierungsheft/assets/diagrams/sequencediagram-uploadEpisodeActions.puml b/20-implementierungsheft/assets/diagrams/sequencediagram-uploadEpisodeActions.puml
new file mode 100644
index 0000000..d3dac57
--- /dev/null
+++ b/20-implementierungsheft/assets/diagrams/sequencediagram-uploadEpisodeActions.puml
@@ -0,0 +1,38 @@
+@startuml
+
+' title =**Upload Episode Actions**
+
+participant EpisodeActionController << (C, #ADD1B2) @Controller >>
+-> EpisodeActionController: ""POST /api/2/episodes/{username}.json"" \n//@RequestBody EpisodeActionPostRequest episodeActionPostRequest// \n\n-> addEpisodeActions(""username"", //episodeActionPostRequest//)
+activate EpisodeActionController
+participant EpisodeActionService << (C, #ADD1B2) @Service >>
+EpisodeActionController -> EpisodeActionService: addEpisodeActions(""username"", \nepisodeActionPosts = //episodeActionPostRequest//.getEpisodeActionPosts())
+activate EpisodeActionService
+participant EpisodeActionDataAccessService << (C, #ADD1B2) @Repository >>
+EpisodeActionService -> EpisodeActionDataAccessService: addEpisodeActions(""username"", episodeActionPosts)
+database Database
+activate EpisodeActionDataAccessService
+loop for each EpisodeActionPost in episodeActionPosts -> episodeAction = episodeActionPost.getEpisodeAction()
+opt episodeAction.getAction().equals(Action.PLAY)
+EpisodeActionDataAccessService -> Database: set episodeID field of episodeAction for this ""username"" via podcastURL and episodeURL
+activate Database
+Database --> EpisodeActionDataAccessService
+EpisodeActionDataAccessService -> Database: get last EpisodeAction with this episodeID if present
+Database --> EpisodeActionDataAccessService: Optional<EpisodeAction> lastEpisodeAction
+opt lastEpisodeAction.isPresent()
+EpisodeActionDataAccessService -> Database: replace lastEpisodeAction with episodeAction
+else else
+EpisodeActionDataAccessService -> Database: add episodeAction to DB as new entry
+end
+Database --> EpisodeActionDataAccessService
+deactivate Database
+end
+end
+EpisodeActionDataAccessService --> EpisodeActionService: long latestTimestamp
+deactivate EpisodeActionDataAccessService
+EpisodeActionService --> EpisodeActionController: LocalDateTime timestamp = LocalDateTime.ofEpochSecond(latestTimestamp, 0, ZoneOffset.UTC)
+deactivate EpisodeActionService
+<-- EpisodeActionController: ResponseEntity<EpisodeActionPostResponse> \n(with empty list for updateURLs) \n\n-> ""HTTP status code"" \n-> ""JSON""
+deactivate EpisodeActionController
+
+@enduml \ No newline at end of file
diff --git a/20-implementierungsheft/assets/diagrams/sequencediagram-uploadSubscriptions.puml b/20-implementierungsheft/assets/diagrams/sequencediagram-uploadSubscriptions.puml
new file mode 100644
index 0000000..1edc8cf
--- /dev/null
+++ b/20-implementierungsheft/assets/diagrams/sequencediagram-uploadSubscriptions.puml
@@ -0,0 +1,32 @@
+@startuml
+
+' title =**Upload Subscriptions**
+
+participant SubscriptionController << (C, #ADD1B2) @Controller >>
+-> SubscriptionController: ""PUT /subscriptions/{username}/{deviceid}.json"" \n//@RequestBody List<String> subscriptions// \n\n-> uploadSubscriptions(""username"", ""deviceid"", //subscriptions//)
+activate SubscriptionController
+participant SubscriptionService << (C, #ADD1B2) @Service >>
+SubscriptionController -> SubscriptionService: uploadSubscriptions(""username"", //subscriptions//)
+activate SubscriptionService
+participant SubscriptionDataAccessService << (C, #ADD1B2) @Repository >>
+SubscriptionService -> SubscriptionDataAccessService: uploadSubscriptions(""username"", //subscriptions//)
+activate SubscriptionDataAccessService
+database Database
+SubscriptionDataAccessService -> Database: delete all subsciptions of ""username""
+activate Database
+Database --> SubscriptionDataAccessService
+SubscriptionDataAccessService -> SubscriptionDataAccessService: addSubscriptions(""username"", //subscriptions//)
+activate SubscriptionDataAccessService
+SubscriptionDataAccessService -> Database: upload all subscriptions (//subscriptions//) for ""username""
+Database --> SubscriptionDataAccessService
+deactivate Database
+SubscriptionDataAccessService --> SubscriptionDataAccessService: int indicating status
+deactivate SubscriptionDataAccessService
+SubscriptionDataAccessService --> SubscriptionService: int indicating status
+deactivate SubscriptionDataAccessService
+SubscriptionService --> SubscriptionController: int indicating status
+deactivate SubscriptionService
+<-- SubscriptionController: ResponseEntity<String> with empty String for success \n\n-> ""HTTP status code"" \n-> ""JSON""
+deactivate SubscriptionController
+
+@enduml \ No newline at end of file
diff --git a/20-implementierungsheft/assets/episode.png b/20-implementierungsheft/assets/episode.png
new file mode 100644
index 0000000..c0db4a2
--- /dev/null
+++ b/20-implementierungsheft/assets/episode.png
Binary files differ
diff --git a/20-implementierungsheft/assets/errorlog.png b/20-implementierungsheft/assets/errorlog.png
new file mode 100644
index 0000000..3f6ea82
--- /dev/null
+++ b/20-implementierungsheft/assets/errorlog.png
Binary files differ
diff --git a/20-implementierungsheft/assets/floatinglabelinput.png b/20-implementierungsheft/assets/floatinglabelinput.png
new file mode 100644
index 0000000..25f013b
--- /dev/null
+++ b/20-implementierungsheft/assets/floatinglabelinput.png
Binary files differ
diff --git a/20-implementierungsheft/assets/gantt-plan-eps-converted-to.pdf b/20-implementierungsheft/assets/gantt-plan-eps-converted-to.pdf
new file mode 100644
index 0000000..add028f
--- /dev/null
+++ b/20-implementierungsheft/assets/gantt-plan-eps-converted-to.pdf
Binary files differ
diff --git a/20-implementierungsheft/assets/gantt-plan.eps b/20-implementierungsheft/assets/gantt-plan.eps
new file mode 100644
index 0000000..0242842
--- /dev/null
+++ b/20-implementierungsheft/assets/gantt-plan.eps
@@ -0,0 +1,8314 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: PlantUML v1.2023.0
+%%Title: noTitle
+%%BoundingBox: 0 0 1049 488
+%%ColorUsage: Color
+%%Origin: 0 0
+%%EndComments
+
+gsave
+0 488 translate
+.01 -.01 scale
+/simplerect {
+newpath moveto 1 index 0 rlineto
+0 exch rlineto
+neg 0 rlineto
+} def
+/rquadto {
+3 index 3 index 4 2 roll rcurveto
+} def
+/P$h {
+134 12 rlineto
+0 26 rlineto
+-353 0 rlineto
+0 -26 rlineto
+134 -12 rlineto
+0 -534 rlineto
+-131 46 rlineto
+0 -25 rlineto
+190 -109 rlineto
+25 0 rlineto
+0 621 rlineto
+closepath
+} def
+/P$1d {
+0 -60 -42 -87 rquadto
+-40 -26 -120 -26 rquadto
+-173 0 rlineto
+0 240 rlineto
+173 0 rlineto
+81 0 121 -31 rquadto
+40 -31 40 -95 rquadto
+closepath
+} def
+/P$30 {
+109 17 rlineto
+0 34 rlineto
+-340 0 rlineto
+0 -34 rlineto
+109 -17 rlineto
+0 -750 rlineto
+-109 -15 rlineto
+0 -34 rlineto
+340 0 rlineto
+0 34 rlineto
+-109 15 rlineto
+0 750 rlineto
+} def
+/P$k {
+0 143 rlineto
+-84 0 rlineto
+0 -143 rlineto
+-290 0 rlineto
+0 -65 rlineto
+318 -448 rlineto
+56 0 rlineto
+0 443 rlineto
+89 0 rlineto
+0 70 rlineto
+-89 0 rlineto
+closepath
+} def
+/P$a {
+0 125 rlineto
+-21 0 rlineto
+-28 -54 rlineto
+-25 0 -57 7 rquadto
+-32 6 -57 17 rquadto
+0 342 rlineto
+78 12 rlineto
+0 21 rlineto
+-217 0 rlineto
+0 -21 rlineto
+57 -12 rlineto
+0 -390 rlineto
+-57 -12 rlineto
+0 -21 rlineto
+132 0 rlineto
+4 57 rlineto
+29 -25 79 -46 rquadto
+50 -23 79 -23 rquadto
+7 0 rlineto
+closepath
+} def
+/P$1u {
+0 -85 rlineto
+268 0 rlineto
+0 85 rlineto
+-268 0 rlineto
+} def
+/P$2p {
+0 -65 -45 -100 rquadto
+-45 -35 -129 -35 rquadto
+-243 0 rlineto
+0 279 rlineto
+248 0 rlineto
+81 0 125 -37 rquadto
+45 -37 45 -106 rquadto
+} def
+/P$1i {
+-196 -265 rlineto
+-71 59 rlineto
+0 206 rlineto
+-96 0 rlineto
+0 -796 rlineto
+96 0 rlineto
+0 498 rlineto
+256 -282 rlineto
+112 0 rlineto
+-235 250 rlineto
+248 331 rlineto
+-112 0 rlineto
+} def
+/P$8 {
+0 51 -3 73 rquadto
+34 -20 78 -34 rquadto
+45 -15 76 -15 rquadto
+59 0 89 35 rquadto
+31 34 31 100 rquadto
+0 301 rlineto
+56 12 rlineto
+0 21 rlineto
+-198 0 rlineto
+0 -21 rlineto
+60 -12 rlineto
+0 -295 rlineto
+0 -84 -81 -84 rquadto
+-45 0 -109 14 rquadto
+0 365 rlineto
+62 12 rlineto
+0 21 rlineto
+-201 0 rlineto
+0 -21 rlineto
+57 -12 rlineto
+0 -626 rlineto
+-68 -10 rlineto
+0 -21 rlineto
+150 0 rlineto
+0 198 rlineto
+closepath
+} def
+/P$2j {
+0 -146 -175 -146 rquadto
+-204 0 rlineto
+0 298 rlineto
+207 0 rlineto
+171 0 171 -151 rquadto
+} def
+/P$x {
+206 0 206 151 rquadto
+0 357 rlineto
+54 14 rlineto
+0 39 rlineto
+-201 0 rlineto
+-14 -42 rlineto
+-45 31 -82 42 rquadto
+-35 12 -73 12 rquadto
+-170 0 -170 -165 rquadto
+0 -60 25 -98 rquadto
+25 -37 71 -54 rquadto
+48 -18 150 -20 rquadto
+71 -1 rlineto
+0 -81 rlineto
+0 -100 -81 -100 rquadto
+-50 0 -110 31 rquadto
+-21 68 rlineto
+-39 0 rlineto
+0 -132 rlineto
+89 -14 129 -17 rquadto
+42 -3 85 -3 rquadto
+closepath
+} def
+/P$3f {
+235 0 350 106 rquadto
+114 104 114 315 rquadto
+0 212 -110 323 rquadto
+-109 109 -326 109 rquadto
+-303 -3 rlineto
+-109 0 rlineto
+0 -34 rlineto
+109 -17 rlineto
+0 -750 rlineto
+-109 -15 rlineto
+0 -34 rlineto
+385 0 rlineto
+} def
+/P$1 {
+0 240 -215 240 rquadto
+-103 0 -156 -60 rquadto
+-53 -62 -53 -179 rquadto
+0 -117 53 -178 rquadto
+53 -62 160 -62 rquadto
+104 0 157 60 rquadto
+53 60 53 179 rquadto
+closepath
+} def
+/P$2w {
+0 281 rlineto
+423 0 rlineto
+0 85 rlineto
+-423 0 rlineto
+0 306 rlineto
+-101 0 rlineto
+0 -756 rlineto
+537 0 rlineto
+0 82 rlineto
+-435 0 rlineto
+} def
+/P$33 {
+-82 3 rlineto
+-85 3 -115 32 rquadto
+-29 29 -29 100 rquadto
+0 110 90 110 rquadto
+42 0 73 -9 rquadto
+32 -9 64 -25 rquadto
+0 -212 rlineto
+} def
+/P$2l {
+0 -121 -32 -173 rquadto
+-31 -53 -104 -53 rquadto
+-81 0 -118 56 rquadto
+-37 54 -37 176 rquadto
+0 114 35 168 rquadto
+37 54 120 54 rquadto
+71 0 104 -53 rquadto
+32 -54 32 -176 rquadto
+} def
+/P$1j {
+0 100 40 154 rquadto
+42 53 121 53 rquadto
+62 0 100 -25 rquadto
+37 -25 51 -64 rquadto
+84 25 rlineto
+-51 137 -235 137 rquadto
+-129 0 -196 -76 rquadto
+-67 -76 -67 -228 rquadto
+0 -145 67 -221 rquadto
+67 -76 192 -76 rquadto
+256 0 256 309 rquadto
+0 12 rlineto
+-414 0 rlineto
+closepath
+} def
+/P$1p {
+0 151 -67 226 rquadto
+-67 75 -195 75 rquadto
+-126 0 -192 -76 rquadto
+-64 -78 -64 -225 rquadto
+0 -301 259 -301 rquadto
+134 0 196 73 rquadto
+62 73 62 228 rquadto
+closepath
+} def
+/P$0 {
+-17 0 rlineto
+-239 -562 rlineto
+0 523 rlineto
+87 12 rlineto
+0 26 rlineto
+-223 0 rlineto
+0 -26 rlineto
+84 -12 rlineto
+0 -576 rlineto
+-84 -14 rlineto
+0 -25 rlineto
+198 0 rlineto
+214 498 rlineto
+231 -498 rlineto
+187 0 rlineto
+0 25 rlineto
+-82 14 rlineto
+0 576 rlineto
+82 12 rlineto
+0 26 rlineto
+-265 0 rlineto
+0 -26 rlineto
+89 -12 rlineto
+0 -523 rlineto
+-262 562 rlineto
+} def
+/P$35 {
+0 109 101 109 rquadto
+79 0 146 -20 rquadto
+0 -470 rlineto
+-89 -17 rlineto
+0 -28 rlineto
+193 0 rlineto
+0 553 rlineto
+76 15 rlineto
+0 28 rlineto
+-175 0 rlineto
+-4 -48 rlineto
+-45 25 -104 43 rquadto
+-57 17 -98 17 rquadto
+-151 0 -151 -175 rquadto
+0 -389 rlineto
+-76 -17 rlineto
+0 -28 rlineto
+181 0 rlineto
+0 426 rlineto
+} def
+/P$l {
+-1 0 rlineto
+-234 329 rlineto
+235 0 rlineto
+0 -329 rlineto
+closepath
+} def
+/P$1a {
+0 -109 -26 -159 rquadto
+-26 -50 -87 -50 rquadto
+-21 0 -48 4 rquadto
+-26 4 -43 14 rquadto
+0 421 rlineto
+37 9 92 9 rquadto
+57 0 85 -56 rquadto
+28 -56 28 -184 rquadto
+closepath
+} def
+/P$7 {
+-50 0 -78 42 rquadto
+-26 40 -26 120 rquadto
+196 0 rlineto
+0 -87 -23 -125 rquadto
+-21 -37 -68 -37 rquadto
+closepath
+} def
+/P$2i {
+0 107 -70 171 rquadto
+-68 62 -189 62 rquadto
+-223 0 rlineto
+0 295 rlineto
+-101 0 rlineto
+0 -756 rlineto
+318 0 rlineto
+126 0 195 59 rquadto
+70 59 70 167 rquadto
+closepath
+} def
+/P$m {
+112 0 167 46 rquadto
+56 45 56 140 rquadto
+0 98 -60 151 rquadto
+-59 53 -170 53 rquadto
+-93 0 -165 -20 rquadto
+-6 -137 rlineto
+32 0 rlineto
+21 90 rlineto
+21 12 51 20 rquadto
+29 6 57 6 rquadto
+76 0 112 -35 rquadto
+37 -35 37 -123 rquadto
+0 -59 -15 -90 rquadto
+-15 -31 -50 -45 rquadto
+-34 -15 -92 -15 rquadto
+-45 0 -87 12 rquadto
+-46 0 rlineto
+0 -325 rlineto
+332 0 rlineto
+0 75 rlineto
+-289 0 rlineto
+0 207 rlineto
+53 -10 114 -10 rquadto
+closepath
+} def
+/P$j {
+0 87 -60 137 rquadto
+-59 50 -170 50 rquadto
+-93 0 -176 -20 rquadto
+-4 -137 rlineto
+31 0 rlineto
+21 90 rlineto
+20 10 54 18 rquadto
+34 7 65 7 rquadto
+76 0 112 -34 rquadto
+37 -35 37 -117 rquadto
+0 -64 -34 -96 rquadto
+-34 -34 -104 -37 rquadto
+-70 -4 rlineto
+0 -40 rlineto
+70 -3 rlineto
+54 -3 81 -34 rquadto
+26 -31 26 -95 rquadto
+0 -65 -28 -95 rquadto
+-28 -31 -90 -31 rquadto
+-26 0 -54 7 rquadto
+-28 7 -50 18 rquadto
+-17 79 rlineto
+-32 0 rlineto
+0 -125 rlineto
+48 -12 82 -17 rquadto
+35 -4 71 -4 rquadto
+209 0 209 160 rquadto
+0 68 -37 109 rquadto
+-37 39 -106 50 rquadto
+89 9 131 50 rquadto
+42 40 42 114 rquadto
+closepath
+} def
+/P$29 {
+0 156 -48 279 rquadto
+-48 123 -150 232 rquadto
+-93 0 rlineto
+101 -112 148 -237 rquadto
+46 -125 46 -275 rquadto
+0 -150 -48 -275 rquadto
+-46 -125 -146 -237 rquadto
+93 0 rlineto
+101 109 150 232 rquadto
+48 123 48 278 rquadto
+0 1 rlineto
+} def
+/P$2d {
+0 -73 rlineto
+325 -432 rlineto
+-307 0 rlineto
+0 -75 rlineto
+421 0 rlineto
+0 73 rlineto
+-326 432 rlineto
+337 0 rlineto
+0 75 rlineto
+-450 0 rlineto
+} def
+/P$s {
+0 -67 -26 -98 rquadto
+-26 -32 -79 -32 rquadto
+-51 0 -78 31 rquadto
+-25 31 -25 100 rquadto
+0 68 25 98 rquadto
+25 28 78 28 rquadto
+54 0 79 -29 rquadto
+26 -29 26 -96 rquadto
+closepath
+} def
+/P$1n {
+0 121 31 175 rquadto
+32 51 104 51 rquadto
+82 0 118 -56 rquadto
+37 -57 37 -176 rquadto
+0 -115 -37 -168 rquadto
+-35 -54 -117 -54 rquadto
+-73 0 -106 54 rquadto
+-31 53 -31 175 rquadto
+closepath
+} def
+/P$1s {
+0 -445 rlineto
+0 -62 -3 -135 rquadto
+90 0 rlineto
+4 98 4 118 rquadto
+1 0 rlineto
+23 -75 53 -101 rquadto
+31 -28 85 -28 rquadto
+18 0 39 6 rquadto
+0 87 rlineto
+-20 -4 -51 -4 rquadto
+-60 0 -92 51 rquadto
+-31 51 -31 148 rquadto
+0 303 rlineto
+-96 0 rlineto
+} def
+/P$2a {
+-85 -221 rlineto
+-345 0 rlineto
+-87 221 rlineto
+-106 0 rlineto
+309 -756 rlineto
+117 0 rlineto
+303 756 rlineto
+-104 0 rlineto
+closepath
+} def
+/P$3p {
+-109 -15 rlineto
+0 -34 rlineto
+326 0 rlineto
+0 34 rlineto
+-95 15 rlineto
+0 526 rlineto
+0 85 -26 150 rquadto
+-26 64 -79 101 rquadto
+-53 35 -117 35 rquadto
+-81 0 -132 -18 rquadto
+0 -154 rlineto
+42 0 rlineto
+18 87 rlineto
+12 15 34 23 rquadto
+23 7 50 7 rquadto
+89 0 89 -120 rquadto
+0 -639 rlineto
+} def
+/P$20 {
+0 -756 rlineto
+103 0 rlineto
+0 756 rlineto
+-103 0 rlineto
+} def
+/P$1y {
+0 -581 rlineto
+96 0 rlineto
+0 581 rlineto
+-96 0 rlineto
+} def
+/P$3m {
+-131 15 rlineto
+0 746 rlineto
+168 0 rlineto
+134 0 198 -12 rquadto
+39 -176 rlineto
+40 0 rlineto
+-10 243 rlineto
+-667 0 rlineto
+0 -34 rlineto
+109 -17 rlineto
+0 -750 rlineto
+-109 -15 rlineto
+0 -34 rlineto
+362 0 rlineto
+0 34 rlineto
+} def
+/P$n {
+0 101 -51 157 rquadto
+-51 54 -148 54 rquadto
+-110 0 -168 -85 rquadto
+-57 -85 -57 -246 rquadto
+0 -104 29 -181 rquadto
+31 -78 85 -117 rquadto
+56 -40 128 -40 rquadto
+71 0 142 17 rquadto
+0 112 rlineto
+-31 0 rlineto
+-17 -65 rlineto
+-17 -9 -45 -15 rquadto
+-26 -7 -48 -7 rquadto
+-70 0 -110 70 rquadto
+-39 68 -43 201 rquadto
+79 -42 160 -42 rquadto
+85 0 131 48 rquadto
+45 48 45 140 rquadto
+closepath
+} def
+/P$10 {
+-39 20 rlineto
+-82 42 -148 42 rquadto
+-151 0 -151 -162 rquadto
+0 -350 rlineto
+-54 -14 rlineto
+0 -39 rlineto
+223 0 rlineto
+0 381 rlineto
+0 48 20 76 rquadto
+21 28 60 28 rquadto
+43 0 89 -20 rquadto
+0 -412 rlineto
+-51 -14 rlineto
+0 -39 rlineto
+220 0 rlineto
+0 498 rlineto
+54 14 rlineto
+0 39 rlineto
+-214 0 rlineto
+-9 -48 rlineto
+} def
+/P$38 {
+103 15 rlineto
+0 28 rlineto
+-309 0 rlineto
+0 -28 rlineto
+101 -15 rlineto
+0 -814 rlineto
+-101 -15 rlineto
+0 -28 rlineto
+206 0 rlineto
+0 857 rlineto
+closepath
+} def
+/P$4 {
+0 84 78 84 rquadto
+60 0 112 -15 rquadto
+0 -362 rlineto
+-68 -12 rlineto
+0 -21 rlineto
+150 0 rlineto
+0 425 rlineto
+57 12 rlineto
+0 21 rlineto
+-134 0 rlineto
+-3 -37 rlineto
+-34 18 -79 32 rquadto
+-45 14 -76 14 rquadto
+-117 0 -117 -134 rquadto
+0 -300 rlineto
+-59 -12 rlineto
+0 -21 rlineto
+140 0 rlineto
+0 328 rlineto
+closepath
+} def
+/P$13 {
+-498 0 rlineto
+0 -110 rlineto
+51 -53 93 -96 rquadto
+93 -92 135 -145 rquadto
+43 -53 64 -109 rquadto
+20 -57 20 -129 rquadto
+0 -64 -31 -103 rquadto
+-29 -39 -81 -39 rquadto
+-37 0 -59 7 rquadto
+-20 6 -39 21 rquadto
+-25 114 rlineto
+-51 0 rlineto
+0 -178 rlineto
+46 -10 92 -18 rquadto
+45 -7 96 -7 rquadto
+129 0 198 54 rquadto
+68 53 68 151 rquadto
+0 60 -20 110 rquadto
+-20 50 -65 98 rquadto
+-43 46 -175 154 rquadto
+-50 40 -109 92 rquadto
+385 0 rlineto
+0 132 rlineto
+} def
+/P$f {
+0 339 -215 339 rquadto
+-103 0 -156 -85 rquadto
+-53 -87 -53 -253 rquadto
+0 -162 53 -248 rquadto
+53 -87 160 -87 rquadto
+103 0 156 85 rquadto
+54 84 54 250 rquadto
+closepath
+} def
+/P$b {
+32 0 rlineto
+17 89 rlineto
+17 21 60 40 rquadto
+45 17 87 17 rquadto
+68 0 106 -34 rquadto
+39 -35 39 -96 rquadto
+0 -35 -15 -57 rquadto
+-14 -23 -39 -39 rquadto
+-23 -15 -54 -26 rquadto
+-29 -10 -62 -21 rquadto
+-32 -12 -64 -25 rquadto
+-29 -14 -54 -34 rquadto
+-23 -21 -39 -53 rquadto
+-14 -31 -14 -76 rquadto
+0 -78 57 -121 rquadto
+59 -45 162 -45 rquadto
+79 0 171 21 rquadto
+0 135 rlineto
+-31 0 rlineto
+-17 -79 rlineto
+-50 -37 -123 -37 rquadto
+-64 0 -101 28 rquadto
+-37 26 -37 73 rquadto
+0 31 14 53 rquadto
+15 20 39 35 rquadto
+25 14 56 25 rquadto
+31 10 64 21 rquadto
+32 10 62 26 rquadto
+31 14 54 35 rquadto
+25 21 39 54 rquadto
+15 31 15 78 rquadto
+0 95 -57 146 rquadto
+-57 51 -167 51 rquadto
+-53 0 -106 -9 rquadto
+-53 -9 -95 -25 rquadto
+0 -151 rlineto
+} def
+/P$2e {
+-93 0 -151 -37 rquadto
+-56 -37 -71 -106 rquadto
+96 -14 rlineto
+9 40 42 62 rquadto
+34 21 87 21 rquadto
+145 0 145 -168 rquadto
+0 -93 rlineto
+-1 0 rlineto
+-28 56 -76 84 rquadto
+-46 28 -110 28 rquadto
+-106 0 -156 -70 rquadto
+-50 -71 -50 -223 rquadto
+0 -154 53 -228 rquadto
+54 -73 164 -73 rquadto
+62 0 107 28 rquadto
+45 28 70 81 rquadto
+0 0 rlineto
+0 -17 1 -56 rquadto
+3 -40 4 -43 rquadto
+92 0 rlineto
+-3 29 -3 120 rquadto
+0 443 rlineto
+0 245 -243 245 rquadto
+closepath
+} def
+/P$2u {
+0 -98 rlineto
+87 0 rlineto
+0 98 rlineto
+-87 0 rlineto
+closepath
+} def
+/P$1v {
+0 104 -82 162 rquadto
+-81 57 -229 57 rquadto
+-276 0 -320 -192 rquadto
+100 -20 rlineto
+17 68 71 101 rquadto
+56 31 153 31 rquadto
+98 0 151 -34 rquadto
+54 -34 54 -100 rquadto
+0 -37 -17 -60 rquadto
+-15 -23 -46 -37 rquadto
+-31 -15 -73 -25 rquadto
+-42 -10 -93 -21 rquadto
+-89 -20 -135 -40 rquadto
+-46 -20 -73 -43 rquadto
+-26 -25 -40 -57 rquadto
+-14 -32 -14 -75 rquadto
+0 -96 73 -150 rquadto
+75 -53 214 -53 rquadto
+128 0 195 40 rquadto
+68 39 96 134 rquadto
+-101 17 rlineto
+-15 -59 -62 -85 rquadto
+-46 -28 -129 -28 rquadto
+-90 0 -139 29 rquadto
+-46 29 -46 90 rquadto
+0 34 17 57 rquadto
+18 21 53 37 rquadto
+35 15 140 39 rquadto
+34 7 68 17 rquadto
+34 7 65 20 rquadto
+32 10 59 26 rquadto
+28 15 48 39 rquadto
+20 21 31 53 rquadto
+12 29 12 70 rquadto
+} def
+/P$1e {
+0 -132 -187 -132 rquadto
+-192 0 rlineto
+0 271 rlineto
+200 0 rlineto
+93 0 135 -34 rquadto
+43 -34 43 -104 rquadto
+} def
+/P$1c {
+0 100 -73 156 rquadto
+-73 56 -204 56 rquadto
+-306 0 rlineto
+0 -756 rlineto
+275 0 rlineto
+265 0 265 182 rquadto
+0 67 -37 114 rquadto
+-37 45 -106 60 rquadto
+90 9 139 59 rquadto
+48 50 48 126 rquadto
+closepath
+} def
+/P$9 {
+0 254 rlineto
+107 12 rlineto
+0 26 rlineto
+-279 0 rlineto
+0 -26 rlineto
+76 -12 rlineto
+0 -576 rlineto
+-84 -14 rlineto
+0 -25 rlineto
+492 0 rlineto
+0 156 rlineto
+-32 0 rlineto
+-15 -106 rlineto
+-54 -6 -157 -6 rquadto
+-106 0 rlineto
+0 273 rlineto
+192 0 rlineto
+15 -78 rlineto
+29 0 rlineto
+0 200 rlineto
+-29 0 rlineto
+-15 -78 rlineto
+-192 0 rlineto
+} def
+/P$1w {
+31 -57 75 -84 rquadto
+43 -26 110 -26 rquadto
+93 0 139 46 rquadto
+45 46 45 157 rquadto
+0 387 rlineto
+-96 0 rlineto
+0 -368 rlineto
+0 -60 -12 -90 rquadto
+-10 -29 -37 -43 rquadto
+-25 -14 -70 -14 rquadto
+-68 0 -109 46 rquadto
+-40 46 -40 128 rquadto
+0 342 rlineto
+-96 0 rlineto
+0 -796 rlineto
+96 0 rlineto
+0 207 rlineto
+0 32 -3 67 rquadto
+-1 34 -1 40 rquadto
+1 0 rlineto
+} def
+/P$1b {
+-56 -14 rlineto
+0 -37 rlineto
+225 0 rlineto
+0 201 rlineto
+0 54 -6 110 rquadto
+23 -18 67 -31 rquadto
+45 -14 87 -14 rquadto
+120 0 175 65 rquadto
+54 65 54 209 rquadto
+0 142 -70 223 rquadto
+-70 79 -198 79 rquadto
+-95 0 -278 -40 rquadto
+0 -753 rlineto
+} def
+/P$34 {
+48 -28 103 -45 rquadto
+56 -18 92 -18 rquadto
+78 0 117 45 rquadto
+39 45 39 129 rquadto
+0 393 rlineto
+71 15 rlineto
+0 28 rlineto
+-256 0 rlineto
+0 -28 rlineto
+79 -15 rlineto
+0 -381 rlineto
+0 -53 -26 -82 rquadto
+-25 -31 -79 -31 rquadto
+-56 0 -140 18 rquadto
+0 476 rlineto
+81 15 rlineto
+0 28 rlineto
+-257 0 rlineto
+0 -28 rlineto
+71 -15 rlineto
+0 -507 rlineto
+-71 -17 rlineto
+0 -28 rlineto
+170 0 rlineto
+6 48 rlineto
+} def
+/P$3l {
+0 -137 -40 -198 rquadto
+-39 -62 -123 -62 rquadto
+-84 0 -121 59 rquadto
+-35 59 -35 201 rquadto
+0 143 37 204 rquadto
+37 59 120 59 rquadto
+82 0 123 -62 rquadto
+40 -62 40 -201 rquadto
+closepath
+} def
+/P$12 {
+-220 -515 rlineto
+-37 -14 rlineto
+0 -39 rlineto
+281 0 rlineto
+0 39 rlineto
+-65 15 rlineto
+129 304 rlineto
+115 -306 rlineto
+-65 -14 rlineto
+0 -39 rlineto
+181 0 rlineto
+0 39 rlineto
+-40 12 rlineto
+-217 534 rlineto
+-37 95 -65 137 rquadto
+-28 43 -62 65 rquadto
+-34 21 -78 21 rquadto
+-46 0 -96 -10 rquadto
+0 -142 rlineto
+35 0 rlineto
+25 73 rlineto
+17 14 42 14 rquadto
+23 0 39 -10 rquadto
+17 -10 32 -31 rquadto
+15 -18 28 -48 rquadto
+14 -28 39 -85 rquadto
+} def
+/P$2c {
+0 510 rlineto
+-96 0 rlineto
+0 -510 rlineto
+-81 0 rlineto
+0 -70 rlineto
+81 0 rlineto
+0 -65 rlineto
+0 -79 34 -114 rquadto
+35 -34 107 -34 rquadto
+40 0 68 6 rquadto
+0 73 rlineto
+-25 -4 -43 -4 rquadto
+-37 0 -54 18 rquadto
+-15 18 -15 68 rquadto
+0 51 rlineto
+114 0 rlineto
+0 70 rlineto
+-114 0 rlineto
+} def
+/P$o {
+57 0 84 -39 rquadto
+26 -39 26 -126 rquadto
+0 -79 -25 -115 rquadto
+-25 -35 -79 -35 rquadto
+-67 0 -142 25 rquadto
+0 148 32 220 rquadto
+34 71 103 71 rquadto
+closepath
+} def
+/P$18 {
+112 0 162 59 rquadto
+50 59 50 185 rquadto
+0 48 rlineto
+-289 0 rlineto
+0 9 rlineto
+0 87 14 125 rquadto
+14 35 45 56 rquadto
+32 18 87 18 rquadto
+51 0 129 -17 rquadto
+0 45 rlineto
+-31 18 -82 31 rquadto
+-51 12 -100 12 rquadto
+-135 0 -201 -70 rquadto
+-64 -70 -64 -218 rquadto
+0 -143 60 -214 rquadto
+62 -71 187 -71 rquadto
+closepath
+} def
+/P$u {
+-121 0 -121 170 rquadto
+0 75 29 110 rquadto
+29 34 90 34 rquadto
+62 0 126 -25 rquadto
+0 -150 -29 -220 rquadto
+-29 -70 -95 -70 rquadto
+closepath
+} def
+/P$2f {
+0 -70 -20 -121 rquadto
+-18 -51 -54 -78 rquadto
+-34 -28 -79 -28 rquadto
+-73 0 -107 54 rquadto
+-32 53 -32 173 rquadto
+0 118 31 171 rquadto
+31 51 107 51 rquadto
+45 0 81 -26 rquadto
+35 -26 54 -76 rquadto
+20 -51 20 -120 rquadto
+} def
+/P$3c {
+0 -142 -26 -204 rquadto
+-26 -62 -85 -62 rquadto
+-56 0 -81 59 rquadto
+-25 59 -25 207 rquadto
+0 148 25 209 rquadto
+25 60 81 60 rquadto
+57 0 84 -62 rquadto
+28 -64 28 -207 rquadto
+closepath
+} def
+/P$g {
+0 -157 -29 -226 rquadto
+-29 -70 -95 -70 rquadto
+-62 0 -90 65 rquadto
+-28 65 -28 231 rquadto
+0 165 28 234 rquadto
+28 67 90 67 rquadto
+64 0 93 -70 rquadto
+31 -71 31 -231 rquadto
+closepath
+} def
+/P$1z {
+-67 0 -104 -42 rquadto
+-35 -40 -35 -115 rquadto
+0 -193 rlineto
+0 -62 -28 -92 rquadto
+-28 -31 -87 -34 rquadto
+0 -68 rlineto
+57 -1 85 -32 rquadto
+29 -31 29 -93 rquadto
+0 -193 rlineto
+0 -76 34 -117 rquadto
+35 -40 106 -40 rquadto
+73 0 rlineto
+0 68 rlineto
+-34 0 rlineto
+-48 0 -70 29 rquadto
+-20 28 -20 85 rquadto
+0 190 rlineto
+0 51 -28 89 rquadto
+-28 35 -75 46 rquadto
+0 1 rlineto
+46 10 75 48 rquadto
+28 35 28 87 rquadto
+0 192 rlineto
+0 56 20 85 rquadto
+21 29 70 29 rquadto
+34 0 rlineto
+0 68 rlineto
+-73 0 rlineto
+} def
+/P$p {
+-32 0 rlineto
+0 -154 rlineto
+406 0 rlineto
+0 37 rlineto
+-292 617 rlineto
+-64 0 rlineto
+287 -579 rlineto
+-287 0 rlineto
+-17 79 rlineto
+closepath
+} def
+/P$3i {
+-73 23 -153 40 rquadto
+-79 15 -171 15 rquadto
+-206 0 -321 -110 rquadto
+-115 -112 -115 -317 rquadto
+0 -223 112 -334 rquadto
+112 -110 328 -110 rquadto
+154 0 298 37 rquadto
+0 182 rlineto
+-42 0 rlineto
+-17 -104 rlineto
+-43 -31 -104 -46 rquadto
+-60 -17 -129 -17 rquadto
+-162 0 -237 96 rquadto
+-75 96 -75 295 rquadto
+0 187 76 284 rquadto
+78 96 229 96 rquadto
+53 0 110 -12 rquadto
+59 -12 90 -31 rquadto
+0 -242 rlineto
+-109 -15 rlineto
+0 -34 rlineto
+314 0 rlineto
+0 34 rlineto
+-82 15 rlineto
+0 278 rlineto
+} def
+/P$2q {
+50 0 70 -29 rquadto
+21 -29 21 -85 rquadto
+0 -192 rlineto
+0 -53 28 -89 rquadto
+28 -35 75 -46 rquadto
+0 -1 rlineto
+-45 -10 -75 -46 rquadto
+-28 -35 -28 -89 rquadto
+0 -190 rlineto
+0 -57 -21 -85 rquadto
+-20 -29 -70 -29 rquadto
+-31 0 rlineto
+0 -68 rlineto
+70 0 rlineto
+70 0 106 40 rquadto
+35 40 35 117 rquadto
+0 193 rlineto
+0 62 28 93 rquadto
+28 31 87 32 rquadto
+0 68 rlineto
+-59 1 -87 32 rquadto
+-28 31 -28 93 rquadto
+0 193 rlineto
+0 75 -37 115 rquadto
+-35 42 -104 42 rquadto
+-70 0 rlineto
+0 -68 rlineto
+31 0 rlineto
+} def
+/P$2g {
+0 -184 98 -285 rquadto
+100 -101 278 -101 rquadto
+126 0 204 43 rquadto
+78 42 120 135 rquadto
+-96 28 rlineto
+-32 -64 -89 -93 rquadto
+-56 -29 -140 -29 rquadto
+-131 0 -201 79 rquadto
+-68 78 -68 223 rquadto
+0 142 73 226 rquadto
+73 82 203 82 rquadto
+75 0 139 -21 rquadto
+64 -23 104 -62 rquadto
+0 -135 rlineto
+-226 0 rlineto
+0 -85 rlineto
+320 0 rlineto
+0 260 rlineto
+-59 60 -146 95 rquadto
+-87 32 -190 32 rquadto
+-117 0 -203 -46 rquadto
+-85 -48 -132 -135 rquadto
+-45 -89 -45 -209 rquadto
+} def
+/P$24 {
+-114 0 rlineto
+-212 -581 rlineto
+103 0 rlineto
+128 378 rlineto
+7 21 37 128 rquadto
+18 -64 rlineto
+20 -62 rlineto
+132 -379 rlineto
+103 0 rlineto
+-217 581 rlineto
+} def
+/P$2y {
+0 304 -214 304 rquadto
+-134 0 -179 -101 rquadto
+-3 0 rlineto
+1 4 1 92 rquadto
+0 226 rlineto
+-96 0 rlineto
+0 -690 rlineto
+0 -89 -3 -118 rquadto
+93 0 rlineto
+1 1 1 15 rquadto
+1 12 3 40 rquadto
+1 26 1 37 rquadto
+1 0 rlineto
+26 -54 68 -78 rquadto
+42 -25 110 -25 rquadto
+107 0 160 71 rquadto
+53 71 53 225 rquadto
+closepath
+} def
+/P$37 {
+-65 0 -101 54 rquadto
+-35 53 -35 156 rquadto
+256 0 rlineto
+0 -112 -29 -160 rquadto
+-29 -50 -89 -50 rquadto
+} def
+/P$11 {
+62 -70 112 -101 rquadto
+51 -31 92 -31 rquadto
+31 0 rlineto
+0 201 rlineto
+-32 0 rlineto
+-34 -73 rlineto
+-35 0 -82 15 rquadto
+-46 15 -82 37 rquadto
+0 334 rlineto
+87 14 rlineto
+0 39 rlineto
+-328 0 rlineto
+0 -39 rlineto
+70 -14 rlineto
+0 -445 rlineto
+-70 -14 rlineto
+0 -39 rlineto
+231 0 rlineto
+6 115 rlineto
+} def
+/P$3e {
+0 -178 -96 -270 rquadto
+-95 -92 -275 -92 rquadto
+-114 0 rlineto
+0 734 rlineto
+76 4 181 4 rquadto
+156 0 229 -92 rquadto
+75 -92 75 -284 rquadto
+closepath
+} def
+/P$2n {
+-92 0 -162 -32 rquadto
+-68 -34 -107 -98 rquadto
+-37 -65 -37 -154 rquadto
+0 -481 rlineto
+103 0 rlineto
+0 471 rlineto
+0 104 51 159 rquadto
+53 53 153 53 rquadto
+101 0 157 -56 rquadto
+57 -56 57 -162 rquadto
+0 -465 rlineto
+101 0 rlineto
+0 471 rlineto
+0 92 -39 159 rquadto
+-39 65 -110 101 rquadto
+-70 34 -167 34 rquadto
+} def
+/P$2s {
+53 0 93 -23 rquadto
+42 -23 65 -65 rquadto
+25 -42 25 -87 rquadto
+0 -48 rlineto
+-106 3 rlineto
+-67 0 -103 14 rquadto
+-34 12 -53 39 rquadto
+-18 26 -18 70 rquadto
+0 46 25 73 rquadto
+25 25 71 25 rquadto
+closepath
+} def
+/P$i {
+-401 0 rlineto
+0 -71 rlineto
+90 -82 rlineto
+87 -76 128 -123 rquadto
+42 -46 59 -96 rquadto
+18 -51 18 -115 rquadto
+0 -64 -29 -96 rquadto
+-28 -34 -93 -34 rquadto
+-26 0 -54 7 rquadto
+-26 7 -46 18 rquadto
+-17 79 rlineto
+-32 0 rlineto
+0 -125 rlineto
+89 -21 151 -21 rquadto
+107 0 160 45 rquadto
+54 43 54 126 rquadto
+0 54 -21 103 rquadto
+-21 48 -65 96 rquadto
+-43 46 -145 134 rquadto
+-43 35 -92 81 rquadto
+337 0 rlineto
+0 75 rlineto
+closepath
+} def
+/P$1h {
+0 117 35 173 rquadto
+35 54 109 54 rquadto
+51 0 85 -28 rquadto
+35 -28 43 -85 rquadto
+96 6 rlineto
+-10 84 -71 134 rquadto
+-59 50 -151 50 rquadto
+-121 0 -185 -76 rquadto
+-64 -78 -64 -225 rquadto
+0 -146 64 -223 rquadto
+64 -78 184 -78 rquadto
+89 0 148 46 rquadto
+59 45 73 126 rquadto
+-98 7 rlineto
+-7 -48 -39 -76 rquadto
+-29 -28 -85 -28 rquadto
+-76 0 -110 51 rquadto
+-34 50 -34 170 rquadto
+} def
+/P$2x {
+-301 -365 rlineto
+-100 75 rlineto
+0 290 rlineto
+-101 0 rlineto
+0 -756 rlineto
+101 0 rlineto
+0 378 rlineto
+365 -378 rlineto
+120 0 rlineto
+-321 328 rlineto
+365 428 rlineto
+-128 0 rlineto
+} def
+/P$2h {
+0 -504 rlineto
+0 -84 4 -160 rquadto
+-26 95 -48 150 rquadto
+-195 515 rlineto
+-71 0 rlineto
+-198 -515 rlineto
+-29 -90 rlineto
+-17 -59 rlineto
+1 59 rlineto
+1 101 rlineto
+0 504 rlineto
+-90 0 rlineto
+0 -756 rlineto
+134 0 rlineto
+201 523 rlineto
+10 32 20 68 rquadto
+10 35 14 51 rquadto
+3 -20 17 -64 rquadto
+14 -43 18 -56 rquadto
+196 -523 rlineto
+132 0 rlineto
+0 756 rlineto
+-92 0 rlineto
+} def
+/P$39 {
+120 12 rlineto
+0 23 rlineto
+-315 0 rlineto
+0 -23 rlineto
+120 -12 rlineto
+0 -479 rlineto
+-118 42 rlineto
+0 -23 rlineto
+171 -96 rlineto
+21 0 rlineto
+0 557 rlineto
+} def
+/P$3a {
+0 306 -193 306 rquadto
+-92 0 -140 -78 rquadto
+-46 -79 -46 -228 rquadto
+0 -146 46 -223 rquadto
+48 -78 145 -78 rquadto
+92 0 140 76 rquadto
+48 76 48 225 rquadto
+closepath
+} def
+/P$3d {
+-360 0 rlineto
+0 -64 rlineto
+82 -75 rlineto
+78 -68 114 -110 rquadto
+37 -43 53 -89 rquadto
+17 -45 17 -103 rquadto
+0 -57 -26 -87 rquadto
+-25 -29 -84 -29 rquadto
+-23 0 -48 6 rquadto
+-25 6 -43 17 rquadto
+-14 71 rlineto
+-29 0 rlineto
+0 -112 rlineto
+79 -18 135 -18 rquadto
+96 0 145 40 rquadto
+48 39 48 112 rquadto
+0 50 -20 93 rquadto
+-18 43 -57 87 rquadto
+-39 42 -131 120 rquadto
+-39 32 -82 73 rquadto
+303 0 rlineto
+0 67 rlineto
+} def
+/P$15 {
+0 -182 -20 -262 rquadto
+-20 -79 -64 -79 rquadto
+-43 0 -62 78 rquadto
+-18 76 -18 264 rquadto
+0 192 18 271 rquadto
+18 78 62 78 rquadto
+42 0 62 -81 rquadto
+21 -81 21 -268 rquadto
+} def
+/P$d {
+-64 3 rlineto
+-65 1 -89 25 rquadto
+-23 21 -23 76 rquadto
+0 85 70 85 rquadto
+32 0 56 -7 rquadto
+25 -7 50 -18 rquadto
+0 -164 rlineto
+closepath
+} def
+/P$c {
+75 0 110 31 rquadto
+35 29 35 93 rquadto
+0 309 rlineto
+56 12 rlineto
+0 21 rlineto
+-125 0 rlineto
+-9 -45 rlineto
+-56 54 -142 54 rquadto
+-117 0 -117 -135 rquadto
+0 -46 17 -76 rquadto
+17 -29 56 -45 rquadto
+39 -15 114 -17 rquadto
+68 -3 rlineto
+0 -71 rlineto
+0 -46 -17 -68 rquadto
+-17 -23 -53 -23 rquadto
+-50 0 -90 23 rquadto
+-15 57 rlineto
+-28 0 rlineto
+0 -100 rlineto
+79 -17 139 -17 rquadto
+closepath
+} def
+/P$1k {
+-7 -92 -46 -134 rquadto
+-37 -42 -110 -42 rquadto
+-70 0 -110 46 rquadto
+-40 46 -43 129 rquadto
+312 0 rlineto
+} def
+/P$16 {
+0 107 -76 167 rquadto
+-76 59 -214 59 rquadto
+-109 0 -217 -25 rquadto
+-6 -189 rlineto
+53 0 rlineto
+31 125 rlineto
+51 29 106 29 rquadto
+71 0 110 -45 rquadto
+40 -46 40 -128 rquadto
+0 -70 -32 -107 rquadto
+-31 -37 -103 -42 rquadto
+-68 -4 rlineto
+0 -70 rlineto
+65 -4 rlineto
+53 -4 78 -39 rquadto
+25 -34 25 -104 rquadto
+0 -65 -29 -103 rquadto
+-29 -37 -84 -37 rquadto
+-31 0 -51 9 rquadto
+-20 9 -39 20 rquadto
+-25 114 rlineto
+-51 0 rlineto
+0 -178 rlineto
+60 -15 103 -20 rquadto
+43 -6 85 -6 rquadto
+264 0 264 193 rquadto
+0 79 -42 129 rquadto
+-42 48 -120 60 rquadto
+198 23 198 196 rquadto
+closepath
+} def
+/P$2v {
+0 -98 rlineto
+89 0 rlineto
+0 98 rlineto
+-89 0 rlineto
+} def
+/P$3o {
+0 89 -56 134 rquadto
+-56 45 -165 45 rquadto
+-45 0 -100 -9 rquadto
+-53 -9 -82 -20 rquadto
+0 -146 rlineto
+28 0 rlineto
+31 82 rlineto
+48 43 123 43 rquadto
+123 0 123 -104 rquadto
+0 -78 -96 -110 rquadto
+-56 -18 rlineto
+-64 -20 -93 -42 rquadto
+-29 -21 -45 -53 rquadto
+-15 -31 -15 -76 rquadto
+0 -78 53 -123 rquadto
+54 -45 145 -45 rquadto
+65 0 164 20 rquadto
+0 129 rlineto
+-29 0 rlineto
+-26 -68 rlineto
+-34 -31 -106 -31 rquadto
+-51 0 -78 26 rquadto
+-26 25 -26 68 rquadto
+0 35 23 60 rquadto
+25 23 75 40 rquadto
+92 31 120 46 rquadto
+29 14 50 35 rquadto
+20 20 31 48 rquadto
+10 26 10 67 rquadto
+closepath
+} def
+/P$r {
+0 -78 -31 -112 rquadto
+-29 -35 -95 -35 rquadto
+-64 0 -92 34 rquadto
+-28 32 -28 114 rquadto
+0 82 28 115 rquadto
+29 32 92 32 rquadto
+65 0 95 -34 rquadto
+31 -34 31 -114 rquadto
+closepath
+} def
+/P$2b {
+-4 15 rlineto
+-12 43 -39 114 rquadto
+-96 248 rlineto
+282 0 rlineto
+-96 -250 rlineto
+-15 -35 -29 -82 rquadto
+-15 -45 rlineto
+} def
+/P$2r {
+0 -756 rlineto
+101 0 rlineto
+0 671 rlineto
+382 0 rlineto
+0 84 rlineto
+-484 0 rlineto
+} def
+/P$3g {
+0 28 -20 48 rquadto
+-20 20 -48 20 rquadto
+-28 0 -48 -20 rquadto
+-20 -20 -20 -48 rquadto
+0 -28 20 -48 rquadto
+20 -20 48 -20 rquadto
+28 0 48 20 rquadto
+20 20 20 48 rquadto
+closepath
+} def
+/P$e {
+0 87 -60 137 rquadto
+-59 50 -170 50 rquadto
+-93 0 -176 -20 rquadto
+-4 -137 rlineto
+31 0 rlineto
+21 90 rlineto
+20 10 54 18 rquadto
+34 7 65 7 rquadto
+76 0 112 -34 rquadto
+37 -35 37 -117 rquadto
+0 -64 -34 -96 rquadto
+-34 -34 -104 -37 rquadto
+-70 -4 rlineto
+0 -40 rlineto
+70 -3 rlineto
+54 -3 81 -34 rquadto
+26 -31 26 -95 rquadto
+0 -65 -28 -95 rquadto
+-28 -31 -90 -31 rquadto
+-26 0 -54 7 rquadto
+-28 7 -50 18 rquadto
+-17 79 rlineto
+-32 0 rlineto
+0 -125 rlineto
+48 -12 82 -17 rquadto
+35 -4 71 -4 rquadto
+209 0 209 160 rquadto
+0 68 -37 109 rquadto
+-37 39 -106 50 rquadto
+89 9 131 50 rquadto
+42 40 42 114 rquadto
+} def
+/P$22 {
+0 368 rlineto
+0 57 10 89 rquadto
+10 31 35 45 rquadto
+25 14 73 14 rquadto
+68 0 109 -46 rquadto
+40 -48 40 -132 rquadto
+0 -337 rlineto
+96 0 rlineto
+0 457 rlineto
+0 101 3 123 rquadto
+-92 0 rlineto
+0 -3 -1 -14 rquadto
+0 -12 -1 -26 rquadto
+0 -15 0 -59 rquadto
+-1 0 rlineto
+-34 60 -78 85 rquadto
+-43 25 -107 25 rquadto
+-96 0 -140 -46 rquadto
+-43 -48 -43 -157 rquadto
+0 -387 rlineto
+96 0 rlineto
+} def
+/P$5 {
+-25 0 rlineto
+-170 -451 rlineto
+-173 451 rlineto
+-26 0 rlineto
+-217 -631 rlineto
+-56 -14 rlineto
+0 -25 rlineto
+250 0 rlineto
+0 25 rlineto
+-96 14 rlineto
+156 460 rlineto
+176 -454 rlineto
+21 0 rlineto
+168 454 rlineto
+148 -460 rlineto
+-101 -14 rlineto
+0 -25 rlineto
+217 0 rlineto
+0 25 rlineto
+-57 14 rlineto
+-214 631 rlineto
+closepath
+} def
+/P$1m {
+-26 56 -71 81 rquadto
+-43 23 -109 23 rquadto
+-109 0 -160 -73 rquadto
+-51 -75 -51 -225 rquadto
+0 -304 212 -304 rquadto
+67 0 110 25 rquadto
+43 23 70 76 rquadto
+1 0 rlineto
+-1 -65 rlineto
+0 -240 rlineto
+96 0 rlineto
+0 676 rlineto
+0 90 3 120 rquadto
+-92 0 rlineto
+-1 -9 -3 -39 rquadto
+-1 -31 -1 -54 rquadto
+-3 0 rlineto
+closepath
+} def
+/P$3j {
+0 160 rlineto
+-28 0 rlineto
+-35 -70 rlineto
+-32 0 -76 9 rquadto
+-42 7 -75 21 rquadto
+0 446 rlineto
+103 15 rlineto
+0 28 rlineto
+-282 0 rlineto
+0 -28 rlineto
+75 -15 rlineto
+0 -507 rlineto
+-75 -17 rlineto
+0 -28 rlineto
+173 0 rlineto
+6 75 rlineto
+37 -32 101 -60 rquadto
+65 -29 104 -29 rquadto
+9 0 rlineto
+} def
+/P$q {
+0 53 -26 90 rquadto
+-26 37 -70 57 rquadto
+56 20 85 64 rquadto
+31 43 31 106 rquadto
+0 92 -53 139 rquadto
+-51 46 -162 46 rquadto
+-209 0 -209 -185 rquadto
+0 -65 31 -107 rquadto
+31 -42 84 -62 rquadto
+-42 -20 -68 -56 rquadto
+-26 -37 -26 -92 rquadto
+0 -81 50 -125 rquadto
+50 -45 143 -45 rquadto
+90 0 140 45 rquadto
+50 43 50 125 rquadto
+closepath
+} def
+/P$1l {
+0 -368 rlineto
+0 -57 -12 -89 rquadto
+-10 -31 -35 -45 rquadto
+-23 -14 -71 -14 rquadto
+-70 0 -110 48 rquadto
+-39 46 -39 131 rquadto
+0 337 rlineto
+-96 0 rlineto
+0 -457 rlineto
+0 -101 -3 -123 rquadto
+90 0 rlineto
+1 3 1 15 rquadto
+0 10 0 26 rquadto
+1 14 3 57 rquadto
+1 0 rlineto
+32 -60 76 -85 rquadto
+43 -25 109 -25 rquadto
+95 0 139 48 rquadto
+45 46 45 156 rquadto
+0 387 rlineto
+-96 0 rlineto
+} def
+/P$28 {
+0 121 31 175 rquadto
+32 51 104 51 rquadto
+82 0 118 -56 rquadto
+37 -57 37 -176 rquadto
+0 -115 -37 -168 rquadto
+-35 -54 -117 -54 rquadto
+-73 0 -106 54 rquadto
+-31 53 -31 175 rquadto
+} def
+/P$2t {
+-192 0 -228 -198 rquadto
+100 -17 rlineto
+9 62 43 98 rquadto
+34 34 84 34 rquadto
+56 0 87 -39 rquadto
+32 -39 32 -112 rquadto
+0 -450 rlineto
+-145 0 rlineto
+0 -82 rlineto
+248 0 rlineto
+0 531 rlineto
+0 109 -60 173 rquadto
+-59 62 -162 62 rquadto
+} def
+/P$31 {
+48 -26 101 -45 rquadto
+53 -18 93 -18 rquadto
+43 0 81 17 rquadto
+37 15 56 51 rquadto
+48 -26 114 -46 rquadto
+65 -21 109 -21 rquadto
+151 0 151 175 rquadto
+0 393 rlineto
+76 15 rlineto
+0 28 rlineto
+-270 0 rlineto
+0 -28 rlineto
+89 -15 rlineto
+0 -381 rlineto
+0 -109 -101 -109 rquadto
+-17 0 -39 3 rquadto
+-21 1 -43 4 rquadto
+-21 3 -42 7 rquadto
+-20 4 -32 6 rquadto
+10 34 10 75 rquadto
+0 393 rlineto
+89 15 rlineto
+0 28 rlineto
+-282 0 rlineto
+0 -28 rlineto
+87 -15 rlineto
+0 -381 rlineto
+0 -53 -26 -81 rquadto
+-26 -28 -81 -28 rquadto
+-56 0 -139 18 rquadto
+0 471 rlineto
+90 15 rlineto
+0 28 rlineto
+-271 0 rlineto
+0 -28 rlineto
+76 -15 rlineto
+0 -507 rlineto
+-76 -17 rlineto
+0 -28 rlineto
+175 0 rlineto
+4 48 rlineto
+} def
+/P$2 {
+0 -106 -31 -153 rquadto
+-29 -48 -95 -48 rquadto
+-64 0 -92 46 rquadto
+-28 45 -28 154 rquadto
+0 109 28 156 rquadto
+29 46 92 46 rquadto
+64 0 95 -48 rquadto
+31 -48 31 -154 rquadto
+closepath
+} def
+/P$v {
+134 12 rlineto
+0 26 rlineto
+-353 0 rlineto
+0 -26 rlineto
+134 -12 rlineto
+0 -534 rlineto
+-131 46 rlineto
+0 -25 rlineto
+190 -109 rlineto
+25 0 rlineto
+0 621 rlineto
+} def
+/P$w {
+-101 -15 rlineto
+0 -42 rlineto
+375 0 rlineto
+0 42 rlineto
+-89 15 rlineto
+0 475 rlineto
+0 126 -70 196 rquadto
+-70 68 -200 68 rquadto
+-43 0 -87 -6 rquadto
+-42 -4 -67 -12 rquadto
+0 -178 rlineto
+53 0 rlineto
+17 104 rlineto
+10 14 31 21 rquadto
+20 7 45 7 rquadto
+40 0 67 -28 rquadto
+26 -28 26 -84 rquadto
+0 -565 rlineto
+} def
+/P$26 {
+0 117 -46 204 rquadto
+-45 87 -129 134 rquadto
+-82 46 -192 46 rquadto
+-282 0 rlineto
+0 -756 rlineto
+250 0 rlineto
+192 0 296 96 rquadto
+104 95 104 273 rquadto
+closepath
+} def
+/P$3n {
+243 -264 rlineto
+-62 -17 rlineto
+0 -28 rlineto
+210 0 rlineto
+0 28 rlineto
+-73 15 rlineto
+-170 173 rlineto
+218 335 rlineto
+64 15 rlineto
+0 28 rlineto
+-243 0 rlineto
+0 -28 rlineto
+54 -15 rlineto
+-164 -257 rlineto
+-78 85 rlineto
+0 171 rlineto
+62 15 rlineto
+0 28 rlineto
+-243 0 rlineto
+0 -28 rlineto
+75 -15 rlineto
+0 -814 rlineto
+-87 -15 rlineto
+0 -28 rlineto
+193 0 rlineto
+0 614 rlineto
+} def
+/P$17 {
+0 276 rlineto
+129 17 rlineto
+0 42 rlineto
+-407 0 rlineto
+0 -42 rlineto
+93 -17 rlineto
+0 -668 rlineto
+-101 -15 rlineto
+0 -42 rlineto
+654 0 rlineto
+0 210 rlineto
+-54 0 rlineto
+-18 -137 rlineto
+-28 -4 -95 -6 rquadto
+-65 -3 -103 -3 rquadto
+-96 0 rlineto
+0 321 rlineto
+190 0 rlineto
+18 -100 rlineto
+51 0 rlineto
+0 265 rlineto
+-51 0 rlineto
+-18 -101 rlineto
+-190 0 rlineto
+} def
+/P$2m {
+0 82 -62 128 rquadto
+-62 43 -173 43 rquadto
+-109 0 -168 -35 rquadto
+-57 -35 -75 -110 rquadto
+84 -17 rlineto
+12 46 51 68 rquadto
+39 21 107 21 rquadto
+73 0 106 -21 rquadto
+34 -23 34 -68 rquadto
+0 -34 -23 -54 rquadto
+-23 -21 -76 -35 rquadto
+-68 -18 rlineto
+-82 -21 -118 -42 rquadto
+-34 -20 -54 -50 rquadto
+-20 -29 -20 -73 rquadto
+0 -79 56 -120 rquadto
+57 -42 165 -42 rquadto
+96 0 153 34 rquadto
+56 34 71 107 rquadto
+-87 10 rlineto
+-7 -39 -43 -59 rquadto
+-34 -20 -93 -20 rquadto
+-65 0 -96 20 rquadto
+-29 18 -29 59 rquadto
+0 25 12 42 rquadto
+12 15 37 26 rquadto
+25 10 106 31 rquadto
+76 18 110 35 rquadto
+34 15 53 35 rquadto
+20 20 31 46 rquadto
+10 25 10 57 rquadto
+} def
+/P$1t {
+0 -796 rlineto
+96 0 rlineto
+0 796 rlineto
+-96 0 rlineto
+} def
+/P$27 {
+0 -140 -78 -214 rquadto
+-76 -75 -221 -75 rquadto
+-146 0 rlineto
+0 592 rlineto
+168 0 rlineto
+84 0 146 -35 rquadto
+62 -35 96 -104 rquadto
+34 -68 34 -162 rquadto
+} def
+/P$3b {
+0 -142 -26 -204 rquadto
+-26 -62 -85 -62 rquadto
+-56 0 -81 59 rquadto
+-25 59 -25 207 rquadto
+0 148 25 209 rquadto
+25 60 81 60 rquadto
+57 0 84 -62 rquadto
+28 -64 28 -207 rquadto
+} def
+/P$2k {
+0 304 -214 304 rquadto
+-65 0 -109 -23 rquadto
+-43 -25 -71 -78 rquadto
+0 0 rlineto
+0 17 -3 51 rquadto
+-1 34 -3 39 rquadto
+-93 0 rlineto
+3 -29 3 -120 rquadto
+0 -676 rlineto
+96 0 rlineto
+0 226 rlineto
+0 35 -1 82 rquadto
+1 0 rlineto
+28 -56 71 -79 rquadto
+43 -25 109 -25 rquadto
+110 0 162 75 rquadto
+51 73 51 223 rquadto
+closepath
+} def
+/P$1g {
+53 0 93 -23 rquadto
+42 -23 65 -65 rquadto
+25 -42 25 -87 rquadto
+0 -48 rlineto
+-106 3 rlineto
+-67 0 -103 14 rquadto
+-34 12 -53 39 rquadto
+-18 26 -18 70 rquadto
+0 46 25 73 rquadto
+25 25 71 25 rquadto
+} def
+/P$2o {
+-196 -314 rlineto
+-235 0 rlineto
+0 314 rlineto
+-101 0 rlineto
+0 -756 rlineto
+356 0 rlineto
+126 0 196 57 rquadto
+70 56 70 157 rquadto
+0 84 -50 142 rquadto
+-48 57 -135 71 rquadto
+215 326 rlineto
+-118 0 rlineto
+closepath
+} def
+/P$23 {
+50 0 70 -29 rquadto
+21 -29 21 -85 rquadto
+0 -192 rlineto
+0 -53 28 -89 rquadto
+28 -35 75 -46 rquadto
+0 -1 rlineto
+-45 -10 -75 -46 rquadto
+-28 -35 -28 -89 rquadto
+0 -190 rlineto
+0 -57 -21 -85 rquadto
+-20 -29 -70 -29 rquadto
+-31 0 rlineto
+0 -68 rlineto
+70 0 rlineto
+70 0 106 40 rquadto
+35 40 35 117 rquadto
+0 193 rlineto
+0 62 28 93 rquadto
+28 31 87 32 rquadto
+0 68 rlineto
+-59 1 -87 32 rquadto
+-28 31 -28 93 rquadto
+0 193 rlineto
+0 75 -37 115 rquadto
+-35 42 -104 42 rquadto
+-70 0 rlineto
+0 -68 rlineto
+31 0 rlineto
+closepath
+} def
+/P$1q {
+0 -120 -35 -175 rquadto
+-35 -54 -120 -54 rquadto
+-84 0 -121 56 rquadto
+-37 54 -37 173 rquadto
+0 114 35 171 rquadto
+37 57 118 57 rquadto
+85 0 123 -54 rquadto
+37 -56 37 -175 rquadto
+} def
+/P$z {
+39 -20 rlineto
+82 -42 148 -42 rquadto
+151 0 151 162 rquadto
+0 350 rlineto
+56 14 rlineto
+0 39 rlineto
+-275 0 rlineto
+0 -39 rlineto
+50 -14 rlineto
+0 -326 rlineto
+0 -50 -21 -76 rquadto
+-20 -28 -57 -28 rquadto
+-45 0 -89 20 rquadto
+0 410 rlineto
+50 14 rlineto
+0 39 rlineto
+-273 0 rlineto
+0 -39 rlineto
+53 -14 rlineto
+0 -445 rlineto
+-53 -14 rlineto
+0 -39 rlineto
+214 0 rlineto
+7 48 rlineto
+} def
+/P$25 {
+0 -154 48 -278 rquadto
+48 -123 150 -232 rquadto
+92 0 rlineto
+-100 110 -146 237 rquadto
+-46 125 -46 275 rquadto
+0 148 45 273 rquadto
+46 125 148 239 rquadto
+-92 0 rlineto
+-101 -109 -150 -232 rquadto
+-48 -125 -48 -279 rquadto
+0 -1 rlineto
+} def
+/P$3 {
+0 -26 rlineto
+104 -12 rlineto
+0 -573 rlineto
+-25 0 rlineto
+-123 0 -168 9 rquadto
+-12 101 rlineto
+-32 0 rlineto
+0 -153 rlineto
+575 0 rlineto
+0 153 rlineto
+-32 0 rlineto
+-12 -101 rlineto
+-15 -3 -65 -6 rquadto
+-48 -3 -106 -3 rquadto
+-25 0 rlineto
+0 573 rlineto
+104 12 rlineto
+0 26 rlineto
+-303 0 rlineto
+} def
+/P$3h {
+101 15 rlineto
+0 28 rlineto
+-309 0 rlineto
+0 -28 rlineto
+101 -15 rlineto
+0 -507 rlineto
+-84 -17 rlineto
+0 -28 rlineto
+190 0 rlineto
+0 553 rlineto
+} def
+/P$t {
+0 -98 54 -153 rquadto
+54 -54 156 -54 rquadto
+110 0 162 81 rquadto
+53 79 53 251 rquadto
+0 165 -67 253 rquadto
+-67 85 -187 85 rquadto
+-79 0 -146 -15 rquadto
+0 -114 rlineto
+32 0 rlineto
+15 70 rlineto
+15 7 42 14 rquadto
+26 4 53 4 rquadto
+78 0 120 -68 rquadto
+42 -68 46 -201 rquadto
+-75 42 -151 42 rquadto
+-85 0 -135 -51 rquadto
+-48 -51 -48 -143 rquadto
+closepath
+} def
+/P$32 {
+96 0 142 40 rquadto
+46 39 46 121 rquadto
+0 403 rlineto
+75 15 rlineto
+0 28 rlineto
+-164 0 rlineto
+-12 -59 rlineto
+-71 71 -184 71 rquadto
+-153 0 -153 -178 rquadto
+0 -59 23 -98 rquadto
+23 -39 73 -59 rquadto
+51 -20 148 -21 rquadto
+89 -3 rlineto
+0 -93 rlineto
+0 -60 -23 -90 rquadto
+-21 -29 -68 -29 rquadto
+-64 0 -115 31 rquadto
+-21 73 rlineto
+-35 0 rlineto
+0 -129 rlineto
+103 -21 181 -21 rquadto
+closepath
+} def
+/P$1f {
+-87 0 -131 -45 rquadto
+-43 -46 -43 -128 rquadto
+0 -90 59 -137 rquadto
+59 -48 190 -53 rquadto
+131 -1 rlineto
+0 -31 rlineto
+0 -71 -31 -101 rquadto
+-29 -31 -93 -31 rquadto
+-64 0 -93 21 rquadto
+-29 21 -35 70 rquadto
+-101 -7 rlineto
+25 -157 234 -157 rquadto
+109 0 164 50 rquadto
+56 50 56 145 rquadto
+0 250 rlineto
+0 43 10 65 rquadto
+10 21 42 21 rquadto
+14 0 32 -4 rquadto
+0 60 rlineto
+-37 7 -75 7 rquadto
+-54 0 -79 -28 rquadto
+-23 -28 -26 -87 rquadto
+-3 0 rlineto
+-37 65 -87 93 rquadto
+-48 28 -118 28 rquadto
+closepath
+} def
+/P$14 {
+0 409 -257 409 rquadto
+-125 0 -189 -104 rquadto
+-62 -104 -62 -304 rquadto
+0 -193 62 -296 rquadto
+64 -104 193 -104 rquadto
+123 0 187 103 rquadto
+65 101 65 298 rquadto
+closepath
+} def
+/P$36 {
+0 10 rlineto
+0 87 18 135 rquadto
+18 48 59 75 rquadto
+40 25 106 25 rquadto
+34 0 81 -4 rquadto
+46 -6 76 -14 rquadto
+0 35 rlineto
+-29 18 -82 34 rquadto
+-51 14 -106 14 rquadto
+-139 0 -203 -75 rquadto
+-64 -75 -64 -240 rquadto
+0 -156 64 -232 rquadto
+65 -76 187 -76 rquadto
+228 0 228 260 rquadto
+0 51 rlineto
+-365 0 rlineto
+closepath
+} def
+/P$y {
+-50 1 rlineto
+-56 3 -78 31 rquadto
+-21 26 -21 87 rquadto
+0 50 17 73 rquadto
+17 23 45 23 rquadto
+40 0 87 -20 rquadto
+0 -196 rlineto
+} def
+/P$1x {
+0 -92 rlineto
+96 0 rlineto
+0 92 rlineto
+-96 0 rlineto
+closepath
+} def
+/P$3k {
+0 314 -278 314 rquadto
+-135 0 -204 -79 rquadto
+-67 -81 -67 -234 rquadto
+0 -151 67 -231 rquadto
+68 -79 209 -79 rquadto
+135 0 204 78 rquadto
+68 78 68 232 rquadto
+closepath
+} def
+/P$21 {
+0 -368 rlineto
+0 -84 -23 -115 rquadto
+-23 -32 -82 -32 rquadto
+-62 0 -98 46 rquadto
+-35 46 -35 132 rquadto
+0 337 rlineto
+-95 0 rlineto
+0 -457 rlineto
+0 -101 -3 -123 rquadto
+90 0 rlineto
+1 3 1 15 rquadto
+0 10 0 26 rquadto
+1 14 3 57 rquadto
+1 0 rlineto
+31 -62 70 -85 rquadto
+40 -25 100 -25 rquadto
+65 0 103 26 rquadto
+39 26 54 84 rquadto
+1 0 rlineto
+29 -59 71 -84 rquadto
+43 -26 103 -26 rquadto
+89 0 128 48 rquadto
+40 46 40 156 rquadto
+0 387 rlineto
+-95 0 rlineto
+0 -368 rlineto
+0 -84 -23 -115 rquadto
+-23 -32 -82 -32 rquadto
+-64 0 -100 46 rquadto
+-34 46 -34 132 rquadto
+0 337 rlineto
+-95 0 rlineto
+} def
+/P$19 {
+-34 0 -51 37 rquadto
+-17 37 -17 134 rquadto
+126 0 rlineto
+0 -78 -4 -109 rquadto
+-4 -32 -18 -46 rquadto
+-12 -15 -34 -15 rquadto
+} def
+/P$3q {
+103 15 rlineto
+0 28 rlineto
+-309 0 rlineto
+0 -28 rlineto
+101 -15 rlineto
+0 -814 rlineto
+-101 -15 rlineto
+0 -28 rlineto
+206 0 rlineto
+0 857 rlineto
+} def
+/P$1r {
+-46 14 -96 14 rquadto
+-115 0 -115 -132 rquadto
+0 -387 rlineto
+-67 0 rlineto
+0 -70 rlineto
+70 0 rlineto
+28 -129 rlineto
+65 0 rlineto
+0 129 rlineto
+106 0 rlineto
+0 70 rlineto
+-106 0 rlineto
+0 367 rlineto
+0 42 12 59 rquadto
+14 15 48 15 rquadto
+18 0 54 -6 rquadto
+0 70 rlineto
+} def
+/P$1o {
+-125 0 -195 81 rquadto
+-70 81 -70 221 rquadto
+0 139 73 223 rquadto
+73 84 196 84 rquadto
+159 0 239 -157 rquadto
+84 42 rlineto
+-46 98 -132 150 rquadto
+-84 50 -195 50 rquadto
+-114 0 -198 -46 rquadto
+-82 -48 -126 -135 rquadto
+-43 -89 -43 -209 rquadto
+0 -181 96 -284 rquadto
+98 -103 271 -103 rquadto
+120 0 201 48 rquadto
+81 46 118 139 rquadto
+-96 32 rlineto
+-26 -65 -85 -100 rquadto
+-57 -35 -137 -35 rquadto
+} def
+/P$2z {
+0 -121 -32 -173 rquadto
+-32 -53 -104 -53 rquadto
+-56 0 -89 25 rquadto
+-32 23 -50 75 rquadto
+-17 51 -17 132 rquadto
+0 115 35 170 rquadto
+37 53 120 53 rquadto
+71 0 104 -53 rquadto
+32 -53 32 -176 rquadto
+} def
+/P$6 {
+0 9 rlineto
+0 67 14 104 rquadto
+15 37 46 57 rquadto
+31 18 81 18 rquadto
+26 0 62 -4 rquadto
+35 -4 59 -9 rquadto
+0 26 rlineto
+-23 15 -64 26 rquadto
+-39 10 -81 10 rquadto
+-107 0 -157 -57 rquadto
+-48 -57 -48 -184 rquadto
+0 -120 50 -179 rquadto
+50 -59 143 -59 rquadto
+176 0 176 201 rquadto
+0 39 rlineto
+-282 0 rlineto
+closepath
+} def
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3720 2533 moveto
+P$0
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4662 2302 moveto
+P$1
+4573 2302 moveto
+P$2
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11603 2533 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12203 2402 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20020 2549 moveto
+P$5
+20376 2302 moveto
+P$6
+20482 2100 moveto
+P$7
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+27603 2533 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28209 2038 moveto
+P$8
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+35757 2239 moveto
+P$9
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36475 2061 moveto
+P$a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+43567 2357 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44326 2064 moveto
+P$c
+44392 2299 moveto
+P$d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51517 2357 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52203 2402 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59720 2533 moveto
+P$0
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60662 2302 moveto
+P$1
+60573 2302 moveto
+P$2
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+67603 2533 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+68203 2402 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76020 2549 moveto
+P$5
+76376 2302 moveto
+P$6
+76482 2100 moveto
+P$7
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83603 2533 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84209 2038 moveto
+P$8
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91757 2239 moveto
+P$9
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92475 2061 moveto
+P$a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99567 2357 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100326 2064 moveto
+P$c
+100392 2299 moveto
+P$d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3960 3555 moveto
+P$e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4462 3403 moveto
+P$f
+4371 3403 moveto
+P$g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11960 3555 moveto
+P$e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12306 3694 moveto
+P$h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20056 3694 moveto
+P$h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28195 3733 moveto
+P$i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36210 3555 moveto
+P$j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44145 3589 moveto
+P$k
+44060 3189 moveto
+P$l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51987 3350 moveto
+P$m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60220 3530 moveto
+P$n
+60018 3705 moveto
+P$o
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+67848 3233 moveto
+P$p
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76192 3238 moveto
+P$q
+76123 3557 moveto
+P$r
+76104 3238 moveto
+P$s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83782 3278 moveto
+P$t
+83993 3110 moveto
+P$u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91806 3694 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92462 3403 moveto
+P$f
+92371 3403 moveto
+P$g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99806 3694 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100306 3694 moveto
+P$h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4793 392 moveto
+P$w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5420 557 moveto
+P$x
+5457 843 moveto
+P$y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5954 617 moveto
+P$z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+6812 1071 moveto
+P$10
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7420 557 moveto
+P$x
+7457 843 moveto
+P$y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7970 684 moveto
+P$11
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+8470 1137 moveto
+P$12
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9648 1120 moveto
+P$13
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10254 723 moveto
+P$14
+10082 723 moveto
+P$15
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10848 1120 moveto
+P$13
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11459 906 moveto
+P$16
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+56556 784 moveto
+P$17
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+57239 556 moveto
+P$18
+57232 615 moveto
+P$19
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+57896 829 moveto
+P$1a
+57521 339 moveto
+P$1b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+58420 684 moveto
+P$11
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59062 1071 moveto
+P$10
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59670 557 moveto
+P$x
+59707 843 moveto
+P$y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60220 684 moveto
+P$11
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60720 1137 moveto
+P$12
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+61898 1120 moveto
+P$13
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+62504 723 moveto
+P$14
+62332 723 moveto
+P$15
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+63098 1120 moveto
+P$13
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+63709 906 moveto
+P$16
+fill
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+0 4100 moveto
+0 40843 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+8000 4100 moveto
+0 40843 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+16000 4100 moveto
+0 40843 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+24000 4100 moveto
+0 40843 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+32000 4100 moveto
+0 40843 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+40000 4100 moveto
+0 40843 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+48000 4100 moveto
+0 40843 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+56000 4100 moveto
+0 40843 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+64000 4100 moveto
+0 40843 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+72000 4100 moveto
+0 40843 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+80000 4100 moveto
+0 40843 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+88000 4100 moveto
+0 40843 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+96000 4100 moveto
+0 40843 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+104000 4100 moveto
+0 40843 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+0 4100 moveto
+104000 0 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+0 44943 moveto
+104000 0 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+12000 8829 moveto
+0 1032 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+12000 9862 moveto
+3900 0 rlineto
+stroke
+0.09 0.09 0.09 setrgbcolor
+newpath
+15500 9462 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+15500 9462 lineto
+closepath eofill
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+15500 9462 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+15500 9462 lineto
+closepath stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+4000 13824 moveto
+0 1032 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+4000 14856 moveto
+3900 0 rlineto
+stroke
+0.09 0.09 0.09 setrgbcolor
+newpath
+7500 14456 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+7500 14456 lineto
+closepath eofill
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+7500 14456 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+7500 14456 lineto
+closepath stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+12000 8829 moveto
+0 2697 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+12000 11527 moveto
+3900 0 rlineto
+stroke
+0.09 0.09 0.09 setrgbcolor
+newpath
+15500 11127 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+15500 11127 lineto
+closepath eofill
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+15500 11127 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+15500 11127 lineto
+closepath stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+36000 15489 moveto
+0 2697 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+36000 18186 moveto
+3900 0 rlineto
+stroke
+0.09 0.09 0.09 setrgbcolor
+newpath
+39500 17786 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+39500 17786 lineto
+closepath eofill
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+39500 17786 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+39500 17786 lineto
+closepath stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+36000 15489 moveto
+0 1032 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+36000 16521 moveto
+3900 0 rlineto
+stroke
+0.09 0.09 0.09 setrgbcolor
+newpath
+39500 16121 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+39500 16121 lineto
+closepath eofill
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+39500 16121 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+39500 16121 lineto
+closepath stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+68000 18819 moveto
+0 1032 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+68000 19851 moveto
+3900 0 rlineto
+stroke
+0.09 0.09 0.09 setrgbcolor
+newpath
+71500 19451 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+71500 19451 lineto
+closepath eofill
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+71500 19451 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+71500 19451 lineto
+closepath stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+68000 18819 moveto
+0 2697 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+68000 21516 moveto
+3900 0 rlineto
+stroke
+0.09 0.09 0.09 setrgbcolor
+newpath
+71500 21116 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+71500 21116 lineto
+closepath eofill
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+71500 21116 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+71500 21116 lineto
+closepath stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+68000 18819 moveto
+0 9292 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+68000 28111 moveto
+3900 0 rlineto
+stroke
+0.09 0.09 0.09 setrgbcolor
+newpath
+71500 27711 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+71500 27711 lineto
+closepath eofill
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+71500 27711 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+71500 27711 lineto
+closepath stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+0 5732 moveto
+500 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+5800 5732 moveto
+98100 0 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+15600 1264 200 7564 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 7564 moveto
+15600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 8829 moveto
+15600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 7564 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+15800 7564 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+15600 1264 16200 9229 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+16200 9229 moveto
+15600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+16200 10494 moveto
+15600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+16200 9229 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+31800 9229 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+31600 1264 16200 10894 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+16200 10894 moveto
+31600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+16200 12159 moveto
+31600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+16200 10894 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+47800 10894 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+7600 1264 200 12559 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 12559 moveto
+7600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 13824 moveto
+7600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 12559 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+7800 12559 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+31600 1264 8200 14224 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+8200 14224 moveto
+31600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+8200 15489 moveto
+31600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+8200 14224 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+39800 14224 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+23600 1264 40200 15889 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+40200 15889 moveto
+23600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+40200 17154 moveto
+23600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+40200 15889 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+63800 15889 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+31600 1264 40200 17554 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+40200 17554 moveto
+31600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+40200 18819 moveto
+31600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+40200 17554 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+71800 17554 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+31600 1264 72200 19219 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+72200 19219 moveto
+31600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+72200 20484 moveto
+31600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+72200 19219 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+103800 19219 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+15600 1264 72200 20884 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+72200 20884 moveto
+15600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+72200 22148 moveto
+15600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+72200 20884 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+87800 20884 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+0 23981 moveto
+500 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+5900 23981 moveto
+98000 0 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+39600 1264 200 25813 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 25813 moveto
+39600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 27078 moveto
+39600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 25813 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+39800 25813 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+15600 1264 72200 27478 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+72200 27478 moveto
+15600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+72200 28743 moveto
+15600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+72200 27478 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+87800 27478 moveto
+0 1264 rlineto
+stroke
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1675 5919 moveto
+P$1c
+1528 5570 moveto
+P$1d
+1571 5909 moveto
+P$1e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1921 6142 moveto
+P$1f
+1943 6069 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2448 5838 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3339 6131 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3648 5861 moveto
+P$1j
+3962 5788 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4543 6131 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5140 6038 moveto
+P$1m
+4848 5841 moveto
+P$1n
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1025 7912 moveto
+P$1o
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1965 8306 moveto
+P$1p
+1864 8306 moveto
+P$1q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2443 8596 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2896 8591 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2976 8596 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3865 8306 moveto
+P$1p
+3764 8306 moveto
+P$1q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3973 8596 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4173 8596 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4448 8326 moveto
+P$1j
+4762 8252 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4976 8596 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5348 8346 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+6382 8387 moveto
+P$1v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+6548 8302 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7170 8115 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7673 7891 moveto
+P$1x
+7673 8596 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7948 8302 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+8570 8115 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9296 8591 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9875 8824 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10101 8596 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10712 8596 moveto
+P$21
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11612 8596 moveto
+P$21
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12321 8607 moveto
+P$1f
+12343 8534 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+13143 8596 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+13468 8015 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+14048 8326 moveto
+P$1j
+14362 8252 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+14573 8596 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+14750 8756 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+32882 10052 moveto
+P$1v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+33048 9991 moveto
+P$1j
+33362 9917 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+33576 10261 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+34229 10261 moveto
+P$24
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+34573 9556 moveto
+P$1x
+34573 10261 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+34848 9967 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+35448 9991 moveto
+P$1j
+35762 9917 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+35948 10011 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36982 10052 moveto
+P$1v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+37148 9967 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+37770 9780 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+38273 9556 moveto
+P$1x
+38273 10261 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+38548 9967 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+39170 9780 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+39896 10256 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+40268 9975 moveto
+P$25
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+41342 9875 moveto
+P$26
+41239 9875 moveto
+P$27
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+41621 10272 moveto
+P$1f
+41643 10199 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+42296 10256 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+42448 9991 moveto
+P$1j
+42762 9917 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+43343 10261 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44240 10167 moveto
+P$1m
+43948 9970 moveto
+P$28
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44568 9680 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+45076 10261 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+45548 9967 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+46170 9780 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+46676 10261 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+47148 9991 moveto
+P$1j
+47462 9917 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+47673 9556 moveto
+P$1x
+47673 10261 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+47948 9967 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+48570 9780 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+49148 9991 moveto
+P$1j
+49462 9917 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+50043 10261 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+50498 9977 moveto
+P$29
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51175 10489 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52042 9875 moveto
+P$26
+51939 9875 moveto
+P$27
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52321 10272 moveto
+P$1f
+52343 10199 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+53143 10261 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+53373 9556 moveto
+P$1x
+53373 10261 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+53648 9991 moveto
+P$1j
+53962 9917 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+54173 10261 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+54350 10420 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+17226 11926 moveto
+P$2a
+16967 11246 moveto
+P$2b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+17468 11345 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+18196 11921 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+18370 11445 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+18948 11656 moveto
+P$1j
+19262 11582 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+19843 11926 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20296 11921 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20373 11221 moveto
+P$1x
+20373 11926 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20693 11415 moveto
+P$2c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20873 11221 moveto
+P$1x
+20873 11926 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+21045 11926 moveto
+P$2d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+21673 11221 moveto
+P$1x
+21673 11926 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+21948 11656 moveto
+P$1j
+22262 11582 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+22476 11926 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+22968 11345 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+23843 11926 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+24293 12154 moveto
+P$2e
+24442 11635 moveto
+P$2f
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+25175 12154 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+25354 11545 moveto
+P$2g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+26348 11656 moveto
+P$1j
+26662 11582 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+26876 11926 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+27765 11635 moveto
+P$1p
+27664 11635 moveto
+P$1q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+27850 12085 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+8934 13591 moveto
+P$2h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9665 13300 moveto
+P$1p
+9564 13300 moveto
+P$1q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10140 13497 moveto
+P$1m
+9848 13300 moveto
+P$28
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10448 13321 moveto
+P$1j
+10762 13247 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10973 13591 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11148 13341 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12175 13061 moveto
+P$2i
+12071 13063 moveto
+P$2j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12421 13602 moveto
+P$1f
+12443 13528 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+13239 13591 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+13548 13321 moveto
+P$1j
+13862 13247 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+14296 13586 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+14875 13819 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+15742 13205 moveto
+P$26
+15639 13205 moveto
+P$27
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+16021 13602 moveto
+P$1f
+16043 13528 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+16843 13591 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+17073 12886 moveto
+P$1x
+17073 13591 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+17348 13321 moveto
+P$1j
+17662 13247 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+17873 13591 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+18050 13750 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9342 14870 moveto
+P$26
+9239 14870 moveto
+P$27
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9621 15267 moveto
+P$1f
+9643 15193 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10296 15251 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10448 14985 moveto
+P$1j
+10762 14912 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11343 15256 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12065 14962 moveto
+P$2k
+11964 14965 moveto
+P$2l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12321 15267 moveto
+P$1f
+12343 15193 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+13143 15256 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+13739 15256 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+14421 15267 moveto
+P$1f
+14443 15193 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+14968 14675 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+15593 14745 moveto
+P$2c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+16210 15095 moveto
+P$2m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+16448 14985 moveto
+P$1j
+16762 14912 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+17196 15251 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+17245 15256 moveto
+P$2d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+17948 14985 moveto
+P$1j
+18262 14912 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+18843 15256 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+19575 15484 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+19801 15256 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20412 15256 moveto
+P$21
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+21312 15256 moveto
+P$21
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+22021 15267 moveto
+P$1f
+22043 15193 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+22843 15256 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+23168 14675 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+23748 14985 moveto
+P$1j
+24062 14912 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+24273 15256 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+24450 15415 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+40992 16932 moveto
+P$2n
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+41696 16916 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+41773 16216 moveto
+P$1x
+41773 16921 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+41973 16921 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+42148 16671 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+43175 16391 moveto
+P$2i
+43071 16393 moveto
+P$2j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+43421 16932 moveto
+P$1f
+43443 16858 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44239 16921 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44548 16650 moveto
+P$1j
+44862 16577 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+45296 16916 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+45668 16635 moveto
+P$25
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+46625 16921 moveto
+P$2o
+46610 16382 moveto
+P$2p
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+47482 16711 moveto
+P$1v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+48182 16711 moveto
+P$1v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+48875 16391 moveto
+P$2i
+48771 16393 moveto
+P$2j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+49121 16932 moveto
+P$1f
+49143 16858 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+49576 16921 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+50410 16760 moveto
+P$2m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+50648 16650 moveto
+P$1j
+50962 16577 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51176 16921 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51798 16636 moveto
+P$29
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52475 17149 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+53342 16535 moveto
+P$26
+53239 16535 moveto
+P$27
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+53621 16932 moveto
+P$1f
+53643 16858 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+54443 16921 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+54673 16216 moveto
+P$1x
+54673 16921 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+54948 16650 moveto
+P$1j
+55262 16577 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+55473 16921 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+55650 17080 moveto
+P$2q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+56575 17149 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+56790 16921 moveto
+P$2r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+57468 16339 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+58339 16921 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+58721 16932 moveto
+P$1f
+58743 16858 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59610 16760 moveto
+P$2m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59750 17080 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+41342 18200 moveto
+P$26
+41239 18200 moveto
+P$27
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+41621 18596 moveto
+P$1f
+41643 18523 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+42296 18581 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+42521 18596 moveto
+P$1f
+42543 18523 moveto
+P$2s
+43526 18586 moveto
+P$2a
+43267 17906 moveto
+P$2b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+43748 18292 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44348 18292 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44948 18315 moveto
+P$1j
+45262 18242 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+45910 18425 moveto
+P$2m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+46510 18425 moveto
+P$2m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+46648 18336 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+47682 18376 moveto
+P$1v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+47848 18292 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+48470 18104 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+48973 17881 moveto
+P$1x
+48973 18586 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+49248 18292 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+49870 18104 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+50596 18581 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51175 18814 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51401 18586 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52012 18586 moveto
+P$21
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52912 18586 moveto
+P$21
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+53621 18596 moveto
+P$1f
+53643 18523 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+54443 18586 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+54768 18004 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+55348 18315 moveto
+P$1j
+55662 18242 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+55873 18586 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+56050 18745 moveto
+P$2q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+56975 18814 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+57345 18596 moveto
+P$2t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+57868 18004 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+58373 18586 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+58573 17881 moveto
+P$1x
+58573 18586 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+58868 18004 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59810 18425 moveto
+P$2m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59950 18745 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+73282 20041 moveto
+P$1v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+73448 19980 moveto
+P$1j
+73762 19907 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+73976 20250 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+74629 20250 moveto
+P$24
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+74973 19546 moveto
+P$1x
+74973 20250 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+75248 19957 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+75848 19980 moveto
+P$1j
+76162 19907 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76348 20000 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+77382 20041 moveto
+P$1v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+77548 19957 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+78170 19769 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+78673 19546 moveto
+P$1x
+78673 20250 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+78948 19957 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+79570 19769 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+80296 20246 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+80668 19964 moveto
+P$25
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+81054 19869 moveto
+P$2g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+82048 19980 moveto
+P$1j
+82362 19907 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83010 20089 moveto
+P$2m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83248 19957 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83870 19769 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84521 20261 moveto
+P$1f
+84543 20188 moveto
+P$2s
+84662 19596 moveto
+P$2u
+84450 19596 moveto
+P$2v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+85093 19739 moveto
+P$2c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+85496 20246 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+86010 20089 moveto
+P$2m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+86173 20250 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+86865 19960 moveto
+P$1p
+86764 19960 moveto
+P$1q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+87193 20479 moveto
+P$2e
+87342 19960 moveto
+P$2f
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+87573 19546 moveto
+P$1x
+87573 20250 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+88139 20250 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+88598 19966 moveto
+P$29
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+89275 20479 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+90142 19864 moveto
+P$26
+90039 19864 moveto
+P$27
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+90421 20261 moveto
+P$1f
+90443 20188 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91243 20250 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91473 19546 moveto
+P$1x
+91473 20250 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91748 19980 moveto
+P$1j
+92062 19907 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92273 20250 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92450 20410 moveto
+P$2q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+93375 20479 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+93601 20250 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+94212 20250 moveto
+P$21
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+95112 20250 moveto
+P$21
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+95821 20261 moveto
+P$1f
+95843 20188 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+96643 20250 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+96968 19669 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+97548 19980 moveto
+P$1j
+97862 19907 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+98073 20250 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+98250 20410 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+88592 21926 moveto
+P$2n
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+89296 21911 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+89373 21211 moveto
+P$1x
+89373 21915 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+89573 21915 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+89748 21665 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+90775 21386 moveto
+P$2i
+90671 21387 moveto
+P$2j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91021 21926 moveto
+P$1f
+91043 21853 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91839 21915 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92148 21645 moveto
+P$1j
+92462 21572 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92896 21911 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+93268 21629 moveto
+P$25
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+94025 21231 moveto
+P$1o
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+94473 21915 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+94748 21645 moveto
+P$1j
+95062 21572 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+95421 21926 moveto
+P$1f
+95443 21853 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+96243 21915 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+96825 21231 moveto
+P$1o
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+97276 21915 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+98165 21625 moveto
+P$1p
+98064 21625 moveto
+P$1q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+98643 21915 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99045 21926 moveto
+P$2t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99965 21625 moveto
+P$1p
+99864 21625 moveto
+P$1q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100565 21622 moveto
+P$2k
+100464 21625 moveto
+P$2l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100898 21631 moveto
+P$29
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+101575 22143 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+101945 21926 moveto
+P$2t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+102468 21334 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+102973 21915 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+103173 21211 moveto
+P$1x
+103173 21915 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+103468 21334 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+104410 21754 moveto
+P$2m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+104550 22075 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1192 23707 moveto
+P$2w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1776 24380 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2665 24090 moveto
+P$1p
+2564 24090 moveto
+P$1q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3143 24380 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3596 24376 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3748 24110 moveto
+P$1j
+4062 24036 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4643 24380 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5240 24286 moveto
+P$1m
+4948 24090 moveto
+P$1n
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1193 26845 moveto
+P$2x
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1865 26554 moveto
+P$1p
+1764 26554 moveto
+P$1q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2312 26845 moveto
+P$21
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3365 26551 moveto
+P$2y
+3264 26554 moveto
+P$2z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3965 26554 moveto
+P$1p
+3864 26554 moveto
+P$1q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4443 26845 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4748 26575 moveto
+P$1j
+5062 26501 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5643 26845 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+6096 26840 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+6248 26575 moveto
+P$1j
+6562 26501 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7143 26845 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7875 27073 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+8054 26464 moveto
+P$2g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9048 26575 moveto
+P$1j
+9362 26501 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9576 26845 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10465 26554 moveto
+P$1p
+10364 26554 moveto
+P$1q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10550 27004 moveto
+P$2q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11475 27073 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11845 26856 moveto
+P$2t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12368 26264 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12873 26845 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+13073 26140 moveto
+P$1x
+13073 26845 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+13368 26264 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+14310 26684 moveto
+P$2m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+14450 27004 moveto
+P$2q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+15375 27073 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+15590 26845 moveto
+P$2r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+16268 26264 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+17139 26845 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+17521 26856 moveto
+P$1f
+17543 26783 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+18410 26684 moveto
+P$2m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+18550 27004 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+88826 28510 moveto
+P$2a
+88567 27830 moveto
+P$2b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+89575 27980 moveto
+P$2i
+89471 27982 moveto
+P$2j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+89701 28510 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+89948 28260 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+90926 28510 moveto
+P$2a
+90667 27830 moveto
+P$2b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91443 28510 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92165 28216 moveto
+P$2k
+92064 28219 moveto
+P$2l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92273 27805 moveto
+P$1x
+92273 28510 moveto
+P$1y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92843 28510 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+93440 28416 moveto
+P$1m
+93148 28219 moveto
+P$28
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+93768 27929 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+94643 28510 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+95093 28738 moveto
+P$2e
+95242 28219 moveto
+P$2f
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+95975 28738 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+96154 28129 moveto
+P$2g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+97148 28240 moveto
+P$1j
+97462 28166 moveto
+P$1k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+97676 28510 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+98565 28219 moveto
+P$1p
+98464 28219 moveto
+P$1q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+98650 28669 moveto
+P$2q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99575 28738 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99790 28510 moveto
+P$2r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100468 27929 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+101339 28510 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+101721 28521 moveto
+P$1f
+101743 28447 moveto
+P$1g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+102610 28349 moveto
+P$2m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+102750 28669 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+278 30105 moveto
+P$30
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+606 29608 moveto
+P$31
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1606 29608 moveto
+P$31
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2695 29547 moveto
+P$32
+2779 29852 moveto
+P$33
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3206 29608 moveto
+P$34
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3898 29986 moveto
+P$35
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4565 29857 moveto
+P$36
+4703 29594 moveto
+P$37
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5232 30113 moveto
+P$38
+fill
+100 setlinewidth
+0 0 0 setrgbcolor
+newpath
+0 30438 moveto
+104000 0 rlineto
+stroke
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3525 31347 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4165 31086 moveto
+P$3a
+4084 31086 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4665 31086 moveto
+P$3a
+4584 31086 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+11650 31383 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+12165 31086 moveto
+P$3a
+12084 31086 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+12665 31086 moveto
+P$3a
+12584 31086 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+19525 31347 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20165 31086 moveto
+P$3a
+20084 31086 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20665 31086 moveto
+P$3a
+20584 31086 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+27525 31347 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28165 31086 moveto
+P$3a
+28084 31086 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28665 31086 moveto
+P$3a
+28584 31086 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+35525 31347 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36165 31086 moveto
+P$3a
+36084 31086 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36665 31086 moveto
+P$3a
+36584 31086 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+43525 31347 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44165 31086 moveto
+P$3a
+44084 31086 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44665 31086 moveto
+P$3a
+44584 31086 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51525 31347 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52165 31086 moveto
+P$3a
+52084 31086 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52665 31086 moveto
+P$3a
+52584 31086 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59525 31347 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60165 31086 moveto
+P$3a
+60084 31086 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60665 31086 moveto
+P$3a
+60584 31086 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+67525 31347 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+68165 31086 moveto
+P$3a
+68084 31086 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+68665 31086 moveto
+P$3a
+68584 31086 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+75525 31347 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76165 31086 moveto
+P$3a
+76084 31086 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76665 31086 moveto
+P$3a
+76584 31086 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83525 31347 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84165 31086 moveto
+P$3a
+84084 31086 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84665 31086 moveto
+P$3a
+84584 31086 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91525 31347 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92165 31086 moveto
+P$3a
+92084 31086 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92665 31086 moveto
+P$3a
+92584 31086 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99525 31347 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100165 31086 moveto
+P$3a
+100084 31086 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100665 31086 moveto
+P$3a
+100584 31086 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+754 32926 moveto
+P$3e
+423 32505 moveto
+P$3f
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1195 32747 moveto
+P$32
+1279 33052 moveto
+P$33
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1706 32808 moveto
+P$34
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2440 32565 moveto
+P$3g
+2434 33313 moveto
+P$3h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2765 33057 moveto
+P$36
+2903 32794 moveto
+P$37
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3432 33313 moveto
+P$38
+fill
+100 setlinewidth
+0 0 0 setrgbcolor
+newpath
+0 33638 moveto
+104000 0 rlineto
+stroke
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3525 34547 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4165 34286 moveto
+P$3a
+4084 34286 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4665 34286 moveto
+P$3a
+4584 34286 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+19525 34547 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20165 34286 moveto
+P$3a
+20084 34286 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20665 34286 moveto
+P$3a
+20584 34286 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+27525 34547 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28165 34286 moveto
+P$3a
+28084 34286 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28665 34286 moveto
+P$3a
+28584 34286 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+43525 34547 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44165 34286 moveto
+P$3a
+44084 34286 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44665 34286 moveto
+P$3a
+44584 34286 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51525 34547 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52165 34286 moveto
+P$3a
+52084 34286 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52665 34286 moveto
+P$3a
+52584 34286 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59525 34547 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60165 34286 moveto
+P$3a
+60084 34286 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60665 34286 moveto
+P$3a
+60584 34286 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+75525 34547 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76165 34286 moveto
+P$3a
+76084 34286 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76665 34286 moveto
+P$3a
+76584 34286 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83525 34547 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84165 34286 moveto
+P$3a
+84084 34286 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84665 34286 moveto
+P$3a
+84584 34286 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91525 34547 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92165 34286 moveto
+P$3a
+92084 34286 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92665 34286 moveto
+P$3a
+92584 34286 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99525 34547 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100165 34286 moveto
+P$3a
+100084 34286 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100665 34286 moveto
+P$3a
+100584 34286 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+815 36513 moveto
+P$3i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1065 36257 moveto
+P$36
+1203 35994 moveto
+P$37
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1921 35944 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2500 36255 moveto
+P$3k
+2385 36255 moveto
+P$3l
+fill
+100 setlinewidth
+0 0 0 setrgbcolor
+newpath
+0 36838 moveto
+104000 0 rlineto
+stroke
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3525 37747 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4165 37486 moveto
+P$3a
+4084 37486 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4665 37486 moveto
+P$3a
+4584 37486 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11525 37747 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12165 37486 moveto
+P$3a
+12084 37486 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12665 37486 moveto
+P$3a
+12584 37486 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+19650 37783 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+20165 37486 moveto
+P$3a
+20084 37486 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+20665 37486 moveto
+P$3a
+20584 37486 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+27650 37783 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+28165 37486 moveto
+P$3a
+28084 37486 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+28665 37486 moveto
+P$3a
+28584 37486 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+35650 37783 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+36165 37486 moveto
+P$3a
+36084 37486 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+36665 37486 moveto
+P$3a
+36584 37486 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+43525 37747 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44165 37486 moveto
+P$3a
+44084 37486 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44665 37486 moveto
+P$3a
+44584 37486 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+75525 37747 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76165 37486 moveto
+P$3a
+76084 37486 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76665 37486 moveto
+P$3a
+76584 37486 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83525 37747 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84165 37486 moveto
+P$3a
+84084 37486 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84665 37486 moveto
+P$3a
+84584 37486 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+400 38940 moveto
+P$3m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+998 39586 moveto
+P$35
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1718 39469 moveto
+P$3n
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2495 39147 moveto
+P$32
+2579 39452 moveto
+P$33
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3259 39590 moveto
+P$3o
+fill
+100 setlinewidth
+0 0 0 setrgbcolor
+newpath
+0 40038 moveto
+104000 0 rlineto
+stroke
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3525 40947 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4165 40686 moveto
+P$3a
+4084 40686 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4665 40686 moveto
+P$3a
+4584 40686 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11525 40947 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12165 40686 moveto
+P$3a
+12084 40686 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12665 40686 moveto
+P$3a
+12584 40686 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+19525 40947 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20165 40686 moveto
+P$3a
+20084 40686 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20665 40686 moveto
+P$3a
+20584 40686 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+27525 40947 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28165 40686 moveto
+P$3a
+28084 40686 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28665 40686 moveto
+P$3a
+28584 40686 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+35525 40947 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36165 40686 moveto
+P$3a
+36084 40686 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36665 40686 moveto
+P$3a
+36584 40686 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+43525 40947 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44165 40686 moveto
+P$3a
+44084 40686 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44665 40686 moveto
+P$3a
+44584 40686 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51525 40947 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52165 40686 moveto
+P$3a
+52084 40686 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52665 40686 moveto
+P$3a
+52584 40686 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59525 40947 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60165 40686 moveto
+P$3a
+60084 40686 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60665 40686 moveto
+P$3a
+60584 40686 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+75525 40947 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76165 40686 moveto
+P$3a
+76084 40686 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76665 40686 moveto
+P$3a
+76584 40686 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83525 40947 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84165 40686 moveto
+P$3a
+84084 40686 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84665 40686 moveto
+P$3a
+84584 40686 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+260 42155 moveto
+P$3p
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+698 42786 moveto
+P$35
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1432 42913 moveto
+P$3q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1840 42165 moveto
+P$3g
+1834 42913 moveto
+P$3h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2198 42786 moveto
+P$35
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3159 42790 moveto
+P$3o
+fill
+100 setlinewidth
+0 0 0 setrgbcolor
+newpath
+0 43238 moveto
+104000 0 rlineto
+stroke
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3525 44147 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4165 43886 moveto
+P$3a
+4084 43886 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4665 43886 moveto
+P$3a
+4584 43886 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11525 44147 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12165 43886 moveto
+P$3a
+12084 43886 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12665 43886 moveto
+P$3a
+12584 43886 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+19525 44147 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20165 43886 moveto
+P$3a
+20084 43886 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20665 43886 moveto
+P$3a
+20584 43886 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+27525 44147 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28165 43886 moveto
+P$3a
+28084 43886 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28665 43886 moveto
+P$3a
+28584 43886 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+35525 44147 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36165 43886 moveto
+P$3a
+36084 43886 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36665 43886 moveto
+P$3a
+36584 43886 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+43525 44147 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44165 43886 moveto
+P$3a
+44084 43886 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44665 43886 moveto
+P$3a
+44584 43886 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51525 44147 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52165 43886 moveto
+P$3a
+52084 43886 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52665 43886 moveto
+P$3a
+52584 43886 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59525 44147 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60165 43886 moveto
+P$3a
+60084 43886 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60665 43886 moveto
+P$3a
+60584 43886 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+67525 44147 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+68165 43886 moveto
+P$3a
+68084 43886 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+68665 43886 moveto
+P$3a
+68584 43886 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+75525 44147 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76165 43886 moveto
+P$3a
+76084 43886 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76665 43886 moveto
+P$3a
+76584 43886 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83525 44147 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84165 43886 moveto
+P$3a
+84084 43886 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84665 43886 moveto
+P$3a
+84584 43886 moveto
+P$3c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3960 46899 moveto
+P$e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4462 46747 moveto
+P$f
+4371 46747 moveto
+P$g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11960 46899 moveto
+P$e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12306 47038 moveto
+P$h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20056 47038 moveto
+P$h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28195 47077 moveto
+P$i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36210 46899 moveto
+P$j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44145 46933 moveto
+P$k
+44060 46533 moveto
+P$l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51987 46694 moveto
+P$m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60220 46874 moveto
+P$n
+60018 47049 moveto
+P$o
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+67848 46577 moveto
+P$p
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76192 46581 moveto
+P$q
+76123 46900 moveto
+P$r
+76104 46581 moveto
+P$s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83782 46622 moveto
+P$t
+83993 46453 moveto
+P$u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91806 47038 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92462 46747 moveto
+P$f
+92371 46747 moveto
+P$g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99806 47038 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100306 47038 moveto
+P$h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3720 45877 moveto
+P$0
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4662 45645 moveto
+P$1
+4573 45645 moveto
+P$2
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11603 45877 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12203 45745 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20020 45892 moveto
+P$5
+20376 45645 moveto
+P$6
+20482 45444 moveto
+P$7
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+27603 45877 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28209 45381 moveto
+P$8
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+35757 45583 moveto
+P$9
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36475 45405 moveto
+P$a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+43567 45700 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44326 45408 moveto
+P$c
+44392 45642 moveto
+P$d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51517 45700 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52203 45745 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59720 45877 moveto
+P$0
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60662 45645 moveto
+P$1
+60573 45645 moveto
+P$2
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+67603 45877 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+68203 45745 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76020 45892 moveto
+P$5
+76376 45645 moveto
+P$6
+76482 45444 moveto
+P$7
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83603 45877 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84209 45381 moveto
+P$8
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91757 45583 moveto
+P$9
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92475 45405 moveto
+P$a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99567 45700 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100326 45408 moveto
+P$c
+100392 45642 moveto
+P$d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4793 47735 moveto
+P$w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5420 47901 moveto
+P$x
+5457 48187 moveto
+P$y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5954 47960 moveto
+P$z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+6812 48415 moveto
+P$10
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7420 47901 moveto
+P$x
+7457 48187 moveto
+P$y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7970 48027 moveto
+P$11
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+8470 48481 moveto
+P$12
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9648 48463 moveto
+P$13
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10254 48067 moveto
+P$14
+10082 48067 moveto
+P$15
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10848 48463 moveto
+P$13
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11459 48249 moveto
+P$16
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+56556 48127 moveto
+P$17
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+57239 47899 moveto
+P$18
+57232 47959 moveto
+P$19
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+57896 48173 moveto
+P$1a
+57521 47682 moveto
+P$1b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+58420 48027 moveto
+P$11
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59062 48415 moveto
+P$10
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59670 47901 moveto
+P$x
+59707 48187 moveto
+P$y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60220 48027 moveto
+P$11
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60720 48481 moveto
+P$12
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+61898 48463 moveto
+P$13
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+62504 48067 moveto
+P$14
+62332 48067 moveto
+P$15
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+63098 48463 moveto
+P$13
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+63709 48249 moveto
+P$16
+fill
+grestore
+showpage
+%plantuml done
+%%EOF
diff --git a/20-implementierungsheft/assets/gantt-plan.pdf b/20-implementierungsheft/assets/gantt-plan.pdf
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/20-implementierungsheft/assets/gantt-plan.pdf
diff --git a/20-implementierungsheft/assets/gantt-reality-eps-converted-to.pdf b/20-implementierungsheft/assets/gantt-reality-eps-converted-to.pdf
new file mode 100644
index 0000000..5379947
--- /dev/null
+++ b/20-implementierungsheft/assets/gantt-reality-eps-converted-to.pdf
Binary files differ
diff --git a/20-implementierungsheft/assets/gantt-reality.eps b/20-implementierungsheft/assets/gantt-reality.eps
new file mode 100644
index 0000000..435dbb1
--- /dev/null
+++ b/20-implementierungsheft/assets/gantt-reality.eps
@@ -0,0 +1,11142 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%Creator: PlantUML v1.2023.0
+%%Title: noTitle
+%%BoundingBox: 0 0 2081 554
+%%ColorUsage: Color
+%%Origin: 0 0
+%%EndComments
+
+gsave
+0 554 translate
+.01 -.01 scale
+/simplerect {
+newpath moveto 1 index 0 rlineto
+0 exch rlineto
+neg 0 rlineto
+} def
+/rquadto {
+3 index 3 index 4 2 roll rcurveto
+} def
+/P$h {
+134 12 rlineto
+0 26 rlineto
+-353 0 rlineto
+0 -26 rlineto
+134 -12 rlineto
+0 -534 rlineto
+-131 46 rlineto
+0 -25 rlineto
+190 -109 rlineto
+25 0 rlineto
+0 621 rlineto
+closepath
+} def
+/P$1e {
+0 -60 -42 -87 rquadto
+-40 -26 -120 -26 rquadto
+-173 0 rlineto
+0 240 rlineto
+173 0 rlineto
+81 0 121 -31 rquadto
+40 -31 40 -95 rquadto
+closepath
+} def
+/P$32 {
+109 17 rlineto
+0 34 rlineto
+-340 0 rlineto
+0 -34 rlineto
+109 -17 rlineto
+0 -750 rlineto
+-109 -15 rlineto
+0 -34 rlineto
+340 0 rlineto
+0 34 rlineto
+-109 15 rlineto
+0 750 rlineto
+} def
+/P$k {
+0 143 rlineto
+-84 0 rlineto
+0 -143 rlineto
+-290 0 rlineto
+0 -65 rlineto
+318 -448 rlineto
+56 0 rlineto
+0 443 rlineto
+89 0 rlineto
+0 70 rlineto
+-89 0 rlineto
+closepath
+} def
+/P$a {
+0 125 rlineto
+-21 0 rlineto
+-28 -54 rlineto
+-25 0 -57 7 rquadto
+-32 6 -57 17 rquadto
+0 342 rlineto
+78 12 rlineto
+0 21 rlineto
+-217 0 rlineto
+0 -21 rlineto
+57 -12 rlineto
+0 -390 rlineto
+-57 -12 rlineto
+0 -21 rlineto
+132 0 rlineto
+4 57 rlineto
+29 -25 79 -46 rquadto
+50 -23 79 -23 rquadto
+7 0 rlineto
+closepath
+} def
+/P$1v {
+0 -85 rlineto
+268 0 rlineto
+0 85 rlineto
+-268 0 rlineto
+} def
+/P$2j {
+0 -65 -45 -100 rquadto
+-45 -35 -129 -35 rquadto
+-243 0 rlineto
+0 279 rlineto
+248 0 rlineto
+81 0 125 -37 rquadto
+45 -37 45 -106 rquadto
+} def
+/P$1j {
+-196 -265 rlineto
+-71 59 rlineto
+0 206 rlineto
+-96 0 rlineto
+0 -796 rlineto
+96 0 rlineto
+0 498 rlineto
+256 -282 rlineto
+112 0 rlineto
+-235 250 rlineto
+248 331 rlineto
+-112 0 rlineto
+} def
+/P$8 {
+0 51 -3 73 rquadto
+34 -20 78 -34 rquadto
+45 -15 76 -15 rquadto
+59 0 89 35 rquadto
+31 34 31 100 rquadto
+0 301 rlineto
+56 12 rlineto
+0 21 rlineto
+-198 0 rlineto
+0 -21 rlineto
+60 -12 rlineto
+0 -295 rlineto
+0 -84 -81 -84 rquadto
+-45 0 -109 14 rquadto
+0 365 rlineto
+62 12 rlineto
+0 21 rlineto
+-201 0 rlineto
+0 -21 rlineto
+57 -12 rlineto
+0 -626 rlineto
+-68 -10 rlineto
+0 -21 rlineto
+150 0 rlineto
+0 198 rlineto
+closepath
+} def
+/P$28 {
+0 -146 -175 -146 rquadto
+-204 0 rlineto
+0 298 rlineto
+207 0 rlineto
+171 0 171 -151 rquadto
+} def
+/P$y {
+206 0 206 151 rquadto
+0 357 rlineto
+54 14 rlineto
+0 39 rlineto
+-201 0 rlineto
+-14 -42 rlineto
+-45 31 -82 42 rquadto
+-35 12 -73 12 rquadto
+-170 0 -170 -165 rquadto
+0 -60 25 -98 rquadto
+25 -37 71 -54 rquadto
+48 -18 150 -20 rquadto
+71 -1 rlineto
+0 -81 rlineto
+0 -100 -81 -100 rquadto
+-50 0 -110 31 rquadto
+-21 68 rlineto
+-39 0 rlineto
+0 -132 rlineto
+89 -14 129 -17 rquadto
+42 -3 85 -3 rquadto
+closepath
+} def
+/P$3g {
+235 0 350 106 rquadto
+114 104 114 315 rquadto
+0 212 -110 323 rquadto
+-109 109 -326 109 rquadto
+-303 -3 rlineto
+-109 0 rlineto
+0 -34 rlineto
+109 -17 rlineto
+0 -750 rlineto
+-109 -15 rlineto
+0 -34 rlineto
+385 0 rlineto
+} def
+/P$1 {
+0 240 -215 240 rquadto
+-103 0 -156 -60 rquadto
+-53 -62 -53 -179 rquadto
+0 -117 53 -178 rquadto
+53 -62 160 -62 rquadto
+104 0 157 60 rquadto
+53 60 53 179 rquadto
+closepath
+} def
+/P$2x {
+0 281 rlineto
+423 0 rlineto
+0 85 rlineto
+-423 0 rlineto
+0 306 rlineto
+-101 0 rlineto
+0 -756 rlineto
+537 0 rlineto
+0 82 rlineto
+-435 0 rlineto
+} def
+/P$35 {
+-82 3 rlineto
+-85 3 -115 32 rquadto
+-29 29 -29 100 rquadto
+0 110 90 110 rquadto
+42 0 73 -9 rquadto
+32 -9 64 -25 rquadto
+0 -212 rlineto
+} def
+/P$2c {
+0 -121 -32 -173 rquadto
+-31 -53 -104 -53 rquadto
+-81 0 -118 56 rquadto
+-37 54 -37 176 rquadto
+0 114 35 168 rquadto
+37 54 120 54 rquadto
+71 0 104 -53 rquadto
+32 -54 32 -176 rquadto
+} def
+/P$1k {
+0 100 40 154 rquadto
+42 53 121 53 rquadto
+62 0 100 -25 rquadto
+37 -25 51 -64 rquadto
+84 25 rlineto
+-51 137 -235 137 rquadto
+-129 0 -196 -76 rquadto
+-67 -76 -67 -228 rquadto
+0 -145 67 -221 rquadto
+67 -76 192 -76 rquadto
+256 0 256 309 rquadto
+0 12 rlineto
+-414 0 rlineto
+closepath
+} def
+/P$1q {
+0 151 -67 226 rquadto
+-67 75 -195 75 rquadto
+-126 0 -192 -76 rquadto
+-64 -78 -64 -225 rquadto
+0 -301 259 -301 rquadto
+134 0 196 73 rquadto
+62 73 62 228 rquadto
+closepath
+} def
+/P$0 {
+-17 0 rlineto
+-239 -562 rlineto
+0 523 rlineto
+87 12 rlineto
+0 26 rlineto
+-223 0 rlineto
+0 -26 rlineto
+84 -12 rlineto
+0 -576 rlineto
+-84 -14 rlineto
+0 -25 rlineto
+198 0 rlineto
+214 498 rlineto
+231 -498 rlineto
+187 0 rlineto
+0 25 rlineto
+-82 14 rlineto
+0 576 rlineto
+82 12 rlineto
+0 26 rlineto
+-265 0 rlineto
+0 -26 rlineto
+89 -12 rlineto
+0 -523 rlineto
+-262 562 rlineto
+} def
+/P$37 {
+0 109 101 109 rquadto
+79 0 146 -20 rquadto
+0 -470 rlineto
+-89 -17 rlineto
+0 -28 rlineto
+193 0 rlineto
+0 553 rlineto
+76 15 rlineto
+0 28 rlineto
+-175 0 rlineto
+-4 -48 rlineto
+-45 25 -104 43 rquadto
+-57 17 -98 17 rquadto
+-151 0 -151 -175 rquadto
+0 -389 rlineto
+-76 -17 rlineto
+0 -28 rlineto
+181 0 rlineto
+0 426 rlineto
+} def
+/P$l {
+-1 0 rlineto
+-234 329 rlineto
+235 0 rlineto
+0 -329 rlineto
+closepath
+} def
+/P$1b {
+0 -109 -26 -159 rquadto
+-26 -50 -87 -50 rquadto
+-21 0 -48 4 rquadto
+-26 4 -43 14 rquadto
+0 421 rlineto
+37 9 92 9 rquadto
+57 0 85 -56 rquadto
+28 -56 28 -184 rquadto
+closepath
+} def
+/P$7 {
+-50 0 -78 42 rquadto
+-26 40 -26 120 rquadto
+196 0 rlineto
+0 -87 -23 -125 rquadto
+-21 -37 -68 -37 rquadto
+closepath
+} def
+/P$27 {
+0 107 -70 171 rquadto
+-68 62 -189 62 rquadto
+-223 0 rlineto
+0 295 rlineto
+-101 0 rlineto
+0 -756 rlineto
+318 0 rlineto
+126 0 195 59 rquadto
+70 59 70 167 rquadto
+closepath
+} def
+/P$m {
+112 0 167 46 rquadto
+56 45 56 140 rquadto
+0 98 -60 151 rquadto
+-59 53 -170 53 rquadto
+-93 0 -165 -20 rquadto
+-6 -137 rlineto
+32 0 rlineto
+21 90 rlineto
+21 12 51 20 rquadto
+29 6 57 6 rquadto
+76 0 112 -35 rquadto
+37 -35 37 -123 rquadto
+0 -59 -15 -90 rquadto
+-15 -31 -50 -45 rquadto
+-34 -15 -92 -15 rquadto
+-45 0 -87 12 rquadto
+-46 0 rlineto
+0 -325 rlineto
+332 0 rlineto
+0 75 rlineto
+-289 0 rlineto
+0 207 rlineto
+53 -10 114 -10 rquadto
+closepath
+} def
+/P$j {
+0 87 -60 137 rquadto
+-59 50 -170 50 rquadto
+-93 0 -176 -20 rquadto
+-4 -137 rlineto
+31 0 rlineto
+21 90 rlineto
+20 10 54 18 rquadto
+34 7 65 7 rquadto
+76 0 112 -34 rquadto
+37 -35 37 -117 rquadto
+0 -64 -34 -96 rquadto
+-34 -34 -104 -37 rquadto
+-70 -4 rlineto
+0 -40 rlineto
+70 -3 rlineto
+54 -3 81 -34 rquadto
+26 -31 26 -95 rquadto
+0 -65 -28 -95 rquadto
+-28 -31 -90 -31 rquadto
+-26 0 -54 7 rquadto
+-28 7 -50 18 rquadto
+-17 79 rlineto
+-32 0 rlineto
+0 -125 rlineto
+48 -12 82 -17 rquadto
+35 -4 71 -4 rquadto
+209 0 209 160 rquadto
+0 68 -37 109 rquadto
+-37 39 -106 50 rquadto
+89 9 131 50 rquadto
+42 40 42 114 rquadto
+closepath
+} def
+/P$2f {
+0 -73 rlineto
+325 -432 rlineto
+-307 0 rlineto
+0 -75 rlineto
+421 0 rlineto
+0 73 rlineto
+-326 432 rlineto
+337 0 rlineto
+0 75 rlineto
+-450 0 rlineto
+} def
+/P$2k {
+0 156 -48 279 rquadto
+-48 123 -150 232 rquadto
+-93 0 rlineto
+101 -112 148 -237 rquadto
+46 -125 46 -275 rquadto
+0 -150 -48 -275 rquadto
+-46 -125 -146 -237 rquadto
+93 0 rlineto
+101 109 150 232 rquadto
+48 123 48 278 rquadto
+0 1 rlineto
+} def
+/P$s {
+0 -67 -26 -98 rquadto
+-26 -32 -79 -32 rquadto
+-51 0 -78 31 rquadto
+-25 31 -25 100 rquadto
+0 68 25 98 rquadto
+25 28 78 28 rquadto
+54 0 79 -29 rquadto
+26 -29 26 -96 rquadto
+closepath
+} def
+/P$1o {
+0 121 31 175 rquadto
+32 51 104 51 rquadto
+82 0 118 -56 rquadto
+37 -57 37 -176 rquadto
+0 -115 -37 -168 rquadto
+-35 -54 -117 -54 rquadto
+-73 0 -106 54 rquadto
+-31 53 -31 175 rquadto
+closepath
+} def
+/P$1t {
+0 -445 rlineto
+0 -62 -3 -135 rquadto
+90 0 rlineto
+4 98 4 118 rquadto
+1 0 rlineto
+23 -75 53 -101 rquadto
+31 -28 85 -28 rquadto
+18 0 39 6 rquadto
+0 87 rlineto
+-20 -4 -51 -4 rquadto
+-60 0 -92 51 rquadto
+-31 51 -31 148 rquadto
+0 303 rlineto
+-96 0 rlineto
+} def
+/P$2n {
+-85 -221 rlineto
+-345 0 rlineto
+-87 221 rlineto
+-106 0 rlineto
+309 -756 rlineto
+117 0 rlineto
+303 756 rlineto
+-104 0 rlineto
+closepath
+} def
+/P$3n {
+-109 -15 rlineto
+0 -34 rlineto
+326 0 rlineto
+0 34 rlineto
+-95 15 rlineto
+0 526 rlineto
+0 85 -26 150 rquadto
+-26 64 -79 101 rquadto
+-53 35 -117 35 rquadto
+-81 0 -132 -18 rquadto
+0 -154 rlineto
+42 0 rlineto
+18 87 rlineto
+12 15 34 23 rquadto
+23 7 50 7 rquadto
+89 0 89 -120 rquadto
+0 -639 rlineto
+} def
+/P$21 {
+0 -756 rlineto
+103 0 rlineto
+0 756 rlineto
+-103 0 rlineto
+} def
+/P$1z {
+0 -581 rlineto
+96 0 rlineto
+0 581 rlineto
+-96 0 rlineto
+} def
+/P$3k {
+-131 15 rlineto
+0 746 rlineto
+168 0 rlineto
+134 0 198 -12 rquadto
+39 -176 rlineto
+40 0 rlineto
+-10 243 rlineto
+-667 0 rlineto
+0 -34 rlineto
+109 -17 rlineto
+0 -750 rlineto
+-109 -15 rlineto
+0 -34 rlineto
+362 0 rlineto
+0 34 rlineto
+} def
+/P$n {
+0 101 -51 157 rquadto
+-51 54 -148 54 rquadto
+-110 0 -168 -85 rquadto
+-57 -85 -57 -246 rquadto
+0 -104 29 -181 rquadto
+31 -78 85 -117 rquadto
+56 -40 128 -40 rquadto
+71 0 142 17 rquadto
+0 112 rlineto
+-31 0 rlineto
+-17 -65 rlineto
+-17 -9 -45 -15 rquadto
+-26 -7 -48 -7 rquadto
+-70 0 -110 70 rquadto
+-39 68 -43 201 rquadto
+79 -42 160 -42 rquadto
+85 0 131 48 rquadto
+45 48 45 140 rquadto
+closepath
+} def
+/P$11 {
+-39 20 rlineto
+-82 42 -148 42 rquadto
+-151 0 -151 -162 rquadto
+0 -350 rlineto
+-54 -14 rlineto
+0 -39 rlineto
+223 0 rlineto
+0 381 rlineto
+0 48 20 76 rquadto
+21 28 60 28 rquadto
+43 0 89 -20 rquadto
+0 -412 rlineto
+-51 -14 rlineto
+0 -39 rlineto
+220 0 rlineto
+0 498 rlineto
+54 14 rlineto
+0 39 rlineto
+-214 0 rlineto
+-9 -48 rlineto
+} def
+/P$3a {
+103 15 rlineto
+0 28 rlineto
+-309 0 rlineto
+0 -28 rlineto
+101 -15 rlineto
+0 -814 rlineto
+-101 -15 rlineto
+0 -28 rlineto
+206 0 rlineto
+0 857 rlineto
+closepath
+} def
+/P$4 {
+0 84 78 84 rquadto
+60 0 112 -15 rquadto
+0 -362 rlineto
+-68 -12 rlineto
+0 -21 rlineto
+150 0 rlineto
+0 425 rlineto
+57 12 rlineto
+0 21 rlineto
+-134 0 rlineto
+-3 -37 rlineto
+-34 18 -79 32 rquadto
+-45 14 -76 14 rquadto
+-117 0 -117 -134 rquadto
+0 -300 rlineto
+-59 -12 rlineto
+0 -21 rlineto
+140 0 rlineto
+0 328 rlineto
+closepath
+} def
+/P$14 {
+-498 0 rlineto
+0 -110 rlineto
+51 -53 93 -96 rquadto
+93 -92 135 -145 rquadto
+43 -53 64 -109 rquadto
+20 -57 20 -129 rquadto
+0 -64 -31 -103 rquadto
+-29 -39 -81 -39 rquadto
+-37 0 -59 7 rquadto
+-20 6 -39 21 rquadto
+-25 114 rlineto
+-51 0 rlineto
+0 -178 rlineto
+46 -10 92 -18 rquadto
+45 -7 96 -7 rquadto
+129 0 198 54 rquadto
+68 53 68 151 rquadto
+0 60 -20 110 rquadto
+-20 50 -65 98 rquadto
+-43 46 -175 154 rquadto
+-50 40 -109 92 rquadto
+385 0 rlineto
+0 132 rlineto
+} def
+/P$f {
+0 339 -215 339 rquadto
+-103 0 -156 -85 rquadto
+-53 -87 -53 -253 rquadto
+0 -162 53 -248 rquadto
+53 -87 160 -87 rquadto
+103 0 156 85 rquadto
+54 84 54 250 rquadto
+closepath
+} def
+/P$b {
+32 0 rlineto
+17 89 rlineto
+17 21 60 40 rquadto
+45 17 87 17 rquadto
+68 0 106 -34 rquadto
+39 -35 39 -96 rquadto
+0 -35 -15 -57 rquadto
+-14 -23 -39 -39 rquadto
+-23 -15 -54 -26 rquadto
+-29 -10 -62 -21 rquadto
+-32 -12 -64 -25 rquadto
+-29 -14 -54 -34 rquadto
+-23 -21 -39 -53 rquadto
+-14 -31 -14 -76 rquadto
+0 -78 57 -121 rquadto
+59 -45 162 -45 rquadto
+79 0 171 21 rquadto
+0 135 rlineto
+-31 0 rlineto
+-17 -79 rlineto
+-50 -37 -123 -37 rquadto
+-64 0 -101 28 rquadto
+-37 26 -37 73 rquadto
+0 31 14 53 rquadto
+15 20 39 35 rquadto
+25 14 56 25 rquadto
+31 10 64 21 rquadto
+32 10 62 26 rquadto
+31 14 54 35 rquadto
+25 21 39 54 rquadto
+15 31 15 78 rquadto
+0 95 -57 146 rquadto
+-57 51 -167 51 rquadto
+-53 0 -106 -9 rquadto
+-53 -9 -95 -25 rquadto
+0 -151 rlineto
+} def
+/P$2s {
+-93 0 -151 -37 rquadto
+-56 -37 -71 -106 rquadto
+96 -14 rlineto
+9 40 42 62 rquadto
+34 21 87 21 rquadto
+145 0 145 -168 rquadto
+0 -93 rlineto
+-1 0 rlineto
+-28 56 -76 84 rquadto
+-46 28 -110 28 rquadto
+-106 0 -156 -70 rquadto
+-50 -71 -50 -223 rquadto
+0 -154 53 -228 rquadto
+54 -73 164 -73 rquadto
+62 0 107 28 rquadto
+45 28 70 81 rquadto
+0 0 rlineto
+0 -17 1 -56 rquadto
+3 -40 4 -43 rquadto
+92 0 rlineto
+-3 29 -3 120 rquadto
+0 443 rlineto
+0 245 -243 245 rquadto
+closepath
+} def
+/P$1w {
+0 104 -82 162 rquadto
+-81 57 -229 57 rquadto
+-276 0 -320 -192 rquadto
+100 -20 rlineto
+17 68 71 101 rquadto
+56 31 153 31 rquadto
+98 0 151 -34 rquadto
+54 -34 54 -100 rquadto
+0 -37 -17 -60 rquadto
+-15 -23 -46 -37 rquadto
+-31 -15 -73 -25 rquadto
+-42 -10 -93 -21 rquadto
+-89 -20 -135 -40 rquadto
+-46 -20 -73 -43 rquadto
+-26 -25 -40 -57 rquadto
+-14 -32 -14 -75 rquadto
+0 -96 73 -150 rquadto
+75 -53 214 -53 rquadto
+128 0 195 40 rquadto
+68 39 96 134 rquadto
+-101 17 rlineto
+-15 -59 -62 -85 rquadto
+-46 -28 -129 -28 rquadto
+-90 0 -139 29 rquadto
+-46 29 -46 90 rquadto
+0 34 17 57 rquadto
+18 21 53 37 rquadto
+35 15 140 39 rquadto
+34 7 68 17 rquadto
+34 7 65 20 rquadto
+32 10 59 26 rquadto
+28 15 48 39 rquadto
+20 21 31 53 rquadto
+12 29 12 70 rquadto
+} def
+/P$1f {
+0 -132 -187 -132 rquadto
+-192 0 rlineto
+0 271 rlineto
+200 0 rlineto
+93 0 135 -34 rquadto
+43 -34 43 -104 rquadto
+} def
+/P$1d {
+0 100 -73 156 rquadto
+-73 56 -204 56 rquadto
+-306 0 rlineto
+0 -756 rlineto
+275 0 rlineto
+265 0 265 182 rquadto
+0 67 -37 114 rquadto
+-37 45 -106 60 rquadto
+90 9 139 59 rquadto
+48 50 48 126 rquadto
+closepath
+} def
+/P$9 {
+0 254 rlineto
+107 12 rlineto
+0 26 rlineto
+-279 0 rlineto
+0 -26 rlineto
+76 -12 rlineto
+0 -576 rlineto
+-84 -14 rlineto
+0 -25 rlineto
+492 0 rlineto
+0 156 rlineto
+-32 0 rlineto
+-15 -106 rlineto
+-54 -6 -157 -6 rquadto
+-106 0 rlineto
+0 273 rlineto
+192 0 rlineto
+15 -78 rlineto
+29 0 rlineto
+0 200 rlineto
+-29 0 rlineto
+-15 -78 rlineto
+-192 0 rlineto
+} def
+/P$1x {
+31 -57 75 -84 rquadto
+43 -26 110 -26 rquadto
+93 0 139 46 rquadto
+45 46 45 157 rquadto
+0 387 rlineto
+-96 0 rlineto
+0 -368 rlineto
+0 -60 -12 -90 rquadto
+-10 -29 -37 -43 rquadto
+-25 -14 -70 -14 rquadto
+-68 0 -109 46 rquadto
+-40 46 -40 128 rquadto
+0 342 rlineto
+-96 0 rlineto
+0 -796 rlineto
+96 0 rlineto
+0 207 rlineto
+0 32 -3 67 rquadto
+-1 34 -1 40 rquadto
+1 0 rlineto
+} def
+/P$1c {
+-56 -14 rlineto
+0 -37 rlineto
+225 0 rlineto
+0 201 rlineto
+0 54 -6 110 rquadto
+23 -18 67 -31 rquadto
+45 -14 87 -14 rquadto
+120 0 175 65 rquadto
+54 65 54 209 rquadto
+0 142 -70 223 rquadto
+-70 79 -198 79 rquadto
+-95 0 -278 -40 rquadto
+0 -753 rlineto
+} def
+/P$36 {
+48 -28 103 -45 rquadto
+56 -18 92 -18 rquadto
+78 0 117 45 rquadto
+39 45 39 129 rquadto
+0 393 rlineto
+71 15 rlineto
+0 28 rlineto
+-256 0 rlineto
+0 -28 rlineto
+79 -15 rlineto
+0 -381 rlineto
+0 -53 -26 -82 rquadto
+-25 -31 -79 -31 rquadto
+-56 0 -140 18 rquadto
+0 476 rlineto
+81 15 rlineto
+0 28 rlineto
+-257 0 rlineto
+0 -28 rlineto
+71 -15 rlineto
+0 -507 rlineto
+-71 -17 rlineto
+0 -28 rlineto
+170 0 rlineto
+6 48 rlineto
+} def
+/P$3s {
+0 -137 -40 -198 rquadto
+-39 -62 -123 -62 rquadto
+-84 0 -121 59 rquadto
+-35 59 -35 201 rquadto
+0 143 37 204 rquadto
+37 59 120 59 rquadto
+82 0 123 -62 rquadto
+40 -62 40 -201 rquadto
+closepath
+} def
+/P$13 {
+-220 -515 rlineto
+-37 -14 rlineto
+0 -39 rlineto
+281 0 rlineto
+0 39 rlineto
+-65 15 rlineto
+129 304 rlineto
+115 -306 rlineto
+-65 -14 rlineto
+0 -39 rlineto
+181 0 rlineto
+0 39 rlineto
+-40 12 rlineto
+-217 534 rlineto
+-37 95 -65 137 rquadto
+-28 43 -62 65 rquadto
+-34 21 -78 21 rquadto
+-46 0 -96 -10 rquadto
+0 -142 rlineto
+35 0 rlineto
+25 73 rlineto
+17 14 42 14 rquadto
+23 0 39 -10 rquadto
+17 -10 32 -31 rquadto
+15 -18 28 -48 rquadto
+14 -28 39 -85 rquadto
+} def
+/P$2d {
+0 510 rlineto
+-96 0 rlineto
+0 -510 rlineto
+-81 0 rlineto
+0 -70 rlineto
+81 0 rlineto
+0 -65 rlineto
+0 -79 34 -114 rquadto
+35 -34 107 -34 rquadto
+40 0 68 6 rquadto
+0 73 rlineto
+-25 -4 -43 -4 rquadto
+-37 0 -54 18 rquadto
+-15 18 -15 68 rquadto
+0 51 rlineto
+114 0 rlineto
+0 70 rlineto
+-114 0 rlineto
+} def
+/P$o {
+57 0 84 -39 rquadto
+26 -39 26 -126 rquadto
+0 -79 -25 -115 rquadto
+-25 -35 -79 -35 rquadto
+-67 0 -142 25 rquadto
+0 148 32 220 rquadto
+34 71 103 71 rquadto
+closepath
+} def
+/P$19 {
+112 0 162 59 rquadto
+50 59 50 185 rquadto
+0 48 rlineto
+-289 0 rlineto
+0 9 rlineto
+0 87 14 125 rquadto
+14 35 45 56 rquadto
+32 18 87 18 rquadto
+51 0 129 -17 rquadto
+0 45 rlineto
+-31 18 -82 31 rquadto
+-51 12 -100 12 rquadto
+-135 0 -201 -70 rquadto
+-64 -70 -64 -218 rquadto
+0 -143 60 -214 rquadto
+62 -71 187 -71 rquadto
+closepath
+} def
+/P$u {
+-121 0 -121 170 rquadto
+0 75 29 110 rquadto
+29 34 90 34 rquadto
+62 0 126 -25 rquadto
+0 -150 -29 -220 rquadto
+-29 -70 -95 -70 rquadto
+closepath
+} def
+/P$2t {
+0 -70 -20 -121 rquadto
+-18 -51 -54 -78 rquadto
+-34 -28 -79 -28 rquadto
+-73 0 -107 54 rquadto
+-32 53 -32 173 rquadto
+0 118 31 171 rquadto
+31 51 107 51 rquadto
+45 0 81 -26 rquadto
+35 -26 54 -76 rquadto
+20 -51 20 -120 rquadto
+} def
+/P$3e {
+0 -142 -26 -204 rquadto
+-26 -62 -85 -62 rquadto
+-56 0 -81 59 rquadto
+-25 59 -25 207 rquadto
+0 148 25 209 rquadto
+25 60 81 60 rquadto
+57 0 84 -62 rquadto
+28 -64 28 -207 rquadto
+closepath
+} def
+/P$g {
+0 -157 -29 -226 rquadto
+-29 -70 -95 -70 rquadto
+-62 0 -90 65 rquadto
+-28 65 -28 231 rquadto
+0 165 28 234 rquadto
+28 67 90 67 rquadto
+64 0 93 -70 rquadto
+31 -71 31 -231 rquadto
+closepath
+} def
+/P$20 {
+-67 0 -104 -42 rquadto
+-35 -40 -35 -115 rquadto
+0 -193 rlineto
+0 -62 -28 -92 rquadto
+-28 -31 -87 -34 rquadto
+0 -68 rlineto
+57 -1 85 -32 rquadto
+29 -31 29 -93 rquadto
+0 -193 rlineto
+0 -76 34 -117 rquadto
+35 -40 106 -40 rquadto
+73 0 rlineto
+0 68 rlineto
+-34 0 rlineto
+-48 0 -70 29 rquadto
+-20 28 -20 85 rquadto
+0 190 rlineto
+0 51 -28 89 rquadto
+-28 35 -75 46 rquadto
+0 1 rlineto
+46 10 75 48 rquadto
+28 35 28 87 rquadto
+0 192 rlineto
+0 56 20 85 rquadto
+21 29 70 29 rquadto
+34 0 rlineto
+0 68 rlineto
+-73 0 rlineto
+} def
+/P$p {
+-32 0 rlineto
+0 -154 rlineto
+406 0 rlineto
+0 37 rlineto
+-292 617 rlineto
+-64 0 rlineto
+287 -579 rlineto
+-287 0 rlineto
+-17 79 rlineto
+closepath
+} def
+/P$3p {
+-73 23 -153 40 rquadto
+-79 15 -171 15 rquadto
+-206 0 -321 -110 rquadto
+-115 -112 -115 -317 rquadto
+0 -223 112 -334 rquadto
+112 -110 328 -110 rquadto
+154 0 298 37 rquadto
+0 182 rlineto
+-42 0 rlineto
+-17 -104 rlineto
+-43 -31 -104 -46 rquadto
+-60 -17 -129 -17 rquadto
+-162 0 -237 96 rquadto
+-75 96 -75 295 rquadto
+0 187 76 284 rquadto
+78 96 229 96 rquadto
+53 0 110 -12 rquadto
+59 -12 90 -31 rquadto
+0 -242 rlineto
+-109 -15 rlineto
+0 -34 rlineto
+314 0 rlineto
+0 34 rlineto
+-82 15 rlineto
+0 278 rlineto
+} def
+/P$2l {
+50 0 70 -29 rquadto
+21 -29 21 -85 rquadto
+0 -192 rlineto
+0 -53 28 -89 rquadto
+28 -35 75 -46 rquadto
+0 -1 rlineto
+-45 -10 -75 -46 rquadto
+-28 -35 -28 -89 rquadto
+0 -190 rlineto
+0 -57 -21 -85 rquadto
+-20 -29 -70 -29 rquadto
+-31 0 rlineto
+0 -68 rlineto
+70 0 rlineto
+70 0 106 40 rquadto
+35 40 35 117 rquadto
+0 193 rlineto
+0 62 28 93 rquadto
+28 31 87 32 rquadto
+0 68 rlineto
+-59 1 -87 32 rquadto
+-28 31 -28 93 rquadto
+0 193 rlineto
+0 75 -37 115 rquadto
+-35 42 -104 42 rquadto
+-70 0 rlineto
+0 -68 rlineto
+31 0 rlineto
+} def
+/P$2w {
+0 -184 98 -285 rquadto
+100 -101 278 -101 rquadto
+126 0 204 43 rquadto
+78 42 120 135 rquadto
+-96 28 rlineto
+-32 -64 -89 -93 rquadto
+-56 -29 -140 -29 rquadto
+-131 0 -201 79 rquadto
+-68 78 -68 223 rquadto
+0 142 73 226 rquadto
+73 82 203 82 rquadto
+75 0 139 -21 rquadto
+64 -23 104 -62 rquadto
+0 -135 rlineto
+-226 0 rlineto
+0 -85 rlineto
+320 0 rlineto
+0 260 rlineto
+-59 60 -146 95 rquadto
+-87 32 -190 32 rquadto
+-117 0 -203 -46 rquadto
+-85 -48 -132 -135 rquadto
+-45 -89 -45 -209 rquadto
+} def
+/P$2u {
+-114 0 rlineto
+-212 -581 rlineto
+103 0 rlineto
+128 378 rlineto
+7 21 37 128 rquadto
+18 -64 rlineto
+20 -62 rlineto
+132 -379 rlineto
+103 0 rlineto
+-217 581 rlineto
+} def
+/P$2z {
+0 304 -214 304 rquadto
+-134 0 -179 -101 rquadto
+-3 0 rlineto
+1 4 1 92 rquadto
+0 226 rlineto
+-96 0 rlineto
+0 -690 rlineto
+0 -89 -3 -118 rquadto
+93 0 rlineto
+1 1 1 15 rquadto
+1 12 3 40 rquadto
+1 26 1 37 rquadto
+1 0 rlineto
+26 -54 68 -78 rquadto
+42 -25 110 -25 rquadto
+107 0 160 71 rquadto
+53 71 53 225 rquadto
+closepath
+} def
+/P$39 {
+-65 0 -101 54 rquadto
+-35 53 -35 156 rquadto
+256 0 rlineto
+0 -112 -29 -160 rquadto
+-29 -50 -89 -50 rquadto
+} def
+/P$12 {
+62 -70 112 -101 rquadto
+51 -31 92 -31 rquadto
+31 0 rlineto
+0 201 rlineto
+-32 0 rlineto
+-34 -73 rlineto
+-35 0 -82 15 rquadto
+-46 15 -82 37 rquadto
+0 334 rlineto
+87 14 rlineto
+0 39 rlineto
+-328 0 rlineto
+0 -39 rlineto
+70 -14 rlineto
+0 -445 rlineto
+-70 -14 rlineto
+0 -39 rlineto
+231 0 rlineto
+6 115 rlineto
+} def
+/P$2v {
+0 -756 rlineto
+573 0 rlineto
+0 82 rlineto
+-471 0 rlineto
+0 243 rlineto
+440 0 rlineto
+0 82 rlineto
+-440 0 rlineto
+0 262 rlineto
+493 0 rlineto
+0 84 rlineto
+-595 0 rlineto
+} def
+/P$3f {
+0 -178 -96 -270 rquadto
+-95 -92 -275 -92 rquadto
+-114 0 rlineto
+0 734 rlineto
+76 4 181 4 rquadto
+156 0 229 -92 rquadto
+75 -92 75 -284 rquadto
+closepath
+} def
+/P$2g {
+-92 0 -162 -32 rquadto
+-68 -34 -107 -98 rquadto
+-37 -65 -37 -154 rquadto
+0 -481 rlineto
+103 0 rlineto
+0 471 rlineto
+0 104 51 159 rquadto
+53 53 153 53 rquadto
+101 0 157 -56 rquadto
+57 -56 57 -162 rquadto
+0 -465 rlineto
+101 0 rlineto
+0 471 rlineto
+0 92 -39 159 rquadto
+-39 65 -110 101 rquadto
+-70 34 -167 34 rquadto
+} def
+/P$i {
+-401 0 rlineto
+0 -71 rlineto
+90 -82 rlineto
+87 -76 128 -123 rquadto
+42 -46 59 -96 rquadto
+18 -51 18 -115 rquadto
+0 -64 -29 -96 rquadto
+-28 -34 -93 -34 rquadto
+-26 0 -54 7 rquadto
+-26 7 -46 18 rquadto
+-17 79 rlineto
+-32 0 rlineto
+0 -125 rlineto
+89 -21 151 -21 rquadto
+107 0 160 45 rquadto
+54 43 54 126 rquadto
+0 54 -21 103 rquadto
+-21 48 -65 96 rquadto
+-43 46 -145 134 rquadto
+-43 35 -92 81 rquadto
+337 0 rlineto
+0 75 rlineto
+closepath
+} def
+/P$1i {
+0 117 35 173 rquadto
+35 54 109 54 rquadto
+51 0 85 -28 rquadto
+35 -28 43 -85 rquadto
+96 6 rlineto
+-10 84 -71 134 rquadto
+-59 50 -151 50 rquadto
+-121 0 -185 -76 rquadto
+-64 -78 -64 -225 rquadto
+0 -146 64 -223 rquadto
+64 -78 184 -78 rquadto
+89 0 148 46 rquadto
+59 45 73 126 rquadto
+-98 7 rlineto
+-7 -48 -39 -76 rquadto
+-29 -28 -85 -28 rquadto
+-76 0 -110 51 rquadto
+-34 50 -34 170 rquadto
+} def
+/P$2y {
+-301 -365 rlineto
+-100 75 rlineto
+0 290 rlineto
+-101 0 rlineto
+0 -756 rlineto
+101 0 rlineto
+0 378 rlineto
+365 -378 rlineto
+120 0 rlineto
+-321 328 rlineto
+365 428 rlineto
+-128 0 rlineto
+} def
+/P$25 {
+0 -504 rlineto
+0 -84 4 -160 rquadto
+-26 95 -48 150 rquadto
+-195 515 rlineto
+-71 0 rlineto
+-198 -515 rlineto
+-29 -90 rlineto
+-17 -59 rlineto
+1 59 rlineto
+1 101 rlineto
+0 504 rlineto
+-90 0 rlineto
+0 -756 rlineto
+134 0 rlineto
+201 523 rlineto
+10 32 20 68 rquadto
+10 35 14 51 rquadto
+3 -20 17 -64 rquadto
+14 -43 18 -56 rquadto
+196 -523 rlineto
+132 0 rlineto
+0 756 rlineto
+-92 0 rlineto
+} def
+/P$3b {
+120 12 rlineto
+0 23 rlineto
+-315 0 rlineto
+0 -23 rlineto
+120 -12 rlineto
+0 -479 rlineto
+-118 42 rlineto
+0 -23 rlineto
+171 -96 rlineto
+21 0 rlineto
+0 557 rlineto
+} def
+/P$3c {
+0 306 -193 306 rquadto
+-92 0 -140 -78 rquadto
+-46 -79 -46 -228 rquadto
+0 -146 46 -223 rquadto
+48 -78 145 -78 rquadto
+92 0 140 76 rquadto
+48 76 48 225 rquadto
+closepath
+} def
+/P$3j {
+-360 0 rlineto
+0 -64 rlineto
+82 -75 rlineto
+78 -68 114 -110 rquadto
+37 -43 53 -89 rquadto
+17 -45 17 -103 rquadto
+0 -57 -26 -87 rquadto
+-25 -29 -84 -29 rquadto
+-23 0 -48 6 rquadto
+-25 6 -43 17 rquadto
+-14 71 rlineto
+-29 0 rlineto
+0 -112 rlineto
+79 -18 135 -18 rquadto
+96 0 145 40 rquadto
+48 39 48 112 rquadto
+0 50 -20 93 rquadto
+-18 43 -57 87 rquadto
+-39 42 -131 120 rquadto
+-39 32 -82 73 rquadto
+303 0 rlineto
+0 67 rlineto
+} def
+/P$16 {
+0 -182 -20 -262 rquadto
+-20 -79 -64 -79 rquadto
+-43 0 -62 78 rquadto
+-18 76 -18 264 rquadto
+0 192 18 271 rquadto
+18 78 62 78 rquadto
+42 0 62 -81 rquadto
+21 -81 21 -268 rquadto
+} def
+/P$d {
+-64 3 rlineto
+-65 1 -89 25 rquadto
+-23 21 -23 76 rquadto
+0 85 70 85 rquadto
+32 0 56 -7 rquadto
+25 -7 50 -18 rquadto
+0 -164 rlineto
+closepath
+} def
+/P$c {
+75 0 110 31 rquadto
+35 29 35 93 rquadto
+0 309 rlineto
+56 12 rlineto
+0 21 rlineto
+-125 0 rlineto
+-9 -45 rlineto
+-56 54 -142 54 rquadto
+-117 0 -117 -135 rquadto
+0 -46 17 -76 rquadto
+17 -29 56 -45 rquadto
+39 -15 114 -17 rquadto
+68 -3 rlineto
+0 -71 rlineto
+0 -46 -17 -68 rquadto
+-17 -23 -53 -23 rquadto
+-50 0 -90 23 rquadto
+-15 57 rlineto
+-28 0 rlineto
+0 -100 rlineto
+79 -17 139 -17 rquadto
+closepath
+} def
+/P$w {
+-401 0 rlineto
+0 -71 rlineto
+90 -82 rlineto
+87 -76 128 -123 rquadto
+42 -46 59 -96 rquadto
+18 -51 18 -115 rquadto
+0 -64 -29 -96 rquadto
+-28 -34 -93 -34 rquadto
+-26 0 -54 7 rquadto
+-26 7 -46 18 rquadto
+-17 79 rlineto
+-32 0 rlineto
+0 -125 rlineto
+89 -21 151 -21 rquadto
+107 0 160 45 rquadto
+54 43 54 126 rquadto
+0 54 -21 103 rquadto
+-21 48 -65 96 rquadto
+-43 46 -145 134 rquadto
+-43 35 -92 81 rquadto
+337 0 rlineto
+0 75 rlineto
+} def
+/P$1l {
+-7 -92 -46 -134 rquadto
+-37 -42 -110 -42 rquadto
+-70 0 -110 46 rquadto
+-40 46 -43 129 rquadto
+312 0 rlineto
+} def
+/P$17 {
+0 107 -76 167 rquadto
+-76 59 -214 59 rquadto
+-109 0 -217 -25 rquadto
+-6 -189 rlineto
+53 0 rlineto
+31 125 rlineto
+51 29 106 29 rquadto
+71 0 110 -45 rquadto
+40 -46 40 -128 rquadto
+0 -70 -32 -107 rquadto
+-31 -37 -103 -42 rquadto
+-68 -4 rlineto
+0 -70 rlineto
+65 -4 rlineto
+53 -4 78 -39 rquadto
+25 -34 25 -104 rquadto
+0 -65 -29 -103 rquadto
+-29 -37 -84 -37 rquadto
+-31 0 -51 9 rquadto
+-20 9 -39 20 rquadto
+-25 114 rlineto
+-51 0 rlineto
+0 -178 rlineto
+60 -15 103 -20 rquadto
+43 -6 85 -6 rquadto
+264 0 264 193 rquadto
+0 79 -42 129 rquadto
+-42 48 -120 60 rquadto
+198 23 198 196 rquadto
+closepath
+} def
+/P$3m {
+0 89 -56 134 rquadto
+-56 45 -165 45 rquadto
+-45 0 -100 -9 rquadto
+-53 -9 -82 -20 rquadto
+0 -146 rlineto
+28 0 rlineto
+31 82 rlineto
+48 43 123 43 rquadto
+123 0 123 -104 rquadto
+0 -78 -96 -110 rquadto
+-56 -18 rlineto
+-64 -20 -93 -42 rquadto
+-29 -21 -45 -53 rquadto
+-15 -31 -15 -76 rquadto
+0 -78 53 -123 rquadto
+54 -45 145 -45 rquadto
+65 0 164 20 rquadto
+0 129 rlineto
+-29 0 rlineto
+-26 -68 rlineto
+-34 -31 -106 -31 rquadto
+-51 0 -78 26 rquadto
+-26 25 -26 68 rquadto
+0 35 23 60 rquadto
+25 23 75 40 rquadto
+92 31 120 46 rquadto
+29 14 50 35 rquadto
+20 20 31 48 rquadto
+10 26 10 67 rquadto
+closepath
+} def
+/P$r {
+0 -78 -31 -112 rquadto
+-29 -35 -95 -35 rquadto
+-64 0 -92 34 rquadto
+-28 32 -28 114 rquadto
+0 82 28 115 rquadto
+29 32 92 32 rquadto
+65 0 95 -34 rquadto
+31 -34 31 -114 rquadto
+closepath
+} def
+/P$2q {
+0 -142 -71 -221 rquadto
+-70 -81 -198 -81 rquadto
+-129 0 -201 79 rquadto
+-70 79 -70 223 rquadto
+0 142 71 226 rquadto
+71 82 198 82 rquadto
+131 0 201 -81 rquadto
+70 -81 70 -228 rquadto
+} def
+/P$2o {
+-4 15 rlineto
+-12 43 -39 114 rquadto
+-96 248 rlineto
+282 0 rlineto
+-96 -250 rlineto
+-15 -35 -29 -82 rquadto
+-15 -45 rlineto
+} def
+/P$2m {
+0 -756 rlineto
+101 0 rlineto
+0 671 rlineto
+382 0 rlineto
+0 84 rlineto
+-484 0 rlineto
+} def
+/P$3h {
+0 28 -20 48 rquadto
+-20 20 -48 20 rquadto
+-28 0 -48 -20 rquadto
+-20 -20 -20 -48 rquadto
+0 -28 20 -48 rquadto
+20 -20 48 -20 rquadto
+28 0 48 20 rquadto
+20 20 20 48 rquadto
+closepath
+} def
+/P$e {
+0 87 -60 137 rquadto
+-59 50 -170 50 rquadto
+-93 0 -176 -20 rquadto
+-4 -137 rlineto
+31 0 rlineto
+21 90 rlineto
+20 10 54 18 rquadto
+34 7 65 7 rquadto
+76 0 112 -34 rquadto
+37 -35 37 -117 rquadto
+0 -64 -34 -96 rquadto
+-34 -34 -104 -37 rquadto
+-70 -4 rlineto
+0 -40 rlineto
+70 -3 rlineto
+54 -3 81 -34 rquadto
+26 -31 26 -95 rquadto
+0 -65 -28 -95 rquadto
+-28 -31 -90 -31 rquadto
+-26 0 -54 7 rquadto
+-28 7 -50 18 rquadto
+-17 79 rlineto
+-32 0 rlineto
+0 -125 rlineto
+48 -12 82 -17 rquadto
+35 -4 71 -4 rquadto
+209 0 209 160 rquadto
+0 68 -37 109 rquadto
+-37 39 -106 50 rquadto
+89 9 131 50 rquadto
+42 40 42 114 rquadto
+} def
+/P$23 {
+0 368 rlineto
+0 57 10 89 rquadto
+10 31 35 45 rquadto
+25 14 73 14 rquadto
+68 0 109 -46 rquadto
+40 -48 40 -132 rquadto
+0 -337 rlineto
+96 0 rlineto
+0 457 rlineto
+0 101 3 123 rquadto
+-92 0 rlineto
+0 -3 -1 -14 rquadto
+0 -12 -1 -26 rquadto
+0 -15 0 -59 rquadto
+-1 0 rlineto
+-34 60 -78 85 rquadto
+-43 25 -107 25 rquadto
+-96 0 -140 -46 rquadto
+-43 -48 -43 -157 rquadto
+0 -387 rlineto
+96 0 rlineto
+} def
+/P$5 {
+-25 0 rlineto
+-170 -451 rlineto
+-173 451 rlineto
+-26 0 rlineto
+-217 -631 rlineto
+-56 -14 rlineto
+0 -25 rlineto
+250 0 rlineto
+0 25 rlineto
+-96 14 rlineto
+156 460 rlineto
+176 -454 rlineto
+21 0 rlineto
+168 454 rlineto
+148 -460 rlineto
+-101 -14 rlineto
+0 -25 rlineto
+217 0 rlineto
+0 25 rlineto
+-57 14 rlineto
+-214 631 rlineto
+closepath
+} def
+/P$1n {
+-26 56 -71 81 rquadto
+-43 23 -109 23 rquadto
+-109 0 -160 -73 rquadto
+-51 -75 -51 -225 rquadto
+0 -304 212 -304 rquadto
+67 0 110 25 rquadto
+43 23 70 76 rquadto
+1 0 rlineto
+-1 -65 rlineto
+0 -240 rlineto
+96 0 rlineto
+0 676 rlineto
+0 90 3 120 rquadto
+-92 0 rlineto
+-1 -9 -3 -39 rquadto
+-1 -31 -1 -54 rquadto
+-3 0 rlineto
+closepath
+} def
+/P$3q {
+0 160 rlineto
+-28 0 rlineto
+-35 -70 rlineto
+-32 0 -76 9 rquadto
+-42 7 -75 21 rquadto
+0 446 rlineto
+103 15 rlineto
+0 28 rlineto
+-282 0 rlineto
+0 -28 rlineto
+75 -15 rlineto
+0 -507 rlineto
+-75 -17 rlineto
+0 -28 rlineto
+173 0 rlineto
+6 75 rlineto
+37 -32 101 -60 rquadto
+65 -29 104 -29 rquadto
+9 0 rlineto
+} def
+/P$q {
+0 53 -26 90 rquadto
+-26 37 -70 57 rquadto
+56 20 85 64 rquadto
+31 43 31 106 rquadto
+0 92 -53 139 rquadto
+-51 46 -162 46 rquadto
+-209 0 -209 -185 rquadto
+0 -65 31 -107 rquadto
+31 -42 84 -62 rquadto
+-42 -20 -68 -56 rquadto
+-26 -37 -26 -92 rquadto
+0 -81 50 -125 rquadto
+50 -45 143 -45 rquadto
+90 0 140 45 rquadto
+50 43 50 125 rquadto
+closepath
+} def
+/P$1m {
+0 -368 rlineto
+0 -57 -12 -89 rquadto
+-10 -31 -35 -45 rquadto
+-23 -14 -71 -14 rquadto
+-70 0 -110 48 rquadto
+-39 46 -39 131 rquadto
+0 337 rlineto
+-96 0 rlineto
+0 -457 rlineto
+0 -101 -3 -123 rquadto
+90 0 rlineto
+1 3 1 15 rquadto
+0 10 0 26 rquadto
+1 14 3 57 rquadto
+1 0 rlineto
+32 -60 76 -85 rquadto
+43 -25 109 -25 rquadto
+95 0 139 48 rquadto
+45 46 45 156 rquadto
+0 387 rlineto
+-96 0 rlineto
+} def
+/P$26 {
+0 121 31 175 rquadto
+32 51 104 51 rquadto
+82 0 118 -56 rquadto
+37 -57 37 -176 rquadto
+0 -115 -37 -168 rquadto
+-35 -54 -117 -54 rquadto
+-73 0 -106 54 rquadto
+-31 53 -31 175 rquadto
+} def
+/P$2r {
+-192 0 -228 -198 rquadto
+100 -17 rlineto
+9 62 43 98 rquadto
+34 34 84 34 rquadto
+56 0 87 -39 rquadto
+32 -39 32 -112 rquadto
+0 -450 rlineto
+-145 0 rlineto
+0 -82 rlineto
+248 0 rlineto
+0 531 rlineto
+0 109 -60 173 rquadto
+-59 62 -162 62 rquadto
+} def
+/P$33 {
+48 -26 101 -45 rquadto
+53 -18 93 -18 rquadto
+43 0 81 17 rquadto
+37 15 56 51 rquadto
+48 -26 114 -46 rquadto
+65 -21 109 -21 rquadto
+151 0 151 175 rquadto
+0 393 rlineto
+76 15 rlineto
+0 28 rlineto
+-270 0 rlineto
+0 -28 rlineto
+89 -15 rlineto
+0 -381 rlineto
+0 -109 -101 -109 rquadto
+-17 0 -39 3 rquadto
+-21 1 -43 4 rquadto
+-21 3 -42 7 rquadto
+-20 4 -32 6 rquadto
+10 34 10 75 rquadto
+0 393 rlineto
+89 15 rlineto
+0 28 rlineto
+-282 0 rlineto
+0 -28 rlineto
+87 -15 rlineto
+0 -381 rlineto
+0 -53 -26 -81 rquadto
+-26 -28 -81 -28 rquadto
+-56 0 -139 18 rquadto
+0 471 rlineto
+90 15 rlineto
+0 28 rlineto
+-271 0 rlineto
+0 -28 rlineto
+76 -15 rlineto
+0 -507 rlineto
+-76 -17 rlineto
+0 -28 rlineto
+175 0 rlineto
+4 48 rlineto
+} def
+/P$2 {
+0 -106 -31 -153 rquadto
+-29 -48 -95 -48 rquadto
+-64 0 -92 46 rquadto
+-28 45 -28 154 rquadto
+0 109 28 156 rquadto
+29 46 92 46 rquadto
+64 0 95 -48 rquadto
+31 -48 31 -154 rquadto
+closepath
+} def
+/P$v {
+134 12 rlineto
+0 26 rlineto
+-353 0 rlineto
+0 -26 rlineto
+134 -12 rlineto
+0 -534 rlineto
+-131 46 rlineto
+0 -25 rlineto
+190 -109 rlineto
+25 0 rlineto
+0 621 rlineto
+} def
+/P$x {
+-101 -15 rlineto
+0 -42 rlineto
+375 0 rlineto
+0 42 rlineto
+-89 15 rlineto
+0 475 rlineto
+0 126 -70 196 rquadto
+-70 68 -200 68 rquadto
+-43 0 -87 -6 rquadto
+-42 -4 -67 -12 rquadto
+0 -178 rlineto
+53 0 rlineto
+17 104 rlineto
+10 14 31 21 rquadto
+20 7 45 7 rquadto
+40 0 67 -28 rquadto
+26 -28 26 -84 rquadto
+0 -565 rlineto
+} def
+/P$29 {
+0 117 -46 204 rquadto
+-45 87 -129 134 rquadto
+-82 46 -192 46 rquadto
+-282 0 rlineto
+0 -756 rlineto
+250 0 rlineto
+192 0 296 96 rquadto
+104 95 104 273 rquadto
+closepath
+} def
+/P$3l {
+243 -264 rlineto
+-62 -17 rlineto
+0 -28 rlineto
+210 0 rlineto
+0 28 rlineto
+-73 15 rlineto
+-170 173 rlineto
+218 335 rlineto
+64 15 rlineto
+0 28 rlineto
+-243 0 rlineto
+0 -28 rlineto
+54 -15 rlineto
+-164 -257 rlineto
+-78 85 rlineto
+0 171 rlineto
+62 15 rlineto
+0 28 rlineto
+-243 0 rlineto
+0 -28 rlineto
+75 -15 rlineto
+0 -814 rlineto
+-87 -15 rlineto
+0 -28 rlineto
+193 0 rlineto
+0 614 rlineto
+} def
+/P$18 {
+0 276 rlineto
+129 17 rlineto
+0 42 rlineto
+-407 0 rlineto
+0 -42 rlineto
+93 -17 rlineto
+0 -668 rlineto
+-101 -15 rlineto
+0 -42 rlineto
+654 0 rlineto
+0 210 rlineto
+-54 0 rlineto
+-18 -137 rlineto
+-28 -4 -95 -6 rquadto
+-65 -3 -103 -3 rquadto
+-96 0 rlineto
+0 321 rlineto
+190 0 rlineto
+18 -100 rlineto
+51 0 rlineto
+0 265 rlineto
+-51 0 rlineto
+-18 -101 rlineto
+-190 0 rlineto
+} def
+/P$2e {
+0 82 -62 128 rquadto
+-62 43 -173 43 rquadto
+-109 0 -168 -35 rquadto
+-57 -35 -75 -110 rquadto
+84 -17 rlineto
+12 46 51 68 rquadto
+39 21 107 21 rquadto
+73 0 106 -21 rquadto
+34 -23 34 -68 rquadto
+0 -34 -23 -54 rquadto
+-23 -21 -76 -35 rquadto
+-68 -18 rlineto
+-82 -21 -118 -42 rquadto
+-34 -20 -54 -50 rquadto
+-20 -29 -20 -73 rquadto
+0 -79 56 -120 rquadto
+57 -42 165 -42 rquadto
+96 0 153 34 rquadto
+56 34 71 107 rquadto
+-87 10 rlineto
+-7 -39 -43 -59 rquadto
+-34 -20 -93 -20 rquadto
+-65 0 -96 20 rquadto
+-29 18 -29 59 rquadto
+0 25 12 42 rquadto
+12 15 37 26 rquadto
+25 10 106 31 rquadto
+76 18 110 35 rquadto
+34 15 53 35 rquadto
+20 20 31 46 rquadto
+10 25 10 57 rquadto
+} def
+/P$1u {
+0 -796 rlineto
+96 0 rlineto
+0 796 rlineto
+-96 0 rlineto
+} def
+/P$3t {
+0 79 -54 125 rquadto
+-54 45 -154 45 rquadto
+-84 0 -157 -18 rquadto
+-4 -125 rlineto
+28 0 rlineto
+20 82 rlineto
+17 9 48 17 rquadto
+31 6 57 6 rquadto
+70 0 103 -31 rquadto
+32 -31 32 -104 rquadto
+0 -59 -31 -89 rquadto
+-29 -29 -93 -32 rquadto
+-62 -3 rlineto
+0 -35 rlineto
+62 -4 rlineto
+50 -3 73 -31 rquadto
+23 -28 23 -84 rquadto
+0 -59 -26 -85 rquadto
+-25 -28 -81 -28 rquadto
+-21 0 -48 6 rquadto
+-25 6 -43 17 rquadto
+-15 71 rlineto
+-29 0 rlineto
+0 -112 rlineto
+43 -12 75 -15 rquadto
+31 -3 62 -3 rquadto
+189 0 189 143 rquadto
+0 62 -34 98 rquadto
+-32 35 -93 45 rquadto
+79 7 117 45 rquadto
+39 35 39 101 rquadto
+} def
+/P$2a {
+0 -140 -78 -214 rquadto
+-76 -75 -221 -75 rquadto
+-146 0 rlineto
+0 592 rlineto
+168 0 rlineto
+84 0 146 -35 rquadto
+62 -35 96 -104 rquadto
+34 -68 34 -162 rquadto
+} def
+/P$3d {
+0 -142 -26 -204 rquadto
+-26 -62 -85 -62 rquadto
+-56 0 -81 59 rquadto
+-25 59 -25 207 rquadto
+0 148 25 209 rquadto
+25 60 81 60 rquadto
+57 0 84 -62 rquadto
+28 -64 28 -207 rquadto
+} def
+/P$2b {
+0 304 -214 304 rquadto
+-65 0 -109 -23 rquadto
+-43 -25 -71 -78 rquadto
+0 0 rlineto
+0 17 -3 51 rquadto
+-1 34 -3 39 rquadto
+-93 0 rlineto
+3 -29 3 -120 rquadto
+0 -676 rlineto
+96 0 rlineto
+0 226 rlineto
+0 35 -1 82 rquadto
+1 0 rlineto
+28 -56 71 -79 rquadto
+43 -25 109 -25 rquadto
+110 0 162 75 rquadto
+51 73 51 223 rquadto
+closepath
+} def
+/P$1h {
+53 0 93 -23 rquadto
+42 -23 65 -65 rquadto
+25 -42 25 -87 rquadto
+0 -48 rlineto
+-106 3 rlineto
+-67 0 -103 14 rquadto
+-34 12 -53 39 rquadto
+-18 26 -18 70 rquadto
+0 46 25 73 rquadto
+25 25 71 25 rquadto
+} def
+/P$2i {
+-196 -314 rlineto
+-235 0 rlineto
+0 314 rlineto
+-101 0 rlineto
+0 -756 rlineto
+356 0 rlineto
+126 0 196 57 rquadto
+70 56 70 157 rquadto
+0 84 -50 142 rquadto
+-48 57 -135 71 rquadto
+215 326 rlineto
+-118 0 rlineto
+closepath
+} def
+/P$24 {
+50 0 70 -29 rquadto
+21 -29 21 -85 rquadto
+0 -192 rlineto
+0 -53 28 -89 rquadto
+28 -35 75 -46 rquadto
+0 -1 rlineto
+-45 -10 -75 -46 rquadto
+-28 -35 -28 -89 rquadto
+0 -190 rlineto
+0 -57 -21 -85 rquadto
+-20 -29 -70 -29 rquadto
+-31 0 rlineto
+0 -68 rlineto
+70 0 rlineto
+70 0 106 40 rquadto
+35 40 35 117 rquadto
+0 193 rlineto
+0 62 28 93 rquadto
+28 31 87 32 rquadto
+0 68 rlineto
+-59 1 -87 32 rquadto
+-28 31 -28 93 rquadto
+0 193 rlineto
+0 75 -37 115 rquadto
+-35 42 -104 42 rquadto
+-70 0 rlineto
+0 -68 rlineto
+31 0 rlineto
+closepath
+} def
+/P$1r {
+0 -120 -35 -175 rquadto
+-35 -54 -120 -54 rquadto
+-84 0 -121 56 rquadto
+-37 54 -37 173 rquadto
+0 114 35 171 rquadto
+37 57 118 57 rquadto
+85 0 123 -54 rquadto
+37 -56 37 -175 rquadto
+} def
+/P$2p {
+0 118 -45 207 rquadto
+-45 89 -131 137 rquadto
+-84 46 -200 46 rquadto
+-115 0 -201 -46 rquadto
+-84 -48 -129 -137 rquadto
+-43 -89 -43 -207 rquadto
+0 -182 100 -284 rquadto
+100 -103 276 -103 rquadto
+115 0 200 46 rquadto
+85 45 129 132 rquadto
+45 87 45 207 rquadto
+closepath
+} def
+/P$10 {
+39 -20 rlineto
+82 -42 148 -42 rquadto
+151 0 151 162 rquadto
+0 350 rlineto
+56 14 rlineto
+0 39 rlineto
+-275 0 rlineto
+0 -39 rlineto
+50 -14 rlineto
+0 -326 rlineto
+0 -50 -21 -76 rquadto
+-20 -28 -57 -28 rquadto
+-45 0 -89 20 rquadto
+0 410 rlineto
+50 14 rlineto
+0 39 rlineto
+-273 0 rlineto
+0 -39 rlineto
+53 -14 rlineto
+0 -445 rlineto
+-53 -14 rlineto
+0 -39 rlineto
+214 0 rlineto
+7 48 rlineto
+} def
+/P$2h {
+0 -154 48 -278 rquadto
+48 -123 150 -232 rquadto
+92 0 rlineto
+-100 110 -146 237 rquadto
+-46 125 -46 275 rquadto
+0 148 45 273 rquadto
+46 125 148 239 rquadto
+-92 0 rlineto
+-101 -109 -150 -232 rquadto
+-48 -125 -48 -279 rquadto
+0 -1 rlineto
+} def
+/P$3 {
+0 -26 rlineto
+104 -12 rlineto
+0 -573 rlineto
+-25 0 rlineto
+-123 0 -168 9 rquadto
+-12 101 rlineto
+-32 0 rlineto
+0 -153 rlineto
+575 0 rlineto
+0 153 rlineto
+-32 0 rlineto
+-12 -101 rlineto
+-15 -3 -65 -6 rquadto
+-48 -3 -106 -3 rquadto
+-25 0 rlineto
+0 573 rlineto
+104 12 rlineto
+0 26 rlineto
+-303 0 rlineto
+} def
+/P$3i {
+101 15 rlineto
+0 28 rlineto
+-309 0 rlineto
+0 -28 rlineto
+101 -15 rlineto
+0 -507 rlineto
+-84 -17 rlineto
+0 -28 rlineto
+190 0 rlineto
+0 553 rlineto
+} def
+/P$t {
+0 -98 54 -153 rquadto
+54 -54 156 -54 rquadto
+110 0 162 81 rquadto
+53 79 53 251 rquadto
+0 165 -67 253 rquadto
+-67 85 -187 85 rquadto
+-79 0 -146 -15 rquadto
+0 -114 rlineto
+32 0 rlineto
+15 70 rlineto
+15 7 42 14 rquadto
+26 4 53 4 rquadto
+78 0 120 -68 rquadto
+42 -68 46 -201 rquadto
+-75 42 -151 42 rquadto
+-85 0 -135 -51 rquadto
+-48 -51 -48 -143 rquadto
+closepath
+} def
+/P$34 {
+96 0 142 40 rquadto
+46 39 46 121 rquadto
+0 403 rlineto
+75 15 rlineto
+0 28 rlineto
+-164 0 rlineto
+-12 -59 rlineto
+-71 71 -184 71 rquadto
+-153 0 -153 -178 rquadto
+0 -59 23 -98 rquadto
+23 -39 73 -59 rquadto
+51 -20 148 -21 rquadto
+89 -3 rlineto
+0 -93 rlineto
+0 -60 -23 -90 rquadto
+-21 -29 -68 -29 rquadto
+-64 0 -115 31 rquadto
+-21 73 rlineto
+-35 0 rlineto
+0 -129 rlineto
+103 -21 181 -21 rquadto
+closepath
+} def
+/P$1g {
+-87 0 -131 -45 rquadto
+-43 -46 -43 -128 rquadto
+0 -90 59 -137 rquadto
+59 -48 190 -53 rquadto
+131 -1 rlineto
+0 -31 rlineto
+0 -71 -31 -101 rquadto
+-29 -31 -93 -31 rquadto
+-64 0 -93 21 rquadto
+-29 21 -35 70 rquadto
+-101 -7 rlineto
+25 -157 234 -157 rquadto
+109 0 164 50 rquadto
+56 50 56 145 rquadto
+0 250 rlineto
+0 43 10 65 rquadto
+10 21 42 21 rquadto
+14 0 32 -4 rquadto
+0 60 rlineto
+-37 7 -75 7 rquadto
+-54 0 -79 -28 rquadto
+-23 -28 -26 -87 rquadto
+-3 0 rlineto
+-37 65 -87 93 rquadto
+-48 28 -118 28 rquadto
+closepath
+} def
+/P$31 {
+0 -350 rlineto
+-409 0 rlineto
+0 350 rlineto
+-101 0 rlineto
+0 -756 rlineto
+101 0 rlineto
+0 320 rlineto
+409 0 rlineto
+0 -320 rlineto
+103 0 rlineto
+0 756 rlineto
+-103 0 rlineto
+} def
+/P$15 {
+0 409 -257 409 rquadto
+-125 0 -189 -104 rquadto
+-62 -104 -62 -304 rquadto
+0 -193 62 -296 rquadto
+64 -104 193 -104 rquadto
+123 0 187 103 rquadto
+65 101 65 298 rquadto
+closepath
+} def
+/P$38 {
+0 10 rlineto
+0 87 18 135 rquadto
+18 48 59 75 rquadto
+40 25 106 25 rquadto
+34 0 81 -4 rquadto
+46 -6 76 -14 rquadto
+0 35 rlineto
+-29 18 -82 34 rquadto
+-51 14 -106 14 rquadto
+-139 0 -203 -75 rquadto
+-64 -75 -64 -240 rquadto
+0 -156 64 -232 rquadto
+65 -76 187 -76 rquadto
+228 0 228 260 rquadto
+0 51 rlineto
+-365 0 rlineto
+closepath
+} def
+/P$z {
+-50 1 rlineto
+-56 3 -78 31 rquadto
+-21 26 -21 87 rquadto
+0 50 17 73 rquadto
+17 23 45 23 rquadto
+40 0 87 -20 rquadto
+0 -196 rlineto
+} def
+/P$1y {
+0 -92 rlineto
+96 0 rlineto
+0 92 rlineto
+-96 0 rlineto
+closepath
+} def
+/P$3r {
+0 314 -278 314 rquadto
+-135 0 -204 -79 rquadto
+-67 -81 -67 -234 rquadto
+0 -151 67 -231 rquadto
+68 -79 209 -79 rquadto
+135 0 204 78 rquadto
+68 78 68 232 rquadto
+closepath
+} def
+/P$22 {
+0 -368 rlineto
+0 -84 -23 -115 rquadto
+-23 -32 -82 -32 rquadto
+-62 0 -98 46 rquadto
+-35 46 -35 132 rquadto
+0 337 rlineto
+-95 0 rlineto
+0 -457 rlineto
+0 -101 -3 -123 rquadto
+90 0 rlineto
+1 3 1 15 rquadto
+0 10 0 26 rquadto
+1 14 3 57 rquadto
+1 0 rlineto
+31 -62 70 -85 rquadto
+40 -25 100 -25 rquadto
+65 0 103 26 rquadto
+39 26 54 84 rquadto
+1 0 rlineto
+29 -59 71 -84 rquadto
+43 -26 103 -26 rquadto
+89 0 128 48 rquadto
+40 46 40 156 rquadto
+0 387 rlineto
+-95 0 rlineto
+0 -368 rlineto
+0 -84 -23 -115 rquadto
+-23 -32 -82 -32 rquadto
+-64 0 -100 46 rquadto
+-34 46 -34 132 rquadto
+0 337 rlineto
+-95 0 rlineto
+} def
+/P$1a {
+-34 0 -51 37 rquadto
+-17 37 -17 134 rquadto
+126 0 rlineto
+0 -78 -4 -109 rquadto
+-4 -32 -18 -46 rquadto
+-12 -15 -34 -15 rquadto
+} def
+/P$3o {
+103 15 rlineto
+0 28 rlineto
+-309 0 rlineto
+0 -28 rlineto
+101 -15 rlineto
+0 -814 rlineto
+-101 -15 rlineto
+0 -28 rlineto
+206 0 rlineto
+0 857 rlineto
+} def
+/P$1s {
+-46 14 -96 14 rquadto
+-115 0 -115 -132 rquadto
+0 -387 rlineto
+-67 0 rlineto
+0 -70 rlineto
+70 0 rlineto
+28 -129 rlineto
+65 0 rlineto
+0 129 rlineto
+106 0 rlineto
+0 70 rlineto
+-106 0 rlineto
+0 367 rlineto
+0 42 12 59 rquadto
+14 15 48 15 rquadto
+18 0 54 -6 rquadto
+0 70 rlineto
+} def
+/P$1p {
+-125 0 -195 81 rquadto
+-70 81 -70 221 rquadto
+0 139 73 223 rquadto
+73 84 196 84 rquadto
+159 0 239 -157 rquadto
+84 42 rlineto
+-46 98 -132 150 rquadto
+-84 50 -195 50 rquadto
+-114 0 -198 -46 rquadto
+-82 -48 -126 -135 rquadto
+-43 -89 -43 -209 rquadto
+0 -181 96 -284 rquadto
+98 -103 271 -103 rquadto
+120 0 201 48 rquadto
+81 46 118 139 rquadto
+-96 32 rlineto
+-26 -65 -85 -100 rquadto
+-57 -35 -137 -35 rquadto
+} def
+/P$30 {
+0 -121 -32 -173 rquadto
+-32 -53 -104 -53 rquadto
+-56 0 -89 25 rquadto
+-32 23 -50 75 rquadto
+-17 51 -17 132 rquadto
+0 115 35 170 rquadto
+37 53 120 53 rquadto
+71 0 104 -53 rquadto
+32 -53 32 -176 rquadto
+} def
+/P$6 {
+0 9 rlineto
+0 67 14 104 rquadto
+15 37 46 57 rquadto
+31 18 81 18 rquadto
+26 0 62 -4 rquadto
+35 -4 59 -9 rquadto
+0 26 rlineto
+-23 15 -64 26 rquadto
+-39 10 -81 10 rquadto
+-107 0 -157 -57 rquadto
+-48 -57 -48 -184 rquadto
+0 -120 50 -179 rquadto
+50 -59 143 -59 rquadto
+176 0 176 201 rquadto
+0 39 rlineto
+-282 0 rlineto
+closepath
+} def
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3720 2533 moveto
+P$0
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4662 2302 moveto
+P$1
+4573 2302 moveto
+P$2
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11603 2533 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12203 2402 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20020 2549 moveto
+P$5
+20376 2302 moveto
+P$6
+20482 2100 moveto
+P$7
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+27603 2533 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28209 2038 moveto
+P$8
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+35757 2239 moveto
+P$9
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36475 2061 moveto
+P$a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+43567 2357 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44326 2064 moveto
+P$c
+44392 2299 moveto
+P$d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51517 2357 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52203 2402 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59720 2533 moveto
+P$0
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60662 2302 moveto
+P$1
+60573 2302 moveto
+P$2
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+67603 2533 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+68203 2402 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76020 2549 moveto
+P$5
+76376 2302 moveto
+P$6
+76482 2100 moveto
+P$7
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83603 2533 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84209 2038 moveto
+P$8
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91757 2239 moveto
+P$9
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92475 2061 moveto
+P$a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99567 2357 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100326 2064 moveto
+P$c
+100392 2299 moveto
+P$d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+107517 2357 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+108203 2402 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115720 2533 moveto
+P$0
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+116662 2302 moveto
+P$1
+116573 2302 moveto
+P$2
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+123603 2533 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+124203 2402 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+132020 2549 moveto
+P$5
+132376 2302 moveto
+P$6
+132482 2100 moveto
+P$7
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+139603 2533 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+140209 2038 moveto
+P$8
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+147757 2239 moveto
+P$9
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+148475 2061 moveto
+P$a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+155567 2357 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+156326 2064 moveto
+P$c
+156392 2299 moveto
+P$d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+163517 2357 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+164203 2402 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+171720 2533 moveto
+P$0
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+172662 2302 moveto
+P$1
+172573 2302 moveto
+P$2
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+179603 2533 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+180203 2402 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+188020 2549 moveto
+P$5
+188376 2302 moveto
+P$6
+188482 2100 moveto
+P$7
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+195603 2533 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+196209 2038 moveto
+P$8
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+203757 2239 moveto
+P$9
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+204475 2061 moveto
+P$a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3960 3555 moveto
+P$e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4462 3403 moveto
+P$f
+4371 3403 moveto
+P$g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11960 3555 moveto
+P$e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12306 3694 moveto
+P$h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20056 3694 moveto
+P$h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28195 3733 moveto
+P$i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36210 3555 moveto
+P$j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44145 3589 moveto
+P$k
+44060 3189 moveto
+P$l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51987 3350 moveto
+P$m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60220 3530 moveto
+P$n
+60018 3705 moveto
+P$o
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+67848 3233 moveto
+P$p
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76192 3238 moveto
+P$q
+76123 3557 moveto
+P$r
+76104 3238 moveto
+P$s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83782 3278 moveto
+P$t
+83993 3110 moveto
+P$u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91806 3694 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92462 3403 moveto
+P$f
+92371 3403 moveto
+P$g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99806 3694 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100306 3694 moveto
+P$h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+107806 3694 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+108445 3733 moveto
+P$i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115806 3694 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+116460 3555 moveto
+P$j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+123806 3694 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+124395 3589 moveto
+P$k
+124310 3189 moveto
+P$l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+131806 3694 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+132237 3350 moveto
+P$m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+139806 3694 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+140470 3530 moveto
+P$n
+140268 3705 moveto
+P$o
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+147806 3694 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+148098 3233 moveto
+P$p
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+155806 3694 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+156442 3238 moveto
+P$q
+156373 3557 moveto
+P$r
+156354 3238 moveto
+P$s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+163806 3694 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+164032 3278 moveto
+P$t
+164243 3110 moveto
+P$u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+171945 3733 moveto
+P$w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+172462 3403 moveto
+P$f
+172371 3403 moveto
+P$g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+179945 3733 moveto
+P$w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+180306 3694 moveto
+P$h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+187945 3733 moveto
+P$w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+188445 3733 moveto
+P$i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+195945 3733 moveto
+P$w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+196460 3555 moveto
+P$j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+203945 3733 moveto
+P$w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+204395 3589 moveto
+P$k
+204310 3189 moveto
+P$l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4793 392 moveto
+P$x
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5420 557 moveto
+P$y
+5457 843 moveto
+P$z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5954 617 moveto
+P$10
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+6812 1071 moveto
+P$11
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7420 557 moveto
+P$y
+7457 843 moveto
+P$z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7970 684 moveto
+P$12
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+8470 1137 moveto
+P$13
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9648 1120 moveto
+P$14
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10254 723 moveto
+P$15
+10082 723 moveto
+P$16
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10848 1120 moveto
+P$14
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11459 906 moveto
+P$17
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+108556 784 moveto
+P$18
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+109239 556 moveto
+P$19
+109232 615 moveto
+P$1a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+109896 829 moveto
+P$1b
+109521 339 moveto
+P$1c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+110420 684 moveto
+P$12
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+111062 1071 moveto
+P$11
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+111670 557 moveto
+P$y
+111707 843 moveto
+P$z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+112220 684 moveto
+P$12
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+112720 1137 moveto
+P$13
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+113898 1120 moveto
+P$14
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+114504 723 moveto
+P$15
+114332 723 moveto
+P$16
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115098 1120 moveto
+P$14
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115709 906 moveto
+P$17
+fill
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+0 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+8000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+16000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+24000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+32000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+40000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+48000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+56000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+64000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+72000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+80000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+88000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+96000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+104000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+112000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+120000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+128000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+136000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+144000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+152000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+160000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+168000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+176000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+184000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+192000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+200000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+208000 4100 moveto
+0 47503 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+0 4100 moveto
+208000 0 rlineto
+stroke
+100 setlinewidth
+0.75 0.75 0.75 setrgbcolor
+newpath
+0 51603 moveto
+208000 0 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+20000 10494 moveto
+0 1032 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+20000 11527 moveto
+3900 0 rlineto
+stroke
+0.09 0.09 0.09 setrgbcolor
+newpath
+23500 11127 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+23500 11127 lineto
+closepath eofill
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+23500 11127 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+23500 11127 lineto
+closepath stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+68000 12159 moveto
+0 1032 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+68000 13192 moveto
+3900 0 rlineto
+stroke
+0.09 0.09 0.09 setrgbcolor
+newpath
+71500 12792 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+71500 12792 lineto
+closepath eofill
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+71500 12792 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+71500 12792 lineto
+closepath stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+68000 12159 moveto
+0 2697 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+68000 14856 moveto
+3900 0 rlineto
+stroke
+0.09 0.09 0.09 setrgbcolor
+newpath
+71500 14456 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+71500 14456 lineto
+closepath eofill
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+71500 14456 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+71500 14456 lineto
+closepath stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+92000 15489 moveto
+0 1032 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+92000 16521 moveto
+3900 0 rlineto
+stroke
+0.09 0.09 0.09 setrgbcolor
+newpath
+95500 16121 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+95500 16121 lineto
+closepath eofill
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+95500 16121 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+95500 16121 lineto
+closepath stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+92000 15489 moveto
+0 2697 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+92000 18186 moveto
+3900 0 rlineto
+stroke
+0.09 0.09 0.09 setrgbcolor
+newpath
+95500 17786 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+95500 17786 lineto
+closepath eofill
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+95500 17786 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+95500 17786 lineto
+closepath stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+92000 15489 moveto
+0 4362 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+92000 19851 moveto
+3900 0 rlineto
+stroke
+0.09 0.09 0.09 setrgbcolor
+newpath
+95500 19451 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+95500 19451 lineto
+closepath eofill
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+95500 19451 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+95500 19451 lineto
+closepath stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+108000 20484 moveto
+0 1032 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+108000 21516 moveto
+3900 0 rlineto
+stroke
+0.09 0.09 0.09 setrgbcolor
+newpath
+111500 21116 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+111500 21116 lineto
+closepath eofill
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+111500 21116 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+111500 21116 lineto
+closepath stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+52000 30408 moveto
+0 1032 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+52000 31440 moveto
+3900 0 rlineto
+stroke
+0.09 0.09 0.09 setrgbcolor
+newpath
+55500 31040 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+55500 31040 lineto
+closepath eofill
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+55500 31040 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+55500 31040 lineto
+closepath stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+60000 32073 moveto
+0 1032 rlineto
+stroke
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+60000 33105 moveto
+3900 0 rlineto
+stroke
+0.09 0.09 0.09 setrgbcolor
+newpath
+63500 32705 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+63500 32705 lineto
+closepath eofill
+150 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+63500 32705 moveto
+0 400 rlineto
+0 400 rlineto
+400 -400 rlineto
+63500 32705 lineto
+closepath stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+0 5732 moveto
+500 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+5800 5732 moveto
+202100 0 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+23600 1264 200 7564 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 7564 moveto
+23600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 8829 moveto
+23600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 7564 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+23800 7564 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+23600 1264 200 9229 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 9229 moveto
+23600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 10494 moveto
+23600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 9229 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+23800 9229 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+47600 1264 24200 10894 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+24200 10894 moveto
+47600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+24200 12159 moveto
+47600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+24200 10894 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+71800 10894 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+127600 1264 72200 12559 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+72200 12559 moveto
+127600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+72200 13824 moveto
+127600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+72200 12559 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+199800 12559 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+23600 1264 72200 14224 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+72200 14224 moveto
+23600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+72200 15489 moveto
+23600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+72200 14224 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+95800 14224 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+103600 1264 96200 15889 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+96200 15889 moveto
+103600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+96200 17154 moveto
+103600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+96200 15889 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+199800 15889 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+111600 1264 96200 17554 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+96200 17554 moveto
+111600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+96200 18819 moveto
+111600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+96200 17554 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+207800 17554 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+15600 1264 96200 19219 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+96200 19219 moveto
+15600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+96200 20484 moveto
+15600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+96200 19219 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+111800 19219 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+95600 1264 112200 20884 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+112200 20884 moveto
+95600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+112200 22148 moveto
+95600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+112200 20884 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+207800 20884 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+7600 1264 120200 22548 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+120200 22548 moveto
+7600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+120200 23813 moveto
+7600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+120200 22548 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+127800 22548 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+0 25646 moveto
+500 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+5900 25646 moveto
+202000 0 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+63600 1264 200 27478 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 27478 moveto
+63600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 28743 moveto
+63600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+200 27478 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+63800 27478 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+39600 1264 16200 29143 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+16200 29143 moveto
+39600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+16200 30408 moveto
+39600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+16200 29143 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+55800 29143 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+7600 1264 56200 30808 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+56200 30808 moveto
+7600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+56200 32073 moveto
+7600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+56200 30808 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+63800 30808 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+111600 1264 64200 32473 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+64200 32473 moveto
+111600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+64200 33738 moveto
+111600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+64200 32473 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+175800 32473 moveto
+0 1264 rlineto
+stroke
+0.89 0.89 0.94 setrgbcolor
+39600 1264 48200 34138 simplerect
+closepath eofill
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+48200 34138 moveto
+39600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+48200 35403 moveto
+39600 0 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+48200 34138 moveto
+0 1264 rlineto
+stroke
+100 setlinewidth
+0.09 0.09 0.09 setrgbcolor
+newpath
+87800 34138 moveto
+0 1264 rlineto
+stroke
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1675 5919 moveto
+P$1d
+1528 5570 moveto
+P$1e
+1571 5909 moveto
+P$1f
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1921 6142 moveto
+P$1g
+1943 6069 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2448 5838 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3339 6131 moveto
+P$1j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3648 5861 moveto
+P$1k
+3962 5788 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4543 6131 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5140 6038 moveto
+P$1n
+4848 5841 moveto
+P$1o
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1025 7912 moveto
+P$1p
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1965 8306 moveto
+P$1q
+1864 8306 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2443 8596 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2896 8591 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2976 8596 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3865 8306 moveto
+P$1q
+3764 8306 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3973 8596 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4173 8596 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4448 8326 moveto
+P$1k
+4762 8252 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4976 8596 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5348 8346 moveto
+P$1v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+6382 8387 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+6548 8302 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7170 8115 moveto
+P$1x
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7673 7891 moveto
+P$1y
+7673 8596 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7948 8302 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+8570 8115 moveto
+P$1x
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9296 8591 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9875 8824 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10101 8596 moveto
+P$21
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10712 8596 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11612 8596 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12321 8607 moveto
+P$1g
+12343 8534 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+13143 8596 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+13468 8015 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+14048 8326 moveto
+P$1k
+14362 8252 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+14573 8596 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+14750 8756 moveto
+P$24
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1334 10261 moveto
+P$25
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2065 9970 moveto
+P$1q
+1964 9970 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2540 10167 moveto
+P$1n
+2248 9970 moveto
+P$26
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2848 9991 moveto
+P$1k
+3162 9917 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3373 10261 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3548 10011 moveto
+P$1v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4575 9731 moveto
+P$27
+4471 9733 moveto
+P$28
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4821 10272 moveto
+P$1g
+4843 10199 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5639 10261 moveto
+P$1j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5948 9991 moveto
+P$1k
+6262 9917 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+6696 10256 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7275 10489 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+8142 9875 moveto
+P$29
+8039 9875 moveto
+P$2a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+8421 10272 moveto
+P$1g
+8443 10199 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9243 10261 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9473 9556 moveto
+P$1y
+9473 10261 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9748 9991 moveto
+P$1k
+10062 9917 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10273 10261 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10450 10420 moveto
+P$24
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+25342 11540 moveto
+P$29
+25239 11540 moveto
+P$2a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+25621 11937 moveto
+P$1g
+25643 11863 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+26296 11921 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+26448 11656 moveto
+P$1k
+26762 11582 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+27343 11926 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28065 11632 moveto
+P$2b
+27964 11635 moveto
+P$2c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28321 11937 moveto
+P$1g
+28343 11863 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+29143 11926 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+29739 11926 moveto
+P$1j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+30421 11937 moveto
+P$1g
+30443 11863 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+30968 11345 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+31593 11415 moveto
+P$2d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+32210 11765 moveto
+P$2e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+32448 11656 moveto
+P$1k
+32762 11582 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+33196 11921 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+33245 11926 moveto
+P$2f
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+33948 11656 moveto
+P$1k
+34262 11582 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+34843 11926 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+35575 12154 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+35801 11926 moveto
+P$21
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36412 11926 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+37312 11926 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+38021 11937 moveto
+P$1g
+38043 11863 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+38843 11926 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+39168 11345 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+39748 11656 moveto
+P$1k
+40062 11582 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+40273 11926 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+40450 12085 moveto
+P$24
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+72992 13602 moveto
+P$2g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+73696 13586 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+73773 12886 moveto
+P$1y
+73773 13591 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+73973 13591 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+74148 13341 moveto
+P$1v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+75175 13061 moveto
+P$27
+75071 13063 moveto
+P$28
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+75421 13602 moveto
+P$1g
+75443 13528 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76239 13591 moveto
+P$1j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76548 13321 moveto
+P$1k
+76862 13247 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+77296 13586 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+77668 13305 moveto
+P$2h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+78625 13591 moveto
+P$2i
+78610 13052 moveto
+P$2j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+79482 13381 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+80182 13381 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+80875 13061 moveto
+P$27
+80771 13063 moveto
+P$28
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+81121 13602 moveto
+P$1g
+81143 13528 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+81576 13591 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+82410 13430 moveto
+P$2e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+82648 13321 moveto
+P$1k
+82962 13247 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83176 13591 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83798 13306 moveto
+P$2k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84475 13819 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+85342 13205 moveto
+P$29
+85239 13205 moveto
+P$2a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+85621 13602 moveto
+P$1g
+85643 13528 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+86443 13591 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+86673 12886 moveto
+P$1y
+86673 13591 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+86948 13321 moveto
+P$1k
+87262 13247 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+87473 13591 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+87650 13750 moveto
+P$2l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+88575 13819 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+88790 13591 moveto
+P$2m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+89468 13010 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+90339 13591 moveto
+P$1j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+90721 13602 moveto
+P$1g
+90743 13528 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91610 13430 moveto
+P$2e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91750 13750 moveto
+P$24
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+73342 14870 moveto
+P$29
+73239 14870 moveto
+P$2a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+74026 15256 moveto
+P$2n
+73767 14576 moveto
+P$2o
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+74903 14875 moveto
+P$2p
+74798 14875 moveto
+P$2q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+75048 15006 moveto
+P$1v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+75501 15256 moveto
+P$21
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76143 15256 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76596 15251 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76748 14985 moveto
+P$1k
+77062 14912 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+77276 15256 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+77793 14745 moveto
+P$2d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+78121 15267 moveto
+P$1g
+78143 15193 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+78648 14962 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+79248 14985 moveto
+P$1k
+79562 14912 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+80210 15095 moveto
+P$2e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+80875 15484 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+81245 15267 moveto
+P$2r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+81768 14675 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+82273 15256 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+82473 14551 moveto
+P$1y
+82473 15256 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+82768 14675 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83710 15095 moveto
+P$2e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83850 15415 moveto
+P$2l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84775 15484 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+85001 15256 moveto
+P$21
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+85612 15256 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+86512 15256 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+87221 15267 moveto
+P$1g
+87243 15193 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+88043 15256 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+88368 14675 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+88948 14985 moveto
+P$1k
+89262 14912 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+89473 15256 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+89650 15415 moveto
+P$24
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+97226 16921 moveto
+P$2n
+96967 16241 moveto
+P$2o
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+97468 16339 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+98196 16916 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+98370 16439 moveto
+P$1x
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+98948 16650 moveto
+P$1k
+99262 16577 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99843 16921 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100296 16916 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100373 16216 moveto
+P$1y
+100373 16921 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100693 16410 moveto
+P$2d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100873 16216 moveto
+P$1y
+100873 16921 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+101045 16921 moveto
+P$2f
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+101673 16216 moveto
+P$1y
+101673 16921 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+101948 16650 moveto
+P$1k
+102262 16577 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+102476 16921 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+102968 16339 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+103843 16921 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+104293 17149 moveto
+P$2s
+104442 16630 moveto
+P$2t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+105175 17149 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+105401 16921 moveto
+P$21
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+106012 16921 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+106912 16921 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+107621 16932 moveto
+P$1g
+107643 16858 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+108443 16921 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+108768 16339 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+109348 16650 moveto
+P$1k
+109662 16577 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+109873 16921 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+110050 17080 moveto
+P$24
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+97282 18376 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+97448 18315 moveto
+P$1k
+97762 18242 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+97976 18586 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+98629 18586 moveto
+P$2u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+98973 17881 moveto
+P$1y
+98973 18586 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99248 18292 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99848 18315 moveto
+P$1k
+100162 18242 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100348 18336 moveto
+P$1v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+101382 18376 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+101548 18292 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+102170 18104 moveto
+P$1x
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+102673 17881 moveto
+P$1y
+102673 18586 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+102948 18292 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+103570 18104 moveto
+P$1x
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+104296 18581 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+105012 18586 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+105573 17881 moveto
+P$1y
+105573 18586 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+105996 18581 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+107042 18200 moveto
+P$29
+106939 18200 moveto
+P$2a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+107321 18596 moveto
+P$1g
+107343 18523 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+107996 18581 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+108148 18315 moveto
+P$1k
+108462 18242 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+109043 18586 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+109245 18586 moveto
+P$2f
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+109968 18004 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+110693 18814 moveto
+P$2s
+110842 18295 moveto
+P$2t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+111076 18586 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+111473 17881 moveto
+P$1y
+111473 18586 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+111793 18075 moveto
+P$2d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+112093 18075 moveto
+P$2d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+112775 18814 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+113145 18596 moveto
+P$2r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+113668 18004 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+114173 18586 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+114373 17881 moveto
+P$1y
+114373 18586 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+114668 18004 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115610 18425 moveto
+P$2e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115750 18745 moveto
+P$24
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+112592 20261 moveto
+P$2g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+113296 20246 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+113373 19546 moveto
+P$1y
+113373 20250 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+113573 20250 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+113748 20000 moveto
+P$1v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+114775 19721 moveto
+P$27
+114671 19722 moveto
+P$28
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115021 20261 moveto
+P$1g
+115043 20188 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115839 20250 moveto
+P$1j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+116148 19980 moveto
+P$1k
+116462 19907 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+116896 20246 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+117268 19964 moveto
+P$2h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+118025 19566 moveto
+P$1p
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+118473 20250 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+118748 19980 moveto
+P$1k
+119062 19907 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+119421 20261 moveto
+P$1g
+119443 20188 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+120243 20250 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+120825 19566 moveto
+P$1p
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+121276 20250 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+122165 19960 moveto
+P$1q
+122064 19960 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+122643 20250 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+123045 20261 moveto
+P$2r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+123965 19960 moveto
+P$1q
+123864 19960 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+124565 19957 moveto
+P$2b
+124464 19960 moveto
+P$2c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+124898 19966 moveto
+P$2k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+125575 20479 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+126442 19864 moveto
+P$29
+126339 19864 moveto
+P$2a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+126721 20261 moveto
+P$1g
+126743 20188 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+127543 20250 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+127773 19546 moveto
+P$1y
+127773 20250 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+128048 19980 moveto
+P$1k
+128362 19907 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+128573 20250 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+128750 20410 moveto
+P$24
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+113342 21529 moveto
+P$29
+113239 21529 moveto
+P$2a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+113965 21625 moveto
+P$1q
+113864 21625 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+114148 21622 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115039 21915 moveto
+P$1j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115348 21645 moveto
+P$1k
+115662 21572 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115876 21915 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+116775 22143 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+117642 21529 moveto
+P$29
+117539 21529 moveto
+P$2a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+117921 21926 moveto
+P$1g
+117943 21853 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+118743 21915 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+118973 21211 moveto
+P$1y
+118973 21915 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+119248 21645 moveto
+P$1k
+119562 21572 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+119773 21915 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+119950 22075 moveto
+P$24
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+128290 23580 moveto
+P$2v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+129634 23580 moveto
+P$25
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+130021 23591 moveto
+P$1g
+130043 23518 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+130473 22876 moveto
+P$1y
+130473 23580 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+130673 23580 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+131482 23371 moveto
+P$1w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+131648 23310 moveto
+P$1k
+131962 23236 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+132176 23580 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+132829 23580 moveto
+P$2u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+133173 22876 moveto
+P$1y
+133173 23580 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+133448 23286 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+134048 23310 moveto
+P$1k
+134362 23236 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+135075 23808 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+135254 23199 moveto
+P$2w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+136248 23310 moveto
+P$1k
+136562 23236 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+136776 23580 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+137665 23290 moveto
+P$1q
+137564 23290 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+137750 23740 moveto
+P$24
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1192 25372 moveto
+P$2x
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1776 26045 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2665 25754 moveto
+P$1q
+2564 25754 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3143 26045 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3596 26040 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3748 25775 moveto
+P$1k
+4062 25701 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4643 26045 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5240 25951 moveto
+P$1n
+4948 25754 moveto
+P$1o
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1193 28510 moveto
+P$2y
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1865 28219 moveto
+P$1q
+1764 28219 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2312 28510 moveto
+P$22
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3365 28216 moveto
+P$2z
+3264 28219 moveto
+P$30
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3965 28219 moveto
+P$1q
+3864 28219 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4443 28510 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4748 28240 moveto
+P$1k
+5062 28166 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5643 28510 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+6096 28505 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+6248 28240 moveto
+P$1k
+6562 28166 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7143 28510 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7875 28738 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+8054 28129 moveto
+P$2w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9048 28240 moveto
+P$1k
+9362 28166 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9576 28510 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10465 28219 moveto
+P$1q
+10364 28219 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10550 28669 moveto
+P$2l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11475 28738 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11845 28521 moveto
+P$2r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12368 27929 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12873 28510 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+13073 27805 moveto
+P$1y
+13073 28510 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+13368 27929 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+14310 28349 moveto
+P$2e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+14450 28669 moveto
+P$24
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+17334 30175 moveto
+P$25
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+17648 29905 moveto
+P$1k
+17962 29831 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+18270 29694 moveto
+P$1x
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+18776 30175 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+19610 30014 moveto
+P$2e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20265 29881 moveto
+P$2z
+20164 29884 moveto
+P$30
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20376 30175 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20921 30186 moveto
+P$1g
+20943 30112 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+21448 29881 moveto
+P$1i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+22070 29694 moveto
+P$1x
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+22573 29470 moveto
+P$1y
+22573 30175 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+22993 30403 moveto
+P$2s
+23142 29884 moveto
+P$2t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+23739 30175 moveto
+P$1j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+24048 29905 moveto
+P$1k
+24362 29831 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+24573 29470 moveto
+P$1y
+24573 30175 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+24996 30170 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+25575 30403 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+25790 30175 moveto
+P$2m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+26468 29594 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+27339 30175 moveto
+P$1j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+27721 30186 moveto
+P$1g
+27743 30112 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28610 30014 moveto
+P$2e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28750 30334 moveto
+P$24
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+64825 31840 moveto
+P$2i
+64810 31301 moveto
+P$2j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+65565 31549 moveto
+P$1q
+65464 31549 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+65768 31259 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+66496 31835 moveto
+P$1s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+66648 31569 moveto
+P$1k
+66962 31496 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+67176 31840 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+68075 32068 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+68254 31459 moveto
+P$2w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+69248 31569 moveto
+P$1k
+69562 31496 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+69776 31840 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+70665 31549 moveto
+P$1q
+70564 31549 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+70750 31999 moveto
+P$24
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+65226 33505 moveto
+P$2n
+64967 32825 moveto
+P$2o
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+65975 32975 moveto
+P$27
+65871 32977 moveto
+P$28
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+66101 33505 moveto
+P$21
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+66348 33255 moveto
+P$1v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+67326 33505 moveto
+P$2n
+67067 32825 moveto
+P$2o
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+67843 33505 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+68565 33211 moveto
+P$2b
+68464 33214 moveto
+P$2c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+68673 32800 moveto
+P$1y
+68673 33505 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+69243 33505 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+69840 33411 moveto
+P$1n
+69548 33214 moveto
+P$26
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+70168 32923 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+71043 33505 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+71493 33733 moveto
+P$2s
+71642 33214 moveto
+P$2t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+72375 33733 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+72554 33123 moveto
+P$2w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+73548 33234 moveto
+P$1k
+73862 33161 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+74076 33505 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+74965 33214 moveto
+P$1q
+74864 33214 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+75050 33664 moveto
+P$2l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+75975 33733 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76190 33505 moveto
+P$2m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76868 32923 moveto
+P$23
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+77739 33505 moveto
+P$1j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+78121 33516 moveto
+P$1g
+78143 33442 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+79010 33344 moveto
+P$2e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+79150 33664 moveto
+P$24
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+48690 35170 moveto
+P$2v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+49376 35170 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+49776 35170 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+50665 34879 moveto
+P$1q
+50564 34879 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+50776 35170 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51148 34920 moveto
+P$1v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52101 35170 moveto
+P$31
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52521 35181 moveto
+P$1g
+52543 35107 moveto
+P$1h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+53343 35170 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+53940 35076 moveto
+P$1n
+53648 34879 moveto
+P$26
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+54173 35170 moveto
+P$1u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+54373 34465 moveto
+P$1y
+54373 35170 moveto
+P$1z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+54943 35170 moveto
+P$1m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+55393 35398 moveto
+P$2s
+55542 34879 moveto
+P$2t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+56275 35398 moveto
+P$20
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+56454 34788 moveto
+P$2w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+57448 34899 moveto
+P$1k
+57762 34826 moveto
+P$1l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+57976 35170 moveto
+P$1t
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+58865 34879 moveto
+P$1q
+58764 34879 moveto
+P$1r
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+58950 35329 moveto
+P$24
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+278 36765 moveto
+P$32
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+606 36268 moveto
+P$33
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1606 36268 moveto
+P$33
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2695 36207 moveto
+P$34
+2779 36512 moveto
+P$35
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3206 36268 moveto
+P$36
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3898 36646 moveto
+P$37
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4565 36516 moveto
+P$38
+4703 36254 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5232 36773 moveto
+P$3a
+fill
+100 setlinewidth
+0 0 0 setrgbcolor
+newpath
+0 37098 moveto
+208000 0 rlineto
+stroke
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4165 37746 moveto
+P$3c
+4084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4665 37746 moveto
+P$3c
+4584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12165 37746 moveto
+P$3c
+12084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12665 37746 moveto
+P$3c
+12584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+19525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20165 37746 moveto
+P$3c
+20084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20665 37746 moveto
+P$3c
+20584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+27525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28165 37746 moveto
+P$3c
+28084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28665 37746 moveto
+P$3c
+28584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+35525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36165 37746 moveto
+P$3c
+36084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36665 37746 moveto
+P$3c
+36584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+43525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44165 37746 moveto
+P$3c
+44084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44665 37746 moveto
+P$3c
+44584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52165 37746 moveto
+P$3c
+52084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52665 37746 moveto
+P$3c
+52584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60165 37746 moveto
+P$3c
+60084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60665 37746 moveto
+P$3c
+60584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+67525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+68165 37746 moveto
+P$3c
+68084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+68665 37746 moveto
+P$3c
+68584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+75525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76165 37746 moveto
+P$3c
+76084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76665 37746 moveto
+P$3c
+76584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84165 37746 moveto
+P$3c
+84084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84665 37746 moveto
+P$3c
+84584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92165 37746 moveto
+P$3c
+92084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92665 37746 moveto
+P$3c
+92584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100165 37746 moveto
+P$3c
+100084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100665 37746 moveto
+P$3c
+100584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+107525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+108165 37746 moveto
+P$3c
+108084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+108665 37746 moveto
+P$3c
+108584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+116165 37746 moveto
+P$3c
+116084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+116665 37746 moveto
+P$3c
+116584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+123525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+124165 37746 moveto
+P$3c
+124084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+124665 37746 moveto
+P$3c
+124584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+131525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+132165 37746 moveto
+P$3c
+132084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+132665 37746 moveto
+P$3c
+132584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+139525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+140165 37746 moveto
+P$3c
+140084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+140665 37746 moveto
+P$3c
+140584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+147525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+148165 37746 moveto
+P$3c
+148084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+148665 37746 moveto
+P$3c
+148584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+155525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+156165 37746 moveto
+P$3c
+156084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+156665 37746 moveto
+P$3c
+156584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+163525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+164165 37746 moveto
+P$3c
+164084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+164665 37746 moveto
+P$3c
+164584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+171525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+172165 37746 moveto
+P$3c
+172084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+172665 37746 moveto
+P$3c
+172584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+179525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+180165 37746 moveto
+P$3c
+180084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+180665 37746 moveto
+P$3c
+180584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+187525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+188165 37746 moveto
+P$3c
+188084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+188665 37746 moveto
+P$3c
+188584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+195525 38007 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+196165 37746 moveto
+P$3c
+196084 37746 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+196665 37746 moveto
+P$3c
+196584 37746 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+754 39585 moveto
+P$3f
+423 39165 moveto
+P$3g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1195 39407 moveto
+P$34
+1279 39712 moveto
+P$35
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1706 39468 moveto
+P$36
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2440 39224 moveto
+P$3h
+2434 39973 moveto
+P$3i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2765 39716 moveto
+P$38
+2903 39454 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3432 39973 moveto
+P$3a
+fill
+100 setlinewidth
+0 0 0 setrgbcolor
+newpath
+0 40298 moveto
+208000 0 rlineto
+stroke
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3525 41207 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4165 40946 moveto
+P$3c
+4084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4665 40946 moveto
+P$3c
+4584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11525 41207 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12165 40946 moveto
+P$3c
+12084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12665 40946 moveto
+P$3c
+12584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+19525 41207 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20165 40946 moveto
+P$3c
+20084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20665 40946 moveto
+P$3c
+20584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+75525 41207 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76165 40946 moveto
+P$3c
+76084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76665 40946 moveto
+P$3c
+76584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83525 41207 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84165 40946 moveto
+P$3c
+84084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84665 40946 moveto
+P$3c
+84584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91525 41207 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92165 40946 moveto
+P$3c
+92084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92665 40946 moveto
+P$3c
+92584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+99650 41243 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+100165 40946 moveto
+P$3c
+100084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+100665 40946 moveto
+P$3c
+100584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+107650 41243 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+108165 40946 moveto
+P$3c
+108084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+108665 40946 moveto
+P$3c
+108584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+115650 41243 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+116165 40946 moveto
+P$3c
+116084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+116665 40946 moveto
+P$3c
+116584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+123650 41243 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+124165 40946 moveto
+P$3c
+124084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+124665 40946 moveto
+P$3c
+124584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+131650 41243 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+132165 40946 moveto
+P$3c
+132084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+132665 40946 moveto
+P$3c
+132584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+139650 41243 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+140165 40946 moveto
+P$3c
+140084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+140665 40946 moveto
+P$3c
+140584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+147650 41243 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+148165 40946 moveto
+P$3c
+148084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+148665 40946 moveto
+P$3c
+148584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+155650 41243 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+156165 40946 moveto
+P$3c
+156084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+156665 40946 moveto
+P$3c
+156584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+163650 41243 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+164165 40946 moveto
+P$3c
+164084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+164665 40946 moveto
+P$3c
+164584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+171650 41243 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+172165 40946 moveto
+P$3c
+172084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+172665 40946 moveto
+P$3c
+172584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+179650 41243 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+180165 40946 moveto
+P$3c
+180084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+180665 40946 moveto
+P$3c
+180584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+187650 41243 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+188165 40946 moveto
+P$3c
+188084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+188665 40946 moveto
+P$3c
+188584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+195650 41243 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+196165 40946 moveto
+P$3c
+196084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+196665 40946 moveto
+P$3c
+196584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+203525 41207 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+204165 40946 moveto
+P$3c
+204084 40946 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+204665 40946 moveto
+P$3c
+204584 40946 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+400 42399 moveto
+P$3k
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+998 43046 moveto
+P$37
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1718 42929 moveto
+P$3l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2495 42607 moveto
+P$34
+2579 42912 moveto
+P$35
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3259 43049 moveto
+P$3m
+fill
+100 setlinewidth
+0 0 0 setrgbcolor
+newpath
+0 43498 moveto
+208000 0 rlineto
+stroke
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+19525 44407 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20165 44146 moveto
+P$3c
+20084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20665 44146 moveto
+P$3c
+20584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+27525 44407 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28165 44146 moveto
+P$3c
+28084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28665 44146 moveto
+P$3c
+28584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+35525 44407 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36165 44146 moveto
+P$3c
+36084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36665 44146 moveto
+P$3c
+36584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+43525 44407 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44165 44146 moveto
+P$3c
+44084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44665 44146 moveto
+P$3c
+44584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51525 44407 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52165 44146 moveto
+P$3c
+52084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52665 44146 moveto
+P$3c
+52584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+67525 44407 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+68165 44146 moveto
+P$3c
+68084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+68665 44146 moveto
+P$3c
+68584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+75650 44443 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+76165 44146 moveto
+P$3c
+76084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+76665 44146 moveto
+P$3c
+76584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+83650 44443 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+84165 44146 moveto
+P$3c
+84084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+84665 44146 moveto
+P$3c
+84584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+91650 44443 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+92165 44146 moveto
+P$3c
+92084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+92665 44146 moveto
+P$3c
+92584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+99650 44443 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+100165 44146 moveto
+P$3c
+100084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+100665 44146 moveto
+P$3c
+100584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+107650 44443 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+108165 44146 moveto
+P$3c
+108084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+108665 44146 moveto
+P$3c
+108584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+115650 44443 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+116165 44146 moveto
+P$3c
+116084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+116665 44146 moveto
+P$3c
+116584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+123650 44443 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+124165 44146 moveto
+P$3c
+124084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+124665 44146 moveto
+P$3c
+124584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+131650 44443 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+132165 44146 moveto
+P$3c
+132084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+132665 44146 moveto
+P$3c
+132584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+139650 44443 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+140165 44146 moveto
+P$3c
+140084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+140665 44146 moveto
+P$3c
+140584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+147650 44443 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+148165 44146 moveto
+P$3c
+148084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+148665 44146 moveto
+P$3c
+148584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+155650 44443 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+156165 44146 moveto
+P$3c
+156084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+156665 44146 moveto
+P$3c
+156584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+163650 44443 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+164165 44146 moveto
+P$3c
+164084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+164665 44146 moveto
+P$3c
+164584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+171650 44443 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+172165 44146 moveto
+P$3c
+172084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+172665 44146 moveto
+P$3c
+172584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+179525 44407 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+180165 44146 moveto
+P$3c
+180084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+180665 44146 moveto
+P$3c
+180584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+187525 44407 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+188165 44146 moveto
+P$3c
+188084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+188665 44146 moveto
+P$3c
+188584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+195525 44407 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+196165 44146 moveto
+P$3c
+196084 44146 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+196665 44146 moveto
+P$3c
+196584 44146 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+260 45615 moveto
+P$3n
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+698 46246 moveto
+P$37
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1432 46373 moveto
+P$3o
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1840 45624 moveto
+P$3h
+1834 46373 moveto
+P$3i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2198 46246 moveto
+P$37
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3159 46249 moveto
+P$3m
+fill
+100 setlinewidth
+0 0 0 setrgbcolor
+newpath
+0 46698 moveto
+208000 0 rlineto
+stroke
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4165 47346 moveto
+P$3c
+4084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4665 47346 moveto
+P$3c
+4584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12165 47346 moveto
+P$3c
+12084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12665 47346 moveto
+P$3c
+12584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+19525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20165 47346 moveto
+P$3c
+20084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20665 47346 moveto
+P$3c
+20584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+27525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28165 47346 moveto
+P$3c
+28084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28665 47346 moveto
+P$3c
+28584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+35525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36165 47346 moveto
+P$3c
+36084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36665 47346 moveto
+P$3c
+36584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+43525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44165 47346 moveto
+P$3c
+44084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44665 47346 moveto
+P$3c
+44584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52165 47346 moveto
+P$3c
+52084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52665 47346 moveto
+P$3c
+52584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60165 47346 moveto
+P$3c
+60084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60665 47346 moveto
+P$3c
+60584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+75525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76165 47346 moveto
+P$3c
+76084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76665 47346 moveto
+P$3c
+76584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84165 47346 moveto
+P$3c
+84084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84665 47346 moveto
+P$3c
+84584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92165 47346 moveto
+P$3c
+92084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92665 47346 moveto
+P$3c
+92584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100165 47346 moveto
+P$3c
+100084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100665 47346 moveto
+P$3c
+100584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+107525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+108165 47346 moveto
+P$3c
+108084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+108665 47346 moveto
+P$3c
+108584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+116165 47346 moveto
+P$3c
+116084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+116665 47346 moveto
+P$3c
+116584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+123525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+124165 47346 moveto
+P$3c
+124084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+124665 47346 moveto
+P$3c
+124584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+131525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+132165 47346 moveto
+P$3c
+132084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+132665 47346 moveto
+P$3c
+132584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+139525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+140165 47346 moveto
+P$3c
+140084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+140665 47346 moveto
+P$3c
+140584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+147525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+148165 47346 moveto
+P$3c
+148084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+148665 47346 moveto
+P$3c
+148584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+155525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+156165 47346 moveto
+P$3c
+156084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+156665 47346 moveto
+P$3c
+156584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+163525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+164165 47346 moveto
+P$3c
+164084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+164665 47346 moveto
+P$3c
+164584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+171525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+172165 47346 moveto
+P$3c
+172084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+172665 47346 moveto
+P$3c
+172584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+179525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+180165 47346 moveto
+P$3c
+180084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+180665 47346 moveto
+P$3c
+180584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+187525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+188165 47346 moveto
+P$3c
+188084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+188665 47346 moveto
+P$3c
+188584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+195525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+196165 47346 moveto
+P$3c
+196084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+196665 47346 moveto
+P$3c
+196584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+203525 47607 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+204165 47346 moveto
+P$3c
+204084 47346 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+204665 47346 moveto
+P$3c
+204584 47346 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+815 49573 moveto
+P$3p
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1065 49316 moveto
+P$38
+1203 49054 moveto
+P$39
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+1921 49004 moveto
+P$3q
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+2500 49315 moveto
+P$3r
+2385 49315 moveto
+P$3s
+fill
+100 setlinewidth
+0 0 0 setrgbcolor
+newpath
+0 49898 moveto
+208000 0 rlineto
+stroke
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3525 50807 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4165 50546 moveto
+P$3c
+4084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4665 50546 moveto
+P$3c
+4584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11525 50807 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12165 50546 moveto
+P$3c
+12084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12665 50546 moveto
+P$3c
+12584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+19525 50807 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20165 50546 moveto
+P$3c
+20084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20665 50546 moveto
+P$3c
+20584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+27525 50807 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28165 50546 moveto
+P$3c
+28084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28665 50546 moveto
+P$3c
+28584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+35525 50807 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36165 50546 moveto
+P$3c
+36084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36665 50546 moveto
+P$3c
+36584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+43525 50807 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44165 50546 moveto
+P$3c
+44084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44665 50546 moveto
+P$3c
+44584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+51650 50843 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+52165 50546 moveto
+P$3c
+52084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+52665 50546 moveto
+P$3c
+52584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+59665 50682 moveto
+P$3t
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+60165 50546 moveto
+P$3c
+60084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+60665 50546 moveto
+P$3c
+60584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+67650 50843 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+68165 50546 moveto
+P$3c
+68084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+68665 50546 moveto
+P$3c
+68584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+75650 50843 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+76165 50546 moveto
+P$3c
+76084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+76665 50546 moveto
+P$3c
+76584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+83650 50843 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+84165 50546 moveto
+P$3c
+84084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+84665 50546 moveto
+P$3c
+84584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91525 50807 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92165 50546 moveto
+P$3c
+92084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92665 50546 moveto
+P$3c
+92584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99525 50807 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100165 50546 moveto
+P$3c
+100084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100665 50546 moveto
+P$3c
+100584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+107525 50807 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+108165 50546 moveto
+P$3c
+108084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+108665 50546 moveto
+P$3c
+108584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115525 50807 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+116165 50546 moveto
+P$3c
+116084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+116665 50546 moveto
+P$3c
+116584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+123650 50843 moveto
+P$3j
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+124165 50546 moveto
+P$3c
+124084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+1 0 0 setrgbcolor
+newpath
+124665 50546 moveto
+P$3c
+124584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+131525 50807 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+132165 50546 moveto
+P$3c
+132084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+132665 50546 moveto
+P$3c
+132584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+139525 50807 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+140165 50546 moveto
+P$3c
+140084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+140665 50546 moveto
+P$3c
+140584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+147525 50807 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+148165 50546 moveto
+P$3c
+148084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+148665 50546 moveto
+P$3c
+148584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+155525 50807 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+156165 50546 moveto
+P$3c
+156084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+156665 50546 moveto
+P$3c
+156584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+163525 50807 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+164165 50546 moveto
+P$3c
+164084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+164665 50546 moveto
+P$3c
+164584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+171525 50807 moveto
+P$3b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+172165 50546 moveto
+P$3c
+172084 50546 moveto
+P$3d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+172665 50546 moveto
+P$3c
+172584 50546 moveto
+P$3e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3960 53558 moveto
+P$e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4462 53407 moveto
+P$f
+4371 53407 moveto
+P$g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11960 53558 moveto
+P$e
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12306 53697 moveto
+P$h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20056 53697 moveto
+P$h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28195 53736 moveto
+P$i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36210 53558 moveto
+P$j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44145 53593 moveto
+P$k
+44060 53193 moveto
+P$l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51987 53353 moveto
+P$m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60220 53533 moveto
+P$n
+60018 53708 moveto
+P$o
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+67848 53236 moveto
+P$p
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76192 53241 moveto
+P$q
+76123 53560 moveto
+P$r
+76104 53241 moveto
+P$s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83782 53282 moveto
+P$t
+83993 53113 moveto
+P$u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91806 53697 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92462 53407 moveto
+P$f
+92371 53407 moveto
+P$g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99806 53697 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100306 53697 moveto
+P$h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+107806 53697 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+108445 53736 moveto
+P$i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115806 53697 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+116460 53558 moveto
+P$j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+123806 53697 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+124395 53593 moveto
+P$k
+124310 53193 moveto
+P$l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+131806 53697 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+132237 53353 moveto
+P$m
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+139806 53697 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+140470 53533 moveto
+P$n
+140268 53708 moveto
+P$o
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+147806 53697 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+148098 53236 moveto
+P$p
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+155806 53697 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+156442 53241 moveto
+P$q
+156373 53560 moveto
+P$r
+156354 53241 moveto
+P$s
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+163806 53697 moveto
+P$v
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+164032 53282 moveto
+P$t
+164243 53113 moveto
+P$u
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+171945 53736 moveto
+P$w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+172462 53407 moveto
+P$f
+172371 53407 moveto
+P$g
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+179945 53736 moveto
+P$w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+180306 53697 moveto
+P$h
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+187945 53736 moveto
+P$w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+188445 53736 moveto
+P$i
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+195945 53736 moveto
+P$w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+196460 53558 moveto
+P$j
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+203945 53736 moveto
+P$w
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+204395 53593 moveto
+P$k
+204310 53193 moveto
+P$l
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+3720 52536 moveto
+P$0
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4662 52305 moveto
+P$1
+4573 52305 moveto
+P$2
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11603 52536 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+12203 52405 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+20020 52552 moveto
+P$5
+20376 52305 moveto
+P$6
+20482 52103 moveto
+P$7
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+27603 52536 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+28209 52041 moveto
+P$8
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+35757 52243 moveto
+P$9
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+36475 52064 moveto
+P$a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+43567 52360 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+44326 52068 moveto
+P$c
+44392 52302 moveto
+P$d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+51517 52360 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+52203 52405 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+59720 52536 moveto
+P$0
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+60662 52305 moveto
+P$1
+60573 52305 moveto
+P$2
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+67603 52536 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+68203 52405 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+76020 52552 moveto
+P$5
+76376 52305 moveto
+P$6
+76482 52103 moveto
+P$7
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+83603 52536 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+84209 52041 moveto
+P$8
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+91757 52243 moveto
+P$9
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+92475 52064 moveto
+P$a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+99567 52360 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+100326 52068 moveto
+P$c
+100392 52302 moveto
+P$d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+107517 52360 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+108203 52405 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115720 52536 moveto
+P$0
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+116662 52305 moveto
+P$1
+116573 52305 moveto
+P$2
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+123603 52536 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+124203 52405 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+132020 52552 moveto
+P$5
+132376 52305 moveto
+P$6
+132482 52103 moveto
+P$7
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+139603 52536 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+140209 52041 moveto
+P$8
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+147757 52243 moveto
+P$9
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+148475 52064 moveto
+P$a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+155567 52360 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+156326 52068 moveto
+P$c
+156392 52302 moveto
+P$d
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+163517 52360 moveto
+P$b
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+164203 52405 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+171720 52536 moveto
+P$0
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+172662 52305 moveto
+P$1
+172573 52305 moveto
+P$2
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+179603 52536 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+180203 52405 moveto
+P$4
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+188020 52552 moveto
+P$5
+188376 52305 moveto
+P$6
+188482 52103 moveto
+P$7
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+195603 52536 moveto
+P$3
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+196209 52041 moveto
+P$8
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+203757 52243 moveto
+P$9
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+204475 52064 moveto
+P$a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+4793 54395 moveto
+P$x
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5420 54560 moveto
+P$y
+5457 54846 moveto
+P$z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+5954 54620 moveto
+P$10
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+6812 55075 moveto
+P$11
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7420 54560 moveto
+P$y
+7457 54846 moveto
+P$z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+7970 54687 moveto
+P$12
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+8470 55140 moveto
+P$13
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+9648 55123 moveto
+P$14
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10254 54726 moveto
+P$15
+10082 54726 moveto
+P$16
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+10848 55123 moveto
+P$14
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+11459 54909 moveto
+P$17
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+108556 54787 moveto
+P$18
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+109239 54559 moveto
+P$19
+109232 54618 moveto
+P$1a
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+109896 54832 moveto
+P$1b
+109521 54342 moveto
+P$1c
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+110420 54687 moveto
+P$12
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+111062 55075 moveto
+P$11
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+111670 54560 moveto
+P$y
+111707 54846 moveto
+P$z
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+112220 54687 moveto
+P$12
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+112720 55140 moveto
+P$13
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+113898 55123 moveto
+P$14
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+114504 54726 moveto
+P$15
+114332 54726 moveto
+P$16
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115098 55123 moveto
+P$14
+fill
+0 setlinewidth
+[] 0 setdash
+0 0 0 setrgbcolor
+newpath
+115709 54909 moveto
+P$17
+fill
+grestore
+showpage
+%plantuml done
+%%EOF
diff --git a/20-implementierungsheft/assets/gantt.png b/20-implementierungsheft/assets/gantt.png
new file mode 100644
index 0000000..b1b7e17
--- /dev/null
+++ b/20-implementierungsheft/assets/gantt.png
Binary files differ
diff --git a/20-implementierungsheft/assets/help.png b/20-implementierungsheft/assets/help.png
new file mode 100644
index 0000000..39a1b84
--- /dev/null
+++ b/20-implementierungsheft/assets/help.png
Binary files differ
diff --git a/20-implementierungsheft/assets/lastupdate.png b/20-implementierungsheft/assets/lastupdate.png
new file mode 100644
index 0000000..e9b7f5c
--- /dev/null
+++ b/20-implementierungsheft/assets/lastupdate.png
Binary files differ
diff --git a/20-implementierungsheft/assets/loading.png b/20-implementierungsheft/assets/loading.png
new file mode 100644
index 0000000..cc95763
--- /dev/null
+++ b/20-implementierungsheft/assets/loading.png
Binary files differ
diff --git a/20-implementierungsheft/assets/logo.pdf b/20-implementierungsheft/assets/logo.pdf
new file mode 100644
index 0000000..91fd334
--- /dev/null
+++ b/20-implementierungsheft/assets/logo.pdf
Binary files differ
diff --git a/20-implementierungsheft/assets/logo.svg b/20-implementierungsheft/assets/logo.svg
new file mode 100644
index 0000000..1609066
--- /dev/null
+++ b/20-implementierungsheft/assets/logo.svg
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.2"
+ width="87.589989mm"
+ height="52.16547mm"
+ viewBox="0 0 8758.9989 5216.547"
+ preserveAspectRatio="xMidYMid"
+ fill-rule="evenodd"
+ stroke-width="28.222"
+ stroke-linejoin="round"
+ xml:space="preserve"
+ id="svg206"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <defs
+ class="ClipPathGroup"
+ id="defs8" />
+ <defs
+ id="defs51"><font
+ id="EmbeddedFont_1"
+ horiz-adv-x="2048"
+ horiz-origin-x="0"
+ horiz-origin-y="0"
+ vert-origin-x="512"
+ vert-origin-y="768"
+ vert-adv-y="1024">
+ <font-face
+ font-family="Noto Sans Display Light embedded"
+ units-per-em="2048"
+ font-weight="normal"
+ font-style="normal"
+ ascent="2170"
+ descent="609"
+ id="font-face10" />
+ <missing-glyph
+ horiz-adv-x="2048"
+ d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"
+ id="missing-glyph12" />
+ <glyph
+ unicode="y"
+ horiz-adv-x="927"
+ d="M 2,1089 L 127,1089 367,413 C 388,352 407,298 422,250 437,203 449,161 457,124 L 463,124 C 471,156 483,196 498,246 513,296 530,350 551,409 L 786,1089 913,1089 453,-193 C 418,-290 377,-364 328,-416 279,-468 213,-494 131,-494 107,-494 84,-493 63,-490 43,-487 25,-482 8,-476 L 8,-377 C 23,-383 40,-387 57,-391 75,-394 95,-396 117,-396 170,-396 214,-378 249,-342 284,-307 314,-252 340,-179 L 403,4 2,1089 Z"
+ id="glyph14" />
+ <glyph
+ unicode="t"
+ horiz-adv-x="610"
+ d="M 465,80 C 494,80 521,82 547,87 573,91 595,97 614,105 L 614,11 C 594,3 569,-5 541,-11 512,-17 481,-20 449,-20 363,-20 296,5 249,56 202,106 178,189 178,304 L 178,996 27,996 27,1061 178,1100 219,1350 295,1350 295,1090 608,1090 608,996 295,996 295,310 C 295,157 352,80 465,80 Z"
+ id="glyph16" />
+ <glyph
+ unicode="s"
+ horiz-adv-x="742"
+ d="M 817,289 C 817,191 782,115 713,61 643,7 545,-20 418,-20 347,-20 284,-14 228,-1 173,12 126,29 88,50 L 88,162 C 134,138 186,118 244,102 301,86 360,78 420,78 520,78 592,96 636,133 680,169 702,218 702,281 702,341 679,387 632,419 585,451 515,484 422,519 359,542 303,565 255,589 207,613 169,643 142,680 116,717 102,768 102,832 102,919 136,987 204,1037 271,1086 361,1110 473,1110 535,1110 592,1104 646,1092 700,1080 750,1063 795,1043 L 754,946 C 713,964 667,980 617,993 568,1006 518,1012 469,1012 388,1012 326,997 283,967 239,937 217,893 217,836 217,792 228,758 249,733 270,707 301,686 342,668 383,650 433,630 492,609 553,585 608,562 657,537 707,512 745,481 774,443 803,405 817,353 817,289 Z"
+ id="glyph18" />
+ <glyph
+ unicode="r"
+ horiz-adv-x="583"
+ d="M 596,1108 C 646,1108 692,1102 733,1091 L 717,983 C 674,995 632,1001 590,1001 497,1001 423,964 368,890 312,817 285,719 285,598 L 285,-1 168,-1 168,1089 266,1089 279,886 285,886 C 311,948 350,1000 402,1043 455,1086 520,1108 596,1108 Z"
+ id="glyph20" />
+ <glyph
+ unicode="o"
+ horiz-adv-x="927"
+ d="M 1030,547 C 1030,433 1012,333 976,248 940,164 887,98 818,51 749,4 665,-20 565,-20 471,-20 390,3 322,50 253,96 201,162 164,247 127,333 109,433 109,547 109,723 150,861 232,961 315,1061 429,1110 575,1110 672,1110 755,1087 822,1040 890,993 941,927 977,842 1012,757 1030,659 1030,547 Z M 229,547 C 229,407 257,294 312,208 368,123 453,80 567,80 685,80 771,123 826,209 882,295 909,408 909,547 909,637 898,717 875,787 851,856 815,911 766,951 717,990 653,1010 573,1010 459,1010 373,969 315,887 258,805 229,692 229,547 Z"
+ id="glyph22" />
+ <glyph
+ unicode="n"
+ horiz-adv-x="847"
+ d="M 633,1110 C 749,1110 838,1078 900,1014 962,950 993,850 993,713 L 993,1 877,1 877,705 C 877,809 854,885 810,935 766,985 701,1010 616,1010 395,1010 285,871 285,594 L 285,1 168,1 168,1090 262,1090 279,901 287,901 C 314,962 357,1011 416,1051 474,1091 547,1110 633,1110 Z"
+ id="glyph24" />
+ <glyph
+ unicode="m"
+ horiz-adv-x="1430"
+ d="M 1245,1110 C 1348,1110 1427,1080 1485,1018 1542,957 1571,860 1571,727 L 1571,1 1454,1 1454,723 C 1454,820 1434,892 1393,939 1352,986 1296,1010 1227,1010 1130,1010 1056,980 1005,919 953,858 928,764 928,637 L 928,1 811,1 811,723 C 811,820 791,892 750,939 709,986 653,1010 584,1010 487,1010 413,978 361,914 310,850 285,751 285,619 L 285,1 168,1 168,1090 262,1090 279,918 287,918 C 313,971 352,1016 403,1054 455,1092 521,1110 600,1110 675,1110 739,1093 791,1059 842,1025 879,975 899,908 L 907,908 C 936,972 980,1022 1038,1057 1097,1093 1166,1110 1245,1110 Z"
+ id="glyph26" />
+ <glyph
+ unicode="i"
+ horiz-adv-x="187"
+ d="M 227,1493 C 279,1493 305,1464 305,1405 305,1345 279,1315 227,1315 175,1315 150,1345 150,1405 150,1464 175,1493 227,1493 Z M 285,1090 L 285,0 168,0 168,1090 285,1090 Z"
+ id="glyph28" />
+ <glyph
+ unicode="h"
+ horiz-adv-x="847"
+ d="M 285,1059 C 285,1031 284,1003 283,977 281,951 279,926 276,901 L 285,901 C 312,962 355,1011 413,1051 471,1091 543,1110 629,1110 746,1110 836,1078 899,1014 962,950 993,850 993,713 L 993,1 877,1 877,705 C 877,809 854,885 810,935 766,985 701,1010 616,1010 395,1010 285,871 285,594 L 285,1 168,1 168,1557 285,1557 285,1059 Z"
+ id="glyph30" />
+ <glyph
+ unicode="f"
+ horiz-adv-x="689"
+ d="M 575,995 L 332,995 332,-1 213,-1 213,995 27,995 27,1058 213,1093 213,1202 C 213,1445 316,1566 522,1566 559,1566 593,1563 623,1557 653,1551 680,1544 705,1536 L 678,1439 C 655,1448 630,1454 603,1460 577,1465 550,1468 524,1468 456,1468 407,1447 377,1405 347,1362 332,1295 332,1202 L 332,1089 575,1089 575,995 Z"
+ id="glyph32" />
+ <glyph
+ unicode="e"
+ horiz-adv-x="874"
+ d="M 559,1110 C 646,1110 720,1089 779,1046 839,1003 883,944 913,869 943,794 958,708 958,611 L 958,531 229,531 C 231,386 262,275 325,198 387,121 476,82 592,82 656,82 712,88 759,100 806,111 858,130 915,156 L 915,50 C 865,25 814,7 764,-4 713,-15 655,-20 588,-20 434,-20 315,30 232,129 150,229 109,365 109,537 109,648 126,746 162,832 197,918 249,986 315,1036 382,1085 464,1110 559,1110 Z M 559,1012 C 465,1012 389,979 333,912 276,845 243,750 233,627 L 838,627 C 838,742 815,835 769,906 723,977 653,1012 559,1012 Z"
+ id="glyph34" />
+ <glyph
+ unicode="d"
+ horiz-adv-x="900"
+ d="M 535,-20 C 398,-20 293,27 219,120 145,214 109,352 109,535 109,722 147,865 224,963 301,1061 408,1110 545,1110 629,1110 698,1090 752,1050 805,1010 845,961 872,904 L 881,904 C 879,935 878,970 876,1009 873,1048 872,1084 872,1117 L 872,1557 989,1557 989,0 895,0 879,191 872,191 C 845,132 805,82 751,41 697,0 625,-20 535,-20 Z M 553,80 C 669,80 752,119 801,195 850,271 875,382 875,527 L 875,545 C 875,695 850,810 801,890 752,970 671,1010 559,1010 451,1010 369,969 313,886 257,804 229,686 229,533 229,385 256,273 309,196 363,119 444,80 553,80 Z"
+ id="glyph36" />
+ <glyph
+ unicode="c"
+ horiz-adv-x="768"
+ d="M 580,-20 C 429,-20 313,29 231,127 150,226 109,363 109,539 109,662 129,766 170,850 211,935 269,1000 343,1044 417,1088 504,1110 602,1110 651,1110 698,1106 742,1096 787,1087 825,1074 858,1057 L 825,957 C 791,972 754,984 714,993 673,1002 636,1006 600,1006 481,1006 390,964 326,881 261,798 229,685 229,541 229,405 258,294 314,210 371,126 459,84 580,84 630,84 678,90 723,101 768,112 809,125 846,142 L 846,37 C 812,20 773,6 729,-5 685,-15 636,-20 580,-20 Z"
+ id="glyph38" />
+ <glyph
+ unicode="a"
+ horiz-adv-x="822"
+ d="M 535,1108 C 651,1108 737,1078 795,1018 852,958 881,863 881,734 L 881,0 793,0 772,185 766,185 C 729,123 684,74 631,36 578,-1 503,-20 408,-20 311,-20 233,6 176,59 119,111 90,187 90,285 90,394 132,477 215,533 298,589 420,621 580,629 L 764,639 764,715 C 764,822 744,897 705,942 665,987 606,1010 528,1010 477,1010 426,1002 378,987 329,972 281,953 231,928 L 195,1022 C 242,1047 295,1067 352,1084 410,1100 470,1108 535,1108 Z M 594,543 C 466,536 370,512 307,470 244,429 213,367 213,285 213,217 232,165 271,131 310,96 363,78 430,78 535,78 617,111 676,176 735,240 764,330 764,445 L 764,551 594,543 Z"
+ id="glyph40" />
+ <glyph
+ unicode="S"
+ horiz-adv-x="875"
+ d="M 956,381 C 956,294 936,220 894,160 852,100 796,55 724,25 652,-5 571,-20 479,-20 396,-20 324,-14 262,-2 201,11 147,26 102,46 L 102,162 C 152,142 209,124 273,109 338,94 409,87 485,87 589,87 673,110 738,158 803,206 836,278 836,373 836,431 823,478 798,515 772,553 734,586 682,614 630,642 565,670 485,699 410,726 345,757 291,791 236,825 194,868 164,919 134,970 119,1035 119,1112 119,1192 138,1259 176,1314 214,1369 267,1411 333,1440 399,1469 474,1483 559,1483 626,1483 689,1476 750,1463 810,1449 868,1430 924,1405 L 883,1303 C 772,1352 663,1377 555,1377 462,1377 386,1354 328,1310 269,1266 240,1200 240,1114 240,1052 252,1001 278,964 303,926 340,895 389,869 438,843 498,817 567,791 648,762 717,731 775,698 833,664 878,623 909,573 941,523 956,459 956,381 Z"
+ id="glyph42" />
+ <glyph
+ unicode="P"
+ horiz-adv-x="848"
+ d="M 539,1462 C 869,1462 1034,1325 1034,1049 1034,908 992,798 907,718 823,638 690,598 510,598 L 311,598 311,0 193,0 193,1462 539,1462 Z M 528,1358 L 311,1358 311,702 498,702 C 629,702 730,727 803,776 875,825 911,914 911,1043 911,1152 880,1232 818,1282 756,1333 659,1358 528,1358 Z"
+ id="glyph44" />
+ <glyph
+ unicode="E"
+ horiz-adv-x="769"
+ d="M 950,0 L 193,0 193,1462 950,1462 950,1356 311,1356 311,821 913,821 913,715 311,715 311,107 950,107 950,0 Z"
+ id="glyph46" />
+ <glyph
+ unicode=" "
+ horiz-adv-x="503"
+ id="glyph48" />
+ </font></defs>
+ <defs
+ class="TextShapeIndex"
+ id="defs55" />
+ <defs
+ class="EmbeddedBulletChars"
+ id="defs87" />
+
+ <g
+ id="id10"
+ clip-path="none"
+ transform="translate(-700.00001,-2550)">
+
+ <text
+ class="SVGTextShape"
+ id="text151"
+ x="217.60002"
+ y="-56.506969"
+ style="letter-spacing:4.7625px;word-spacing:104.775px"><tspan
+ class="TextParagraph"
+ font-family="'Noto Sans Display Light', sans-serif"
+ font-size="494px"
+ font-weight="400"
+ id="tspan149"><tspan
+ class="TextPosition"
+ x="650.59998"
+ y="7647.4932"
+ id="tspan147"><tspan
+ fill="#808080"
+ stroke="none"
+ style="white-space:pre"
+ id="tspan145"
+ dx="2.1199999">Podcast Synchronisation made Efficient</tspan></tspan></tspan></text>
+ </g><g
+ id="g1277"
+ transform="translate(-700.00001,-2550)"><path
+ id="path131-3"
+ d="m 6694.0006,4763 c -559.5515,4.407 -980.3924,428.0893 -986.038,985.9863 18.2894,552.8957 454.3127,974.1166 989.0352,986.0379 v -235.0244 c -406.8751,-27.3888 -715.1078,-362.1649 -719.0259,-748.0163 12.7874,-421.0793 236.9242,-746.3999 750.0318,-749.98 895.0688,1.4728 1915.5158,0 2730.9957,0 V 4763 Z"
+ style="fill:#0084d1;fill-opacity:1"
+ clip-path="none" /><path
+ id="path131"
+ d="m 6685.0183,2562.996 c -559.5515,4.407 -980.3924,428.0893 -986.038,985.9863 18.2894,552.8957 454.3127,974.1167 989.0352,986.038 v -235.0244 c -406.8751,-27.3888 -715.1078,-362.165 -719.0259,-748.0164 12.7874,-421.0792 236.9242,-746.3998 750.0318,-749.98 895.0688,1.4728 1915.5158,0 2730.996,0 V 2562.996 Z"
+ style="fill:#0084d1;fill-opacity:1"
+ clip-path="none" /></g><g
+ id="g1263"
+ transform="translate(-700.00001,-2550)"><path
+ fill="none"
+ stroke="#069a2e"
+ stroke-width="265"
+ stroke-linejoin="round"
+ d="m 2793,5962 c 1283,0 429,-2762 1712,-2762"
+ id="path124" /><path
+ id="path110-6"
+ d="M 3198.0212,6550 V 6300.0411 H 2448.0411 V 6050.0305 5550.0094 H 2198.0305 V 6300.0411 6550 H 2448.0411 2698 Z"
+ style="fill:#069a2e;fill-opacity:1" /><path
+ id="path110"
+ d="m 4111.997,2550.0252 v 249.9589 h 749.9801 v 250.0106 500.0211 h 250.0106 v -750.0317 -249.9589 h -250.0106 -249.9589 z"
+ style="fill:#069a2e;fill-opacity:1" /></g>
+ <g
+ id="g1249"
+ transform="translate(-700.00001,-2550)"><path
+ fill="#ff8000"
+ stroke="none"
+ d="M 2215,4164 C 2412.6918,3832.6035 2379.3124,3383.7591 2135.4189,3084.8193 1956.8564,2857.4026 1671.3097,2718.8851 1382,2721 c 0,-52.6667 0,-105.3333 0,-158 -60.1303,-1.0792 190.6585,-1.2724 121.9814,2.7933 434.6311,30.3756 832.6257,336.7309 974.9655,748.2365 148.7336,402.6249 41.0263,883.7477 -266.0719,1183.8452 C 1996.6852,4716.1853 1689.0048,4838.6187 1382,4830 c 0,-61.6667 0,-123.3333 0,-185 338.199,2.9253 666.226,-186.816 833,-481 z"
+ id="path193" /><path
+ fill="#ff8000"
+ stroke="none"
+ d="m 1936,3979 c 175.8129,-283.3241 59.7943,-700.6319 -239.8255,-849.407 -94.2713,-50.9942 -201.887,-77.9344 -309.1745,-74.593 0,-57 0,-114 0,-171 396.3865,-24.0968 777.5367,297.6517 818.5878,693.1841 44.0348,337.5467 -149.4277,694.9971 -466.4953,826.9493 -110.1027,49.0687 -231.5272,73.543 -352.0925,67.8666 0,-61.6667 0,-123.3333 0,-185 220.6353,7.5804 440.8554,-115.3286 549,-308 z"
+ id="path186" /><path
+ fill="#ff8000"
+ stroke="none"
+ d="m 1659,3822 c 86.3933,-138.0398 18.2474,-344.669 -134.6962,-402.3205 C 1483.44,3402.2177 1438.3524,3394.2432 1394,3398 c 0,-56.6667 0,-113.3333 0,-170 223.1964,-19.6143 444.7886,153.3254 478.4886,375.1817 32.646,181.6951 -54.6854,381.4331 -217.3127,472.2205 -78.2316,46.131 -170.3991,69.3119 -261.1759,62.5978 0,-58.3333 0,-116.6667 0,-175 105.6736,9.5509 212.8962,-49.2218 265,-141 z"
+ id="path179" /><rect
+ class="BoundingBox"
+ stroke="none"
+ fill="none"
+ x="700"
+ y="2550"
+ width="501"
+ height="4001"
+ id="rect136"
+ style="fill:#ff8000;fill-opacity:1" /></g>
+
+</svg>
diff --git a/20-implementierungsheft/assets/navbar.png b/20-implementierungsheft/assets/navbar.png
new file mode 100644
index 0000000..dd9f8e8
--- /dev/null
+++ b/20-implementierungsheft/assets/navbar.png
Binary files differ
diff --git a/20-implementierungsheft/assets/password-margin.png b/20-implementierungsheft/assets/password-margin.png
new file mode 100644
index 0000000..d9d4fa3
--- /dev/null
+++ b/20-implementierungsheft/assets/password-margin.png
Binary files differ
diff --git a/20-implementierungsheft/assets/password.png b/20-implementierungsheft/assets/password.png
new file mode 100644
index 0000000..68248a0
--- /dev/null
+++ b/20-implementierungsheft/assets/password.png
Binary files differ
diff --git a/20-implementierungsheft/assets/passwordinput.png b/20-implementierungsheft/assets/passwordinput.png
new file mode 100644
index 0000000..2419828
--- /dev/null
+++ b/20-implementierungsheft/assets/passwordinput.png
Binary files differ
diff --git a/20-implementierungsheft/assets/passwordvalidator.png b/20-implementierungsheft/assets/passwordvalidator.png
new file mode 100644
index 0000000..b089f7c
--- /dev/null
+++ b/20-implementierungsheft/assets/passwordvalidator.png
Binary files differ
diff --git a/20-implementierungsheft/assets/progresstime.png b/20-implementierungsheft/assets/progresstime.png
new file mode 100644
index 0000000..6877a97
--- /dev/null
+++ b/20-implementierungsheft/assets/progresstime.png
Binary files differ
diff --git a/20-implementierungsheft/assets/subscription.png b/20-implementierungsheft/assets/subscription.png
new file mode 100644
index 0000000..58a84f9
--- /dev/null
+++ b/20-implementierungsheft/assets/subscription.png
Binary files differ
diff --git a/20-implementierungsheft/implementierungsheft.tex b/20-implementierungsheft/implementierungsheft.tex
new file mode 100644
index 0000000..ed54d59
--- /dev/null
+++ b/20-implementierungsheft/implementierungsheft.tex
@@ -0,0 +1,98 @@
+% \documentclass[a4paper, UTF8, 12pt]{article}
+% \documentclass[a4paper, UTF8, 12pt]{scrbook}
+\documentclass[parskip=half, a4paper, 12pt]{scrartcl}
+
+\usepackage[german]{babel}
+\usepackage[dvipsnames]{xcolor}
+% \usepackage{tikz}
+% \usetikzlibrary{positioning}
+% \usetikzlibrary{calc}
+% \usetikzlibrary{arrows}
+% \usetikzlibrary{intersections}
+% \usepackage{tikz-uml}
+% \usepackage{pgf-umlsd}
+% \usepgflibrary{arrows} % for pgf-umlsd
+% \tikzumlset{fill usecase=white}
+\usepackage[margin=2.5cm]{geometry}
+\usepackage{csquotes}
+\usepackage[T1]{fontenc}
+\usepackage{amsmath}
+\usepackage{pdflscape}
+\usepackage{graphicx}
+\usepackage{caption}
+\usepackage{subcaption}
+\usepackage{float}
+\usepackage{enumitem}
+% \usepackage{textpos}
+\usepackage{hyperref}
+\usepackage{fancyhdr}
+% \usepackage{multicol}
+\usepackage{rest-api}
+\usepackage{wrapfig}
+\usepackage{textcomp}
+\usepackage{ulem}
+\usepackage{fourier}
+\usepackage{array}
+\usepackage{makecell}
+
+
+\hypersetup{
+% ‘texdoc hyperref‘ for options
+ pdftitle={
+ PSE\textsuperscript{2}
+ - Podcast Synchronisation made Efficient Pflichtenheft
+ },
+ bookmarks=true,
+}
+\usepackage{csquotes}
+\usepackage[toc]{glossaries}
+\usepackage{lastpage}
+
+\renewcommand\theadalign{bc}
+\renewcommand\theadfont{\bfseries}
+\renewcommand\theadgape{\Gape[4pt]}
+\renewcommand\cellgape{\Gape[4pt]}
+
+\include{sections/glossar}
+
+\title{Pflichtenheft}
+\author{KIT Students et al}
+\date{2.12.2022}
+
+\pagestyle{fancy}
+\setkomafont{pageheadfoot}{\footnotesize\scshape}
+\fancyhead{} % clear all header fields
+% \fancyhead[L]{Pflichtenheft}
+\fancyhead[L]{PSE\textsuperscript{2} - Podcast Synchronisation made Efficient}
+% \fancyhead[R]{2.12.2022}
+\fancyfoot{} % clear all footer fields
+\fancyfoot[R]{\thepage{} / \pageref{LastPage}}
+\fancyfoot[L]{Praxis der Softwareentwicklung}
+\fancyfoot[C]{}
+
+\begin{document}
+
+\include{titlepage}
+\setcounter{page}{1}
+
+\tableofcontents
+
+\include{sections/einleitung}
+
+\include{sections/methodology}
+
+\include{sections/frontend}
+\newpage
+
+\include{sections/changes}
+
+\include{sections/timeline}
+
+\include{sections/features}
+
+\include{sections/tests}
+
+\printglossaries
+% \glsaddall
+
+\end{document}
diff --git a/20-implementierungsheft/sections/anforderungsanalyse.tex b/20-implementierungsheft/sections/anforderungsanalyse.tex
new file mode 100644
index 0000000..9af8d4d
--- /dev/null
+++ b/20-implementierungsheft/sections/anforderungsanalyse.tex
@@ -0,0 +1,185 @@
+\newcommand{\newrequirementlist}[1]{
+ % https://www.overleaf.com/learn/latex/Lists#Creating_a_new_list_with_enumitem
+ \newlist{#1list}{enumerate}{1}
+ \setlist[#1list, 1]
+ {
+ before=\leavevmode,
+ label=\upshape\textlangle #1\arabic*\textrangle,
+ ref=\upshape\textlangle #1\arabic*\textrangle,
+ resume=#1list
+ }
+}
+
+\newrequirementlist{RM}
+\newrequirementlist{RS}
+\newrequirementlist{RC}
+\newrequirementlist{RW}
+
+\section{Anforderungsanalyse}
+
+\subsection{ Musskriterien }\label{r:musskriterien}
+
+Musskriterien: unabdingbare Leistungen der Software.
+
+\subsubsection*{ Funktionale Anforderungen }
+
+\begin{RMlist}
+ \item\label{r:login} Der Benutzer kann sich im Webfrontend mit einer
+ E-Mail-Adresse und einem Pass\-wort erstmalig registrieren und bei
+ abgeschlossener Registrierung fortan mit denselben Informationen
+ anmelden.
+ Für eine erfolgreiche Registrierung muss die angegebene
+ E-Mail-Adresse zuerst verifiziert werden.\\
+ \item\label{r:store} Die Liste der \Glspl{abo} eines Benutzers sowie
+ der zeitliche Fortschritt beim Anhören(/Ansehen) von jeder begonnen
+ \Gls{episode} werden für jeden Benutzer gespeichert.
+ \item\label{r:sync} Die Liste der \Glspl{abo} eines Benutzers
+ sowie der zeitliche Fortschritt beim Anhören(/Ansehen) von jeder
+ begonnenen \Gls{episode} wird automatisch über alle von einem Benutzer
+ verknüpften \Gls{podcatcher} aktualisiert.
+ Dabei sind der zu synchronisierende Stand der \Glspl{abo} und der
+ zeitliche Fortschritt jeweils definiert als derjenige Stand, der
+ zeitlich am kürzesten zurückliegt.\\
+ \item\label{r:ui} Das Webfrontend bietet dem Benutzer eine graphische
+ Benutzeroberfläche zur Navigation und zur Ansteuerung einzelner
+ Funktionalitäten.\\
+ \item\label{r:reset-pw} Der Benutzer kann sein Passwort ändern und es
+ gibt eine ,,Passwort vergessen''-Funktion.
+ So kann ein angemeldeter Benutzer sein Passwort direkt im Webfrontend
+ ändern.
+ Im nicht angemeldeten Zustand kann der Benutzer sein Passwort über
+ die registrierte E-Mail-Adresse zurücksetzen.\\
+ \item\label{r:show-podcasts} Das Webfrontend bietet dem Benutzer die
+ Möglichkeit, sich die Liste seiner \Glspl{abo} anzeigen zu
+ lassen.
+ Die dabei dargestellten Informationen beinhalten den Namen des
+ \Glspl{abo} und eine gerundete Angabe darüber, wie lange es her ist,
+ dass der Benutzer das letzte Mal eine \Gls{episode} dieses \Glspl{abo}
+ konsumiert hat.\\
+\end{RMlist}
+
+\subsubsection*{ Nicht-funktionale Anforderungen }
+
+\begin{RMlist}
+ \item\label{r:requests} Der Synchronisations-Server kann mindestens
+ 50 Anfragen pro Sekunde verarbeiten.\\
+ \item\label{r:desktop-first} Das Webfrontend ist primär für
+ Desktop-Benutzer ausgelegt.
+ \item\label{r:gpodder} Der Datenaustausch erfolgt über die Gpodder
+ \Gls{rest-api} unter Verwendung des Datenformats \Gls{json}.
+ \item\label{r:persistent-storage} Die Speicherung der Daten eines
+ Benutzers \ref{r:store} über den Synchronisations-Server erfolgt
+ persistent in einer \Gls{db}. Diese Daten des Benutzers sind die
+ Liste seiner \Glspl{abo} und der zeitliche Fortschritt beim Anhören
+ (/Ansehen) aller begonnenen \Glspl{episode}.
+ \item\label{r:api-extension} Die \Gls{gpodder} wird um Funktionalitäten
+ zur verbesserten Kommunikation zwischen Front- und Backend erweitert
+ (siehe \ref{r:login}).\\
+\end{RMlist}
+
+
+\subsection{ Sollkriterien }\label{r:sollkriterien}
+
+Sollkriterien: erstrebenswerte Leistungen.
+
+\subsubsection*{ Funktionale Anforderungen }
+
+\begin{RSlist}
+ \item\label{r:man} Das Webfrontend bietet die Möglichkeit eine nicht
+ ausgefüllte Benutzeranleitung für das Synchronisieren von \Glspl{podcast}
+ anzuzeigen.\\
+ \item\label{r:delete-acc} Der Benutzer kann seinen Account löschen.
+ Daraufhin werden alle auf diesen Benutzer bezogenen Daten gelöscht.\\
+\end{RSlist}
+
+\subsubsection*{ Nicht-funktionale Anforderungen }
+
+\begin{RSlist}
+ \item\label{r:backend-libs} Das Backend wird in \Gls{java} unter Verwendung des
+ quelloffenen Frameworks \Gls{spring} implementiert. Weiter wird für die
+ \Gls{db} das relationale Open-Source Datenbankverwaltungssystem MariaDB
+ eingesetzt.
+ \item\label{r:ui-libs} Die Weboberfläche wird mithilfe der
+ \Gls{ui-lib} React oder des Webframeworks Vue in JavaScript und
+ mit dem Frontend-CSS-Framework Bootstrap entwickelt.
+ \item\label{r:ui-source}
+ Verwendete \Glspl{ui-lib} werden von einem \Gls{packagemanager}, wie dem Node
+ Package Manager (npm) bezogen. Ein \Gls{bundler}, wie vite oder Webpack,
+ stellt ein minimiertes Skript von den Teilen der Bibliotheken zusammen,
+ die vom Code verwendet werden. Das minimierte Skript wird dann auf einem
+ eigenen Server für die Weboberfläche bereitgestellt.
+ \item\label{r:spa} Die Weboberfläche wird als \Gls{spa}
+ entworfen und aktualisiert dynamisch ihren Inhalt, sobald es eine
+ Antwort auf eine Anfrage an die \Gls{gpodder} \ref{r:api-compat} erhält.
+ \item\label{r:parse-metadata} Das Backend kann die Metadaten von
+ \Gls{podcast} aus
+ deren \Gls{rss}-Feeds (XML-Dateien) für die Anzeige im Webfrontend
+ \ref{r:show-podcasts} parsen.
+ \item\label{r:pw-requirements} Verwendete Passwörter müssen mindestens 8 Zeichen,
+ ein Sonderzeichen, eine Zahl sowie einen Klein- und einen Großbuchstaben
+ enthalten.
+ Diese Anforderungen gelten also insbesondere für über die Funktionen
+ \ref{r:login} und \ref{r:reset-pw} neu gewählte Passwörter.\\
+ \item\label{r:save-pw} Passwörter werden sicher mittels \Gls{salt-hash}
+ gespeichert.
+ \item\label{r:session} Im Webfrontend angemeldete Benutzer bleiben dort
+ angemeldet. Hierfür wird eine Kombination aus einem \Gls{session-token} und
+ einem \Gls{cookie} verwendet.\\
+\end{RSlist}
+
+\subsection{ Kannkriterien }
+
+Kannkriterien: Leistungen, die enthalten sein können.
+
+\subsubsection*{ Funktionale Anforderungen }
+
+\begin{RClist}
+ \item\label{r:subscribe} Ein Benutzer kann über die Weboberfläche einen
+ abonnierten \Gls{podcast} über einen generierten Link teilen.
+ Öffnet nun ein anderer Nutzer den Link wird dieser zur Weboberfläche
+ weitergeleitet und mit einem Pop-up gefragt, ob dieser den
+ \Gls{podcast} abonnieren
+ möchte, falls noch nicht geschehen.
+ Akzeptiert der Nutzer, so wird der \Gls{podcast} zur Liste der
+ \Glspl{abo} des
+ Nutzers hinzugefügt.
+ Gegebenenfalls muss sich der Benutzer dafür zuerst anmelden.
+ Der Link setzt sich dabei unter anderem aus der URL des Webfrontends oder
+ einem \Gls{pseudoprotocol} und dem \Gls{podcast}-Link des Providers zusammen.
+ \item\label{r:unsubscribe} Das Webfrontend bietet dem Benutzer die Möglichkeit,
+ \Glspl{abo} zu entfernen beziehungsweise \Glspl{podcast} zu deabonnieren.
+ \item\label{r:import} Das Importieren und Exportieren aller benutzerbezogenen
+ Daten wird unterstützt (siehe \ref{r:dsgvo}).
+ \item\label{r:import-other} Das Umsiedeln von anderen \Gls{gpodder}-Plattformen und
+ damit insbesondere der damit verbundene Datenimport wird unterstützt.
+ \item\label{r:api-compat} Die Weboberfläche ist kompatibel mit beliebigen
+ \Glspl{gpodder}.
+ \item\label{r:responsive} Die Weboberfläche ist \gls{responsive}.
+ \item\label{r:admin} Es gibt Administrator Benutzerkonten. Eine angestrebte
+ Funktionalität dieser privilegierten Konten ist das Einsehen von Statistiken,
+ wie der Anzahl von Benutzern, und dem Abruf der Metadaten eines
+ \Glspl{abo}.
+\end{RClist}
+
+\subsubsection*{ Nicht-funktionale Anforderungen }
+
+\begin{RClist}
+ \item\label{r:login-provider} Die Anmeldung im Webfrontend kann mit dem
+ offenen Protokoll \Gls{oauth} 2.0 über Google, Apple oder Facebook erfolgen.
+ Die bei der Verknüpfung eines \Gls{podcatcher}s mit dem Synchronisationsserver
+ geforderten Anmeldedaten werden dann automatisch für den betreffenden
+ Benutzer generiert.
+ Diese kann er im Webfrontend einsehen.
+ \item\label{r:live-update} Im Webfrontend angemeldete Benutzer bleiben dort
+ angemeldet, wenn das Backend ein Update bekommt.
+ \item\label{r:language} Die Benutzeroberfläche kann in mehreren Sprachen
+ angezeigt werden, wobei neben der standardmäßig deutschen
+ Benutzeroberfläche die zusätzliche Bereitstellung einer englischen
+ Version gegenüber anderen Fremdsprachen priorisiert angestrebt wird.
+ \item\label{r:dsgvo} Der Umgang mit personenbezogenen Daten ist konform mit
+ der \\\Gls{dsgvo} der Europäischen Union.
+ \item\label{r:docker} Die Benutzung von \Gls{docker} vereinfacht das Deployment auf
+ einen Server, da Abhängigkeiten bereits im \Gls{docker}-Image enthalten sind.
+ Außerdem bleibt bei einer Kompromittierung der Software das Host-System
+ durch Virtualisierung der Container sicher.\\
+\end{RClist}
diff --git a/20-implementierungsheft/sections/apidoc.tex b/20-implementierungsheft/sections/apidoc.tex
new file mode 100644
index 0000000..0cce48c
--- /dev/null
+++ b/20-implementierungsheft/sections/apidoc.tex
@@ -0,0 +1,191 @@
+\newenvironment{urlParameter}
+{
+ \newcommand{\urlParamItem}[2]
+ {
+ \rowcolor{\methodLightColor} ##1 & ##2 \\
+ }
+ \newcommand{\noUrlParameter}[1]
+ {
+ \small{\textit{##1}}
+ }
+ %\vspace{-0.61em}
+
+ \arrayrulecolor{\methodColor}
+
+ \begin{tabularx}{\textwidth}{X}
+ \rowcolor{\methodLightColor!20}
+ \textbf{URL-Parameter} \\ \hline
+ \end{tabularx}
+
+ \tabularx{\textwidth}{l X}
+}
+
+\newenvironment{pathParameter}
+{
+ \newcommand{\pathParamItem}[2]
+ {
+ \rowcolor{\methodLightColor} ##1 & ##2 \\
+ }
+ \newcommand{\noPathParameter}[1]
+ {
+ \small{\textit{##1}}
+ }
+ %\vspace{-0.61em}
+
+ \arrayrulecolor{\methodColor}
+
+ \begin{tabularx}{\textwidth}{X}
+ \rowcolor{\methodLightColor!20}
+ \textbf{Pfad-Parameter} \\ \hline
+ \end{tabularx}
+
+ \tabularx{\textwidth}{l X}
+}
+
+\newenvironment{jsonKeys}
+{
+ \newcommand{\jsonKeyItem}[2]
+ {
+ \rowcolor{\methodLightColor} ##1 & ##2 \\
+ }
+ \newcommand{\nojsonKeys}[1]
+ {
+ \small{\textit{##1}}
+ }
+ %\vspace{-0.61em}
+
+ \arrayrulecolor{\methodColor}
+
+ \begin{tabularx}{\textwidth}{X}
+ \rowcolor{\methodLightColor!20}
+ \textbf{Json-Keys} \\ \hline
+ \end{tabularx}
+
+ \tabularx{\textwidth}{l X}
+}
+
+\section{\Gls{api}}
+
+\subsection{Authentication API}\label{a:auth}
+
+\subsubsection{Registrierung}\label{a:register}
+
+\begin{apiRoute}{post}{/api/2/auth/register.json}
+ {Registriert einen Nutzer mit einer E-Mail-Adresse und Passwort.
+
+ Versendet E-Mail mit Bestätigungslink an die angegebene E-Mail-Adresse.}
+ \begin{routeRequest}{application/json}
+ \begin{routeRequestBody}
+{
+ username: "jeff"
+ email: "jeff@example.com",
+ password: "MyNameIsJeff"
+}
+ \end{routeRequestBody}
+ \end{routeRequest}
+ \begin{routeResponse}{application/json}
+ \begin{routeResponseItem}{200}
+ {OK: Nutzer wurde erfolgreich angelegt und E-Mail versendet.}
+ \end{routeResponseItem}
+
+ \begin{routeResponseItem}{400}
+ {Bad Request: Fehler beim Parsen oder Eingabe nicht anforderungsgemäß.}
+ \end{routeResponseItem}
+ \end{routeResponse}
+\end{apiRoute}
+
+Es wird nun sowohl ein Benutzername als auch eine E-Mail-Adresse für einen Nutzer gespeichert.
+Der Benutzername wird in der Folge für die Authentifizierung und die Zuordnung der Anfragen verwendet.
+Die E-Mail-Adresse wird vor dem Speichern mit einem festen Geheimschlüssel gesalted und gehashed.
+Sie ist zum Ableich der bei der bei (ref an forgot) anzugebenden E-Mail-Adresse
+
+\newpage
+\subsubsection{E-Mail verifizieren}\label{a:resetpassword}
+
+\begin{apiRoute}{get}{/api/2/auth/\{username\}/verify.json}
+ {Verifiziere die bei der Registrierung angegebene E-Mail-Adresse durch diese, per E-Mail versendete, URL.}
+ \begin{pathParameter}
+ \pathParamItem{username}{Nutzername des betreffenden Nutzers}
+ \end{pathParameter}
+ \begin{urlParameter}
+ \urlParamItem{token}{JSON-Web-Token (24h gültig)}
+ \end{urlParameter}
+ \begin{routeResponse}{application/json}
+ \begin{routeResponseItem}{200}
+ {OK: Der Benutzer wurde erfolgreich aktiviert und kann sich nun anmelden.}
+ \end{routeResponseItem}
+
+ \begin{routeResponseItem}{400}
+ {Bad Request: Der Nutzer mit dem angegebenen Namen ist bereits verifiziert. }
+ \end{routeResponseItem}
+
+ \begin{routeResponseItem}{401}
+ {Unauthorized: Der JWT ist ungültig. }
+ \end{routeResponseItem}
+
+ \begin{routeResponseItem}{404}
+ {Not Found: Es exisitiert kein Nutzer mit dem angegebenen Benutzernamen. }
+ \end{routeResponseItem}
+ \end{routeResponse}
+\end{apiRoute}
+
+Dieser Endpunkt wurde zur Verifizierung der bei der Registrierung angegebenen E-Mail-Adresse hinzugefügt.
+Nach der Registrierung wird dem Benutzer eine E-Mail mit der URL dieses Endpunkts (inklusive Benutzernamen und JWT)
+zugesendet. Klickt der Benutzer auf den Link wird die Anfrage im Backend verarbeitet und der Nutzer automatisch
+zum Webfrontend weitergeleitet. Erst nach der Verifizierung der E-Mail-Adresse ist die Registrierung vollständig
+abgeschlossen und der Account aktiviert - nun kann sich der Nutzer anmelden.
+
+\newpage
+\subsubsection{Passwort vergessen}\label{a:forgot}
+
+\begin{apiRoute}{post}{/api/2/auth/\{email\}/forgot.json}
+ {Sende eine E-Mail zum Zurücksetzen des Passworts.}
+ \begin{pathParameter}
+ \pathParamItem{email}{E-Mail-Adresse des betreffenden Nutzers}
+ \end{pathParameter}
+ \begin{routeResponse}{application/json}
+ \begin{routeResponseItem}{200}
+ {OK: E-Mail wurde erfolgreich versendet.}
+ \end{routeResponseItem}
+
+ \begin{routeResponseItem}{404}
+ {Not Found: Es exisitiert kein Nutzer mit der angegeben E-Mail-Adresse.}
+ \end{routeResponseItem}
+ \end{routeResponse}
+\end{apiRoute}
+
+Die E-Mail-Adresse des Benutzers, der sein Passwort vergessen hat, wird nicht mehr im Request-Body
+als \GLS{json}-Payload, sondern als Pfadvariable in der URL übergeben.
+
+\subsubsection{Passwort zurücksetzen}\label{a:resetpassword}
+
+\begin{apiRoute}{put}{/api/2/auth/\{username\}/resetpassword.json}
+ {Passwort des gegebenen Nutzers ändern nachdem dieser sein Passwort
+ vergessen hat. }
+ \begin{pathParameter}
+ \pathParamItem{username}{Nutzername des betreffenden Nutzers}
+ \end{pathParameter}
+ \begin{urlParameter}
+ \urlParamItem{token}{JSON-Web-Token}
+ \end{urlParameter}
+ \begin{routeRequest}{application/json}
+ \begin{routeRequestBody}
+{
+ password: "APasswordIWontForgetAgain"
+}
+ \end{routeRequestBody}
+ \end{routeRequest}
+ \begin{routeResponse}{application/json}
+ \begin{routeResponseItem}{200}
+ {OK: Das Passwort wurde erfolgreich geändert.}
+ \end{routeResponseItem}
+
+ \begin{routeResponseItem}{400}
+ {Bad Request: Fehler beim Parsen der Anfragen. }
+ \end{routeResponseItem}
+
+ \begin{routeResponseItem}{401}
+ {Unauthorized: JWT ist ungültig. }
+ \end{routeResponseItem}
+ \end{routeResponse}
+\end{apiRoute} \ No newline at end of file
diff --git a/20-implementierungsheft/sections/aufbau.tex b/20-implementierungsheft/sections/aufbau.tex
new file mode 100644
index 0000000..41a5839
--- /dev/null
+++ b/20-implementierungsheft/sections/aufbau.tex
@@ -0,0 +1,47 @@
+\section{Aufbau}
+
+\begin{landscape}
+
+\subsection{Klassendiagramm Backend}
+Das Klassendiagramm zeigt alle für den Entwurf relevanten Klassen des Backends mit ihren öffentlichen Methoden.
+Weiter zeigt das Diagramm die Aufteilung der Klassen in Pakete sowie schemenhaft dargestellte Verbindungen zu \Gls{db} und Webserver.
+
+% \input{assets/diagrams/classdiagram.latex}
+\includegraphics[width=\linewidth]{assets/diagrams/classdiagram}
+\end{landscape}
+
+\subsection{Sequenzdiagramme}
+
+\subsubsection{Authentication \Gls{api}}
+\subsubsection*{Registrierung \scriptsize{(\ref{a:register})}}
+\includegraphics[width=\textwidth]{assets/diagrams/sequencediagram-register}
+\subsubsection*{Passwort vergessen und zurücksetzen \scriptsize{(\ref{a:forgot}, \ref{a:resetpassword})}}
+\includegraphics[width=\textwidth]{assets/diagrams/sequencediagram-forgotAndResetPW}
+
+\subsubsection{Subscriptions \Gls{api}}
+\subsubsection*{Abonnements hochladen \scriptsize{(\ref{a:uploadSubs})}}
+\includegraphics[width=\textwidth]{assets/diagrams/sequencediagram-uploadSubscriptions}
+
+\subsubsection*{Abrufen aller Abonnements \scriptsize{(\ref{a:getSubs})}}
+\includegraphics[width=\textwidth]{assets/diagrams/sequencediagram-getSubscriptions}
+
+\subsubsection{Episode Actions \Gls{api}}
+\subsubsection*{Episode Actions hochladen \scriptsize{(\ref{a:uploadEpisodeActions})}}
+\includegraphics[width=\textwidth]{assets/diagrams/sequencediagram-uploadEpisodeActions}
+
+\subsubsection*{Abrufen aller Episode Actions seit einem Zeitpunkt \scriptsize{(\ref{a:getEpisodeActions})}}
+\includegraphics[width=\textwidth]{assets/diagrams/sequencediagram-getEpisodeActionsOfPodcastSince}
+
+\subsubsection*{Abrufen aller Episode Actions \scriptsize{(\ref{a:getEpisodeActions})}}
+\includegraphics[width=\textwidth]{assets/diagrams/sequencediagram-getEpisodeActions}
+
+\subsection{Komponentendiagramm Backend}
+\includegraphics[width=\textwidth]{assets/diagrams/backendComponentDiagram}
+
+\subsection{Verteilungsdiagram}
+\includegraphics[width=\textwidth]{assets/diagrams/deployment}
+
+\subsection{\Gls{db}-Modell}
+
+\includegraphics[width=\textwidth]{assets/diagrams/db}
+
diff --git a/20-implementierungsheft/sections/backend.tex b/20-implementierungsheft/sections/backend.tex
new file mode 100644
index 0000000..19efd65
--- /dev/null
+++ b/20-implementierungsheft/sections/backend.tex
@@ -0,0 +1,28 @@
+\section{Backend}
+
+Für das Backend wird das \Gls{java}-Framework \Gls{spring} verwendet. Neben seiner Modularität,
+bietet es viele Funktionen, die unter
+anderem die Entwicklung von Backend-Anwendungen vereinfachen.
+Darunter fällt zum Beispiel die Unterstützung von Dependency Injection, dessen
+Vorteile bereits beschrieben wurden.
+Außerdem unterstützt \Gls{java} \Gls{spring} intern eine Verwaltung von \Glspl{db}, sodass
+sich nicht mit dem \Gls{SQL}-Code an sich befasst werden muss.
+Auch bezüglich Authentifizierung und Sicherheit bietet \Gls{spring} eigene Funktionalitäten.
+
+Zusätzlich dazu wird als Build-System für das \Gls{java}-\Gls{spring}-Backend Maven verwendet.
+Maven hilft dabei alle Abhängigkeiten des Projekts zu verwalten und automatisiert
+den Build Prozess.
+Durch die zusätzliche Unterstützung von Versionskontrollsystemen und der Kompatibilität
+zu vielen Continuous Integration-Tools wird außerdem die Entwicklung in einem Team erleichtert
+und optimiert. Denn dadurch können Build- und Deployment-Prozesse automatisiert werden.
+Außerdem bietet Maven Bibliotheken zum Testen sowie zur Generierung von Dokumentationen an.
+
+Vom Backend benötigte Abhängigkeiten:
+\begin{itemize}
+ \item \Gls{spring} Web
+ \item \Gls{spring} Security
+ \item \Gls{spring} Mail Sender
+ \item \Gls{spring} Data JPA
+ \item Lombok
+ \item Rome (\Gls{rss} parsing/fetching)
+\end{itemize} \ No newline at end of file
diff --git a/20-implementierungsheft/sections/changes.tex b/20-implementierungsheft/sections/changes.tex
new file mode 100644
index 0000000..20df017
--- /dev/null
+++ b/20-implementierungsheft/sections/changes.tex
@@ -0,0 +1,241 @@
+\newenvironment{urlParameter}
+{
+ \newcommand{\urlParamItem}[2]
+ {
+ \rowcolor{\methodLightColor} ##1 & ##2 \\
+ }
+ \newcommand{\noUrlParameter}[1]
+ {
+ \small{\textit{##1}}
+ }
+ %\vspace{-0.61em}
+
+ \arrayrulecolor{\methodColor}
+
+ \begin{tabularx}{\textwidth}{X}
+ \rowcolor{\methodLightColor!20}
+ \textbf{URL-Parameter} \\ \hline
+ \end{tabularx}
+
+ \tabularx{\textwidth}{l X}
+}
+
+\newenvironment{pathParameter}
+{
+ \newcommand{\pathParamItem}[2]
+ {
+ \rowcolor{\methodLightColor} ##1 & ##2 \\
+ }
+ \newcommand{\noPathParameter}[1]
+ {
+ \small{\textit{##1}}
+ }
+ %\vspace{-0.61em}
+
+ \arrayrulecolor{\methodColor}
+
+ \begin{tabularx}{\textwidth}{X}
+ \rowcolor{\methodLightColor!20}
+ \textbf{Pfad-Parameter} \\ \hline
+ \end{tabularx}
+
+ \tabularx{\textwidth}{l X}
+}
+
+\newenvironment{jsonKeys}
+{
+ \newcommand{\jsonKeyItem}[2]
+ {
+ \rowcolor{\methodLightColor} ##1 & ##2 \\
+ }
+ \newcommand{\nojsonKeys}[1]
+ {
+ \small{\textit{##1}}
+ }
+ %\vspace{-0.61em}
+
+ \arrayrulecolor{\methodColor}
+
+ \begin{tabularx}{\textwidth}{X}
+ \rowcolor{\methodLightColor!20}
+ \textbf{Json-Keys} \\ \hline
+ \end{tabularx}
+
+ \tabularx{\textwidth}{l X}
+}
+
+
+\section{Änderungen zum Entwurfsheft}
+
+Im Folgenden werden die Änderungen zum Entwurfsheft aufgelistet und erläutert warum diese
+Änderungen gemacht wurden.
+
+
+\subsection{Kompatibilität mit \Glspl{podcatcher}}
+
+Um die Kompatibilität mit \Glspl{podcatcher} - insbesondere AntennaPod und Kasts - sicherzustellen, mussten einige Änderungen vorgenommen werden.
+
+\subsubsection*{Speicherung von Benutzernamen und E-Mail-Adressen}
+
+AntennaPod erlaubt bei der Verknüpfung mit einem Synchronisations-Server nur die Anmeldung mit einem Benutzername, der keine E-Mail-Adresse ist.
+Deshalb werden nun sowohl ein Benutzername als auch eine E-Mail-Adresse für jeden Nutzer gespeichert.
+Der Benutzername wird dabei unverschlüsselt gespeichert.
+Er wird zur Authentifizierung sowie für die Zuordnung der Anfragen verwendet.
+Die E-Mail-Adresse hingegen, wird vor der Speicherung mit einem festen Geheimschlüssel gesalted und anschließend gehashed.
+Sie existiert lediglich um bei einer Passwort-vergessen-Anfrage denjenigen Nutzer zu finden, zu dem die übergebene E-Mail-Adresse gehört, beziehungsweise dessen Existenz zu überprüfen.
+Diese Änderung impliziert eine Anpassung des Formats, in dem Registrierungsanfragen als \GLS{json}-Payload übergeben werden.
+Wie in der folgenden aktualisierten Spezifikation zu sehen existiert nun ein zusätzliches \GLS{json}-Attribut namens \enquote{username}.
+\newline
+
+\begin{apiRoute}{post}{/api/2/auth/register.json}
+ {Registriert einen Nutzer mit einer E-Mail-Adresse und Passwort.
+
+ Versendet E-Mail mit Bestätigungslink an die angegebene E-Mail-Adresse.}
+ \begin{routeRequest}{application/json}
+ \begin{routeRequestBody}
+{
+ "username": "jeff",
+ "email": "jeff@example.com",
+ "password": "MyNameIsJeff"
+}
+ \end{routeRequestBody}
+ \end{routeRequest}
+ \begin{routeResponse}{application/json}
+ \begin{routeResponseItem}{200}
+ {OK: Nutzer wurde erfolgreich angelegt und E-Mail versendet.}
+ \end{routeResponseItem}
+
+ \begin{routeResponseItem}{400}
+ {Bad Request: Fehler beim Parsen oder Eingabe nicht anforderungsgemäß.}
+ \end{routeResponseItem}
+ \end{routeResponse}
+\end{apiRoute}
+
+\subsubsection*{Device API}
+
+Beim Einrichten eines Synchronisations-Servers rufen sowohl AntennaPod als auch Kasts statt einem anfänglichen Login sofort den List-Devices-Endpunkt der \gls{gpodder}.net API auf.
+Dieser Endpunkt wurde entsprechend hinzugefügt.
+Da jedoch explizit keine Unterscheidung von Geräten bei der Synchronisation unterstützt wird, wird dieser intern wie ein Login-Aufruf behandelt.
+\newline
+
+\begin{apiRoute}{get}{/api/2/devices/\{username\}.json}
+ {Gegebenen Nutzer des gegebenen Geräts mithilfe HTTP Basic Auth einloggen oder Gültigkeit des im \enquote{sessionid} \Gls{cookie} gespeicherten JWTs bestätigen.
+
+ Gibt außerdem eine Liste mit einem Dummy-Device zurück, damit die Einrichtung der Synchronisation mit AntennaPod und Kasts möglich ist.}
+ \begin{pathParameter}
+ \pathParamItem{username}{Nutzername des einzuloggenden Nutzers}
+ \end{pathParameter}
+ \begin{routeResponse}{application/json}
+ \begin{routeResponseItem}{200}
+ {OK: Der Benutzer wurde erfolgreich mittles HTTP Basic Auth oder JWT eingeloggt und das \enquote{sessionid} Cookie wurde auf ein gültiges JWT gesetzt.}
+ \newline
+ \begin{routeResponseItemBody}
+[
+ {
+ "id": "dummy",
+ "caption": "device",
+ "type": "other",
+ "subscriptions": 0
+ }
+]
+ \end{routeResponseItemBody}
+ \end{routeResponseItem}
+
+ \begin{routeResponseItem}{401}
+ {Unauthorized: Es liegen falsche Anmeldedaten oder ein ungültiges JWT vor.}
+ \end{routeResponseItem}
+ \end{routeResponse}
+ \begin{jsonKeys}
+ \jsonKeyItem{id}{Geräte-ID}
+ \jsonKeyItem{caption}{Ein für Menschen lesbarer Name für das Gerät}
+ \jsonKeyItem{type}{Typ des Geräts - mögliche Typen: desktop, laptop, mobile, server, other}
+ \jsonKeyItem{subscriptions}{Anzahl der Subscriptions auf dem Gerät}
+ \end{jsonKeys}
+\end{apiRoute}
+
+\newpage
+\subsection{Verifizierung der E-Mail-Adresse}
+
+Dieser Endpunkt wurde zur Verifizierung der bei der Registrierung angegebenen E-Mail-Adresse hinzugefügt.
+Nach der Registrierung wird dem Benutzer eine E-Mail mit der URL dieses Endpunkts (inklusive Benutzernamen und JWT)
+zugesendet. Klickt der Benutzer auf den Link wird die Anfrage im Backend verarbeitet und der Nutzer automatisch
+zum Webfrontend weitergeleitet. Erst nach der Verifizierung der E-Mail-Adresse ist die Registrierung vollständig
+abgeschlossen und der Account aktiviert - nun kann sich der Nutzer anmelden.
+\newline
+
+\begin{apiRoute}{get}{/api/2/auth/\{username\}/verify.json}
+ {Verifiziere die bei der Registrierung angegebene E-Mail-Adresse durch diese, per E-Mail versendete, URL.}
+ \begin{pathParameter}
+ \pathParamItem{username}{Nutzername des betreffenden Nutzers}
+ \end{pathParameter}
+ \begin{urlParameter}
+ \urlParamItem{token}{JSON-Web-Token (24h gültig)}
+ \end{urlParameter}
+ \begin{routeResponse}{application/json}
+ \begin{routeResponseItem}{200}
+ {OK: Der Benutzer wurde erfolgreich aktiviert und kann sich nun anmelden.}
+ \end{routeResponseItem}
+
+ \begin{routeResponseItem}{400}
+ {Bad Request: Der Nutzer mit dem angegebenen Namen ist bereits verifiziert. }
+ \end{routeResponseItem}
+
+ \begin{routeResponseItem}{401}
+ {Unauthorized: Der JWT ist ungültig. }
+ \end{routeResponseItem}
+
+ \begin{routeResponseItem}{404}
+ {Not Found: Es exisitiert kein Nutzer mit dem angegebenen Benutzernamen. }
+ \end{routeResponseItem}
+ \end{routeResponse}
+\end{apiRoute}
+
+
+\newpage
+\subsection{RSSParser}
+
+Das primäre Ziel beim Entwurf des RSSParsers war es den Rest der Anwendung nicht
+aufzuhalten, da das fetchen und parsen länger dauert. Daher soll der RSSParser asynchron
+ausgeführt werden.
+Damit das für die Implementierung verwendete Framework \Gls{spring} dies unterstützt müssen
+mehr Bedingungen erfüllt sein als im Entwurf berücksichtigt wurden, weshalb dieser abgeändert werden musste.
+
+Unter anderem können nur Komponenten die von \Gls{spring} verwaltet werden asynchron ausgeführt werden.
+Weiter können nur öffentliche Methoden von \Gls{spring} als asynchron erkannt werden und bei
+dem Aufruf einer asynchronen Methode muss die Klasse gewechselt werden damit diese asynchron
+ausgeführt wird.
+
+Um diese Bedingungen zu erfüllen ruft der SubscriptionService oder der EpisodeActionService
+die Validate Methode des RSSParsers mit der Subscription die überprüft werden
+soll auf. Dies geschieht asynchron nach dem \enquote{Fire and Forget} Prinzip. Daher können
+die Services unmittelbar weiter arbeiten und dem Nutzer so möglichst schnell eine Antwort
+liefern.
+
+Die Validate Methode fragt den aktuellen \GLS{rss}-Feed der Subscription ab und parsed diesen.
+Erfüllt der Feed die von Apple und Google für \Glspl{podcast} definierten Anforderungen
+werden die Informationen aus dem Feed gespeichert. Dabei werden nur die \Glspl{episode} gespeichert,
+die von mindestens einem Nutzer gehört wurden. Ist der Feed der Subscription nicht
+valide wird die Subscription gelöscht. Um das Löschen und Speichern ausführen zu können
+hält der Parser Referenzen auf das SubscriptionDao und EpisodeDao.
+
+Die im Entwurfsheft definierten Getter werden nicht mehr oder nur
+noch als private Hilfsmethoden benötigt.
+
+\subsection{Reduzierte Datenzugriffsschicht}
+
+Mithilfe von JPA Repositories können Datenbankzugriffe und Abfragen ohne weitere Logik in den DAO-Schnittstellen einfach implementiert werden.
+Wird beispielsweise nach einem \Gls{abo} anhand einer URL gesucht, so wird eine Methode der Form \textit{Optional<Subscription> findByUrl(String url)} in der SubscriptionDao deklariert.
+Um die Implementierung dieser Abfrage kümmert sich JPA.
+
+Damit fallen alle ursprünglich geplanten DAO-Implementierungen weg, was für eine bessere Übersicht in der Datenzugriffsschicht sorgt.
+\newpage
+
+\begin{landscape}
+
+\subsection{Überarbeitetes Klassendiagramm des Backends}
+Das Klassendiagramm zeigt alle den überarbeiteten Entwurf des Backends.
+Weiter zeigt das Diagramm die Aufteilung der Klassen in Pakete sowie schemenhaft dargestellte Verbindungen zu \Gls{db} und Webserver.
+
+% \input{assets/diagrams/classdiagram.latex}
+\includegraphics[width=\linewidth]{assets/diagrams/class_after}
+\end{landscape} \ No newline at end of file
diff --git a/20-implementierungsheft/sections/einleitung.tex b/20-implementierungsheft/sections/einleitung.tex
new file mode 100644
index 0000000..5f6080d
--- /dev/null
+++ b/20-implementierungsheft/sections/einleitung.tex
@@ -0,0 +1,11 @@
+\section{Einleitung}
+
+Im vorangegangenen Pflichtenheft und Entwurfsheft wurde zuerst abstrahiert
+die Idee des Podcast Synchronisationsservers beschrieben und die Ziele in Form von
+Anforderungen definiert. Dabei soll sowohl ein Backend mit \Gls{db} als auch ein Frontend
+zur Dateneinsicht und Verwaltung entstehen. Dann wurde die Implementierung diese Projekts
+mittels eines Entwurfs geplant.
+
+In diesem Dokument wird die Implementierung des entworfenen Produkts dokumentiert.
+Dabei wird auf Probleme und Änderungen gegenüber dem Pflichtenheft und Entwurfsheft eingegangen,
+die Testfälle erläutert und der geplante und tatsächliche zeitliche Ablauf der Implementierung dokumentiert. \ No newline at end of file
diff --git a/20-implementierungsheft/sections/features.tex b/20-implementierungsheft/sections/features.tex
new file mode 100644
index 0000000..0ccf47e
--- /dev/null
+++ b/20-implementierungsheft/sections/features.tex
@@ -0,0 +1,43 @@
+\section{Implementierte Muss-, Soll- und Kannkriterien}
+
+Nachdem nun die vorgenommenen Änderungen des Entwurfs behandelt wurden, geht es nun zu der eigentlichen Frage:
+Was wurde umgesetzt?
+
+In der folgenden Tabelle werden alle im Pflichtenheft vorgestellten und im Entwurfsheft überarbeiteten Kriterien mit der Kriterienbezeichnung, einer kleinen Zusammenfassung und einer Info, ob die Kriterien implementiert wurden, aufgelistet.
+
+\begin{tabular}{l|c|c}
+ Bezeichner & Zusammenfassung & Implementiert\\\hline
+ RM1 & \makecell{Registrierung, Bestätigung und Anmeldung\\ eines Accounts über das Frontend} & Ja\\
+ RM2 & Speichern von \Glspl{abo} und \Glspl{episode} auf dem Server & Ja\\
+ RM3 & Synchronisierung zwischen \Glspl{podcatcher} & Ja\\
+ RM4 & Eine Weboberfläche & Ja\\
+ RM5 & Möglichkeit das eigene Passwort zu ändern / zurückzusetzen & Ja\\
+ RM6 & \Gls{abo}liste in der Weboberfläche & Ja\\
+ RM7 & 50 Anfragen / Sekunde bearbeiten & Zu testen\\
+ RM8 & Primäre Auslegung des Webfrontends für Desktop-Nutzer & Ja\\
+ RM9 & Unterstützung der \gls{gpodder}.net \Gls{rest-api} & Ja\\
+ RM10 & Das Nutzen einer \Gls{db} zur Speicherung von Daten & Ja\\
+ RM11 & Erweiterte \GLS{api} für Kommunikation zwischen Front- und Backend & Ja\\\hline
+ RS1 & Eine Anleitung (Platzhalter) & Ja\\
+ RS2 & Die Möglichkeit einen Account zu löschen & Ja\\
+ RS3 & \Gls{spring} für das Backend und MariaDB als \Gls{db} & Ja\\
+ RS4 & Vue.js und Bootstrap für das Frontend & Ja\\
+ RS5 & npm und vite für das Frontend & Ja\\
+ RS6 & \makecell{Eine \Gls{spa} als Frontend\\mit dynamischer Aktualisierung} & Ja\\
+ RS7 & Ein \GLS{rss}-Parser um Daten aus einem \GLS{rss}-Feed zu lesen & Ja\\
+ RS8 & Mindestanforderungen an ein Passwort & Ja\\
+ RS9 & \Gls{salt-hash} für Verschlüsselung der Personenbezogenen Daten & Ja\\
+ RS10 & Nutzer bleibt über JWT angemeldet und authentifiziert & Ja\\\hline
+ RC1 & Abonnierten \Gls{podcast} in Weboberfläche über Link teilen und hinzufügen & Ja\\
+ RC2 & \Glspl{abo} in Weboberfläche deabonnieren & Nein\\
+ RC3 & Importieren und Exportieren aller benutzerbezogenen Daten & Ja\\
+ RC4 & Umsiedeln von anderen \Gls{gpodder}-Plattformen & Ja\\
+ RC5 & Kompatible Weboberfläche für beliebige \gls{gpodder}.net APIs & Entfernt\\
+ RC6 & \Gls{responsive} designte Weboberfläche & Ja\\
+ RC7 & Administratorkonten mit privilegierten Funktionen & Nein\\
+ RC8 & \Gls{oauth} 2.0 im Webfrontend & Nein\\
+ RC9 & Bei Ausfall des Backends im Frontend angemeldet bleiben & Ja\\
+ RC10 & Mehrsprachige Weboberfläche & Ja\\
+ RC11 & Erfüllung der DSGVO & Teils\\
+ RC12 & \Gls{docker} für einfaches Deployment und Sicherheit & Ja
+\end{tabular} \ No newline at end of file
diff --git a/20-implementierungsheft/sections/features.tex.orig b/20-implementierungsheft/sections/features.tex.orig
new file mode 100644
index 0000000..78839cf
--- /dev/null
+++ b/20-implementierungsheft/sections/features.tex.orig
@@ -0,0 +1,82 @@
+\section{Implementierte Muss-, Soll- und Kannkriterien}
+
+Nachdem nun die vorgenommenen Änderungen des Entwurfs behandelt wurden, geht es nun zu der eigentlichen Frage:
+Was wurde umgesetzt?
+
+In der folgenden Tabelle werden alle im Pflichtenheft vorgestellten und im Entwurfsheft überarbeiteten Kriterien mit der Kriterienbezeichnung, einer kleinen Zusammenfassung und einer Info, ob die Kriterien implementiert wurden, aufgelistet.
+
+\hspace{-1cm}
+\begin{tabular}{l|c|c}
+<<<<<<< HEAD
+ Bezeichner & Zusammenfassung & Implementiert\\\hline
+ \textlangle RM1 \textrangle & \makecell{Registrierung, Bestätigung und Anmeldung\\ eines Accounts über das Frontend} & Ja\\
+ \textlangle RM2 \textrangle & Speichern von Abonnements und Episoden auf dem Server & Ja\\
+ \textlangle RM3 \textrangle & Synchronisierung zwischen Podcatchern & Ja\\
+ \textlangle RM4 \textrangle & Eine Weboberfläche & Ja\\
+ \textlangle RM5 \textrangle & Möglichkeit das eigene Passwort zu ändern / zurückzusetzen & Ja\\
+ \textlangle RM6 \textrangle & Abonnementliste in der Weboberfläche & Ja\\
+ \textlangle RM7 \textrangle & 50 Anfragen / Sekunde bearbeiten & Zu testen\\
+ \textlangle RM8 \textrangle & Primäre Auslegung des Webfrontends für Desktop-Nutzer & Ja\\
+ \textlangle RM9 \textrangle & Unterstützung der gpodder.net RESTful-API & Ja\\
+ \textlangle RM10\textrangle & Das Nutzen einer Datenbank zur Speicherung von Daten & Ja\\
+ \textlangle RM11\textrangle & Erweiterte API für Kommunikation zwischen Front- und Backend & Ja\\\hline\hline
+ \textlangle RS1 \textrangle & Eine Anleitung (Platzhalter) & Ja\\
+ \textlangle RS2 \textrangle & Die Möglichkeit einen Account zu löschen & Ja\\
+ \textlangle RS3 \textrangle & Spring für das Backend und MariaDB als Datenbank & Ja\\
+ \textlangle RS4 \textrangle & Vue.js und Bootstrap für das Frontend & Ja\\
+ \textlangle RS5 \textrangle & npm und vite für das Frontend & Ja\\
+ \textlangle RS6 \textrangle & \makecell{Eine Single-Page-Application als Frontend\\mit dynamischer Aktualisierung} & Ja\\
+ \textlangle RS7 \textrangle & Ein RSS-Parser um Daten aus einem RSS-Feed zu lesen & Ja\\
+ \textlangle RS8 \textrangle & Mindestanforderungen an ein Passwort & Ja\\
+ \textlangle RS9 \textrangle & Salting und Hashing für Verschlüsselung der Personenbezogenen Daten & Ja\\
+ \textlangle RS10\textrangle & Nutzer bleibt über JWT angemeldet und authentifiziert & Ja\\\hline\hline
+ \textlangle RC1 \textrangle & Abonnierten Podcast in Weboberfläche über Link teilen und hinzufügen & Ja\\
+ \textlangle RC2 \textrangle & Abonnements in Weboberfläche deabonnieren & Nein\\
+ \textlangle RC3 \textrangle & Importieren und Exportieren aller benutzerbezogenen Daten & Ja\\
+ \textlangle RC4 \textrangle & Umsiedeln von anderen Gpodder-Plattformen & Ja\\
+ \textlangle RC5 \textrangle & Kompatible Weboberfläche für beliebige gpodder.net APIs & Entfernt\\
+ \textlangle RC6 \textrangle & Responsive designte Weboberfläche & Ja\\
+ \textlangle RC7 \textrangle & Administratorkonten mit privilegierten Funktionen & Nein\\
+ \textlangle RC8 \textrangle & OAuth 2.0 im Webfrontend & Nein\\
+ \textlangle RC9 \textrangle & Bei Ausfall des Backends im Frontend angemeldet bleiben & Ja\\
+ \textlangle RC10\textrangle & Mehrsprachige Weboberfläche & Ja\\
+ \textlangle RC11\textrangle & Erfüllung der DSGVO & Teils\\
+ \textlangle RC12\textrangle & Docker für einfaches Deployment und Sicherheit & Ja
+\end{tabular}
+=======
+ Bezeichner & Zusammenfassung & Implementiert\\\hline
+ RM1 & \makecell{Registrierung, Bestätigung und Anmeldung\\ eines Accounts über das Frontend} & Ja\\
+ RM2 & Speichern von \Glspl{abo} und \Glspl{episode} auf dem Server & Ja\\
+ RM3 & Synchronisierung zwischen \Glspl{podcatcher} & Ja\\
+ RM4 & Eine Weboberfläche & Ja\\
+ RM5 & Möglichkeit das eigene Passwort zu ändern / zurückzusetzen & Ja\\
+ RM6 & \Gls{abo}liste in der Weboberfläche & Ja\\
+ RM7 & 50 Anfragen / Sekunde bearbeiten & Zu testen\\
+ RM8 & Primäre Auslegung des Webfrontends für Desktop-Nutzer & Ja\\
+ RM9 & Unterstützung der \gls{gpodder}.net \Gls{rest-api} & Ja\\
+ RM10 & Das Nutzen einer \Gls{db} zur Speicherung von Daten & Ja\\
+ RM11 & Erweiterte \GLS{api} für Kommunikation zwischen Front- und Backend & Ja\\\hline
+ RS1 & Eine Anleitung (Platzhalter) & Ja\\
+ RS2 & Die Möglichkeit einen Account zu löschen & Ja\\
+ RS3 & \Gls{spring} für das Backend und MariaDB als \Gls{db} & Ja\\
+ RS4 & Vue.js und Bootstrap für das Frontend & Ja\\
+ RS5 & npm und vite für das Frontend & Ja\\
+ RS6 & \makecell{Eine \Gls{spa} als Frontend\\mit dynamischer Aktualisierung} & Ja\\
+ RS7 & Ein \GLS{rss}-Parser um Daten aus einem \GLS{rss}-Feed zu lesen & Ja\\
+ RS8 & Mindestanforderungen an ein Passwort & Ja\\
+ RS9 & \Gls{salt-hash} für Verschlüsselung der Personenbezogenen Daten & Ja\\
+ RS10 & Nutzer bleibt über JWT angemeldet und authentifiziert & Ja\\\hline
+ RC1 & Abonnierten \Gls{podcast} in Weboberfläche über Link teilen und hinzufügen & Ja\\
+ RC2 & \Glspl{abo} in Weboberfläche deabonnieren & Nein\\
+ RC3 & Importieren und Exportieren aller benutzerbezogenen Daten & Ja\\
+ RC4 & Umsiedeln von anderen \Gls{gpodder}-Plattformen & Ja\\
+ RC5 & Kompatible Weboberfläche für beliebige \gls{gpodder}.net APIs & Entfernt\\
+ RC6 & \Gls{responsive} designte Weboberfläche & Ja\\
+ RC7 & Administratorkonten mit privilegierten Funktionen & Nein\\
+ RC8 & \Gls{oauth} 2.0 im Webfrontend & Nein\\
+ RC9 & Bei Ausfall des Backends im Frontend angemeldet bleiben & Ja\\
+ RC10 & Mehrsprachige Weboberfläche & Ja\\
+ RC11 & Erfüllung der DSGVO & Teils\\
+ RC12 & \Gls{docker} für einfaches Deployment und Sicherheit & Ja
+\end{tabular}
+>>>>>>> main
diff --git a/20-implementierungsheft/sections/frontend.tex b/20-implementierungsheft/sections/frontend.tex
new file mode 100644
index 0000000..ae5be0e
--- /dev/null
+++ b/20-implementierungsheft/sections/frontend.tex
@@ -0,0 +1,196 @@
+\section{Weboberfläche}
+
+Die Weboberfläche wird mit dem Frontend-Web-Framework Vue.js erstellt. Mit Vue
+werden wiederverwendbare, auf Datenänderungen reagierende Komponenten erstellt.
+Die Komponenten nutzen ein fertiges Aussehen von dem Frontend-CSS-Framework
+Bootstrap. Außerdem werden Icons der freien Schriftart fontawesome
+verwendet.
+
+An der generellen Struktur und wichtigen Komponenten hat sich in der
+Implementierung nichts großes zum Entwurf geändert. Einige Komponenten konnten
+in der Implementierung allerdings abstrahiert werden, sodass weniger Code
+dupliziert werden musste. Dazu gehören zum Beispiel die Komponenten, welche ein
+Eingabefeld bereit stellen.
+
+Durch eine gute Arbeitsteilung blieb genug Zeit, um auch einige Kann-Kriterien
+zu implementieren, weshalb ein paar Abhängigkeiten hinzugekommen sind. So werden
+jszip und file-saver benötigt, um das Kann-Kriterium RC3 umzusetzen, durch
+welches man Nutzerdaten im- und exportieren kann.
+
+Pinia konnten wir als Abhängigkeit entfernen, weil Vue von sich aus genügend
+Funktionalität bietet die Nutzerdaten global allen Komponenten bereit zu
+stellen.
+
+Anfangs überlegten wir den Wrapper \texttt{bootstrap-vue} zu verwenden, welcher
+Bootstrap-HTML-Strukturen als Vue-Komponenten bereit stellt. Dies hätte des
+Vorteil, dass man nur jene Komponenten importieren müsste, die man auch
+benötigt. Es stellte sich heraus, dass \texttt{vue-bootstrap} nicht mit neusten
+Version Vue3 kompatibel ist, weshalb wir uns entschieden Bootstrap wie gewohnt
+komplett einzubinden.
+
+Während der Implementierung sind wir auf die Bibliothek \texttt{VueUse}
+gestoßen, mit der man die Abhängigkeit \texttt{file-saver} und mehrere eigene
+Wrapper für Browser-\Gls{api}s ersetzen könnte. So kann man das \Gls{dashboard} auch in
+Zukunft noch weiter verbessern.
+
+Vom Frontend benötigte Abhängigkeiten:
+\begin{itemize}
+ \item vite
+ \item vue
+ \item vue-router
+ \item \textcolor{red}{\sout{Pinia} wird durch globale Vue-Interne \texttt{ref} ersetzt}
+ \item bootstrap
+ \item fontawesome
+ \item vue-i18n (Support für mehrere Sprachen)
+ \item \textcolor{Green}{dayjs (Rechnen und formatieren von Zeiten)}
+ \item \textcolor{Green}{jszip (erstellen von Im-/Exports)}
+ \item \textcolor{Green}{file-saver (Abstraktion für Datei-Speichern-Dialog)}
+\end{itemize}
+
+\subsection{Komponentendiagramm Web-Frontend}
+\includegraphics[width=\textwidth]{assets/diagrams/componentdiagram}
+
+\subsection{Hinzugefügte Komponenten}
+
+% PasswordInput
+% PasswordValidator
+% FloatingLabelInput
+% Loading
+% ErrorLog
+% ProgressTime
+
+\begin{minipage}{.7\linewidth}
+
+\subsubsection*{FloatingLabelInput}
+
+\begin{description}
+\item[Tag] \texttt{<FloatingLabelInput type label>}
+\item[Props] \mbox{} \\
+ \emph{type} \mbox{} Beschreibt den Inhalt des Eingabefelder. Handelt es sich
+ um eine E-Mail, ein Passwort oder nur Text? \\
+ \emph{label} \mbox{} Das Label wird als Platzhalter und kleine Überschrift
+ angezeigt.
+\item[Beschreibung] Abstrahiert eine HTML-Struktur von Bootstrap, um ein schönes
+ Eingabefeld anzuzeigen.
+\end{description}
+\end{minipage}
+\begin{minipage}{.3\linewidth}
+ \begin{figure}[H]
+ \includegraphics[width=\textwidth]{assets/floatinglabelinput.png}
+ \end{figure}
+\end{minipage}
+
+
+\vspace{.5cm}
+
+\begin{minipage}{.7\linewidth}
+
+\subsubsection*{PasswordInput}
+
+\begin{description}
+\item[Tag] \texttt{<PasswordInput type label>}
+\item[Props] \mbox{} \\
+ \emph{label} \mbox{} Das Label wird als Platzhalter und kleine Überschrift
+ angezeigt.
+\item[Beschreibung] Erweitert den FloatingLabelInput um einen Knopf mit dem die
+ Sichtbarkeit des Eingabefeldes gewechselt werden kann. Dabei wird intern der
+ Typ des Eingabefeldes zwischen Text and Passwort gewechselt.
+\end{description}
+\end{minipage}
+\begin{minipage}{.3\linewidth}
+ \begin{figure}[H]
+ \includegraphics[width=\textwidth]{assets/passwordinput.png}
+ \end{figure}
+\end{minipage}
+
+
+\vspace{.5cm}
+
+\begin{minipage}{.7\linewidth}
+
+\subsubsection*{PasswordValidator}
+
+\begin{description}
+\item[Tag] \texttt{<PasswordValidator>}
+\item[Beschreibung] Besteht aus zwei PasswordInputs und überprüft diese auf
+ Gleichheit und Kriterien für eine gutes Passwort.
+\end{description}
+\end{minipage}
+\begin{minipage}{.3\linewidth}
+ \begin{figure}[H]
+ \includegraphics[width=\textwidth]{assets/passwordvalidator.png}
+ \end{figure}
+\end{minipage}
+
+
+\vspace{.5cm}
+
+\begin{minipage}{.7\linewidth}
+
+\subsubsection*{Loading}
+
+\begin{description}
+\item[Tag] \texttt{<Loading waitingFor>...<Loading/>}
+\item[Props] \mbox{} \\
+ \emph{waitingFor} \mbox{} Eine Referenz auf eine Bedingung wann die Kinder
+ der Komponente gezeigt werden sollen.
+\item[Beschreibung] Zeigt solange ein Ladesymbol an, bis die Bedingung in
+ \texttt{waitingFor} erfüllt ist und stattdessen die Kinder der Komponente
+ gezeigt werden.
+\end{description}
+\end{minipage}
+\begin{minipage}{.3\linewidth}
+ \begin{figure}[H]
+ \includegraphics[width=\textwidth]{assets/loading.png}
+ \end{figure}
+\end{minipage}
+
+
+\vspace{.5cm}
+
+\begin{minipage}{.7\linewidth}
+
+\subsubsection*{ProgressTime}
+
+\begin{description}
+\item[Tag] \texttt{<ProgressTime unix>}
+\item[Props] \mbox{} \\
+ \emph{unix} \mbox{} Anzahl an Sekunden.
+\item[Beschreibung] Nimmt eine Anzahl an Sekunden und gibt an wie viele Stunden,
+ Minuten und Sekunden die Anzahl entspricht.
+\end{description}
+\end{minipage}
+\begin{minipage}{.3\linewidth}
+ \begin{figure}[H]
+ \includegraphics[width=\textwidth]{assets/progresstime.png}
+ \end{figure}
+\end{minipage}
+
+
+\vspace{.5cm}
+
+\begin{minipage}{.7\linewidth}
+
+\subsubsection*{ErrorLog}
+
+\begin{description}
+\item[Tag] \texttt{<ErrorLog>}
+\item[Beschreibung] Zeigt eine Liste von Warnungen an, welche aus einem globalen
+ Zustandsspeicher geladen werden.
+\end{description}
+\end{minipage}
+\begin{minipage}{.3\linewidth}
+ \begin{figure}[H]
+ \includegraphics[width=\textwidth]{assets/errorlog.png}
+ \end{figure}
+\end{minipage}
+
+
+\vspace{.5cm}
+
+\subsubsection*{Dashboard/FormLayout}
+
+\begin{description}
+\item[Tag] \texttt{<DashboardLayout> <FormLayout>}
+\item[Beschreibung] Fügt den Kindern einen Seitenabstand hinzu.
+\end{description}
diff --git a/20-implementierungsheft/sections/glossar.tex b/20-implementierungsheft/sections/glossar.tex
new file mode 100644
index 0000000..9caad87
--- /dev/null
+++ b/20-implementierungsheft/sections/glossar.tex
@@ -0,0 +1,371 @@
+\makeglossaries
+
+\newglossaryentry{spa}
+{
+ name=Single-Page-Application,
+ description={
+ ist ein Webseiten-Modell, bei welchem dem Nutzer nur ein Webdokument
+ bereitgestellt wird. Mit einem Skript wird der Inhalt der Seite
+ dynamisch mit Daten einer API befüllt. Außerdem verwaltet die Seite
+ (nicht der Server), welcher Inhalt bei welchem Pfad angezeigt wird. Dies
+ erzeugt geringere Serverlast und eine bessere Nutzererfahrung, da die
+ Seitenstruktur beim Laden von neuen Inhalten erhalten bleibt}
+}
+
+\newglossaryentry{packagemanager}
+{
+ name=Paketmanager,
+ description={
+ ist ein Programm, welches Pakete und dessen Abhängigkeiten verwaltet,
+ installiert, entfernt und aktualisiert. Pakete können andere Programme,
+ Plugins oder Software-Bibliotheken sein}
+}
+
+\newglossaryentry{bundler}
+{
+ name=Bundler,
+ description={
+ ist ein Programm, welches genutzte Teile von Abhängigkeiten eines
+ Software-Projekts in passender Reihenfolge zusammensucht und daraus
+ Dateien erstellt, die für den Nutzer bereitgestellt werden können. Dabei
+ kann der Bundler mit zusätzlichen Modulen Dateien erzeugen, die
+ rückwärtskompatibel oder für den Nutzer schwerer einsehbar sind}
+}
+
+\newglossaryentry{java}
+{
+ name=Java,
+ description={
+ ist eine objekt-orientierte interpretierte kompilierte
+ Programmiersprache, welche plattformunabhängig auf einer virtuellen
+ Maschine ausgeführt wird}
+}
+
+\newglossaryentry{db}
+{
+ name=Datenbank,
+ plural=Datenbanken,
+ description={
+ ist ein System um Daten persistent zu speichern und effizient zu
+ verwalten. Am meisten verbreitet sind relationale Datenbanken, welche
+ Daten in Tabellen mit Referenzen zu Einträgen anderer Tabellen
+ speichern. Programme können dann über eine Anfragesprache (Structured
+ Query Language - \Gls{SQL}) komplexe Operationen auf den Daten ausführen}
+}
+
+\newglossaryentry{docker}
+{
+ name=Docker,
+ description={
+ ist ein Programm, das virtualisierte Container ausführt. Ein Programm in
+ so einem Container läuft in seiner eigenen virtuellen Umgebung, wodurch
+ das Host-System sicher bleibt. Zudem lassen sich die Container leicht
+ auf andere Systeme verteilen}
+}
+
+% RESTfull-API, JSON, RSS-Feed, Salting and Hasing, OAuth, Cookie, Garbage
+% Collection, DSGVO, Podcast, Podcatcher, Episode, Gpodder,
+
+\newglossaryentry{podcatcher}
+{
+ name=Podcatcher,
+ plural=Podcatchern,
+ description={
+ ist ein Programm, über welches man Podcasts entdecken, abonnieren und
+ Episoden von Podcasts hören kann. Mit einem Account auf einer Plattform,
+ welche eine Gpodder-API zur Verfügung stellt, können Ereignisse, die von
+ einem Nutzer ausgehen, auf anderen Podcatchern des Nutzers
+ synchronisiert werden}
+}
+
+\newglossaryentry{podcast}
+{
+ name=Podcast,
+ description={
+ ist ein RSS-Feed, dessen Einträge die Episoden darstellen}
+}
+
+\newglossaryentry{episode}
+{
+ name=Episode,
+ plural=Episoden,
+ description={
+ ist ein Eintrag in einem Podcast. Eine URL in dem Eintrag zeigt auf eine
+ Medien-Datei, welche vom Podcatcher abgespielt werden kann}
+}
+
+\newglossaryentry{rest-api}
+{
+ name=RESTful-API,
+ description={
+ ist ein Schnittstellenentwurf über das Hypertext Transfer Protocol
+ (HTTP), bei dem die Schnittstellen strukturiert als Pfad an einem
+ Endpunkt erreichbar sind. Mittels verschiedener HTTP-Methoden können an
+ der Schnittstelle Daten abgefragt (GET), gesendet (PUT), gelöscht
+ (DELETE) oder geändert (POST) werden. Die Daten, die über die
+ Schnittstelle gesendet werden liegen meist im JSON-Format vor}
+}
+
+
+\newglossaryentry{gpodder}
+{
+ name=Gpodder-API,
+ description={
+ wird von gpodder.net benutzt und entwickelt. Die API wird als
+ Schnittstelle zwischen Podcatchern und Podcast Synchronisationsservern
+ verwendet. Weitere Details sind unter
+ "https://gpoddernet.readthedocs.io/en/latest/api/" zu finden}
+}
+
+\newglossaryentry{json}
+{
+ name=JSON,
+ description={
+ (JavaScript Object Notation) ist ein Datenformat und wird zur
+ Übertragung von Strukturen und Daten eingesetzt. JSON besteht dabei aus
+ grundlegenden Datentypen sowie Objekten mit Schlüssel-Wert Paaren und
+ Listen}
+}
+
+\newglossaryentry{oauth}
+{
+ name=OAuth,
+ description={
+ (Open Authorization) ist ein offenes Protokoll, welches es Nutzern
+ ermöglicht, sich mit bereits bestehenden Accounts bei anderen Diensten
+ zu registrieren. Dabei werden benötigte Daten für die Registrierung über
+ die bereitgestellte Schnittstelle zur Verfügung gestellt}
+}
+
+\newglossaryentry{garbage-collection}
+{
+ name=Garbage Collection,
+ description={
+ ist eine automatische Speicherbereinigung, welche nicht mehr benötigten
+ Speicherplatz wieder freigibt. Die Bereinigung kann dabei in determinierten
+ Zeitintervallen erfolgen oder durch bestimmte Ereignisse ausgelöst
+ werden}
+}
+
+\newglossaryentry{salt-hash}
+{
+ name=Salting und Hashing,
+ description={
+ ist eine Methode um Passwörter so zu kodieren, dass sie nicht als
+ Klartext gespeichert werden und auch sicher vor Hash-Wörterbüchern sind.
+ Dafür wird dem Passwort ein bekanntes Wort, der Salt, angefügt, bevor
+ aus dem kompletten Wort eine Prüfsumme, ein Hash, generiert wird. Beim
+ Anmelden wird die Prüfsumme der Anmeldung mit der bekannten
+ Prüfsumme des Passworts verglichen}
+}
+
+\newglossaryentry{rss}
+{
+ name=RSS,
+ description={
+ (Really Simple Syndication) zeigt strukturiert Listen von Nachrichten
+ an. Die Änderungen werden im XML-Format in sogenannte RSS-Dateien
+ geschrieben, welche über einen Link abgerufen werden können}
+}
+
+\newglossaryentry{dsgvo}
+{
+ name=Datenschutz-Grundverordnung,
+ description={
+ (DSGVO) ist eine im europäischen Wirtschaftsraum
+ geltende Verordnung. Sie sorgt für eine Reglementierung bei der
+ Verarbeitung personenbezogener Daten. Unter anderem muss einsehbar sein,
+ welche Daten von Nutzern erhoben werden. Außerdem muss für einen Nutzer
+ die Möglichkeit bestehen, seine erhobenen Daten abrufen zu können}
+}
+
+\newglossaryentry{push-pull}
+{
+ name=Push und Pull,
+ description={
+ sind Methoden, um Daten auszutauschen. Bei der Pull-Methode
+ stellt Akteur A einem Akteur B eine Anfrage auf Daten und erhält diese
+ als Antwort. Damit Akteur A und B immer auf dem selben Stand sind, muss
+ Akteur A chronisch Anfragen an Akteur B stellen. Im Gegensatz dazu steht
+ die Push-Methode, bei der Akteur B den Akteuren mitteilt, dass er neue
+ Änderungen hat. Dafür muss Akteur B allerdings wissen mit welchen
+ anderen Akteuren er in Verbindung steht und diese Verbindung aufrecht
+ erhalten}
+}
+
+\newglossaryentry{ui-lib}
+{
+ name=UI-Bibliothek,
+ plural=UI-Bibliotheken,
+ description={
+ kümmert sich um das Layout einer Webseite. Dabei unterscheidet man
+ zwischen Design-Bibliotheken (wie Bootstrap), welche fertige
+ UI-Komponenten bereitstellen, und Layout-Bibliotheken (wie Vue oder
+ React.js), welche die Komponenten basierend auf Daten dynamisch
+ anzeigen}
+}
+
+\newglossaryentry{responsive}
+{
+ name=Responsive,
+ description={
+ Design ist ein Design-Prinzip für Webseiten, bei dem die selbe Webseite ihre
+ Komponenten dynamisch der Bildschirmbreite anpasst}
+}
+
+\newglossaryentry{pseudoprotocol}
+{
+ name=Pseudoprotokoll,
+ description={
+ ist ein URL-Schema, auf das Webseiten hören können, wenn sie sich das
+ URL-Schema im Browser anmelden. Bekannt Pseudoprotokolle sind:
+ ,,mailto:'', ,,tel:'' oder ,,irc:''}
+}
+
+\newglossaryentry{dashboard}
+{
+ name=Dashboard,
+ description={
+ ist die erste Seite auf der man landet, wenn man angemeldet ist}
+}
+
+\newglossaryentry{abo}
+{
+ name=Abonnement,
+ description={
+ ist ein abonnierter Podcast}
+}
+
+\newglossaryentry{discovery}
+{
+ name=Discovery,
+ description={
+ ist ein Feature der Gpodder-API, welches dem Nutzer eine Reihe von
+ Podcasts zum abonnieren anbietet}
+}
+
+\newglossaryentry{session-token}
+{
+ name=Session-Token,
+ description={
+ ist ein Wort, dass vom Client gespeichert wird solange der Nutzer
+ eingeloggt ist und bei jeder Anfrage an den Server mitgeschickt wird.
+ Der Server kann den Session-Token einem Nutzer zuordnen und so mit
+ nutzerspezifischen Daten antworten}
+}
+
+\newglossaryentry{cookie}
+{
+ name=Cookie,
+ description={
+ ist ein kleiner webseitenspezifischer Speicher im Browser, welcher vom
+ Server und von der Webseite gesetzt werden kann und bei jeder weiteren
+ Anfrage an den Server mitgesendet wird. Cookies bleiben entweder
+ temporär im Browserspeicher, bis der Browser geschlossen wird oder
+ permanent, bis ein optionales Verfallsdatum erreicht ist}
+}
+
+\newglossaryentry{uiComponent}
+{
+ name=UI-Komponente,
+ plural=UI-Komponenten,
+ description={
+ In Vue.js werden die grafischen Elemente einer Webseite in einzelne
+ Komponenten zerteilt.
+ Diese reagieren automatisch auf Änderungen und können ohne Neuladen
+ der Seite ihr Aussehen verändern und somit Änderungen direkt anzeigen}
+}
+
+\newglossaryentry{spring}
+{
+ name=Spring,
+ description={
+ Ein Java-Framework, welches die Entwicklung von Web-Applikationen erleichtert.
+ Dazu wird eine Reihe von Werkzeugsets zur Verfügung gestellt.
+ Unter anderem sind das Spring Web für das Erstellen von Webanwendungen,
+ Spring Security für die Verwaltung von Benutzerauthentifizierungen und
+ Spring Data JPA für die Arbeit mit relationalen Datenbanken
+ }
+}
+
+\newglossaryentry{api}
+{
+ name=API,
+ plural=APIs,
+ description={
+ Eine Schnittstelle, welche es ermöglicht auf Funktionalitäten einer Anwendung
+ zuzugreifen. APIs für Webanwendungen heißen WebAPIs.
+ Ein Beispiel für eine WebAPI ist die REST-API
+ }
+}
+
+\newglossaryentry{business}
+{
+ name=Geschäftslogik,
+ description={
+ Eine Schicht in der Anwendungsentwicklung, in der die Art und Weise, wie das
+ Programm auf Eingaben reagiert, wie Daten verarbeitet und wie sie gespeichert
+ werden sollen, festgelegt ist
+ }
+}
+
+\newglossaryentry{solid}
+{
+ name=SOLID,
+ description={
+ Eine Sammlung an Prinzipien, welche zu gutem objektorientierten Design führen soll.
+ Jedes Prinzip steht für einen Buchstaben in SOLID:
+ \textbf{S}ingle-Responsibility Prinzip,
+ \textbf{O}pen-Closed Prinzip,
+ \textbf{L}iskovsches Substitutionsprinzip,
+ \textbf{I}nterface Segregation Prinzip und
+ \textbf{D}ependency Inversion Prinzip
+ }
+}
+
+\newglossaryentry{crud}
+{
+ name=CRUD,
+ description={
+ CRUD steht für \textbf{C}reate, \textbf{R}ead, \textbf{U}pdate und \textbf{D}elete.
+ Hierbei handelt es sich um die grundlegenden Funktionen einer Anwendung,
+ die mit einer Datenbank arbeitet.
+ Hierbei können Daten angelegt, abgerufen, aktualisiert und gelöscht werden.
+ Auch in Web-Applikationen ist CRUD mit HTTP über die Anfragen POST, GET, PUT und DELETE
+ vertreten
+ }
+}
+
+\newglossaryentry{SQL}
+{
+ name=SQL,
+ description={
+ SQL (Structured Query Language) ist eine Sprache, die einen strukturierten Zugriff auf Datenbanken ermöglicht.
+ Daten können hierbei hinzugefügt, abgefragt, geändert und gelöscht werden.
+ Das besondere hierbei ist der strukturierte Zugriff auf Daten, indem explizit Daten mit bestimmten Kriterien und
+ Relationen ausgewählt und bearbeitet werden können.
+ SQL wird fast von allen verbreiteten Datenbanksystemen unterstützt
+ }
+}
+
+\newglossaryentry{Base64}
+{
+ name=Base64,
+ description={
+ Mithilfe von Base64 können 8-Bit-Binärdaten in eine ASCII-Zeichenkette
+ kodiert werden. So werden zum Beispiel E-Mail-Anhänge versendet
+ }
+}
+
+\newglossaryentry{JSONP}
+{
+ name=JSONP,
+ description={
+ JSONP ermöglicht die Übertragung von JSON-Daten zwischen verschiedenen Domains.
+ Dies wäre durch die Same-Origin-Policy nicht möglich.
+ JSONP nutzt allerdings die Tatsache aus,
+ dass sich Skripte domainübergreifend übertragen lassen.
+ Dazu werden die JSON-Daten als Argument einer übergebenen Funktion über
+ ein Skript-Element eingebunden
+ }
+}
diff --git a/20-implementierungsheft/sections/methodology.tex b/20-implementierungsheft/sections/methodology.tex
new file mode 100644
index 0000000..87b8176
--- /dev/null
+++ b/20-implementierungsheft/sections/methodology.tex
@@ -0,0 +1,16 @@
+\section{Integrationsstrategie}
+
+Bei der Implementierung wurde nach dem Outside-In Prinzip vorangegangenen.
+Dabei handelt es sich um eine inkrementelle und vorgehensorientierte Integrationsstrategie.
+Sie versucht die Vorteile des Top-Down und des Bottom-Up Prinzips zu vereinen und die jeweiligen
+Nachteile zu mindern.
+
+Bei der Outside-In Integration wird gleichzeitig auf höchster und niedrigster logischer
+Ebene mit der Implementation begonnen. Das passt gut zu der gewählten Systemarchitektur.
+Es wird sowohl frühzeitig die \Gls{db} eingebunden als auch das Frontend und die
+Controller implementiert. Dafür wird erst später an der Service-Schicht gearbeitet.
+Dieses Vorgehen wurde gewählt um die frühe Verfügbarkeit von testbaren Endpunkten zu haben.
+Somit können das Front- und Backend schon nach kurzer Zeit miteinander Integriert werden,
+wenn auch ohne funktionierende Serviceschicht. Außerdem wird für lange Zeit an verschiedenen
+Punkten gearbeitet, sodass der Prozess dank des vorrausgegangenen Entwurfs gut auf das ganze
+Team parallelisierbar ist.
diff --git a/20-implementierungsheft/sections/tests.tex b/20-implementierungsheft/sections/tests.tex
new file mode 100644
index 0000000..cdbf163
--- /dev/null
+++ b/20-implementierungsheft/sections/tests.tex
@@ -0,0 +1,21 @@
+\section{Testfälle}
+
+Für die Erstellung der Testfälle wurde die SpringBoot Testumgebung verwendet und
+diese durch JUnit Testfälle ergänzt.
+
+Für das Testen wurde eine BaseTest Klasse erstellt, die grundlegende Funktionalität
+einiger Kern Komponenten sicherstellt. Weiter Initialisiert sie die Anwendungsumgebung auf
+der alle weiteren Tests aufbauen.
+
+Die Unit Tests erweitern diese BaseTest Klasse und können daher von gewisser Grundfunktionalität
+ausgehen, die durch den BaseTest abgedeckt ist. Dadurch müssen nicht große Teile der
+Anwendung durch Mock Objekte simuliert werden.
+
+Grundsätzlich wurde beim Entwurf der Testfälle nach dem Inside-Out-Prinzip vorangegangenen.
+Die bisher geschriebenen Testfälle haben dabei nicht das Ziel Korrektheit zu garantieren,
+sondern einen gewissen Qualitätsstandart zu sichern und gleichzeitig genug
+Arbeitspunkte bereit zu stellen um im ganzen Team an diesem Projekt parallel arbeite zu können.
+
+Zusätzlich wurden bei der Implementierung auf ausgiebig getestete Annotationen von Spring und
+Lombok zurückgegriffen die helfen die Anzahl an Fehlern bei standardisierten
+\enquote{Boilerplater-Code} Aufgaben zu vermeiden. \ No newline at end of file
diff --git a/20-implementierungsheft/sections/timeline.tex b/20-implementierungsheft/sections/timeline.tex
new file mode 100644
index 0000000..7fa084d
--- /dev/null
+++ b/20-implementierungsheft/sections/timeline.tex
@@ -0,0 +1,7 @@
+\section{Zeitlicher Verlauf}
+
+\subsection{Plan}
+\includegraphics[width=\textwidth]{assets/diagrams/gantt-plan}
+
+\subsection{Realität}
+\includegraphics[width=\textwidth]{assets/diagrams/gantt-reality}
diff --git a/20-implementierungsheft/titlepage.tex b/20-implementierungsheft/titlepage.tex
new file mode 100644
index 0000000..4e7e707
--- /dev/null
+++ b/20-implementierungsheft/titlepage.tex
@@ -0,0 +1,75 @@
+%% Encoding: UTF-8 %%
+
+%% titlepage.tex
+
+\def\usesf{}
+\let\usesf\sffamily % diese Zeile auskommentieren für normalen TeX Font
+
+\begin{titlepage}
+
+\setlength{\unitlength}{1pt}
+\begin{picture}(00,0)(70,770)
+ \includegraphics[width=\paperwidth]{assets/KIT_Deckblatt.pdf}
+\end{picture}
+
+\thispagestyle{empty}
+
+\begin{center}
+\hbox{}
+\vfill
+\includegraphics[width=.5\textwidth]{assets/logo.pdf}
+\vskip 1cm
+{\usesf
+ {\huge\bfseries PSE\textsuperscript{2} - Podcast Synchronisation \\
+ made Efficient\\
+ Implementierungsheft \par}
+\vskip 1.8cm
+{\Large Wintersemester 2022/2023\\}
+%von\\[2mm]
+\vskip 1.5cm
+
+% {\large\bfseries Vorname Nachname\\}
+% \vskip 1.2cm
+Praxis der Softwareentwicklung \\
+Prof. Dr.-Ing. Gregor Snelting \\
+Fakultät für Informatik\\
+Karlsruher Institut für Technologie\\
+\vskip 1.5cm
+\begin{tabular}{p{20mm}l}
+Autoren:
+& Daniel Hönlinger \\
+& Gero Beckmann \\
+& Immanuel Reitz \\
+& Julius Friesen \\
+& Lukas Schmidheissler \\
+\\
+Betreuer: & M.Sc. Hans-Peter Lehmann \\
+ & M.Sc. Daniel Seemaier
+\end{tabular}
+}
+\end{center}
+\vfill
+
+%\begin{textblock}{10}[0,0](4,15)
+% \includegraphics[width=.3\textwidth]{logos/logo.pdf}
+%\end{textblock}
+
+% \begin{textblock}{8}[0,0](14,14)
+% \includegraphics[width=.3\textwidth]{logos/KASTEL_logo.pdf}
+% \end{textblock}
+
+\end{titlepage}
+
+% \thispagestyle{empty}
+% \ \vfill
+% \begin{flushleft}
+% Copyright $\copyright$ ITI und Verfasser 201?\\
+% \ \\
+% Institut für Theoretische Informatik
+% Fakultät für Informatik\\
+% Karlsruher Institut für Technologie\\
+% Am Fasanengarten 5\\
+% 76131 Karlsruhe
+% \end{flushleft}
+% \newpage
+