From 738ecbd5fad2b46836bfd6a94aeebf165ae2bbca Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Thu, 4 Jan 2018 16:00:52 +0100 Subject: relocated source code to the root --- images/AH_latex_head.png | Bin 0 -> 6334 bytes images/AH_latex_tail.png | Bin 0 -> 6324 bytes images/AH_none.png | Bin 0 -> 6183 bytes images/AH_plain_head.png | Bin 0 -> 6298 bytes images/AH_plain_tail.png | Bin 0 -> 6320 bytes images/ED_arrow.png | Bin 0 -> 6357 bytes images/ED_none.png | Bin 0 -> 6190 bytes images/ED_tick.png | Bin 0 -> 6258 bytes images/customshape.png | Bin 0 -> 1281 bytes images/draw-ellipse.png | Bin 0 -> 3493 bytes images/draw-path.png | Bin 0 -> 920 bytes images/emblem-important.png | Bin 0 -> 717 bytes images/emblem-unreadable-grey.png | Bin 0 -> 3554 bytes images/engine.png | Bin 0 -> 1546 bytes images/format-indent-less.png | Bin 0 -> 767 bytes images/preamble.png | Bin 0 -> 851 bytes images/select-rectangular.png | Bin 0 -> 499 bytes images/text-x-generic.png | Bin 0 -> 744 bytes images/text-x-script.png | Bin 0 -> 1416 bytes images/tikzit48x48.png | Bin 0 -> 2606 bytes images/transform-crop-and-resize.png | Bin 0 -> 1132 bytes images/transform-move.png | Bin 0 -> 638 bytes images/updates.png | Bin 0 -> 1953 bytes 23 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/AH_latex_head.png create mode 100644 images/AH_latex_tail.png create mode 100644 images/AH_none.png create mode 100644 images/AH_plain_head.png create mode 100644 images/AH_plain_tail.png create mode 100644 images/ED_arrow.png create mode 100644 images/ED_none.png create mode 100644 images/ED_tick.png create mode 100644 images/customshape.png create mode 100644 images/draw-ellipse.png create mode 100644 images/draw-path.png create mode 100644 images/emblem-important.png create mode 100644 images/emblem-unreadable-grey.png create mode 100644 images/engine.png create mode 100644 images/format-indent-less.png create mode 100644 images/preamble.png create mode 100644 images/select-rectangular.png create mode 100644 images/text-x-generic.png create mode 100644 images/text-x-script.png create mode 100644 images/tikzit48x48.png create mode 100644 images/transform-crop-and-resize.png create mode 100644 images/transform-move.png create mode 100644 images/updates.png (limited to 'images') diff --git a/images/AH_latex_head.png b/images/AH_latex_head.png new file mode 100644 index 0000000..b25cf6d Binary files /dev/null and b/images/AH_latex_head.png differ diff --git a/images/AH_latex_tail.png b/images/AH_latex_tail.png new file mode 100644 index 0000000..0825cda Binary files /dev/null and b/images/AH_latex_tail.png differ diff --git a/images/AH_none.png b/images/AH_none.png new file mode 100644 index 0000000..6322374 Binary files /dev/null and b/images/AH_none.png differ diff --git a/images/AH_plain_head.png b/images/AH_plain_head.png new file mode 100644 index 0000000..8a398fa Binary files /dev/null and b/images/AH_plain_head.png differ diff --git a/images/AH_plain_tail.png b/images/AH_plain_tail.png new file mode 100644 index 0000000..45b1876 Binary files /dev/null and b/images/AH_plain_tail.png differ diff --git a/images/ED_arrow.png b/images/ED_arrow.png new file mode 100644 index 0000000..153d2e1 Binary files /dev/null and b/images/ED_arrow.png differ diff --git a/images/ED_none.png b/images/ED_none.png new file mode 100644 index 0000000..f95140c Binary files /dev/null and b/images/ED_none.png differ diff --git a/images/ED_tick.png b/images/ED_tick.png new file mode 100644 index 0000000..a3882fe Binary files /dev/null and b/images/ED_tick.png differ diff --git a/images/customshape.png b/images/customshape.png new file mode 100644 index 0000000..cff8275 Binary files /dev/null and b/images/customshape.png differ diff --git a/images/draw-ellipse.png b/images/draw-ellipse.png new file mode 100644 index 0000000..d8e3e6f Binary files /dev/null and b/images/draw-ellipse.png differ diff --git a/images/draw-path.png b/images/draw-path.png new file mode 100644 index 0000000..ec5e691 Binary files /dev/null and b/images/draw-path.png differ diff --git a/images/emblem-important.png b/images/emblem-important.png new file mode 100644 index 0000000..81e9ed2 Binary files /dev/null and b/images/emblem-important.png differ diff --git a/images/emblem-unreadable-grey.png b/images/emblem-unreadable-grey.png new file mode 100644 index 0000000..09572ab Binary files /dev/null and b/images/emblem-unreadable-grey.png differ diff --git a/images/engine.png b/images/engine.png new file mode 100644 index 0000000..1e45370 Binary files /dev/null and b/images/engine.png differ diff --git a/images/format-indent-less.png b/images/format-indent-less.png new file mode 100644 index 0000000..7ced16f Binary files /dev/null and b/images/format-indent-less.png differ diff --git a/images/preamble.png b/images/preamble.png new file mode 100644 index 0000000..d940d24 Binary files /dev/null and b/images/preamble.png differ diff --git a/images/select-rectangular.png b/images/select-rectangular.png new file mode 100644 index 0000000..866b602 Binary files /dev/null and b/images/select-rectangular.png differ diff --git a/images/text-x-generic.png b/images/text-x-generic.png new file mode 100644 index 0000000..928a679 Binary files /dev/null and b/images/text-x-generic.png differ diff --git a/images/text-x-script.png b/images/text-x-script.png new file mode 100644 index 0000000..801dcd6 Binary files /dev/null and b/images/text-x-script.png differ diff --git a/images/tikzit48x48.png b/images/tikzit48x48.png new file mode 100644 index 0000000..056d04b Binary files /dev/null and b/images/tikzit48x48.png differ diff --git a/images/transform-crop-and-resize.png b/images/transform-crop-and-resize.png new file mode 100644 index 0000000..4dedd93 Binary files /dev/null and b/images/transform-crop-and-resize.png differ diff --git a/images/transform-move.png b/images/transform-move.png new file mode 100644 index 0000000..ae4201b Binary files /dev/null and b/images/transform-move.png differ diff --git a/images/updates.png b/images/updates.png new file mode 100644 index 0000000..469ae30 Binary files /dev/null and b/images/updates.png differ -- cgit v1.2.3 From c0bb77059e3c4afa47fe6bfebbf99e230a01992c Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Wed, 10 Jan 2018 09:40:41 +0100 Subject: added Doxyfile, Illustrator file for icon, and a 512x512 version --- Doxyfile | 2512 ++++++++++++++++++++++++++++++++++++++++++++++ images/tikzit.ai | 967 ++++++++++++++++++ images/tikzit48x48.png | Bin 2606 -> 2435 bytes images/tikzit512x512.png | Bin 0 -> 27019 bytes src/gui/tikzscene.cpp | 11 + 5 files changed, 3490 insertions(+) create mode 100644 Doxyfile create mode 100644 images/tikzit.ai create mode 100644 images/tikzit512x512.png (limited to 'images') diff --git a/Doxyfile b/Doxyfile new file mode 100644 index 0000000..039ed89 --- /dev/null +++ b/Doxyfile @@ -0,0 +1,2512 @@ +# Doxyfile 1.8.14 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all text +# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv +# built into libc) for the transcoding. See +# https://www.gnu.org/software/libiconv/ for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = TikZiT + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = 2.0 + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = "A GUI diagram editor for TikZ" + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = images/tikzit48x48.png + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = ../tikzit.github.io/docs + +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = YES + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines (in the resulting output). You can put ^^ in the value part of an +# alias to insert a newline as if a physical newline was in the original file. + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding "class=itcl::class" +# will allow you to use the command class in the itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, Javascript, +# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: +# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: +# Fortran. In the later case the parser tries to guess whether the code is fixed +# or free formatted code, this is the default for Fortran type files), VHDL. For +# instance to make doxygen treat .inc files as Fortran files (default is PHP), +# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See http://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 0. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 0 + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# (class|struct|union) declarations. If set to NO, these declarations will be +# included in the documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file +# names in lower-case letters. If set to YES, upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. +# The default value is: system dependent. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +INPUT = /Users/alek/git/tikzit/src + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: https://www.gnu.org/software/libiconv/) for the list of +# possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, +# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, +# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf. + +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.idl \ + *.ddl \ + *.odl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.cs \ + *.d \ + *.php \ + *.php4 \ + *.php5 \ + *.phtml \ + *.inc \ + *.m \ + *.markdown \ + *.md \ + *.mm \ + *.dox \ + *.py \ + *.pyw \ + *.f90 \ + *.f95 \ + *.f03 \ + *.f08 \ + *.f \ + *.for \ + *.tcl \ + *.vhd \ + *.vhdl \ + *.ucf \ + *.qsf + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# function all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see https://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the config file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = YES + +# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the +# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the +# cost of reduced performance. This can be particularly helpful with template +# rich C++ code for which doxygen's built-in parser lacks the necessary type +# information. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse-libclang=ON option for CMake. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + +# If clang assisted parsing is enabled you can provide the clang parser with the +# path to the compilation database (see: +# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) used when the files +# were built. This is equivalent to specifying the "-p" option to a clang tool, +# such as clang-check. These options will then be passed to the parser. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse-libclang=ON option for CMake. +# The default value is: 0. + +CLANG_COMPILATION_DATABASE_PATH= 0 + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in +# which the alphabetical index list will be split. +# Minimum value: 1, maximum value: 20, default value: 5. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via Javascript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have Javascript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: https://developer.apple.com/tools/xcode/), introduced with +# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a +# Makefile in the HTML output directory. Running make will produce the docset in +# that directory and running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See https://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the master .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: http://doc.qt.io/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: http://doc.qt.io/qt-4.8/qthelpproject.html#virtual-folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# http://doc.qt.io/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location of Qt's +# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the +# generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANSPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# https://www.mathjax.org) which uses client side Javascript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. See the MathJax site (see: +# http://docs.mathjax.org/en/latest/output.html) for more details. +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility), NativeMML (i.e. MathML) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from https://www.mathjax.org before deployment. +# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/ + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , />stream +H‰ÜW˲7 Ý÷WøÚ×’üÜr¬HŠº‹°¿•„ÅL(‚ßÏ9î¶{¦¤*• u™‘Æ’õ:’üðË£{xóÜ‹—nù¸—DûßÊÿþúmùÕý þÃOOÁýñiyx} îå‡åíòê 6qÙÄßâ FoÚœÖìcPwŒ(¾ª8k>Tq‚ϵ¹l¾es’‹Ïâž—{ú²$ñ-D'É|?FŸJub ¤NR²k?1.ƒQ̇`®4ŸbrV}°ìD6 êy¹§/‹¤ìK”y¼&Ÿ‚Ó|¸£eoÅ\ ^»é'ÆeÑ} ÅÕ涫B’]­>5D·IÔórOCÚ¡Tæq.¶® ºbñZû]R¥ïOÅ×im¶ÒóÑ`‹_|Tñ!µA>/'Æe±½4›N¸‚AýN‰ q?1.“DÅHqd¿¥žG‰D4­=Í‚ôBÁ‰C !Y„xõQ¡®% <ϘB¼yðnã£XtQX¹Ó¨DÐøyR¿£!žµËÍóaÀ¨'ðºoѨáĹLŽ!‘58tZfLònà† ƒ†Ú…°]¬¸ iw+|ð)ÄZ‘æ;â8Ü ¿)ë°P¡f]—ïÜÃÓûà>½w¯Þ¹·½Õ|½W=<âêÇ'ú?÷ôøó"Á}vѽqÓ®NúÏ[%¤ÖFàSåmü麬ÉÓ:·¢ª¢%g’ HT~‚„ÇkL¨-uéiàâçDª/(ÁUP1OrÕ<ÂhjA© u Ü'½‚>v™Á5Ï­p¤~# +¢¤ NJ=ËýÊÚ{Újì¤poU½è«€H4ÕvæÄæ-l6N^SÄ_,"Q‰+þ‚ž¢“†¢Ä+Bx1ëm.#H­ðRóªü‚ ÐR»*½P“–ܻتˆ»OçT^ºGq2 &h-êí!†$m  «ám ÅPd%¤Í&v«UL{gïfô§ý&ÑþÁ€bËî}œQVEÛT˜™Éˆ­§ž BÝ…Ø"³¡>dªcŸRúWÑ7´ ±¬7¡{'u¤/P¦47öщ:ä|é¡€v#¥'°„©ë4‰áøŠ&a éà”Š†KpbR º²¾-¤a<îò¼ž—÷ËÓiÐc(JèxH&‘Á¡’Ô)*9"ñ¯_@R1;rÅ åìSÖÿ€dàõ¹1y©eWˆÉýsÿ`–ÑÈ82ÆI¬òƒýðN¬ýWÆz—ÞôNõ;Ixl×ïŒ0%· üïÑGáìg÷C9¶eû¦{ð¡ L¾æ‘ræ²N1ƒÑ8:kfëÇg$®ÌË\œ¿SS‘)½“ÝýûªÛV7$דêõнß=8aʉúq¼Ù²Ó·ð°¢q ²í^ Ò¢EîuÐe4 s–ƒÜ¸_rï4V²çrpÐñ°à‘3´ìœy G–×a‡qföiyæ\ºe\ò´qR7i ?ë·ÝûËð*À¬›·^¿fÙ—Ö©ƒ“70ÌpZTʘ/UAc +¡å)žVúš|âpÃR¬±Ëú¤pSãÔÁÍ‹‘9t Φ£ß å/îÕ“¿7[–²uâtÎ)oe |_VÇáB)P‡ïM³½Û”ÜmSÿ­WsÕÌÜ~¸Ë` }2õ2ù ™t½‡ŒÞ@F÷²/nHž¡2è™:9aÊþc§þÞݺéH|Á¼æÓ%}ÅÃ%ƒOØ“±<5>•°g`pwêË)@2‹þÌÁã²baBp +q’;K®¢‚ݤW*ÅD:°~ T`íç£JOèh\‰¢ãZSêÖB n7ìÒßQ}K'{I葤LM±÷Ž +íÀº»z +íDµo]îÌ¡/ôA/¹fÄ'Ñž…ïCt" õÓ¥øúJAke9s Ï¥Ü±£iB¿Ø²øP½OÓá`&µ^RÍÚ „óØ3Ñ…φØÐB$#µIDh]+Õ Ùž ×ÿôÂ’Az¾Wt|ôß»[è%Ud°Î¾‚ƒ±TòM™K,€Ä ” k:b|»ä¸9Ôúón@T"eeB˜oŒÜnaæP^¡œ£U€QhéÞJ¨9› uÜs #£™ÐŽÙ¡„ÏWb`ïjŒ0›^(ž¿´ÝÓgròO¾#Y½„Yl·ˆ?sh^JÜö.Á@+ÇòÞEÎI:c~ýЯ7¨Ç¤ÏV¬p‰‰\jJàOÔÛDýíKÍŽ—ZpI´ÿ­üo‡~7ÆhÌÃ뫸—ÆSïíò·…‰R endstream endobj 77 0 obj <> endobj 90 0 obj <>stream +8;ZD.gPs,o%!4_eHG&pt:\mXE#6aOKEBq.IT0"9n@!b"'E$!X((QH?s"5?G?K#P20 +O/d)\T,/P1'qS?i"`crJ?H8d*KjRXIZ+u6FTjS-):gaeT(>+?(!Z6FT)AEal%;;Q@ +kb3O4qsuY.N]*EB(@]Z27":::JI9hMb@0>:^nab-+NNs/JHE@q?G;3L!m9!^.::8g +iM>Jef*'=g%mLeUpPAmn5I8u&(:V"^JE7%&U-SUuQX1AZ47 +)b\i'orh[PJOC%+(N\UM53;RTZn-;X. +d$#BDrYE[.o3UD]5(MDElGJ=9>,`#5E]% +cN&-!^1@~> endstream endobj 92 0 obj [/Indexed/DeviceRGB 255 93 0 R] endobj 93 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 88 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 0 0 0 scn +/GS0 gs +507.579 6.422 -494.579 114.578 re +f + endstream endobj 89 0 obj <>/ExtGState<>>>/Subtype/Form>>stream +/CS0 cs 1 1 1 scn +/GS0 gs +q 1 0 0 1 536.5762 405.4023 cm +0 0 m +0 -88.638 -130.614 -160.492 -291.735 -160.492 c +-452.856 -160.492 -583.471 -88.638 -583.471 0 c +-583.471 88.637 -452.856 160.492 -291.735 160.492 c +-130.614 160.492 0 88.637 0 0 c +f +Q + endstream endobj 95 0 obj <> endobj 81 0 obj <> endobj 79 0 obj [/ICCBased 96 0 R] endobj 96 0 obj <>stream +H‰œ–yTSwÇoÉž•°Ãc [€°5la‘QIBHØADED„ª•2ÖmtFOE.®c­Ö}êÒõ0êè8´׎8GNg¦Óïï÷9÷wïïÝß½÷ó '¥ªµÕ0 Ö ÏJŒÅb¤  + 2y­.-;!à’ÆK°ZÜ ü‹ž^i½"LÊÀ0ðÿ‰-×é @8(”µrœ;q®ª7èLöœy¥•&†Qëñq¶4±jž½ç|æ9ÚÄ +V³)gB£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚óÈtÕ;\ú” Ó¥$ÕºF½ZUnÀÜå˜(4TŒ%)ë«”ƒ0C&¯”阤Z£“i˜¿óœ8¦Úbx‘ƒE¡ÁÁBÑ;…ú¯›¿P¦ÞÎӓ̹žAü om?çW= +€x¯Íú·¶Ò-Œ¯Àòæ[›Ëû0ñ¾¾øÎ}ø¦y)7ta¾¾õõõ>j¥ÜÇTÐ7úŸ¿@ï¼ÏÇtÜ›ò`qÊ2™±Ê€™ê&¯®ª6ê±ZL®Ä„?â_øóyxg)Ë”z¥ÈçL­UáíÖ*ÔuµSkÿSeØO4?׸¸c¯¯Ø°.òò· åÒR´ ßÞô-•’2ð5ßáÞüÜÏ ú÷Sá>Ó£V­š‹“då`r£¾n~ÏôY &à+`œ;ÂA4ˆÉ 䀰ÈA9Ð=¨- t°lÃ`;»Á~pŒƒÁ ðGp| ®[`Lƒ‡`<¯ "A ˆ YA+äùCb(Š‡R¡,¨*T2B-Ð +¨ꇆ¡Ðnè÷ÐQètº}MA ï —0Óal»Á¾°ŽSàx ¬‚kà&¸^Á£ð>ø0|>_ƒ'á‡ð,ÂG!"F$H:Rˆ”!z¤éF‘Qd?r 9‹\A&‘GÈ ”ˆrQ ¢áhš‹ÊÑ´íE‡Ñ]èaô4zBgÐ×Á–àE#H ‹*B=¡‹0HØIøˆp†p0MxJ$ùD1„˜D, V›‰½Ä­ÄÄãÄKÄ»ÄY‰dEò"EÒI2’ÔEÚBÚGúŒt™4MzN¦‘Èþär!YKî ’÷?%_&ß#¿¢°(®”0J:EAi¤ôQÆ(Ç()Ó”WT6U@ æP+¨íÔ!ê~êêmêæD ¥eÒÔ´å´!ÚïhŸÓ¦h/èº']B/¢éëèÒÓ¿¢?a0nŒhF!ÃÀXÇØÍ8ÅøšñÜŒkæc&5S˜µ™˜6»lö˜Iaº2c˜K™MÌAæ!æEæ#…åÆ’°d¬VÖë(ëk–Íe‹Øél »—½‡}Ž}ŸCâ¸qâ9 +N'çÎ)Î].ÂuæJ¸rî +î÷ wšGä xR^¯‡÷[ÞoÆœchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â­*­6X[ݱF­=­3­ë­·YŸ±~dó ·‘ÛtÛ´¹i ÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö +n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=GTB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%—®K7YV³©fFŸ¢ßY Õ.©=bàá?SŒîÆ•Æ©ºÈº‘ºçõyõ‡Ø Ú† žkï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹­³mzyâò]íÔöÊö?uøuôw|¿"űN»ÎåwW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝ­èþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_p߶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMśΠnßLÝlÜ<9”úO¤[þ˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ +¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäüå„æ æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ ÷„óû endstream endobj 94 0 obj <> endobj 84 0 obj <> endobj 85 0 obj <> endobj 86 0 obj <> endobj 87 0 obj <> endobj 98 0 obj <>stream + endstream endobj 97 0 obj <> endobj 99 0 obj <> endobj 100 0 obj <> endobj 71 0 obj <> endobj 72 0 obj <> endobj 73 0 obj <> endobj 74 0 obj <> endobj 107 0 obj [/View/Design] endobj 108 0 obj <>>> endobj 105 0 obj [/View/Design] endobj 106 0 obj <>>> endobj 103 0 obj [/View/Design] endobj 104 0 obj <>>> endobj 101 0 obj [/View/Design] endobj 102 0 obj <>>> endobj 80 0 obj <> endobj 82 0 obj <> endobj 83 0 obj <> endobj 110 0 obj <> endobj 111 0 obj [0.0] endobj 112 0 obj <>/XObject<>>>/Subtype/Form>>stream +0 g +/GS0 gs +-46.895 565.894 583.471 -320.984 re +f +q +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /Fm0 Do +Q + endstream endobj 113 0 obj <> endobj 114 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +419.6 365.446 m +414.319 365.446 409.165 364.915 404.179 363.916 c +374.027 434.636 303.875 484.212 222.14 484.212 c +112.892 484.212 24.329 395.649 24.329 286.402 c +24.329 241.821 39.081 200.689 63.963 167.609 c +51.904 153.863 44.578 135.862 44.578 116.139 c +44.578 73.004 79.545 38.036 122.68 38.036 c +156.741 38.036 185.693 59.849 196.373 90.261 c +204.807 89.163 213.406 88.591 222.14 88.591 c +230.657 88.591 239.049 89.13 247.283 90.175 c +257.895 59.637 286.907 37.708 321.059 37.708 c +364.193 37.708 399.16 72.675 399.16 115.81 c +399.16 135.448 391.896 153.38 379.928 167.104 c +390 180.404 398.426 195.017 404.91 210.641 c +409.67 209.734 414.576 209.241 419.6 209.241 c +462.734 209.241 497.701 244.209 497.701 287.343 c +497.701 330.478 462.734 365.446 419.6 365.446 c +W n +q +0 g +/GS0 gs +-0.0000153 446.5039062 446.5039062 0.0000153 261.0146484 37.7080078 cm +BX /Sh0 sh EX Q +Q +/CS1 CS 0 0 0 SCN +10 w 4 M 0 j 0 J []0 d +/GS0 gs +q 1 0 0 1 419.5996 365.4458 cm +0 0 m +-5.28 0 -10.435 -0.531 -15.421 -1.53 c +-45.572 69.19 -115.725 118.767 -197.46 118.767 c +-306.708 118.767 -395.271 30.204 -395.271 -79.044 c +-395.271 -123.625 -380.519 -164.756 -355.636 -197.836 c +-367.696 -211.583 -375.022 -229.583 -375.022 -249.307 c +-375.022 -292.442 -340.055 -327.41 -296.92 -327.41 c +-262.858 -327.41 -233.907 -305.597 -223.227 -275.185 c +-214.792 -276.283 -206.193 -276.855 -197.46 -276.855 c +-188.942 -276.855 -180.55 -276.316 -172.316 -275.271 c +-161.705 -305.809 -132.692 -327.738 -98.541 -327.738 c +-55.406 -327.738 -20.439 -292.771 -20.439 -249.636 c +-20.439 -229.998 -27.704 -212.066 -39.672 -198.342 c +-29.6 -185.042 -21.174 -170.429 -14.689 -154.805 c +-9.93 -155.711 -5.023 -156.205 0 -156.205 c +43.135 -156.205 78.102 -121.237 78.102 -78.103 c +78.102 -34.968 43.135 0 0 0 c +h +S +Q + endstream endobj 115 0 obj <> endobj 116 0 obj <> endobj 118 0 obj <> endobj 119 0 obj <> endobj 120 0 obj <> endobj 121 0 obj <> endobj 117 0 obj [/ICCBased 96 0 R] endobj 109 0 obj <> endobj 122 0 obj [0.0] endobj 123 0 obj <>/XObject<>>>/Subtype/Form>>stream +0 g +/GS0 gs +13 121 494.579 -114.578 re +f +q +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /Fm0 Do +Q + endstream endobj 124 0 obj <> endobj 125 0 obj <>/XObject<>>>/Subtype/Form>>stream +q +/GS0 gs +0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /Fm0 Do +Q + endstream endobj 126 0 obj <> endobj 128 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream +q +7.977 8.752 m +113.295 8.752 l +408.581 8.752 l +507.01 8.752 l +507.01 37.756 l +507.01 77.308 l +408.581 77.308 l +113.295 77.308 l +7.977 77.308 l +7.977 37.756 l +h +W n +q +0 g +/GS0 gs +1 0 0 -1 0 0 cm +BX /Sh0 sh EX Q +Q + endstream endobj 129 0 obj <> endobj 130 0 obj <>stream +þý €‰þý 1}þý Òpþý ÒpüÔ“4 Òpû—)I ÒpúY¿] 1}úY¿]€‰úY¿]úY¿]û—)IüÔ“4€‰üÔ“4 1}üÔ“4 1}û—)I€‰û—)I úY¿]€‰úY¿] 1}úY¿] ÒpúY¿] ÒpùUr Òp÷Þë‡ Òpö¡› 1}ö¡›€‰ö¡›ö¡›÷Þë‡ùUr€‰ùUr 1}ùUr 1}÷Þ뇀‰÷Þë‡  Òpþý bùþý ‚ó‚þý „ þý „ üÔ“4„ û—)I„ úY¿]‚ó‚úY¿]bùúY¿] ÒpúY¿] Òpû—)I ÒpüÔ“4bùüÔ“4‚ó‚üÔ“4‚ó‚û—)Ibùû—)I ÒpúY¿]bùúY¿]‚ó‚úY¿]„ úY¿]„ ùUr„ ÷Þ뇄 ö¡›‚ó‚ö¡›bùö¡› Òpö¡› Òp÷Þë‡ ÒpùUrbùùUr‚ó‚ùUr‚ó‚÷Þë‡bù÷Þë‡ ;;;ö¡›€‰ö¡› 1}ö¡› Òpö¡› Òpõd° Òpô&­Ä ÒpòéCÙ 1}òéCÙ€‰òéCÙòéCÙô&­Äõd°€‰õd° 1}õd° 1}ô&­Ä€‰ô&­Ä---òéCÙ€‰òéCÙ 1}òéCÙ ÒpòéCÙ Òpñ«Ùí Òpðnp Òpï1 1}ï1€‰ï1ï1ðnpñ«Ù퀉ñ«Ùí 1}ñ«Ùí 1}ðnp€‰ðnp---333 Òpö¡›bùö¡›‚ó‚ö¡›„ ö¡›„ õd°„ ô&­Ä„ òéCÙ‚ó‚òéCÙbùòéCÙ ÒpòéCÙ Òpô&­Ä Òpõd°bùõd°‚ó‚õd°‚ó‚ô&­Äbùô&­Ä;;;PPP--- ÒpòéCÙbùòéCÙ‚ó‚òéCÙ„ òéCÙ„ ñ«Ùí„ ðnp„ ï1‚ó‚ï1bùï1 Òpï1 Òpðnp Òpñ«Ùíbùñ«Ùí‚ó‚ñ«Ùí‚ó‚ðnpbùðnp---PPPXXX333„ þý „”þý $µˆþý (…V{þý (…V{üÔ“4(…V{û—)I(…V{úY¿]$µˆúY¿]„”úY¿]„ úY¿]„ û—)I„ üÔ“4„”üÔ“4$µˆüÔ“4$µˆû—)I„”û—)I---„ úY¿]„”úY¿]$µˆúY¿](…V{úY¿](…V{ùUr(…V{÷Þë‡(…V{ö¡›$µˆö¡›„”ö¡›„ ö¡›„ ÷Þ뇄 ùUr„”ùUr$µˆùUr$µˆ÷Þ뇄”÷Þë‡---PPP;;;(…V{þý -çþý 1†wþý 6þý 6üÔ“46û—)I6úY¿]1†wúY¿]-çúY¿](…V{úY¿](…V{û—)I(…V{üÔ“4-çüÔ“41†wüÔ“41†wû—)I-çû—)I333---(…V{úY¿]-çúY¿]1†wúY¿]6úY¿]6ùUr6÷Þë‡6ö¡›1†wö¡›-çö¡›(…V{ö¡›(…V{÷Þë‡(…V{ùUr-çùUr1†wùUr1†w÷Þë‡-ç÷Þë‡---333XXXPPP„ ö¡›„”ö¡›$µˆö¡›(…V{ö¡›(…V{õd°(…V{ô&­Ä(…V{òéCÙ$µˆòéCÙ„”òéCÙ„ òéCÙ„ ô&­Ä„ õd°„”õd°$µˆõd°$µˆô&­Ä„”ô&­Ä;;;PPPfffPPP„ òéCÙ„”òéCÙ$µˆòéCÙ(…V{òéCÙ(…V{ñ«Ùí(…V{ðnp(…V{ï1$µˆï1„”ï1„ ï1„ ðnp„ ñ«Ùí„”ñ«Ùí$µˆñ«Ùí$µˆðnp„”ðnpPPPfffnnnXXX(…V{ö¡›-çö¡›1†wö¡›6ö¡›6õd°6ô&­Ä6òéCÙ1†wòéCÙ-çòéCÙ(…V{òéCÙ(…V{ô&­Ä(…V{õd°-çõd°1†wõd°1†wô&­Ä-çô&­ÄPPPXXXnnnfff(…V{òéCÙ-çòéCÙ1†wòéCÙ6òéCÙ6ñ«Ùí6ðnp6ï11†wï1-çï1(…V{ï1(…V{ðnp(…V{ñ«Ùí-çñ«Ùí1†wñ«Ùí1†wðnp-çðnpfffnnnuuunnn6þý h…Fþý ›„ þý ÍÂþý ÍÂüÔ“4ÍÂû—)IÍÂúY¿]›„ úY¿]h…FúY¿]6úY¿]6û—)I6üÔ“4h…FüÔ“4›„ üÔ“4›„ û—)Ih…Fû—)I3333336úY¿]h…FúY¿]›„ úY¿]ÍÂúY¿]ÍÂùUrÍÂ÷Þë‡ÍÂö¡››„ ö¡›h…Fö¡›6ö¡›6÷Þë‡6ùUrh…FùUr›„ ùUr›„ ÷Þë‡h…F÷Þë‡333333XXXXXX6ö¡›h…Fö¡››„ ö¡›ÍÂö¡›ÍÂõd°ÍÂô&­ÄÍÂòéCÙ›„ òéCÙh…FòéCÙ6òéCÙ6ô&­Ä6õd°h…Fõd°›„ õd°›„ ô&­Äh…Fô&­ÄXXXXXXnnnnnn6òéCÙh…FòéCÙ›„ òéCÙÍÂòéCÙÍÂñ«ÙíÍÂðnpÍÂï1›„ ï1h…Fï16ï16ðnp6ñ«Ùíh…Fñ«Ù후 ñ«Ù후 ðnph…FðnpnnnnnnuuuuuuÍÂþý Ѷé¤þý ÕìDþý Ú!8äþý Ú!8äüÔ“4Ú!8äû—)IÚ!8äúY¿]ÕìDúY¿]Ѷé¤úY¿]ÍÂúY¿]ÍÂû—)IÍÂüÔ“4Ѷé¤üÔ“4ÕìDüÔ“4ÕìDû—)IѶé¤û—)I---333ÍÂúY¿]Ѷé¤úY¿]ÕìDúY¿]Ú!8äúY¿]Ú!8äùUrÚ!8ä÷Þë‡Ú!8äö¡›ÕìDö¡›Ñ¶é¤ö¡›ÍÂö¡›ÍÂ÷Þë‡ÍÂùUrѶé¤ùUrÕìDùUrÕìD÷Þë‡Ñ¶é¤÷Þë‡333---PPPXXXÚ!8äþý ÞVXþý ⋨øþý æÀИþý æÀИüÔ“4æÀИû—)IæÀИúY¿]⋨øúY¿]ÞVXúY¿]Ú!8äúY¿]Ú!8äû—)IÚ!8äüÔ“4ÞVXüÔ“4⋨øüÔ“4⋨øû—)IÞVXû—)I---Ú!8äúY¿]ÞVXúY¿]⋨øúY¿]æÀИúY¿]æÀИùUræÀИ÷Þë‡æÀИö¡›â‹¨øö¡›ÞVXö¡›Ú!8äö¡›Ú!8ä÷Þë‡Ú!8äùUrÞVXùUr⋨øùUr⋨ø÷Þë‡ÞVX÷Þë‡---;;;PPPÍÂö¡›Ñ¶é¤ö¡›ÕìDö¡›Ú!8äö¡›Ú!8äõd°Ú!8äô&­ÄÚ!8äòéCÙÕìDòéCÙѶé¤òéCÙÍÂòéCÙÍÂô&­ÄÍÂõd°Ñ¶é¤õd°ÕìDõd°ÕìDô&­ÄѶé¤ô&­ÄXXXPPPfffnnnÍÂòéCÙѶé¤òéCÙÕìDòéCÙÚ!8äòéCÙÚ!8äñ«ÙíÚ!8äðnpÚ!8äï1ÕìDï1Ѷé¤ï1ÍÂï1ÍÂðnpÍÂñ«ÙíѶé¤ñ«ÙíÕìDñ«ÙíÕìDðnpѶé¤ðnpnnnfffnnnuuuÚ!8äö¡›ÞVXö¡›â‹¨øö¡›æÀИö¡›æÀИõd°æÀИô&­ÄæÀИòéCÙ⋨øòéCÙÞVXòéCÙÚ!8äòéCÙÚ!8äô&­ÄÚ!8äõd°ÞVXõd°â‹¨øõd°â‹¨øô&­ÄÞVXô&­ÄPPP;;;PPPfffÚ!8äòéCÙÞVXòéCÙ⋨øòéCÙæÀИòéCÙæÀИñ«ÙíæÀИðnpæÀИï1⋨øï1ÞVXï1Ú!8äï1Ú!8äðnpÚ!8äñ«ÙíÞVXñ«Ùí⋨øñ«Ùí⋨øðnpÞVXðnpfffPPPXXXnnnæÀИþý êõø7þý ï+×þý ó`hKþý ó`hKüÔ“4ó`hKû—)Ió`hKúY¿]ï+×úY¿]êõø7úY¿]æÀИúY¿]æÀИû—)IæÀИüÔ“4êõø7üÔ“4ï+×üÔ“4ï+×û—)Iêõø7û—)I æÀИúY¿]êõø7úY¿]ï+×úY¿]ó`hKúY¿]ó`hKùUró`hK÷Þë‡ó`hKö¡›ï+×ö¡›êõø7ö¡›æÀИö¡›æÀИ÷Þë‡æÀИùUrêõø7ùUrï+×ùUrï+×÷Þë‡êõø7÷Þë‡ ;;;ó`hKþý ÷•ëþý ûÊ·‹þý ÿÿÿÿþý ÿÿÿÿüÔ“4ÿÿÿÿû—)IÿÿÿÿúY¿]ûÊ·‹úY¿]÷•ëúY¿]ó`hKúY¿]ó`hKû—)Ió`hKüÔ“4÷•ëüÔ“4ûÊ·‹üÔ“4ûÊ·‹û—)I÷•ëû—)I ó`hKúY¿]÷•ëúY¿]ûÊ·‹úY¿]ÿÿÿÿúY¿]ÿÿÿÿùUrÿÿÿÿ÷Þë‡ÿÿÿÿö¡›ûÊ·‹ö¡›÷•ëö¡›ó`hKö¡›ó`hK÷Þë‡ó`hKùUr÷•ëùUrûÊ·‹ùUrûÊ·‹÷Þë‡÷•ë÷Þë‡ æÀИö¡›êõø7ö¡›ï+×ö¡›ó`hKö¡›ó`hKõd°ó`hKô&­Äó`hKòéCÙï+×òéCÙêõø7òéCÙæÀИòéCÙæÀИô&­ÄæÀИõd°êõø7õd°ï+×õd°ï+×ô&­Äêõø7ô&­Ä;;;---PPPæÀИòéCÙêõø7òéCÙï+×òéCÙó`hKòéCÙó`hKñ«Ùíó`hKðnpó`hKï1ï+×ï1êõø7ï1æÀИï1æÀИðnpæÀИñ«Ùíêõø7ñ«Ùíï+×ñ«Ùíï+×ðnpêõø7ðnpPPP---333XXXó`hKö¡›÷•ëö¡›ûÊ·‹ö¡›ÿÿÿÿö¡›ÿÿÿÿõd°ÿÿÿÿô&­ÄÿÿÿÿòéCÙûÊ·‹òéCÙ÷•ëòéCÙó`hKòéCÙó`hKô&­Äó`hKõd°÷•ëõd°ûÊ·‹õd°ûÊ·‹ô&­Ä÷•ëô&­Ä---ó`hKòéCÙ÷•ëòéCÙûÊ·‹òéCÙÿÿÿÿòéCÙÿÿÿÿñ«Ùíÿÿÿÿðnpÿÿÿÿï1ûÊ·‹ï1÷•ëï1ó`hKï1ó`hKðnpó`hKñ«Ùí÷•ëñ«ÙíûÊ·‹ñ«ÙíûÊ·‹ðnp÷•ëðnp---333ï1€‰ï1 1}ï1 Òpï1 Òpí€/Õ ÒpëÏY” ÒpêƒS 1}êƒS€‰êƒSêƒSëÏY”í€/Õ€‰í€/Õ 1}í€/Õ 1}ëÏY”€‰ëÏY”333---êƒS€‰êƒS 1}êƒS ÒpêƒS Òpèm­ Òpæ¼ÖÑ Òpå 1}å €‰å å æ¼ÖÑèm­€‰èm­ 1}èm­ 1}æ¼ÖÑ€‰æ¼ÖÑ--- Òpï1bùï1‚ó‚ï1„ ï1„ í€/Õ„ ëÏY”„ êƒS‚ó‚êƒSbùêƒS ÒpêƒS ÒpëÏY” Òpí€/Õbùí€/Õ‚ó‚í€/Õ‚ó‚ëÏY”bùëÏY”333XXXPPP--- ÒpêƒSbùêƒS‚ó‚êƒS„ êƒS„ èm­„ æ¼ÖÑ„ å ‚ó‚å bùå Òpå Òpæ¼ÖÑ Òpèm­bùèm­‚ó‚èm­‚ó‚æ¼ÖÑbùæ¼ÖÑ---PPP;;;å €‰å 1}å Òpå Òpã[*O ÒpáªT Òpßù}Í 1}ßù}Í€‰ßù}Íßù}ÍáªTã[*O€‰ã[*O 1}ã[*O 1}áªT€‰áªT ßù}Í€‰ßù}Í 1}ßù}Í Òpßù}Í ÒpÞH§‹ ÒpÜ—°u ÒpÚæÚ4 1}ÚæÚ4€‰ÚæÚ4ÚæÚ4Ü—°uÞH§‹€‰ÞH§‹ 1}ÞH§‹ 1}Ü—°u€‰Ü—°u Òpå bùå ‚ó‚å „ å „ ã[*O„ áªT„ ßù}Í‚ó‚ßù}Íbùßù}Í Òpßù}Í ÒpáªT Òpã[*Obùã[*O‚ó‚ã[*O‚ó‚áªTbùáªT;;; Òpßù}Íbùßù}Í‚ó‚ßù}Í„ ßù}Í„ ÞH§‹„ Ü—°u„ ÚæÚ4‚ó‚ÚæÚ4bùÚæÚ4 ÒpÚæÚ4 ÒpÜ—°u ÒpÞH§‹bùÞH§‹‚ó‚ÞH§‹‚ó‚Ü—°ubùÜ—°u „ ï1„”ï1$µˆï1(…V{ï1(…V{í€/Õ(…V{ëÏY”(…V{êƒS$µˆêƒS„”êƒS„ êƒS„ ëÏY”„ í€/Õ„”í€/Õ$µˆí€/Õ$µˆëÏY”„”ëÏY”XXXnnnfffPPP„ êƒS„”êƒS$µˆêƒS(…V{êƒS(…V{èm­(…V{æ¼ÖÑ(…V{å $µˆå „”å „ å „ æ¼ÖÑ„ èm­„”èm­$µˆèm­$µˆæ¼ÖÑ„”æ¼ÖÑPPPfffPPP;;;(…V{ï1-çï11†wï16ï16í€/Õ6ëÏY”6êƒS1†wêƒS-çêƒS(…V{êƒS(…V{ëÏY”(…V{í€/Õ-çí€/Õ1†wí€/Õ1†wëÏY”-çëÏY”nnnuuunnnfff(…V{êƒS-çêƒS1†wêƒS6êƒS6èm­6æ¼ÖÑ6å 1†wå -çå (…V{å (…V{æ¼ÖÑ(…V{èm­-çèm­1†wèm­1†wæ¼ÖÑ-çæ¼ÖÑfffnnnXXXPPP„ å „”å $µˆå (…V{å (…V{ã[*O(…V{áªT(…V{ßù}Í$µˆßù}Í„”ßù}Í„ ßù}Í„ áªT„ ã[*O„”ã[*O$µˆã[*O$µˆáªT„”áªT;;;PPP---„ ßù}Í„”ßù}Í$µˆßù}Í(…V{ßù}Í(…V{ÞH§‹(…V{Ü—°u(…V{ÚæÚ4$µˆÚæÚ4„”ÚæÚ4„ ÚæÚ4„ Ü—°u„ ÞH§‹„”ÞH§‹$µˆÞH§‹$µˆÜ—°u„”Ü—°u---(…V{å -çå 1†wå 6å 6ã[*O6áªT6ßù}Í1†wßù}Í-çßù}Í(…V{ßù}Í(…V{áªT(…V{ã[*O-çã[*O1†wã[*O1†wáªT-çáªTPPPXXX333---(…V{ßù}Í-çßù}Í1†wßù}Í6ßù}Í6ÞH§‹6Ü—°u6ÚæÚ41†wÚæÚ4-çÚæÚ4(…V{ÚæÚ4(…V{Ü—°u(…V{ÞH§‹-çÞH§‹1†wÞH§‹1†wÜ—°u-çÜ—°u---3336ï1h…Fï1›„ ï1ÍÂï1ÍÂí€/ÕÍÂëÏY”ÍÂêƒS›„ êƒSh…FêƒS6êƒS6ëÏY”6í€/Õh…Fí€/Õ›„ í€/Õ›„ ëÏY”h…FëÏY”uuuuuunnnnnn6êƒSh…FêƒS›„ êƒSÍÂêƒSÍÂèm­ÍÂæ¼ÖÑÍÂå ›„ å h…Få 6å 6æ¼ÖÑ6èm­h…Fèm­›„ èm­›„ æ¼ÖÑh…Fæ¼ÖÑnnnnnnXXXXXX6å h…Få ›„ å ÍÂå ÍÂã[*OÍÂáªTÍÂßù}Í›„ ßù}Íh…Fßù}Í6ßù}Í6áªT6ã[*Oh…Fã[*O›„ ã[*O›„ áªTh…FáªTXXXXXX3333336ßù}Íh…Fßù}Í›„ ßù}ÍÍÂßù}ÍÍÂÞH§‹ÍÂÜ—°uÍÂÚæÚ4›„ ÚæÚ4h…FÚæÚ46ÚæÚ46Ü—°u6ÞH§‹h…FÞH§‹›„ ÞH§‹›„ Ü—°uh…FÜ—°u333333ÍÂï1Ѷé¤ï1ÕìDï1Ú!8äï1Ú!8äí€/ÕÚ!8äëÏY”Ú!8äêƒSÕìDêƒSѶé¤êƒSÍÂêƒSÍÂëÏY”ÍÂí€/ÕѶé¤í€/ÕÕìDí€/ÕÕìDëÏY”Ѷé¤ëÏY”uuunnnfffnnnÍÂêƒSѶé¤êƒSÕìDêƒSÚ!8äêƒSÚ!8äèm­Ú!8äæ¼ÖÑÚ!8äå ÕìDå Ѷé¤å ÍÂå ÍÂæ¼ÖÑÍÂèm­Ѷé¤èm­ÕìDèm­ÕìDæ¼ÖÑѶé¤æ¼ÖÑnnnfffPPPXXXÚ!8äï1ÞVXï1⋨øï1æÀИï1æÀИí€/ÕæÀИëÏY”æÀИêƒS⋨øêƒSÞVXêƒSÚ!8äêƒSÚ!8äëÏY”Ú!8äí€/ÕÞVXí€/Õ⋨øí€/Õ⋨øëÏY”ÞVXëÏY”nnnXXXPPPfffÚ!8äêƒSÞVXêƒS⋨øêƒSæÀИêƒSæÀИèm­æÀИæ¼ÖÑæÀИå ⋨øå ÞVXå Ú!8äå Ú!8äæ¼ÖÑÚ!8äèm­ÞVXèm­⋨øèm­⋨øæ¼ÖÑÞVXæ¼ÖÑfffPPP;;;PPPÍÂå Ѷé¤å ÕìDå Ú!8äå Ú!8äã[*OÚ!8äáªTÚ!8äßù}ÍÕìDßù}ÍѶé¤ßù}ÍÍÂßù}ÍÍÂáªTÍÂã[*OѶé¤ã[*OÕìDã[*OÕìDáªTѶé¤áªTXXXPPP---333ÍÂßù}ÍѶé¤ßù}ÍÕìDßù}ÍÚ!8äßù}ÍÚ!8äÞH§‹Ú!8äÜ—°uÚ!8äÚæÚ4ÕìDÚæÚ4Ѷé¤ÚæÚ4ÍÂÚæÚ4ÍÂÜ—°uÍÂÞH§‹Ñ¶é¤ÞH§‹ÕìDÞH§‹ÕìDÜ—°uѶé¤Ü—°u333---Ú!8äå ÞVXå ⋨øå æÀИå æÀИã[*OæÀИáªTæÀИßù}Í⋨øßù}ÍÞVXßù}ÍÚ!8äßù}ÍÚ!8äáªTÚ!8äã[*OÞVXã[*O⋨øã[*O⋨øáªTÞVXáªTPPP;;;---Ú!8äßù}ÍÞVXßù}Í⋨øßù}ÍæÀИßù}ÍæÀИÞH§‹æÀИܗ°uæÀИÚæÚ4⋨øÚæÚ4ÞVXÚæÚ4Ú!8äÚæÚ4Ú!8äÜ—°uÚ!8äÞH§‹ÞVXÞH§‹â‹¨øÞH§‹â‹¨øÜ—°uÞVXÜ—°u---æÀИï1êõø7ï1ï+×ï1ó`hKï1ó`hKí€/Õó`hKëÏY”ó`hKêƒSï+×êƒSêõø7êƒSæÀИêƒSæÀИëÏY”æÀИí€/Õêõø7í€/Õï+×í€/Õï+×ëÏY”êõø7ëÏY”XXX333---PPPæÀИêƒSêõø7êƒSï+×êƒSó`hKêƒSó`hKèm­ó`hKæ¼ÖÑó`hKå ï+×å êõø7å æÀИå æÀИæ¼ÖÑæÀИèm­êõø7èm­ï+×èm­ï+×æ¼ÖÑêõø7æ¼ÖÑPPP---;;;ó`hKï1÷•ëï1ûÊ·‹ï1ÿÿÿÿï1ÿÿÿÿí€/ÕÿÿÿÿëÏY”ÿÿÿÿêƒSûÊ·‹êƒS÷•ëêƒSó`hKêƒSó`hKëÏY”ó`hKí€/Õ÷•ëí€/ÕûÊ·‹í€/ÕûÊ·‹ëÏY”÷•ëëÏY”333---ó`hKêƒS÷•ëêƒSûÊ·‹êƒSÿÿÿÿêƒSÿÿÿÿèm­ÿÿÿÿæ¼ÖÑÿÿÿÿå ûÊ·‹å ÷•ëå ó`hKå ó`hKæ¼ÖÑó`hKèm­÷•ëèm­ûÊ·‹èm­ûÊ·‹æ¼ÖÑ÷•ëæ¼ÖÑ---æÀИå êõø7å ï+×å ó`hKå ó`hKã[*Oó`hKáªTó`hKßù}Íï+×ßù}Íêõø7ßù}ÍæÀИßù}ÍæÀИáªTæÀИã[*Oêõø7ã[*Oï+×ã[*Oï+×áªTêõø7áªT;;; æÀИßù}Íêõø7ßù}Íï+×ßù}Íó`hKßù}Íó`hKÞH§‹ó`hKÜ—°uó`hKÚæÚ4ï+×ÚæÚ4êõø7ÚæÚ4æÀИÚæÚ4æÀИܗ°uæÀИÞH§‹êõø7ÞH§‹ï+×ÞH§‹ï+×Ü—°uêõø7Ü—°u ó`hKå ÷•ëå ûÊ·‹å ÿÿÿÿå ÿÿÿÿã[*OÿÿÿÿáªTÿÿÿÿßù}ÍûÊ·‹ßù}Í÷•ëßù}Íó`hKßù}Íó`hKáªTó`hKã[*O÷•ëã[*OûÊ·‹ã[*OûÊ·‹áªT÷•ëáªT ó`hKßù}Í÷•ëßù}ÍûÊ·‹ßù}Íÿÿÿÿßù}ÍÿÿÿÿÞH§‹ÿÿÿÿÜ—°uÿÿÿÿÚæÚ4ûÊ·‹ÚæÚ4÷•ëÚæÚ4ó`hKÚæÚ4ó`hKÜ—°uó`hKÞH§‹÷•ëÞH§‹ûÊ·‹ÞH§‹ûÊ·‹Ü—°u÷•ëÜ—°u endstream endobj 127 0 obj <> endobj 78 0 obj <> endobj 131 0 obj <> endobj 132 0 obj <>stream +%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 15.0 %%AI8_CreatorVersion: 15.0.2 %%For: (Aleks Kissinger) () %%Title: (tikzit.ai) %%CreationDate: 10/01/2018 09:38 %%Canvassize: 16383 %%BoundingBox: -47 32 537 566 %%HiResBoundingBox: -46.8945 32.708 536.5762 565.894 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 11.0 %AI12_BuildNumber: 399 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_Cropmarks: 0 0 512 512 %AI3_TemplateBox: 256.5 255.5 256.5 255.5 %AI3_TileBox: -50 -140 562 652 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 6 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 4 %AI9_OpenToView: -745 843 0.5 979 715 18 0 0 73 134 0 0 0 1 1 0 1 1 0 1 %AI5_OpenViewLayers: 7772 %%PageOrigin:0 0 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 133 0 obj <>stream +%%BoundingBox: -47 32 537 566 %%HiResBoundingBox: -46.8945 32.708 536.5762 565.894 %AI7_Thumbnail: 128 120 8 %%BeginData: 14412 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFD5BFF %A8FD76FFA8A85252FD0427F827F8272752527D7DA8A8FD6AFF7D52FD13F8 %27277DA8FD63FFA85227FD07F827277D527D7DA87D7D52522727FD06F827 %7DA8FD5EFF7D52FD05F85252A8A8FD0FFFA87D2727FD04F827A8FD5AFF7D %27FD04F8527DFD0BFFA8FD0BFFA8A85227F8F8F8277DFD56FF7D27F8F8F8 %277DFD1DFFA97D27F8F8F827A8FD52FFA827F8F8F827A8FD04FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFF7D52F8F8 %F827A8FD4FFF7DF8F8F8277DFD26FFA827F8F8F852FD4CFFA827F8F8F87D %FFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFFFFF7D27F8F827FD4AFF7D27F8F827FD05FFA8FF %FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF %A8FFFFFFA8FFFFFFA852F8F8F8A8FD47FF52F8F8F852FFFFFFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFFF7DF8F8F87DFD45FF52F8F827A8FFFFFFCBFFFFFF %CBFFFFFFCBFFFFFFCBFFFFFFCBFFFFFFCBFFFFFFCBFFFFFFCBFFFFFFCBFF %FFFFCBFFFFFFCBFFFFFFA9FFFFA827F8F852FD43FF27F8F827A8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFF27F8F852FD41FF27F8F852 %A8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FF %FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF52F8F852 %FD3FFF52F8F852A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FF52F8F852FD3DFF7DF8F852FFFFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFF52F8F87DFD3BFF7DF8F827A8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF27 %F8F87DFD39FFA8F8F827A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FF27F8F8A8FD37FFA827F8F87EFFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFFD04A8 %F8F8F8FD37FF7DF8F87DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFA8F8F852FD35FFA8F8F852FFA8FF %A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8 %A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF %A8A8A8FFFF52F8F87DFD34FF27F8F8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA827F827FD33 %FF52F8F87DFD45A8FF7DF8F87DFD31FFA827F852A8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FF52F8F8FD31FF52F8F87DFFFD48A8F8F852FD30FFF8F852FFA8A8A8FF %A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A9 %A8FFA8FFA8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF %A8A8A8FFA8A8A8FFFF7DF8F8A8FD2EFF52F8F8FD22A8FFFD07A8FFFD1FA8 %AFA8F8F8527D7D527D7DA8A8FD27FF27F852A8FFA8AFA8FFA8AFA8FFA8AF %A8FFA8AFA8FFA8AFA8FFA8AFA8FFA8AFA8FFA8FF7D7D2752275227522752 %7DA8A8FFA8AFA8FFA8AFA8FFA8AFA8FFA8AFA8FFA8AFA8FFA8AFA8FFA8AF %A8FFA8FF52FD08F827277DFD24FF7DF8F87DFD1CA8AFA87D27FD0CF8527D %FFFD1EA8F8F8F827F827FD05F82752FD22FF27F827FFA8A8A8A9A8A8A8A9 %A8A8A8A9A8A8A8A9A8A8A8A9A8A8A8A9A8A8A8FF7D27F827F827F827F827 %F827F827F827F82727FD04A8A9A8A8A8A9A8A8A8A9A8A8A8A9A8A8A8A9A8 %A8A8A9A8A8A8FFA87D7DFD05A87D7D27FD04F8A8FD1FFFA8F8F87DFD1CA8 %27F8F827F827F827F827F827F827F827F827F8F8F87DFD23A8A9A8A87D52 %F8F8F852FD1EFF7DF827A8FFA8A8A8A9A8A8A8A9A8A8A8A9A8A8A8A9A8A8 %A8A9FD06A82727F827F827F827F827F827F827F827F827F827F827F87DA8 %FFA8A8A8A9A8A8A8A9A8A8A8A9A8A8A8A9A8A8A8A9A8A8A8A9A8A8A8A9A8 %A8A8A9A8A8A8FFA8A827F8F852FD1DFF27F827FD1BA827F8F827F827F827 %F827F827F827F827F827F827F827F827F87DFD28A827F8F852FD1CFF27F8 %7DFD1AA82727F827F827F827F827F827F827F827F827F827F827F827F827 %F87DFD1DA8FFFD09A8FF52F8F852FD1AFFA8F8F87DA8A8A87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87DA8A8A87DA852F8F827F827F827F827F827F827 %F827F827F827F827F827F827F827F8FD05A87DA8A8A87DA8A8A87DA8A8A8 %7DA8A8A87DFD05A87D7D7D7E7DFD05A87DA8A8A827F8F87DFD19FF7DF8F8 %FD18A8FF7D27F8272727F8272727F8272727F8272727F8272727F8272727 %F8FD0427FFFD16A87D522727F827F82752FD08A8FF27F8F8FD19FF52F827 %FD04A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DFD04A852F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F8F87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87DFD05A827F8F827F827F827F8F8F852A8A87DFD %04A87EF8F852FD18FF27F852FFFD17A87DF8272727F8272727F8272727F8 %272727F8272727F8272727F8272727F827F852FD14A82727F827F8272727 %F8272727F852FD07A852F827A8FD16FFA8F8F87DA8A87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA827F8F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F87DA8A87DA87DA87DA87DA87DA8 %7DA87DA87DA827F8F827F827F827F827F827F827F852A8A87DA87DA87DF8 %F87DFD16FFA8F8F87DFD18A827F8272727F8272727F8272727F8272727F8 %272727F8272727F8272727F827272752FFFD0FA8FF5227F8272727F82727 %27F8272727F827F87DFD06A827F827FD16FF7DF8F8A8A8A87DA87EA87DA8 %7EA87DA87EA87DA87EA87DA87EA8A87DF827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F8277DA87EA87DA87EA87DA8 %7EA87DA87EA87D27F827F827F827F827F827F827F827F82727A87DA87DA8 %847DF8F8A8FD15FFA8F8277DA8A8A884A8A8A884A8A8A884A8A8A884A8A8 %A884A8A8A852272727F8272727F8272727F8272727F8272727F8272727F8 %272727F8272727F827F85284A8A8A884A8A8A884A8A8A884A8A852F82727 %27F8272727F8272727F8272727F82759A87DA87DA87DF8F8A8FD15FF52F8 %F8A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8A852F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F82752A8A8A87DA8A8A87DFD05A82727F827F827F827F827F827F827F827 %F827F8527DA87DA87DA8F8F852FD15FF7DF8277EFD17A8FD2427F827277D %7DA87DA87DA87DA87D7DFD1527A87DA87DA87D27F87DFD15FF52F827A87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D27F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %F8F8277DA87DA87DA827F852FD15FF7DF8277DA87DA87EA87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87DA82727F8272727F8272727F8272727F8272727 %F8272727F8272727F8272727F8272727F8272727F8FD0427522752275227 %27F8272727F8272727F8FD0727FD05F8A87DA87DA8A852F852FD15FF52F8 %05A87D7D7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D52F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827275252A87DA87DA87DA87DA87D52F827F827F827F827F827F827FD07 %F8277DA87D7D7DA827F852FD15FF7DF8277DA87DA87DA87DA87DA87DA8A8 %A87DA8A8A87DA8A8A87DA852FD232752FD05A884A8A8A87EFD04A852FD0A %27FD08F827A87DA87DA87D27F87DFD15FF7DF8F87E7D7D7DA87D7D7DA87D %7D7DA87DA87DA87DA87DA87DA87D7DF827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F82752A87DA87DA87DA87DA87D %A87DA87DA85227F827F827F827FD0BF8527DA8FD047DF8F87DFD15FFA8F8 %277DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DFD2227A8 %7DA87DA87DA87DA87DA87DA87DA8A8A8FD0427FD0DF8277DA87DA87DA852 %F8F8FD16FF7DF8F8FD127DA87DA87DA87D7E2727F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F8527DA87DA87DA87DA8 %7DA87DA87DA87DA87D52FD10F852A8FD057D27F827FD17FFF8F852A87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8A87DFD20277DA87DA87D %A87DA87DA87DA87DA87DA87DA87D52FD0EF827A87DA87DA87D7DF8F852FD %16FFA827F852FD177DA87D27F827F8272727F8272727F8272727F8272727 %F8272727F8272727F8FD0427A87DA87DA87DA87DA8FD0B7D27FD0CF827FD %067DA852F8F8A8FD17FF27F827A87DA87D7D7DA87D7D7DA87D7D7DA87D7D %7DA87D7D7D847DA827F8F827F8FD1A277D7DA87DA87DA87D7D7DA87D7D7D %847D7D7DA87DA87D52FD09F82752A87D7D7DA87DA87D27F852FD18FF52F8 %27FD1A7DFD0DF827F827F827F827F827F827F827F8F8F852FD187D2727F8 %F8F827F852FD097D27F8F8A8FD18FF7DF8F87D7DA87D7D7DA87D7D7DA87D %7D7DA87D7D7DA87D7D7DA87D7D7D52FD1BF8277D7E7D847D7D7DA87D7D7D %A87D7D7DA87D7D7DA87D7D7D847DA8FD057DA87D847DA87D7D7DA87D52F8 %F852FD19FFA8F8F852FD1A7D27FD1AF8527EFD277D52F8F827FD1BFF27F8 %52FD1B7D27FD18F852A8FD257D7E7D52F8F8F8FD1CFF52F8F87D7D7D537D %7D7D537D7D7D537D7D7D537D7D7D537D7D7D537D7D7D52FD18F87D7D7D53 %7D7D7D537D7D7D537D7D7D537D7D7D537D7D7D537D7D7D537D7D7D537D7D %7D537D7D7D5227F8F8F8A8FD1CFFA8F8F852FD1B7DFD17F852FD237DA87D %7D5227F8F827FD1EFFA827F8527D7D597D7D7D597D7D7D597D7D7D597D7D %7D597D7D7D597D7D7D5327FD16F8277D7D7D597D7D7D597D7D7D597D7D7D %597D7D7D597D7D7D597D7D7D52FD077D5252FD04F852FD20FF52F8F8FD1B %7DFD17F852FD1B7D27F8FD0527FD05F852A8FD21FFA8F8F8527D527D527D %527D527D527D527D527D527D527D527D527D527D52FD05F8275252522727 %F827275252522827FD04F8277D527D527D527D527D527D527D527D527D52 %7D527D527D527D7D52FD09F82727A8FD24FF27F827FD197D52F8F8F8527D %7EFD0E7DF8F8F827FD1A7D27F8F87D5252277D7DA8FD27FF7DF8F8527D7D %527D537D527D537D527D537D527D537D527D537D527D27F8F8527D7D527D %537D527D537D527D537D527D7D7DF8F8F8527D7D537D527D537D527D537D %527D537D527D537D527D537D52F8F87DFD2FFF27F8277D7D7D537D7D7D53 %7D7D7D537D7D7D537D7D7D537D7D7D52F8F852FD047D537D7D7D537D7D7D %537D7D7D537D7D7DF8F8277D537D7D7D537D7D7D537D7D7D537D7D7D537D %7D7D537D7D27F827FD30FF7DF8F82E7D527D527D527D527D527D527D527D %527D527D527D7D27F8277D7D527D527D527D527D527D527D527D527D527D %7D52F8F8527D527D527D527D527D527D527D527D527D527D527D5252F8F8 %52FD31FF27F8277D7D537D7D7D537D7D7D537D7D7D537D7D7D537D7D7DF8 %27527D537D7D7D537D7D7D537D7D7D537D7D7D53FD047D52F827FD047D53 %7D7D7D537D7D7D537D7D7D53FD057D27F827FD32FF7DF8F8527D7D527D52 %7D527D527D527D527D527D527D527D05F8277D527D527D527D527D527D52 %7D527D527D527D527D527D5227F852527D527D527D527D527D527D527D52 %7D527D527D27F8F87DFD33FF52F8F87D7D7D527D537D527D537D527D537D %527D537D52F8F87D527D537D527D537D527D537D527D537D527D537D527D %537D27F8F87D527D537D527D537D527D537D527D537D527D52F8F852FD35 %FFF8F8F87D527D527D527D527D527D527D527D527D52F8F852527D527D52 %7D527D527D527D527D527D527D527D527D527D527DF8F8277D527D527D52 %7D527D527D527D527D527D5227F8F8A8FD35FFA8F8F8277D527D537D527D %537D527D7D7D527D7D27F8277D7D527D537D527D537D527D537D527D537D %527D537D527D537D7D52F8F8527D7D7D537D7D7D527D527D527D537D7D52 %F8F87DFD36FF52F8F852527D527D527D527D525227FD045227F8F8277D52 %7D527D527D527D527D527D527D527D527D527D527D527D527D5227F8F827 %7D52522752527D527D527D527D527D27F8F87DFD35FF7DF8F82E527D527D %527D7D522727FD09F87D527D527D527D527D527D527D527D527D527D527D %527D527D527D527D27FD04F827F8F8F8272752527D527D527D527D27F8F8 %A8FD34FF27F8275259527D527D5227FD0BF8005253527D5252527D525252 %7D5252527D5252527D5252527D5252527D5252FD0CF8277D5252527D5252 %F8F827FD33FFA8F8F8527D527D527D5227FD0DF852527D527D527D527D52 %7D527D527D527D527D527D527D527D527D527D27FD0DF8527D527D527D52 %52F8F87DFD32FF27F8F87D5252527D5227FD0FF852527D5252527D525252 %7D5252527D5252527D5252527D5252527D27FD0FF8527D527D52525227F8 %52FD31FFA8F8F852527D527D5252FD10F8277D527D527D527D527D527D52 %7D527D527D527D527D527D527D52FD10F827527D527D527D27F8F8FD31FF %7DF8F8FD0652FD12F827FD185227FD11F8FD0752F8F87DFD30FF52F8277D %527D527D27FD12F827527D527D527D527D527D527D527D527D527D527D52 %7D5252FD13F87D527D527D5227F852FD30FF27F827FD055227FD13F8FD16 %527D27FD13F8FD05525327F827FD30FFF8F8277D5252527D27FD13F85253 %527D5252527D5252527D5252527D5252527D52525227FD13F8FD04527D52 %52F827FD2FFFA8F8F8FD065227FD13F8FD1752FD14F827FD055227F8F8FD %30FFF8F8277D5252527D27FD12F827527D527D5252527D5252527D525252 %7D5252527D52525227FD13F8FD04527D5252F827FD2FFFA8F8F8FD065227 %FD13F8FD175227FD13F827FD055227F8F8FD30FFF8F827FD04525327FD12 %F827FD1852FD13F8FD0752F827FD30FF27F827525228525252FD12F82752 %28FD07522852525228FD0752285227FD12F827525228525252F8F827FD30 %FF52F8F8FD065227FD11F8FD0A527D52525259FD0A5227FD11F827FD0652 %27F87DFD30FF7DF8F828FD055227FD10F827FD0652FD05F827F827F827F8 %F8F827FD0652FD11F8FD0752F8F87DFD31FF27F8FD06525327FD0EF82752 %535252525952FD0EF8FD0752FD0FF8FD06527D27F8F8FD32FF27F8F8FD07 %5227FD0CF827FD075227F8F8527D525227FD04527DF8F827FD065227FD0D %F8FD0852F8F852FD32FFA8F8F8277D527D5259527D5227FD09F852527D52 %7D52595253F8F852FD0AFF52F827527D527D52595252FD0AF8277D525952 %7D52595252F8F8A8FD33FF52F8F8525252535252527D5228F827F8F8F827 %27525259525252535259F8F8F8A8FD0AFFA8F8F827525252535252525327 %27F827F8F8F8275253FD0852F8F827FD34FFA8F8F827527D527D527D527D %527D527D527D527D527D527D527D527D27F8F87DFD0CFF52F8F852537D52 %7D527D527D527D527D527D527D527D527D527D527D27F8F8FD36FF7DF8F8 %2752595259525252595252527D5252525952525259527D27F8F827FD0EFF %F8F8F8FD045259525252595252527D5252525952525259527D00F8F87DFD %37FF52F8F827527D527D527D527D527D527D527D527D527D537D5205F827 %A8FD0EFFA8F8F8F8527D7D527D527D527D527D527D527D527D527D7D7D27 %F8F852FD39FF27F8F827527D527D527D527D527D527D527D527D527D27F8 %F827A8FD10FFA8F8F8F852527D527D527D527D527D527D527D527D5259F8 %F8F852FD3BFF52F8F8F8277D7D7D527D537D527D537D527D7D52F8F8F827 %A8FD12FFA8F8F8F827527D7D7D527D537D527D597D537D5952F8F8F852FD %3DFF7DFD04F827527D527D597D527D52592727F8F8F852A8FD14FFA827F8 %F8F82752527D527D537D527D52522727F8F8F87DFD3FFFA852FD05F82827 %5227522727FD04F827A8FD18FF7D27F8F8F82727FD05522727FD04F827FD %43FFA85227FD0BF8277DFD1BFFA87DFD0DF8527DFD46FFA8A85252FD0527 %527DA8FD20FFA87D2727F827F827277D7DFD7AFFA8FD2EFFFF %%EndData endstream endobj 134 0 obj <>stream +%AI12_CompressedDataxœì=‰BIÓÿ ä•0Ó×ÌèzäD”kÁóó`ˆ„s¸«OÿWuwõL ˆ»gu¡ÒSÓU]wWOær[;K…ƒö^}‰ç½lfn®Ô©×zíÎý¬†fW›Í~·×AÐÂöbÖ—yVÃ];ðU½Óm´[÷õGyVñî…B³~ÒÍ>ot»ÖQ½³˜]X„Ï^4zÍ:|Úkœ|kôòµÆ"=p”k=øÌ÷–=™y~˜õ¢û<ĵ֗ ú†+r€ÛýÖ .¶ÿ¹Ÿ]A–³¬äAV*Ÿ>ml×»CCT>Œ„„qùÀ a¬ÊË@ÁMJâpS¹½ß?­·z[ö~½Û-µ›íN÷~¶ôµÖʮ׎à“Zöm½Ùlÿ-6kû'àƒÜ­6šu ù´ÖËú>r§°ê³Ýb¿Ñ<ØèŸîÕ<ŠÌw5Ê—]Àhñg»«§Ù©÷z0Yx rx{¥˜œõµðn»~ÔÐ  û°hÑvÚg§µÎI× “>ÿæ³õÓ³&0V3I þ•ú_÷³ „VI/»ä @ìQÒ"Š¹SÿÒ¨ÿ}?»ÑnÕ +ÞŽY!<Ïük>Ùî7ë—­F¦¦¬·êMïî¯6kG]¢Òÿ5^Ô:Gõ,i»Ùïii é ÀãµÚ×:.”0Ø<«·^´_é9.°â¡àYh‚(ø2‹’WÀ³>î‘~ü¯ÁŒx ¡‚Å{ Öj³Ó8j´îÛù»+ÆA¼~ˆæMB>Lü诙+ÝëÕ[– 7¥õ„xùõxb¥uPjŸ"ï»(ø -fûÈ|æ~ÖŸÀíý3C€þ}–i«Óh!Î̆þ$ÜÝjöᣕN»¶Ú:lgŒ²Ãl:õ¬ùVÿJÿ]=[¼ðîrýÔ ¾Ý@+­/õfû,ÖAj­ƒìëZçìrÔ[ÍZ«ÖÉj¸Ã¼ÖøŸÔ€´w ›)¬êY}¿§oÑC†pÁ€ÄG—?èE§¶ÜÏnî}‚[àn pJÙ|íì²i×zÇ`ê­ƒ®C`~dƒ]>»}ÁN¶Øéw³/Úí¦C;ø‘ÃnÁŠãÓñŒ-}Ck³e4ú$;`øI`|R÷}þàÃ4c/ÕšÍÆQ§vvÜØ÷€1Ÿ»'™Ï®"X_O÷ÚÍF÷4–§d«Öé5ö›õ¯Ý^ýô"lÈÃFëq§ßèÕãÙ¶OÏ0ŒÈî×Îêg︪Gî8„rÌpÒÐ.-eül±•0Ã+ÚA,8Ä>/[­Úiý {dAYî-fÆBÁ{ðlñ ó.óG&*ÃUŠŠp¢( +Á™‘Šd$àâ‹üÈ‹¼°VÂrXÒ‹a®( à T¡ E¡SÈB?ô‚j&¨å ƒBeÁÜ(aGéqz˜W~P2`pù§ªªWY•T®‚ŠT¨¥”Ì(¡¸bʇË3O0«öу8 Vˆ€kÌ„»<„ÛbGä‹ßSž¬ê'Š Î9㫲2+±"‹X“•L0Î|,«~Ù/ùE¿$0;é ŸûÌÇ?žWõ*^Ù+yE¸ +ä)\0Oé'Àã.“\ Æpqr±ð\´|Ì€ðœ,[NÆÜåAžZÍ7\äâúó"ô.æ.ž9 Z"2 ƒ"AÂT*”…*™)#FpýÍÚ+j.V«ÕJµ\-U‹ÕB5ª†Àa (ª¼Êª>x j¥R)WJ•b¥P‰*a%++¢Â+¬âƒª–+år¹T.– `% ¿*˲(ó2¡ôJÕR¥T.•JÅR¡•BXJU’%Qâ%VÕ+V‹•b¹X*‹06a1+‹¢È‹ ,„—)T •B¹P* …BqD2$ ¢À ¬à¼¨Ul@BሠFl(â‘¢ A2‰„%" Š(ª ïO¾¿4SPHq#¸èg ‚ø¡|Ì Är×æãu¸x.3åð‡ò‘eP $3C1qÌÇïâdð¼Ëxyè:’ÊJøŸçá;™¹ÝÑŠ]ÍD U>'ß1îC¸Ë¡ý ÆË./¡Ìã‚š<7WYk´êºðb“2•Q<“QžâŒíÕB¾0aIc[ +>5ãœ*ºTtªäRÝé 3=ßBÈ»Q¥¨q¡É dLl|nt\Ì$d +üx"ð‹ã{ +þƇJ‡f@„ :Ô1 vÄ»Š1ˆº\±ç üxA €î"Àt¯ o.àŸ¢VøFÿXí1WÙ^}Uñ*êÐ\¨t?$ðZÙÌPÀdB¦Ñ€i4ðÄ ™üŒ[f¥ƒÎÂáK‰p)±Ú‰l(sNÈ9fÙãðè¢uÏPjg–=±ð£KéØŸ¢ÿѵ×ëžqKŸ\øá¥/$Wü:áï9)„YËq)ĸàwp%Ç¿ùf†ˆËÖW2¹–æ¢$†¿¨ÄFI‘+C¯¸<ð¥µÍèÅÅå5Ùo8Ó ¯0­1­2­³Ur\ëLb±ãåÖ n—Ü(¼Qy­ô¿R~^®¬L&,L†Är¬ë0B[–á<öF#^Ì€ðU´àq-sÆI”ÑA€¬ í + _(]>È"¢2ˆ‚#A`°2Ra Å°KÏ`¹XÞbTÖJ+@GCÐÅ2XYB áM¡NùzAì~ ±ÿrø5|MÈfLRà +؃X†¨[–BÅ`9¬ª'ªÀ´2X•"¬u+ÀºK°9Â_x¼ +ƨ&©”ÛT) AVÈŒ)(úº¤X±EÅ‚-+*SX¼ IêÓ:åe~È*ÂÒf&_Cðbº<ü›¬å¿œ\B’þƒtÒ­fæ*iVs 9Ÿ™¤e×O°.Ƞؘ Ša¥(ƒ*I{aŠ±Hh/'@`Š¥ä2¥ +TÃð²ï.†W$/‘¸¤»”½ý—.Ï”uH¢Å·¼2úE-ÙÅï¾b áðÙ+tW ÿšKÅ—ÙùA/LM—eªöïÂfÚ¿kÏA›ùa¹Ÿ¹R˜^Ѓe@Ê•Þ^)CèƒFH]Ä/šPÏúy©=}Ö¢6§q•c,ŽÑwEgV˜Qñ ¨®]eŽ@©‹°ePò*AåAŠAùAôÚ›•§5/Ø5O¬uÆ.·—\l»Ò|`ÕÈDi®™1½'VÑ{b¡Þ~QvG,Þ +é0Ü¥Å~z$ùs×<ŠÀã(öüø5t•“]m5ƒÙŠ h½Œoþ0·Û \ÚevÄB›HG:!(ÚB mA@äks1Œ!Ëè” a¡ƒaLÍ09 ôÆTNÁ¹ddǤÞn¿Ó6¦ÃfHÞ2:£M Àeä˜É¡ºa6WÒ]Y‡QU³©¡ hi³>iÐ+‹1†¢Œ·”pL™ó=Óå‘Æ8×”q¾é»bQ甹,Ö€•£Íèhd;ÚìÖj?¼‚s¯ðÜ+Š¯Lòk\Æ]Ås¯¡?™O4sUÇ_k×Æ]þ9‹¯ä´‘v]™ávKÐ$ñ&W¶VØŠ ¦ô‘Në .µ/Ùô^Ûý eù.ÓŸë›l?™ñ‡‰ +O¢Ê“Êý+ZEÆçÿ¦ìWLý'.ýé +P¦P(‡Š~e*ú%J~hP‡…¾¤öSÆSAªšÑî*Ҹ̟’v\檠£K;2ãÌ’K\ -™¹„õ|tÉÁ릗=nBß–í¹+ ¢û¢o –öyä¥ÀŒf´[ŠRŶk ã@3ôjT7¥W?ôÏ¿„²<—Fbèëô’¿¢NMú§ ýƒäR¿Dâgó>™q‰¦}Eö &}Ì&}&åÄOê„O§{6×ÃL/ÐJ/°Œi^E;ÓÌ :QMT ÌA¨Ý&8LÅ¡Ÿ4[èK€#ˆåoÞX?©j[Ä*6ø,Ùv®¢1^ÚJ†¶± }´n“ÚU ÝÌ CÓF¦Ý6:lq(j^Ðf7ÔŽ<Ð{;R{sôçTñ‹+¹TÇ¥r­ñ˜øG{fíPM9ÊúYªëËøaôÈÆ;O>ÛxoãÉW7ŒãùM`c˜XÁÄ &Š0…‰/(Þþ'|þ˜‹\|äÉ+cc.5rc®pðʸúÞðUsÇ^¥ä•±?Œ/~TιªÉkLÿýûóãâ2ku,jUDEä:‡©ê¦¨³Ô<Ô;s$uÎèêš°yf¶Ú—Ñ©M 3f‹}”/tŽØìÀìBù. D€’›X#èc¦sÁ1ˆ¡ø€Ÿ D™ñA‚®ÒT]u†»HÁÄ +a¢CÅ[ˆÑ™m·ËîŠ lqŦà.Óu‡þÿ õ3ç'büÁð>ìã°žúE9¹ÊëCA|цïÉÐ]Ú BvÏÆê©ÇQº‹Ð36@Î+CQ9Åäc4ÎÇÄâ•L2×¾e0lñÍ泶4'mžpÅ;f‹y~Ò·êÐU¾Bç%û)“ÝZÉ^­ñM1ãÎ( £Iôj tkvÞQd˜àu|(26DL†ðÔri‚ø8Œ7ábÊÇyq@_ɸó ya“¾ÐÂ8XOŸøy©˜Ì†úñ<žÌÁ¦ç%}ì<úÏ éEú¸|À¤Àóòž!ÑbPùÀW"+Ã|&¦¯ƒDÏô D9ªP<í;`þ"BžÛ;E 1e<L}üüﻟŒÌòÑ÷¹{Dz<ŠobyÃB¤"ŠÍ W¼Ñ>-÷†t“ÍykVÙdwÄåc¯Ò± ?Õšƒ声¬?í(Ÿv”O;ʧåÓŽòiGù…§åÓŽòiGùíBžv”ÿ:kùÛu”OÒ)>i×ùwgPlLÅ5vAM«€Ó*à´ +˜’*àMµ§{2ÿâžÌ´ƒcÚÁq]ü(¦ÓŽiÇ íà˜ž_™ž_9ײOþ™ž_F8=¿2=¿2=¿2=¿2=¿2=¿’Žó+Ó·›Lßn2}»IJNßn2}»Éôí&7åí&ïþ•NÞÿ¸ùçõ\§¤ç<­ù?û¬ÂÄý#ßœä«qߧÐé{ʧ]åÓ®òiWù´«|ÚU~ ÂiWù´«|ÚU~c;‘§]å¿ÎZþv]å‰Þðˆå¹cºÆé“Á÷•s™‡ü2Ó‹NŸ\”Y~‹í…ß#ÎÍ'ö!Û<<ìÖ{ÙÏýZ§Þ¥¯B†dìœÌ·Õ˼„¾þèù0뾦Ô&ŒÙ7_õ¯ÏàÇOü;+²ëÙw¼ì†¿Ù¶|9Õÿ·X²kðÛ昧óìÿ[úçM´BìÑ!æÊdæŽò€I3¤ŒtN é½N®™/•†ètÿMíLæþÞéëÕ+›H‘'uöøœ6}S}^˜'2•‡ø–dÄJ?`,Ê ™ç!Æ…<Œî]ƒfåé 1˜5Ã"RÍõÃd>Œ<Å ´–q–‘2ôÒã`‰[5^raè §ãï÷€q3ß–£Ï÷%pƒÈ3„æYÖœ‡¶–€‰0Ï•o°Ð½ã`É{[D"I„œ\)XRéyJa}$ +1;ЫŽKK¢4U˜µ?ÙÕ ¸Ãg‘a <݃̂@k ÌB…‘4Ø;ÇÁ·Ž +¤'åë9b1W—»$äYMG$ð /}æ4þ/pÒfÊ X*< , Bi–`>*±8ÌGmŒî]ƒoP`EÇÌ) ¤ÉÐ<ŒcaŽ9ÐZ$ò‘ ¹å1Ë3ˆl´–)x‹?õã`‰[G„Ø«Å ±­-B\„Bs\W{½|ˆŠ#­žyÉ:úÿi6h=7fmÌ}#ÖPpì,ÚL! Ö<¬8RnakIÌ2Š™+sï8XâÞAùÂE…ˆ% <ò°º~j´•@k1H›ÄÀ²ÕÞ9–¼µ•#ÏÖPùaæÈh:GW„•l½wܶÅoÏ„6 ¾1d¦p>ķ‰gì¼9Ž!eÛКxyŽEyñ¡~,^è#^ [KÀÈB¯%îKÞ븉sAeµµÇãF¼(°Üy‚#¬š7J›4™›‹=jfI}˜ÜB°µ ¨‡Ó,Ý;–¼wT ð´ª K ŽÞÔç“K‚›46{(€9MÀ.Súù²€(^Bz€êKíýB2Ú:;ÐZ "Ÿ°–¸s,yë8£=ô„Ósn÷ˆ133ß8ÊÐáˆô³d–­u÷aQl-#·³–¸w,yïEz|iP9<™Ósâ&â¦×ФÇÀ’÷; 9·§³žÝÆCq´AD)&㸹g H¢ q­%@À0GÊLÑÞ9–¸gó2S1© äB6Mù®Ü(4Ÿ;ýî1áq{RŠYÐ"äzøûæïL?3òŒOxtº³q™Ïz +ª.%jã]XV01xmÌ0 58‰ä°CÒÊ Ø\;¤1Ø•ßØ!¤Ð3•1.ü0k†‰Ð(ÑÎLƒ\¢ sC¢¡6À `«‚CûðRæPsÆIæ ½å§ÄðCc†Ÿ<0ÛT,>3–s¥ Yg1Gº”4‚„\¢KæÓX.‰6©Ì@ d L +Øû#ˆÚ½ÐLÀ$²!”>„ÿ•é±¡a½y ˆ7èk\ØÉ2¥”‘ó¸JZöÊ€q ä¾oñJ à ^Ó¢ Xz;–1H+ •ËCE<‚(F ·À’Ù±¸ï@BF~h2ö~‘ÇZ¼13€1@æ-ÐW‚&à¿ Îm lË”e—|·Ð( &cÍ‹IÃq3 ”}ƒÀHºYI9‹ ’€ÖY`D‹ ¥s’¯'Ã<ó••£0²³á`$`ÎíýH¶²s„å!9M*@Á·÷[áB½Ýý&t0"ëÓý*2÷c ƤFÈxDW®(­ðAZæFIfe$(9-´)°¼™r@"i üÈZ1±OÀíã³(@¢€µ†Ûž´³å^Hx±ËÁè˜ 9 X…ž…Nq 0â$I¡ + âté°„/3‘º™/(¯Å AXVkÍ - ¥H0͹3Úf[ |;cí œ®ç‡ÊN!òh}i¤Fú"^IAô¢u …Û`Æ‚Ø ‘0Zj!©9‘€ÕƒÂ¡HÄXرôˆãhÜ-0 HÇTAÄÉЄÜL 4±¹¡f !=)"ÝG06¦ph¥&ÌãølS±@Ìž¢QИ?F>÷IŒ±W‘±91· ‚W‘Ì: +RÝ{„€ÖXÉ!àÜ9`T2ˆ±‰€t×± ÂHË)Ž]ð¹IìòiR@[|’¢À3¢n°FFŠÛIm P×',©B9æEcp ãÂyfìŒ ÀuY¾r¥%#@'ÈÈøaâZ"ô(aÜ%‚0Þ4Ûnç”Ì#EšÌ‰`답}(7£Äœ û)§ïsËH_°Å8ûÖŽ À瓧±xAå˜pZdÒ7´4æYà,Á:Zw¿Df xŸ@{PÒcåAäqÒyP=Vè¼DÀ„<äA`Å9‰ ã4ÈËͳ$æ<Ã,”°˜!O˜Bƒ©ˆ ½žÓmO) Þ€ÿ"Š¹ÐΚãI0D!MŒGqÆóÞÀE,>)âõIdÉßÊEÑqx@ä‡Â#ÇZv‡MÜÇ·cO8û`YÀ’’È1§Þfð! „ÍXlå'Ö˜À0ŠÄt-Ä Ë)œW¡õ»E`% ÅÊhüMÜÀÈùÞ(V9&S„0W‘ØãË,¬aH~•o211 ±FÚë…ä¾ü t÷ƒägE÷Ǯ݌fòIÞ'^L)¨÷€ùY ßN<²0p@%‚XĽ(°‘#€Eàq8f`!óy‚‰¨-¹@gMh¥çË¡¥‰tË"àÖ Â“ÀýP0å‡òÉNH[0â¾*PH†W{ä©°É q_Á„ÀØôP'rŠ¦e| +½BÇ!"Ë +suS)…s%!ôóL¿CŒ7 ¬÷€¶1£7ô"2õºŒdœÑ£8é €ñð‹XXÂWPH @)Ȧ)æÙU°ÈÙÈÐX`kÓ8é¢Aú¤ ¡Oñ;€u bÈTdǘ¬À# ¤ÄI‡@WâÑ» ÆÃ,EBg)80¾–ÇNŒÛ`„H¢l€‡X#Ò%(0ülhb(ÆZç-‡<îÂ0ß…÷ |³´>w@02â€L8Ìí÷š N–C»1 %!‘1‰StÀZåRF¢œY­Ð˜½Uš(páRˆ±6Z PF‘½§¬¸£¯#5œÝÄ99ë&·ùŠØP€LR$bK³‡eýˆ@õÂ76Xù´(N¨¯" ó \|.MtKBF9À°{ÀÜ(¦¾&è Ñ­I. g5FÅ‘h¨[ó“zd€2+6Ç Xš€P¾C \€+\Õ ÀÚÍp`¥80‹:¸ AÂJãö†Ã«ùlµÞò¨m[b@` µäªŒ¹º&B\B*/báô $³’d„.'Bᶦ܈ÈFÚL €Âi\PˆF‰2²â =,Ð <“²Ä6R#@°GvGç\è¹pÎêÂ|’ÄQ‹÷GäRÚdNñBψ=yDN#r¸¢"Gè` yÒv ®°YGEŠa… "¯ˆªm¾ UäFfÈid„‡Wέ¿0*9ÂÊâ6=zJòiè%Ìý ÌÝO- $y½D¡ß·OòÝýؤk£›'P0BFÎ-0°¥6DJ¡7Çp¡•Y³`È@É{WGáœ$–{Ò}WüÑ·´X$Y?À8¶ÑѨJ›ì ®µ°ô(Ôà0tbV¸™-TEÒ¥ëIG‰àÈ‘„ p1Œ²É"±ß‹„ˆÜT„¦šÓ¼°¶i±*²&zw…f@ñièSyVÏÀwBo +ˆ7 _lŽ@ŸæŠíÕÕa¥+zDhßA´vI(j•Š"®&RpÅ…-˜LÏ#¯ø‘R%ý …ãö¸S;IöÿXõ°ú¥\qÅ€À|GÖ«[±fÁÂÆÊT5 …T +^A"œÖ®“ð +—hHë\¨"Z)M$a‘Èã ™3°öîâif·7p4¹«„慉ʞ´I§0H¹tì4ëz²â¶…®’ðJÌíoy’cÀ9(J*[êÂG r7Ú%Ɖ9FJvÎ_E65Ó3p +)âû±Á|0r0 £8›B_Æ%¥Ð% QV• + +hβÈ…smvÍr +|¤ó6Q"7ŒlÞ @!5[AäL#¾Q…I=µX#*G6@ ‹´u|/’PD:¹i12Öq]À2¢š6­WärP[”`à¹Ø³º_9'!M@9/¬}£}§€Ü…ÞQ\®ÓFÏ +'@]˜§íŒÇ>×M6tq~‚…qÙ@‹!=LO1i@#<¶óÃ:µ3@ª *SêÑ[w6Fk%lÞŽÀ¸¡D ¶ì‘pÛ˜TƒU,ÞQdö0½¸Žè$ ùd&H ,²q¦Çlaɀɽj‘!´´É`5 ,£™¼T¤À¼†&‹‚G„iS‹##IŽAG31—mP8ˆ`RO[B•ë\j‹@JAlðL·G®@áøÊ]‰^™ºg‰|Š„4ØÆ'À,šé·Õ8 +Ó+³¿h`Ûq;âf6h×@aŠ¶¤]0eöó ”tZlËjiº+ìR[ZfX#0óôœ Ó‘¯*Êa…ÙðB ó©’AÊ¥¡®‚çÖ:ŠD™ýkuÚå/ F,Xhå˜mh \8=ŒÓe3!XçΖ±JÒXÆ,Ùu ÌΗYWÚÓC¯ŒLˆ@øÎqD„4ˆ\)†L4‚utïžµf¡ É@ooÀà‚eD†ß¤¬YX-ׄU9ípHC­áD ÷œ5õ# ð“^†H^ãSH¦DÑÖqäE Æêaƒ·Y\r+|KWduPÐr“Î3a…#r5‹!´{ &©€üÎI§¢z<©ækã3À×ÍfVlâ¿»=8eŠÑ˜ 5Å °Íjpbº Ákm´b¦Î„c#g#d`l„›ƒ>á ìÖœF (¹ä¦ø„@î 2H# ÏEˆ¶€P]d´¡EØ¡R +p³¯„@|t‚B@aª2:‹ÀVu”I PGuÖðØœYƒm¤à¢pûu0ƒˆ[XLíß#T«-¿#º]¯ò •[mEŒÄšËL¶Óöd¬¤H¬«)éë¹úTúw•{ý¸ˆ6cu#á… —ö̬MC¼´dv“õíŠöZtUéüÛ±¥ƒÂ0azoô@Ï%·"ž•ÞÏ10I·KgÏL‰À(¢Xƒùœî—Χ*[uǡʉ¦7xs±%î¸Òó#WTT$Òuã¸Â9§™ÆNQO pÉ­1ÿ8Öã¤]&«B`l „ a|ŒÓ(¾åžC@"hwŠô8ß'ÕääλOòÚG±€žOûO*¹˜C‘¶Awä£ÿ +ýÄ\ ù4-]:5”ÛôT´q¡±†Î˜žF`¡#ðƒˆ¼"·Ú¥°‹Ûº‚š@,ÊA˜¸zŠîµÛdC”œ‚næüºäóM=)ò·%¤òööÀôÄ‚in×ÅN²¶ÿ¡4'RÌtÉÑÛ½3òD‘0r(©ÇBQç#+ÕÒl j Ãâ+’‰0F§u¥5e +þÈIƒ^5zpQÜ¡ÌþmòÁ¶Ø… 8P±ñJÞÎ9= ¢] [QÑsb$ÍA¼èÇÉÒ£9X³Ð8JWä•°5CZªl"¯îYnSFƒ}êi L]K±…LOè6åѦ‘»?ô(O co Aƒ µs694~Ú®¼g$òJæs&Â)E~!¢¸ FëFËEë."Óh0÷ ^çíüÐÙ”-©¤Ç¹ þ”èUnbº½ÒRF +€ÛʧL^e€Êž´0ª¨x·B£u € ÂâÌÄÖäͳøP”çcj©0²ób^"L³=µçÛy±, äv!Uò~¦ˆ®À”ä(8¹ʬ©+ñ +Ê`˜—:»9§‘F$ê”Î(ÄŽœÈØú$ãðÙ¶”FÌ7{ñ6vUñ 9»²û8ÚS.¹ÅzÆv-vº!fl3>æë›­ÐTɽàØ€*åÌ…È]‡7íˆÜu8G¼!•"ÅAèS8e·Ûø2Œ—ÑÜÏ\M(±b,âèj«R]m@dâR¹2a¨*IAIOX m†Á¥í8Ö-™®IÚ‡IÒòÈ:=†]t”µº2‰Aà,•i= KËK:Žg8°¾$Hx¸Ê·©Ló™2ß¹¸Ð'qILº’"Ií–”k{´â|‘+å I"ñn®4M+z¶a4lʃD\m7Iµ+_ÑýTmt-èÓ6¿Þê5÷‡f;L=XàÚFelap QW‚!prh_œ9Hç "ןc÷ +ÍýXÔ#!àv‡µ…n_Ñj"…¢N‰¸ àx?šJNZàÇw‚ú]Oêš$#§.ÜÅæ<AjeÎ}ù‰˜ŠûÆÀfíú‘zPEn/š*w84¨M›ŽmèÁ®È kܺl7¨5P]ºÎ@hãÆ)ÏÚh†’š^#’áHAÝßaD±ÇþmêñUvƒ¢3:{£›Ò ¶œmû¸AÀÜY';Û5 Ž;ϸˆ +nÚÍX“SLB;kˆ`NçÈt=iÍ‚c9Ô…v-ÉöCázèM7au‰4ABkÞñJg£¨©Á¾¤“IÒV6(ÝI0kQqº>Ú這Fëz§l;.²&.ªÙ[BO[JX9²]ź`ë+¢‹ŸtÉ×V}¸+]aùÚžCõ¨^¬{),V·i)]àÁMž¹döe„TÄÄÈmøÙò77­nsÐÆ®ÜDꦪÈ\Ç 7[¨Kf‡Ô¶ q#ÀKzß5²\g;´™êÙÈ…›âíòR*Ê©ÇRo‡‚¡£Kh]í ÷”%ñQo½.éÝçXh(ÒÃ}jTD¸Sçî€GŒ@[‚ä´‰»òJY~Åf]70 æ‘m¯ \œgÏ`/ÙÆfiÕ=Ô¯@çj¸Ù·\³`Mº¥×îá#0´x)/ð컺='ì™°A7UÃ%Ý´벊‹ö78<{ ÕÜo3IO¸2.‹Û`éì!XÛ¯J­,Z3 Z»£À€Ñ|[  ²Áýã[]ïÚ"Ô7'ñ² BÌ%Ü4AÌå&X 4<Ñø3ˆÀNºÈÎé#’z½ p.VìV¦UÔ]oç¥3gí=/áX¬t˜®8Ò;æZÍ·uË)>À.Q¦ˆßöÚaÀHzàÎ7Gñ!ûÞ€5 öä5£ì ¦z17¯G0@È -‚¸‹‘»T–»ˆQüj}|ÚÂôj˜ç»–yl¢¤ž=é=ÜI‘ÞÁ0íÚ ¤N†èx‚#RŸˆ}×ÖÇw·À Hk_ã>tnZ£Lw;Uplê¦{ÛÖÀM"jà[†HgôΟmº—Ä»%¬n %µ¿i¼’ð¾=½¹3LÜôyÚœ¾{‡AˆGÙB5ýñÛ@‘ÛºåæyAèœòø¬J`Ž;v {I&gåštC‘P{áŽÑAdìY3ºxTI‘I÷ƒP¸óð¨ÿaDc# +ì¹ÒÄ()¬lu 3 ú¤#‚…X1 +Eb â³­xÞÊnFðøt’p¿<>®ƒa +^½Ómp×ÕÅíö¦>Ù%ÉS·wÈÝKJxÞ±G¨ÝI°á‚9Uop³ë¶¤OÝQÄ)ÖG 5Ò'´Oj¤º }Éœùµã6x[Òç£i%NbáÁs{ +Àf'@¿hÀö2w6WÅG™™9ä¡(X|ûNîŽT"Ð#2&è­ +t¸—›Ö„€yÎÄ™t„Åb(Ü[˜mñåqä¬ÑÚ¢1³}¨úe‰µì#Ðv”±ÄÁ |E`œ=£½Y|iu‡0ײ/#wŠŠ%Åeä"\æ Ð}]¥„Θ’ïÒﱩ<3ň5 “02³ÿA`æÑ:Ð;:èIšo`šH»,¨ñ•(ºÅMƒmƒ¯… ™ ¿l›²ñÕ8¶w‹%ŽYH/i©=sšZD®0Ũ‹ïáÑ{”–·äT„r%îN=c}Æ#·ÐÛâw-Yap×#ã2ôPŒ¼uè•~QDo + ]rvjÁ:T1ã=EE‰HÐ tmìHN/‚ˆe¬|Jó•{S ™M­F™yS¦“‘rÑhDO ,݉‘Уš,E(Ø.k¦†@I1^¼ÉlLeé¸~7r!PQ3¡çZ4X|^]¹BÓí(Ô5Q–ã_ï‰)kVù=Qi#éZ=QK,eÔ|ÿ–FÚ(ù¾¾¨býK½¹s\;hÿÊÃ07¯eh½Ý9;n7ÛG_Ó袮”⧫„ôÛt ]1>h4k)+“Ÿ—k“tó$o´Q³S;hô'íÑôóéz‘Mþj÷¯cÖÒu>âšf-eš25fi—·©1ûezR÷Ò±_·ç&UÄŒÙp™XßÓµ,£ +?qKíRÊZQ¯zPuzZÿß^’kŸÖßK™;™žÕ¿‰½„?ú¬~º„rä¬þ÷ù×”¹¥k8Øt-Ï¥•Êa·TntÏšµýúi½Õ[¯¥Ñ7]͆_² +þ éÉÄ?iS”ѦŸÉu>]26Tw¯ÐˆŸ.Zºã:ðÿ)×Z­zs§Þ¬ïO^¿ÙNe£D m[~‘…T9JÄ;R›íÎz ý“FGt…$锈HÏÚ\?=JW~]ך.Ãw4]ë2êŽô&Mæ¼,]Ù‘ýSE5Ñx%{÷¿Ò#ùðZ«qZKgëÿa£Ùœ¸U¯KWÊÌ~ÄÌöj‰[š×¾^¢.ÿ½­5 4ðë0&ÕëtQd§>¤‘öéì_6ª¬_Ö_×ÏÒµ4z⃴ôÚ7²ˆÓ$¤vpÐè5¾LFvêº8“*¢bIƒÌm½}0)iÍF«^KWxLÁТíï÷Oû—7$*î­”­Y‚‚!Úh膞üd‡¸&~…ÔMæ 1?õM{é2E×Í–R–c\#[J׺Œ)Þ]ýmé +F¦/hÛOׂL›aR¹,×i† SEÉ´æ×k†ÙO×~Ý´fÒX ]uÑßí› +¿ËæÍ1]ÃŦËjüöí0ûéÚåºf$š~=™¸&mŠrv˜”ÉØõÚaÒXOÛa¦í0Óv˜em®Ÿ ¥«$z]ך2#~4]ëò£Ûaüi;Ì͈¼Ó•¨^×<¤L©®aÒµ.ÓýŸékõ.4:“«hÊû»ÖþƯBÚ¶—ÏUHã›H®ß‹òc»Y~û·ú)#ézo3LÛ]ã šÒEÈ÷½Ì°Ôn7‹éëNŸ~Ïëô¥ÿ ¾Iß_ðë¾ìJïÓJW p·i]]‚'1ße½Ä»éâÈô5´S‹6µhW±h*U$¥Á¢¥‹#S‹6µhÿŽE«wÚ—E»‰-]ÉO5h\ái„6µgS{vsíYºÂ‘سt1ä¦Ú³´w’|Ǻ0®´ÇÿïèKrwÓÅ©Ú¤Fm‚T FÚÔ&]ܹ™jók¼I«S?m_öZšé›´~@ˆ9þMZWê ö³þæe} ÿzYøû~†ÿ?€²©¢6nþ•_6ù›¶ü”‘3æU[Ó7T¹×á;ªREÙô U¾–AÛ—YÔŸýzªAÏvV¯õÊ›’Fë ~Øh5R¶m— ã÷=û±—¶ï6ÿm¾¯tò×€¥m‰~ÈAtås×8RjŸžµ»t¦UW;F”lö/¹åfÙ„ô)Ð5ÞÆ棑3\qçè²ý‰ÛF¿½AH×Á½ëžM«¥»¾eHcès]»Pë4zǧõ^Ê ÞyÛÊ'—lñÄ£T‘ƒÓ"ä¥O+!þ!“êPº¬ÜɈâœ\ÒD”VBø}èôtõ5NW§Ök§ótéD{‘[êÍ­fíënÊXú»’%õÒÚiü•^V¦ËU%(˜n'ÿ@c9ÝNþ%·“µã†2ó¤O™§[ÈC1hÊÈ™n!_@ÚôKŽ¦[È?–Æéòt ù&‡Ó[G!iº…œ’®±…\nö»õ5|O1Mãk¦iܯ˜Æ}­7›í¿uêõÖ°MõàßGí_íf½÷ S?xÐîÔZGéZÏi~7”ߥÿÛx§ùÝ4¿ûköCó»¦ –öñ[ÒEè4É» ªOÙê­Ùw—¦.¸ª}kœö'i˜®b«›ý ÛëM˜Èr•.ªÓÿÑG.¯”Ó˜Œ$U¼ù º@'ÍçÓ¸HÀ qWqÊC‰Oªh¦c$]»Ê +¦«=b`þCyŽÑ¡R»¥Ýô$o„†+(;gõ}R;ÓºÓ´îô[Ôl•ÉÔlJ—Ÿ¦u§iÝéVxZwšÖRAÙ´î4­;¥¾î4q–Û¼ü[~zŽ;-¢M‹hç±¥kó«´2üõ ißQyòoNé‰äªòÏ “—.RFá㩼j&]¶h”ŠPF„<5UDŽÖ¯®ü:ÇåQ{ŸV²¦gåÇ'3©"è·‡F³ÑÛª5.s_7Ë"¤ù4ßoR¹©:}wÆ9t¥+̻ƻ3Òµ£xwg¤lE¾ÿÝ)#äªïÎøõ|gºTäšÎ3•Áuüfzóƒ©ï¼núÞ©´Ó÷NýË~óW|ïT:½õ/ñΩKÌÈOß¾sêüŽæÔ½¦æF¿sjúî„T'7é­«“ôïH—¾Æû6»õTö]IyÚš ´úAúdî×o³8ø:!-éúÎKœö!—„i%äŸizóŸ¥7)·6ä9¿âª¤}+òF&ž;ǵƒößÓ7ÿܬsššMS³ij6azªHš¦f)–¦©™£%L!×HÍRFÈ45›¦fÓÔlššMÎØãúåçã}vîÍ¥Š§4ûAYþ»q0ùáH‘2’ìä)šÔ¯.ù2]ÔŒxÖIkê(ùg$p»BQ#]›8Ó¢Fê‹/ú½~³ÞÚÿ¯£³éû‘þ=‘ümÞtØiŸNÚL™O×a3õ¡lpâ—z¤ÿA½öÄ “®o:À‰’2}ÝÑôuG?cÍ~èëŽöjÝzµSÿÜ_I”?}ÛÑO|ÛÑ•£3Ù‰˜sØ©í÷jÍv#eAÆï­Èï§+ñ_ïö½ýãæÄíµ­öŽ¾'UÄ 1Ha«º öebSö>“äü)»‚ùLmÈ9DÃwní§¬qbôlߤo`K™Ñ0Õ’+ÒS}vryJÙ*Lß»26¬JA¿wåêb;Q±µWKÛ©Ùi©uZj½–½¾BÑK’¹vt¥Š¢iq#»c~tá¥<øíBÖÔŠiÐú[­Wë­ñRÖˆòzkÒFÒµzkRFËwwÖ¤ŒŽï뫉ƒöÝK^3Mø¦ ß/šðýºûF©‹ä¦)ß„¦ë¬úNùÒEÝ4ãK˜f|ÓŒošñ¥‡¤iÆ—>:®ñ¥«î:ÍøRŸñM_ñßçF¿Ì‰ÍïêaJÝ"Z©ïxáEºÒŸé /R~ý×áÅÄö M—"jF,ÂôÍŠ?™«¾¾£Úl·/‹ÓoÅÒ÷Eß箉˜SGÐ8ïÿuâo©=D13_³y¯YÛ?y5 öYm¿Ñûz?m…QKܯSFiV®kÔ|S¾V¿té÷»l{W¿Ð£”>!¼ê)•²ùâÉ5û-ÊÿyM¦ÜÐ_M½f æ©3¹K„þê”–q÷µoÓþäe|ž®«›ý Qõ&Lä*ïëLשÆÄôô>Ô•â…4~í´têå“Oô;‡µýúÎ~mâ´"]6f€AâšÖI.M|:òþ>NÛÛ†É× u•L׉ãùÕƒŒ +•Ú-sÜHòFh¸R´·c¿.uîýp/U’1ö¦ÑÞäÑ^Z¿8ù×ø~é‰ÄªòÏY»UŸÜǦKIG©OåŽ$F‰øM¢Ýßr7àµ÷i%kÚ>Ž²ïü–F¾5=U«ò;õNlRYý»¶=¨u½ãÓzÚÞÖtÞîàÉ%í q§}ªÈÁirI$šÒˆ§=DȤú“²Qœ“KŽ¯§•>õiZkúÎTÒt·™Þô`ê:o„}û~×™2B¾ßu¦,ø~×™2B®ê:§_Òøý/H}å÷ÈÂ_•‡×ß™»ÂjNßDôo/êµßDô"/Õ¾èfn0þØ¥þ´×(äþÎZŸX¯Á n¸}?%"Ò³׶ì+0‘î彩0ìëNJÝÕh)GO`b#žõì5î'IÉDà•,Æ/õ¢’Ôf]?d£1}dé8›¾âã¦+Ñfº ×T¥ÔÒ5ªK¿c)]1ù5ÞŽ±”.cpå×cü:{ŽH êÊ‹´½ïôšúŸÎü:)·×ÓV¾_0ÐNZ‡tD¿¦yH­Ùû!¡¶Ÿ²ï¡½F°­=-˜xÑ©µº‡?áŸÕ~k;š|…*[¯¶—2O8®È¦gùê*å–MW~€‚«½p ¤le*e©”²|õ²é¢ëZrVœÊY:åÌ¿ÁæìßD߀÷¯6:éZù_8Mýmë!¦ ÿ«‰ZjUèúÓy4kZ™ö˜^¯›1ÅÆèGõ4~·¡Ö+\h6SÅ•ØDÿXÎ\íÛŸdʾ–ç|ûSÚHºÖ·?-ù)£æ»¿ÿ)u”|ß7@½n·Ž:µ”9Üé×?ÅCí×?ÍV}o·Ò:p_… ‰Ývk (Ò/fY2àbý¨ÑJ~Ù8Ó8„ùhçëé^» "Ðé´ÿ^ÌxÙü}ów¦¯//»™ñòaHó¼d2®7,/÷y?ÿdßÔ2qëØ›¯ðË3øá€þΊìzöÝ/{€è·3K2ÀÝ*ëçe¤²§1(È+%=‘]Ë0–ácx‚ç©+¹QKñ°FØF÷Žƒ%@ÃóXËfæva}{K8·»°„³À? m* ûûýÓívÏöçvav3/3Qva1ûæõÀOc1K+h°(| V½ÞimÃÒt{ô…•¹¹]6:ߥÔéÅC¼ìr±ÝnŽia c¥ß80¢dgH³ŠʈÂ÷HSh>ÙjöáßM­p Rí½z¶Øéw³ëµVí¨ÞÉnvêÅ‹?ËšKµf³qdÒ;ò¶œ•Ù³^>[mÖzËv(ðt³ÔøÅìRf!\:®uöÛµæòb6of +¤ ÌóÓ{δ®xÞ‹Øu)áBE‰ôöú¯f™äXbŠÄ­EÜWXξl¡=°c¶átÁÜó üLê˜/U¤"‚O³z|Ð|?Ïý¤ø›üôFæ m¿£¢›Y~ÞjÿÝÒ¿ ïØѯ—õݪ´=üR§Ï—u Ü„ûv=äG£•5ªöëõpÞËvˆN^5º P0D8Ša§WÛ?¹†b­ÛØOÞÞiŸÔ'¿Ÿéš›{ã+ÒÛ½íú~Tí?4Ã,²çZoß4ßzÈAƸ¤l&»ÀCÞ + î*»¼UëôÆPVj·úÞ$D%±\†æìºÂÝrqżÜÌÄíÔx]äGì2Ø¡Fö:+ÿ²[¯|©·6&äºÑþr§}–%mðϧvšqùZã 4Çè(Œ®[ZÀµü¢Ñ»œO>Mÿ¬Öè$k {Í–&„åÁ#/o×k0æ¸ÝùfiÖcö»ýűÌÎC”Â0LQAÑ‚þÁc ¬M>ò|%ˆó×Y†î~SÏ‚I3Ä/êžõ—zGg{¾çè Ö9A €y«æØeÿãðb›õÖÁ’]ìʆ æL|ÿ¹4e–+ÿÔ÷û8ýý>ÓA#ý µ~³÷!a§w§gMg§ÏѬíÉ% 0qœê[Ð'j“ÖÞÜSìk.uX[µfâ1=õ­½‰'»ð. ~XÔD¿ù–†g¶öG¹²ðZ¿9R6¹zÀZ‚Ó"Œù(âQj†ùnÈöJ1»]?°¨=åG¡vëùHI_„vñØ·õf =\±@Aœ@ø’ãV:uH¡Ì0éæ&°àQ䈣ѥ¯5B~ 0 Tä«äQ\ÄÄÎ f*Š<¤<Â=îf^‡´Õ«Ùñ¾Š€B¤.£y±€ |œ§¡¤ +~äKa–”÷ÊÀ¢|èG<»òGÙâC!‰mܪ4‹}Á„ÆÏW:áñ"¡?Bd8Uß‹BÇøÂÌ-­œŸÿB/FÈ|ÄÃE(BÄ>÷¤ABB†*Ë?d˜frB(q‚8áâCB!}nçÃý0SȸÔ0Ÿ¢if&†¬ãšwœV: "Ã0 ãZB w4œ œâ:_¯,cäÍ^äktš\j‡F¨!VÖBç€YžŒH`„‡„F8=Eø¡|éê¢À3©1ˆ +¢a —ñ‘¤0ÃAƒOê…}@RÅC©÷@˜#>Gf‚ŽçÌ L€A¤§%ÿŠøthõà\RKYhAaÊSÒ¬«ðmóQS’È<ä™$­@Õ¤™Ènæû´†Ž:#È Ž8ßwˆB!p2^ä…zVBR†g,0ÓR ½ZÕÈ´*«/²ZQ õd6°_!QÆ”"ƒÐ )Äl°#ª8+ÆH›Â@rÍÉ”c«):­JLÄç8‘0$nG ,F»¥0å."Í[ÏÕ)-~üâÅ´3S€Whú„™˜6×°^ _Zç„d£„i.’ÔsƒÑJ½z4ê8!•LOÌ„o•)2¢ÊXˆr"bë3ÄJ½‡J ‚3£…‘”z@9ÐŽ˜€Už!,0?dפYÒ¦€Ì¯/H›Àü :MTÀ<-¾úÚ&ƒ*/ÔKëx$¾ R9£áƒ¤Šˆi¯à…ÓòÀ­ÞÇì3ó#£Áˆ‘{ÜÍ5®‚'Hb?`Ì+<*@ñIº®×ùäåX¨Ósp¦í7¸Pa¼t@â¡ÐS ÿyÀMÚP˾ãXe¡•pr#½@‡– zÚ†+ÕC Ð8ÞKt}>Z;g¹Y8àvÜÀm£a`Ç"m·«"CΓ® +].ièR"€Lø)p?Ô¸À ÌÙ4» ÌØaƒ4Ä©jUÒ±Qƺ…<ÒœWàC#†hs\áüôãXbuЈ¤ÒjBF“û2’\ËŒÃÍÁ{iñ‰ÂÈÓ«b9 ŒYÁÙëR‹Å«P}írBFhãFþái´¡ðàgí!”¯›<'_k}GÒóhÇ㌇ J/—`®µ_ä óh©™`×ÝŽ•)p¹PDµßv‘¬×÷nÃZ}WS¤Ô1‚óŽV!A•bÖFÈÃXâ«c ðFÊ(aàkµT ÛšŒæê“ZyÆü¬š¯\[]£LŽ Ë.¬5ZõZbÔÚA¢C<Üñ¹iž#Ðãb13æ‹ÂÓâ1"Þ†!%¼âÑ;Ο&»ò4ÙdÓ¼ñèˆØäÉî|î×:õnÖªp™ë]ñ‡ìÙ¹·–l&ó³[8‹£ÌÂó„oò €Œmž™ßCú›ßú]˜ßý.Íï’~Wæwá|ŸùÝ…º¡ùÑïMˆ~×)îÆ1X†O[E—VRöx•è¤‡É„ÚU@GÒW=ò»¶‘¼ä6¢ù?·—4´±`><ÿ!vòåö~ÿD¥\ëÕp¿„~×[%ËC['‰Á¹Ý…Ù;ö’ýιÝKz^æv£ 6ÿô&ŽÙþžÁi½W;€‰_µÝ\0/µNw{vêzô§Oâ§Ïá¿äÂ9›Á£b{î./~to”–ûÝÀP%þã…˜¤Áã=—Osa¾ÕÝÝïw{íÓç NÌù¢ýøaˆ†ÑåÐÜÿ2y ‡Ý´‡4Ü›D¿S +€v× ÍËxµ×Ðí~úX•¤bTšíý“úe 60®ÕnÇ…ŸHÍþß”‚+Ø‚4+Ë„L¤½{ø÷Oó€Ýfcÿ—pšÓ¬»¸RIÓà”]³êÅó T—R2ÚL‰¼ÇͪÃtQÃêÅd)ÏŒRF–kX¦êë¥-ùŠc¡+m$}Ÿ\NŽPù0Šw°SBÍ?ã¨Ùk÷ >\«ö6;#ÝŸz1q®» %TðŽ¤}Ökœ6¾é½^ˆF0kþyù]¯Ö9ª÷~ú4¶6V˜¨¶;§µÿ2ÍüNÐÃw7œÕ:ö´7K„'?*¦‰y‚0ØKañÄG‰jµ×±¶X²ßÓy³œü(qÐݬíßÀ5KN}”°ÓÉ×la¶ªÿ¤/á8Z»+5ñ¯Oh@'°¶?W!£21è¯VË“ˆüÈô¦ù™ÿŠdþ(ßðÄÿ'pûâÉ'vCtLw¢žV·jX0¤Ýþ^·Þ«¶[½î6†—Ïë_™=0úõqcÿx«ÓF…s#]¸20t«\ÅfmÀ¹×h6z_U«°êûY··²Ý?Ë®ÕZGýÚQ=»Õ>ëŸFÃ'r +Þ^»Ö9÷rêd0eÈÞ*lˆÄ _Ýjƒ;Ù®7_´·MtŽ±â¾Ȟ¤?e4q¼mÒ›ü!άvi²v7ncÄØ”ݳfíëºmžÛ ° Bÿ?U?i»ß¬w“ »æôÍ´¡)hŽouêÝzçK=û¢þO/[9hôjC«Cƒwª¯³ætQöE;[ÚÙ¹h­q¡s×1 C¿=èé‹õµ,¸ìJ{­ñ¥NÂÓŠÐÇÝñ¢ü“û§‰Â…wÁð3:ÝÊéYïk©Þlv/¿eõs½v6î4Öù£×Úû‰ƒaâò)½ªwzýZsdíÆ<£µßì ›P…º?âi»ÓøêN¹p)^vëné/ä¨n‚pÁ—HÀmºÕÛ,yTùŸ±sKzÝh´ÿî^:nÝ4çõþtÀ4 Ï0 w§ö }ˆ1è×òõo$Þ„7eQ²þ8Ѿì&oœü]v“µbþ¤D™»¸-è]é&aç'®t—ü®»ÔwÝØ»®ÆÂpHŽ.ˆñ5ÄF,k_&OÞd·˜ Ž_â‹ïyïyVYxÅûØxÞ_zÿÎûΑ«Kï“Ãëv.ãÇkg³oÖ·ÆZe0‘ÆÞg!”:l7ñë¸q¥öÙ×l±¶rÔÁ] ü6ðÎdl:ˆ0;Î$¨/÷Ï€šZ/IO±~ ’™ÈÍP=ÀÊl\»2`ÓÇËð8os Ð¡pŒÛŽ‡du’ Þ£Ö#òTÌ——ß5\Ø?ÔÌ OºŽ£51ð–$CÔÄçɨÊË61aoÁ:µû½f£UÏvõyÈQ;¸±ØÅh÷›³ì~›@þÉvêG° #?ÒG‹a‚»Òiì&B+ér•áA6zIFz¾›à©z!Ïìy·%ÒÙÕÖAýŸj£Ó½äI÷ìÔ÷Ûäp‚H[9Å€:Ô餤„*˜leµ8^ki5†ñk;1Žóò‘á['Yàøñƒ+,ÎW«Wúß@l¹ÑíÅŽBœk‚‘ÉUÈ; ­£¦“ƒ%éy—N­î~ÑB5ŽÇç?SS5òÐs$Éq`¼ªà‘I„)Æ3,Mç[T}Ï€E½p–±5½Èðê¡ kŠ~G^4Ö™þ_æ½;°¢qí&¥„&ÊžÕÎ`}»Ó~3Q_äq‰mö{g Mô<=0!G<ܳ^ï_rÇ¥‚щ;J—o˜Z†áPÀô}g3>‹åÚªk¢,r ¦…Ñý€åx‡dùS{/O³Ž IÑðPàÔšMºe¨Z<<ØЉy†u /ëtëíN²Z0vd÷¤q¶~åd²IgÅ#ãðU[1Íܾܞ}ÖÞ[m¶³±…½òvM±A‹RØ)­®†²\ÇeÀs¹\¥m=+îæÞ>zÄËË›O£ÕÚ\çaqçp}v?ØÈå:¯½Ü¼xºýäþæ“^Ô¨®¿ÿn¾íWçWÖξ}û–Ë-þUÎåîÜžÉåžÍdæB¹VÙüÿ§äؓΟ«>üp«ƒ¿¾(ŽšðÃÜŸðÏL¸R|R_Ñó™?ÆÏå“W>/·oë_+í¯>Ã_è_‹<|ðÝ4ƒ_üoÿ>þº¯-„ò3øaaqÿQ·>ÂO‹ñ×™¹•ÛùÂ=øùšÙ^™;ÙàðÓ½ ¼»Rjt_,ã¯z¢²œß^êÂK¾þ´Zªw>ã¯/ñ×¥Ê_>/à5ø'’Ev¼×Ñ¿jZ"˜™’§ñçÕÒᇇßÔÿÔÙqeï…7Sý£Ü/äùÚã;¼¸¼´Uxñ¹;W­ï0àõ‡ÊÞ­ûïʇ·ŸÎ•Ÿ÷ùGÍ2ÍLž™ÓÌ¿[˜Í³ò*_gå[ïî{½ò·¿}›?»Õy¢Ô³Æ‘z±ôö¬’[*.Ÿ>ºKë‘™Ãõãâ½<´‹wçä˜øôVX3;ƒ|¾»«p7€Ÿ™·ŸðIƒÆÎÜÇÕÙÜ…OV·ãÙZZŠî<ùû¼¿R|û¿íÂöÁãùbeyVà|òGŸ?Þ-?:yX™o¿¹³R|¯þ*žÜ?¸÷äóÛF1!J1ÖM3Ä› ÿ`þäsá´}Ô¯þQ]ÝTêùþ«RãáÓûw+ëkþ“Ï÷ƒ»•µê†â·úûß¾-Ÿ<{ž»û¨× ,‡ZÏîvî=i•GQ§ïåËõîã ò¿ÃjñÉýO'ËÏïŠàôÿrh6ëV»O7+{Þ½~áùÛÙCXÉOw‹KÑŸïÊ««·3sÅæ“&/6åÜ^,wy¡³¿êß=‰> zÌüù ž¼Ö.ìôsÇw‹v¸Rð;KwŸ”nïÂ¥üLùpé=/×× /©YËoZ†¿åfý¥Üìòþinæàé§\®üZ€ÌvJ¹Üãg=œçŒ]«Å;fr‹o>çîÜîh×ë +#¬Æ.|Àßf« íÐû¦^/5ï>é.…øÑÊvn>73ÿá~nö^y#w‹ÝÝËÍ ºó7%ÈþíûÞJnáqó]n±²ÓÎÝyþ Ÿ»ûçL1wïÕÇW¹¥÷•O¹üÞÒbnù¨ñ0çný™ó»A=Çg{·r¼ÿRåäüÏrêÞìÇ\àïvrá“už‹ªâiîþËÜÇ܃}|]îáüë ÷èѳÍÜãWrOZþÝ\ñþr®ônv7W™ïÜÊU·>?É=;{Ÿ[Ý<›Í=_êrkµ¹ÝÜÆ㻋¹­yµšûs¯ÐÈí¬®‹ÜKïÍËÜ«þ§™Ü›ö½Jî»á)ïß¼ rÿl¾ÏýõBÞËí½ÚÞɼ9»•;Ìœm…«ð”Þí—jvf§skv^<>ž]l콞]ÚQOg}þ6œ•óüîlaÓì=8œ}²ýé³åg›³Ow¼êìÚ듇³[ïÿ³/>=\š};»x{öCt63[ƒX~¶~´s:û‰=ÿ”™›mm—Žg»ó…£[3›oݾW:ºu÷ãÊñ-ïÁóO·dîåé­èýîç[žŸån•Êþí[OyaéÖúÝ×òÖö½îÃ[¯ó÷Wn½_~µu«vöÝ­ÃõçÇ·NþêöoõVòs¹ý‡™¹¹ù7kswû·ßÏùµÖœêîÎý±1ÿh®èîÌ­ÿy<·þüáâÜN2÷v¦÷fîcóäóÜÁ§†šû´û×ÖÜÙáþé|î &æoŸü9ŸŸ?=›Á̃ùû[þ»ù'ÂBfn~E½z>¿þæ¤5ÿbþÞÃùÿý¹²7_óbþ¨.ßͷʯóóý¥Å׷绯—n/Õ—ßܯ>äo?øóÁûÛÅçmq{usçàöÖûGo¿n,œÝþØ?^¿}¨ÞÞ½}º¶º{»wòä1Ø¿Ûæò‡Ñ›©û ?…½…JõÁ›…u°Š /Z;ó ïß×öž­-4‹žZèŸÏ,Þ.Ö÷—Kw·ƒµµG‹?vó‹+ŸËÝÅ­üÉÁâ›g¥×‹µsÏ^ÀS?7Cyg®üùîüü»Ù;êCùóÇOÅɧüVýΟóíÚ·íúÇ;ܼ¿sÒøðîN¯½ûîîââч»,lïÞ}ðtfïnù/ïðîƽróîëõ7»µ™îÜÝOëaþnof;ÈÌÝ[Ø-ÞcÕÕ{,µßÝ«t«{›ûÝÙ{o?lñ{ûñʽӽ“×K3­'KKsî.÷— +K…ϯ—ž7ÛK¯ä{¾ô×û×ëK'ùíã¥þÑÿ¼üÝâ»õ¼šßk柟ÁSòÏ_-¼Î¿ZûãV¾öüåÓ|óY«¹<óŒÿ±¼´½½·ÌÊåRÿéÇåÍû=¾ü¿—Ï>.ƒ ÊåÏ[÷¼……Â9{â=–µª÷¬·5ë½:*¿ööþäÒkÁsý¹Õ…µÌœïo,.ûwýÕš·î¿lÌßóKm¿õtë›ûÜ(0öðö]ö¨]i²ç¥oÙ›;ùAnÀ>¯ÍÞæ‹åWbñ/^’½ä[AñÿÝzÂ?­…bæõ¦—™˽Ò]ñð`^<{{wF¼¹s«'êoouE—ßêÊ»'wz2zÌÈ•RiN¾\Þ\”ûKGžü|ïN îÜ)>V¡ÿ×SU-.ï¨Û;»j¯¹ÐTŸ£·óÁ÷BÑâAüÙÊÇço‚WØIpÐiß ºè[Ö7_‡<}z>/Eø¿G6ÂÆó'Ÿ¢ÙÍ',bõç[QqþÕYôgåøè¯ú-Ð÷ð{÷ï4Þþyÿ~u&6ëñÊý·õã³ûË™¹·ž7ÛDi¥ú \¾Ý}ð¢üaíÁÁëg·ôjÞë?¼…YùÇ“Ò§Æ[Çû«ÔÂ÷‹|>üß_—¿-=|tç`ñáFíxÿáî«[Ïž=“üѽ•çGË{m<¿³úh÷ë°úÎgó—–J'mt><Þ<[Ûz\«Þ+?îœÕ¢'Ë›+ËO +¿ýdga.÷äàôä¬ûøá¤Àkï…ÊÁÛ£Âë£×‡…O·kÇÅÛœ|*FöO‹ÏϼNñcqe¶xÖÙ¿›™+å7îðR­=*íôzÏJ‡{+¯Ê·ÞôÊÁæF·ül3Ÿ/x}\(Ÿýµ¾SYžÔ¨Ã;‹•—ïs…JãÎéÛêíןºÕËÇQu£~ò²º·Ùë®äî/>\‘KáÇ•ÕÅ xÊʇ¹ýõ•Ïw;O½èyéiy«sòôÍqåÑÓÓ;Í£Õ{/ž?Z-,.~Z}ùn¿´ú)Zé<[ì³gê³wŸí¼8þðìøUýÑó…ÍwÝçÿ÷ñÕsH#°—ÞÚBØy»öp—3sk;· wÖŽ_½û´¾èç^­?jKë/^6Øú§âƒÜÆÝàèx£ *ï6^ËÙÓ?Þ—7óëÕ›åÛ|7Ó¿·ù¹rr{‹ý?y﹞¼²$ +_÷` ˜ + 2&'c 8€‰“ÓÞ³æÇ\û©ne! Þß|Ï9³æõ©©ê®®®Ô]]㮥V¾ýÜ×:»ö®nþíëáÂòºþqØL¶úÈÍ8ŸþñtKÿ†ž^ÂþÛ§ùÃs¥áÞ<7Šþ§^£ýè\5Íןîf¸yoÖ¢ŽÇæÏnÔ{võ_,Ï™»èó{#UÞ4cÓ—`;A¾Ü“÷/£›üï«3Ó˜l¯éŸÑóë{Øvýº%óoLéë÷íÑ툽ýLïû-÷·5ÔÊ}=÷Z_TøÝ܌ޣãêí{Ó]¾ÏóÎê9Úº>îèŸöÇ ÝK~:}ógÖ6yÿüì­’_æ/ßÉö{ˆö¾žëêײ9 µ]ÆÒ~4¿Ú“ë¹ã{~ÎwÊ2Ôé¿ÝßÎ@yÿ]ÓïöǮߵ–{ŸÝÛÔËk÷=Ukt÷åZ½{ªÕz/ƒ—Zoãê=õû“­ßØ’ýå]¹;`ÝóßÕO91ÜÌÓ—\:4Ýþ®º³x¾žµöäp~ý6OÎSñÆ|Þ¦ +•…ݱ/òvòsÑ÷‰¥'äÛ-+%úu9î%ã+Šx´¬jÎ÷jé6WL¶uø;\¿–»×3ínR¾¯—MÇ*n¶Qä’‚s«HÈá+”{ýÝ ï÷³Ýd5¦å®þ‘pƒA‘:Û“Åt¶Ýùàh_w¶ëÏ6ÂABC­Ií‚´ñdÛŸÿ3UFÄ5A‹qæh?F›áz/¦|Žôd·é®¤ñ _è‚Áp±=}ëÏúkÝ_.ø+XmúhÃ`q”E/Ä"6¦|(H8Ú/ú†¦â¦;äâVí·[þÞÌãØd§×`2ÆŽ|kú¤Ö†˜—:‰y©S˜—R2¯> PJæ%$Wùjýäî¥Nâ^JνÔ1ІÁžÀ½äiÜKjp/‹êqt†Ù—<‰}É“Ø—<…}É“Ø—<…}I%ûêóyȾ¡#ìKžÂ¾äIìKÊÙW-`-mì ìKœÆ¾„ûâë…ã2Ì»ÄI¼KœÄ»Ä)¼KœÄ»Ä)¼K(yWŸˆCÞeÈcNà]â$Þ%ä¼{´a°ÞÕ±£úâYµc\GŸÆá´‡³7}Gf˜Åi9ÓòûKåÅô +]'ÙZÒÛ* +Ü>Þ|¸ã¯ {¬ûæ©Ð7ÞLjSœ£? s¥`ö8ìÙI×·µ2Ï¥ŸýçUuÐ|¡\Á ½w¹ß¯LàÝëIÏ—Õ-ø»±;ÉXö…\ÀúšùÙ_M¶Üˆ¨ôTYC‘Qè¥þñ™nf}/ÚH¥í¢_©ø´ð•Šn}swÎcÛÅÁÈdÃÄ*|w÷¹Ñ×kí¼EG™ñ.;½“2r|ßäúduŠßÚ_Y8Ðåm¶ýÓ^§›5ÚD0g¼á_kºáµ,Ø>¼u{“-òëp÷óý`Ý‘:±xÚF߸3žo´{ð\È÷®äKÅ2ŽõûÝ)ú4qçGÕ1‹™$üÝÐfbýŽNÚ•Aff»µ{7îÏ}ºÚ¸Y£þ;S±Ê˜6Ù˜ØËW*½èÛçîÄ}Ìš&&²Œ()@ìç*Û [È> ½ÒÄ :Éú»0¿ä}Âáõ 3³PmÎŽ Uµ¥²å¸å50/åÆ’ e—mwüeð¥z–/ 6¹°Á€’ŒË‚¦äƒyeê D§dfêd¼k¾ ªùe¹Ïù»ñ›‚Ùý¾AXô¢¡à&&Ñ».ðgw²ç>Å_ówló¬'ÿÍ£ZTX÷p'“y•»ýIpp^ñØà÷¡gRè0À{Ì9,Ð(S:ð%v€t$žP£a? š3¹&5Úk +0ïÌo?ÝÌýºs#ÿÝ:ßíÚ­¦÷\—rdº9îïÒ5kÿ>ݤh˜ýtè«eß Þóoß·{D,×ÊØ´=…g¾M‰Ÿ°Ö27j䘞¶ët'-±Wv†d“-ß!Ý/™À[¥ÚlÆÏèýë-ž¡pp²a`ò\wfi+I)¸”î<؉E L¶˜;±wr32CT‚QøS$&,œ$Ó[¦bÍÝuºYÙíI©˜I Ýù‰ۘѳ&ȱµo’VÒiÿ7+gvÌ<½ç{DÜ•n6bXKÄ„Ž°äˆQ-¦;s[Üû]@+õΗ+ÿ†ºìÚg'4ÜXÏïÒíÌ}!;ª„ ò®7(dóž*sPÌ̘ī›ÙUï™RÓ’PôÁdƒ^ sÅ©m¨êq¼ÇHŒ¢¯ËÃÞ*Ûõá“gW\]÷"w,ð  H¬¼]Ž²“í„AÒÒûQ£œ–rIUl½™ÃJ~r"öºw'*ïéÏ'È1ÞÚª®â®3˜§ß•œ’pX#{‰I7ï—?©—f¹[ȇëo&[ÜMä?r¬òžåU¸a¢o0çûH¾?]ßðð™uYÁ|óa¯‚xLØÓO³•KÚ®Þ-ø³BOc—/}×j,L6‰çßwRÍÐÍc¶ºn’2•áºÉÒö¶L< +§yŒ‡2w1„%ì)Þr³ÞOešFòk(Ñâ2ïiö@Åú+,ì7«;™`hü–Û‡žÔhhfÔ¤™»»+y ñ|Љߢ±ü¸lóæ}Ê–™Uš«q}†Â·W õÒó‡j¥û'²×~NÓ7fkžrZÛY²˜­¦Ð§$°8™ †½è-éqdo…gI“Mþ¶%~†¾fPÌââ¯L£JÕÑÛþµ€ ‹žeXP鸷 +zsOTç}•GMâ “Qsô ' Ê F" Â'‘:Ÿ~ÃMPoj¸K¸0€“f»‚†Éu +Q§‰žÅ00 ¡$ê²Rü•£‚Øÿ&†ÞâaÜŠ¤d£Î±T\üÄê ˜ž–¸d,âä%u§ÖðD(¦ÁdSLûD,6¦“œ <*ñ+%`.Š}0Ùäs™Tc9Ý)a»Œ? £b‘Š_YSe lW…Q‰¬¢äYv,šÄJ°#Å+‡'GB3jü¨FTÅJ5Ù&Ãh•ƒ¸•÷&+þ¿U åæE\wŽ‘ÍjRäZÜQ"­²TbBk‚ð`™”KÓƒ5JjItù“fÑQ€T€xhÂÒ< ñ„°‹ pŸ˜0é|ÄŸXò # 1/¾ð_šÓ{‘ô"ý4ú¹³òn¥PéæËÝ¢"É©ÉV´;@“ ƒ‘Ø&ûº-^èìš®TŒ¨™Ýù—·¯Ê¼V‰9!± +”^’´p2r XóT°[âš‘pXî2ŒL?燦7Š½W izj­`?@> 7vL¶ð²B„ò^Ï(»»]¤X2aúiÑxN7våyÞ]õ;äog…TĶâŠ'§è|±ÊÍuú1›©!†³®æ2€Š¬0ùH%ÆF(Ö~J‡>+O¹ÊÆõ­ ,}•Ów¯u°“¹ž=Û¦ÅíãpÙ~U&jûÓ'ø>}ßAßs@Öï; `¡Ðó×ð.7ªoþIíÌæü:ËÚÛ4uý¡ï iºB&›Ô9 õ°ßÒ…Üïk';ùeü±ÑÜöö­‹š$¿C¡§ÁuÎ+ÚGœÛ˜}‰ €“9`ÿ7yŒKˆ$s?^ç-‹ N'¿ÁP{´gÇîVÖ?I&¢Ü\Éé$óE¦Àö¾‚胓ÎA­„ÉHi +TYžç˜SÒ-§â&Éò¹¸j¥x¢ý/·þ%L‡wYÐÀ]øî$#¹b+4w˜Aß]fzïÓ¾6×lEZÚ™)•0‹/„@ÌgR"ˆÚïb´<>Ü™µ”¤Kwå«»o_ºkA3”ŠÝµ®Á}›å°Óâàæ%±¡RÏæž< Çž"–á ÇnÇÛ=žäH„*`iwDs›ï¬È^*öl÷I‚dTpvík¿éæs·¢3¢ð™¢¡7%¯ • “-2+,GZC +-›üê•3¸ziiDQý“¾ÉõÃÆÑÕ+éZ½?ÀÉgm+ä‚ï”;ÙúrB4àåKÀV%«7SíŒ1=a^’LeŸó= ¼ø̳ ¢šÌua‘åBƒÀ|ÞÕz9Éùßb)žžö¡Ã&‘0\„÷'ý·X4¹ûôS3µ>ä Ë6;IÜoSÑ‚­ËÜ2oÅìCöåV°N¿„â“þG®Üªe¯Ôî`âÛ3(¢^pTn«‘ÒgaÇÁÜ$ú€Ñî˜Ø5=ÊýX¾¡èÊ—shâAa« —ˆé>âN«­ƒ¸;žïùßWrË›íY¸ycm:–›ŒÏý™oÿîú8yHÏâ.ß˸&[ôÞM¤›Í³ŒYnËØ*¥âØ¢Ê +aþ맃”,…lú LÄTù äXÎÓ +1C¶·‘i:ßL‡"O?‘ÀwfƒÌšM"è"WÉé]xš‚y^XóåvšŠ'W¯(åbAܨ€f¦ö]%h]?—Ÿ»¡‘rfž ŠÃ÷‰°LËà~ä—ÒuǤ–HVpö¬_Ú.Â{D%Ã懂³UÛ¥ïZä@‚4q÷0È ætÏzæ)ÿ8ýå/+„—ßã d¥ +»¬Àu?,s£He–ë¹&¶Hõ{/¤g‹kUð Ì>ÚÊ‹>dýŸ¹»»¸Ÿ5Õ¨zÃ[È“#G!š~ºæ'ôÕ’¿ég…t2ÃØVÁ\¹;³ÈŸYÍ ´ùzB²Ô—»+_gAZÊPܳ¯µ +)b×9_ô +f—‡öý&BÁÊ¡¿aÞ†%`i—ÃÉ:—¡f¨Íï]¥lòÝ7Ž±‚£9n2w„A‚úò³Ìïo-•+ê»\Åá( mÐ2»o”žuçØ4ÊïnÊfseÖø¡ñZU³`93vc ¾ó¤ë®hÈþœ”ŠãÊ~G”?ŠqÅzàÆJ¿}h÷ö…ï65GxIw™tØSFo& + ¢Ey~r¸e‘ÆÎôÓw¥.Ú n‰‚Õ“d;U¿Î÷[ÃX÷lþYNòí·ñ3«ù¤#`3Ï¿,ß5«…Ol±1ò‘w±e¾Ï8ƒ™{§sZ”ëîÃHw,Åû‚½h+XßóÞVøLwÚ+™}aÁ1ë»îmâ37t€Ð‹“ʱp\‰X/:Mä¾&-‹„ÑÄ…‹Tˆÿ9)ï²€®gÇ©7Wže_ÓËôÈ!; Åi§L8]{÷,%ã—żttÁžïï¯'H#ó½f>(îÕË0¿‡ÁP) °ì]²!TxI½ÖÝ7*û(è_Ozqk®¾_Z Ÿ¹ŠyDH:ÇÁî´cåÇÒ}{îÁX†Qüú."V㌲ +ñƒŒ' øôJFÊD-_†Ž#wþÞUçöàÀÒûÉ{¾YY#Ïùkäçu=+«ÔfÏ@e¹(•eïêq…’I¶’4”P(BJ¯¾¶j¨]B%Y-“ÿÎjÃÍhÈ­“]B’WùZã +•øEñ]uöö烫@¤w= Ÿ<*o÷ ‚*û"°ìí! +°Ò{Ùß°÷‹ø_Ø3ÒåWãàNp—$6U/I”·iHo]IoQ4rÍ‚ s·ŽlþÒåâÉç710%ÁƒFpüƒôf»­KnYMjãV—ЧµxÎb)^Cy5Yàk2ÑUìÆ®ŠQ;¼ú™O}½Ùp8XŽF¾ývK-ƒ¾êÜüÒŸûø[1—»±Þ¥.’–âlµþІ4;ž} ßÕë°díî ÿŸŽÆëcíÓyõ/JÿÂŒ§¾évk?×;}¼l¶>¶^«ÓÈ=;¸}w±XŠœtxt7â¯ÝêP˜m(=ð¬Þd¸@—„ tyM§Óÿµ’v>@ –«ÁþHƒí1ý¥ö\@tã«~ö :{Ѭ..®¥ä–Ù FËŸB”`¡¥Ör£l)ECå}²‡ °b§_ò¡ˆy;‰DU6wÃÍPÞŒìã;àuív¸r«nEñv‹áOWvcœZ£>¯´†:.Þé«d´Øù¶ûžò +Me“Álµ-¥7÷j4¥‚jN–óîfºEÂ’-vg¸ùF¼Å×@ëÝre¸íl8RÞú«-⥽6Ð|#«2q¬µÐkme½V×Kø–µ^w£Çܨº%„ƒäz8ͦèN°Éb´<†y#‰ŽÒäóx(Õ´"Ün0!BR‘S뢴Þd7ï®”ÒæˆâÁ8à׻ɎWyF~Áª6QMjs‹ª]i#SCªSßß |Èr™uW¾l§C-Ôl7™ ·Lª*yh³í÷zÂm³š ù[êb–mÖ ù¾m7>6ÆÍÏq:@ŽšÂAMV\ýÿ­ÆËÍë·Zn©}d õgŸ`öØ„*½¶¼æ^-wz%´E¯ õ­ñŽÀ-»¤´™Dh*±ÕìS¡]«Ê¬‡{0ÜN~Ç(¹Zm|øL=6@ÆKÉmíÚÍþm¬ÙxxD¢³ÀDiåÈ G ¿W½®rÐé›#â~.)û¡T%#4Âå äZ”<Òø¨6ZÑDB;Q éôTJ3>Jˆ¦êjA“[KGžB£ÜŽínÆ5_­Ú¨Q3µÐÎdh‹–åLRÀÎÀÐ2nÑ­±íy†«vÄsA±¯+zÊòû=Ó|ciæ‘«T?ʳÙËÍÕùQ0êY-Wè7Ý$ĸÚz¾ +ÿK\$·ü÷bÛE­ˆ–ÚOï—‹e¼Y·âïï&‹6ò¿¬Á) æ’º‹¤‡å”^òdIó)É]z t""\û$Ý[þËÀ((iŒ\ˆ¦yP˜9†I2Ý"ª# †ö^c€ª™»Ñç(Ÿá6vÝÅ@(Cr¶ìr1ÀVEyX'£‰^„‡)ŽU'zW÷BÓjÊG˜ ,ëî†Íñ~Þ[t'³Ãà¬ügÆ.uVÿ-‹’­ŒR.6ü÷r3­ + +B£§GK✗Qðª€Ã‚ÆD _÷P"ÌPñC€’í®Øˆ¾oTP}‘°jˉayÕЇñ";¥ñ{ÝÉ+šb‡Œ—._µÅõ!f“¾Î ¡«¯Ãªó 1ì5›‹õCqùÐKÖ'á ‰SUrLɨÉ7ýÙÆÂJ>ÝGõQF×9ç›> P©O-k¬1€Z‹%’ ,<í¢QFVJÜý^wWíþ3Üè™ãra§u‘µ}:b·Ê7uMWYÓŒÄxÖ¿_‡PÂÏq•§0pŽ2¬žš“.cµ¡ÔrPÖÞÕÉð?in&sÄe¯ÓÞàJ~b£Mÿ<µŠùæ†[Â]¹±¨/¦ŠR&:šcàà+0G®vãágQ_mùR¥ÿW[¶^wq%5oñå€Ý-zœ,{Ã+@'Ôçðá:w; \ìŸåþjý +8hÈjŒš÷Ó,о”‘ç + ?]Ó^í–Dx5Á›XÝ«Y÷T ¤»b ü!îÜîûcÔ½ò"‡½i ‹m»‡Þ-G"úÉöj¿˜.€Z>ÃÒßLVçš™c`Í_6u£»š?“ˆ½Õ$á3é +Òw/ä:ã4»]näÊ|=”üÔ× Û˜c¨o¦ë—ԃ̎OóHH‘oÏ…¶”Ö8¡Ð‚5ײ‚o(tÝÊ=¨j5^þ»4ˆêN£Ù‚e9Ä%Ë¢Bà%{ˆB¹½,=_¡¶…QÖºXuüžKìÐIŽ¡3:‘N~1à†Žv ‡$ÙÉ€h\ ítþ O¶ô‰êHîdð;ä¾}éù ¿ûÞã¾ïhô‰ +ÄëQZxQ>á1ú¶¹ËäF‘â´dyJts#¢•ÞRîÄ36;éRÂìõÛŸL6³;9›ï³g~'éL˜3ïÌüßK‚Ïòˆo‰Rg˜5Ù6›d¢—ö¬*©»È6.Å_}…å{à%¿ù|'rï…V³H'ú¤+ZpXhkÝõºž_•Ñ.; ]XÑ Ye£êv³‰m›€ÄS&ü; ±gÛpa÷Bµ—ÓbpCbÌ"ØͱìðÞ,šoðÀñ¼ä¦>ÿ6\ „×±_øZœÁ¯[99ÒÏÍ×ýg]i1ÔFËmŸ*Ò¶õ¡j²)ЊH™É]ѦŽ4nvl¶¤m£Ž´F~®©¨KDj²‰h·vϽWipìèÚ[yu¤ç§;Ný¨ôºÐ˜l–çÕ¬ª6V¢¹Ki e,ÖÅÆ™Ð@Új…ÑCCDŠï ÐÍñ²Òiª"-–¨¦&y©÷dó#^ìååsú +œü¹OVZçá¬:ZôÇŒtÒÀò€•ªD†CZ³ÛHƒÁyg%"9™EÛÙ|M ¤©.*XIU¤íÛï'-¤%“ÍJ;bŸêc›¿¶–ñðIi=ëL®­óªRwlMŠHa^ä¬äº}O=ª# ´ZD!B<¨"½.ü„¬OsêQ ©ÉF¾¾ +ce,¶éâ>«…´K=ß/êH‹DÚ>t„Z©É¦$ðÎâ¹å¶¼o Ž¼ùÏiA†ô=NTC^!u)šlÛëÒpÉ|¼;ªH_ì‹M¤qý»‡‘šl‡cý(/w«¸:Ò*m{.¤â u¤«ÊµRÉíK§x½Ó ðÇ#ñz{—SGzŸÌwÚõ¯/U¤_Ó2FŠôËáX[ÁAAég˜øÚμêH~WóÇH˜V ,m§ì]hxck¸ÍH[ÏD~2¯¨" ?x¯Í©//È1@]+;êpH{´S±hœïÕ® #¥ìIGI>Ò*ñ튦Rˆ° ´öwÍ ýÄF‰t»¼IpHw·nÅHÍŸÝ'‹4Ó"ËrAèÙlŸ“fÀh}‡R©ìÅc¤ÙÝ(,]3,Ò[òΫ„žUàÕ4´5š½ÃH­u³éö)¡@ºÙ¤‡Kž+fÒmð7ÊišÛhݧ ïõrøÝ4qöðÛaä*=ß´—QÍ·­:9Ñz;&J߶½øö@òƒèÍÝhüæàÆåûõ; )Þ2a²ÓäÞn§áƒUÉ,Æ×ojïY¡X+G?5߆)×Ó·öÛq·m(vø>Mݼ÷5ßVÝ‹[Jûmïqß*(ÆX¯û½’Ưå›Rüy˾Ù×ÅoŸÝÞ8‘×ÑŠ=÷*…Ú{VÊåÜÓæÛW[ÏoÖ~û™‹&xŠ©¼ÿ¶µCVÍ·¿»Úª¤ùvúBeêâۊͧ…d[ë×Ð¥z,¨ù¶B’oÚ³õ½FUë×7æ›ò§Kóm>}ßj¾­P·×¤6ÅÒfÊêŒj¼ –ˆ|ÂÅ9êˆ)Þº›õí-÷6ë‹+We©ù]t¥Å÷mÀó$÷À²ÄÀþ‘åäÏ·m†Þ®8w´Ð ²¢'³Ü>°ŸdrŒÚY‘‡™5{+‘x˜¿MôLJžÌžÜSýyÅþ›à½±2‚Ã×}Êð’osMÙ5/'ÏÁÏ‘ÙcI m‡Væxm OG²"ü÷á…üØ·=ˆÖëÀ7Š ø,þI¢çétßì¿}^™¸Ý\›l"Zìéh e,ÈÏùPGh½k"%òK*ì1éX±§£‰©¼¾Òi >²mø!Ó ÜÜXD¤ØúÒ +ò"ë_iq&CêlaïUŠVFॉ[ÿHÁë¿-"…±ÈÆú¥‰¼ h#EÖ¿&R“ Ùÿcõ±ÆÍ>=¤U»&RlSˆHÑÚ—¡E6ES6«Ãâ&™}Ì´kïç éÚ×hÉXÖíüÛãÑvÁ1Çwœ´ÈÀ˜?Óœ´swŒèè×yÖ™WŸÝ¬9>“M!þ£9ƒüü5®ÏŸEŸ‹ã1µ"ãõY‡XÆço‰ù“õ, KéÊü4A™Œ°;O¬˜÷$ÎùJ¦‘YÎ*~®O§¼*ÝÁ¸yç8ùbÊS™÷HEŸî&mbÉEóPô´órÑCkŠÓ1ÖÍ–7R +]–ð†=ê´k£»uykôÇ“÷°8Ú‘ uÚµ¼fM±­µ*qvšjÉd;e~‹ˆ&¥Ó­'µµ?(Êå´ +±î—¢âÕéÒ©+Ÿ¸þ1é KÚ?u&›±/_×°8fóËfpaÓ5,N˜¿bm.‚b9ù`…~Áª4L®PNí¿ÃËké;1§ RjÕ]L±Îæ)&—h'ök%Ã|‡6Žë.¹=Ó:–í¿@JjΠ–A«ª ©ÌÛØ|DŽI lõU¹»½þ³U™y[[Os”Ùý؃™,¡-“ªH䉟NÖõQçC°-•ÔInµ|4Œ n–BAu½Ÿ¦äVßÅSt„ãä:¢°-ϣɑe/éë#»5TÔO …®?NðÉÙMIù!#álõµíù$møTF<Ÿ?FP,A³Ž £*>4HYßì0ÙNé”åL —–hÉ}ílújÙ¨(‹À¨¿¯=>»’›Œ]f+g(-y1Ö÷[F›z¯ÁT¹™ÿÚEÉ ; §êøhøäÀûcÚ(r;VzÄ2¾Ä5Ýì%±N\â2b Kÿ‚¶F¦~ù¯ ±È—¸ª×}<º\{m,B¢K¨(C²ÊÞè…d’yEnÁk8ÅÇC²04ÉBâfÿä0IK¸7Þ¼$eW*{¹Z>#¼|°¦ð€ðI•ƒÙ2>W +ª÷1Ùô¢tó +ÚÜm]÷Ad9ëSˆx ¢cˆ“%rSiXÉLéÔ^iJh9™lÀ˜FT¾SšÒ§ÐŽµÇplúý1_ oŸCvGH|±“áÂ>o½DëNý¡çó;Qù úåŒhôêN©÷´d²ép:ðŽ\é#nŸmAÓ‘97F˜Î‘ ½I¡ê´lY ŽBÑÓCR[–‹DÕ¡Í*»ôü<3 š«NÂÉYèï´˜÷á˜ßjÚN¾+jx €iÅ[Õ¢­¬g¡oEÀNX|êþ,“íâM + #åt"¥ÄüŒ®eZL)ѶSçDÛN•x$šj„$ „I­/•hÏ¢Dã½×S,x%°ãÍdp ;_¢ «²ø²ü‰³¦&ÑN^ûçt‰v»`á\.Ñ”Ë÷^1Ý OÆ!ìâøM65k@¦„^–z´tëPÝF xžäç-Áç9ˆ£g—nÀòúed_k‹!ƒ–YÖùãNm1³øÓÄ,{1Ÿ$dM6M1{æéùb~Á¾´Ì?Ç@YSjÒ’0Çá3í5¡à8 À¹ü†¢áP+vÞÑoº /«ì&``«fu!ŒÏ¬ ¹6„§ÞKì{ “v¯Ÿ¶{|o¯F£Y’Ø…¦6|=ɾ×Á"`—Û÷Ÿk5]xªC³vzHëP‹!8—Ø÷(‚.<_‹a8*ö½Á{Õ€cTêëB,a>×kC™.ì(÷‰1xú'Ç‘üQ=‡ÅéJÙá)ñ†¦-ÐÙèL‰””»ooo—Īq~véê–ôKem럵֡˜!s—ŸI„EË#‚¹ôZç:»§Y ç‹_'reà8¢KšÏö]^JÅ”õyÔRÖç7äWPLTæm yòÙ‡asJëW%8`4Òû‘“kûÓ¦N²Ç—SØ8›N1—Œ]å¹¢‚ŽwIþ_ŽQä{|zÀôÏaŽõËœ3<>Eäêp½'ºÿô.id>‰\éuI-e夤9C²&¯8 +"ží9-jwÒQöü˜êaÓÃÆZAc|3ØÅñª–×¢?4“Ád7ùIÈSƒ˜“aÎ/³ÉnZÛ6r/éX²›¶ª¿á ‘–yÝà 2×ô˜’Wd3È2…“Á"wlzÔúXæ£1™Õ-œäôâU©åööhí#”'¥˜âÜ·{ƒY‡Ç}{ –Ú^¶`†ÎŽ§á•"L¿}V=4{ÆŽUQÓìÒÌ“XJÊ<°£f—á<¾ý±3ð'äñõŽå¿XdA+íÔ4í$}Súð ¼=1¶hu*¥–¢©=GÏÀ>E0(Ê#˜ªóg4/¼9–£Ç òÓéØŸeˆnÄ­Ì”S€çxã“X/¤ØÑ4Qãƒ%ÚY“~©Ì[Ë+?èTR¬WÉä2fËÄ|Ý,a©?©Ç-õóå 4L¯åYÄ7Õ&ÑŸoÝÕ]2àì ßgï§dØÙÓ <£xˆcW£À< ·jK•;k†:Äqý›4êË¥¸2˜tCÒ(+MÉ;`{½9Ó‘4g[žx@úWž˜Ü+;2º=8ÊïÈí \²3¢ÅÉ¿åÓÂ;*®k)I;:ÚQ;Um~†=V6ºâÅõ®iý–O ïh§Ù)OM§ñ‘HƒIáJh³À‰Y—dùÈÐ)ê”ð‡N—ä‹ù¸Ó¡SÀh—ôO§OŠÓë’òîŸ"þ˦$ýED¦‚#2žRKØj "ÃíñIϱF}7—Dd$þ~åòˆ pèœî8! 휈ÌA¶à唆¦ˆÈhe¤ËÏ œ‘QóW ¤çKÎA)z°àŽs²±ã{¨T!7–ïDcYûܸc™¾}v[ 0ƒ~NâêîoN2 y‰ÖíÔ¡EGÎôIC;ó»T¿ 2íèÒ écGT³åÕ|höð„*Ϋ3x^O7¯N’:ª“)|<z§{I•dõJlKÝ£zµÃ»HÑ3ƒŠŽÏy×:˜ô7ùpË_œ©Óχ;ýþ±sòáÔNA×æwAžÅ ùpz'Tÿ.E­/\òáTnÕLâ:?NvŠÿý¯óá”÷Ž²qwô–€?ɇ“íX8jy^>œÒÓÚÖA™l—gÖ#÷gg"”üL¤–miäLäËÒЙÈck;¥/5²ø€ÄåÙèŽçØì„c$D +ka8Éup’Aç üq‰†’ë´b‡ç%µl4N<Û×®ƒÏöõ‘‰P,BÍhÏÛË%ËPL>’D.]†L÷Z59¦¹ [+£ËPÇGô>Í_Te´¿¹ Ã9mùhä#œ?I„Ìùi±£p´¯Ö¸MKë˜õá•ÀGoC“G¥·5:=‡1,”|¦±ÓQ‡ZÈH%¯Ï= "³ÖÅÂge¤v¯;’H f¤v¯{FBGRýþ$#õsý7©Î_d¤¢|±Ë3R”¿ÈHEpŒ]­p‰ÕÎõá¢}iêɇŒœ^nöåËðíâe¨H…S—c +‡Ïóëžèù‹T8ÕyùóT¸óã–rŠéûî'ø•¤ÂIï ÂÉpÿ‘T8•¨Â N=>fÐ?ké†RQ ½?Y/ñi¬yVÕÈðr{,ë;â=è…@ E 0í›íN´a.>usA’Þ2¸…£w;/ˆr5•'b9žÜ¬Ì«ûÔ¼G©ø訊z×/ªçQÃÇÍ.q™|g/ÝNÎ2Øç kª]h&kù”gÉ_hÞ†Z¸lxî=¿I¥KL³’ÍøúÙlƇŠ4V¼:²Íä]æ"Nò\,µ¬3ä%q9JÚygáz´&e/y²[¬ÿx/ >KÇ.[ܼÔÊ° ´Þô’Ý~M¤D¡™ÑË°³=Nî»ZH¿u½ Re.VÔ½•Dá”Én·qU¨L¨H»vè%»‘>Ry=¾Ø\+ÃŽ±XÖÌþS+ÙíC/ël®Ÿa·l65‘ÞT‡ãÒ¡~=¾ú›6ÒüÃGQ“¼Öëh!­Ë3ìð¬Â‚åF?q|5Ø.¦ÖŽ*ÈZ>«† œ5¶§:«ŒŠ!úÀ{IÉÂ~¦T¨z±cGnå¬{ÁŽE¶GT»YþMjÏñªÊ¨‰v«µ.IöÅt:uìpê±s¬÷ú—•äÔÊŽ¨Ü©b º¤WIî¤(ÜGÎðÉ#ÙøNÈÎõ+"§{®Ï8?)"§9>µºoÇŠßñZ†‰~¬Îˆâ.µ êÇ_/Å¡v!"Íã®F ÐéGzÏɦ;/sj6šÀ×âü»l:ƒ÷Ã\˜M§T®—˳éÔréÎÍ|ÔΦS‹Å«Ÿ´¿$›NFnͪÞ?vQ6¨#7„œ‘Mw¦F>1›NmŸFЕ–M§–K'õ÷ÿ&›N-—ÎàÙž²éÔbí|ö¿Ë¦S›]éýÓl:5ãFzvôo²éÔré4n›¿ ›î°Kc‹¶¥tn6šqj²ýu6Úü©œ†º0›N êhMá³²é´l˿ͦ3N±K²é ”{â”MwÅNΦÓͱú³l:õÜê¿Î¦SXþ8›Nm·Dqþ²éÔăÜ{ý‹lº#;#”Mw\¿üE61Dkü¯²éŽerýM6Z.f=¾Ë@¯èÊê‹tu“v¯Ã"•ÊÚŸÖG»Œø¥V-›óëÕti‡vyþº^¶uaŒN;·ý$:‰T’„D9™G ƒ, KPÐÈzÖꔢKFEêrò©³º„(:©ì²^—ÔRhJ:é”]Ö™H‹É=¢[²²UxD´5²:RØ\?2'TËÒ+twq™;É=WMòsÊÜiV—»3”«d°ÌV&—±D:C$ôÏ'‹…î.›«bke¤ÊŒn”ÊP™»£ED˜‹ËÜq6Œ~¡»‹Ëܱ¹oG +ÝÛ  Žž3| +€;Ñ­°˾?É|¼|+UÔ¹œ›}ƒp ÕvUƒ"9ÙÕø‹ˆ¡d²«f +ÏeÇÀ %ÖjÕ€P&Ö6‡‰µÅßÝ +ˆ€ýI!cÌcÐ[#ÂLª»4IÙT#åÑz¯zg¨]‡[º(ïðµ®'®u†z¸þIfŠpóñé–Ä!¨êþ¯*‹šö±áµÿ|R¡j­Ý7Txíbs‚…¢wªó8pK çÒjÕ,~ªÝpxÚYÕg‰ 'íð:Ý*ËðÅ@"ƒ¡üÅîøüJ­wg,C•ÃçÖ­>­Â^æãËg4®ÂÝŸTÊ;šOd¬RÞ¥ùDB¥¼Ë—¡N…;y^’‘üs*ÜéÕ{E5îN¯pgôVs”ýtybíçZ4s´¼Wɵ츙c2bè°µéÎK¬Uf>/¡üÂ{ÕtèÓî¹ÂpΛwD 8’ÏyOóÅŽÂÑÎ…U$1™Ž]3Ëå’ß®–Ä$ÝEÂs° £Ž#a ®Å×}3˜Æd$‰Éžh+=Q‰3’Æ$ä‘Ø©J˜Í4¦¨ÃP†º®Û.¬Ê¨ÃȪ4’ÄdO,”Æ÷¹~åÛIILZ'ˆPíDM{šaøÆåð^p+¿Â0T¹,ñ­ÅÖ€ø‹׬OûV1ä¿œZ‘î¤r˜”ÚöXëﮦjáÝ·?Êqmi^Muº ÓÛžTîñH¥<ÿ™9®’õ)Ã0õ|<Ǻd8ëY/Ç•‹¡‰¨†Ôññ¦Êx+%š¹)™Íø+¯9Ë°Ò0Ùr·îF3±üv3ð©XÃÙ}…·Ï€²'¯s¬âÁ¡]Iì˜û$KÂ{¸}’"•åÙl[ËK«& UÉë°E³-|8§vÞfÿ%å2Y‘†G¸´rÿ‹5ôäüÒJÂûÔD +c¹.¬hͱEËû³&R{¹çûѪÃæ‘ +™\"kAJ‚Tžš¶µ‡nÄ:‚´"ËÑé¸ý˜©!5Ù•5çdix]e¼wñšRÆb <ä¾Å¬2#®£ƒ´he´‘ë–w5¤¸î[¸$K­T"}Ò«#x÷¢4Ÿ.ÈNvZ+zï>qI˜{WÂ/Ÿ}vt–Ðl'ͯ$¾]Ñ´ˆîèr—Õ$Œ¹PÂf í‘+ϬNœXPtMQƒN¼$«bvüà¤Ý °ÊĦ£픤ãUš]Bœ¬Ý©¬‘Ô¦ã‰MÛ¿ªÌ‚ºG*³$åôViNÝAe@Ð8åš^ÖâæÉ ²ÒŽœÐd©d2ÆOŠM¯SÇ'D­QÞÝÉU5ºtpJK¹^ ý¤SZ&›^§´ãħu ¤¥ö9-®?gcâ*ÿ™tÉ7¯ó‡5SÎs%vÙÀÕ×Gb°íü_]ÞØòšÝph I7¼lt—§¿ä&Z1'ñàʸ³’ÝÔ·¬Oº×º?3²,¿Ee^z ­Ú]qšùbǼ–ûât õø˜üЈÊk·pR½m Sø3¹[PJ˜sw½Ù„;­uŒw¬Ž—¯“õLç?²Ãõø4£*õÁ‚ixsº=¢QûÉžxÓÞ<-‘ì žÅeÙô3™NʱŠœtϤKŠü—AQ/v|Ô—uIrTŸÛ­–¬ÚS§V©œÒ{®tR•4>2âÎû xòYY€]:È”îW²ý9ÕåEùŒWd»¤(Ÿd,ÿÁ¢|Q…ÿHQ¾cÙþ¦(›3¢o \^”ÏdS± +ÿ¼(ßa}äÿDQ>íúÈY”ÏPýÊKŠòI£ +¨SŒf§8K Ö®êwùÝP•¿¸Ê`]?CwC]\×O2´?¸J«®ßiç”έë§_Õכּ¡TêúéG…Ô=ñÓëú©3ŸîÝPgÔõ;ÎÉQ×Oÿdˆ¹º°®ß±L®? +èêVõ3ÙN +èjÖõÓš"vqv]?YGªúQDµ®Ÿþ€ÔN¨žS×O5QïVsã„1œ)«zôuýôoþöÄ/¬ë§«è²X‹ýA]?ý°ðI7PéÔõÓwuUOAŸQ×O-MR\z—Õãûƒœ÷“êúéCAqþ¿¨ë§¿¡b2 ç’ÄweFê¹uýTLMIU?iu₺~ŠeHÈ«úÉîì:9=…êúÍ{ý“º~úUýN¾°®ŸþkIFêEuýÄü-5^TÜsuv]?}b öêú鬵í”þ£z|.}(†ëñ)'g¸ßEuý(ªËçÔlŽƒº~:yGOÛO­ë§oÉ£þ¢®Ÿ–9ÜI±0ûû«½W +ÉÙW¤þìrxçN{f!J?iËzŸaÌŸÝ Ÿ¾S¶`8Vº¹\?×ÓÖ‡É +úýð}áÍwçÛ˜ƒÕbà;ó4}¾4î™×qsø\¿8†#ëkÚÈý^7Ÿî¦ÑYüm9¼u,ÖÐÚ¶I-˜óëíÝJ;ŠŒmôQ.;÷cËG`ù9Œrkçv&Ÿ›³ÏÝN™©Ÿõ‹;NÛSD!s—! +£~…(27O›Íwıن_Ë[K›émƒ½šiÙt'üÞW]\óio¿þÍös‰ŠÍE,lnõ¡ ‘å—ÆÞ«Hº__!‡Z(‰êIî¿I›+ªVÔˆ…‰ÃÝÝ y¡­fͱâŒFG×>¬Y^Þ›Iëbã/ÜPŸ½e60P&i…O5ï=«À:¯v¿À9‰æt¡Ù´Öáûûµ¥Üd_)– ­–•$͉ñVÉÐ@¬©Ñ!Éز{“-÷^¾ášÙ¯âÓó\§ü»x%åßb…ˆeZË¿¦è6m‘,Î^Þ>Ó%ÆÜ8/k,[>ÓAº§!”ÊØj§bUó*=_"NNß½¾vÜù—·ú®Í|(i×úõÉ`kƒ='¿s Ó+‰ýAŸÿD:pì(ZÀ× gý‚À)¯àkƒ%ŒÅZìc²>þ‡!O݇l‰pç<¶}ÁQ*—I}Üá;z甾ˆìºÂ ·ôEÕÝ7Ù„W^é«vh(¼ðK_¬²? Rò¢˜Y£ì‚—ôÙ³£‡ãÙðH_ý<œ®oH–¬)©+Yòhô‚I´œ’¥Û'ôµ.…Ýûq#ÊÖ=l“¾5öÅ@"öÊ}o‚Dü(oiNöoˈlul¿þŒÁ¢¤Ö¸QÛr‹±Z²RNoYÿM Y(çm*Æb‰¡ ï§ÌÌ÷ãJ×ú£jî®lnˆ,)l d厫Mîpf(g©Wƒœ|.Äz5!@Ìw5ë°øõþI7öÖIþ}P#ШH̽,'S_ûv*;éúIÂßjÓ<{5’¡çnC}~Â^½˜€T®žEðÕϳý+Àî}¡Úl¯$gî_9ëb‰>Ó§ "›3ðõƒØéã‰÷ó¿~'„OnCÇb'|oÞiüÂdã^å¦Ö|ºŽþéoË;W^“pZÃ5kØòžˆ6ñb•†j¾ÜŽ*; ñúNw$ƒ_>±?ôó‘õ þ´^è)|¢¤íîèY@¥7õÂ÷K+›s‡Kþþ%,µ8Už•šß ©¤Ú·»kj_н»³3þ0{ýö¤…s&›Ùš Ç9œœÞ¢W³g½zD/àkš˜=÷o%³kmÙHô5š+`Hÿ Z4~†îœˆzºØ5dO Ê’œd„%ŽŽwyQª2Aз¯ùn¡ãüÀ·£å\rà•Š¬>+¹XT(^Eå¼n,ñçÅK G»x|¦ÌÉm_‚´T÷0ƒeYku.DÁÇ)2à@§Ï}ÄÀáˆr‹"ÅÒÙvEÛÑ8ÿ4åÁOa˜OkøZöÁÞZ®w>¹È$r•ø’€&$Ö hÕµÙµÍN]1áñ÷›DBÏÍY}¬+¶}H =° „,®¢hÉ=ÀŸÐK)û=M¨ƒ-€x’À¦oŸÍ{}Îa÷ÄE74s·<=Rk-ßÂRyÚ!«®.»½sÛÖ Ï°*Ùæ7ýðÄÂÅÏÌ;ÇVQ;p}RzN l‹Üf“Xº¤F®˜÷ò·Íc€rDZ´h·²&ˆ-cÍñ ú7 2þ{ÁÌ)‘…·")ˈ"¾9²˜»ÑÉáäs2þ‰'šÄf ÿìeÍ?kmü“Ç…›¶Æãߘ»éÛ—‡;™uÆp¢K/"f±ª3ªnfïˆxà WQ{öü õp-`4 °è´äkklè™ÿtØÒ¨›‡×QpWpóÖ*ó¨^š¯±)ÜÝñÀ_QñCȬQ\P[: ê§.;×Ç–ªSé7ª ®,Å‚Èm‚±¬¸!Ä+§&ñÍ[¡ Š7@ÁníYŸ>Á¦ +•eµK߉z¿1R˜ô¢%NPL1·ÑÚරYQÒ-ܪ R¯®. ìV œïƒÀAä·œáËe½8±øš´C0/†AàÀÒY¤äö÷‰ÑsÔ¯ +ú°’p?˜Ã.lHz²6·ØN¬&¯ñ™d;Ï©/¼yšSmi;PZ=d©k_éz­e’CU,eDTˆNkI;°Æ|—~I·ü’Ùìƒâe¤_‡!é¼T é×vêV: û8$ýJ,ÂÒ}dä`ĤïÛ¡„ôëO")írõ:"ýúìˆJ¿¶}RPà>Ä¥³ô¢6¸RØàOHû]bª)é×Û§´äk¯m“v(We{mT¦E–1Eú‹F½E=ß_4ê-rvò™þ¢QoQÀr–¿hÔ[d3¹Îõz‹ˆÇÎ÷z‹\ öLѨ·hºÈ_4ê-šl—ø‹F½EÀr¿hÔ[„Uy¿hÔ[Ä7í/ʽEtoÄ0ãæ"j;Od]pbÌRvåt¯+NÌÉ|£—5âêÍç½õ ³ÿ _C,Ž°‰ï†’‰£F€[•È.Xs´ ¦¼øî/¤PÞaɽpñ±a-gPߪgm@ç|*ÉËž!A"̯"½Ü*‚ËËÊ,¼ŽAñøy‡¬àDômLg™Ùõ¢€ôìX¹rJ²êµóE‹)7âƒ{T¢§À-¼ˆNÎ),V§ðà¤S ÂŒµ—üOÒŠÐÁ«p ºò?ígÃÍãfò3Y\yL1“?]&ÉçÅ`YØ ‡ÍáírËþ~>\쮢Wþt#[.‡ƒ¹a9^á ãàwH°•=œ—Éí…K· d›ä¬È"ÅiÉò”èæFD+)ÙBÇ^›“.%P àÉdCAƒ¸Ù6$ïÌžño}-°–´0¨Ã¸õ7,0ÆeÉ 7™}Þ}_}Uˆ.ìˆg½ü:÷^¢U)E·&Ž?2ßT#t—ºõÀ×¾³43–íÐH"'…Büf3•b£ îúõƒÙÝ÷=¨‡B„X  +¡ÜìzreÉ' A¿Ö–X²˜Ø=0àO’]jlxzíÿœïÂáó³ l3÷éwˆ´eÉÉÅCìkÄä%7÷5ê@Ä(ñb­2,«¿Ë„ÈëD©»‹ðqŒS|!A2á–¼èZ³ þEÖ ó"¼¢2ïÏ·ü«²_º¢b?iþ…"ö¬¦bÂ%>“b.f=’P{[Š»Xö! åSçÓÍ.µ¯íï@ðWû üµ”»ƒOìÁ³6“\¢€DR)Œ âj„×#LmíÑD›¬­ðõƒu±“ã¯}ÐþûÆi¦[b°¡‚VÕ+ ýæ±`ŽŠåüÝøMôga.Äó_ÉN»†£„8¬6î"ÐÃEV„¨=ˆl"é(†è¬„ë‘p±²›¹ò aæVSë´<% ¶:g Ç^­n@zWÊ^½G,=œåÚ{öslß{#È^µì„O$§˜zm*)S0W½.Ú˜ä>7µÓ' Ñ‹O+À×7?÷ëéÁj‹ÜÖ£ì·Õ$כ逖¼h›éŒi¨ïûµ7æ –Yt&L‡cös”3…ÇÌ,l Kä!‰±dyeÆÿaÏó‡<ÀªóIÖKŸc–]› ‹dÊŸº$ÿi@‰í8²û ô&¸{)¸œÉXèÅ{}_ø¾·E„C$z¶bÔaás£&¾œë2#ä8ç°ŪAåù:¥0ã™ +ësw¢‘èDaãwìy 6Œ›möÒ ~jY3û{Ä·M bß«­qÄ™‹7¿S•ƒxs¢5âÍÏ8œ(°ÀçVM +"¸,(AÐåDƒHrg¤€"˜²¬”+tì”sž ¡Í´mPlÿÈ,qrO»k÷lzíÖ +Ü=QYÆbs\èPZÞàa8µ-;ÀqMÔÑk>ä)‰³:Üò 0ŒE= ì[òáÔÖ»N•ßYL¡ Ù–¢oì…¼žãa`À6\¬Påžjþ¢ƒ ;̾v?tg« +_ d3¤ÏŸ;{ů[|a\@ßë?ÞkƒÀ×n^Ð|™]Ñ­Ù }N¬jס±E`xHÈúyŠÉ@|)¸_Jt6thQö V¥¼¥8~ÝÍî£FÉn)—®ÈrD)×è ¨Š}VA³]jf„)i} .‹<?w´NrÕõ)ÞQ߇œçýõ}L¶K¼£¾ˆåïǨïƒlþó½£¾Âr¾÷cÔ÷1]äýõ}Xæ\ïǨïƒ(v¾÷cÔ÷‚zgy?F}“íïǨï#õ’N÷~Øí<Ü`>à(’h±²¸2í`¤¸x£±âu×^~7&à÷b„ ;ºmÄ‘›G謊Dµ–>vÆž2q~%ÚÛô`¡O}íãeÿämçcs&ž¨›Ú *òµ{CðÁyÑ‹gÎÙ%Ãp<¦\xƒd{VLÍ)ë^Èvmá<É®2¼À‰:±{Á®—L^˜déX|v ØÏ#»WÃNù ø¸ìcXS¼‹S|$Xé$ Ÿ)>x·ýŸ¤)#)“d'¿HÛ&› ž4†»ý +5v2ßɢÚýg¸1WäûýG_…"èÿ©`¾Ñ£jÏäÀM¯ΫêÂdëøÓ›]nÒßM–‹î柫(zôv_}.箢WlÛ´]9 3DZÃ+' +©vÈ+f¹œ¡7ÂëUþ¿VËÍîŠÿ2ÙNz³áUsy•m4Ž·—¶ƒwLäUþ½ýÆ”†ðž¬àÓ£‰ð…‚£ô1¡¦ñ‚¢(ø!H&Àÿ­k‰ñö|©À‡_xôï«ÀÕýÕÇq5@°ŸLA"ä †"äã Pd8|57‘´ð¥Š¾€±*6T|›Ž4ˆzßÝNñ§·üÕ!®~ð‹áv|õf†Ô•ÿe¸Ù¯®Þ,èU¶»Ù ·“îâÊßüg5dŸ~ÐWÔו¿1ùoî?×Ýu¹w0TxWã¿Áç'¾Ñð_“þ𩘹ògbkÌ/!_$Ä0Wa ,u }•ý"¼#þ‰\‘òAñs’¤}T$àÃ~s +û€:A¾ƒëVqÓýGÚ/_€‘Â¥Cð»`D×4¡ÂÐëPD¶îÈìW +O“l^EJi @“"Áµ0)óïƒÀ¼t$x>q„¤Cz$Ž*òÑDˆñß%M˜€¤hU¾àF&a¿ò?à)!ÀT!1)ggEªQXÁÐÈ¢hF`áC†Tél€û‚a’äWÿUdbš$|d¢Oäb? ‘„6*l||ÂE®†®Ç·¤Œo½2Šj :„«Ân‡]>ºð@äÑCjdRÏ@$‘K…6:\zÀì¬-_W)¯† *¬Â¬J> >:™õñTúŒôADÂܯ„¯"³BÐùH„:dÖC Âìð¿gYh£-_ rý!‹‹c×ãVê(·¢:€«Âx¹ì€H‘…é¦Gmž‡„_‰ì*´Ña׶?àqqü:ìê#’µ:°%&”`6ýÃ>¹zÀæÊá¼z{…OÏð/"|{sÃ0å6;…qW,¦Ãâav6Y­&‹ö1Á?ÎM¶]°ŠÇåÅ¿†`øp±éé ûIbþ‡ AÔÆͺšaml ¶S½Þ››¼bÿã„ ¶¶Y»ûÀæ¦N°¹©ÿ›[0µ ÁÔ¾z2Nå´•‰C2ƒò#h…2A_ Dw€ øh2B‹ÏDÄG2`¾gGÈbu`ñP8OhxÂ\eM4¬"‚ +Ñ`M| ÍÀ"$h_8¼ +„`/P )ÊGÒ€LxÒ7‘$å G`Tb+ÀN%KÖBD|@…Á¸'ÈüJx ,LS@G@–!™FQ P¿, &äc€’5I  ²9ýbhèi|´*é < $H: +Ãë›øG!°‘±“/€í“fûA¡é `HAÆ +”Ø& #‰P ²"¾p ð#ŒQÌU,)†Aç( h˜6B¤¦‘ª£a´ 9 U"DX¤ÿÈ@Ãhƒ!Jlƒè€©CP(Ð?T ä£Â4…0‘¡@a +†€â ê ÌSÓ5B„X© @hŠôÁ0Ãï›Ð¼C„ÔI$&|@ò€$”t~$<£…~f+ËÍ‚îÁ_„ +…ð4‘DŒî ƒJ!h^A‘RÀ‚$pð8Ëz’@Ö%’•â=ÄŸ ƒ† Bt p…x8&DO(4§ O`rŠm.¶Š Â +&žJ„A†€kàgü3èÁúàáˆ+æ`]õM™È(ÇóbÑW?›î`‚NIÑ„¯To„È/öoæÇä%€ñ¯7`|A˜]ø„ôI–÷VwIXFosî§4 ÷†AÁý‚Œîà U|þE¦Ï#&CW^X +>† +RÆ0gxÌ€ûÊ ƒ€õ¡÷SXÀoñ—'ô³du¸g¢®2u±*­ ´Ærüª¿œ¯–{P»Ûqœùùr0”ß“U t I…Õã;ä º†üßÔ5kÓþ±ÊæÇ°ž!8†B2V (áMSÀ0ùû°ÎLH€Ò +†‚âœ0ËC…ÄgdPÈiç! O|ð;á,Ú0MÀÔð°@ëPÄ'<ñÉ÷Jl%Œ†‡t8¾¬iĪ㫢 $r$ØêþÿIbl–á¸KU"k_Bá j =¨ZÊG#%Œ& 0HXÉá %>A:ä*TxFƒ" ÍÁÁá¿K( 'ןõïì$‘œ›ly·‹¡G;Ħ¹QäÝS°g•z,aØüG&yÝ,·¹ÒpX–¼ý­­Å¯ûPšym5ðž»+øäÝ´L¶Â·ã‹ÊÌR3o, lÛì¬R¿¾uúîõ{&™:ÆSî²Ã ’îÏ¢mZÜÅ +][% mS/õ[” ³zAŸBÀ/Öp! O`,ßLö%«øhÛüƒJmŠó1G!MFþ (Ñìæ|>ï†oWG;·;àëÏ×®ÀÞâC£·JÆòƒÖtŒ¨Üº©\Åmw¯g4A•^ÌéfzQ!¨~`“ ´¢VáòGÛÁ§Ÿz76l×Ë0ž š 6"ßó¿oL°–hGø¿ÿÏdSy(yj6›ËÉ\yðCb@¢ÀÉz¢×½ÝÞ%È›ô Jõüt=K¹Ñ ®|sàØ[zÏ?(_[¢Ãï›AM}ïx>5ž +NWÁBÄ“d%™õxCËÇûx!;p‡St*òJTR·ß<”GVdgc¡…òýNÅŽ¿Êi¯-^¼…¯¯ ZD!ü&ÁB¹—Cdù$Ìç¨^$/Ð9…bVõ1ÜÔ_Tjјú‹^9¯eØ{ΪÿfÚ­ª¾¸süÞ©¿ ?ÒÒ!j—Šcàì·žgr±(X+__ÀZRŸHH–ÂÍ/ºÍγDk¸ËlsýQM½öC¡;ë˜uè{&œÝ­ÉÁ÷æ‰rý¶ö@ÅU…ô8ÍodÆóJú\£g“¶Æc²ï»«‘Þù艨´ž_¨|¼_£íË䘸ÛôÝ°JŸš©¸·öƒÀÛUS¶€+6Ž–[}¼¯n⢛|”4½ i°Té¨d°T$¦ƒðLj;€­ŒÐÈv~+<›©À;4\{0”É„#8bÅ„È ¥Áà(°yáYï¸ðOÀI·0ñ¿;ÜÓktõFÎ ´ +…Id¿S`Ì0èI€ hÑAL‡`P|’5‰Ï" Ïf&ñ—ü3:2å´×rÐ÷,7Dò*g¢Q<(ˆÀcš›±WU°W%¿•ôèOP*»ˆ€.’A 5Å L`+dIFB>&Ÿ„õ„Þp?£fA!7Ô„ +ƒ»ÑÒd¹ÿ¤„„ɪwXø¥@Bz„'ˆ ^v'¡ëYfg@QÞÙAOz#É°`LYá° rÒd0Gà L%X‹Aq(“>¦]HÚˆ +}¸Yá ~Ä=F„#,%f;ZDÄ?Âò½ÚðæŽJÇ¿ù‡ÿ›®Íÿ—ΗÀ\yi"Èú9 ÿöÉÿNNŒ${Õ6*QHçn™T£NŽê¯)5'‡ú6G²Tg~¦3áå}3ù½ùÿ›“CåÍ/¹““¡\æRŒ3³N¬MÒ=M¥°Q˜m?¸^ÙÑß>ƒ(ÖRy\¿ì+ÎK3 Õ;ØÛŠyŸf”à Ñ‚'äbvÕÇçÔ:]ÙZ®æ8W*øØ“¬»dô±'Þ‹©Xsw ¶ä¦Ïìtèsg“ª£Âìë«èŠŸx¿±¸ƒD¥>„býç'„°JÆRr,,€êýCäO:ýÀ|ƒYÛ»é"Gì¡œŠ}µúj_žßR¢K?Q¿ÈÝÆ#åS ²ç¤,´!ø›ÊæidØ }äûÆJ~K F+ßD‘å,ª˜K@oKe“-¸"ÓBÇpF~7®ñÚ;÷í´ ?ïËæË»+i%0$„¸Ø¾`ß‚¹0psúöY!‰%iOÛÓ6Äœ]v5{ó1ó,WÚ5Oô¨ Çøîséá¶tá¬ÔQ/ŠšèÇîçLô£mYÅÞÒ67kV+´"JwuÝRæÐY÷Å+õ ^¯HŸx}ûâZ)hWCZº×iy<0»rT ÚÀ5,~ù¡öLžzF—ôÓó{–Ü=hèZ¹×ŽH‡ó´7ßØ9ÅÁàÀìN+'ìñ„ß/èå–DB1é¯uB('2§*¸ÕŒ‚ÃÌʘªÉÐ7xc>LG®Â/—Á±Âp/¸Vº×Sˆ!cØ‘L¸ý£Þ‘ŒRŒ¬Â€ tM7–8AˆüK\GŸp4CÏÏÐ4™Qx;U¹ëÆ¡o >¥»kšL™-á}Šqm7ž^&±ô  f€÷¨YaüD ÆH¸©†¦cZ8‡Fg‘á2Š0ÊÐto_›¾Jdë½Âl* +Σ†£q¸Cíø†pAkÝÈQHw>S¡s¨áªX6žëÁÐ#%˜‘ë§bPœª®³‹¤¬+ˆÛ”ÈfÀj˜Ð¤‰71 ¾2Îe#…èKBìèµ¹…Q¹`9§",Ì….(¼AÖU|‰ÄÀ$Ê׆ÿŽQ´H» Ê<†€}àc¦ohª’Ze€U›鸋ŞZöã,âyáuâq†¡€E|kü÷x{¬ê;8öß™‚ÿqìû÷âXqë±ù +ÇziVÌ\å$îŽ [ƒcèÑ‚…:ø‚4uÜÊŽíñßű£óýÁDJÇKÉÃhn›5ïv àÎÜíÃYÉC/ÛeZ¼7bûÃÚ =»ÚñÒˆBA6 ˜(‰oÜ÷‡Qù|±§£d¡Ïgè,ÌÓ—h;˜óçäÑ=Ûc³^øØÓdŽE-ó¼ß˜gÓa^<+:P©Š‡G{¯¾Œ³+wõ™×…AÄ胱ˆc°bÁ‘w¬r=:„=–|qlSèÆHïÖÑìjâC;øa¶W7$q6Û9§·ô,"—¶´÷tº’mÁ?9®@µI¶,mQ{Y¸ì|ÂÍ"âUÒ–Á¯à—ƒcXÙÙEúqž¿‘ÑtµÕ–0r¹OîS/Nøâ*ŸáÊAšµ£DÙRSPVû7žŸNtìg^ÜÞooc?µÕc^OÞûÖ¤ƒŠˆ$e^&qpø4鵤O+ø‹ÀX<ŸPÍî$¾ Š«E x×ΗgïýŠ,\ck§Ù¼ø9Ã*¤¬„iÄ×+ÒØs?‘õÎÒÙðŠR>/ž½PM®W9æ·*lÜ›»~Å´Øz¼}1ë¦fÁ öºRÎÞ+ç° YËîwWÃ`,ôIz¶ž7n(«vÖqóÇ3rœ¸ÐÏ’mÏŽÚBùô ¬:µ”X´z7|RÒ¶èàvï˜ÝÍà“Açe¥‹õ˜Cvìv¢}˜QKY?á)w+Ê2Äh].H;Z¬ëFÙüøO 2 ,ŽyÂ>[Áõ°=K­fcÆOÀiè^´€B: …2Llæ©U¸SEìÁ/ó=£*¦£s=À4Ši² +_!"ôüÀ •7¡/H4̾öØŠjÌMâõá¦Á·…¥V!Ó‰uåÏ¡UÇ’%ò­›¾ +eë¢ë $‰ÆF5˜`æu…ÓÖm…tçC³a}º‚ a +ĵd0ŠiÕ\0Ñ’Óš®õ€‰0AP¾½> endobj 6 0 obj <> endobj 7 0 obj <> endobj 8 0 obj <> endobj 42 0 obj [/View/Design] endobj 43 0 obj <>>> endobj 40 0 obj [/View/Design] endobj 41 0 obj <>>> endobj 38 0 obj [/View/Design] endobj 39 0 obj <>>> endobj 36 0 obj [/View/Design] endobj 37 0 obj <>>> endobj 75 0 obj [74 0 R 73 0 R 72 0 R 71 0 R] endobj 135 0 obj <> endobj xref 0 136 0000000004 65535 f +0000000016 00000 n +0000000242 00000 n +0000042777 00000 n +0000000000 00000 f +0000134069 00000 n +0000134139 00000 n +0000134209 00000 n +0000134279 00000 n +0000000000 00000 f +0000042829 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000134702 00000 n +0000134733 00000 n +0000134586 00000 n +0000134617 00000 n +0000134470 00000 n +0000134501 00000 n +0000134354 00000 n +0000134385 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000051735 00000 n +0000051808 00000 n +0000051881 00000 n +0000051954 00000 n +0000134818 00000 n +0000043361 00000 n +0000045264 00000 n +0000067864 00000 n +0000047535 00000 n +0000052504 00000 n +0000047422 00000 n +0000052620 00000 n +0000052733 00000 n +0000050281 00000 n +0000050424 00000 n +0000050615 00000 n +0000050807 00000 n +0000046632 00000 n +0000046900 00000 n +0000045326 00000 n +0000134034 00000 n +0000046071 00000 n +0000046119 00000 n +0000050218 00000 n +0000047359 00000 n +0000047570 00000 n +0000051390 00000 n +0000051000 00000 n +0000051509 00000 n +0000051614 00000 n +0000052386 00000 n +0000052418 00000 n +0000052268 00000 n +0000052300 00000 n +0000052150 00000 n +0000052182 00000 n +0000052032 00000 n +0000052064 00000 n +0000056072 00000 n +0000052859 00000 n +0000052925 00000 n +0000052948 00000 n +0000053249 00000 n +0000053327 00000 n +0000055354 00000 n +0000055428 00000 n +0000056036 00000 n +0000055573 00000 n +0000055718 00000 n +0000055809 00000 n +0000055915 00000 n +0000056138 00000 n +0000056161 00000 n +0000056448 00000 n +0000056526 00000 n +0000056781 00000 n +0000067740 00000 n +0000056855 00000 n +0000057304 00000 n +0000057368 00000 n +0000067939 00000 n +0000068117 00000 n +0000069113 00000 n +0000083726 00000 n +0000134864 00000 n +trailer <<779150255FD24E0494C6DDB168101D01>]>> startxref 135035 %%EOF \ No newline at end of file diff --git a/images/tikzit48x48.png b/images/tikzit48x48.png index 056d04b..802d504 100644 Binary files a/images/tikzit48x48.png and b/images/tikzit48x48.png differ diff --git a/images/tikzit512x512.png b/images/tikzit512x512.png new file mode 100644 index 0000000..89b17ec Binary files /dev/null and b/images/tikzit512x512.png differ diff --git a/src/gui/tikzscene.cpp b/src/gui/tikzscene.cpp index 3431c0c..edc1af4 100644 --- a/src/gui/tikzscene.cpp +++ b/src/gui/tikzscene.cpp @@ -124,6 +124,11 @@ void TikzScene::mousePressEvent(QGraphicsSceneMouseEvent *event) case ToolPalette::VERTEX: break; case ToolPalette::EDGE: + { + QLineF line(mousePos,mousePos); + _drawEdgeItem->setLine(line); + _drawEdgeItem->setVisible(true); + } break; case ToolPalette::CROP: break; @@ -226,6 +231,11 @@ void TikzScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event) case ToolPalette::VERTEX: break; case ToolPalette::EDGE: + if (_drawEdgeItem->isVisible()) { + QPointF p1 = _drawEdgeItem->line().p1(); + QLineF line(p1, mousePos); + _drawEdgeItem->setLine(line); + } break; case ToolPalette::CROP: break; @@ -293,6 +303,7 @@ void TikzScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) } break; case ToolPalette::EDGE: + _drawEdgeItem->setVisible(false); break; case ToolPalette::CROP: break; -- cgit v1.2.3 From 7ba78eb787b925c99bfd5838543bb98e0d4743c8 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Thu, 11 Jan 2018 13:39:59 +0100 Subject: added more source code documentation --- Doxyfile | 6 ++++-- images/tikzit128x128.png | Bin 0 -> 6525 bytes src/data/graph.h | 2 +- src/data/tikzdocument.h | 2 +- src/data/tikzlexer.l | 5 +++++ src/data/tikzparser.y | 6 ++++++ src/gui/mainwindow.h | 2 +- src/gui/nodeitem.h | 2 +- src/gui/propertypalette.h | 2 +- src/gui/tikzscene.h | 2 +- src/gui/tikzview.h | 2 +- src/gui/toolpalette.h | 2 +- src/gui/undocommands.h | 4 +++- src/main.cpp | 6 ++++++ src/tikzit.h | 29 +++++++++++++++++++++++++---- src/util.h | 2 +- 16 files changed, 58 insertions(+), 16 deletions(-) create mode 100644 images/tikzit128x128.png (limited to 'images') diff --git a/Doxyfile b/Doxyfile index 039ed89..56cedb0 100644 --- a/Doxyfile +++ b/Doxyfile @@ -51,7 +51,7 @@ PROJECT_BRIEF = "A GUI diagram editor for TikZ" # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. -PROJECT_LOGO = images/tikzit48x48.png +PROJECT_LOGO = /Users/alek/git/tikzit/images/tikzit128x128.png # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is @@ -859,7 +859,9 @@ FILE_PATTERNS = *.c \ *.vhd \ *.vhdl \ *.ucf \ - *.qsf + *.qsf \ + *.l \ + *.y # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. diff --git a/images/tikzit128x128.png b/images/tikzit128x128.png new file mode 100644 index 0000000..2b09b4e Binary files /dev/null and b/images/tikzit128x128.png differ diff --git a/src/data/graph.h b/src/data/graph.h index 8856e5c..c25d51b 100644 --- a/src/data/graph.h +++ b/src/data/graph.h @@ -1,4 +1,4 @@ -/** +/*! * A graph defined by tikz code. */ diff --git a/src/data/tikzdocument.h b/src/data/tikzdocument.h index f574f5c..d3a18b1 100644 --- a/src/data/tikzdocument.h +++ b/src/data/tikzdocument.h @@ -1,4 +1,4 @@ -/** +/*! * This class contains a tikz Graph, source code, file info, and undo stack. It serves as the model * in the MVC triple (TikzDocument, TikzView, TikzScene). */ diff --git a/src/data/tikzlexer.l b/src/data/tikzlexer.l index 8dd23c6..800ef8e 100644 --- a/src/data/tikzlexer.l +++ b/src/data/tikzlexer.l @@ -1,4 +1,9 @@ %{ +/*! + * \file tikzlexer.l + * + * The lexer for tikz input. + */ /* * Copyright 2010 Chris Heunen * Copyright 2010-2013 Aleks Kissinger diff --git a/src/data/tikzparser.y b/src/data/tikzparser.y index 420b8a0..aa6ac76 100644 --- a/src/data/tikzparser.y +++ b/src/data/tikzparser.y @@ -1,4 +1,10 @@ %{ +/*! + * \file tikzparser.y + * + * The parser for tikz input. + */ + /* * Copyright 2010 Chris Heunen * Copyright 2010-2013 Aleks Kissinger diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h index f27677a..8adf1bc 100644 --- a/src/gui/mainwindow.h +++ b/src/gui/mainwindow.h @@ -1,4 +1,4 @@ -/** +/*! * A top-level window, which contains a single TikzDocument. */ diff --git a/src/gui/nodeitem.h b/src/gui/nodeitem.h index 9a3edb0..eb3fbb3 100644 --- a/src/gui/nodeitem.h +++ b/src/gui/nodeitem.h @@ -1,4 +1,4 @@ -/** +/*! * A QGraphicsItem that handles drawing a single node. */ diff --git a/src/gui/propertypalette.h b/src/gui/propertypalette.h index 7910d70..80f2d88 100644 --- a/src/gui/propertypalette.h +++ b/src/gui/propertypalette.h @@ -1,4 +1,4 @@ -/** +/*! * Enables the user to edit properties of the graph, as well as the selected node/edge. */ diff --git a/src/gui/tikzscene.h b/src/gui/tikzscene.h index 6817792..936d42e 100644 --- a/src/gui/tikzscene.h +++ b/src/gui/tikzscene.h @@ -1,4 +1,4 @@ -/** +/*! * Manage the scene, which contains a single Graph, and respond to user input. This serves as * the controller for the MVC (TikzDocument, TikzView, TikzScene). */ diff --git a/src/gui/tikzview.h b/src/gui/tikzview.h index fc3cba4..f89729b 100644 --- a/src/gui/tikzview.h +++ b/src/gui/tikzview.h @@ -1,4 +1,4 @@ -/** +/*! * Display a Graph, and manage any user input that purely changes the view (e.g. Zoom). This * serves as the view in the MVC (TikzDocument, TikzView, TikzScene). */ diff --git a/src/gui/toolpalette.h b/src/gui/toolpalette.h index ba6aed5..c28b5a1 100644 --- a/src/gui/toolpalette.h +++ b/src/gui/toolpalette.h @@ -1,4 +1,4 @@ -/** +/*! * A small window that lets the user select the current editing tool. */ diff --git a/src/gui/undocommands.h b/src/gui/undocommands.h index ffff876..0a7dece 100644 --- a/src/gui/undocommands.h +++ b/src/gui/undocommands.h @@ -1,4 +1,6 @@ -/** +/*! + * \file undocommands.h + * * All changes to a TikzDocument are done via subclasses of QUndoCommand. When a controller * (e.g. TikzScene) gets input from the user to change the document, it will push one of * these commands onto the TikzDocument's undo stack, which automatically calls the redo() diff --git a/src/main.cpp b/src/main.cpp index b676211..6b14549 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,3 +1,9 @@ +/** + * \file main.cpp + * + * The main entry point for the TikZiT executable. + */ + #include "tikzit.h" #include diff --git a/src/tikzit.h b/src/tikzit.h index deb683e..1846b15 100644 --- a/src/tikzit.h +++ b/src/tikzit.h @@ -1,7 +1,28 @@ -/** - * Tikzit is the top-level class which maintains the global application state. For convenience, - * it also inherits the main menu. - */ +/*! + * + * \mainpage TikZiT Documentation + * + * This is the source code documentation for TikZiT. The global entry point + * for the TikZiT executable is in main.cpp, whereas the class Tikzit maintains + * the global application state. + * + * The TikZ parser is implemented in flex/bison in the files tikzlexer.l and tikzparser.y. + * + * Most of the interesting code for handling user input is in the class TikzScene. Anything + * that makes a change to the tikz file should be implemented as a QUndoCommand. Currently, + * these are all in undocommands.h. + * + */ + +/*! + * + * \class Tikzit + * + * Tikzit is the top-level class which maintains the global application state. For convenience, + * it also holds an instance of the main menu for macOS (or Ubuntu unity) style GUIs which only + * have one, application-level menu. + * + */ #ifndef TIKZIT_H #define TIKZIT_H diff --git a/src/util.h b/src/util.h index 2952214..7622269 100644 --- a/src/util.h +++ b/src/util.h @@ -1,4 +1,4 @@ -/** +/*! * Various utility functions, mostly for mathematical calculation. */ -- cgit v1.2.3 From d163561b49accb90dd9eb9028d9aa7c05266a539 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Sun, 21 Jan 2018 22:57:11 +0900 Subject: started style palette --- .gitignore | 1 + images/document-new.png | Bin 0 -> 692 bytes images/document-open.png | Bin 0 -> 919 bytes stylepalette.cpp | 14 ++++++++++++++ stylepalette.h | 22 ++++++++++++++++++++++ stylepalette.ui | 18 ++++++++++++++++++ tikzit.pro | 9 ++++++--- tikzit.qrc | 2 ++ 8 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 images/document-new.png create mode 100644 images/document-open.png create mode 100644 stylepalette.cpp create mode 100644 stylepalette.h create mode 100644 stylepalette.ui (limited to 'images') diff --git a/.gitignore b/.gitignore index 22e1dab..f7651c0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .qmake.stash build-tikzit-* *.pro.user +*.autosave Makefile tikzit.app target_wrapper.sh diff --git a/images/document-new.png b/images/document-new.png new file mode 100644 index 0000000..e3808a1 Binary files /dev/null and b/images/document-new.png differ diff --git a/images/document-open.png b/images/document-open.png new file mode 100644 index 0000000..254a6b8 Binary files /dev/null and b/images/document-open.png differ diff --git a/stylepalette.cpp b/stylepalette.cpp new file mode 100644 index 0000000..ba0cd0d --- /dev/null +++ b/stylepalette.cpp @@ -0,0 +1,14 @@ +#include "stylepalette.h" +#include "ui_stylepalette.h" + +StylePalette::StylePalette(QWidget *parent) : + QDockWidget(parent), + ui(new Ui::StylePalette) +{ + ui->setupUi(this); +} + +StylePalette::~StylePalette() +{ + delete ui; +} diff --git a/stylepalette.h b/stylepalette.h new file mode 100644 index 0000000..8a90d95 --- /dev/null +++ b/stylepalette.h @@ -0,0 +1,22 @@ +#ifndef STYLEPALETTE_H +#define STYLEPALETTE_H + +#include + +namespace Ui { +class StylePalette; +} + +class StylePalette : public QDockWidget +{ + Q_OBJECT + +public: + explicit StylePalette(QWidget *parent = 0); + ~StylePalette(); + +private: + Ui::StylePalette *ui; +}; + +#endif // STYLEPALETTE_H diff --git a/stylepalette.ui b/stylepalette.ui new file mode 100644 index 0000000..dd4190e --- /dev/null +++ b/stylepalette.ui @@ -0,0 +1,18 @@ + + + StylePalette + + + + 0 + 0 + 400 + 300 + + + + DockWidget + + + + diff --git a/tikzit.pro b/tikzit.pro index b14822b..2e71e73 100644 --- a/tikzit.pro +++ b/tikzit.pro @@ -48,7 +48,8 @@ SOURCES += src/gui/mainwindow.cpp \ src/data/tikzdocument.cpp \ src/gui/undocommands.cpp \ src/gui/mainmenu.cpp \ - src/util.cpp + src/util.cpp \ + stylepalette.cpp HEADERS += src/gui/mainwindow.h \ src/gui/toolpalette.h \ @@ -70,11 +71,13 @@ HEADERS += src/gui/mainwindow.h \ src/data/tikzdocument.h \ src/gui/undocommands.h \ src/gui/mainmenu.h \ - src/util.h + src/util.h \ + stylepalette.h FORMS += src/gui/mainwindow.ui \ src/gui/propertypalette.ui \ - src/gui/mainmenu.ui + src/gui/mainmenu.ui \ + stylepalette.ui INCLUDEPATH += src src/gui src/data diff --git a/tikzit.qrc b/tikzit.qrc index 9f98a38..484b399 100644 --- a/tikzit.qrc +++ b/tikzit.qrc @@ -4,5 +4,7 @@ images/draw-path.png images/select-rectangular.png images/transform-crop-and-resize.png + images/document-new.png + images/document-open.png -- cgit v1.2.3 From 09c331761648541de907c866c56fb6084c6f7a9b Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Thu, 15 Feb 2018 16:32:33 +0100 Subject: added support for changing edge mode, and started working on windows support --- images/Inkscape_icons_draw_calligraphic.svg | 201 ++++ images/Inkscape_icons_draw_ellipse.svg | 117 ++ images/Inkscape_icons_draw_path.svg | 177 +++ images/Inkscape_icons_draw_rectangle.svg | 95 ++ images/Inkscape_icons_edit_select_all.svg | 1513 ++++++++++++++++++++++++++ images/Inkscape_icons_node_segment_curve.svg | 50 + images/crop.svg | 47 + images/document-new.svg | 448 ++++++++ images/document-open.svg | 535 +++++++++ images/edge.svg | 64 ++ images/node.svg | 39 + images/select.svg | 90 ++ qt.conf | 2 + src/data/edge.cpp | 5 + src/data/edge.h | 1 + src/data/graphelementdata.h | 1 + src/gui/mainmenu.cpp | 5 + src/gui/mainmenu.h | 1 + src/gui/mainmenu.ui | 7 + src/gui/mainwindow.cpp | 17 +- src/gui/mainwindow.h | 4 + src/gui/mainwindow.ui | 8 +- src/gui/propertypalette.cpp | 2 +- src/gui/tikzscene.cpp | 24 +- src/gui/tikzscene.h | 5 +- src/gui/tikzview.cpp | 1 + src/gui/toolpalette.cpp | 10 +- src/gui/undocommands.cpp | 22 + src/gui/undocommands.h | 11 + src/main.cpp | 5 + src/tikzit.cpp | 17 +- src/tikzit.h | 1 + stylepalette.cpp | 14 + stylepalette.h | 3 + stylepalette.ui | 7 +- tikzit.qrc | 15 + 36 files changed, 3543 insertions(+), 21 deletions(-) create mode 100644 images/Inkscape_icons_draw_calligraphic.svg create mode 100644 images/Inkscape_icons_draw_ellipse.svg create mode 100644 images/Inkscape_icons_draw_path.svg create mode 100644 images/Inkscape_icons_draw_rectangle.svg create mode 100644 images/Inkscape_icons_edit_select_all.svg create mode 100644 images/Inkscape_icons_node_segment_curve.svg create mode 100644 images/crop.svg create mode 100644 images/document-new.svg create mode 100644 images/document-open.svg create mode 100644 images/edge.svg create mode 100644 images/node.svg create mode 100644 images/select.svg create mode 100644 qt.conf (limited to 'images') diff --git a/images/Inkscape_icons_draw_calligraphic.svg b/images/Inkscape_icons_draw_calligraphic.svg new file mode 100644 index 0000000..e1b3352 --- /dev/null +++ b/images/Inkscape_icons_draw_calligraphic.svg @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + diff --git a/images/Inkscape_icons_draw_ellipse.svg b/images/Inkscape_icons_draw_ellipse.svg new file mode 100644 index 0000000..26c4446 --- /dev/null +++ b/images/Inkscape_icons_draw_ellipse.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/images/Inkscape_icons_draw_path.svg b/images/Inkscape_icons_draw_path.svg new file mode 100644 index 0000000..b7cb2db --- /dev/null +++ b/images/Inkscape_icons_draw_path.svg @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/images/Inkscape_icons_draw_rectangle.svg b/images/Inkscape_icons_draw_rectangle.svg new file mode 100644 index 0000000..7504d56 --- /dev/null +++ b/images/Inkscape_icons_draw_rectangle.svg @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/images/Inkscape_icons_edit_select_all.svg b/images/Inkscape_icons_edit_select_all.svg new file mode 100644 index 0000000..0da2e0b --- /dev/null +++ b/images/Inkscape_icons_edit_select_all.svg @@ -0,0 +1,1513 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/Inkscape_icons_node_segment_curve.svg b/images/Inkscape_icons_node_segment_curve.svg new file mode 100644 index 0000000..fad6969 --- /dev/null +++ b/images/Inkscape_icons_node_segment_curve.svg @@ -0,0 +1,50 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/images/crop.svg b/images/crop.svg new file mode 100644 index 0000000..226faa8 --- /dev/null +++ b/images/crop.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/document-new.svg b/images/document-new.svg new file mode 100644 index 0000000..1bfdb16 --- /dev/null +++ b/images/document-new.svg @@ -0,0 +1,448 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + New Document + + + Jakub Steiner + + + http://jimmac.musichall.cz + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/document-open.svg b/images/document-open.svg new file mode 100644 index 0000000..55e6177 --- /dev/null +++ b/images/document-open.svg @@ -0,0 +1,535 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Folder Icon Accept + 2005-01-31 + + + Jakub Steiner + + + + http://jimmac.musichall.cz + Active state - when files are being dragged to. + + + Novell, Inc. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/edge.svg b/images/edge.svg new file mode 100644 index 0000000..f4a9716 --- /dev/null +++ b/images/edge.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/node.svg b/images/node.svg new file mode 100644 index 0000000..c728086 --- /dev/null +++ b/images/node.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/select.svg b/images/select.svg new file mode 100644 index 0000000..7ffc893 --- /dev/null +++ b/images/select.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/qt.conf b/qt.conf new file mode 100644 index 0000000..81319bc --- /dev/null +++ b/qt.conf @@ -0,0 +1,2 @@ +[Platforms] +WindowsArguments = dpiawareness=1 diff --git a/src/data/edge.cpp b/src/data/edge.cpp index 6802b2d..e4d5d69 100644 --- a/src/data/edge.cpp +++ b/src/data/edge.cpp @@ -278,6 +278,11 @@ float Edge::cpDist() const return _cpDist; } +void Edge::setBasicBendMode(bool mode) +{ + _basicBendMode = mode; +} + void Edge::setBend(int bend) { _bend = bend; diff --git a/src/data/edge.h b/src/data/edge.h index d2913b8..595b094 100644 --- a/src/data/edge.h +++ b/src/data/edge.h @@ -50,6 +50,7 @@ public: bool basicBendMode() const; float cpDist() const; + void setBasicBendMode(bool mode); void setBend(int bend); void setInAngle(int inAngle); void setOutAngle(int outAngle); diff --git a/src/data/graphelementdata.h b/src/data/graphelementdata.h index 1139a00..0d43bb8 100644 --- a/src/data/graphelementdata.h +++ b/src/data/graphelementdata.h @@ -22,6 +22,7 @@ public: QString property(QString key); bool atom(QString atom); + QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE; diff --git a/src/gui/mainmenu.cpp b/src/gui/mainmenu.cpp index c9e83ba..714ed34 100644 --- a/src/gui/mainmenu.cpp +++ b/src/gui/mainmenu.cpp @@ -32,6 +32,11 @@ void MainMenu::on_actionSave_As_triggered() // TODO } +void MainMenu::on_actionExit_triggered() +{ + tikzit->quit(); +} + // Edit void MainMenu::on_actionUndo_triggered() diff --git a/src/gui/mainmenu.h b/src/gui/mainmenu.h index d85e271..ee167e6 100644 --- a/src/gui/mainmenu.h +++ b/src/gui/mainmenu.h @@ -21,6 +21,7 @@ public slots: void on_actionClose_triggered(); void on_actionSave_triggered(); void on_actionSave_As_triggered(); + void on_actionExit_triggered(); // Edit void on_actionUndo_triggered(); diff --git a/src/gui/mainmenu.ui b/src/gui/mainmenu.ui index c9b6f44..2f15d5a 100644 --- a/src/gui/mainmenu.ui +++ b/src/gui/mainmenu.ui @@ -20,6 +20,8 @@ + + @@ -177,6 +179,11 @@ Ctrl+- + + + Exit + + diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index 54474ae..eac7c44 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -1,5 +1,7 @@ #include "mainwindow.h" #include "ui_mainwindow.h" + +#include "mainmenu.h" #include "tikzassembler.h" #include "toolpalette.h" #include "tikzit.h" @@ -22,11 +24,22 @@ MainWindow::MainWindow(QWidget *parent) : ui->setupUi(this); setAttribute(Qt::WA_DeleteOnClose, true); _tikzDocument = new TikzDocument(this); - _tikzScene = new TikzScene(_tikzDocument, this); + + _tools = new ToolPalette(this); + addToolBar(_tools); + + _tikzScene = new TikzScene(_tikzDocument, _tools, this); ui->tikzView->setScene(_tikzScene); _fileName = ""; _pristine = true; + + // TODO: check if each window should have a menu + _menu = new MainMenu(); + _menu->setParent(this); + + setMenuBar(_menu); + // initially, the source view should be collapsed QList sz = ui->splitter->sizes(); sz[0] = sz[0] + sz[1]; @@ -59,7 +72,7 @@ void MainWindow::open(QString fileName) void MainWindow::closeEvent(QCloseEvent *event) { - //qDebug() << "got close event"; + qDebug() << "got close event"; QMainWindow::closeEvent(event); } diff --git a/src/gui/mainwindow.h b/src/gui/mainwindow.h index 8adf1bc..ba680b0 100644 --- a/src/gui/mainwindow.h +++ b/src/gui/mainwindow.h @@ -9,6 +9,8 @@ #include "tikzview.h" #include "graph.h" #include "tikzdocument.h" +#include "mainmenu.h" +#include "toolpalette.h" #include #include @@ -38,6 +40,8 @@ protected: private: TikzScene *_tikzScene; TikzDocument *_tikzDocument; + MainMenu *_menu; + ToolPalette *_tools; Ui::MainWindow *ui; QString _fileName; bool _pristine; diff --git a/src/gui/mainwindow.ui b/src/gui/mainwindow.ui index 56a5c2d..137d6cf 100644 --- a/src/gui/mainwindow.ui +++ b/src/gui/mainwindow.ui @@ -7,13 +7,19 @@ 0 0 640 - 480 + 580 TikZiT - untitled + + + 0 + 0 + + 0 diff --git a/src/gui/propertypalette.cpp b/src/gui/propertypalette.cpp index b06e866..3e4ba88 100644 --- a/src/gui/propertypalette.cpp +++ b/src/gui/propertypalette.cpp @@ -22,7 +22,7 @@ PropertyPalette::PropertyPalette(QWidget *parent) : d->setProperty("key 2", "value 2"); //QModelIndex i = d->index(0,0); - ui->treeView->setModel(d); + //ui->treeView->setModel(d); QSettings settings("tikzit", "tikzit"); QVariant geom = settings.value("property-palette-geometry"); diff --git a/src/gui/tikzscene.cpp b/src/gui/tikzscene.cpp index 746e9dc..a3dd8ce 100644 --- a/src/gui/tikzscene.cpp +++ b/src/gui/tikzscene.cpp @@ -8,8 +8,8 @@ #include -TikzScene::TikzScene(TikzDocument *tikzDocument, QObject *parent) : - QGraphicsScene(parent), _tikzDocument(tikzDocument) +TikzScene::TikzScene(TikzDocument *tikzDocument, ToolPalette *tools, QObject *parent) : + QGraphicsScene(parent), _tikzDocument(tikzDocument), _tools(tools) { _modifyEdgeItem = 0; _edgeStartNodeItem = 0; @@ -73,7 +73,7 @@ void TikzScene::mousePressEvent(QGraphicsSceneMouseEvent *event) qreal cpR = GLOBAL_SCALEF * (0.05); qreal cpR2 = cpR * cpR; - switch (tikzit->toolPalette()->currentTool()) { + switch (_tools->currentTool()) { case ToolPalette::SELECT: // check if we grabbed a control point of an edge foreach (QGraphicsItem *gi, selectedItems()) { @@ -145,8 +145,10 @@ void TikzScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { // current mouse position, in scene coordinates QPointF mousePos = event->scenePos(); + QRectF rb = views()[0]->rubberBandRect(); + invalidate(-800,-800,1600,1600); - switch (tikzit->toolPalette()->currentTool()) { + switch (_tools->currentTool()) { case ToolPalette::SELECT: if (_modifyEdgeItem != 0) { Edge *e = _modifyEdgeItem->edge(); @@ -262,7 +264,7 @@ void TikzScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) // current mouse position, in scene coordinates QPointF mousePos = event->scenePos(); - switch (tikzit->toolPalette()->currentTool()) { + switch (_tools->currentTool()) { case ToolPalette::SELECT: if (_modifyEdgeItem != 0) { // finished dragging a control point @@ -361,6 +363,18 @@ void TikzScene::keyReleaseEvent(QKeyEvent *event) } } +void TikzScene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) +{ + QPointF mousePos = event->scenePos(); + foreach (QGraphicsItem *gi, items(mousePos)) { + if (EdgeItem *ei = dynamic_cast(gi)) { + ChangeEdgeModeCommand *cmd = new ChangeEdgeModeCommand(this, ei->edge()); + _tikzDocument->undoStack()->push(cmd); + break; + } + } +} + void TikzScene::getSelection(QSet &selNodes, QSet &selEdges) { foreach (QGraphicsItem *gi, selectedItems()) { diff --git a/src/gui/tikzscene.h b/src/gui/tikzscene.h index 5e236d7..cb684b2 100644 --- a/src/gui/tikzscene.h +++ b/src/gui/tikzscene.h @@ -10,6 +10,7 @@ #include "nodeitem.h" #include "edgeitem.h" #include "tikzdocument.h" +#include "toolpalette.h" #include #include @@ -23,7 +24,7 @@ class TikzScene : public QGraphicsScene { Q_OBJECT public: - TikzScene(TikzDocument *tikzDocument, QObject *parent); + TikzScene(TikzDocument *tikzDocument, ToolPalette *tools, QObject *parent); ~TikzScene(); Graph *graph(); QMap &nodeItems(); @@ -42,8 +43,10 @@ protected: void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override; void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override; void keyReleaseEvent(QKeyEvent *event) override; + void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override; private: TikzDocument *_tikzDocument; + ToolPalette *_tools; QMap _nodeItems; QMap _edgeItems; QGraphicsLineItem *_drawEdgeItem; diff --git a/src/gui/tikzview.cpp b/src/gui/tikzview.cpp index fe6c401..b8ae1c0 100644 --- a/src/gui/tikzview.cpp +++ b/src/gui/tikzview.cpp @@ -2,6 +2,7 @@ #include "tikzit.h" #include +#include TikzView::TikzView(QWidget *parent) : QGraphicsView(parent) { diff --git a/src/gui/toolpalette.cpp b/src/gui/toolpalette.cpp index 3c08bce..430df3f 100644 --- a/src/gui/toolpalette.cpp +++ b/src/gui/toolpalette.cpp @@ -13,14 +13,14 @@ ToolPalette::ToolPalette(QWidget *parent) : | Qt::WindowDoesNotAcceptFocus); setOrientation(Qt::Vertical); setFocusPolicy(Qt::NoFocus); - setGeometry(100,200,30,195); + //setGeometry(100,200,30,195); tools = new QActionGroup(this); - select = new QAction(QIcon(":/images/select-rectangular.png"), "Select"); - vertex = new QAction(QIcon(":/images/draw-ellipse.png"), "Add Vertex"); - edge = new QAction(QIcon(":/images/draw-path.png"), "Add Edge"); - crop = new QAction(QIcon(":/images/transform-crop-and-resize.png"), "Bounding Box"); + select = new QAction(QIcon(":/images/Inkscape_icons_edit_select_all.svg"), "Select"); + vertex = new QAction(QIcon(":/images/Inkscape_icons_draw_ellipse.svg"), "Add Vertex"); + edge = new QAction(QIcon(":/images/Inkscape_icons_draw_path.svg"), "Add Edge"); + crop = new QAction(QIcon(":/images/Inkscape_icons_draw_rectangle.svg"), "Bounding Box"); tools->addAction(select); tools->addAction(vertex); diff --git a/src/gui/undocommands.cpp b/src/gui/undocommands.cpp index 0fb235d..9c6a9c3 100644 --- a/src/gui/undocommands.cpp +++ b/src/gui/undocommands.cpp @@ -183,4 +183,26 @@ void AddEdgeCommand::redo() EdgeItem *ei = new EdgeItem(_edge); _scene->edgeItems().insert(_edge, ei); _scene->addItem(ei); + + // edges should always be stacked below nodes + if (!_scene->graph()->nodes().isEmpty()) { + ei->stackBefore(_scene->nodeItems()[_scene->graph()->nodes().first()]); + } +} + +ChangeEdgeModeCommand::ChangeEdgeModeCommand(TikzScene *scene, Edge *edge) : + _scene(scene), _edge(edge) +{ +} + +void ChangeEdgeModeCommand::undo() +{ + _edge->setBasicBendMode(!_edge->basicBendMode()); + _scene->edgeItems()[_edge]->readPos(); +} + +void ChangeEdgeModeCommand::redo() +{ + _edge->setBasicBendMode(!_edge->basicBendMode()); + _scene->edgeItems()[_edge]->readPos(); } diff --git a/src/gui/undocommands.h b/src/gui/undocommands.h index 9032274..eea39ae 100644 --- a/src/gui/undocommands.h +++ b/src/gui/undocommands.h @@ -90,4 +90,15 @@ private: Edge *_edge; }; +class ChangeEdgeModeCommand : public QUndoCommand +{ +public: + explicit ChangeEdgeModeCommand(TikzScene *scene, Edge *edge); + void undo() override; + void redo() override; +private: + TikzScene *_scene; + Edge *_edge; +}; + #endif // UNDOCOMMANDS_H diff --git a/src/main.cpp b/src/main.cpp index 6b14549..96069ef 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -10,8 +10,13 @@ #include + + int main(int argc, char *argv[]) { + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); + //QCoreApplication::setAttribute(Qt::AA_DisableHighDpiScaling); QApplication a(argc, argv); a.setQuitOnLastWindowClosed(false); tikzit = new Tikzit(); diff --git a/src/tikzit.cpp b/src/tikzit.cpp index a488b8a..746268c 100644 --- a/src/tikzit.cpp +++ b/src/tikzit.cpp @@ -22,8 +22,8 @@ Tikzit::Tikzit() loadStyles(); - _toolPalette->show(); - _propertyPalette->show(); + //_toolPalette->show(); + //_propertyPalette->show(); _stylePalette->show(); _windows << new MainWindow(); @@ -73,8 +73,11 @@ void Tikzit::removeWindow(MainWindow *w) { _windows.removeAll(w); if (_activeWindow == w) { - if (_windows.isEmpty()) _activeWindow = 0; - else _activeWindow = _windows[0]; + if (_windows.isEmpty()) { + _activeWindow = 0; + // TODO: check if we should quit when last window closed + quit(); + } else _activeWindow = _windows[0]; } } @@ -105,3 +108,9 @@ void Tikzit::open() } } } + +void Tikzit::quit() +{ + _stylePalette->close(); + QApplication::quit(); +} diff --git a/src/tikzit.h b/src/tikzit.h index a241a78..07878aa 100644 --- a/src/tikzit.h +++ b/src/tikzit.h @@ -76,6 +76,7 @@ public: void newDoc(); void open(); + void quit(); private: // void createMenu(); diff --git a/stylepalette.cpp b/stylepalette.cpp index 2781a90..312f675 100644 --- a/stylepalette.cpp +++ b/stylepalette.cpp @@ -2,12 +2,19 @@ #include "ui_stylepalette.h" #include +#include StylePalette::StylePalette(QWidget *parent) : QDockWidget(parent), ui(new Ui::StylePalette) { ui->setupUi(this); + + QSettings settings("tikzit", "tikzit"); + QVariant geom = settings.value("style-palette-geometry"); + if (geom != QVariant()) { + restoreGeometry(geom.toByteArray()); + } } StylePalette::~StylePalette() @@ -19,3 +26,10 @@ void StylePalette::on_buttonOpenProject_clicked() { qDebug() << "got click"; } + +void StylePalette::closeEvent(QCloseEvent *event) +{ + QSettings settings("tikzit", "tikzit"); + settings.setValue("style-palette-geometry", saveGeometry()); + QDockWidget::closeEvent(event); +} diff --git a/stylepalette.h b/stylepalette.h index 99afe51..b5c16f1 100644 --- a/stylepalette.h +++ b/stylepalette.h @@ -20,6 +20,9 @@ public slots: private: Ui::StylePalette *ui; + +protected: + void closeEvent(QCloseEvent *event) override; }; #endif // STYLEPALETTE_H diff --git a/stylepalette.ui b/stylepalette.ui index 941212b..8068ea4 100644 --- a/stylepalette.ui +++ b/stylepalette.ui @@ -16,6 +16,9 @@ 350 + + true + Styles @@ -70,7 +73,7 @@ - :/images/document-new.png:/images/document-new.png + :/images/document-new.svg:/images/document-new.svg @@ -90,7 +93,7 @@ - :/images/document-open.png:/images/document-open.png + :/images/document-open.svg:/images/document-open.svg diff --git a/tikzit.qrc b/tikzit.qrc index 484b399..65cfcd9 100644 --- a/tikzit.qrc +++ b/tikzit.qrc @@ -6,5 +6,20 @@ images/transform-crop-and-resize.png images/document-new.png images/document-open.png + images/document-new.svg + images/document-open.svg + images/Inkscape_icons_draw_calligraphic.svg + images/Inkscape_icons_draw_ellipse.svg + images/Inkscape_icons_draw_path.svg + images/Inkscape_icons_draw_rectangle.svg + images/Inkscape_icons_node_segment_curve.svg + images/Inkscape_icons_edit_select_all.svg + images/crop.svg + images/edge.svg + images/node.svg + images/select.svg + + + qt.conf -- cgit v1.2.3 From 39c2c74c664a6c770639ead8f45322352cacb997 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Mon, 12 Mar 2018 21:44:49 +0100 Subject: style loading works --- images/crop.svg | 48 +--------- images/refresh.svg | 1 + src/data/graphelementdata.cpp | 2 +- src/data/node.cpp | 2 +- src/data/nodestyle.cpp | 119 +++++++++++++++++++++---- src/data/nodestyle.h | 32 +++++-- src/data/project.cpp | 13 --- src/data/project.h | 21 ----- src/data/tikzassembler.cpp | 14 +-- src/data/tikzassembler.h | 10 +-- src/data/tikzlexer.l | 2 + src/data/tikzparser.y | 7 +- src/data/tikzstyles.cpp | 36 ++++++++ src/data/tikzstyles.h | 29 +++++++ src/gui/nodeitem.cpp | 6 +- src/gui/toolpalette.cpp | 2 +- src/main.cpp | 1 + src/tikzit.cpp | 91 ++++++++++++++----- src/tikzit.h | 14 ++- stylepalette.cpp | 33 ++++++- stylepalette.h | 5 +- stylepalette.ui | 197 ++++++++++++++++++++++++++---------------- tikzit.pro | 8 +- tikzit.qrc | 1 + 24 files changed, 457 insertions(+), 237 deletions(-) create mode 100644 images/refresh.svg delete mode 100644 src/data/project.cpp delete mode 100644 src/data/project.h create mode 100644 src/data/tikzstyles.cpp create mode 100644 src/data/tikzstyles.h (limited to 'images') diff --git a/images/crop.svg b/images/crop.svg index 226faa8..d10e9ba 100644 --- a/images/crop.svg +++ b/images/crop.svg @@ -1,47 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/refresh.svg b/images/refresh.svg new file mode 100644 index 0000000..29dff8a --- /dev/null +++ b/images/refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/data/graphelementdata.cpp b/src/data/graphelementdata.cpp index 41fcbf0..43f7516 100644 --- a/src/data/graphelementdata.cpp +++ b/src/data/graphelementdata.cpp @@ -66,7 +66,7 @@ QString GraphElementData::property(QString key) if (i != -1) { return _properties[i].value(); } else { - return 0; + return QString(); // null QString } } diff --git a/src/data/node.cpp b/src/data/node.cpp index f94a3df..c78f49c 100644 --- a/src/data/node.cpp +++ b/src/data/node.cpp @@ -70,7 +70,7 @@ void Node::setStyleName(const QString &styleName) void Node::attachStyle() { if (_styleName == "none") _style = noneStyle; - else _style = tikzit->nodeStyle(_styleName); + else _style = tikzit->styles()->nodeStyle(_styleName); } NodeStyle *Node::style() const diff --git a/src/data/nodestyle.cpp b/src/data/nodestyle.cpp index 7eca791..e38d3a3 100644 --- a/src/data/nodestyle.cpp +++ b/src/data/nodestyle.cpp @@ -1,32 +1,113 @@ #include "nodestyle.h" +#include NodeStyle *noneStyle = new NodeStyle(); -NodeStyle::NodeStyle() +NodeStyle::NodeStyle() : _name("none"), _data(0) { - name = "none"; - shape = NodeShape::Circle; - fillColor = Qt::white; - strokeColor = Qt::black; - strokeThickness = 1; } -NodeStyle::NodeStyle(QString nm, NodeShape sh, QColor fillCol) + +NodeStyle::NodeStyle(QString name, GraphElementData *data): _name(name), _data(data) +{ +} + +bool NodeStyle::isNone() { return _data == 0; } + +GraphElementData *NodeStyle::data() const +{ + return _data; +} + +QString NodeStyle::name() const +{ + return _name; +} + +NodeShape NodeStyle::shape() const { - name = nm; - shape = sh; - fillColor = fillCol; - strokeColor = Qt::black; - strokeThickness = 1; + QString sh = _data->property("shape"); + if (sh.isNull()) return NodeShape::Circle; + else if (sh == "circle") return NodeShape::Circle; + else if (sh == "rectangle") return NodeShape::Rectangle; + else return NodeShape::Circle; } -NodeStyle::NodeStyle(QString nm, NodeShape sh, QColor fillCol, QColor strokeCol, int strokeThick) +QColor NodeStyle::fillColor() const { - name = nm; - shape = sh; - fillColor = fillCol; - strokeColor = strokeCol; - strokeThickness = strokeThick; + QString col = _data->property("fill"); + + if (col.isNull()) { + return QColor(Qt::white); + } else { + QColor namedColor(col); + if (namedColor.isValid()) { + return namedColor; + } else { + // TODO: read RGB colors + return QColor(Qt::white); + } + } +} + +QColor NodeStyle::strokeColor() const +{ + QString col = _data->property("draw"); + + if (col.isNull()) { + return QColor(Qt::black); + } else { + QColor namedColor(col); + if (namedColor.isValid()) { + return namedColor; + } else { + // TODO: read RGB colors + return QColor(Qt::white); + } + } +} + +int NodeStyle::strokeThickness() const +{ + return 1; +} + +QPen NodeStyle::pen() const +{ + QPen p(strokeColor()); + p.setWidthF((float)strokeThickness() * 3.0f); + return p; +} + +QBrush NodeStyle::brush() const +{ + return QBrush(fillColor()); +} + +QPainterPath NodeStyle::path() const +{ + QPainterPath pth; + pth.addEllipse(QPointF(0.0f,0.0f), 30.0f, 30.0f); + return pth; +} + +QPainterPath NodeStyle::palettePath() const +{ + return path(); +} + +QIcon NodeStyle::icon() const +{ + // draw an icon matching the style + QPixmap px(100,100); + px.fill(Qt::transparent); + QPainter painter(&px); + QPainterPath pth = path(); + painter.setPen(pen()); + painter.setBrush(brush()); + + pth.translate(50.0f, 50.0f); + painter.drawPath(pth); + return QIcon(px); } -bool NodeStyle::isNone() { return name == "none"; } diff --git a/src/data/nodestyle.h b/src/data/nodestyle.h index 00d1b20..58c0c12 100644 --- a/src/data/nodestyle.h +++ b/src/data/nodestyle.h @@ -1,24 +1,40 @@ #ifndef NODESTYLE_H #define NODESTYLE_H +#include "graphelementdata.h" + #include +#include +#include +#include +#include enum NodeShape { - Square, UpTriangle, DownTriangle, Circle + Rectangle, UpTriangle, DownTriangle, Circle }; class NodeStyle { public: NodeStyle(); - NodeStyle(QString nm, NodeShape sh, QColor fillCol); - NodeStyle(QString nm, NodeShape sh, QColor fillCol, QColor strokeCol, int strokeThick); + NodeStyle(QString name, GraphElementData *data); bool isNone(); - QString name; - NodeShape shape; - QColor fillColor; - QColor strokeColor; - int strokeThickness; + + GraphElementData *data() const; + QString name() const; + NodeShape shape() const; + QColor fillColor() const; + QColor strokeColor() const; + int strokeThickness() const; + + QPen pen() const; + QBrush brush() const; + QPainterPath path() const; + QPainterPath palettePath() const; + QIcon icon() const; +private: + QString _name; + GraphElementData *_data; }; extern NodeStyle *noneStyle; diff --git a/src/data/project.cpp b/src/data/project.cpp deleted file mode 100644 index b129dc0..0000000 --- a/src/data/project.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include "project.h" - -#include "QDebug" - -Project::Project(QObject *parent) : QObject(parent) -{ - -} - -void Project::addStyle(QString name, GraphElementData *properties) -{ - qDebug() << "got style {" << name << "} = [" << properties << "]"; -} diff --git a/src/data/project.h b/src/data/project.h deleted file mode 100644 index cbc2cb9..0000000 --- a/src/data/project.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef PROJECT_H -#define PROJECT_H - -#include "graphelementdata.h" - -#include -#include - -class Project : public QObject -{ - Q_OBJECT -public: - explicit Project(QObject *parent = 0); - void addStyle(QString name, GraphElementData *properties); - -signals: - -public slots: -}; - -#endif // PROJECT_H diff --git a/src/data/tikzassembler.cpp b/src/data/tikzassembler.cpp index 456464a..e0197da 100644 --- a/src/data/tikzassembler.cpp +++ b/src/data/tikzassembler.cpp @@ -7,14 +7,14 @@ int yyparse(void *scanner); TikzAssembler::TikzAssembler(Graph *graph, QObject *parent) : - QObject(parent), _graph(graph), _project(0) + QObject(parent), _graph(graph), _tikzStyles(0) { yylex_init(&scanner); yyset_extra(this, scanner); } -TikzAssembler::TikzAssembler(Project *project, QObject *parent) : - QObject(parent), _graph(0), _project(project) +TikzAssembler::TikzAssembler(TikzStyles *tikzStyles, QObject *parent) : + QObject(parent), _graph(0), _tikzStyles(tikzStyles) { yylex_init(&scanner); yyset_extra(this, scanner); @@ -37,9 +37,9 @@ Graph *TikzAssembler::graph() const return _graph; } -Project *TikzAssembler::project() const +TikzStyles *TikzAssembler::tikzStyles() const { - return _project; + return _tikzStyles; } bool TikzAssembler::isGraph() const @@ -47,8 +47,8 @@ bool TikzAssembler::isGraph() const return _graph != 0; } -bool TikzAssembler::isProject() const +bool TikzAssembler::isTikzStyles() const { - return _project != 0; + return _tikzStyles != 0; } diff --git a/src/data/tikzassembler.h b/src/data/tikzassembler.h index 8dbbc9b..38d67a7 100644 --- a/src/data/tikzassembler.h +++ b/src/data/tikzassembler.h @@ -7,7 +7,7 @@ #include "node.h" #include "graph.h" -#include "project.h" +#include "tikzstyles.h" #include #include @@ -17,15 +17,15 @@ class TikzAssembler : public QObject Q_OBJECT public: explicit TikzAssembler(Graph *graph, QObject *parent = 0); - explicit TikzAssembler(Project *project, QObject *parent = 0); + explicit TikzAssembler(TikzStyles *tikzStyles, QObject *parent = 0); void addNodeToMap(Node *n); Node *nodeWithName(QString name); bool parse(const QString &tikz); Graph *graph() const; - Project *project() const; + TikzStyles *tikzStyles() const; bool isGraph() const; - bool isProject() const; + bool isTikzStyles() const; signals: @@ -35,7 +35,7 @@ public slots: private: QHash _nodeMap; Graph *_graph; - Project *_project; + TikzStyles *_tikzStyles; void *scanner; }; diff --git a/src/data/tikzlexer.l b/src/data/tikzlexer.l index faf0d43..0a7ff39 100644 --- a/src/data/tikzlexer.l +++ b/src/data/tikzlexer.l @@ -68,6 +68,7 @@ FLOAT \-?[0-9]*(\.[0-9]+)? \\begin\{tikzpicture\} { return BEGIN_TIKZPICTURE_CMD; } \\end\{tikzpicture\} { return END_TIKZPICTURE_CMD; } +\\tikzstyle { return TIKZSTYLE_CMD; } \\begin\{pgfonlayer\} { return BEGIN_PGFONLAYER_CMD; } \\end\{pgfonlayer\} { return END_PGFONLAYER_CMD; } \\draw { return DRAW_CMD; } @@ -78,6 +79,7 @@ node { return NODE; } at { return AT; } to { return TO; } ; { return SEMICOLON; } += { return EQUALS; } \([ ]*{FLOAT}[ ]*,[ ]*{FLOAT}[ ]*\) { yylloc->last_column = yylloc->first_column + 1; diff --git a/src/data/tikzparser.y b/src/data/tikzparser.y index a4db3dd..76674f1 100644 --- a/src/data/tikzparser.y +++ b/src/data/tikzparser.y @@ -7,7 +7,7 @@ /* * Copyright 2010 Chris Heunen - * Copyright 2010-2013 Aleks Kissinger + * Copyright 2010-2017 Aleks Kissinger * Copyright 2013 K. Johan Paulsson * Copyright 2013 Alex Merry * @@ -85,6 +85,7 @@ void yyerror(YYLTYPE *yylloc, void *scanner, const char *str) { %token BEGIN_TIKZPICTURE_CMD "\\begin{tikzpicture}" %token END_TIKZPICTURE_CMD "\\end{tikzpicture}" +%token TIKZSTYLE_CMD "\\tikzstyle" %token BEGIN_PGFONLAYER_CMD "\\begin{pgfonlayer}" %token END_PGFONLAYER_CMD "\\end{pgfonlayer}" %token DRAW_CMD "\\draw" @@ -133,8 +134,8 @@ tikz: tikzstyles | tikzpicture; tikzstyles: tikzstyles tikzstyle | ; tikzstyle: "\\tikzstyle" DELIMITEDSTRING "=" "[" properties "]" { - if (assembler->isProject()) { - assembler->project()->addStyle(QString($2), $5); + if (assembler->isTikzStyles()) { + assembler->tikzStyles()->addStyle(QString($2), $5); } } diff --git a/src/data/tikzstyles.cpp b/src/data/tikzstyles.cpp new file mode 100644 index 0000000..186e19b --- /dev/null +++ b/src/data/tikzstyles.cpp @@ -0,0 +1,36 @@ +#include "tikzstyles.h" +#include "nodestyle.h" + +#include + +TikzStyles::TikzStyles(QObject *parent) : QObject(parent) +{ + +} + +NodeStyle *TikzStyles::nodeStyle(QString name) const +{ + foreach (NodeStyle *s , _nodeStyles) + if (s->name() == name) return s; + return noneStyle; //NodeStyle(name, NodeShape::Circle, Qt::white); +} + +QVector TikzStyles::nodeStyles() const +{ + return _nodeStyles; +} + +void TikzStyles::clear() +{ + _nodeStyles.clear(); +} + +void TikzStyles::addStyle(QString name, GraphElementData *data) +{ + //qDebug() << "got style {" << name << "} = [" << data << "]"; + if (!data->property("fill").isNull()) { // node style + _nodeStyles << new NodeStyle(name, data); + } else { // edge style + // TODO: edge styles + } +} diff --git a/src/data/tikzstyles.h b/src/data/tikzstyles.h new file mode 100644 index 0000000..eaf7e64 --- /dev/null +++ b/src/data/tikzstyles.h @@ -0,0 +1,29 @@ +#ifndef PROJECT_H +#define PROJECT_H + +#include "graphelementdata.h" +#include "nodestyle.h" + +#include +#include + +class TikzStyles : public QObject +{ + Q_OBJECT +public: + explicit TikzStyles(QObject *parent = 0); + void addStyle(QString name, GraphElementData *data); + + NodeStyle *nodeStyle(QString name) const; + QVector nodeStyles() const; + void clear(); + +signals: + +public slots: + +private: + QVector _nodeStyles; +}; + +#endif // PROJECT_H diff --git a/src/gui/nodeitem.cpp b/src/gui/nodeitem.cpp index 71226f3..21cdf79 100644 --- a/src/gui/nodeitem.cpp +++ b/src/gui/nodeitem.cpp @@ -57,10 +57,10 @@ void NodeItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidge painter->setBrush(Qt::NoBrush); painter->drawPath(shape()); } else { - QPen pen(_node->style()->strokeColor); - pen.setWidth(_node->style()->strokeThickness); + QPen pen(_node->style()->strokeColor()); + pen.setWidth(_node->style()->strokeThickness()); painter->setPen(pen); - painter->setBrush(QBrush(_node->style()->fillColor)); + painter->setBrush(QBrush(_node->style()->fillColor())); painter->drawPath(shape()); } diff --git a/src/gui/toolpalette.cpp b/src/gui/toolpalette.cpp index 430df3f..0a832a6 100644 --- a/src/gui/toolpalette.cpp +++ b/src/gui/toolpalette.cpp @@ -20,7 +20,7 @@ ToolPalette::ToolPalette(QWidget *parent) : select = new QAction(QIcon(":/images/Inkscape_icons_edit_select_all.svg"), "Select"); vertex = new QAction(QIcon(":/images/Inkscape_icons_draw_ellipse.svg"), "Add Vertex"); edge = new QAction(QIcon(":/images/Inkscape_icons_draw_path.svg"), "Add Edge"); - crop = new QAction(QIcon(":/images/Inkscape_icons_draw_rectangle.svg"), "Bounding Box"); + crop = new QAction(QIcon(":/images/crop.svg"), "Bounding Box"); tools->addAction(select); tools->addAction(vertex); diff --git a/src/main.cpp b/src/main.cpp index 96069ef..49b064d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -20,6 +20,7 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); a.setQuitOnLastWindowClosed(false); tikzit = new Tikzit(); + tikzit->init(); return a.exec(); } diff --git a/src/tikzit.cpp b/src/tikzit.cpp index 746268c..6ef86dd 100644 --- a/src/tikzit.cpp +++ b/src/tikzit.cpp @@ -1,7 +1,12 @@ #include "tikzit.h" +#include "tikzassembler.h" +#include "tikzstyles.h" +#include #include #include +#include +#include // application-level instance of Tikzit Tikzit *tikzit; @@ -9,25 +14,27 @@ Tikzit *tikzit; // font to use for node labels QFont Tikzit::LABEL_FONT("Courrier", 9); -Tikzit::Tikzit() +Tikzit::Tikzit() : _styleFile("[default]"), _activeWindow(0) { - _mainMenu = new MainMenu(); +} - _activeWindow = 0; +void Tikzit::init() +{ + QSettings settings("tikzit", "tikzit"); + _mainMenu = new MainMenu(); QMainWindow *dummy = new QMainWindow(); _toolPalette = new ToolPalette(dummy); _propertyPalette = new PropertyPalette(dummy); _stylePalette = new StylePalette(dummy); + _styles = new TikzStyles(this); - loadStyles(); - - //_toolPalette->show(); - //_propertyPalette->show(); _stylePalette->show(); - _windows << new MainWindow(); _windows[0]->show(); + + QString styleFile = settings.value("previous-tikzstyles-file").toString(); + if (!styleFile.isEmpty()) loadStyles(styleFile); } //QMenuBar *Tikzit::mainMenu() const @@ -45,13 +52,6 @@ PropertyPalette *Tikzit::propertyPalette() const return _propertyPalette; } -void Tikzit::loadStyles() -{ - _nodeStyles << new NodeStyle("black dot", NodeShape::Circle, Qt::black, Qt::black, 1); - _nodeStyles << new NodeStyle("white dot", NodeShape::Circle, Qt::white, Qt::black, 1); - _nodeStyles << new NodeStyle("gray dot", NodeShape::Circle, Qt::gray, Qt::black, 1); -} - void Tikzit::newDoc() { MainWindow *w = new MainWindow(); @@ -81,13 +81,6 @@ void Tikzit::removeWindow(MainWindow *w) } } -NodeStyle *Tikzit::nodeStyle(QString name) -{ - foreach (NodeStyle *s , _nodeStyles) - if (s->name == name) return s; - return noneStyle; //NodeStyle(name, NodeShape::Circle, Qt::white); -} - void Tikzit::open() { QSettings settings("tikzit", "tikzit"); @@ -109,8 +102,62 @@ void Tikzit::open() } } +void Tikzit::openTikzStyles() { + QSettings settings("tikzit", "tikzit"); + QString fileName = QFileDialog::getOpenFileName(0, + tr("Open File"), + settings.value("previous-tikzstyles-path").toString(), + tr("TiKZ Style Files (*.tikzstyles)")); + + if (!fileName.isEmpty()) { + loadStyles(fileName); + } +} + +void Tikzit::loadStyles(QString fileName) +{ + QSettings settings("tikzit", "tikzit"); + QFile file(fileName); + if (file.open(QIODevice::ReadOnly)) { + QFileInfo fi(file); + settings.setValue("previous-tikzstyles-path", fi.absolutePath()); + settings.setValue("previous-tikzstyles-file", fileName); + _styleFile = fi.fileName(); + QTextStream in(&file); + QString styleTikz = in.readAll(); + file.close(); + + _styles->clear(); + TikzAssembler ass(_styles); + bool parseSuccess = ass.parse(styleTikz); + if (parseSuccess) { + qDebug() << "parse successful"; + } else { + qDebug() << "parse failed"; + } + _stylePalette->reloadStyles(); + + } else { + settings.setValue("previous-tikzstyles-file", ""); + QMessageBox::warning(0, "Style file not found.", "Could not open style file, reverting to default."); + } +} + +QString Tikzit::styleFile() const +{ + return _styleFile; +} + + +TikzStyles *Tikzit::styles() const +{ + return _styles; +} + void Tikzit::quit() { _stylePalette->close(); QApplication::quit(); } + + diff --git a/src/tikzit.h b/src/tikzit.h index 07878aa..802b3ab 100644 --- a/src/tikzit.h +++ b/src/tikzit.h @@ -38,6 +38,7 @@ #include "propertypalette.h" #include "stylepalette.h" #include "nodestyle.h" +#include "tikzstyles.h" #include #include @@ -68,7 +69,6 @@ public: MainWindow *activeWindow() const; void setActiveWindow(MainWindow *activeWindow); void removeWindow(MainWindow *w); - NodeStyle *nodeStyle(QString name); static QFont LABEL_FONT; // Ui::MainMenu *_mainMenuUi; @@ -77,10 +77,15 @@ public: void newDoc(); void open(); void quit(); + void init(); + + void openTikzStyles(); + TikzStyles *styles() const; + QString styleFile() const; private: -// void createMenu(); - void loadStyles(); + // void createMenu(); + void loadStyles(QString fileName); MainMenu *_mainMenu; ToolPalette *_toolPalette; @@ -88,7 +93,8 @@ private: StylePalette *_stylePalette; QVector _windows; MainWindow *_activeWindow; - QVector _nodeStyles; + TikzStyles *_styles; + QString _styleFile; }; diff --git a/stylepalette.cpp b/stylepalette.cpp index 312f675..8852eb7 100644 --- a/stylepalette.cpp +++ b/stylepalette.cpp @@ -1,8 +1,14 @@ #include "stylepalette.h" #include "ui_stylepalette.h" +#include "tikzit.h" #include +#include +#include #include +#include +#include +#include StylePalette::StylePalette(QWidget *parent) : QDockWidget(parent), @@ -15,6 +21,13 @@ StylePalette::StylePalette(QWidget *parent) : if (geom != QVariant()) { restoreGeometry(geom.toByteArray()); } + + _model = new QStandardItemModel(this); + ui->styleListView->setModel(_model); + ui->styleListView->setViewMode(QListView::IconMode); + ui->styleListView->setMovement(QListView::Static); + + ui->styleListView->setGridSize(QSize(75,60)); } StylePalette::~StylePalette() @@ -22,9 +35,25 @@ StylePalette::~StylePalette() delete ui; } -void StylePalette::on_buttonOpenProject_clicked() +void StylePalette::reloadStyles() +{ + _model->clear(); + QString f = tikzit->styleFile(); + // + ui->styleFile->setText(f); + + QStandardItem *it; + QSize sz(60,60); + + foreach(NodeStyle *ns, tikzit->styles()->nodeStyles()) { + it = new QStandardItem(ns->icon(), ns->name()); + _model->appendRow(it); + } +} + +void StylePalette::on_buttonOpenTikzstyles_clicked() { - qDebug() << "got click"; + tikzit->openTikzStyles(); } void StylePalette::closeEvent(QCloseEvent *event) diff --git a/stylepalette.h b/stylepalette.h index b5c16f1..99dde02 100644 --- a/stylepalette.h +++ b/stylepalette.h @@ -2,6 +2,7 @@ #define STYLEPALETTE_H #include +#include namespace Ui { class StylePalette; @@ -14,12 +15,14 @@ class StylePalette : public QDockWidget public: explicit StylePalette(QWidget *parent = 0); ~StylePalette(); + void reloadStyles(); public slots: - void on_buttonOpenProject_clicked(); + void on_buttonOpenTikzstyles_clicked(); private: Ui::StylePalette *ui; + QStandardItemModel *_model; protected: void closeEvent(QCloseEvent *event) override; diff --git a/stylepalette.ui b/stylepalette.ui index 8068ea4..a8c893f 100644 --- a/stylepalette.ui +++ b/stylepalette.ui @@ -7,13 +7,13 @@ 0 0 250 - 350 + 430 250 - 350 + 430 @@ -23,79 +23,126 @@ Styles - - - - 10 - 12 - 51 - 16 - - - - Project: - - - - - - 60 - 13 - 131 - 16 - - - - - Courier - 75 - true - - - - [default] - - - - - - 195 - 10 - 22 - 22 - - - - New Project - - - - - - - :/images/document-new.svg:/images/document-new.svg - - - - - - 220 - 10 - 22 - 22 - - - - New Project - - - - - - - :/images/document-open.svg:/images/document-open.svg - - + + + + + 2 + + + 0 + + + + + Styles: + + + + + + + + 0 + 0 + + + + + Courier + 75 + true + + + + [default] + + + + + + + New Project + + + + + + + :/images/document-open.svg:/images/document-open.svg + + + + + + + + + + + :/images/refresh.svg:/images/refresh.svg + + + + + + + + + + 8 + true + + + + + + + + 2 + + + + + + 25 + 25 + + + + + + + + + + + + + 25 + 25 + + + + - + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + diff --git a/tikzit.pro b/tikzit.pro index d3a9c62..673730b 100644 --- a/tikzit.pro +++ b/tikzit.pro @@ -49,8 +49,8 @@ SOURCES += src/gui/mainwindow.cpp \ src/gui/mainmenu.cpp \ src/util.cpp \ stylepalette.cpp \ - src/data/project.cpp \ - src/data/tikzassembler.cpp + src/data/tikzassembler.cpp \ + src/data/tikzstyles.cpp HEADERS += src/gui/mainwindow.h \ src/gui/toolpalette.h \ @@ -73,8 +73,8 @@ HEADERS += src/gui/mainwindow.h \ src/gui/mainmenu.h \ src/util.h \ stylepalette.h \ - src/data/project.h \ - src/data/tikzassembler.h + src/data/tikzassembler.h \ + src/data/tikzstyles.h FORMS += src/gui/mainwindow.ui \ src/gui/propertypalette.ui \ diff --git a/tikzit.qrc b/tikzit.qrc index 65cfcd9..effe396 100644 --- a/tikzit.qrc +++ b/tikzit.qrc @@ -18,6 +18,7 @@ images/edge.svg images/node.svg images/select.svg + images/refresh.svg qt.conf -- cgit v1.2.3 From 10d739ce2ac904501a6f78b127f91c944a774a18 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Sun, 15 Apr 2018 11:19:38 +0300 Subject: added icon and fixed edge handle bug --- images/logo.ico | Bin 0 -> 14347 bytes src/gui/tikzscene.cpp | 11 ++++++----- tikzit.pro | 2 ++ 3 files changed, 8 insertions(+), 5 deletions(-) create mode 100644 images/logo.ico (limited to 'images') diff --git a/images/logo.ico b/images/logo.ico new file mode 100644 index 0000000..ef92c90 Binary files /dev/null and b/images/logo.ico differ diff --git a/src/gui/tikzscene.cpp b/src/gui/tikzscene.cpp index 9b6c2d6..345d02c 100644 --- a/src/gui/tikzscene.cpp +++ b/src/gui/tikzscene.cpp @@ -97,7 +97,7 @@ void TikzScene::mousePressEvent(QGraphicsSceneMouseEvent *event) //views()[0]->setDragMode(QGraphicsView::NoDrag); // radius of a control point for bezier edges, in scene coordinates - qreal cpR = GLOBAL_SCALEF * (0.05); + qreal cpR = GLOBAL_SCALEF * (0.1); qreal cpR2 = cpR * cpR; switch (_tools->currentTool()) { @@ -511,13 +511,13 @@ void TikzScene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) if (!_enabled) return; QPointF mousePos = event->scenePos(); - auto sel = items(mousePos); - if (!sel.isEmpty()) { - if (EdgeItem *ei = dynamic_cast(sel[0])) { + foreach (QGraphicsItem *it, items(mousePos)) { + if (EdgeItem *ei = dynamic_cast(it)) { ChangeEdgeModeCommand *cmd = new ChangeEdgeModeCommand(this, ei->edge()); _tikzDocument->undoStack()->push(cmd); - } else if (NodeItem *ni = dynamic_cast(sel[0])) { + break; + } else if (NodeItem *ni = dynamic_cast(it)) { bool ok; QString newLabel = QInputDialog::getText(views()[0], tr("Node label"), tr("Label:"), QLineEdit::Normal, @@ -528,6 +528,7 @@ void TikzScene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) ChangeLabelCommand *cmd = new ChangeLabelCommand(this, graph(), oldLabels, newLabel); _tikzDocument->undoStack()->push(cmd); } + break; } } } diff --git a/tikzit.pro b/tikzit.pro index 33a9ef3..c30d173 100644 --- a/tikzit.pro +++ b/tikzit.pro @@ -10,6 +10,8 @@ CONFIG += testcase TARGET = tikzit TEMPLATE = app +win32:RC_ICONS += images/logo.ico + # The following define makes your compiler emit warnings if you use # any feature of Qt which as been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the -- cgit v1.2.3 From 8ac7248513189d82fe5bdf90c0d7fc15f2e718ce Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Tue, 17 Apr 2018 11:03:24 +0300 Subject: fixed bounding box bug --- images/tikzdoc.ico | Bin 0 -> 310308 bytes images/tikzit.ico | Bin 0 -> 322831 bytes src/gui/edgeitem.cpp | 5 +++-- src/gui/nodeitem.cpp | 46 +++++++++++++++++++++++++++++++--------------- src/gui/nodeitem.h | 7 ++++--- src/gui/tikzscene.cpp | 30 ++++++++++++++++++++---------- src/gui/undocommands.cpp | 4 ++++ src/main.cpp | 5 +++++ src/tikzit.cpp | 34 ++++++++++++++++++++-------------- src/tikzit.h | 1 + tikzit.pro | 3 ++- 11 files changed, 90 insertions(+), 45 deletions(-) create mode 100644 images/tikzdoc.ico create mode 100644 images/tikzit.ico (limited to 'images') diff --git a/images/tikzdoc.ico b/images/tikzdoc.ico new file mode 100644 index 0000000..ccb1666 Binary files /dev/null and b/images/tikzdoc.ico differ diff --git a/images/tikzit.ico b/images/tikzit.ico new file mode 100644 index 0000000..e49d469 Binary files /dev/null and b/images/tikzit.ico differ diff --git a/src/gui/edgeitem.cpp b/src/gui/edgeitem.cpp index 08a5ad1..88a4e85 100644 --- a/src/gui/edgeitem.cpp +++ b/src/gui/edgeitem.cpp @@ -136,7 +136,9 @@ QPainterPath EdgeItem::path() const void EdgeItem::setPath(const QPainterPath &path) { - _path = path; + prepareGeometryChange(); + + _path = path; // get the shape of the edge, and expand a bit to make selection easier QPainterPathStroker stroker; @@ -147,6 +149,5 @@ void EdgeItem::setPath(const QPainterPath &path) float r = GLOBAL_SCALEF * (_edge->cpDist() + 0.2); _boundingRect = _path.boundingRect().adjusted(-r,-r,r,r); - prepareGeometryChange(); update(); } diff --git a/src/gui/nodeitem.cpp b/src/gui/nodeitem.cpp index 06b46ff..b0b7ea6 100644 --- a/src/gui/nodeitem.cpp +++ b/src/gui/nodeitem.cpp @@ -18,6 +18,7 @@ NodeItem::NodeItem(Node *node) //setFlag(QGraphicsItem::ItemIsMovable); //setFlag(QGraphicsItem::ItemSendsGeometryChanges); readPos(); + updateBounds(); } void NodeItem::readPos() @@ -98,27 +99,42 @@ QPainterPath NodeItem::shape() const return path; } +// TODO: nodeitem should sync boundingRect()-relevant stuff (label etc) explicitly, +// to allow prepareGeometryChange() QRectF NodeItem::boundingRect() const { - QRectF r = labelRect(); - return r.united(shape().boundingRect()).adjusted(-4,-4,4,4); + return _boundingRect; } -Node *NodeItem::node() const +void NodeItem::updateBounds() { - return _node; + prepareGeometryChange(); + QString label = _node->label(); + if (label != "") { + QFontMetrics fm(Tikzit::LABEL_FONT); + QRectF labelRect = fm.boundingRect(label); + labelRect.moveCenter(QPointF(0, 0)); + _boundingRect = labelRect.united(shape().boundingRect()).adjusted(-4, -4, 4, 4); + } else { + _boundingRect = shape().boundingRect().adjusted(-4, -4, 4, 4); + } } -QVariant NodeItem::itemChange(GraphicsItemChange change, const QVariant &value) +Node *NodeItem::node() const { - if (change == ItemPositionChange) { - QPointF newPos = value.toPointF(); - int gridSize = GLOBAL_SCALE / 8; - QPointF gridPos(round(newPos.x()/gridSize)*gridSize, round(newPos.y()/gridSize)*gridSize); - _node->setPoint(fromScreen(gridPos)); - - return gridPos; - } else { - return QGraphicsItem::itemChange(change, value); - } + return _node; } + +//QVariant NodeItem::itemChange(GraphicsItemChange change, const QVariant &value) +//{ +// if (change == ItemPositionChange) { +// QPointF newPos = value.toPointF(); +// int gridSize = GLOBAL_SCALE / 8; +// QPointF gridPos(round(newPos.x()/gridSize)*gridSize, round(newPos.y()/gridSize)*gridSize); +// _node->setPoint(fromScreen(gridPos)); +// +// return gridPos; +// } else { +// return QGraphicsItem::itemChange(change, value); +// } +//} diff --git a/src/gui/nodeitem.h b/src/gui/nodeitem.h index eb3fbb3..91b3f63 100644 --- a/src/gui/nodeitem.h +++ b/src/gui/nodeitem.h @@ -19,14 +19,15 @@ public: void readPos(); void writePos(); void paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *); - QVariant itemChange(GraphicsItemChange change, const QVariant &value); - QPainterPath shape() const; - QRectF boundingRect() const; + QPainterPath shape() const override; + QRectF boundingRect() const override; + void updateBounds(); Node *node() const; private: Node *_node; QRectF labelRect() const; + QRectF _boundingRect; }; #endif // NODEITEM_H diff --git a/src/gui/tikzscene.cpp b/src/gui/tikzscene.cpp index 345d02c..40d56e7 100644 --- a/src/gui/tikzscene.cpp +++ b/src/gui/tikzscene.cpp @@ -57,15 +57,16 @@ Graph *TikzScene::graph() void TikzScene::graphReplaced() { - foreach (NodeItem *ni, _nodeItems) { + + foreach (NodeItem *ni, _nodeItems) { removeItem(ni); - delete ni; + //delete ni; } _nodeItems.clear(); foreach (EdgeItem *ei, _edgeItems) { removeItem(ei); - delete ei; + //delete ei; } _edgeItems.clear(); @@ -287,8 +288,12 @@ void TikzScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event) foreach (Node *n, _oldNodePositions.keys()) { NodeItem *ni = _nodeItems[n]; - ni->setPos(toScreen(_oldNodePositions[n]) + shift); - ni->writePos(); + + // in (rare) cases, the graph can change while we are dragging + if (ni != 0) { + ni->setPos(toScreen(_oldNodePositions[n]) + shift); + ni->writePos(); + } } refreshAdjacentEdges(_oldNodePositions.keys()); @@ -711,11 +716,16 @@ void TikzScene::reloadStyles() void TikzScene::refreshAdjacentEdges(QList nodes) { if (nodes.empty()) return; - foreach (EdgeItem *ei, _edgeItems) { - if (nodes.contains(ei->edge()->source()) || nodes.contains(ei->edge()->target())) { - ei->edge()->updateControls(); - ei->readPos(); - } + foreach (Edge *e, _edgeItems.keys()) { + EdgeItem *ei = _edgeItems[e]; + + // the list "nodes" can be out of date, e.g. if the graph changes while dragging + if (ei != 0) { + if (nodes.contains(ei->edge()->source()) || nodes.contains(ei->edge()->target())) { + ei->edge()->updateControls(); + ei->readPos(); + } + } } } diff --git a/src/gui/undocommands.cpp b/src/gui/undocommands.cpp index daa2fee..baa8c0e 100644 --- a/src/gui/undocommands.cpp +++ b/src/gui/undocommands.cpp @@ -341,6 +341,8 @@ void ChangeLabelCommand::undo() { foreach (Node *n, _oldLabels.keys()) { n->setLabel(_oldLabels[n]); + NodeItem *ni = _scene->nodeItems()[n]; + if (ni != 0) ni->updateBounds(); } GraphUpdateCommand::undo(); @@ -350,6 +352,8 @@ void ChangeLabelCommand::redo() { foreach (Node *n, _oldLabels.keys()) { n->setLabel(_newLabel); + NodeItem *ni = _scene->nodeItems()[n]; + if (ni != 0) ni->updateBounds(); } GraphUpdateCommand::redo(); diff --git a/src/main.cpp b/src/main.cpp index b15840d..3532888 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -20,5 +20,10 @@ int main(int argc, char *argv[]) a.setQuitOnLastWindowClosed(false); tikzit = new Tikzit(); tikzit->init(&a); + + if (a.arguments().length() > 1) { + tikzit->open(a.arguments()[1]); + } + return a.exec(); } diff --git a/src/tikzit.cpp b/src/tikzit.cpp index a55473e..dca6d95 100644 --- a/src/tikzit.cpp +++ b/src/tikzit.cpp @@ -91,20 +91,26 @@ void Tikzit::open() settings.value("previous-file-path").toString(), tr("TiKZ Files (*.tikz)")); - if (!fileName.isEmpty()) { - if (_windows.size() == 1 && - _windows[0]->tikzDocument()->isClean() && - _windows[0]->tikzDocument()->shortName().isEmpty()) - { - _windows[0]->open(fileName); - _windows[0]->show(); - } else { - MainWindow *w = new MainWindow(); - w->show(); - w->open(fileName); - _windows << w; - } - } + open(fileName); +} + +void Tikzit::open(QString fileName) +{ + if (!fileName.isEmpty()) { + if (_windows.size() == 1 && + _windows[0]->tikzDocument()->isClean() && + _windows[0]->tikzDocument()->shortName().isEmpty()) + { + _windows[0]->open(fileName); + _windows[0]->show(); + } + else { + MainWindow *w = new MainWindow(); + w->show(); + w->open(fileName); + _windows << w; + } + } } void Tikzit::openTikzStyles() { diff --git a/src/tikzit.h b/src/tikzit.h index 6a191b5..5ae9490 100644 --- a/src/tikzit.h +++ b/src/tikzit.h @@ -91,6 +91,7 @@ public: void newDoc(); void open(); + void open(QString fileName); void quit(); void init(QApplication *app); diff --git a/tikzit.pro b/tikzit.pro index c30d173..f933af7 100644 --- a/tikzit.pro +++ b/tikzit.pro @@ -10,7 +10,8 @@ CONFIG += testcase TARGET = tikzit TEMPLATE = app -win32:RC_ICONS += images/logo.ico +win32:RC_ICONS += images/tikzit.ico +win32:RC_ICONS += images/tikzdoc.ico # The following define makes your compiler emit warnings if you use # any feature of Qt which as been marked as deprecated (the exact warnings -- cgit v1.2.3 From 59eee652c5fea36945a4a8ce2936843bd90d0e1b Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Fri, 20 Jul 2018 11:01:34 +0200 Subject: ... --- .gitignore | 40 +- COPYING | 1348 +++++----- Doxyfile | 5028 ++++++++++++++++++------------------- README.md | 100 +- bison.pri | 28 +- flex.pri | 16 +- images/edge.svg | 128 +- images/node.svg | 78 +- images/select.svg | 180 +- qt.conf | 4 +- src/data/edge.cpp | 826 +++--- src/data/edge.h | 260 +- src/data/edgestyle.cpp | 262 +- src/data/edgestyle.h | 112 +- src/data/graph.cpp | 546 ++-- src/data/graph.h | 218 +- src/data/graphelementdata.cpp | 410 +-- src/data/graphelementdata.h | 178 +- src/data/graphelementproperty.cpp | 154 +- src/data/graphelementproperty.h | 116 +- src/data/node.cpp | 236 +- src/data/node.h | 144 +- src/data/nodestyle.cpp | 214 +- src/data/nodestyle.h | 102 +- src/data/style.cpp | 156 +- src/data/style.h | 108 +- src/data/tikzassembler.cpp | 144 +- src/data/tikzassembler.h | 120 +- src/data/tikzdocument.cpp | 382 +-- src/data/tikzdocument.h | 138 +- src/data/tikzlexer.l | 382 +-- src/data/tikzparser.y | 568 ++--- src/data/tikzparserdefs.h | 80 +- src/data/tikzstyles.cpp | 142 +- src/data/tikzstyles.h | 102 +- src/gui/commands.h | 8 +- src/gui/edgeitem.cpp | 442 ++-- src/gui/edgeitem.h | 124 +- src/gui/mainmenu.cpp | 302 +-- src/gui/mainmenu.h | 128 +- src/gui/mainmenu.ui | 418 +-- src/gui/mainwindow.cpp | 320 +-- src/gui/mainwindow.h | 120 +- src/gui/mainwindow.ui | 410 +-- src/gui/nodeitem.cpp | 318 +-- src/gui/nodeitem.h | 102 +- src/gui/propertypalette.cpp | 122 +- src/gui/propertypalette.h | 92 +- src/gui/propertypalette.ui | 66 +- src/gui/stylepalette.cpp | 358 +-- src/gui/stylepalette.h | 122 +- src/gui/stylepalette.ui | 240 +- src/gui/tikzscene.cpp | 1560 ++++++------ src/gui/tikzscene.h | 214 +- src/gui/tikzview.cpp | 256 +- src/gui/tikzview.h | 104 +- src/gui/toolpalette.cpp | 172 +- src/gui/toolpalette.h | 106 +- src/gui/undocommands.cpp | 856 +++---- src/gui/undocommands.h | 388 +-- src/main.cpp | 96 +- src/test/testmain.cpp | 44 +- src/test/testparser.cpp | 326 +-- src/test/testparser.h | 36 +- src/test/testtest.cpp | 20 +- src/test/testtest.h | 34 +- src/test/testtikzoutput.cpp | 194 +- src/test/testtikzoutput.h | 34 +- src/tikzit.cpp | 422 ++-- src/tikzit.h | 282 +-- src/util.cpp | 144 +- src/util.h | 96 +- tikzit.pro | 216 +- tikzit.qrc | 52 +- tikzlexer.h | 700 +++--- 75 files changed, 11547 insertions(+), 11547 deletions(-) (limited to 'images') diff --git a/.gitignore b/.gitignore index 8734edf..8bbf502 100644 --- a/.gitignore +++ b/.gitignore @@ -1,20 +1,20 @@ -GeneratedFiles -.vs -debug -release -*.vcxproj* -*.sln -*.rc -x64 -target_wrapper.bat -.qmake.stash -build-tikzit-* -*.pro.user -*.autosave -Makefile -tikzit.app -target_wrapper.sh -src/data/tikzlexer.lexer.cpp -src/data/tikzparser.parser.cpp -src/data/tikzparser.parser.hpp -*.o +GeneratedFiles +.vs +debug +release +*.vcxproj* +*.sln +*.rc +x64 +target_wrapper.bat +.qmake.stash +build-tikzit-* +*.pro.user +*.autosave +Makefile +tikzit.app +target_wrapper.sh +src/data/tikzlexer.lexer.cpp +src/data/tikzparser.parser.cpp +src/data/tikzparser.parser.hpp +*.o diff --git a/COPYING b/COPYING index f288702..3877ae0 100644 --- a/COPYING +++ b/COPYING @@ -1,674 +1,674 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/Doxyfile b/Doxyfile index 56cedb0..06516f9 100644 --- a/Doxyfile +++ b/Doxyfile @@ -1,2514 +1,2514 @@ -# Doxyfile 1.8.14 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See -# https://www.gnu.org/software/libiconv/ for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = TikZiT - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = 2.0 - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = "A GUI diagram editor for TikZ" - -# With the PROJECT_LOGO tag one can specify a logo or an icon that is included -# in the documentation. The maximum height of the logo should not exceed 55 -# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy -# the logo to the output directory. - -PROJECT_LOGO = /Users/alek/git/tikzit/images/tikzit128x128.png - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = ../tikzit.github.io/docs - -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = YES - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = NO - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new -# page for each member. If set to NO, the documentation of a member will be part -# of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 4 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines (in the resulting output). You can put ^^ in the value part of an -# alias to insert a newline as if a physical newline was in the original file. - -ALIASES = - -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: -# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: -# Fortran. In the later case the parser tries to guess whether the code is fixed -# or free formatted code, this is the default for Fortran type files), VHDL. For -# instance to make doxygen treat .inc files as Fortran files (default is PHP), -# and .f files as C (default is Fortran), use: inc=Fortran f=C. -# -# Note: For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = YES - -# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up -# to that level are automatically included in the table of contents, even if -# they do not have an id attribute. -# Note: This feature currently applies only to Markdown headings. -# Minimum value: 0, maximum value: 99, default value: 0. -# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. - -TOC_INCLUDE_HEADINGS = 0 - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by putting a % sign in front of the word or -# globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# If one adds a struct or class to a group and this option is enabled, then also -# any nested class or struct is added to the same group. By default this option -# is disabled and one has to add nested compounds explicitly via \ingroup. -# The default value is: NO. - -GROUP_NESTED_COMPOUNDS = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = NO - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO, -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. If set to YES, local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO, only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO, these declarations will be -# included in the documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO, these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. -# The default value is: system dependent. - -CASE_SENSE_NAMES = NO - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES, the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = NO - -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will -# append additional text to a page's title, such as Class Reference. If set to -# YES the compound reference will be hidden. -# The default value is: NO. - -HIDE_COMPOUND_REFERENCE= NO - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = YES - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - -SHOW_GROUPED_MEMB_INC = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. Note that -# this will also influence the order of the classes in the class list. -# The default value is: NO. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo -# list. This list is created by putting \todo commands in the documentation. -# The default value is: YES. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test -# list. This list is created by putting \test commands in the documentation. -# The default value is: YES. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES, the -# list will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = YES - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. See also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. -# The default value is: NO. - -WARN_NO_PARAMDOC = NO - -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. -# The default value is: NO. - -WARN_AS_ERROR = NO - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING -# Note: If this tag is empty the current directory is searched. - -INPUT = /Users/alek/git/tikzit/src - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: https://www.gnu.org/software/libiconv/) for the list of -# possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. -# -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, -# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf. - -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.idl \ - *.ddl \ - *.odl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.cs \ - *.d \ - *.php \ - *.php4 \ - *.php5 \ - *.phtml \ - *.inc \ - *.m \ - *.markdown \ - *.md \ - *.mm \ - *.dox \ - *.py \ - *.pyw \ - *.f90 \ - *.f95 \ - *.f03 \ - *.f08 \ - *.f \ - *.for \ - *.tcl \ - *.vhd \ - *.vhdl \ - *.ucf \ - *.qsf \ - *.l \ - *.y - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# function all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = YES - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see https://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = YES - -# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the -# cost of reduced performance. This can be particularly helpful with template -# rich C++ code for which doxygen's built-in parser lacks the necessary type -# information. -# Note: The availability of this option depends on whether or not doxygen was -# generated with the -Duse-libclang=ON option for CMake. -# The default value is: NO. - -CLANG_ASSISTED_PARSING = NO - -# If clang assisted parsing is enabled you can provide the compiler with command -# line options that you would normally use when invoking the compiler. Note that -# the include paths will already be set by doxygen for the files and directories -# specified with INPUT and INCLUDE_PATH. -# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. - -CLANG_OPTIONS = - -# If clang assisted parsing is enabled you can provide the clang parser with the -# path to the compilation database (see: -# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) used when the files -# were built. This is equivalent to specifying the "-p" option to a clang tool, -# such as clang-check. These options will then be passed to the parser. -# Note: The availability of this option depends on whether or not doxygen was -# generated with the -Duse-libclang=ON option for CMake. -# The default value is: 0. - -CLANG_COMPILATION_DATABASE_PATH= 0 - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = YES - -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefore more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# https://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - -# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML -# documentation will contain a main index with vertical navigation menus that -# are dynamically created via Javascript. If disabled, the navigation index will -# consists of multiple levels of tabs that are statically embedded in every HTML -# page. Disable this option to support browsers that do not have Javascript, -# like the Qt help browser. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_MENUS = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = NO - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: https://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See https://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the master .chm file (NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated -# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: http://doc.qt.io/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://doc.qt.io/qt-4.8/qthelpproject.html#virtual-folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://doc.qt.io/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = NO - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = NO - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 4 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANSPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# https://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from https://www.mathjax.org before deployment. -# The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/ - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , / -- cgit v1.2.3 From 4417ac396302b1ba28985238a2b6993a161f464a Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Tue, 11 Sep 2018 10:06:16 +0200 Subject: added logo files --- images/logo.pdf | Bin 0 -> 1991 bytes images/logo.png | Bin 0 -> 17595 bytes images/logo.svg | 268 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 268 insertions(+) create mode 100644 images/logo.pdf create mode 100644 images/logo.png create mode 100644 images/logo.svg (limited to 'images') diff --git a/images/logo.pdf b/images/logo.pdf new file mode 100644 index 0000000..1fe8a28 Binary files /dev/null and b/images/logo.pdf differ diff --git a/images/logo.png b/images/logo.png new file mode 100644 index 0000000..000d172 Binary files /dev/null and b/images/logo.png differ diff --git a/images/logo.svg b/images/logo.svg new file mode 100644 index 0000000..5fb38c6 --- /dev/null +++ b/images/logo.svg @@ -0,0 +1,268 @@ + + + +image/svg+xml \ No newline at end of file -- cgit v1.2.3 From 27521c4f1312a66dd3e196cd4f4912c8fe51695d Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Tue, 9 Oct 2018 12:59:33 +0200 Subject: mac icon 2 --- deploy-osx.sh | 5 +++++ images/logo1024.png | Bin 0 -> 38749 bytes images/logo128.png | Bin 0 -> 3863 bytes images/logo16.png | Bin 0 -> 526 bytes images/logo256.png | Bin 0 -> 8439 bytes images/logo32.png | Bin 0 -> 1076 bytes images/logo512.png | Bin 0 -> 17593 bytes images/logo64.png | Bin 0 -> 1876 bytes images/tikzit.icns | Bin 0 -> 153301 bytes 9 files changed, 5 insertions(+) create mode 100755 deploy-osx.sh create mode 100644 images/logo1024.png create mode 100644 images/logo128.png create mode 100644 images/logo16.png create mode 100644 images/logo256.png create mode 100644 images/logo32.png create mode 100644 images/logo512.png create mode 100644 images/logo64.png create mode 100644 images/tikzit.icns (limited to 'images') diff --git a/deploy-osx.sh b/deploy-osx.sh new file mode 100755 index 0000000..a04f7f7 --- /dev/null +++ b/deploy-osx.sh @@ -0,0 +1,5 @@ +# deploy the Mac app bundle. Note the bin/ directory +# of Qt should be in your PATH + +macdeployqt tikzit.app + diff --git a/images/logo1024.png b/images/logo1024.png new file mode 100644 index 0000000..f47872d Binary files /dev/null and b/images/logo1024.png differ diff --git a/images/logo128.png b/images/logo128.png new file mode 100644 index 0000000..9332929 Binary files /dev/null and b/images/logo128.png differ diff --git a/images/logo16.png b/images/logo16.png new file mode 100644 index 0000000..e96712c Binary files /dev/null and b/images/logo16.png differ diff --git a/images/logo256.png b/images/logo256.png new file mode 100644 index 0000000..d63ad45 Binary files /dev/null and b/images/logo256.png differ diff --git a/images/logo32.png b/images/logo32.png new file mode 100644 index 0000000..f8d149b Binary files /dev/null and b/images/logo32.png differ diff --git a/images/logo512.png b/images/logo512.png new file mode 100644 index 0000000..5f9d53d Binary files /dev/null and b/images/logo512.png differ diff --git a/images/logo64.png b/images/logo64.png new file mode 100644 index 0000000..b2a308b Binary files /dev/null and b/images/logo64.png differ diff --git a/images/tikzit.icns b/images/tikzit.icns new file mode 100644 index 0000000..04a702d Binary files /dev/null and b/images/tikzit.icns differ -- cgit v1.2.3 From f70f809b9f8fc940edcdfedb4f3bdf21fd82773b Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Wed, 10 Oct 2018 07:51:10 +0200 Subject: fixed edit icon --- images/Inkscape_icons_draw_calligraphic.svg | 201 ---- images/Inkscape_icons_draw_ellipse.svg | 117 -- images/Inkscape_icons_draw_path.svg | 177 --- images/Inkscape_icons_draw_rectangle.svg | 95 -- images/Inkscape_icons_edit_select_all.svg | 1513 -------------------------- images/Inkscape_icons_node_segment_curve.svg | 50 - images/text-x-generic_with_pencil.svg | 531 +++++++++ src/gui/stylepalette.ui | 20 +- tikzit.qrc | 7 +- 9 files changed, 551 insertions(+), 2160 deletions(-) delete mode 100644 images/Inkscape_icons_draw_calligraphic.svg delete mode 100644 images/Inkscape_icons_draw_ellipse.svg delete mode 100644 images/Inkscape_icons_draw_path.svg delete mode 100644 images/Inkscape_icons_draw_rectangle.svg delete mode 100644 images/Inkscape_icons_edit_select_all.svg delete mode 100644 images/Inkscape_icons_node_segment_curve.svg create mode 100644 images/text-x-generic_with_pencil.svg (limited to 'images') diff --git a/images/Inkscape_icons_draw_calligraphic.svg b/images/Inkscape_icons_draw_calligraphic.svg deleted file mode 100644 index e1b3352..0000000 --- a/images/Inkscape_icons_draw_calligraphic.svg +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - diff --git a/images/Inkscape_icons_draw_ellipse.svg b/images/Inkscape_icons_draw_ellipse.svg deleted file mode 100644 index 26c4446..0000000 --- a/images/Inkscape_icons_draw_ellipse.svg +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - diff --git a/images/Inkscape_icons_draw_path.svg b/images/Inkscape_icons_draw_path.svg deleted file mode 100644 index b7cb2db..0000000 --- a/images/Inkscape_icons_draw_path.svg +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/images/Inkscape_icons_draw_rectangle.svg b/images/Inkscape_icons_draw_rectangle.svg deleted file mode 100644 index 7504d56..0000000 --- a/images/Inkscape_icons_draw_rectangle.svg +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/images/Inkscape_icons_edit_select_all.svg b/images/Inkscape_icons_edit_select_all.svg deleted file mode 100644 index 0da2e0b..0000000 --- a/images/Inkscape_icons_edit_select_all.svg +++ /dev/null @@ -1,1513 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/images/Inkscape_icons_node_segment_curve.svg b/images/Inkscape_icons_node_segment_curve.svg deleted file mode 100644 index fad6969..0000000 --- a/images/Inkscape_icons_node_segment_curve.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/images/text-x-generic_with_pencil.svg b/images/text-x-generic_with_pencil.svg new file mode 100644 index 0000000..558adf6 --- /dev/null +++ b/images/text-x-generic_with_pencil.svg @@ -0,0 +1,531 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/gui/stylepalette.ui b/src/gui/stylepalette.ui index 39e796b..14a4d36 100644 --- a/src/gui/stylepalette.ui +++ b/src/gui/stylepalette.ui @@ -74,6 +74,12 @@ :/images/document-open.svg:/images/document-open.svg + + + 16 + 16 + + @@ -86,7 +92,13 @@ - :/images/document-new.svg:/images/document-new.svg + :/images/text-x-generic_with_pencil.svg:/images/text-x-generic_with_pencil.svg + + + + 16 + 16 + @@ -102,6 +114,12 @@ :/images/refresh.svg:/images/refresh.svg + + + 16 + 16 + + diff --git a/tikzit.qrc b/tikzit.qrc index b3852aa..cf212fe 100644 --- a/tikzit.qrc +++ b/tikzit.qrc @@ -1,11 +1,5 @@ - images/draw-ellipse.png - images/draw-path.png - images/select-rectangular.png - images/transform-crop-and-resize.png - images/document-new.png - images/document-open.png images/document-new.svg images/document-open.svg images/edge-ak.svg @@ -13,6 +7,7 @@ images/select-ak.svg images/refresh.svg images/logo.png + images/text-x-generic_with_pencil.svg qt.conf -- cgit v1.2.3 From 5c2883738ee689483edf202c83f9b657e56fceff Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Wed, 10 Oct 2018 07:58:19 +0200 Subject: relocated icons to standard folders --- images/logo1024.png | Bin 38749 -> 0 bytes images/logo128.png | Bin 3863 -> 0 bytes images/logo16.png | Bin 526 -> 0 bytes images/logo256.png | Bin 8439 -> 0 bytes images/logo32.png | Bin 1076 -> 0 bytes images/logo512.png | Bin 17593 -> 0 bytes images/logo64.png | Bin 1876 -> 0 bytes share/icons/hicolor/1024x1024/apps/tikzit.png | Bin 0 -> 38749 bytes share/icons/hicolor/128x128/apps/tikzit.png | Bin 0 -> 3863 bytes share/icons/hicolor/16x16/apps/tikzit.png | Bin 0 -> 526 bytes share/icons/hicolor/256x256/apps/tikzit.png | Bin 0 -> 8439 bytes share/icons/hicolor/32x32/apps/tikzit.png | Bin 0 -> 1076 bytes share/icons/hicolor/512x512/apps/tikzit.png | Bin 0 -> 17593 bytes share/icons/hicolor/64x64/apps/tikzit.png | Bin 0 -> 1876 bytes 14 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 images/logo1024.png delete mode 100644 images/logo128.png delete mode 100644 images/logo16.png delete mode 100644 images/logo256.png delete mode 100644 images/logo32.png delete mode 100644 images/logo512.png delete mode 100644 images/logo64.png create mode 100644 share/icons/hicolor/1024x1024/apps/tikzit.png create mode 100644 share/icons/hicolor/128x128/apps/tikzit.png create mode 100644 share/icons/hicolor/16x16/apps/tikzit.png create mode 100644 share/icons/hicolor/256x256/apps/tikzit.png create mode 100644 share/icons/hicolor/32x32/apps/tikzit.png create mode 100644 share/icons/hicolor/512x512/apps/tikzit.png create mode 100644 share/icons/hicolor/64x64/apps/tikzit.png (limited to 'images') diff --git a/images/logo1024.png b/images/logo1024.png deleted file mode 100644 index f47872d..0000000 Binary files a/images/logo1024.png and /dev/null differ diff --git a/images/logo128.png b/images/logo128.png deleted file mode 100644 index 9332929..0000000 Binary files a/images/logo128.png and /dev/null differ diff --git a/images/logo16.png b/images/logo16.png deleted file mode 100644 index e96712c..0000000 Binary files a/images/logo16.png and /dev/null differ diff --git a/images/logo256.png b/images/logo256.png deleted file mode 100644 index d63ad45..0000000 Binary files a/images/logo256.png and /dev/null differ diff --git a/images/logo32.png b/images/logo32.png deleted file mode 100644 index f8d149b..0000000 Binary files a/images/logo32.png and /dev/null differ diff --git a/images/logo512.png b/images/logo512.png deleted file mode 100644 index 5f9d53d..0000000 Binary files a/images/logo512.png and /dev/null differ diff --git a/images/logo64.png b/images/logo64.png deleted file mode 100644 index b2a308b..0000000 Binary files a/images/logo64.png and /dev/null differ diff --git a/share/icons/hicolor/1024x1024/apps/tikzit.png b/share/icons/hicolor/1024x1024/apps/tikzit.png new file mode 100644 index 0000000..f47872d Binary files /dev/null and b/share/icons/hicolor/1024x1024/apps/tikzit.png differ diff --git a/share/icons/hicolor/128x128/apps/tikzit.png b/share/icons/hicolor/128x128/apps/tikzit.png new file mode 100644 index 0000000..9332929 Binary files /dev/null and b/share/icons/hicolor/128x128/apps/tikzit.png differ diff --git a/share/icons/hicolor/16x16/apps/tikzit.png b/share/icons/hicolor/16x16/apps/tikzit.png new file mode 100644 index 0000000..e96712c Binary files /dev/null and b/share/icons/hicolor/16x16/apps/tikzit.png differ diff --git a/share/icons/hicolor/256x256/apps/tikzit.png b/share/icons/hicolor/256x256/apps/tikzit.png new file mode 100644 index 0000000..d63ad45 Binary files /dev/null and b/share/icons/hicolor/256x256/apps/tikzit.png differ diff --git a/share/icons/hicolor/32x32/apps/tikzit.png b/share/icons/hicolor/32x32/apps/tikzit.png new file mode 100644 index 0000000..f8d149b Binary files /dev/null and b/share/icons/hicolor/32x32/apps/tikzit.png differ diff --git a/share/icons/hicolor/512x512/apps/tikzit.png b/share/icons/hicolor/512x512/apps/tikzit.png new file mode 100644 index 0000000..5f9d53d Binary files /dev/null and b/share/icons/hicolor/512x512/apps/tikzit.png differ diff --git a/share/icons/hicolor/64x64/apps/tikzit.png b/share/icons/hicolor/64x64/apps/tikzit.png new file mode 100644 index 0000000..b2a308b Binary files /dev/null and b/share/icons/hicolor/64x64/apps/tikzit.png differ -- cgit v1.2.3 From b43ce81422cfce98836887c6a485793e47f86e9e Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Wed, 10 Oct 2018 08:00:16 +0200 Subject: removed old icons --- images/tikzit128x128.png | Bin 6525 -> 0 bytes images/tikzit48x48.png | Bin 2435 -> 0 bytes images/tikzit512x512.png | Bin 27019 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 images/tikzit128x128.png delete mode 100644 images/tikzit48x48.png delete mode 100644 images/tikzit512x512.png (limited to 'images') diff --git a/images/tikzit128x128.png b/images/tikzit128x128.png deleted file mode 100644 index 2b09b4e..0000000 Binary files a/images/tikzit128x128.png and /dev/null differ diff --git a/images/tikzit48x48.png b/images/tikzit48x48.png deleted file mode 100644 index 802d504..0000000 Binary files a/images/tikzit48x48.png and /dev/null differ diff --git a/images/tikzit512x512.png b/images/tikzit512x512.png deleted file mode 100644 index 89b17ec..0000000 Binary files a/images/tikzit512x512.png and /dev/null differ -- cgit v1.2.3 From 0a01b053c5b4cb02e1fef8c9dabbe38a883426eb Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Wed, 10 Oct 2018 08:03:09 +0200 Subject: svg --- images/tikzit.ai | 967 --------------------------- share/icons/hicolor/scalable/apps/tikzit.svg | 268 ++++++++ 2 files changed, 268 insertions(+), 967 deletions(-) delete mode 100644 images/tikzit.ai create mode 100644 share/icons/hicolor/scalable/apps/tikzit.svg (limited to 'images') diff --git a/images/tikzit.ai b/images/tikzit.ai deleted file mode 100644 index b1a8b89..0000000 --- a/images/tikzit.ai +++ /dev/null @@ -1,967 +0,0 @@ -%PDF-1.5 %âãÏÓ -1 0 obj <>/OCGs[5 0 R 6 0 R 7 0 R 8 0 R 71 0 R 72 0 R 73 0 R 74 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream - - - - - application/pdf - - - tikzit - - - - - Adobe Illustrator CS5 - 2011-07-30T18:14:32+01:00 - 2018-01-10T09:38:56+01:00 - 2018-01-10T09:38:56+01:00 - - - - 256 - 236 - JPEG - /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA7AEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq 7FXYq7FXYq7FXYq7FXYq7FUJqmr6VpNk99qt5BYWUX95c3MiQxL83cqoxV495s/5y5/KjRTJDpsl zr90mwFlFwh5DxmmMe3ugbFXmGo/85mee9VufqvlXytbRSPXhHKZ7+Y79QsP1cfgcVQ6/mB/zmRr vxWOnX9lFINgulwW6kMBQh7qLl71DYqv/Rf/ADmzenl6l8hTb/enTbcfd6kdcVaN7/zmxpy86X7h fgp6Wm3R2/yeMtenXFVr/wDOQ/8Azkr5YBfzH5d9SBPty6hplxbrSvUSQmBPau+Ksn8t/wDObmiy lI/Mnly4tOzXFhKlwvz9KUQkD/ZnFXs/kz85vy084lItD123kvH2FhOTb3NfBYpQjP8A7CoxVmuK uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KoTVtY0rR9Pm1LVbuGxsLdeU91c Oscaj3ZiBv2xV8z/AJk/85iF520j8t7I3Mzt6S6xdRMeTNsPq1t9pj4GQf7DFWKaR+Qf51/mbeJr fnzVZdNt5fiVtQLS3IU9orJSiQr/AJJKf6uKvZvKP/OLn5S6AqSXVg+u3i7mfUXLpXvSBOENP9ZW +eKvU9L0rSNJtha6XZW9hbDpBaxJDGKf5MYUYqjPUxV3qYq71MVd6mKsU8z/AJW/lz5nV/035esr qWSvK5EQiuN/+L4uEv8Aw2KvE/Ov/OGejzh7nybrEljP1Wx1D97CT2CzIBIg/wBZXxVhtn+Y3/OQ f5K3kVj5mt5dT0IEJEl8xuLd1Ha3vV5Mhp0Riad0xV9E/lb+fvkP8wkS2srg6drpWsmj3ZCykjr6 L/YmX/V+Km5UYq9JxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KsF/Nb84fKn5b6R9a 1WT6xqc6k6fpETATzkbVPX04wftOwp4VO2KvliGz/N//AJyH8wG7u5vqHlq2kIVyHWwth/LDHWs8 3Hqa18Sopir6S/LX8mfI/kC3VtKtfrGqlaT6vdAPcNXqENKRL/koB7164qz31MVd6mKu9TFXepir vUxV3qYq71MVd6mKu9TFUPfWljqFnLZX9vFd2c6lJ7adFkjdT2ZGBUj54q+cPzU/5xTiLvrv5cyG 0vIm9Y6M8hVSynlytZiaxsD0VjTwI6Yqt/KD/nKLVtI1BfKH5oiWOSBxbprM6lZ4XGwS9UirD/iz r/NX7WKvqiCeC4gjngkWWCVQ8UqEMjowqrKw2II3BGKr8VdirsVdirsVdirsVdirsVdirsVdirsV dirsVebfnd+dOkflp5fElEvPMV6Cul6aW+YM8wBqIkP0sdh3IVfOP5XflT5m/NvzBL548+3M8mkS ycubnhJeshp6UVKenAlOJK0/lXepVV9ZabYafpdhBp+nW8dpY2qCO3t4lCIiDoFAxVFepirvUxV3 qYq71MVd6mKu9TFXepirvUxV3qYq71MVd6mKu9TFXmv5w/kr5e/MOwM1EsPMcCUs9VVa8gOkU4FC 8fh3XqO4Krxn8n/zi8y/lJ5kk8hefo5V0JJOAZ6u1kzHaWEivO3fqVX/AFl3qGVfZEE8FxBHPBIs sEqh4pUIZHRhVWVhsQRuCMVX4q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYqxj8yPzA0byF5SvPMWqHk sA4WtqCFe4uHr6cKV/mO5NNlBPbFXyR+W3kvzB+dPnu986ecXaTRYZh66/EqSsu6WUG/wRRqfioa ge7VxV9a20Nta28VtbRLBbwIscMMahURFFFVVGwAHQYqqc8VdzxV3PFXc8VdzxV3PFXc8VdzxV3P FXc8VdzxV3PFXc8VdzxV53+c/wCU2m/mFoBVAkHmCyUtpl6QBU9fRlNCTG//AAp38QVXm/8AzjH+ b+o+XdbP5W+cS1uqzNb6Q8+zW91yo1o5/kkb+7/yttwwoq+scVdirsVdirsVdirsVdirsVdirsVd iriQBU7AdTir4n/NjzTqv51/m9a+VdBmJ8vadK1vaSrvHxQ/6VfMNq/ZoniAKbscVfTHlrQNL8t6 FZaJpUQhsbGMRxLtU03Z2IpVnarMe5xVM+eKu54q7nirueKu54q7nirueKu54q7nirueKu54q7ni rueKu54q7nirueKvn7/nJ38sfrdmPPejRlNRsAo1YRVDPAtAk44/tQ9GP8u/7OKvXP8AnHf81/8A lYPkaN76QN5h0gra6sNgZDT91cUH+/VBr/lBu1MVepYq7FXYq7FXYq7FXYq7FXYq7FXYq8h/5yf/ ADGbyd+W89rZycNY8wFrCzINGSIr/pMo7/DGeII6MynFXn3/ADjF5BTRPKjeZbtKalroBhqN47ND 8AH/ABlb4z7cfDFXtPP3xV3P3xV3P3xV3P3xV3P3xV3P3xV3P3xVDX+rabp0Hr6heQ2cHT1biRIk /wCCcgYqkzfmV+X6mh8y6Z9F3CR+DYqjNN84eVdTmEOnazZXk5/3TBcRSP8A8CrE4qm3P3xV3P3x V3P3xV3P3xV3P3xV3P3xV3P3xVTuIoLm3lt7hFlgmRo5YnAZWRhRlYHqCDir5Y8tao/5Gfnw8FxK 6+V7s+ncMQz8tOuTWOUqoZma3cb0Wp4sB1xV9Bv/AM5Xfkirso1mZwCQGFldUPuKxg4qn2g/n9+T uuSLFY+abRJX2VLv1LIknsPrSwgn5Yqz6KWKWNZYnWSNwGR1IKkHoQR1xVdirsVdirsVdirsVdir sVfF3586hP8AmP8A85A2flC2lrp+lvHpoKmoBH76+kH+Uu6n/UxV9HWsNva20NrboIreBFihjXoq IOKqPkBiqr6gxV3qDFXeoMVd6gxV3qDFULqmsadpVhNqGo3CWtlbrymnkNFUdPpJOwA3JxV8+eff +ci9ZvpJbLyov6PsRVf0hIA1zIOlUBqsQP0t3qOmKvH7+/1DULlrq/uZbu5f7c87tI5+bMScVQ3H FXccVZx5P/OHzx5YdEhvmvtPWgNheEyx8R2RiecftxNPEHFX0f8Al/8Amj5e86WhNmTbalCoa606 UgyIOhZDtzSu3IfSBXFWX+oMVd6gxV3qDFXeoMVd6gxV3qDFWFfmD+VHlTz3c2FzrRnSTTw6o1s6 xmRJCDwkLK5KgrUUp1xVJE/5xw/KVUCnTZnI6s11PU/cwGKpBrn/ADir5Luo2bR9RvNNuCPhEpS5 hB/1SI3/AOHxVg/1H88/yRn+vaTetd+XkblKIi1xYMCd/Xt2o0RPQuKez4q+kPyY/wCcgfLP5jwi xdRpfmaJOU+lu3JZQo+KS3c05r3K/aX3G+KvVcVdirsVdirsVdiqC1zVrbR9F1DV7ra2062mu5zW n7uCMyNv8lxV8Z/840WNxrfnjzB5uv8A95cxqxaQ97i/kZ3cV78UYf7LFX0pzxV3PFXc8VdzxV3P FVktxHFG8srhI41LO7GgCgVJJPYYq+VvzY/Mu884au1vbSMmgWbkWcG6+ow29eQd2b9kH7I961VY DxxV3HFXccVdxxV3HFUZpGralo+pQalps7W17bNzhmTqD0IIOxBGxB2IxV9a/lz58tfOHl2O/QLH fRUi1C2H7EoHVa78H6r93UHFWU88VdzxV3PFXc8VdzxVKdd83+W9AjEmsajBZ1FVjkb94w6VWNau 30DFWMf8r0/LT1OP6Vbh/vz6vccfu9Pl+GKso0PzZ5e16Iy6PqEF6AOTrG45qD/PGaOv+yGKpnJw kRo5FDxuCrowBBB2IIPbFXzh+cn5S3HlO8Xz35IaSyjtJVnure3JVrSStRPBTpHy+0v7P+r9lV9F fkJ+b0H5keUBcXHGPzDppWDWLdRQFiPgnQfySgHbswI8KqvTMVdirsVdirsVeZ/85Jau2l/kr5mm Q0kuIYrNRvuLmeOFx/yLdsVeRf8AOMmmi0/L2W8I+PUL6WQN34RqsQH0MjYq9c54q7nirueKu54q 7nirzP8APrzTLpflNNMt34XOsOYmI6/V4wDLSn83JVPsTir5t44q7jiruOKu44q7jiruOKu44qz7 8lvNMmhedLe3dqWWrEWdwvbmx/cvTxEhpXwJxV9Qc8VdzxV3PFXc8Vecfm5+aTeVrVdM0sq2uXac hIQGW3jJoJCDszGh4g/M+BVfN95d3l9dSXV5M9zczHlLNKxd2PiWNScVUOOKoiwvr7T7uO8sZ3tr qE8o5omKsp9iMVfSn5S/mefNdk9jqPFNcs0DSlaKs8fT1VUdCDQOBt3HWgVZ9PHDcQSQTxrLBMrR yxuAVZGFGVgeoIxV84eSL6b8oP8AnIOKy9Rl0DUZltZKk8Wsr1qRO3j6ElKn/JPjir7gxV2KuxV2 KuxV4V/zmTd+h+UcMVafWtVtoqUrWkU0tPb+7xVJfyQhW3/K3QoxsTHLIa0r+9nkft/rYVZ1zxV3 PFXc8VdzxV3PFXz5/wA5AXzz+b7W15Ex2tmnwdg8juzH6V44FeY8cVdxxV3HFXccVdxxV3HFXccV bQujq6kqykFWGxBHcYq978j/AJ5aVdWsVl5lY2d+gCfXQpMMtNuTcalGPfbj7jpir0e08waJeIHt NQtrhCK8opkcfgThVEfpGy/5aI/+DX+uKoDV/Nvl3SLZrjUNQggRRUKXBdvZUFWY/IYq+V/NOtz6 95hv9XlrW7mZ0Vuqxj4Y02/lQAYFSvjiruOKu44qnXkrXxoHm7SdQMvpKtwkcvvFKfTkFO/wMcVf V0l0W2Gwwq8B/wCcn9Nj56Fq6CkpE1rK3cheMkf3EvgV9heSdXfWvJug6xIayalp1pdvXryngSQ1 +lsVTrFXYq7FXYq8A/5zVBP5V6WQKga5bk+w+qXQxVJ/ynmp+XeglW6WwFR4hiDhVmSXvZ9/cYqr pMj/AGTXFV3PFXc8VdzxV88/nhbsnnlpD0ntoXX5Dkn60wK8/wCOKu44q7jiruOKu44q7jiruOKu 44qyXyr+XfmXzL+8sYBHZg8WvZzwiqOoGxZj/qg4qz+z/wCcfIuIN5rRLftJDAAB8mZzX/gcVRX/ AEL9o3/V2uP+ATFUu1f/AJx/mjt3k0nVBNMoqtvcR8OXt6isaH/Y4q8lmt5YZnhlQxyxsUkRhQqy mhBHiDiqzjiqlcXNtbissgXwHc/R1xVKbrXWNVtl4j+duv0DFVHRYbjUNf0+3BLz3N1DEldzV5Ao /Xir7X9TCrxz/nJe5T/D2j25+2928i/JIiD/AMTGBX1B+T1s9t+VPlCJ/t/oeyYilCOcCPQg+HKm KsvxV2KuxV2KvFv+cvLBrn8mrqcVpY31pcNTwZzBvt4zYq85/JS+E/5b6WtfigM8T/RO5H/CsMKs 59TFW/Vp3xVUS9kXqeQ98VVlv4z9oEfjiqqtxG3RgcVeS/nzo7MdN1lFqAGtJ28OskX/ABvgV5Dx xV3HFXccVdxxV3HFXccVdxxVNfK+hvrfmCx0xa8biUCUrSqxL8UjCvggJxV9Q2kFtaW0VraxLDbw qEiiQUVVHQAYVVeeKu54qsa4jXqwGKvnz879FfRtXbXbO3Mun6k9ZWGyx3B3YN1/vPtD3rgV5Hca 1fTbBhEvgmx+/riqBLFiSxqT1JxVrFXrH5D+R57/AFpfMt5GV0/TyfqfIbS3FKVAI+zHWtf5qe+K vob1MKvBfzlmuPNf5jaL5R00+pOjRWi03Aub11rWnYJwJwK+6NOsbfT9PtrC3HG3tIkghXwSNQij 7hiqIxV2KuxV2KsI/O7Qm1z8pfNWnKvOQ2ElxElKlpLWlygHuWiFMVfL3/OO+qiTy/qemk/Fa3Im A78Z0A/XEcVes+rhQ71cVd6uKu9XFXeriqWeZdJi13QrvSZZGiW5Skcq1qkinkjihH2WANO/TFXy xqc/mDRdSuNNv/gurVyksbqD03BBoKqw3B7jAlYnmW6H24kb5VH8TiqsvmZf2rc/MP8A2YqqDzLa 94nHyocVXDzJY03jlr8l/wCasVcfMlj2jlr8l/5qxVafMtr2ic/OgxV7d+S2jvb2DeYry3Mc96vC xRzuICamSlP92Ebe3scVemnUpOygYULDfzn9qnyGKrGuHb7TE/Tiq31cVUL61s7+0ls72FLi1mXj LDIAysPcHFXjnmf/AJx9V5nn8uXyxRsaiyu+VF9llUMT7Bl+nAlig/I3z/6vD0LcLWnq+uvH5/zf hirLvK//ADj9DFMlx5kvVuFU1Njacgjf60zcWp4hVHzxV7DaQWtnbR2tpEkFtCoSKGNQqKo6AAbD ChJfO3nSx8raHLqNwQ85qlnbV3llI2HyHVj4Yqk3/OJf5eX+veab38y9cQyQ2zyppzyD+9vZv72U D+WJGKj/ACm2+zgS+uMVdirsVdirsVWyRxyxtHIoeNwVdTuCCKEHFXwb5PtJPIn5z6x5TuGKwmae xjLmnII3q20n+zjAp/rYq9r9TCrvUxV3qYq71MVd6mKu9TFXl/55+V7S80H/ABBGgW+08okzj9uC RwlD/qu4I+nFXgmBXYq7FXYq7FWX/lb5ZtfMPm6G1vF52VtG11cxfzrGQoU+xd1r7Yq+m1ZVUKoC qooANgAMKt+pirvUxV3qYq71MVd6mKu9TFXepirvUxViHm/80/LXlyN42mF7qQ2WxgYFg3/FjCqo Pnv7Yqw78vvy189fnd5mXVtXaSy8r2z8Z74LxjVAam3s1bZ5D+02/Hq3ZSFfbehaHpWhaRaaPpNu tpp1jGIba3Toqr+JJO5J3J3OKo7FXYq7FXYq7FXYq+Rf+cxfKFzo3m7RfP2nL6YveFvdSr+zeWnx Qufd4hQf8Y8VTfQNdt9a0az1S3/u7qMPxrXi3R0PurAjChMPUxV3qYq71MVd6mKu9TFWFfnDqcdt 5EvYmNHvHigiHifUEh/4SM4peIeVvJmu+ZbkxabCPSjNJrqSqwpXsWoan2AJwK9BH5AN6ILa4BNT dRbVWvhX1QfpphpUvk/IbzCHIj1GzZOxb1VP3BG/XjSoy0/IG5Za3esxxt/LFAZB97PH+rGlSXzT +TnmDR4HurGRdUtEFXEalJlA7+nVqj/VJ+WBV35H6lHaecmt3NPrtrJFGP8ALUrKP+FRsVe/+phQ 71MVd6mKu9TFXepirvUxV5X+aPnbzBD5i07y95amkXUWKiRIAGeSa4IWGEKQanetKdxgS5rL/nJ+ ImF9C1FnG3qDT426/wCUkfDFUVbfk3/zk15qIiv4prC0kNHku7mG1i60+KKA+oR/zzOKvUfy8/5w 28s6VLFfecr465dIQw063DQ2YI7O1fVl3/1B4g4q+hrKys7G0hs7KCO2tLdRHBbwqEjRF2CqqgAA e2Kq2KuxV2KuxV2KuxV2KsT/ADT8iWnnryLqnlyfis1zHzsZm/3VdR/FC9etOQo1P2SRir4z/KfX bzRNZvvJusI1vcJNIsUUmxjuYjxliPz47e498Vet+phQ71MVd6mKu9TFXepirx7z5c3XnPzva+WN Of8A0SwJFxKN1V/93Of9QDiP8rbvgS9U0bS9P0fTYdOsIxFbQLRR3J7sx7sx3OFCN9TFXepirvUx V3qYq8f/ADL8syeXtYtvN+iIIkWdHuYlHwpNWoeg/Zk6N7/PAl6nomt2msaVbalamsNygcDup6Mp 91OxwqjfUxQ71MVd6mKu9TFUv8wa/aaJo9zqd0f3duhISu7udkQe7NtilJf+cVfId75u8+3n5g60 vqWekys1uzD4Zb+UVAX2gRuXsSmBX2PirsVdirsVdirsVdirsVdirsVdirsVfJ//ADl/+WkOmXtn +ZGkSLaz3E0dtqcQYI7XCqTBcRiu7cY+LgeAb+Y4qk/kbzYPMWhR3bqUuoj6N2KUX1FANV9mBB9s Ksh9TFDvUxV3qYqxfz/5zi8vaM/pOP0ncqUs4+pBOxkI8E/XilLfyn8t/o3RjqtyK6hqgEnJt2WH qgqf5/tn6PDFWdepih3qYq71MVd6mKu9TFUNqVna6jYXFjdLzt7lDHIvsR1HuOoxS8v8h63L5S8x 3vlTVpeNrJL/AKNM2yiQgcTv0WVKfI/Tir1n1MUO9TFXepirvUxV5D5q1DUvP/nfTvJ2jMFie7W0 hMrcEa4ZuDyPX9lBWnfrTrTAl9zeQ/JWkeSvKmn+W9KX/RrGPi8xADzSt8Ukz0/adiT7dBsMVT/F XYq7FXYq7FXYq7FXYq7FXYq7FXYq+Hv+cgPOl7+ZX5rr5b02auiaLI9nbEboZF/3ruD47rxXxCin XFWTaVYWel6fDYWaenbwLxQdz4sfEk7nChJ/OHnrT/LdsocfWL+UVgtVNDT+dzvxX9f30VeRav8A mF5s1OUs9/JbRn7MFqTCgHh8J5N/sicCUqh1/XYXLw6jdRuerJNIp+8HFUPcXlzd3P1i9mkuJWI9 SSRi7kD/ACmqcVfSmn31ndWMFxZOr2kiAwsvTjTYe1OlO2FCI9TFXepirvUxV3qYq71MVd6mKvFP zdvLG580qLZg8sFusV0V6CQMzcT7hWFfuwJYv/iHXxAtuNSuhAgosXrScAOlAvKmKqln5n8x2bhr bU7mOhrxErlT81JKn6Rir0Pyd+bTzzx2PmDgrOeMeoKAi1PQSqNhX+Ybe3fFXpnq++FDzL80/LTw SxeaNLrBcwuhu2iJVgwI9OdSOjK1ASPY+OKX17+Rf5kDz/8Al7Y6tOw/S1tWz1ZBT/emICr0HQSq Vf6adsCvQcVdirsVdirsVdirsVdirsVdirsVY1+ZfmRvLP5f+YNdjbhPYWM0lsx6euUKw/8AJRlx V8P/AJPacvC/1aT4pGYW0bHr2eT76rhV6Ld3sVrazXUxpFAjSyHwVAWP4DFD541nVrrVtTuNQujW Wdi1Oyr0VR7KNsCUFirsVdir0j8ovMMqXM+iTPWGRTNagn7Lr9tR/rD4vowq9S9TFDvUxV3qYq71 MVd6mKpL5v186N5fur2Mj6xQR24P+/H2U7/y/a+jFXgLu8jtJIxd3JZmY1JJ3JJOBK3FXYq7FXs/ 5XeYZdR0JrSdi1xpxEfI7kxMCY6/KhX6MKsrv7aC+sp7OcVhuI2jcezCmKG/+cNNfudL8+a/5TuG pFe2xmCdvrFlJwNPmkrV/wBUYEvsHFXYq7FXYq7FXYq7FXYq7FXYq7FXln/OULun5FeZyrFSRZCo NNmv7cEfSDir5g/K8hfKq02LTyE/PYfwwoTXzjK/+FtT4dTAw+g7H8MVeEYEuxV2KuxVkX5fs6+b 9PKdeUgPyMTV/DFXt3q4UO9XFXerirvVxV3q4qwf82pGOgWq/sfWlJ+fpvT+OJS8nwK7FXYq7FWf flFJIuqX6j+7MClv9YPt+s4Qr1L1cUJD+Q8rQf8AOTdlHEaJcS6gsnuDZTSnp/lLgS+4sVdirsVd irsVdirsVdirsVdirsVYD+feiSa1+T3mqxjUvItkbpUHUmzdbqgHc/ucVfHX5V3wfR7m0rV7ebnT /JkUU/FGwhWXX9ul5ZXFpJUJcRvExHUB1K1H34oeD3tnPZ3ctrcLwmhYo6+4/h4YEqGKuxV2Ks3/ ACv0h5dTl1R1/c2qmOJt95XFDT5JWvzGEK9P5nFCV/4s8uiZ4W1CFJI2KOrtxowNDu1B1xVWTzDo b7pqFswHWk0Z/jiqnJ5o8vRiralbbbECVCfuBJxVE6fq1hqMLTWUyzxKxRnWtAwANN/Y4qlnnXSn 1Xy/cQRKWuIqTQL3LJ1A9ypIGKvFcCXYq7FXYq9T/LDSpLTSpr6VSHvWHpg/77jqAfpJOEKzMyUF TsB1OKEP/wA4p2UmtfnjeaygPoWVteXZbsPWYQov3Sn7sCX2tirsVdirsVdirsVdirsVdirsVdiq 2WKOWJ4pVDxyKVdGFQVIoQR74q/PzXNCn/K/82tR0C8qumGQrbzNWjWcx528tT14igbwIYYq9BEA IBG4PQ4UMV85+QYtbX61aMsGpIKcm+xKo6K9OhHZvo+SryfVND1fS5fSv7WS3atAzD4W/wBVxVW+ g4EoIAk0AqcVZR5c/L3XdWlV5omsrLq08ylWI/yENC1fHpir13TNFtNNsYrK0ThDEKDuSe7Me5OF CA826xFoeizXbEfWGHp2qd2lYbfQv2jiqp+RX/ONtv8AmJ5ZvfMWu311p1vJOYdKaBUPqmOvrSt6 gbkof4RSm4bAln0//OD2hlwYPNd1GlNw9rG5r8xIn6sVV4P+cIfKgA9fzLfueNCUihQcqdd+e1e3 44q8F8rpfeT/ADrqXlHWh6MyTtbPWvEXERojKT+zIv2T3+HCFelfV8UPPvOf5azXM0mo6MoMsh5T 2ZIUMT1aMnap7g/2Yq83u7G8s5jDdwSW8o6pKpQ/ccCVOKKWWRY4kaSRjRUUEkn2AxVnPlT8sdQu pY7rWYzbWY+IWzbSyezAboPGu/68NK9SjtEjRY41CIgCoqigAGwAGKGM/mHrSaToUkSMBeXwMMK9 wpH7x/oU0+ZGKvcf+cQPy/l0HyHceY72PhfeZJFkgDDcWcFRCfEeozO/uOOBL3vFXYq7FXYq7FXY q7FXYq7FXYq7FXYq8f8A+cjfyVH5heXEvtKRR5p0hWaxrRfrMJ+JrZmNOp3jJ2DeAYnFXy95F88t p8h8ueZA1pPauYIppwUaNkPEwzBt1KkUqenQ4UPTxACARQg7gjCrjbAihFR4YqtWyiUkrGqk9SAB iq/6v7Yql+t6rpei2LXmozCGIbKOrO38qL1JwKwPyb5P80fnV54S3gR7TQbMg3t0BWO1tyd9zs00 lPhHf/VXYJfd+haJpmhaNZ6PpcIt9PsIUgtoR+yiCgqe5PUnucVR2KuxV88f85SfkZdeZrcedfLM DS6/YxhNSs4h8dzbxiqyRgdZYhtTqy7DdQCq8V/L/wA/2+pxx6Xq0gi1NKJFM+wnptuT0k/XhQ9A +r+2FWmtVYUZQR4EVxVpLONBRECjwAp+rFV31f2xVKPMnmDSfL9ibq/kAYg+jbrQySN4KP1noMCs b/KT8tNd/OLzs2q6sjweVrB1N/MKhCqnktnA3d2B+I/sjc7lQQl90W9vBbW8VtbxrDbwoscMKAKi Igoqqo2AAFAMVVMVdirsVdirsVdirsVdirsVdirsVdirsVeRfnP/AM45+WfzDD6paOukeaAtBfol YrjiPhW5QULbbBx8QH8wAGKvmHVtF/OX8qJTbaxp0kujxnjHcFWuLEjt6c6f3deysQf8nFUbp354 aJIgGoadcW8ncwFJlr4/EYj+vDaKRr/nT5NVSVhvHI6KIkqfvkAxtaSPUfzovrtxaaBpR+sSnhC8 pMsjMxoAsMY+14fEflja0yvyL/zjR+Znn3UItX88TTaLpTUJFwB9ddK14Q2x2hB8XAp14tgS+uPJ /k3y55P0OHRPL9mlnYQ7lV3eRyAGklc7u7U3J/ViqdYq7FXYq7FXgX51f84saT5tuLjzB5Tkj0nz DKTJc2rilpdOdyx47xSN3YAqT1FSWxV8+Xer/mr+W90umebNJmNuh4RG7U8WA7QXackkH0tja0nV j+dnleVVF3a3VtIftUVJEH+yDK3/AAuG0UiJ/wA5fJcaVjF1M38qRAf8TZcbWmPX/wCcOtanMth5 a0phczHjCSDcTsT04RIKV/4LG1pnP5c/84s+dvNuoR67+Yk82mae5DNZu1b+ZR0Uqarbp8/iH8o6 4Evrby/5e0Xy9pFto+i2kdjptovCC3iFFA6knuzMd2Y7k7nFUwxV2KuxV2KuxV2KuxV2KuxV2Kux V2KuxV2KuxVbJ6fpt6lPToefKnHjTete2KvGPOf/AEKh9Yl/T/8Ah363X9/9U4etyrvz+pfHy8a7 4qxe3/6Eo9ZOH6O5129T9IcPp5/D9+KvXfy//wCVP+mf8B/oTlT95+i/q3rUp/u30/3lafz4qzTF XYq7FXYq7FXYq7FUJq36J/R836X+r/o+n+kfW+Ho8f8AL9T4afPFXg3mv/oTP13/AEp+h/U35fov 6xxrUVp+jfh+7FUm0v8A6Ee+sD6t9X9Tb/er9McOv/Lz8GKvcPIH/KrPqrf4D/Q/o8f336J+r8qV /wB2+j8XX+bFWW4q7FXYq7FXYq7FXYq7FXYq7FX/2Q== - - - - - - xmp.did:F87F117407206811871F8ABB10CFDF09 - uuid:2febaa8e-26d7-aa43-a652-eb95dd2e0916 - uuid:44F4E52A333FDF119697BF3D5A982C1E - proof:pdf - - uuid:807614af-ea61-034d-bdc9-4644d641c546 - uuid:44F4E52A333FDF119697BF3D5A982C1E - uuid:44F4E52A333FDF119697BF3D5A982C1E - - - - - saved - xmp.iid:F87F117407206811871F8ABB10CFDF09 - 2011-07-30T18:14:29+01:00 - Adobe Illustrator CS5 - / - - - - - - Document - Basic RGB - - - 1 - True - False - - 512.000000 - 512.000000 - Pixels - - - - Cyan - Magenta - Yellow - Black - - - - - - Default Swatch Group - 0 - - - - White - RGB - PROCESS - 255 - 255 - 255 - - - Black - RGB - PROCESS - 0 - 0 - 0 - - - RGB Red - RGB - PROCESS - 255 - 0 - 0 - - - RGB Yellow - RGB - PROCESS - 255 - 255 - 0 - - - RGB Green - RGB - PROCESS - 0 - 255 - 0 - - - RGB Cyan - RGB - PROCESS - 0 - 255 - 255 - - - RGB Blue - RGB - PROCESS - 0 - 0 - 255 - - - RGB Magenta - RGB - PROCESS - 255 - 0 - 255 - - - R=193 G=39 B=45 - RGB - PROCESS - 193 - 39 - 45 - - - R=237 G=28 B=36 - RGB - PROCESS - 237 - 28 - 36 - - - R=241 G=90 B=36 - RGB - PROCESS - 241 - 90 - 36 - - - R=247 G=147 B=30 - RGB - PROCESS - 247 - 147 - 30 - - - R=251 G=176 B=59 - RGB - PROCESS - 251 - 176 - 59 - - - R=252 G=238 B=33 - RGB - PROCESS - 252 - 238 - 33 - - - R=217 G=224 B=33 - RGB - PROCESS - 217 - 224 - 33 - - - R=140 G=198 B=63 - RGB - PROCESS - 140 - 198 - 63 - - - R=57 G=181 B=74 - RGB - PROCESS - 57 - 181 - 74 - - - R=0 G=146 B=69 - RGB - PROCESS - 0 - 146 - 69 - - - R=0 G=104 B=55 - RGB - PROCESS - 0 - 104 - 55 - - - R=34 G=181 B=115 - RGB - PROCESS - 34 - 181 - 115 - - - R=0 G=169 B=157 - RGB - PROCESS - 0 - 169 - 157 - - - R=41 G=171 B=226 - RGB - PROCESS - 41 - 171 - 226 - - - R=0 G=113 B=188 - RGB - PROCESS - 0 - 113 - 188 - - - R=46 G=49 B=146 - RGB - PROCESS - 46 - 49 - 146 - - - R=27 G=20 B=100 - RGB - PROCESS - 27 - 20 - 100 - - - R=102 G=45 B=145 - RGB - PROCESS - 102 - 45 - 145 - - - R=147 G=39 B=143 - RGB - PROCESS - 147 - 39 - 143 - - - R=158 G=0 B=93 - RGB - PROCESS - 158 - 0 - 93 - - - R=212 G=20 B=90 - RGB - PROCESS - 212 - 20 - 90 - - - R=237 G=30 B=121 - RGB - PROCESS - 237 - 30 - 121 - - - R=199 G=178 B=153 - RGB - PROCESS - 199 - 178 - 153 - - - R=153 G=134 B=117 - RGB - PROCESS - 153 - 134 - 117 - - - R=115 G=99 B=87 - RGB - PROCESS - 115 - 99 - 87 - - - R=83 G=71 B=65 - RGB - PROCESS - 83 - 71 - 65 - - - R=198 G=156 B=109 - RGB - PROCESS - 198 - 156 - 109 - - - R=166 G=124 B=82 - RGB - PROCESS - 166 - 124 - 82 - - - R=140 G=98 B=57 - RGB - PROCESS - 140 - 98 - 57 - - - R=117 G=76 B=36 - RGB - PROCESS - 117 - 76 - 36 - - - R=96 G=56 B=19 - RGB - PROCESS - 96 - 56 - 19 - - - R=66 G=33 B=11 - RGB - PROCESS - 66 - 33 - 11 - - - - - - Grayscale - 1 - - - - K=100 - GRAY - PROCESS - 255 - - - K=90 - GRAY - PROCESS - 229 - - - K=80 - GRAY - PROCESS - 204 - - - K=70 - GRAY - PROCESS - 178 - - - K=60 - GRAY - PROCESS - 153 - - - K=50 - GRAY - PROCESS - 127 - - - K=40 - GRAY - PROCESS - 101 - - - K=30 - GRAY - PROCESS - 76 - - - K=20 - GRAY - PROCESS - 50 - - - K=10 - GRAY - PROCESS - 25 - - - R=241 G=241 B=242 - GRAY - PROCESS - 12 - - - - - - - - - Adobe PDF library 9.90 - - - - - - - - - - - - - - - - - - - - - - - - - endstream endobj 3 0 obj <> endobj 10 0 obj <>/Resources<>/ExtGState<>/Properties<>/Shading<>/XObject<>>>/Thumb 90 0 R/TrimBox[0.0 0.0 512.0 512.0]/Type/Page>> endobj 76 0 obj <>stream -H‰ÜW˲7 Ý÷WøÚ×’üÜr¬HŠº‹°¿•„ÅL(‚ßÏ9î¶{¦¤*• u™‘Æ’õ:’üðË£{xóÜ‹—nù¸—DûßÊÿþúmùÕý þÃOOÁýñiyx} îå‡åíòê 6qÙÄßâ FoÚœÖìcPwŒ(¾ª8k>Tq‚ϵ¹l¾es’‹Ïâž—{ú²$ñ-D'É|?FŸJub ¤NR²k?1.ƒQ̇`®4ŸbrV}°ìD6 êy¹§/‹¤ìK”y¼&Ÿ‚Ó|¸£eoÅ\ ^»é'ÆeÑ} ÅÕ涫B’]­>5D·IÔórOCÚ¡Tæq.¶® ºbñZû]R¥ïOÅ×im¶ÒóÑ`‹_|Tñ!µA>/'Æe±½4›N¸‚AýN‰ q?1.“DÅHqd¿¥žG‰D4­=Í‚ôBÁ‰C !Y„xõQ¡®% <ϘB¼yðnã£XtQX¹Ó¨DÐøyR¿£!žµËÍóaÀ¨'ðºoѨáĹLŽ!‘58tZfLònà† ƒ†Ú…°]¬¸ iw+|ð)ÄZ‘æ;â8Ü ¿)ë°P¡f]—ïÜÃÓûà>½w¯Þ¹·½Õ|½W=<âêÇ'ú?÷ôøó"Á}vѽqÓ®NúÏ[%¤ÖFàSåmü麬ÉÓ:·¢ª¢%g’ HT~‚„ÇkL¨-uéiàâçDª/(ÁUP1OrÕ<ÂhjA© u Ü'½‚>v™Á5Ï­p¤~# -¢¤ NJ=ËýÊÚ{Újì¤poU½è«€H4ÕvæÄæ-l6N^SÄ_,"Q‰+þ‚ž¢“†¢Ä+Bx1ëm.#H­ðRóªü‚ ÐR»*½P“–ܻتˆ»OçT^ºGq2 &h-êí!†$m  «ám ÅPd%¤Í&v«UL{gïfô§ý&ÑþÁ€bËî}œQVEÛT˜™Éˆ­§ž BÝ…Ø"³¡>dªcŸRúWÑ7´ ±¬7¡{'u¤/P¦47öщ:ä|é¡€v#¥'°„©ë4‰áøŠ&a éà”Š†KpbR º²¾-¤a<îò¼ž—÷ËÓiÐc(JèxH&‘Á¡’Ô)*9"ñ¯_@R1;rÅ åìSÖÿ€dàõ¹1y©eWˆÉýsÿ`–ÑÈ82ÆI¬òƒýðN¬ýWÆz—ÞôNõ;Ixl×ïŒ0%· üïÑGáìg÷C9¶eû¦{ð¡ L¾æ‘ræ²N1ƒÑ8:kfëÇg$®ÌË\œ¿SS‘)½“ÝýûªÛV7$דêõнß=8aʉúq¼Ù²Ó·ð°¢q ²í^ Ò¢EîuÐe4 s–ƒÜ¸_rï4V²çrpÐñ°à‘3´ìœy G–×a‡qföiyæ\ºe\ò´qR7i ?ë·ÝûËð*À¬›·^¿fÙ—Ö©ƒ“70ÌpZTʘ/UAc -¡å)žVúš|âpÃR¬±Ëú¤pSãÔÁÍ‹‘9t Φ£ß å/îÕ“¿7[–²uâtÎ)oe |_VÇáB)P‡ïM³½Û”ÜmSÿ­WsÕÌÜ~¸Ë` }2õ2ù ™t½‡ŒÞ@F÷²/nHž¡2è™:9aÊþc§þÞݺéH|Á¼æÓ%}ÅÃ%ƒOØ“±<5>•°g`pwêË)@2‹þÌÁã²baBp -q’;K®¢‚ݤW*ÅD:°~ T`íç£JOèh\‰¢ãZSêÖB n7ìÒßQ}K'{I葤LM±÷Ž -íÀº»z -íDµo]îÌ¡/ôA/¹fÄ'Ñž…ïCt" õÓ¥øúJAke9s Ï¥Ü±£iB¿Ø²øP½OÓá`&µ^RÍÚ „óØ3Ñ…φØÐB$#µIDh]+Õ Ùž ×ÿôÂ’Az¾Wt|ôß»[è%Ud°Î¾‚ƒ±TòM™K,€Ä ” k:b|»ä¸9Ôúón@T"eeB˜oŒÜnaæP^¡œ£U€QhéÞJ¨9› uÜs #£™ÐŽÙ¡„ÏWb`ïjŒ0›^(ž¿´ÝÓgròO¾#Y½„Yl·ˆ?sh^JÜö.Á@+ÇòÞEÎI:c~ýЯ7¨Ç¤ÏV¬p‰‰\jJàOÔÛDýíKÍŽ—ZpI´ÿ­üo‡~7ÆhÌÃ뫸—ÆSïíò·…‰R endstream endobj 77 0 obj <> endobj 90 0 obj <>stream -8;ZD.gPs,o%!4_eHG&pt:\mXE#6aOKEBq.IT0"9n@!b"'E$!X((QH?s"5?G?K#P20 -O/d)\T,/P1'qS?i"`crJ?H8d*KjRXIZ+u6FTjS-):gaeT(>+?(!Z6FT)AEal%;;Q@ -kb3O4qsuY.N]*EB(@]Z27":::JI9hMb@0>:^nab-+NNs/JHE@q?G;3L!m9!^.::8g -iM>Jef*'=g%mLeUpPAmn5I8u&(:V"^JE7%&U-SUuQX1AZ47 -)b\i'orh[PJOC%+(N\UM53;RTZn-;X. -d$#BDrYE[.o3UD]5(MDElGJ=9>,`#5E]% -cN&-!^1@~> endstream endobj 92 0 obj [/Indexed/DeviceRGB 255 93 0 R] endobj 93 0 obj <>stream -8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 88 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 cs 0 0 0 scn -/GS0 gs -507.579 6.422 -494.579 114.578 re -f - endstream endobj 89 0 obj <>/ExtGState<>>>/Subtype/Form>>stream -/CS0 cs 1 1 1 scn -/GS0 gs -q 1 0 0 1 536.5762 405.4023 cm -0 0 m -0 -88.638 -130.614 -160.492 -291.735 -160.492 c --452.856 -160.492 -583.471 -88.638 -583.471 0 c --583.471 88.637 -452.856 160.492 -291.735 160.492 c --130.614 160.492 0 88.637 0 0 c -f -Q - endstream endobj 95 0 obj <> endobj 81 0 obj <> endobj 79 0 obj [/ICCBased 96 0 R] endobj 96 0 obj <>stream -H‰œ–yTSwÇoÉž•°Ãc [€°5la‘QIBHØADED„ª•2ÖmtFOE.®c­Ö}êÒõ0êè8´׎8GNg¦Óïï÷9÷wïïÝß½÷ó '¥ªµÕ0 Ö ÏJŒÅb¤  - 2y­.-;!à’ÆK°ZÜ ü‹ž^i½"LÊÀ0ðÿ‰-×é @8(”µrœ;q®ª7èLöœy¥•&†Qëñq¶4±jž½ç|æ9ÚÄ -V³)gB£0ñiœWו8#©8wÕ©•õ8_Å٥ʨQãüÜ«QÊj@é&»A)/ÇÙgº>'K‚óÈtÕ;\ú” Ó¥$ÕºF½ZUnÀÜå˜(4TŒ%)ë«”ƒ0C&¯”阤Z£“i˜¿óœ8¦Úbx‘ƒE¡ÁÁBÑ;…ú¯›¿P¦ÞÎӓ̹žAü om?çW= -€x¯Íú·¶Ò-Œ¯Àòæ[›Ëû0ñ¾¾øÎ}ø¦y)7ta¾¾õõõ>j¥ÜÇTÐ7úŸ¿@ï¼ÏÇtÜ›ò`qÊ2™±Ê€™ê&¯®ª6ê±ZL®Ä„?â_øóyxg)Ë”z¥ÈçL­UáíÖ*ÔuµSkÿSeØO4?׸¸c¯¯Ø°.òò· åÒR´ ßÞô-•’2ð5ßáÞüÜÏ ú÷Sá>Ó£V­š‹“då`r£¾n~ÏôY &à+`œ;ÂA4ˆÉ 䀰ÈA9Ð=¨- t°lÃ`;»Á~pŒƒÁ ðGp| ®[`Lƒ‡`<¯ "A ˆ YA+äùCb(Š‡R¡,¨*T2B-Ð -¨ꇆ¡Ðnè÷ÐQètº}MA ï —0Óal»Á¾°ŽSàx ¬‚kà&¸^Á£ð>ø0|>_ƒ'á‡ð,ÂG!"F$H:Rˆ”!z¤éF‘Qd?r 9‹\A&‘GÈ ”ˆrQ ¢áhš‹ÊÑ´íE‡Ñ]èaô4zBgÐ×Á–àE#H ‹*B=¡‹0HØIøˆp†p0MxJ$ùD1„˜D, V›‰½Ä­ÄÄãÄKÄ»ÄY‰dEò"EÒI2’ÔEÚBÚGúŒt™4MzN¦‘Èþär!YKî ’÷?%_&ß#¿¢°(®”0J:EAi¤ôQÆ(Ç()Ó”WT6U@ æP+¨íÔ!ê~êêmêæD ¥eÒÔ´å´!ÚïhŸÓ¦h/èº']B/¢éëèÒÓ¿¢?a0nŒhF!ÃÀXÇØÍ8ÅøšñÜŒkæc&5S˜µ™˜6»lö˜Iaº2c˜K™MÌAæ!æEæ#…åÆ’°d¬VÖë(ëk–Íe‹Øél »—½‡}Ž}ŸCâ¸qâ9 -N'çÎ)Î].ÂuæJ¸rî -î÷ wšGä xR^¯‡÷[ÞoÆœchžgÞ`>bþ‰ù$á»ñ¥ü*~ÿ ÿ:ÿ¥…EŒ…ÒbÅ~‹ËÏ,m,£-•–Ý–,¯Y¾´Â¬â­*­6X[ݱF­=­3­ë­·YŸ±~dó ·‘ÛtÛ´¹i ÛzÚfÙ6Û~`{ÁvÖÎÞ.ÑNg·Åî”Ý#{¾}´}…ý€ý§ö¸‘j‡‡ÏþŠ™c1X6„Æfm“Ž;'_9 œr:œ8Ýq¦:‹ËœœO:ϸ8¸¤¹´¸ìu¹éJq»–»nv=ëúÌMà–ï¶ÊmÜí¾ÀR 4 ö -n»3Ü£ÜkÜGݯz=Ä•[=¾ô„=ƒ<Ë=GTB(É/ÙSòƒ,]6*›-•–¾W:#—È7Ë*¢ŠÊe¿ò^YDYÙ}U„j£êAyTù`ù#µD=¬þ¶"©b{ųÊôÊ+¬Ê¯: !kJ4Gµm¥ötµ}uCõ%—®K7YV³©fFŸ¢ßY Õ.©=bàá?SŒîÆ•Æ©ºÈº‘ºçõyõ‡Ø Ú† žkï5%4ý¦m–7Ÿlqlio™Z³lG+ÔZÚz²Í¹­³mzyâò]íÔöÊö?uøuôw|¿"űN»ÎåwW&®ÜÛe֥ﺱ*|ÕöÕèjõê‰5k¶¬yÝ­èþ¢Ç¯g°ç‡^yïkEk‡Öþ¸®lÝD_p߶õÄõÚõ×7DmØÕÏîoê¿»1mãál {àûMśΠnßLÝlÜ<9”úO¤[þ˜¸™$™™üšhšÕ›B›¯œœ‰œ÷dÒž@ž®ŸŸ‹Ÿú i Ø¡G¡¶¢&¢–££v£æ¤V¤Ç¥8¥©¦¦‹¦ý§n§à¨R¨Ä©7©©ªª««u«é¬\¬Ð­D­¸®-®¡¯¯‹°°u°ê±`±Ö²K²Â³8³®´%´œµµŠ¶¶y¶ð·h·à¸Y¸Ñ¹J¹Âº;ºµ».»§¼!¼›½½¾ -¾„¾ÿ¿z¿õÀpÀìÁgÁãÂ_ÂÛÃXÃÔÄQÄÎÅKÅÈÆFÆÃÇAÇ¿È=ȼÉ:ɹÊ8Ê·Ë6˶Ì5̵Í5͵Î6ζÏ7ϸÐ9кÑ<ѾÒ?ÒÁÓDÓÆÔIÔËÕNÕÑÖUÖØ×\×àØdØèÙlÙñÚvÚûÛ€ÜÜŠÝÝ–ÞÞ¢ß)߯à6à½áDáÌâSâÛãcãëäsäüå„æ æ–çç©è2è¼éFéÐê[êåëpëûì†ííœî(î´ï@ïÌðXðåñrñÿòŒóó§ô4ôÂõPõÞömöû÷Šøø¨ù8ùÇúWúçûwüü˜ý)ýºþKþÜÿmÿÿ ÷„óû endstream endobj 94 0 obj <> endobj 84 0 obj <> endobj 85 0 obj <> endobj 86 0 obj <> endobj 87 0 obj <> endobj 98 0 obj <>stream - endstream endobj 97 0 obj <> endobj 99 0 obj <> endobj 100 0 obj <> endobj 71 0 obj <> endobj 72 0 obj <> endobj 73 0 obj <> endobj 74 0 obj <> endobj 107 0 obj [/View/Design] endobj 108 0 obj <>>> endobj 105 0 obj [/View/Design] endobj 106 0 obj <>>> endobj 103 0 obj [/View/Design] endobj 104 0 obj <>>> endobj 101 0 obj [/View/Design] endobj 102 0 obj <>>> endobj 80 0 obj <> endobj 82 0 obj <> endobj 83 0 obj <> endobj 110 0 obj <> endobj 111 0 obj [0.0] endobj 112 0 obj <>/XObject<>>>/Subtype/Form>>stream -0 g -/GS0 gs --46.895 565.894 583.471 -320.984 re -f -q -0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /Fm0 Do -Q - endstream endobj 113 0 obj <> endobj 114 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream -q -419.6 365.446 m -414.319 365.446 409.165 364.915 404.179 363.916 c -374.027 434.636 303.875 484.212 222.14 484.212 c -112.892 484.212 24.329 395.649 24.329 286.402 c -24.329 241.821 39.081 200.689 63.963 167.609 c -51.904 153.863 44.578 135.862 44.578 116.139 c -44.578 73.004 79.545 38.036 122.68 38.036 c -156.741 38.036 185.693 59.849 196.373 90.261 c -204.807 89.163 213.406 88.591 222.14 88.591 c -230.657 88.591 239.049 89.13 247.283 90.175 c -257.895 59.637 286.907 37.708 321.059 37.708 c -364.193 37.708 399.16 72.675 399.16 115.81 c -399.16 135.448 391.896 153.38 379.928 167.104 c -390 180.404 398.426 195.017 404.91 210.641 c -409.67 209.734 414.576 209.241 419.6 209.241 c -462.734 209.241 497.701 244.209 497.701 287.343 c -497.701 330.478 462.734 365.446 419.6 365.446 c -W n -q -0 g -/GS0 gs --0.0000153 446.5039062 446.5039062 0.0000153 261.0146484 37.7080078 cm -BX /Sh0 sh EX Q -Q -/CS1 CS 0 0 0 SCN -10 w 4 M 0 j 0 J []0 d -/GS0 gs -q 1 0 0 1 419.5996 365.4458 cm -0 0 m --5.28 0 -10.435 -0.531 -15.421 -1.53 c --45.572 69.19 -115.725 118.767 -197.46 118.767 c --306.708 118.767 -395.271 30.204 -395.271 -79.044 c --395.271 -123.625 -380.519 -164.756 -355.636 -197.836 c --367.696 -211.583 -375.022 -229.583 -375.022 -249.307 c --375.022 -292.442 -340.055 -327.41 -296.92 -327.41 c --262.858 -327.41 -233.907 -305.597 -223.227 -275.185 c --214.792 -276.283 -206.193 -276.855 -197.46 -276.855 c --188.942 -276.855 -180.55 -276.316 -172.316 -275.271 c --161.705 -305.809 -132.692 -327.738 -98.541 -327.738 c --55.406 -327.738 -20.439 -292.771 -20.439 -249.636 c --20.439 -229.998 -27.704 -212.066 -39.672 -198.342 c --29.6 -185.042 -21.174 -170.429 -14.689 -154.805 c --9.93 -155.711 -5.023 -156.205 0 -156.205 c -43.135 -156.205 78.102 -121.237 78.102 -78.103 c -78.102 -34.968 43.135 0 0 0 c -h -S -Q - endstream endobj 115 0 obj <> endobj 116 0 obj <> endobj 118 0 obj <> endobj 119 0 obj <> endobj 120 0 obj <> endobj 121 0 obj <> endobj 117 0 obj [/ICCBased 96 0 R] endobj 109 0 obj <> endobj 122 0 obj [0.0] endobj 123 0 obj <>/XObject<>>>/Subtype/Form>>stream -0 g -/GS0 gs -13 121 494.579 -114.578 re -f -q -0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /Fm0 Do -Q - endstream endobj 124 0 obj <> endobj 125 0 obj <>/XObject<>>>/Subtype/Form>>stream -q -/GS0 gs -0 Tc 0 Tw 0 Ts 100 Tz 0 Tr /Fm0 Do -Q - endstream endobj 126 0 obj <> endobj 128 0 obj <>/ExtGState<>/Shading<>>>/Subtype/Form>>stream -q -7.977 8.752 m -113.295 8.752 l -408.581 8.752 l -507.01 8.752 l -507.01 37.756 l -507.01 77.308 l -408.581 77.308 l -113.295 77.308 l -7.977 77.308 l -7.977 37.756 l -h -W n -q -0 g -/GS0 gs -1 0 0 -1 0 0 cm -BX /Sh0 sh EX Q -Q - endstream endobj 129 0 obj <> endobj 130 0 obj <>stream -þý €‰þý 1}þý Òpþý ÒpüÔ“4 Òpû—)I ÒpúY¿] 1}úY¿]€‰úY¿]úY¿]û—)IüÔ“4€‰üÔ“4 1}üÔ“4 1}û—)I€‰û—)I úY¿]€‰úY¿] 1}úY¿] ÒpúY¿] ÒpùUr Òp÷Þë‡ Òpö¡› 1}ö¡›€‰ö¡›ö¡›÷Þë‡ùUr€‰ùUr 1}ùUr 1}÷Þ뇀‰÷Þë‡  Òpþý bùþý ‚ó‚þý „ þý „ üÔ“4„ û—)I„ úY¿]‚ó‚úY¿]bùúY¿] ÒpúY¿] Òpû—)I ÒpüÔ“4bùüÔ“4‚ó‚üÔ“4‚ó‚û—)Ibùû—)I ÒpúY¿]bùúY¿]‚ó‚úY¿]„ úY¿]„ ùUr„ ÷Þ뇄 ö¡›‚ó‚ö¡›bùö¡› Òpö¡› Òp÷Þë‡ ÒpùUrbùùUr‚ó‚ùUr‚ó‚÷Þë‡bù÷Þë‡ ;;;ö¡›€‰ö¡› 1}ö¡› Òpö¡› Òpõd° Òpô&­Ä ÒpòéCÙ 1}òéCÙ€‰òéCÙòéCÙô&­Äõd°€‰õd° 1}õd° 1}ô&­Ä€‰ô&­Ä---òéCÙ€‰òéCÙ 1}òéCÙ ÒpòéCÙ Òpñ«Ùí Òpðnp Òpï1 1}ï1€‰ï1ï1ðnpñ«Ù퀉ñ«Ùí 1}ñ«Ùí 1}ðnp€‰ðnp---333 Òpö¡›bùö¡›‚ó‚ö¡›„ ö¡›„ õd°„ ô&­Ä„ òéCÙ‚ó‚òéCÙbùòéCÙ ÒpòéCÙ Òpô&­Ä Òpõd°bùõd°‚ó‚õd°‚ó‚ô&­Äbùô&­Ä;;;PPP--- ÒpòéCÙbùòéCÙ‚ó‚òéCÙ„ òéCÙ„ ñ«Ùí„ ðnp„ ï1‚ó‚ï1bùï1 Òpï1 Òpðnp Òpñ«Ùíbùñ«Ùí‚ó‚ñ«Ùí‚ó‚ðnpbùðnp---PPPXXX333„ þý „”þý $µˆþý (…V{þý (…V{üÔ“4(…V{û—)I(…V{úY¿]$µˆúY¿]„”úY¿]„ úY¿]„ û—)I„ üÔ“4„”üÔ“4$µˆüÔ“4$µˆû—)I„”û—)I---„ úY¿]„”úY¿]$µˆúY¿](…V{úY¿](…V{ùUr(…V{÷Þë‡(…V{ö¡›$µˆö¡›„”ö¡›„ ö¡›„ ÷Þ뇄 ùUr„”ùUr$µˆùUr$µˆ÷Þ뇄”÷Þë‡---PPP;;;(…V{þý -çþý 1†wþý 6þý 6üÔ“46û—)I6úY¿]1†wúY¿]-çúY¿](…V{úY¿](…V{û—)I(…V{üÔ“4-çüÔ“41†wüÔ“41†wû—)I-çû—)I333---(…V{úY¿]-çúY¿]1†wúY¿]6úY¿]6ùUr6÷Þë‡6ö¡›1†wö¡›-çö¡›(…V{ö¡›(…V{÷Þë‡(…V{ùUr-çùUr1†wùUr1†w÷Þë‡-ç÷Þë‡---333XXXPPP„ ö¡›„”ö¡›$µˆö¡›(…V{ö¡›(…V{õd°(…V{ô&­Ä(…V{òéCÙ$µˆòéCÙ„”òéCÙ„ òéCÙ„ ô&­Ä„ õd°„”õd°$µˆõd°$µˆô&­Ä„”ô&­Ä;;;PPPfffPPP„ òéCÙ„”òéCÙ$µˆòéCÙ(…V{òéCÙ(…V{ñ«Ùí(…V{ðnp(…V{ï1$µˆï1„”ï1„ ï1„ ðnp„ ñ«Ùí„”ñ«Ùí$µˆñ«Ùí$µˆðnp„”ðnpPPPfffnnnXXX(…V{ö¡›-çö¡›1†wö¡›6ö¡›6õd°6ô&­Ä6òéCÙ1†wòéCÙ-çòéCÙ(…V{òéCÙ(…V{ô&­Ä(…V{õd°-çõd°1†wõd°1†wô&­Ä-çô&­ÄPPPXXXnnnfff(…V{òéCÙ-çòéCÙ1†wòéCÙ6òéCÙ6ñ«Ùí6ðnp6ï11†wï1-çï1(…V{ï1(…V{ðnp(…V{ñ«Ùí-çñ«Ùí1†wñ«Ùí1†wðnp-çðnpfffnnnuuunnn6þý h…Fþý ›„ þý ÍÂþý ÍÂüÔ“4ÍÂû—)IÍÂúY¿]›„ úY¿]h…FúY¿]6úY¿]6û—)I6üÔ“4h…FüÔ“4›„ üÔ“4›„ û—)Ih…Fû—)I3333336úY¿]h…FúY¿]›„ úY¿]ÍÂúY¿]ÍÂùUrÍÂ÷Þë‡ÍÂö¡››„ ö¡›h…Fö¡›6ö¡›6÷Þë‡6ùUrh…FùUr›„ ùUr›„ ÷Þë‡h…F÷Þë‡333333XXXXXX6ö¡›h…Fö¡››„ ö¡›ÍÂö¡›ÍÂõd°ÍÂô&­ÄÍÂòéCÙ›„ òéCÙh…FòéCÙ6òéCÙ6ô&­Ä6õd°h…Fõd°›„ õd°›„ ô&­Äh…Fô&­ÄXXXXXXnnnnnn6òéCÙh…FòéCÙ›„ òéCÙÍÂòéCÙÍÂñ«ÙíÍÂðnpÍÂï1›„ ï1h…Fï16ï16ðnp6ñ«Ùíh…Fñ«Ù후 ñ«Ù후 ðnph…FðnpnnnnnnuuuuuuÍÂþý Ѷé¤þý ÕìDþý Ú!8äþý Ú!8äüÔ“4Ú!8äû—)IÚ!8äúY¿]ÕìDúY¿]Ѷé¤úY¿]ÍÂúY¿]ÍÂû—)IÍÂüÔ“4Ѷé¤üÔ“4ÕìDüÔ“4ÕìDû—)IѶé¤û—)I---333ÍÂúY¿]Ѷé¤úY¿]ÕìDúY¿]Ú!8äúY¿]Ú!8äùUrÚ!8ä÷Þë‡Ú!8äö¡›ÕìDö¡›Ñ¶é¤ö¡›ÍÂö¡›ÍÂ÷Þë‡ÍÂùUrѶé¤ùUrÕìDùUrÕìD÷Þë‡Ñ¶é¤÷Þë‡333---PPPXXXÚ!8äþý ÞVXþý ⋨øþý æÀИþý æÀИüÔ“4æÀИû—)IæÀИúY¿]⋨øúY¿]ÞVXúY¿]Ú!8äúY¿]Ú!8äû—)IÚ!8äüÔ“4ÞVXüÔ“4⋨øüÔ“4⋨øû—)IÞVXû—)I---Ú!8äúY¿]ÞVXúY¿]⋨øúY¿]æÀИúY¿]æÀИùUræÀИ÷Þë‡æÀИö¡›â‹¨øö¡›ÞVXö¡›Ú!8äö¡›Ú!8ä÷Þë‡Ú!8äùUrÞVXùUr⋨øùUr⋨ø÷Þë‡ÞVX÷Þë‡---;;;PPPÍÂö¡›Ñ¶é¤ö¡›ÕìDö¡›Ú!8äö¡›Ú!8äõd°Ú!8äô&­ÄÚ!8äòéCÙÕìDòéCÙѶé¤òéCÙÍÂòéCÙÍÂô&­ÄÍÂõd°Ñ¶é¤õd°ÕìDõd°ÕìDô&­ÄѶé¤ô&­ÄXXXPPPfffnnnÍÂòéCÙѶé¤òéCÙÕìDòéCÙÚ!8äòéCÙÚ!8äñ«ÙíÚ!8äðnpÚ!8äï1ÕìDï1Ѷé¤ï1ÍÂï1ÍÂðnpÍÂñ«ÙíѶé¤ñ«ÙíÕìDñ«ÙíÕìDðnpѶé¤ðnpnnnfffnnnuuuÚ!8äö¡›ÞVXö¡›â‹¨øö¡›æÀИö¡›æÀИõd°æÀИô&­ÄæÀИòéCÙ⋨øòéCÙÞVXòéCÙÚ!8äòéCÙÚ!8äô&­ÄÚ!8äõd°ÞVXõd°â‹¨øõd°â‹¨øô&­ÄÞVXô&­ÄPPP;;;PPPfffÚ!8äòéCÙÞVXòéCÙ⋨øòéCÙæÀИòéCÙæÀИñ«ÙíæÀИðnpæÀИï1⋨øï1ÞVXï1Ú!8äï1Ú!8äðnpÚ!8äñ«ÙíÞVXñ«Ùí⋨øñ«Ùí⋨øðnpÞVXðnpfffPPPXXXnnnæÀИþý êõø7þý ï+×þý ó`hKþý ó`hKüÔ“4ó`hKû—)Ió`hKúY¿]ï+×úY¿]êõø7úY¿]æÀИúY¿]æÀИû—)IæÀИüÔ“4êõø7üÔ“4ï+×üÔ“4ï+×û—)Iêõø7û—)I æÀИúY¿]êõø7úY¿]ï+×úY¿]ó`hKúY¿]ó`hKùUró`hK÷Þë‡ó`hKö¡›ï+×ö¡›êõø7ö¡›æÀИö¡›æÀИ÷Þë‡æÀИùUrêõø7ùUrï+×ùUrï+×÷Þë‡êõø7÷Þë‡ ;;;ó`hKþý ÷•ëþý ûÊ·‹þý ÿÿÿÿþý ÿÿÿÿüÔ“4ÿÿÿÿû—)IÿÿÿÿúY¿]ûÊ·‹úY¿]÷•ëúY¿]ó`hKúY¿]ó`hKû—)Ió`hKüÔ“4÷•ëüÔ“4ûÊ·‹üÔ“4ûÊ·‹û—)I÷•ëû—)I ó`hKúY¿]÷•ëúY¿]ûÊ·‹úY¿]ÿÿÿÿúY¿]ÿÿÿÿùUrÿÿÿÿ÷Þë‡ÿÿÿÿö¡›ûÊ·‹ö¡›÷•ëö¡›ó`hKö¡›ó`hK÷Þë‡ó`hKùUr÷•ëùUrûÊ·‹ùUrûÊ·‹÷Þë‡÷•ë÷Þë‡ æÀИö¡›êõø7ö¡›ï+×ö¡›ó`hKö¡›ó`hKõd°ó`hKô&­Äó`hKòéCÙï+×òéCÙêõø7òéCÙæÀИòéCÙæÀИô&­ÄæÀИõd°êõø7õd°ï+×õd°ï+×ô&­Äêõø7ô&­Ä;;;---PPPæÀИòéCÙêõø7òéCÙï+×òéCÙó`hKòéCÙó`hKñ«Ùíó`hKðnpó`hKï1ï+×ï1êõø7ï1æÀИï1æÀИðnpæÀИñ«Ùíêõø7ñ«Ùíï+×ñ«Ùíï+×ðnpêõø7ðnpPPP---333XXXó`hKö¡›÷•ëö¡›ûÊ·‹ö¡›ÿÿÿÿö¡›ÿÿÿÿõd°ÿÿÿÿô&­ÄÿÿÿÿòéCÙûÊ·‹òéCÙ÷•ëòéCÙó`hKòéCÙó`hKô&­Äó`hKõd°÷•ëõd°ûÊ·‹õd°ûÊ·‹ô&­Ä÷•ëô&­Ä---ó`hKòéCÙ÷•ëòéCÙûÊ·‹òéCÙÿÿÿÿòéCÙÿÿÿÿñ«Ùíÿÿÿÿðnpÿÿÿÿï1ûÊ·‹ï1÷•ëï1ó`hKï1ó`hKðnpó`hKñ«Ùí÷•ëñ«ÙíûÊ·‹ñ«ÙíûÊ·‹ðnp÷•ëðnp---333ï1€‰ï1 1}ï1 Òpï1 Òpí€/Õ ÒpëÏY” ÒpêƒS 1}êƒS€‰êƒSêƒSëÏY”í€/Õ€‰í€/Õ 1}í€/Õ 1}ëÏY”€‰ëÏY”333---êƒS€‰êƒS 1}êƒS ÒpêƒS Òpèm­ Òpæ¼ÖÑ Òpå 1}å €‰å å æ¼ÖÑèm­€‰èm­ 1}èm­ 1}æ¼ÖÑ€‰æ¼ÖÑ--- Òpï1bùï1‚ó‚ï1„ ï1„ í€/Õ„ ëÏY”„ êƒS‚ó‚êƒSbùêƒS ÒpêƒS ÒpëÏY” Òpí€/Õbùí€/Õ‚ó‚í€/Õ‚ó‚ëÏY”bùëÏY”333XXXPPP--- ÒpêƒSbùêƒS‚ó‚êƒS„ êƒS„ èm­„ æ¼ÖÑ„ å ‚ó‚å bùå Òpå Òpæ¼ÖÑ Òpèm­bùèm­‚ó‚èm­‚ó‚æ¼ÖÑbùæ¼ÖÑ---PPP;;;å €‰å 1}å Òpå Òpã[*O ÒpáªT Òpßù}Í 1}ßù}Í€‰ßù}Íßù}ÍáªTã[*O€‰ã[*O 1}ã[*O 1}áªT€‰áªT ßù}Í€‰ßù}Í 1}ßù}Í Òpßù}Í ÒpÞH§‹ ÒpÜ—°u ÒpÚæÚ4 1}ÚæÚ4€‰ÚæÚ4ÚæÚ4Ü—°uÞH§‹€‰ÞH§‹ 1}ÞH§‹ 1}Ü—°u€‰Ü—°u Òpå bùå ‚ó‚å „ å „ ã[*O„ áªT„ ßù}Í‚ó‚ßù}Íbùßù}Í Òpßù}Í ÒpáªT Òpã[*Obùã[*O‚ó‚ã[*O‚ó‚áªTbùáªT;;; Òpßù}Íbùßù}Í‚ó‚ßù}Í„ ßù}Í„ ÞH§‹„ Ü—°u„ ÚæÚ4‚ó‚ÚæÚ4bùÚæÚ4 ÒpÚæÚ4 ÒpÜ—°u ÒpÞH§‹bùÞH§‹‚ó‚ÞH§‹‚ó‚Ü—°ubùÜ—°u „ ï1„”ï1$µˆï1(…V{ï1(…V{í€/Õ(…V{ëÏY”(…V{êƒS$µˆêƒS„”êƒS„ êƒS„ ëÏY”„ í€/Õ„”í€/Õ$µˆí€/Õ$µˆëÏY”„”ëÏY”XXXnnnfffPPP„ êƒS„”êƒS$µˆêƒS(…V{êƒS(…V{èm­(…V{æ¼ÖÑ(…V{å $µˆå „”å „ å „ æ¼ÖÑ„ èm­„”èm­$µˆèm­$µˆæ¼ÖÑ„”æ¼ÖÑPPPfffPPP;;;(…V{ï1-çï11†wï16ï16í€/Õ6ëÏY”6êƒS1†wêƒS-çêƒS(…V{êƒS(…V{ëÏY”(…V{í€/Õ-çí€/Õ1†wí€/Õ1†wëÏY”-çëÏY”nnnuuunnnfff(…V{êƒS-çêƒS1†wêƒS6êƒS6èm­6æ¼ÖÑ6å 1†wå -çå (…V{å (…V{æ¼ÖÑ(…V{èm­-çèm­1†wèm­1†wæ¼ÖÑ-çæ¼ÖÑfffnnnXXXPPP„ å „”å $µˆå (…V{å (…V{ã[*O(…V{áªT(…V{ßù}Í$µˆßù}Í„”ßù}Í„ ßù}Í„ áªT„ ã[*O„”ã[*O$µˆã[*O$µˆáªT„”áªT;;;PPP---„ ßù}Í„”ßù}Í$µˆßù}Í(…V{ßù}Í(…V{ÞH§‹(…V{Ü—°u(…V{ÚæÚ4$µˆÚæÚ4„”ÚæÚ4„ ÚæÚ4„ Ü—°u„ ÞH§‹„”ÞH§‹$µˆÞH§‹$µˆÜ—°u„”Ü—°u---(…V{å -çå 1†wå 6å 6ã[*O6áªT6ßù}Í1†wßù}Í-çßù}Í(…V{ßù}Í(…V{áªT(…V{ã[*O-çã[*O1†wã[*O1†wáªT-çáªTPPPXXX333---(…V{ßù}Í-çßù}Í1†wßù}Í6ßù}Í6ÞH§‹6Ü—°u6ÚæÚ41†wÚæÚ4-çÚæÚ4(…V{ÚæÚ4(…V{Ü—°u(…V{ÞH§‹-çÞH§‹1†wÞH§‹1†wÜ—°u-çÜ—°u---3336ï1h…Fï1›„ ï1ÍÂï1ÍÂí€/ÕÍÂëÏY”ÍÂêƒS›„ êƒSh…FêƒS6êƒS6ëÏY”6í€/Õh…Fí€/Õ›„ í€/Õ›„ ëÏY”h…FëÏY”uuuuuunnnnnn6êƒSh…FêƒS›„ êƒSÍÂêƒSÍÂèm­ÍÂæ¼ÖÑÍÂå ›„ å h…Få 6å 6æ¼ÖÑ6èm­h…Fèm­›„ èm­›„ æ¼ÖÑh…Fæ¼ÖÑnnnnnnXXXXXX6å h…Få ›„ å ÍÂå ÍÂã[*OÍÂáªTÍÂßù}Í›„ ßù}Íh…Fßù}Í6ßù}Í6áªT6ã[*Oh…Fã[*O›„ ã[*O›„ áªTh…FáªTXXXXXX3333336ßù}Íh…Fßù}Í›„ ßù}ÍÍÂßù}ÍÍÂÞH§‹ÍÂÜ—°uÍÂÚæÚ4›„ ÚæÚ4h…FÚæÚ46ÚæÚ46Ü—°u6ÞH§‹h…FÞH§‹›„ ÞH§‹›„ Ü—°uh…FÜ—°u333333ÍÂï1Ѷé¤ï1ÕìDï1Ú!8äï1Ú!8äí€/ÕÚ!8äëÏY”Ú!8äêƒSÕìDêƒSѶé¤êƒSÍÂêƒSÍÂëÏY”ÍÂí€/ÕѶé¤í€/ÕÕìDí€/ÕÕìDëÏY”Ѷé¤ëÏY”uuunnnfffnnnÍÂêƒSѶé¤êƒSÕìDêƒSÚ!8äêƒSÚ!8äèm­Ú!8äæ¼ÖÑÚ!8äå ÕìDå Ѷé¤å ÍÂå ÍÂæ¼ÖÑÍÂèm­Ѷé¤èm­ÕìDèm­ÕìDæ¼ÖÑѶé¤æ¼ÖÑnnnfffPPPXXXÚ!8äï1ÞVXï1⋨øï1æÀИï1æÀИí€/ÕæÀИëÏY”æÀИêƒS⋨øêƒSÞVXêƒSÚ!8äêƒSÚ!8äëÏY”Ú!8äí€/ÕÞVXí€/Õ⋨øí€/Õ⋨øëÏY”ÞVXëÏY”nnnXXXPPPfffÚ!8äêƒSÞVXêƒS⋨øêƒSæÀИêƒSæÀИèm­æÀИæ¼ÖÑæÀИå ⋨øå ÞVXå Ú!8äå Ú!8äæ¼ÖÑÚ!8äèm­ÞVXèm­⋨øèm­⋨øæ¼ÖÑÞVXæ¼ÖÑfffPPP;;;PPPÍÂå Ѷé¤å ÕìDå Ú!8äå Ú!8äã[*OÚ!8äáªTÚ!8äßù}ÍÕìDßù}ÍѶé¤ßù}ÍÍÂßù}ÍÍÂáªTÍÂã[*OѶé¤ã[*OÕìDã[*OÕìDáªTѶé¤áªTXXXPPP---333ÍÂßù}ÍѶé¤ßù}ÍÕìDßù}ÍÚ!8äßù}ÍÚ!8äÞH§‹Ú!8äÜ—°uÚ!8äÚæÚ4ÕìDÚæÚ4Ѷé¤ÚæÚ4ÍÂÚæÚ4ÍÂÜ—°uÍÂÞH§‹Ñ¶é¤ÞH§‹ÕìDÞH§‹ÕìDÜ—°uѶé¤Ü—°u333---Ú!8äå ÞVXå ⋨øå æÀИå æÀИã[*OæÀИáªTæÀИßù}Í⋨øßù}ÍÞVXßù}ÍÚ!8äßù}ÍÚ!8äáªTÚ!8äã[*OÞVXã[*O⋨øã[*O⋨øáªTÞVXáªTPPP;;;---Ú!8äßù}ÍÞVXßù}Í⋨øßù}ÍæÀИßù}ÍæÀИÞH§‹æÀИܗ°uæÀИÚæÚ4⋨øÚæÚ4ÞVXÚæÚ4Ú!8äÚæÚ4Ú!8äÜ—°uÚ!8äÞH§‹ÞVXÞH§‹â‹¨øÞH§‹â‹¨øÜ—°uÞVXÜ—°u---æÀИï1êõø7ï1ï+×ï1ó`hKï1ó`hKí€/Õó`hKëÏY”ó`hKêƒSï+×êƒSêõø7êƒSæÀИêƒSæÀИëÏY”æÀИí€/Õêõø7í€/Õï+×í€/Õï+×ëÏY”êõø7ëÏY”XXX333---PPPæÀИêƒSêõø7êƒSï+×êƒSó`hKêƒSó`hKèm­ó`hKæ¼ÖÑó`hKå ï+×å êõø7å æÀИå æÀИæ¼ÖÑæÀИèm­êõø7èm­ï+×èm­ï+×æ¼ÖÑêõø7æ¼ÖÑPPP---;;;ó`hKï1÷•ëï1ûÊ·‹ï1ÿÿÿÿï1ÿÿÿÿí€/ÕÿÿÿÿëÏY”ÿÿÿÿêƒSûÊ·‹êƒS÷•ëêƒSó`hKêƒSó`hKëÏY”ó`hKí€/Õ÷•ëí€/ÕûÊ·‹í€/ÕûÊ·‹ëÏY”÷•ëëÏY”333---ó`hKêƒS÷•ëêƒSûÊ·‹êƒSÿÿÿÿêƒSÿÿÿÿèm­ÿÿÿÿæ¼ÖÑÿÿÿÿå ûÊ·‹å ÷•ëå ó`hKå ó`hKæ¼ÖÑó`hKèm­÷•ëèm­ûÊ·‹èm­ûÊ·‹æ¼ÖÑ÷•ëæ¼ÖÑ---æÀИå êõø7å ï+×å ó`hKå ó`hKã[*Oó`hKáªTó`hKßù}Íï+×ßù}Íêõø7ßù}ÍæÀИßù}ÍæÀИáªTæÀИã[*Oêõø7ã[*Oï+×ã[*Oï+×áªTêõø7áªT;;; æÀИßù}Íêõø7ßù}Íï+×ßù}Íó`hKßù}Íó`hKÞH§‹ó`hKÜ—°uó`hKÚæÚ4ï+×ÚæÚ4êõø7ÚæÚ4æÀИÚæÚ4æÀИܗ°uæÀИÞH§‹êõø7ÞH§‹ï+×ÞH§‹ï+×Ü—°uêõø7Ü—°u ó`hKå ÷•ëå ûÊ·‹å ÿÿÿÿå ÿÿÿÿã[*OÿÿÿÿáªTÿÿÿÿßù}ÍûÊ·‹ßù}Í÷•ëßù}Íó`hKßù}Íó`hKáªTó`hKã[*O÷•ëã[*OûÊ·‹ã[*OûÊ·‹áªT÷•ëáªT ó`hKßù}Í÷•ëßù}ÍûÊ·‹ßù}Íÿÿÿÿßù}ÍÿÿÿÿÞH§‹ÿÿÿÿÜ—°uÿÿÿÿÚæÚ4ûÊ·‹ÚæÚ4÷•ëÚæÚ4ó`hKÚæÚ4ó`hKÜ—°uó`hKÞH§‹÷•ëÞH§‹ûÊ·‹ÞH§‹ûÊ·‹Ü—°u÷•ëÜ—°u endstream endobj 127 0 obj <> endobj 78 0 obj <> endobj 131 0 obj <> endobj 132 0 obj <>stream -%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 15.0 %%AI8_CreatorVersion: 15.0.2 %%For: (Aleks Kissinger) () %%Title: (tikzit.ai) %%CreationDate: 10/01/2018 09:38 %%Canvassize: 16383 %%BoundingBox: -47 32 537 566 %%HiResBoundingBox: -46.8945 32.708 536.5762 565.894 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 11.0 %AI12_BuildNumber: 399 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_Cropmarks: 0 0 512 512 %AI3_TemplateBox: 256.5 255.5 256.5 255.5 %AI3_TileBox: -50 -140 562 652 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 6 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 4 %AI9_OpenToView: -745 843 0.5 979 715 18 0 0 73 134 0 0 0 1 1 0 1 1 0 1 %AI5_OpenViewLayers: 7772 %%PageOrigin:0 0 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 133 0 obj <>stream -%%BoundingBox: -47 32 537 566 %%HiResBoundingBox: -46.8945 32.708 536.5762 565.894 %AI7_Thumbnail: 128 120 8 %%BeginData: 14412 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFDFCFFFD5BFF %A8FD76FFA8A85252FD0427F827F8272752527D7DA8A8FD6AFF7D52FD13F8 %27277DA8FD63FFA85227FD07F827277D527D7DA87D7D52522727FD06F827 %7DA8FD5EFF7D52FD05F85252A8A8FD0FFFA87D2727FD04F827A8FD5AFF7D %27FD04F8527DFD0BFFA8FD0BFFA8A85227F8F8F8277DFD56FF7D27F8F8F8 %277DFD1DFFA97D27F8F8F827A8FD52FFA827F8F8F827A8FD04FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFF7D52F8F8 %F827A8FD4FFF7DF8F8F8277DFD26FFA827F8F8F852FD4CFFA827F8F8F87D %FFFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFFFFF7D27F8F827FD4AFF7D27F8F827FD05FFA8FF %FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF %A8FFFFFFA8FFFFFFA852F8F8F8A8FD47FF52F8F8F852FFFFFFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFFF7DF8F8F87DFD45FF52F8F827A8FFFFFFCBFFFFFF %CBFFFFFFCBFFFFFFCBFFFFFFCBFFFFFFCBFFFFFFCBFFFFFFCBFFFFFFCBFF %FFFFCBFFFFFFCBFFFFFFA9FFFFA827F8F852FD43FF27F8F827A8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFF27F8F852FD41FF27F8F852 %A8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FF %FFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF52F8F852 %FD3FFF52F8F852A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FF52F8F852FD3DFF7DF8F852FFFFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFFFFF52F8F87DFD3BFF7DF8F827A8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF27 %F8F87DFD39FFA8F8F827A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FF27F8F8A8FD37FFA827F8F87EFFA8A8A8 %FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8 %A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFFD04A8 %F8F8F8FD37FF7DF8F87DFFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8 %FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFFFA8F8F852FD35FFA8F8F852FFA8FF %A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8 %A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF %A8A8A8FFFF52F8F87DFD34FF27F8F8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA827F827FD33 %FF52F8F87DFD45A8FF7DF8F87DFD31FFA827F852A8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FFA8FF %A8FF52F8F8FD31FF52F8F87DFFFD48A8F8F852FD30FFF8F852FFA8A8A8FF %A8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A9 %A8FFA8FFA8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FFA8A8A8FF %A8A8A8FFA8A8A8FFFF7DF8F8A8FD2EFF52F8F8FD22A8FFFD07A8FFFD1FA8 %AFA8F8F8527D7D527D7DA8A8FD27FF27F852A8FFA8AFA8FFA8AFA8FFA8AF %A8FFA8AFA8FFA8AFA8FFA8AFA8FFA8AFA8FFA8FF7D7D2752275227522752 %7DA8A8FFA8AFA8FFA8AFA8FFA8AFA8FFA8AFA8FFA8AFA8FFA8AFA8FFA8AF %A8FFA8FF52FD08F827277DFD24FF7DF8F87DFD1CA8AFA87D27FD0CF8527D %FFFD1EA8F8F8F827F827FD05F82752FD22FF27F827FFA8A8A8A9A8A8A8A9 %A8A8A8A9A8A8A8A9A8A8A8A9A8A8A8A9A8A8A8FF7D27F827F827F827F827 %F827F827F827F82727FD04A8A9A8A8A8A9A8A8A8A9A8A8A8A9A8A8A8A9A8 %A8A8A9A8A8A8FFA87D7DFD05A87D7D27FD04F8A8FD1FFFA8F8F87DFD1CA8 %27F8F827F827F827F827F827F827F827F827F8F8F87DFD23A8A9A8A87D52 %F8F8F852FD1EFF7DF827A8FFA8A8A8A9A8A8A8A9A8A8A8A9A8A8A8A9A8A8 %A8A9FD06A82727F827F827F827F827F827F827F827F827F827F827F87DA8 %FFA8A8A8A9A8A8A8A9A8A8A8A9A8A8A8A9A8A8A8A9A8A8A8A9A8A8A8A9A8 %A8A8A9A8A8A8FFA8A827F8F852FD1DFF27F827FD1BA827F8F827F827F827 %F827F827F827F827F827F827F827F827F87DFD28A827F8F852FD1CFF27F8 %7DFD1AA82727F827F827F827F827F827F827F827F827F827F827F827F827 %F87DFD1DA8FFFD09A8FF52F8F852FD1AFFA8F8F87DA8A8A87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87DA8A8A87DA852F8F827F827F827F827F827F827 %F827F827F827F827F827F827F827F8FD05A87DA8A8A87DA8A8A87DA8A8A8 %7DA8A8A87DFD05A87D7D7D7E7DFD05A87DA8A8A827F8F87DFD19FF7DF8F8 %FD18A8FF7D27F8272727F8272727F8272727F8272727F8272727F8272727 %F8FD0427FFFD16A87D522727F827F82752FD08A8FF27F8F8FD19FF52F827 %FD04A87DA8A8A87DA8A8A87DA8A8A87DA8A8A87DFD04A852F827F827F827 %F827F827F827F827F827F827F827F827F827F827F827F8F87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87DFD05A827F8F827F827F827F8F8F852A8A87DFD %04A87EF8F852FD18FF27F852FFFD17A87DF8272727F8272727F8272727F8 %272727F8272727F8272727F8272727F827F852FD14A82727F827F8272727 %F8272727F852FD07A852F827A8FD16FFA8F8F87DA8A87DA87DA87DA87DA8 %7DA87DA87DA87DA87DA87DA87DA827F8F827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F87DA8A87DA87DA87DA87DA87DA8 %7DA87DA87DA827F8F827F827F827F827F827F827F852A8A87DA87DA87DF8 %F87DFD16FFA8F8F87DFD18A827F8272727F8272727F8272727F8272727F8 %272727F8272727F8272727F827272752FFFD0FA8FF5227F8272727F82727 %27F8272727F827F87DFD06A827F827FD16FF7DF8F8A8A8A87DA87EA87DA8 %7EA87DA87EA87DA87EA87DA87EA8A87DF827F827F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F8277DA87EA87DA87EA87DA8 %7EA87DA87EA87D27F827F827F827F827F827F827F827F82727A87DA87DA8 %847DF8F8A8FD15FFA8F8277DA8A8A884A8A8A884A8A8A884A8A8A884A8A8 %A884A8A8A852272727F8272727F8272727F8272727F8272727F8272727F8 %272727F8272727F827F85284A8A8A884A8A8A884A8A8A884A8A852F82727 %27F8272727F8272727F8272727F82759A87DA87DA87DF8F8A8FD15FF52F8 %F8A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8A852F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F82752A8A8A87DA8A8A87DFD05A82727F827F827F827F827F827F827F827 %F827F8527DA87DA87DA8F8F852FD15FF7DF8277EFD17A8FD2427F827277D %7DA87DA87DA87DA87D7DFD1527A87DA87DA87D27F87DFD15FF52F827A87D %A87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D27F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F827F827F827F827F827F827F8 %F8F8277DA87DA87DA827F852FD15FF7DF8277DA87DA87EA87DA8A8A87DA8 %A8A87DA8A8A87DA8A8A87DA82727F8272727F8272727F8272727F8272727 %F8272727F8272727F8272727F8272727F8272727F8FD0427522752275227 %27F8272727F8272727F8FD0727FD05F8A87DA87DA8A852F852FD15FF52F8 %05A87D7D7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87D52F827F827 %F827F827F827F827F827F827F827F827F827F827F827F827F827F827F827 %F827275252A87DA87DA87DA87DA87D52F827F827F827F827F827F827FD07 %F8277DA87D7D7DA827F852FD15FF7DF8277DA87DA87DA87DA87DA87DA8A8 %A87DA8A8A87DA8A8A87DA852FD232752FD05A884A8A8A87EFD04A852FD0A %27FD08F827A87DA87DA87D27F87DFD15FF7DF8F87E7D7D7DA87D7D7DA87D %7D7DA87DA87DA87DA87DA87DA87D7DF827F827F827F827F827F827F827F8 %27F827F827F827F827F827F827F827F827F82752A87DA87DA87DA87DA87D %A87DA87DA85227F827F827F827FD0BF8527DA8FD047DF8F87DFD15FFA8F8 %277DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DA87DFD2227A8 %7DA87DA87DA87DA87DA87DA87DA8A8A8FD0427FD0DF8277DA87DA87DA852 %F8F8FD16FF7DF8F8FD127DA87DA87DA87D7E2727F827F827F827F827F827 %F827F827F827F827F827F827F827F827F827F827F8527DA87DA87DA87DA8 %7DA87DA87DA87DA87D52FD10F852A8FD057D27F827FD17FFF8F852A87DA8 %7DA87DA87DA87DA87DA87DA87DA87DA87DA87DA8A87DFD20277DA87DA87D %A87DA87DA87DA87DA87DA87DA87D52FD0EF827A87DA87DA87D7DF8F852FD %16FFA827F852FD177DA87D27F827F8272727F8272727F8272727F8272727 %F8272727F8272727F8FD0427A87DA87DA87DA87DA8FD0B7D27FD0CF827FD %067DA852F8F8A8FD17FF27F827A87DA87D7D7DA87D7D7DA87D7D7DA87D7D %7DA87D7D7D847DA827F8F827F8FD1A277D7DA87DA87DA87D7D7DA87D7D7D %847D7D7DA87DA87D52FD09F82752A87D7D7DA87DA87D27F852FD18FF52F8 %27FD1A7DFD0DF827F827F827F827F827F827F827F8F8F852FD187D2727F8 %F8F827F852FD097D27F8F8A8FD18FF7DF8F87D7DA87D7D7DA87D7D7DA87D %7D7DA87D7D7DA87D7D7DA87D7D7D52FD1BF8277D7E7D847D7D7DA87D7D7D %A87D7D7DA87D7D7DA87D7D7D847DA8FD057DA87D847DA87D7D7DA87D52F8 %F852FD19FFA8F8F852FD1A7D27FD1AF8527EFD277D52F8F827FD1BFF27F8 %52FD1B7D27FD18F852A8FD257D7E7D52F8F8F8FD1CFF52F8F87D7D7D537D %7D7D537D7D7D537D7D7D537D7D7D537D7D7D537D7D7D52FD18F87D7D7D53 %7D7D7D537D7D7D537D7D7D537D7D7D537D7D7D537D7D7D537D7D7D537D7D %7D537D7D7D5227F8F8F8A8FD1CFFA8F8F852FD1B7DFD17F852FD237DA87D %7D5227F8F827FD1EFFA827F8527D7D597D7D7D597D7D7D597D7D7D597D7D %7D597D7D7D597D7D7D5327FD16F8277D7D7D597D7D7D597D7D7D597D7D7D %597D7D7D597D7D7D597D7D7D52FD077D5252FD04F852FD20FF52F8F8FD1B %7DFD17F852FD1B7D27F8FD0527FD05F852A8FD21FFA8F8F8527D527D527D %527D527D527D527D527D527D527D527D527D527D52FD05F8275252522727 %F827275252522827FD04F8277D527D527D527D527D527D527D527D527D52 %7D527D527D527D7D52FD09F82727A8FD24FF27F827FD197D52F8F8F8527D %7EFD0E7DF8F8F827FD1A7D27F8F87D5252277D7DA8FD27FF7DF8F8527D7D %527D537D527D537D527D537D527D537D527D537D527D27F8F8527D7D527D %537D527D537D527D537D527D7D7DF8F8F8527D7D537D527D537D527D537D %527D537D527D537D527D537D52F8F87DFD2FFF27F8277D7D7D537D7D7D53 %7D7D7D537D7D7D537D7D7D537D7D7D52F8F852FD047D537D7D7D537D7D7D %537D7D7D537D7D7DF8F8277D537D7D7D537D7D7D537D7D7D537D7D7D537D %7D7D537D7D27F827FD30FF7DF8F82E7D527D527D527D527D527D527D527D %527D527D527D7D27F8277D7D527D527D527D527D527D527D527D527D527D %7D52F8F8527D527D527D527D527D527D527D527D527D527D527D5252F8F8 %52FD31FF27F8277D7D537D7D7D537D7D7D537D7D7D537D7D7D537D7D7DF8 %27527D537D7D7D537D7D7D537D7D7D537D7D7D53FD047D52F827FD047D53 %7D7D7D537D7D7D537D7D7D53FD057D27F827FD32FF7DF8F8527D7D527D52 %7D527D527D527D527D527D527D527D05F8277D527D527D527D527D527D52 %7D527D527D527D527D527D5227F852527D527D527D527D527D527D527D52 %7D527D527D27F8F87DFD33FF52F8F87D7D7D527D537D527D537D527D537D %527D537D52F8F87D527D537D527D537D527D537D527D537D527D537D527D %537D27F8F87D527D537D527D537D527D537D527D537D527D52F8F852FD35 %FFF8F8F87D527D527D527D527D527D527D527D527D52F8F852527D527D52 %7D527D527D527D527D527D527D527D527D527D527DF8F8277D527D527D52 %7D527D527D527D527D527D5227F8F8A8FD35FFA8F8F8277D527D537D527D %537D527D7D7D527D7D27F8277D7D527D537D527D537D527D537D527D537D %527D537D527D537D7D52F8F8527D7D7D537D7D7D527D527D527D537D7D52 %F8F87DFD36FF52F8F852527D527D527D527D525227FD045227F8F8277D52 %7D527D527D527D527D527D527D527D527D527D527D527D527D5227F8F827 %7D52522752527D527D527D527D527D27F8F87DFD35FF7DF8F82E527D527D %527D7D522727FD09F87D527D527D527D527D527D527D527D527D527D527D %527D527D527D527D27FD04F827F8F8F8272752527D527D527D527D27F8F8 %A8FD34FF27F8275259527D527D5227FD0BF8005253527D5252527D525252 %7D5252527D5252527D5252527D5252527D5252FD0CF8277D5252527D5252 %F8F827FD33FFA8F8F8527D527D527D5227FD0DF852527D527D527D527D52 %7D527D527D527D527D527D527D527D527D527D27FD0DF8527D527D527D52 %52F8F87DFD32FF27F8F87D5252527D5227FD0FF852527D5252527D525252 %7D5252527D5252527D5252527D5252527D27FD0FF8527D527D52525227F8 %52FD31FFA8F8F852527D527D5252FD10F8277D527D527D527D527D527D52 %7D527D527D527D527D527D527D52FD10F827527D527D527D27F8F8FD31FF %7DF8F8FD0652FD12F827FD185227FD11F8FD0752F8F87DFD30FF52F8277D %527D527D27FD12F827527D527D527D527D527D527D527D527D527D527D52 %7D5252FD13F87D527D527D5227F852FD30FF27F827FD055227FD13F8FD16 %527D27FD13F8FD05525327F827FD30FFF8F8277D5252527D27FD13F85253 %527D5252527D5252527D5252527D5252527D52525227FD13F8FD04527D52 %52F827FD2FFFA8F8F8FD065227FD13F8FD1752FD14F827FD055227F8F8FD %30FFF8F8277D5252527D27FD12F827527D527D5252527D5252527D525252 %7D5252527D52525227FD13F8FD04527D5252F827FD2FFFA8F8F8FD065227 %FD13F8FD175227FD13F827FD055227F8F8FD30FFF8F827FD04525327FD12 %F827FD1852FD13F8FD0752F827FD30FF27F827525228525252FD12F82752 %28FD07522852525228FD0752285227FD12F827525228525252F8F827FD30 %FF52F8F8FD065227FD11F8FD0A527D52525259FD0A5227FD11F827FD0652 %27F87DFD30FF7DF8F828FD055227FD10F827FD0652FD05F827F827F827F8 %F8F827FD0652FD11F8FD0752F8F87DFD31FF27F8FD06525327FD0EF82752 %535252525952FD0EF8FD0752FD0FF8FD06527D27F8F8FD32FF27F8F8FD07 %5227FD0CF827FD075227F8F8527D525227FD04527DF8F827FD065227FD0D %F8FD0852F8F852FD32FFA8F8F8277D527D5259527D5227FD09F852527D52 %7D52595253F8F852FD0AFF52F827527D527D52595252FD0AF8277D525952 %7D52595252F8F8A8FD33FF52F8F8525252535252527D5228F827F8F8F827 %27525259525252535259F8F8F8A8FD0AFFA8F8F827525252535252525327 %27F827F8F8F8275253FD0852F8F827FD34FFA8F8F827527D527D527D527D %527D527D527D527D527D527D527D527D27F8F87DFD0CFF52F8F852537D52 %7D527D527D527D527D527D527D527D527D527D527D27F8F8FD36FF7DF8F8 %2752595259525252595252527D5252525952525259527D27F8F827FD0EFF %F8F8F8FD045259525252595252527D5252525952525259527D00F8F87DFD %37FF52F8F827527D527D527D527D527D527D527D527D527D537D5205F827 %A8FD0EFFA8F8F8F8527D7D527D527D527D527D527D527D527D527D7D7D27 %F8F852FD39FF27F8F827527D527D527D527D527D527D527D527D527D27F8 %F827A8FD10FFA8F8F8F852527D527D527D527D527D527D527D527D5259F8 %F8F852FD3BFF52F8F8F8277D7D7D527D537D527D537D527D7D52F8F8F827 %A8FD12FFA8F8F8F827527D7D7D527D537D527D597D537D5952F8F8F852FD %3DFF7DFD04F827527D527D597D527D52592727F8F8F852A8FD14FFA827F8 %F8F82752527D527D537D527D52522727F8F8F87DFD3FFFA852FD05F82827 %5227522727FD04F827A8FD18FF7D27F8F8F82727FD05522727FD04F827FD %43FFA85227FD0BF8277DFD1BFFA87DFD0DF8527DFD46FFA8A85252FD0527 %527DA8FD20FFA87D2727F827F827277D7DFD7AFFA8FD2EFFFF %%EndData endstream endobj 134 0 obj <>stream -%AI12_CompressedDataxœì=‰BIÓÿ ä•0Ó×ÌèzäD”kÁóó`ˆ„s¸«OÿWuwõL ˆ»gu¡ÒSÓU]wWOær[;K…ƒö^}‰ç½lfn®Ô©×zíÎý¬†fW›Í~·×AÐÂöbÖ—yVÃ];ðU½Óm´[÷õGyVñî…B³~ÒÍ>ot»ÖQ½³˜]X„Ï^4zÍ:|Úkœ|kôòµÆ"=p”k=øÌ÷–=™y~˜õ¢û<ĵ֗ ú†+r€ÛýÖ .¶ÿ¹Ÿ]A–³¬äAV*Ÿ>ml×»CCT>Œ„„qùÀ a¬ÊË@ÁMJâpS¹½ß?­·z[ö~½Û-µ›íN÷~¶ôµÖʮ׎à“Zöm½Ùlÿ-6kû'àƒÜ­6šu ù´ÖËú>r§°ê³Ýb¿Ñ<ØèŸîÕ<ŠÌw5Ê—]Àhñg»«§Ù©÷z0Yx rx{¥˜œõµðn»~ÔÐ  û°hÑvÚg§µÎI× “>ÿæ³õÓ³&0V3I þ•ú_÷³ „VI/»ä @ìQÒ"Š¹SÿÒ¨ÿ}?»ÑnÕ -ÞŽY!<Ïük>Ùî7ë—­F¦¦¬·êMïî¯6kG]¢Òÿ5^Ô:Gõ,i»Ùïii é ÀãµÚ×:.”0Ø<«·^´_é9.°â¡àYh‚(ø2‹’WÀ³>î‘~ü¯ÁŒx ¡‚Å{ Öj³Ó8j´îÛù»+ÆA¼~ˆæMB>Lü诙+ÝëÕ[– 7¥õ„xùõxb¥uPjŸ"ï»(ø -fûÈ|æ~ÖŸÀíý3C€þ}–i«Óh!Î̆þ$ÜÝjöᣕN»¶Ú:lgŒ²Ãl:õ¬ùVÿJÿ]=[¼ðîrýÔ ¾Ý@+­/õfû,ÖAj­ƒìëZçìrÔ[ÍZ«ÖÉj¸Ã¼ÖøŸÔ€´w ›)¬êY}¿§oÑC†pÁ€ÄG—?èE§¶ÜÏnî}‚[àn pJÙ|íì²i×zÇ`ê­ƒ®C`~dƒ]>»}ÁN¶Øéw³/Úí¦C;ø‘ÃnÁŠãÓñŒ-}Ck³e4ú$;`øI`|R÷}þàÃ4c/ÕšÍÆQ§vvÜØ÷€1Ÿ»'™Ï®"X_O÷ÚÍF÷4–§d«Öé5ö›õ¯Ý^ýô"lÈÃFëq§ßèÕãÙ¶OÏ0ŒÈî×Îêg︪Gî8„rÌpÒÐ.-eül±•0Ã+ÚA,8Ä>/[­Úiý {dAYî-fÆBÁ{ðlñ ó.óG&*ÃUŠŠp¢( -Á™‘Šd$àâ‹üÈ‹¼°VÂrXÒ‹a®( à T¡ E¡SÈB?ô‚j&¨å ƒBeÁÜ(aGéqz˜W~P2`pù§ªªWY•T®‚ŠT¨¥”Ì(¡¸bʇË3O0«öу8 Vˆ€kÌ„»<„ÛbGä‹ßSž¬ê'Š Î9㫲2+±"‹X“•L0Î|,«~Ù/ùE¿$0;é ŸûÌÇ?žWõ*^Ù+yE¸ -ä)\0Oé'Àã.“\ Æpqr±ð\´|Ì€ðœ,[NÆÜåAžZÍ7\äâúó"ô.æ.ž9 Z"2 ƒ"AÂT*”…*™)#FpýÍÚ+j.V«ÕJµ\-U‹ÕB5ª†Àa (ª¼Êª>x j¥R)WJ•b¥P‰*a%++¢Â+¬âƒª–+år¹T.– `% ¿*˲(ó2¡ôJÕR¥T.•JÅR¡•BXJU’%Qâ%VÕ+V‹•b¹X*‹06a1+‹¢È‹ ,„—)T •B¹P* …BqD2$ ¢À ¬à¼¨Ul@BሠFl(â‘¢ A2‰„%" Š(ª ïO¾¿4SPHq#¸èg ‚ø¡|Ì Är×æãu¸x.3åð‡ò‘eP $3C1qÌÇïâdð¼Ëxyè:’ÊJøŸçá;™¹ÝÑŠ]ÍD U>'ß1îC¸Ë¡ý ÆË./¡Ìã‚š<7WYk´êºðb“2•Q<“QžâŒíÕB¾0aIc[ ->5ãœ*ºTtªäRÝé 3=ßBÈ»Q¥¨q¡É dLl|nt\Ì$d -üx"ð‹ã{ -þƇJ‡f@„ :Ô1 vÄ»Š1ˆº\±ç üxA €î"Àt¯ o.àŸ¢VøFÿXí1WÙ^}Uñ*êÐ\¨t?$ðZÙÌPÀdB¦Ñ€i4ðÄ ™üŒ[f¥ƒÎÂáK‰p)±Ú‰l(sNÈ9fÙãðè¢uÏPjg–=±ð£KéØŸ¢ÿѵ×ëžqKŸ\øá¥/$Wü:áï9)„YËq)ĸàwp%Ç¿ùf†ˆËÖW2¹–æ¢$†¿¨ÄFI‘+C¯¸<ð¥µÍèÅÅå5Ùo8Ó ¯0­1­2­³Ur\ëLb±ãåÖ n—Ü(¼Qy­ô¿R~^®¬L&,L†Är¬ë0B[–á<öF#^Ì€ðU´àq-sÆI”ÑA€¬ í - _(]>È"¢2ˆ‚#A`°2Ra Å°KÏ`¹XÞbTÖJ+@GCÐÅ2XYB áM¡NùzAì~ ±ÿrø5|MÈfLRà -؃X†¨[–BÅ`9¬ª'ªÀ´2X•"¬u+ÀºK°9Â_x¼ -ƨ&©”ÛT) AVÈŒ)(úº¤X±EÅ‚-+*SX¼ IêÓ:åe~È*ÂÒf&_Cðbº<ü›¬å¿œ\B’þƒtÒ­fæ*iVs 9Ÿ™¤e×O°.Ƞؘ Ša¥(ƒ*I{aŠ±Hh/'@`Š¥ä2¥ -TÃð²ï.†W$/‘¸¤»”½ý—.Ï”uH¢Å·¼2úE-ÙÅï¾b áðÙ+tW ÿšKÅ—ÙùA/LM—eªöïÂfÚ¿kÏA›ùa¹Ÿ¹R˜^Ѓe@Ê•Þ^)CèƒFH]Ä/šPÏúy©=}Ö¢6§q•c,ŽÑwEgV˜Qñ ¨®]eŽ@©‹°ePò*AåAŠAùAôÚ›•§5/Ø5O¬uÆ.·—\l»Ò|`ÕÈDi®™1½'VÑ{b¡Þ~QvG,Þ +é0Ü¥Å~z$ùs×<ŠÀã(öüø5t•“]m5ƒÙŠ h½Œoþ0·Û \ÚevÄB›HG:!(ÚB mA@äks1Œ!Ëè” a¡ƒaLÍ09 ôÆTNÁ¹ddǤÞn¿Ó6¦ÃfHÞ2:£M Àeä˜É¡ºa6WÒ]Y‡QU³©¡ hi³>iÐ+‹1†¢Œ·”pL™ó=Óå‘Æ8×”q¾é»bQ甹,Ö€•£Íèhd;ÚìÖj?¼‚s¯ðÜ+Š¯Lòk\Æ]Ås¯¡?™O4sUÇ_k×Æ]þ9‹¯ä´‘v]™ávKÐ$ñ&W¶VØŠ ¦ô‘Në .µ/Ùô^Ûý eù.ÓŸë›l?™ñ‡‰ -O¢Ê“Êý+ZEÆçÿ¦ìWLý'.ýé -P¦P(‡Š~e*ú%J~hP‡…¾¤öSÆSAªšÑî*Ҹ̟’v\檠£K;2ãÌ’K\ -™¹„õ|tÉÁ릗=nBß–í¹+ ¢û¢o –öyä¥ÀŒf´[ŠRŶk ã@3ôjT7¥W?ôÏ¿„²<—Fbèëô’¿¢NMú§ ýƒäR¿Dâgó>™q‰¦}Eö &}Ì&}&åÄOê„O§{6×ÃL/ÐJ/°Œi^E;ÓÌ :QMT ÌA¨Ý&8LÅ¡Ÿ4[èK€#ˆåoÞX?©j[Ä*6ø,Ùv®¢1^ÚJ†¶± }´n“ÚU ÝÌ CÓF¦Ý6:lq(j^Ðf7ÔŽ<Ð{;R{sôçTñ‹+¹TÇ¥r­ñ˜øG{fíPM9ÊúYªëËøaôÈÆ;O>ÛxoãÉW7ŒãùM`c˜XÁÄ &Š0…‰/(Þþ'|þ˜‹\|äÉ+cc.5rc®pðʸúÞðUsÇ^¥ä•±?Œ/~TιªÉkLÿýûóãâ2ku,jUDEä:‡©ê¦¨³Ô<Ô;s$uÎèêš°yf¶Ú—Ñ©M 3f‹}”/tŽØìÀìBù. D€’›X#èc¦sÁ1ˆ¡ø€Ÿ D™ñA‚®ÒT]u†»HÁÄ -a¢CÅ[ˆÑ™m·ËîŠ lqŦà.Óu‡þÿ õ3ç'büÁð>ìã°žúE9¹ÊëCA|цïÉÐ]Ú BvÏÆê©ÇQº‹Ð36@Î+CQ9Åäc4ÎÇÄâ•L2×¾e0lñÍ泶4'mžpÅ;f‹y~Ò·êÐU¾Bç%û)“ÝZÉ^­ñM1ãÎ( £Iôj tkvÞQd˜àu|(26DL†ðÔri‚ø8Œ7ábÊÇyq@_ɸó ya“¾ÐÂ8XOŸøy©˜Ì†úñ<žÌÁ¦ç%}ì<úÏ éEú¸|À¤Àóòž!ÑbPùÀW"+Ã|&¦¯ƒDÏô D9ªP<í;`þ"BžÛ;E 1e<L}üüﻟŒÌòÑ÷¹{Dz<ŠobyÃB¤"ŠÍ W¼Ñ>-÷†t“ÍykVÙdwÄåc¯Ò± ?Õšƒ声¬?í(Ÿv”O;ʧåÓŽòiGù…§åÓŽòiGùíBžv”ÿ:kùÛu”OÒ)>i×ùwgPlLÅ5vAM«€Ó*à´ -˜’*àMµ§{2ÿâžÌ´ƒcÚÁq]ü(¦ÓŽiÇ íà˜ž_™ž_9ײOþ™ž_F8=¿2=¿2=¿2=¿2=¿2=¿’Žó+Ó·›Lßn2}»IJNßn2}»Éôí&7åí&ïþ•NÞÿ¸ùçõ\§¤ç<­ù?û¬ÂÄý#ßœä«qߧÐé{ʧ]åÓ®òiWù´«|ÚU~ ÂiWù´«|ÚU~c;‘§]å¿ÎZþv]å‰Þðˆå¹cºÆé“Á÷•s™‡ü2Ó‹NŸ\”Y~‹í…ß#ÎÍ'ö!Û<<ìÖ{ÙÏýZ§Þ¥¯B†dìœÌ·Õ˼„¾þèù0뾦Ô&ŒÙ7_õ¯ÏàÇOü;+²ëÙw¼ì†¿Ù¶|9Õÿ·X²kðÛ昧óìÿ[úçM´BìÑ!æÊdæŽò€I3¤ŒtN é½N®™/•†ètÿMíLæþÞéëÕ+›H‘'uöøœ6}S}^˜'2•‡ø–dÄJ?`,Ê ™ç!Æ…<Œî]ƒfåé 1˜5Ã"RÍõÃd>Œ<Å ´–q–‘2ôÒã`‰[5^raè §ãï÷€q3ß–£Ï÷%pƒÈ3„æYÖœ‡¶–€‰0Ï•o°Ð½ã`É{[D"I„œ\)XRéyJa}$ -1;ЫŽKK¢4U˜µ?ÙÕ ¸Ãg‘a <݃̂@k ÌB…‘4Ø;ÇÁ·Ž -¤'åë9b1W—»$äYMG$ð /}æ4þ/pÒfÊ X*< , Bi–`>*±8ÌGmŒî]ƒoP`EÇÌ) ¤ÉÐ<ŒcaŽ9ÐZ$ò‘ ¹å1Ë3ˆl´–)x‹?õã`‰[G„Ø«Å ±­-B\„Bs\W{½|ˆŠ#­žyÉ:úÿi6h=7fmÌ}#ÖPpì,ÚL! Ö<¬8RnakIÌ2Š™+sï8XâÞAùÂE…ˆ% <ò°º~j´•@k1H›ÄÀ²ÕÞ9–¼µ•#ÏÖPùaæÈh:GW„•l½wܶÅoÏ„6 ¾1d¦p>ķ‰gì¼9Ž!eÛКxyŽEyñ¡~,^è#^ [KÀÈB¯%îKÞ븉sAeµµÇãF¼(°Üy‚#¬š7J›4™›‹=jfI}˜ÜB°µ ¨‡Ó,Ý;–¼wT ð´ª K ŽÞÔç“K‚›46{(€9MÀ.Súù²€(^Bz€êKíýB2Ú:;ÐZ "Ÿ°–¸s,yë8£=ô„Ósn÷ˆ133ß8ÊÐáˆô³d–­u÷aQl-#·³–¸w,yïEz|iP9<™Ósâ&â¦×ФÇÀ’÷; 9·§³žÝÆCq´AD)&㸹g H¢ q­%@À0GÊLÑÞ9–¸gó2S1© äB6Mù®Ü(4Ÿ;ýî1áq{RŠYÐ"äzøûæïL?3òŒOxtº³q™Ïz -ª.%jã]XV01xmÌ0 58‰ä°CÒÊ Ø\;¤1Ø•ßØ!¤Ð3•1.ü0k†‰Ð(ÑÎLƒ\¢ sC¢¡6À `«‚CûðRæPsÆIæ ½å§ÄðCc†Ÿ<0ÛT,>3–s¥ Yg1Gº”4‚„\¢KæÓX.‰6©Ì@ d L -Øû#ˆÚ½ÐLÀ$²!”>„ÿ•é±¡a½y ˆ7èk\ØÉ2¥”‘ó¸JZöÊ€q ä¾oñJ à ^Ó¢ Xz;–1H+ •ËCE<‚(F ·À’Ù±¸ï@BF~h2ö~‘ÇZ¼13€1@æ-ÐW‚&à¿ Îm lË”e—|·Ð( &cÍ‹IÃq3 ”}ƒÀHºYI9‹ ’€ÖY`D‹ ¥s’¯'Ã<ó••£0²³á`$`ÎíýH¶²s„å!9M*@Á·÷[áB½Ýý&t0"ëÓý*2÷c ƤFÈxDW®(­ðAZæFIfe$(9-´)°¼™r@"i üÈZ1±OÀíã³(@¢€µ†Ûž´³å^Hx±ËÁè˜ 9 X…ž…Nq 0â$I¡ - âté°„/3‘º™/(¯Å AXVkÍ - ¥H0͹3Úf[ |;cí œ®ç‡ÊN!òh}i¤Fú"^IAô¢u …Û`Æ‚Ø ‘0Zj!©9‘€ÕƒÂ¡HÄXرôˆãhÜ-0 HÇTAÄÉЄÜL 4±¹¡f !=)"ÝG06¦ph¥&ÌãølS±@Ìž¢QИ?F>÷IŒ±W‘±91· ‚W‘Ì: -RÝ{„€ÖXÉ!àÜ9`T2ˆ±‰€t×± ÂHË)Ž]ð¹IìòiR@[|’¢À3¢n°FFŠÛIm P×',©B9æEcp ãÂyfìŒ ÀuY¾r¥%#@'ÈÈøaâZ"ô(aÜ%‚0Þ4Ûnç”Ì#EšÌ‰`답}(7£Äœ û)§ïsËH_°Å8ûÖŽ À瓧±xAå˜pZdÒ7´4æYà,Á:Zw¿Df xŸ@{PÒcåAäqÒyP=Vè¼DÀ„<äA`Å9‰ ã4ÈËͳ$æ<Ã,”°˜!O˜Bƒ©ˆ ½žÓmO) Þ€ÿ"Š¹ÐΚãI0D!MŒGqÆóÞÀE,>)âõIdÉßÊEÑqx@ä‡Â#ÇZv‡MÜÇ·cO8û`YÀ’’È1§Þfð! „ÍXlå'Ö˜À0ŠÄt-Ä Ë)œW¡õ»E`% ÅÊhüMÜÀÈùÞ(V9&S„0W‘ØãË,¬aH~•o211 ±FÚë…ä¾ü t÷ƒägE÷Ǯ݌fòIÞ'^L)¨÷€ùY ßN<²0p@%‚XĽ(°‘#€Eàq8f`!óy‚‰¨-¹@gMh¥çË¡¥‰tË"àÖ Â“ÀýP0å‡òÉNH[0â¾*PH†W{ä©°É q_Á„ÀØôP'rŠ¦e| -½BÇ!"Ë -suS)…s%!ôóL¿CŒ7 ¬÷€¶1£7ô"2õºŒdœÑ£8é €ñð‹XXÂWPH @)Ȧ)æÙU°ÈÙÈÐX`kÓ8é¢Aú¤ ¡Oñ;€u bÈTdǘ¬À# ¤ÄI‡@WâÑ» ÆÃ,EBg)80¾–ÇNŒÛ`„H¢l€‡X#Ò%(0ülhb(ÆZç-‡<îÂ0ß…÷ |³´>w@02â€L8Ìí÷š N–C»1 %!‘1‰StÀZåRF¢œY­Ð˜½Uš(páRˆ±6Z PF‘½§¬¸£¯#5œÝÄ99ë&·ùŠØP€LR$bK³‡eýˆ@õÂ76Xù´(N¨¯" ó \|.MtKBF9À°{ÀÜ(¦¾&è Ñ­I. g5FÅ‘h¨[ó“zd€2+6Ç Xš€P¾C \€+\Õ ÀÚÍp`¥80‹:¸ AÂJãö†Ã«ùlµÞò¨m[b@` µäªŒ¹º&B\B*/báô $³’d„.'Bᶦ܈ÈFÚL €Âi\PˆF‰2²â =,Ð <“²Ä6R#@°GvGç\è¹pÎêÂ|’ÄQ‹÷GäRÚdNñBψ=yDN#r¸¢"Gè` yÒv ®°YGEŠa… "¯ˆªm¾ UäFfÈid„‡Wέ¿0*9ÂÊâ6=zJòiè%Ìý ÌÝO- $y½D¡ß·OòÝýؤk£›'P0BFÎ-0°¥6DJ¡7Çp¡•Y³`È@É{WGáœ$–{Ò}WüÑ·´X$Y?À8¶ÑѨJ›ì ®µ°ô(Ôà0tbV¸™-TEÒ¥ëIG‰àÈ‘„ p1Œ²É"±ß‹„ˆÜT„¦šÓ¼°¶i±*²&zw…f@ñièSyVÏÀwBo -ˆ7 _lŽ@ŸæŠíÕÕa¥+zDhßA´vI(j•Š"®&RpÅ…-˜LÏ#¯ø‘R%ý …ãö¸S;IöÿXõ°ú¥\qÅ€À|GÖ«[±fÁÂÆÊT5 …T +^A"œÖ®“ð -—hHë\¨"Z)M$a‘Èã ™3°öîâif·7p4¹«„慉ʞ´I§0H¹tì4ëz²â¶…®’ðJÌíoy’cÀ9(J*[êÂG r7Ú%Ɖ9FJvÎ_E65Ó3p -)âû±Á|0r0 £8›B_Æ%¥Ð% QV• - -hβÈ…smvÍr -|¤ó6Q"7ŒlÞ @!5[AäL#¾Q…I=µX#*G6@ ‹´u|/’PD:¹i12Öq]À2¢š6­WärP[”`à¹Ø³º_9'!M@9/¬}£}§€Ü…ÞQ\®ÓFÏ -'@]˜§íŒÇ>×M6tq~‚…qÙ@‹!=LO1i@#<¶óÃ:µ3@ª *SêÑ[w6Fk%lÞŽÀ¸¡D ¶ì‘pÛ˜TƒU,ÞQdö0½¸Žè$ ùd&H ,²q¦Çlaɀɽj‘!´´É`5 ,£™¼T¤À¼†&‹‚G„iS‹##IŽAG31—mP8ˆ`RO[B•ë\j‹@JAlðL·G®@áøÊ]‰^™ºg‰|Š„4ØÆ'À,šé·Õ8 -Ó+³¿h`Ûq;âf6h×@aŠ¶¤]0eöó ”tZlËjiº+ìR[ZfX#0óôœ Ó‘¯*Êa…ÙðB ó©’AÊ¥¡®‚çÖ:ŠD™ýkuÚå/ F,Xhå˜mh \8=ŒÓe3!XçΖ±JÒXÆ,Ùu ÌΗYWÚÓC¯ŒLˆ@øÎqD„4ˆ\)†L4‚utïžµf¡ É@ooÀà‚eD†ß¤¬YX-ׄU9ípHC­áD ÷œ5õ# ð“^†H^ãSH¦DÑÖqäE Æêaƒ·Y\r+|KWduPÐr“Î3a…#r5‹!´{ &©€üÎI§¢z<©ækã3À×ÍfVlâ¿»=8eŠÑ˜ 5Å °Íjpbº Ákm´b¦Î„c#g#d`l„›ƒ>á ìÖœF (¹ä¦ø„@î 2H# ÏEˆ¶€P]d´¡EØ¡R -p³¯„@|t‚B@aª2:‹ÀVu”I PGuÖðØœYƒm¤à¢pûu0ƒˆ[XLíß#T«-¿#º]¯ò •[mEŒÄšËL¶Óöd¬¤H¬«)éë¹úTúw•{ý¸ˆ6cu#á… —ö̬MC¼´dv“õíŠöZtUéüÛ±¥ƒÂ0azoô@Ï%·"ž•ÞÏ10I·KgÏL‰À(¢Xƒùœî—Χ*[uǡʉ¦7xs±%î¸Òó#WTT$Òuã¸Â9§™ÆNQO pÉ­1ÿ8Öã¤]&«B`l „ a|ŒÓ(¾åžC@"hwŠô8ß'ÕääλOòÚG±€žOûO*¹˜C‘¶Awä£ÿ -ýÄ\ ù4-]:5”ÛôT´q¡±†Î˜žF`¡#ðƒˆ¼"·Ú¥°‹Ûº‚š@,ÊA˜¸zŠîµÛdC”œ‚næüºäóM=)ò·%¤òööÀôÄ‚in×ÅN²¶ÿ¡4'RÌtÉÑÛ½3òD‘0r(©ÇBQç#+ÕÒl j Ãâ+’‰0F§u¥5e -þÈIƒ^5zpQÜ¡ÌþmòÁ¶Ø… 8P±ñJÞÎ9= ¢] [QÑsb$ÍA¼èÇÉÒ£9X³Ð8JWä•°5CZªl"¯îYnSFƒ}êi L]K±…LOè6åѦ‘»?ô(O co Aƒ µs694~Ú®¼g$òJæs&Â)E~!¢¸ FëFËEë."Óh0÷ ^çíüÐÙ”-©¤Ç¹ þ”èUnbº½ÒRF -€ÛʧL^e€Êž´0ª¨x·B£u € ÂâÌÄÖäͳøP”çcj©0²ób^"L³=µçÛy±, äv!Uò~¦ˆ®À”ä(8¹ʬ©+ñ -Ê`˜—:»9§‘F$ê”Î(ÄŽœÈØú$ãðÙ¶”FÌ7{ñ6vUñ 9»²û8ÚS.¹ÅzÆv-vº!fl3>æë›­ÐTɽàØ€*åÌ…È]‡7íˆÜu8G¼!•"ÅAèS8e·Ûø2Œ—ÑÜÏ\M(±b,âèj«R]m@dâR¹2a¨*IAIOX m†Á¥í8Ö-™®IÚ‡IÒòÈ:=†]t”µº2‰Aà,•i= KËK:Žg8°¾$Hx¸Ê·©Ló™2ß¹¸Ð'qILº’"Ií–”k{´â|‘+å I"ñn®4M+z¶a4lʃD\m7Iµ+_ÑýTmt-èÓ6¿Þê5÷‡f;L=XàÚFelap QW‚!prh_œ9Hç "ןc÷ -ÍýXÔ#!àv‡µ…n_Ñj"…¢N‰¸ àx?šJNZàÇw‚ú]Oêš$#§.ÜÅæ<AjeÎ}ù‰˜ŠûÆÀfíú‘zPEn/š*w84¨M›ŽmèÁ®È kܺl7¨5P]ºÎ@hãÆ)ÏÚh†’š^#’áHAÝßaD±ÇþmêñUvƒ¢3:{£›Ò ¶œmû¸AÀÜY';Û5 Ž;ϸˆ -nÚÍX“SLB;kˆ`NçÈt=iÍ‚c9Ô…v-ÉöCázèM7au‰4ABkÞñJg£¨©Á¾¤“IÒV6(ÝI0kQqº>Ú這Fëz§l;.²&.ªÙ[BO[JX9²]ź`ë+¢‹ŸtÉ×V}¸+]aùÚžCõ¨^¬{),V·i)]àÁMž¹döe„TÄÄÈmøÙò77­nsÐÆ®ÜDꦪÈ\Ç 7[¨Kf‡Ô¶ q#ÀKzß5²\g;´™êÙÈ…›âíòR*Ê©ÇRo‡‚¡£Kh]í ÷”%ñQo½.éÝçXh(ÒÃ}jTD¸Sçî€GŒ@[‚ä´‰»òJY~Åf]70 æ‘m¯ \œgÏ`/ÙÆfiÕ=Ô¯@çj¸Ù·\³`Mº¥×îá#0´x)/ð컺='ì™°A7UÃ%Ý´벊‹ö78<{ ÕÜo3IO¸2.‹Û`éì!XÛ¯J­,Z3 Z»£À€Ñ|[  ²Áýã[]ïÚ"Ô7'ñ² BÌ%Ü4AÌå&X 4<Ñø3ˆÀNºÈÎé#’z½ p.VìV¦UÔ]oç¥3gí=/áX¬t˜®8Ò;æZÍ·uË)>À.Q¦ˆßöÚaÀHzàÎ7Gñ!ûÞ€5 öä5£ì ¦z17¯G0@È -‚¸‹‘»T–»ˆQüj}|ÚÂôj˜ç»–yl¢¤ž=é=ÜI‘ÞÁ0íÚ ¤N†èx‚#RŸˆ}×ÖÇw·À Hk_ã>tnZ£Lw;Uplê¦{ÛÖÀM"jà[†HgôΟmº—Ä»%¬n %µ¿i¼’ð¾=½¹3LÜôyÚœ¾{‡AˆGÙB5ýñÛ@‘ÛºåæyAèœòø¬J`Ž;v {I&gåštC‘P{áŽÑAdìY3ºxTI‘I÷ƒP¸óð¨ÿaDc# -ì¹ÒÄ()¬lu 3 ú¤#‚…X1 -Eb â³­xÞÊnFðøt’p¿<>®ƒa -^½Ómp×ÕÅíö¦>Ù%ÉS·wÈÝKJxÞ±G¨ÝI°á‚9Uop³ë¶¤OÝQÄ)ÖG 5Ò'´Oj¤º }Éœùµã6x[Òç£i%NbáÁs{ -Àf'@¿hÀö2w6WÅG™™9ä¡(X|ûNîŽT"Ð#2&è­ -t¸—›Ö„€yÎÄ™t„Åb(Ü[˜mñåqä¬ÑÚ¢1³}¨úe‰µì#Ðv”±ÄÁ |E`œ=£½Y|iu‡0ײ/#wŠŠ%Åeä"\æ Ð}]¥„Θ’ïÒﱩ<3ň5 “02³ÿA`æÑ:Ð;:èIšo`šH»,¨ñ•(ºÅMƒmƒ¯… ™ ¿l›²ñÕ8¶w‹%ŽYH/i©=sšZD®0Ũ‹ïáÑ{”–·äT„r%îN=c}Æ#·ÐÛâw-Yap×#ã2ôPŒ¼uè•~QDo - ]rvjÁ:T1ã=EE‰HÐ tmìHN/‚ˆe¬|Jó•{S ™M­F™yS¦“‘rÑhDO ,݉‘Уš,E(Ø.k¦†@I1^¼ÉlLeé¸~7r!PQ3¡çZ4X|^]¹BÓí(Ô5Q–ã_ï‰)kVù=Qi#éZ=QK,eÔ|ÿ–FÚ(ù¾¾¨býK½¹s\;hÿÊÃ07¯eh½Ý9;n7ÛG_Ó袮”⧫„ôÛt ]1>h4k)+“Ÿ—k“tó$o´Q³S;hô'íÑôóéz‘Mþj÷¯cÖÒu>âšf-eš25fi—·©1ûezR÷Ò±_·ç&UÄŒÙp™XßÓµ,£ -?qKíRÊZQ¯zPuzZÿß^’kŸÖßK™;™žÕ¿‰½„?ú¬~º„rä¬þ÷ù×”¹¥k8Øt-Ï¥•Êa·TntÏšµýúi½Õ[¯¥Ñ7]͆_² -þ éÉÄ?iS”ѦŸÉu>]26Tw¯ÐˆŸ.Zºã:ðÿ)×Z­zs§Þ¬ïO^¿ÙNe£D m[~‘…T9JÄ;R›íÎz ý“FGt…$锈HÏÚ\?=JW~]ך.Ãw4]ë2êŽô&Mæ¼,]Ù‘ýSE5Ñx%{÷¿Ò#ùðZ«qZKgëÿa£Ùœ¸U¯KWÊÌ~ÄÌöj‰[š×¾^¢.ÿ½­5 4ðë0&ÕëtQd§>¤‘öéì_6ª¬_Ö_×ÏÒµ4z⃴ôÚ7²ˆÓ$¤vpÐè5¾LFvêº8“*¢bIƒÌm½}0)iÍF«^KWxLÁТíï÷Oû—7$*î­”­Y‚‚!Úh膞üd‡¸&~…ÔMæ 1?õM{é2E×Í–R–c\#[J׺Œ)Þ]ýmé -F¦/hÛOׂL›aR¹,×i† SEÉ´æ×k†ÙO×~Ý´fÒX ]uÑßí› -¿ËæÍ1]ÃŦËjüöí0ûéÚåºf$š~=™¸&mŠrv˜”ÉØõÚaÒXOÛa¦í0Óv˜em®Ÿ ¥«$z]ך2#~4]ëò£Ûaüi;Ì͈¼Ó•¨^×<¤L©®aÒµ.ÓýŸékõ.4:“«hÊû»ÖþƯBÚ¶—ÏUHã›H®ß‹òc»Y~û·ú)#ézo3LÛ]ã šÒEÈ÷½Ì°Ôn7‹éëNŸ~Ïëô¥ÿ ¾Iß_ðë¾ìJïÓJW p·i]]‚'1ße½Ä»éâÈô5´S‹6µhW±h*U$¥Á¢¥‹#S‹6µhÿŽE«wÚ—E»‰-]ÉO5h\ái„6µgS{vsíYºÂ‘سt1ä¦Ú³´w’|Ǻ0®´ÇÿïèKrwÓÅ©Ú¤Fm‚T FÚÔ&]ܹ™jók¼I«S?m_öZšé›´~@ˆ9þMZWê ö³þæe} ÿzYøû~†ÿ?€²©¢6nþ•_6ù›¶ü”‘3æU[Ó7T¹×á;ªREÙô U¾–AÛ—YÔŸýzªAÏvV¯õÊ›’Fë ~Øh5R¶m— ã÷=û±—¶ï6ÿm¾¯tò×€¥m‰~ÈAtås×8RjŸžµ»t¦UW;F”lö/¹åfÙ„ô)Ð5ÞÆ棑3\qçè²ý‰ÛF¿½AH×Á½ëžM«¥»¾eHcès]»Pë4zǧõ^Ê ÞyÛÊ'—lñÄ£T‘ƒÓ"ä¥O+!þ!“êPº¬ÜɈâœ\ÒD”VBø}èôtõ5NW§Ök§ótéD{‘[êÍ­fíënÊXú»’%õÒÚiü•^V¦ËU%(˜n'ÿ@c9ÝNþ%·“µã†2ó¤O™§[ÈC1hÊÈ™n!_@ÚôKŽ¦[È?–Æéòt ù&‡Ó[G!iº…œ’®±…\nö»õ5|O1Mãk¦iܯ˜Æ}­7›í¿uêõÖ°MõàßGí_íf½÷ S?xÐîÔZGéZÏi~7”ߥÿÛx§ùÝ4¿ûköCó»¦ –öñ[ÒEè4É» ªOÙê­Ùw—¦.¸ª}kœö'i˜®b«›ý ÛëM˜Èr•.ªÓÿÑG.¯”Ó˜Œ$U¼ù º@'ÍçÓ¸HÀ qWqÊC‰Oªh¦c$]»Ê -¦«=b`þCyŽÑ¡R»¥Ýô$o„†+(;gõ}R;ÓºÓ´îô[Ôl•ÉÔlJ—Ÿ¦u§iÝéVxZwšÖRAÙ´î4­;¥¾î4q–Û¼ü[~zŽ;-¢M‹hç±¥kó«´2üõ ißQyòoNé‰äªòÏ “—.RFá㩼j&]¶h”ŠPF„<5UDŽÖ¯®ü:ÇåQ{ŸV²¦gåÇ'3©"è·‡F³ÑÛª5.s_7Ë"¤ù4ßoR¹©:}wÆ9t¥+̻ƻ3Òµ£xwg¤lE¾ÿÝ)#äªïÎøõ|gºTäšÎ3•Áuüfzóƒ©ï¼núÞ©´Ó÷NýË~óW|ïT:½õ/ñΩKÌÈOß¾sêüŽæÔ½¦æF¿sjúî„T'7é­«“ôïH—¾Æû6»õTö]IyÚš ´úAúdî×o³8ø:!-éúÎKœö!—„i%äŸizóŸ¥7)·6ä9¿âª¤}+òF&ž;ǵƒößÓ7ÿܬsššMS³ij6azªHš¦f)–¦©™£%L!×HÍRFÈ45›¦fÓÔlššMÎØãúåçã}vîÍ¥Š§4ûAYþ»q0ùáH‘2’ìä)šÔ¯.ù2]ÔŒxÖIkê(ùg$p»BQ#]›8Ó¢Fê‹/ú½~³ÞÚÿ¯£³éû‘þ=‘ümÞtØiŸNÚL™O×a3õ¡lpâ—z¤ÿA½öÄ “®o:À‰’2}ÝÑôuG?cÍ~èëŽöjÝzµSÿÜ_I”?}ÛÑO|ÛÑ•£3Ù‰˜sØ©í÷jÍv#eAÆï­Èï§+ñ_ïö½ýãæÄíµ­öŽ¾'UÄ 1Ha«º öebSö>“äü)»‚ùLmÈ9DÃwní§¬qbôlߤo`K™Ñ0Õ’+ÒS}vryJÙ*Lß»26¬JA¿wåêb;Q±µWKÛ©Ùi©uZj½–½¾BÑK’¹vt¥Š¢iq#»c~tá¥<øíBÖÔŠiÐú[­Wë­ñRÖˆòzkÒFÒµzkRFËwwÖ¤ŒŽï뫉ƒöÝK^3Mø¦ ß/šðýºûF©‹ä¦)ß„¦ë¬úNùÒEÝ4ãK˜f|ÓŒošñ¥‡¤iÆ—>:®ñ¥«î:ÍøRŸñM_ñßçF¿Ì‰ÍïêaJÝ"Z©ïxáEºÒŸé /R~ý×áÅÄö M—"jF,ÂôÍŠ?™«¾¾£Úl·/‹ÓoÅÒ÷Eß箉˜SGÐ8ïÿuâo©=D13_³y¯YÛ?y5 öYm¿Ñûz?m…QKܯSFiV®kÔ|S¾V¿té÷»l{W¿Ð£”>!¼ê)•²ùâÉ5û-ÊÿyM¦ÜÐ_M½f æ©3¹K„þê”–q÷µoÓþäe|ž®«›ý Qõ&Lä*ïëLשÆÄôô>Ô•â…4~í´têå“Oô;‡µýúÎ~mâ´"]6f€AâšÖI.M|:òþ>NÛÛ†É× u•L׉ãùÕƒŒ -•Ú-sÜHòFh¸R´·c¿.uîýp/U’1ö¦ÑÞäÑ^Z¿8ù×ø~é‰ÄªòÏY»UŸÜǦKIG©OåŽ$F‰øM¢Ýßr7àµ÷i%kÚ>Ž²ïü–F¾5=U«ò;õNlRYý»¶=¨u½ãÓzÚÞÖtÞîàÉ%í q§}ªÈÁirI$šÒˆ§=DȤú“²Qœ“KŽ¯§•>õiZkúÎTÒt·™Þô`ê:o„}û~×™2B¾ßu¦,ø~×™2B®ê:§_Òøý/H}å÷ÈÂ_•‡×ß™»ÂjNßDôo/êµßDô"/Õ¾èfn0þØ¥þ´×(äþÎZŸX¯Á n¸}?%"Ò³׶ì+0‘î彩0ìëNJÝÕh)GO`b#žõì5î'IÉDà•,Æ/õ¢’Ôf]?d£1}dé8›¾âã¦+Ñfº ×T¥ÔÒ5ªK¿c)]1ù5ÞŽ±”.cpå×cü:{ŽH êÊ‹´½ïôšúŸÎü:)·×ÓV¾_0ÐNZ‡tD¿¦yH­Ùû!¡¶Ÿ²ï¡½F°­=-˜xÑ©µº‡?áŸÕ~k;š|…*[¯¶—2O8®È¦gùê*å–MW~€‚«½p ¤le*e©”²|õ²é¢ëZrVœÊY:åÌ¿ÁæìßD߀÷¯6:éZù_8Mýmë!¦ ÿ«‰ZjUèúÓy4kZ™ö˜^¯›1ÅÆèGõ4~·¡Ö+\h6SÅ•ØDÿXÎ\íÛŸdʾ–ç|ûSÚHºÖ·?-ù)£æ»¿ÿ)u”|ß7@½n·Ž:µ”9Üé×?ÅCí×?ÍV}o·Ò:p_… ‰Ývk (Ò/fY2àbý¨ÑJ~Ù8Ó8„ùhçëé^» "Ðé´ÿ^ÌxÙü}ów¦¯//»™ñòaHó¼d2®7,/÷y?ÿdßÔ2qëØ›¯ðË3øá€þΊìzöÝ/{€è·3K2ÀÝ*ëçe¤²§1(È+%=‘]Ë0–ácx‚ç©+¹QKñ°FØF÷Žƒ%@ÃóXËfæva}{K8·»°„³À? m* ûûýÓívÏöçvav3/3Qva1ûæõÀOc1K+h°(| V½ÞimÃÒt{ô…•¹¹]6:ߥÔéÅC¼ìr±ÝnŽia c¥ß80¢dgH³ŠʈÂ÷HSh>ÙjöáßM­p Rí½z¶Øéw³ëµVí¨ÞÉnvêÅ‹?ËšKµf³qdÒ;ò¶œ•Ù³^>[mÖzËv(ðt³ÔøÅìRf!\:®uöÛµæòb6of -¤ ÌóÓ{δ®xÞ‹Øu)áBE‰ôöú¯f™äXbŠÄ­EÜWXξl¡=°c¶átÁÜó üLê˜/U¤"‚O³z|Ð|?Ïý¤ø›üôFæ m¿£¢›Y~ÞjÿÝÒ¿ ïØѯ—õݪ´=üR§Ï—u Ü„ûv=äG£•5ªöëõpÞËvˆN^5º P0D8Ša§WÛ?¹†b­ÛØOÞÞiŸÔ'¿Ÿéš›{ã+ÒÛ½íú~Tí?4Ã,²çZoß4ßzÈAƸ¤l&»ÀCÞ - î*»¼UëôÆPVj·úÞ$D%±\†æìºÂÝrqżÜÌÄíÔx]äGì2Ø¡Fö:+ÿ²[¯|©·6&äºÑþr§}–%mðϧvšqùZã 4Çè(Œ®[ZÀµü¢Ñ»œO>Mÿ¬Öè$k {Í–&„åÁ#/o×k0æ¸ÝùfiÖcö»ýűÌÎC”Â0LQAÑ‚þÁc ¬M>ò|%ˆó×Y†î~SÏ‚I3Ä/êžõ—zGg{¾çè Ö9A €y«æØeÿãðb›õÖÁ’]ìʆ æL|ÿ¹4e–+ÿÔ÷û8ýý>ÓA#ý µ~³÷!a§w§gMg§ÏѬíÉ% 0qœê[Ð'j“ÖÞÜSìk.uX[µfâ1=õ­½‰'»ð. ~XÔD¿ù–†g¶öG¹²ðZ¿9R6¹zÀZ‚Ó"Œù(âQj†ùnÈöJ1»]?°¨=åG¡vëùHI_„vñØ·õf =\±@Aœ@ø’ãV:uH¡Ì0éæ&°àQ䈣ѥ¯5B~ 0 Tä«äQ\ÄÄÎ f*Š<¤<Â=îf^‡´Õ«Ùñ¾Š€B¤.£y±€ |œ§¡¤ -~äKa–”÷ÊÀ¢|èG<»òGÙâC!‰mܪ4‹}Á„ÆÏW:áñ"¡?Bd8Uß‹BÇøÂÌ-­œŸÿB/FÈ|ÄÃE(BÄ>÷¤ABB†*Ë?d˜frB(q‚8áâCB!}nçÃý0SȸÔ0Ÿ¢if&†¬ãšwœV: "Ã0 ãZB w4œ œâ:_¯,cäÍ^äktš\j‡F¨!VÖBç€YžŒH`„‡„F8=Eø¡|éê¢À3©1ˆ -¢a —ñ‘¤0ÃAƒOê…}@RÅC©÷@˜#>Gf‚ŽçÌ L€A¤§%ÿŠøthõà\RKYhAaÊSÒ¬«ðmóQS’È<ä™$­@Õ¤™Ènæû´†Ž:#È Ž8ßwˆB!p2^ä…zVBR†g,0ÓR ½ZÕÈ´*«/²ZQ õd6°_!QÆ”"ƒÐ )Äl°#ª8+ÆH›Â@rÍÉ”c«):­JLÄç8‘0$nG ,F»¥0å."Í[ÏÕ)-~üâÅ´3S€Whú„™˜6×°^ _Zç„d£„i.’ÔsƒÑJ½z4ê8!•LOÌ„o•)2¢ÊXˆr"bë3ÄJ½‡J ‚3£…‘”z@9ÐŽ˜€Už!,0?dפYÒ¦€Ì¯/H›Àü :MTÀ<-¾úÚ&ƒ*/ÔKëx$¾ R9£áƒ¤Šˆi¯à…ÓòÀ­ÞÇì3ó#£Áˆ‘{ÜÍ5®‚'Hb?`Ì+<*@ñIº®×ùäåX¨Ósp¦í7¸Pa¼t@â¡ÐS ÿyÀMÚP˾ãXe¡•pr#½@‡– zÚ†+ÕC Ð8ÞKt}>Z;g¹Y8àvÜÀm£a`Ç"m·«"CΓ® -].ièR"€Lø)p?Ô¸À ÌÙ4» ÌØaƒ4Ä©jUÒ±Qƺ…<ÒœWàC#†hs\áüôãXbuЈ¤ÒjBF“û2’\ËŒÃÍÁ{iñ‰ÂÈÓ«b9 ŒYÁÙëR‹Å«P}írBFhãFþái´¡ðàgí!”¯›<'_k}GÒóhÇ㌇ J/—`®µ_ä óh©™`×ÝŽ•)p¹PDµßv‘¬×÷nÃZ}WS¤Ô1‚óŽV!A•bÖFÈÃXâ«c ðFÊ(aàkµT ÛšŒæê“ZyÆü¬š¯\[]£LŽ Ë.¬5ZõZbÔÚA¢C<Üñ¹iž#Ðãb13æ‹ÂÓâ1"Þ†!%¼âÑ;Ο&»ò4ÙdÓ¼ñèˆØäÉî|î×:õnÖªp™ë]ñ‡ìÙ¹·–l&ó³[8‹£ÌÂó„oò €Œmž™ßCú›ßú]˜ßý.Íï’~Wæwá|ŸùÝ…º¡ùÑïMˆ~×)îÆ1X†O[E—VRöx•è¤‡É„ÚU@GÒW=ò»¶‘¼ä6¢ù?·—4´±`><ÿ!vòåö~ÿD¥\ëÕp¿„~×[%ËC['‰Á¹Ý…Ù;ö’ýιÝKz^æv£ 6ÿô&ŽÙþžÁi½W;€‰_µÝ\0/µNw{vêzô§Oâ§Ïá¿äÂ9›Á£b{î./~to”–ûÝÀP%þã…˜¤Áã=—Osa¾ÕÝÝïw{íÓç NÌù¢ýøaˆ†ÑåÐÜÿ2y ‡Ý´‡4Ü›D¿S -€v× ÍËxµ×Ðí~úX•¤bTšíý“úe 60®ÕnÇ…ŸHÍþß”‚+Ø‚4+Ë„L¤½{ø÷Oó€Ýfcÿ—pšÓ¬»¸RIÓà”]³êÅó T—R2ÚL‰¼ÇͪÃtQÃêÅd)ÏŒRF–kX¦êë¥-ùŠc¡+m$}Ÿ\NŽPù0Šw°SBÍ?ã¨Ùk÷ >\«ö6;#ÝŸz1q®» %TðŽ¤}Ökœ6¾é½^ˆF0kþyù]¯Ö9ª÷~ú4¶6V˜¨¶;§µÿ2ÍüNÐÃw7œÕ:ö´7K„'?*¦‰y‚0ØKañÄG‰jµ×±¶X²ßÓy³œü(qÐݬíßÀ5KN}”°ÓÉ×la¶ªÿ¤/á8Z»+5ñ¯Oh@'°¶?W!£21è¯VË“ˆüÈô¦ù™ÿŠdþ(ßðÄÿ'pûâÉ'vCtLw¢žV·jX0¤Ýþ^·Þ«¶[½î6†—Ïë_™=0úõqcÿx«ÓF…s#]¸20t«\ÅfmÀ¹×h6z_U«°êûY··²Ý?Ë®ÕZGýÚQ=»Õ>ëŸFÃ'r -Þ^»Ö9÷rêd0eÈÞ*lˆÄ _Ýjƒ;Ù®7_´·MtŽ±â¾Ȟ¤?e4q¼mÒ›ü!άvi²v7ncÄØ”ݳfíëºmžÛ ° Bÿ?U?i»ß¬w“ »æôÍ´¡)hŽouêÝzçK=û¢þO/[9hôjC«Cƒwª¯³ætQöE;[ÚÙ¹h­q¡s×1 C¿=èé‹õµ,¸ìJ{­ñ¥NÂÓŠÐÇÝñ¢ü“û§‰Â…wÁð3:ÝÊéYïk©Þlv/¿eõs½v6î4Öù£×Úû‰ƒaâò)½ªwzýZsdíÆ<£µßì ›P…º?âi»ÓøêN¹p)^vëné/ä¨n‚pÁ—HÀmºÕÛ,yTùŸ±sKzÝh´ÿî^:nÝ4çõþtÀ4 Ï0 w§ö }ˆ1è×òõo$Þ„7eQ²þ8Ѿì&oœü]v“µbþ¤D™»¸-è]é&aç'®t—ü®»ÔwÝØ»®ÆÂpHŽ.ˆñ5ÄF,k_&OÞd·˜ Ž_â‹ïyïyVYxÅûØxÞ_zÿÎûΑ«Kï“Ãëv.ãÇkg³oÖ·ÆZe0‘ÆÞg!”:l7ñë¸q¥öÙ×l±¶rÔÁ] ü6ðÎdl:ˆ0;Î$¨/÷Ï€šZ/IO±~ ’™ÈÍP=ÀÊl\»2`ÓÇËð8os Ð¡pŒÛŽ‡du’ Þ£Ö#òTÌ——ß5\Ø?ÔÌ OºŽ£51ð–$CÔÄçɨÊË61aoÁ:µû½f£UÏvõyÈQ;¸±ØÅh÷›³ì~›@þÉvêG° #?ÒG‹a‚»Òiì&B+ér•áA6zIFz¾›à©z!Ïìy·%ÒÙÕÖAýŸj£Ó½äI÷ìÔ÷Ûäp‚H[9Å€:Ô餤„*˜leµ8^ki5†ñk;1Žóò‘á['Yàøñƒ+,ÎW«Wúß@l¹ÑíÅŽBœk‚‘ÉUÈ; ­£¦“ƒ%éy—N­î~ÑB5ŽÇç?SS5òÐs$Éq`¼ªà‘I„)Æ3,Mç[T}Ï€E½p–±5½Èðê¡ kŠ~G^4Ö™þ_æ½;°¢qí&¥„&ÊžÕÎ`}»Ó~3Q_äq‰mö{g Mô<=0!G<ܳ^ï_rÇ¥‚щ;J—o˜Z†áPÀô}g3>‹åÚªk¢,r ¦…Ñý€åx‡dùS{/O³Ž IÑðPàÔšMºe¨Z<<ØЉy†u /ëtëíN²Z0vd÷¤q¶~åd²IgÅ#ãðU[1Íܾܞ}ÖÞ[m¶³±…½òvM±A‹RØ)­®†²\ÇeÀs¹\¥m=+îæÞ>zÄËË›O£ÕÚ\çaqçp}v?ØÈå:¯½Ü¼xºýäþæ“^Ô¨®¿ÿn¾íWçWÖξ}û–Ë-þUÎåîÜžÉåžÍdæB¹VÙüÿ§äؓΟ«>üp«ƒ¿¾(ŽšðÃÜŸðÏL¸R|R_Ñó™?ÆÏå“W>/·oë_+í¯>Ã_è_‹<|ðÝ4ƒ_üoÿ>þº¯-„ò3øaaqÿQ·>ÂO‹ñ×™¹•ÛùÂ=øùšÙ^™;ÙàðÓ½ ¼»Rjt_,ã¯z¢²œß^êÂK¾þ´Zªw>ã¯/ñ×¥Ê_>/à5ø'’Ev¼×Ñ¿jZ"˜™’§ñçÕÒᇇßÔÿÔÙqeï…7Sý£Ü/äùÚã;¼¸¼´Uxñ¹;W­ï0àõ‡ÊÞ­ûïʇ·ŸÎ•Ÿ÷ùGÍ2ÍLž™ÓÌ¿[˜Í³ò*_gå[ïî{½ò·¿}›?»Õy¢Ô³Æ‘z±ôö¬’[*.Ÿ>ºKë‘™Ãõãâ½<´‹wçä˜øôVX3;ƒ|¾»«p7€Ÿ™·ŸðIƒÆÎÜÇÕÙÜ…OV·ãÙZZŠî<ùû¼¿R|û¿íÂöÁãùbeyVà|òGŸ?Þ-?:yX™o¿¹³R|¯þ*žÜ?¸÷äóÛF1!J1ÖM3Ä› ÿ`þäsá´}Ô¯þQ]ÝTêùþ«RãáÓûw+ëkþ“Ï÷ƒ»•µê†â·úûß¾-Ÿ<{ž»û¨× ,‡ZÏîvî=i•GQ§ïåËõîã ò¿ÃjñÉýO'ËÏïŠàôÿrh6ëV»O7+{Þ½~áùÛÙCXÉOw‹KÑŸïÊ««·3sÅæ“&/6åÜ^,wy¡³¿êß=‰> zÌüù ž¼Ö.ìôsÇw‹v¸Rð;KwŸ”nïÂ¥üLùpé=/×× /©YËoZ†¿åfý¥Üìòþinæàé§\®üZ€ÌvJ¹Üãg=œçŒ]«Å;fr‹o>çîÜîh×ë -#¬Æ.|Àßf« íÐû¦^/5ï>é.…øÑÊvn>73ÿá~nö^y#w‹ÝÝËÍ ºó7%ÈþíûÞJnáqó]n±²ÓÎÝyþ Ÿ»ûçL1wïÕÇW¹¥÷•O¹üÞÒbnù¨ñ0çný™ó»A=Çg{·r¼ÿRåäüÏrêÞìÇ\àïvrá“už‹ªâiîþËÜÇ܃}|]îáüë ÷èѳÍÜãWrOZþÝ\ñþr®ônv7W™ïÜÊU·>?É=;{Ÿ[Ý<›Í=_êrkµ¹ÝÜÆ㻋¹­yµšûs¯ÐÈí¬®‹ÜKïÍËÜ«þ§™Ü›ö½Jî»á)ïß¼ rÿl¾ÏýõBÞËí½ÚÞɼ9»•;Ìœm…«ð”Þí—jvf§skv^<>ž]l콞]ÚQOg}þ6œ•óüîlaÓì=8œ}²ýé³åg›³Ow¼êìÚ듇³[ïÿ³/>=\š};»x{öCt63[ƒX~¶~´s:û‰=ÿ”™›mm—Žg»ó…£[3›oݾW:ºu÷ãÊñ-ïÁóO·dîåé­èýîç[žŸån•Êþí[OyaéÖúÝ×òÖö½îÃ[¯ó÷Wn½_~µu«vöÝ­ÃõçÇ·NþêöoõVòs¹ý‡™¹¹ù7kswû·ßÏùµÖœêîÎý±1ÿh®èîÌ­ÿy<·þüáâÜN2÷v¦÷fîcóäóÜÁ§†šû´û×ÖÜÙáþé|î &æoŸü9ŸŸ?=›Á̃ùû[þ»ù'ÂBfn~E½z>¿þæ¤5ÿbþÞÃùÿý¹²7_óbþ¨.ßͷʯóóý¥Å׷绯—n/Õ—ßܯ>äo?øóÁûÛÅçmq{usçàöÖûGo¿n,œÝþØ?^¿}¨ÞÞ½}º¶º{»wòä1Ø¿Ûæò‡Ñ›©û ?…½…JõÁ›…u°Š /Z;ó ïß×öž­-4‹žZèŸÏ,Þ.Ö÷—Kw·ƒµµG‹?vó‹+ŸËÝÅ­üÉÁâ›g¥×‹µsÏ^ÀS?7Cyg®üùîüü»Ù;êCùóÇOÅɧüVýΟóíÚ·íúÇ;ܼ¿sÒøðîN¯½ûîîââч»,lïÞ}ðtfïnù/ïðîƽróîëõ7»µ™îÜÝOëaþnof;ÈÌÝ[Ø-ÞcÕÕ{,µßÝ«t«{›ûÝÙ{o?lñ{ûñʽӽ“×K3­'KKsî.÷— -K…ϯ—ž7ÛK¯ä{¾ô×û×ëK'ùíã¥þÑÿ¼üÝâ»õ¼šßk柟ÁSòÏ_-¼Î¿ZûãV¾öüåÓ|óY«¹<óŒÿ±¼´½½·ÌÊåRÿéÇåÍû=¾ü¿—Ï>.ƒ ÊåÏ[÷¼……Â9{â=–µª÷¬·5ë½:*¿ööþäÒkÁsý¹Õ…µÌœïo,.ûwýÕš·î¿lÌßóKm¿õtë›ûÜ(0öðö]ö¨]i²ç¥oÙ›;ùAnÀ>¯ÍÞæ‹åWbñ/^’½ä[AñÿÝzÂ?­…bæõ¦—™˽Ò]ñð`^<{{wF¼¹s«'êoouE—ßêÊ»'wz2zÌÈ•RiN¾\Þ\”ûKGžü|ïN îÜ)>V¡ÿ×SU-.ï¨Û;»j¯¹ÐTŸ£·óÁ÷BÑâAüÙÊÇço‚WØIpÐiß ºè[Ö7_‡<}z>/Eø¿G6ÂÆó'Ÿ¢ÙÍ',bõç[QqþÕYôgåøè¯ú-Ð÷ð{÷ï4Þþyÿ~u&6ëñÊý·õã³ûË™¹·ž7ÛDi¥ú \¾Ý}ð¢üaíÁÁëg·ôjÞë?¼…YùÇ“Ò§Æ[Çû«ÔÂ÷‹|>üß_—¿-=|tç`ñáFíxÿáî«[Ïž=“üѽ•çGË{m<¿³úh÷ë°úÎgó—–J'mt><Þ<[Ûz\«Þ+?îœÕ¢'Ë›+ËO -¿ýdga.÷äàôä¬ûøá¤Àkï…ÊÁÛ£Âë£×‡…O·kÇÅÛœ|*FöO‹ÏϼNñcqe¶xÖÙ¿›™+å7îðR­=*íôzÏJ‡{+¯Ê·ÞôÊÁæF·ül3Ÿ/x}\(Ÿýµ¾SYžÔ¨Ã;‹•—ïs…JãÎéÛêíןºÕËÇQu£~ò²º·Ùë®äî/>\‘KáÇ•ÕÅ xÊʇ¹ýõ•Ïw;O½èyéiy«sòôÍqåÑÓÓ;Í£Õ{/ž?Z-,.~Z}ùn¿´ú)Zé<[ì³gê³wŸí¼8þðìøUýÑó…ÍwÝçÿ÷ñÕsH#°—ÞÚBØy»öp—3sk;· wÖŽ_½û´¾èç^­?jKë/^6Øú§âƒÜÆÝàèx£ *ï6^ËÙÓ?Þ—7óëÕ›åÛ|7Ó¿·ù¹rr{‹ý?y﹞¼²$ -_÷` ˜ - 2&'c 8€‰“ÓÞ³æÇ\û©ne! Þß|Ï9³æõ©©ê®®®Ô]]㮥V¾ýÜ×:»ö®nþíëáÂòºþqØL¶úÈÍ8ŸþñtKÿ†ž^ÂþÛ§ùÃs¥áÞ<7Šþ§^£ýè\5Íןîf¸yoÖ¢ŽÇæÏnÔ{võ_,Ï™»èó{#UÞ4cÓ—`;A¾Ü“÷/£›üï«3Ó˜l¯éŸÑóë{Øvýº%óoLéë÷íÑ툽ýLïû-÷·5ÔÊ}=÷Z_TøÝ܌ޣãêí{Ó]¾ÏóÎê9Úº>îèŸöÇ ÝK~:}ógÖ6yÿüì­’_æ/ßÉö{ˆö¾žëêײ9 µ]ÆÒ~4¿Ú“ë¹ã{~ÎwÊ2Ôé¿ÝßÎ@yÿ]ÓïöǮߵ–{ŸÝÛÔËk÷=Ukt÷åZ½{ªÕz/ƒ—Zoãê=õû“­ßØ’ýå]¹;`ÝóßÕO91ÜÌÓ—\:4Ýþ®º³x¾žµöäp~ý6OÎSñÆ|Þ¦ -•…ݱ/òvòsÑ÷‰¥'äÛ-+%úu9î%ã+Šx´¬jÎ÷jé6WL¶uø;\¿–»×3ínR¾¯—MÇ*n¶Qä’‚s«HÈá+”{ýÝ ï÷³Ýd5¦å®þ‘pƒA‘:Û“Åt¶Ýùàh_w¶ëÏ6ÂABC­Ií‚´ñdÛŸÿ3UFÄ5A‹qæh?F›áz/¦|Žôd·é®¤ñ _è‚Áp±=}ëÏúkÝ_.ø+XmúhÃ`q”E/Ä"6¦|(H8Ú/ú†¦â¦;äâVí·[þÞÌãØd§×`2ÆŽ|kú¤Ö†˜—:‰y©S˜—R2¯> PJæ%$Wùjýäî¥Nâ^JνÔ1ІÁžÀ½äiÜKjp/‹êqt†Ù—<‰}É“Ø—<…}É“Ø—<…}I%ûêóyȾ¡#ìKžÂ¾äIìKÊÙW-`-mì ìKœÆ¾„ûâë…ã2Ì»ÄI¼KœÄ»Ä)¼KœÄ»Ä)¼K(yWŸˆCÞeÈcNà]â$Þ%ä¼{´a°ÞÕ±£úâYµc\GŸÆá´‡³7}Gf˜Åi9ÓòûKåÅô -]'ÙZÒÛ* -Ü>Þ|¸ã¯ {¬ûæ©Ð7ÞLjSœ£? s¥`ö8ìÙI×·µ2Ï¥ŸýçUuÐ|¡\Á ½w¹ß¯LàÝëIÏ—Õ-ø»±;ÉXö…\ÀúšùÙ_M¶Üˆ¨ôTYC‘Qè¥þñ™nf}/ÚH¥í¢_©ø´ð•Šn}swÎcÛÅÁÈdÃÄ*|w÷¹Ñ×kí¼EG™ñ.;½“2r|ßäúduŠßÚ_Y8Ðåm¶ýÓ^§›5ÚD0g¼á_kºáµ,Ø>¼u{“-òëp÷óý`Ý‘:±xÚF߸3žo´{ð\È÷®äKÅ2ŽõûÝ)ú4qçGÕ1‹™$üÝÐfbýŽNÚ•Aff»µ{7îÏ}ºÚ¸Y£þ;S±Ê˜6Ù˜ØËW*½èÛçîÄ}Ìš&&²Œ()@ìç*Û [È> ½ÒÄ :Éú»0¿ä}Âáõ 3³PmÎŽ Uµ¥²å¸å50/åÆ’ e—mwüeð¥z–/ 6¹°Á€’ŒË‚¦äƒyeê D§dfêd¼k¾ ªùe¹Ïù»ñ›‚Ùý¾AXô¢¡à&&Ñ».ðgw²ç>Å_ówló¬'ÿÍ£ZTX÷p'“y•»ýIpp^ñØà÷¡gRè0À{Ì9,Ð(S:ð%v€t$žP£a? š3¹&5Úk -0ïÌo?ÝÌýºs#ÿÝ:ßíÚ­¦÷\—rdº9îïÒ5kÿ>ݤh˜ýtè«eß Þóoß·{D,×ÊØ´=…g¾M‰Ÿ°Ö27j䘞¶ët'-±Wv†d“-ß!Ý/™À[¥ÚlÆÏèýë-ž¡pp²a`ò\wfi+I)¸”î<؉E L¶˜;±wr32CT‚QøS$&,œ$Ó[¦bÍÝuºYÙíI©˜I Ýù‰ۘѳ&ȱµo’VÒiÿ7+gvÌ<½ç{DÜ•n6bXKÄ„Ž°äˆQ-¦;s[Üû]@+õΗ+ÿ†ºìÚg'4ÜXÏïÒíÌ}!;ª„ ò®7(dóž*sPÌ̘ī›ÙUï™RÓ’PôÁdƒ^ sÅ©m¨êq¼ÇHŒ¢¯ËÃÞ*Ûõá“gW\]÷"w,ð  H¬¼]Ž²“í„AÒÒûQ£œ–rIUl½™ÃJ~r"öºw'*ïéÏ'È1ÞÚª®â®3˜§ß•œ’pX#{‰I7ï—?©—f¹[ȇëo&[ÜMä?r¬òžåU¸a¢o0çûH¾?]ßðð™uYÁ|óa¯‚xLØÓO³•KÚ®Þ-ø³BOc—/}×j,L6‰çßwRÍÐÍc¶ºn’2•áºÉÒö¶L< -§yŒ‡2w1„%ì)Þr³ÞOešFòk(Ñâ2ïiö@Åú+,ì7«;™`hü–Û‡žÔhhfÔ¤™»»+y ñ|Љߢ±ü¸lóæ}Ê–™Uš«q}†Â·W õÒó‡j¥û'²×~NÓ7fkžrZÛY²˜­¦Ð§$°8™ †½è-éqdo…gI“Mþ¶%~†¾fPÌââ¯L£JÕÑÛþµ€ ‹žeXP鸷 -zsOTç}•GMâ “Qsô ' Ê F" Â'‘:Ÿ~ÃMPoj¸K¸0€“f»‚†Éu -Q§‰žÅ00 ¡$ê²Rü•£‚Øÿ&†ÞâaÜŠ¤d£Î±T\üÄê ˜ž–¸d,âä%u§ÖðD(¦ÁdSLûD,6¦“œ <*ñ+%`.Š}0Ùäs™Tc9Ý)a»Œ? £b‘Š_YSe lW…Q‰¬¢äYv,šÄJ°#Å+‡'GB3jü¨FTÅJ5Ù&Ãh•ƒ¸•÷&+þ¿U åæE\wŽ‘ÍjRäZÜQ"­²TbBk‚ð`™”KÓƒ5JjItù“fÑQ€T€xhÂÒ< ñ„°‹ pŸ˜0é|ÄŸXò # 1/¾ð_šÓ{‘ô"ý4ú¹³òn¥PéæËÝ¢"É©ÉV´;@“ ƒ‘Ø&ûº-^èìš®TŒ¨™Ýù—·¯Ê¼V‰9!± -”^’´p2r XóT°[âš‘pXî2ŒL?燦7Š½W izj­`?@> 7vL¶ð²B„ò^Ï(»»]¤X2aúiÑxN7våyÞ]õ;äog…TĶâŠ'§è|±ÊÍuú1›©!†³®æ2€Š¬0ùH%ÆF(Ö~J‡>+O¹ÊÆõ­ ,}•Ów¯u°“¹ž=Û¦ÅíãpÙ~U&jûÓ'ø>}ßAßs@Öï; `¡Ðó×ð.7ªoþIíÌæü:ËÚÛ4uý¡ï iºB&›Ô9 õ°ßÒ…Üïk';ùeü±ÑÜöö­‹š$¿C¡§ÁuÎ+ÚGœÛ˜}‰ €“9`ÿ7yŒKˆ$s?^ç-‹ N'¿ÁP{´gÇîVÖ?I&¢Ü\Éé$óE¦Àö¾‚胓ÎA­„ÉHi -TYžç˜SÒ-§â&Éò¹¸j¥x¢ý/·þ%L‡wYÐÀ]øî$#¹b+4w˜Aß]fzïÓ¾6×lEZÚ™)•0‹/„@ÌgR"ˆÚïb´<>Ü™µ”¤Kwå«»o_ºkA3”ŠÝµ®Á}›å°Óâàæ%±¡RÏæž< Çž"–á ÇnÇÛ=žäH„*`iwDs›ï¬È^*öl÷I‚dTpvík¿éæs·¢3¢ð™¢¡7%¯ • “-2+,GZC --›üê•3¸ziiDQý“¾ÉõÃÆÑÕ+éZ½?ÀÉgm+ä‚ï”;ÙúrB4àåKÀV%«7SíŒ1=a^’LeŸó= ¼ø̳ ¢šÌua‘åBƒÀ|ÞÕz9Éùßb)žžö¡Ã&‘0\„÷'ý·X4¹ûôS3µ>ä Ë6;IÜoSÑ‚­ËÜ2oÅìCöåV°N¿„â“þG®Üªe¯Ôî`âÛ3(¢^pTn«‘ÒgaÇÁÜ$ú€Ñî˜Ø5=ÊýX¾¡èÊ—shâAa« —ˆé>âN«­ƒ¸;žïùßWrË›íY¸ycm:–›ŒÏý™oÿîú8yHÏâ.ß˸&[ôÞM¤›Í³ŒYnËØ*¥âØ¢Ê -aþ맃”,…lú LÄTù äXÎÓ -1C¶·‘i:ßL‡"O?‘ÀwfƒÌšM"è"WÉé]xš‚y^XóåvšŠ'W¯(åbAܨ€f¦ö]%h]?—Ÿ»¡‘rfž ŠÃ÷‰°LËà~ä—ÒuǤ–HVpö¬_Ú.Â{D%Ã懂³UÛ¥ïZä@‚4q÷0È ætÏzæ)ÿ8ýå/+„—ßã d¥ -»¬Àu?,s£He–ë¹&¶Hõ{/¤g‹kUð Ì>ÚÊ‹>dýŸ¹»»¸Ÿ5Õ¨zÃ[È“#G!š~ºæ'ôÕ’¿ég…t2ÃØVÁ\¹;³ÈŸYÍ ´ùzB²Ô—»+_gAZÊPܳ¯µ -)b×9_ô -f—‡öý&BÁÊ¡¿aÞ†%`i—ÃÉ:—¡f¨Íï]¥lòÝ7Ž±‚£9n2w„A‚úò³Ìïo-•+ê»\Åá( mÐ2»o”žuçØ4ÊïnÊfseÖø¡ñZU³`93vc ¾ó¤ë®hÈþœ”ŠãÊ~G”?ŠqÅzàÆJ¿}h÷ö…ï65GxIw™tØSFo& - ¢Ey~r¸e‘ÆÎôÓw¥.Ú n‰‚Õ“d;U¿Î÷[ÃX÷lþYNòí·ñ3«ù¤#`3Ï¿,ß5«…Ol±1ò‘w±e¾Ï8ƒ™{§sZ”ëîÃHw,Åû‚½h+XßóÞVøLwÚ+™}aÁ1ë»îmâ37t€Ð‹“ʱp\‰X/:Mä¾&-‹„ÑÄ…‹Tˆÿ9)ï²€®gÇ©7Wže_ÓËôÈ!; Åi§L8]{÷,%ã—żttÁžïï¯'H#ó½f>(îÕË0¿‡ÁP) °ì]²!TxI½ÖÝ7*û(è_Ozqk®¾_Z Ÿ¹ŠyDH:ÇÁî´cåÇÒ}{îÁX†Qüú."V㌲ -ñƒŒ' øôJFÊD-_†Ž#wþÞUçöàÀÒûÉ{¾YY#Ïùkäçu=+«ÔfÏ@e¹(•eïêq…’I¶’4”P(BJ¯¾¶j¨]B%Y-“ÿÎjÃÍhÈ­“]B’WùZã -•øEñ]uöö烫@¤w= Ÿ<*o÷ ‚*û"°ìí! -°Ò{Ùß°÷‹ø_Ø3ÒåWãàNp—$6U/I”·iHo]IoQ4rÍ‚ s·ŽlþÒåâÉç710%ÁƒFpüƒôf»­KnYMjãV—ЧµxÎb)^Cy5Yàk2ÑUìÆ®ŠQ;¼ú™O}½Ùp8XŽF¾ývK-ƒ¾êÜüÒŸûø[1—»±Þ¥.’–âlµþІ4;ž} ßÕë°díî ÿŸŽÆëcíÓyõ/JÿÂŒ§¾évk?×;}¼l¶>¶^«ÓÈ=;¸}w±XŠœtxt7â¯ÝêP˜m(=ð¬Þd¸@—„ tyM§Óÿµ’v>@ –«ÁþHƒí1ý¥ö\@tã«~ö :{Ѭ..®¥ä–Ù FËŸB”`¡¥Ör£l)ECå}²‡ °b§_ò¡ˆy;‰DU6wÃÍPÞŒìã;àuív¸r«nEñv‹áOWvcœZ£>¯´†:.Þé«d´Øù¶ûžò -Me“Álµ-¥7÷j4¥‚jN–óîfºEÂ’-vg¸ùF¼Å×@ëÝre¸íl8RÞú«-⥽6Ð|#«2q¬µÐkme½V×Kø–µ^w£Çܨº%„ƒäz8ͦèN°Éb´<†y#‰ŽÒäóx(Õ´"Ün0!BR‘S뢴Þd7ï®”ÒæˆâÁ8à׻ɎWyF~Áª6QMjs‹ª]i#SCªSßß |Èr™uW¾l§C-Ôl7™ ·Lª*yh³í÷zÂm³š ù[êb–mÖ ù¾m7>6ÆÍÏq:@ŽšÂAMV\ýÿ­ÆËÍë·Zn©}d õgŸ`öØ„*½¶¼æ^-wz%´E¯ õ­ñŽÀ-»¤´™Dh*±ÕìS¡]«Ê¬‡{0ÜN~Ç(¹Zm|øL=6@ÆKÉmíÚÍþm¬ÙxxD¢³ÀDiåÈ G ¿W½®rÐé›#â~.)û¡T%#4Âå äZ”<Òø¨6ZÑDB;Q éôTJ3>Jˆ¦êjA“[KGžB£ÜŽínÆ5_­Ú¨Q3µÐÎdh‹–åLRÀÎÀÐ2nÑ­±íy†«vÄsA±¯+zÊòû=Ó|ciæ‘«T?ʳÙËÍÕùQ0êY-Wè7Ý$ĸÚz¾ -ÿK\$·ü÷bÛE­ˆ–ÚOï—‹e¼Y·âïï&‹6ò¿¬Á) æ’º‹¤‡å”^òdIó)É]z t""\û$Ý[þËÀ((iŒ\ˆ¦yP˜9†I2Ý"ª# †ö^c€ª™»Ñç(Ÿá6vÝÅ@(Cr¶ìr1ÀVEyX'£‰^„‡)ŽU'zW÷BÓjÊG˜ ,ëî†Íñ~Þ[t'³Ãà¬ügÆ.uVÿ-‹’­ŒR.6ü÷r3­ - -B£§GK✗Qðª€Ã‚ÆD _÷P"ÌPñC€’í®Øˆ¾oTP}‘°jˉayÕЇñ";¥ñ{ÝÉ+šb‡Œ—._µÅõ!f“¾Î ¡«¯Ãªó 1ì5›‹õCqùÐKÖ'á ‰SUrLɨÉ7ýÙÆÂJ>ÝGõQF×9ç›> P©O-k¬1€Z‹%’ ,<í¢QFVJÜý^wWíþ3Üè™ãra§u‘µ}:b·Ê7uMWYÓŒÄxÖ¿_‡PÂÏq•§0pŽ2¬žš“.cµ¡ÔrPÖÞÕÉð?in&sÄe¯ÓÞàJ~b£Mÿ<µŠùæ†[Â]¹±¨/¦ŠR&:šcàà+0G®vãágQ_mùR¥ÿW[¶^wq%5oñå€Ý-zœ,{Ã+@'Ôçðá:w; \ìŸåþjý -8hÈjŒš÷Ó,о”‘ç - ?]Ó^í–Dx5Á›XÝ«Y÷T ¤»b ü!îÜîûcÔ½ò"‡½i ‹m»‡Þ-G"úÉöj¿˜.€Z>ÃÒßLVçš™c`Í_6u£»š?“ˆ½Õ$á3é -Òw/ä:ã4»]näÊ|=”üÔ× Û˜c¨o¦ë—ԃ̎OóHH‘oÏ…¶”Ö8¡Ð‚5ײ‚o(tÝÊ=¨j5^þ»4ˆêN£Ù‚e9Ä%Ë¢Bà%{ˆB¹½,=_¡¶…QÖºXuüžKìÐIŽ¡3:‘N~1à†Žv ‡$ÙÉ€h\ ítþ O¶ô‰êHîdð;ä¾}éù ¿ûÞã¾ïhô‰ -ÄëQZxQ>á1ú¶¹ËäF‘â´dyJts#¢•ÞRîÄ36;éRÂìõÛŸL6³;9›ï³g~'éL˜3ïÌüßK‚Ïòˆo‰Rg˜5Ù6›d¢—ö¬*©»È6.Å_}…å{à%¿ù|'rï…V³H'ú¤+ZpXhkÝõºž_•Ñ.; ]XÑ Ye£êv³‰m›€ÄS&ü; ±gÛpa÷Bµ—ÓbpCbÌ"ØͱìðÞ,šoðÀñ¼ä¦>ÿ6\ „×±_øZœÁ¯[99ÒÏÍ×ýg]i1ÔFËmŸ*Ò¶õ¡j²)ЊH™É]ѦŽ4nvl¶¤m£Ž´F~®©¨KDj²‰h·vϽWipìèÚ[yu¤ç§;Ný¨ôºÐ˜l–çÕ¬ª6V¢¹Ki e,ÖÅÆ™Ð@Új…ÑCCDŠï ÐÍñ²Òiª"-–¨¦&y©÷dó#^ìååsú -œü¹OVZçá¬:ZôÇŒtÒÀò€•ªD†CZ³ÛHƒÁyg%"9™EÛÙ|M ¤©.*XIU¤íÛï'-¤%“ÍJ;bŸêc›¿¶–ñðIi=ëL®­óªRwlMŠHa^ä¬äº}O=ª# ´ZD!B<¨"½.ü„¬OsêQ ©ÉF¾¾ -ce,¶éâ>«…´K=ß/êH‹DÚ>t„Z©É¦$ðÎâ¹å¶¼o Ž¼ùÏiA†ô=NTC^!u)šlÛëÒpÉ|¼;ªH_ì‹M¤qý»‡‘šl‡cý(/w«¸:Ò*m{.¤â u¤«ÊµRÉíK§x½Ó ðÇ#ñz{—SGzŸÌwÚõ¯/U¤_Ó2FŠôËáX[ÁAAég˜øÚμêH~WóÇH˜V ,m§ì]hxck¸ÍH[ÏD~2¯¨" ?x¯Í©//È1@]+;êpH{´S±hœïÕ® #¥ìIGI>Ò*ñ튦Rˆ° ´öwÍ ýÄF‰t»¼IpHw·nÅHÍŸÝ'‹4Ó"ËrAèÙlŸ“fÀh}‡R©ìÅc¤ÙÝ(,]3,Ò[òΫ„žUàÕ4´5š½ÃH­u³éö)¡@ºÙ¤‡Kž+fÒmð7ÊišÛhݧ ïõrøÝ4qöðÛaä*=ß´—QÍ·­:9Ñz;&J߶½øö@òƒèÍÝhüæàÆåûõ; )Þ2a²ÓäÞn§áƒUÉ,Æ×ojïY¡X+G?5߆)×Ó·öÛq·m(vø>Mݼ÷5ßVÝ‹[Jûmïqß*(ÆX¯û½’Ưå›Rüy˾Ù×ÅoŸÝÞ8‘×ÑŠ=÷*…Ú{VÊåÜÓæÛW[ÏoÖ~û™‹&xŠ©¼ÿ¶µCVÍ·¿»Úª¤ùvúBeêâۊͧ…d[ë×Ð¥z,¨ù¶B’oÚ³õ½FUë×7æ›ò§Kóm>}ßj¾­P·×¤6ÅÒfÊêŒj¼ –ˆ|ÂÅ9êˆ)Þº›õí-÷6ë‹+We©ù]t¥Å÷mÀó$÷À²ÄÀþ‘åäÏ·m†Þ®8w´Ð ²¢'³Ü>°ŸdrŒÚY‘‡™5{+‘x˜¿MôLJžÌžÜSýyÅþ›à½±2‚Ã×}Êð’osMÙ5/'ÏÁÏ‘ÙcI m‡Væxm OG²"ü÷á…üØ·=ˆÖëÀ7Š ø,þI¢çétßì¿}^™¸Ý\›l"Zìéh e,ÈÏùPGh½k"%òK*ì1éX±§£‰©¼¾Òi >²mø!Ó ÜÜXD¤ØúÒ -ò"ë_iq&CêlaïUŠVFॉ[ÿHÁë¿-"…±ÈÆú¥‰¼ h#EÖ¿&R“ Ùÿcõ±ÆÍ>=¤U»&RlSˆHÑÚ—¡E6ES6«Ãâ&™}Ì´kïç éÚ×hÉXÖíüÛãÑvÁ1Çwœ´ÈÀ˜?Óœ´swŒèè×yÖ™WŸÝ¬9>“M!þ£9ƒüü5®ÏŸEŸ‹ã1µ"ãõY‡XÆço‰ù“õ, KéÊü4A™Œ°;O¬˜÷$ÎùJ¦‘YÎ*~®O§¼*ÝÁ¸yç8ùbÊS™÷HEŸî&mbÉEóPô´órÑCkŠÓ1ÖÍ–7R -]–ð†=ê´k£»uykôÇ“÷°8Ú‘ uÚµ¼fM±­µ*qvšjÉd;e~‹ˆ&¥Ó­'µµ?(Êå´ -±î—¢âÕéÒ©+Ÿ¸þ1é KÚ?u&›±/_×°8fóËfpaÓ5,N˜¿bm.‚b9ù`…~Áª4L®PNí¿ÃËké;1§ RjÕ]L±Îæ)&—h'ök%Ã|‡6Žë.¹=Ó:–í¿@JjΠ–A«ª ©ÌÛØ|DŽI lõU¹»½þ³U™y[[Os”Ùý؃™,¡-“ªH䉟NÖõQçC°-•ÔInµ|4Œ n–BAu½Ÿ¦äVßÅSt„ãä:¢°-ϣɑe/éë#»5TÔO …®?NðÉÙMIù!#álõµíù$møTF<Ÿ?FP,A³Ž £*>4HYßì0ÙNé”åL —–hÉ}ílújÙ¨(‹À¨¿¯=>»’›Œ]f+g(-y1Ö÷[F›z¯ÁT¹™ÿÚEÉ ; §êøhøäÀûcÚ(r;VzÄ2¾Ä5Ýì%±N\â2b Kÿ‚¶F¦~ù¯ ±È—¸ª×}<º\{m,B¢K¨(C²ÊÞè…d’yEnÁk8ÅÇC²04ÉBâfÿä0IK¸7Þ¼$eW*{¹Z>#¼|°¦ð€ðI•ƒÙ2>W -ª÷1Ùô¢tó -ÚÜm]÷Ad9ëSˆx ¢cˆ“%rSiXÉLéÔ^iJh9™lÀ˜FT¾SšÒ§ÐŽµÇplúý1_ oŸCvGH|±“áÂ>o½DëNý¡çó;Qù úåŒhôêN©÷´d²ép:ðŽ\é#nŸmAÓ‘97F˜Î‘ ½I¡ê´lY ŽBÑÓCR[–‹DÕ¡Í*»ôü<3 š«NÂÉYèï´˜÷á˜ßjÚN¾+jx €iÅ[Õ¢­¬g¡oEÀNX|êþ,“íâM - #åt"¥ÄüŒ®eZL)ѶSçDÛN•x$šj„$ „I­/•hÏ¢Dã½×S,x%°ãÍdp ;_¢ «²ø²ü‰³¦&ÑN^ûçt‰v»`á\.Ñ”Ë÷^1Ý OÆ!ìâøM65k@¦„^–z´tëPÝF xžäç-Áç9ˆ£g—nÀòúed_k‹!ƒ–YÖùãNm1³øÓÄ,{1Ÿ$dM6M1{æéùb~Á¾´Ì?Ç@YSjÒ’0Çá3í5¡à8 À¹ü†¢áP+vÞÑoº /«ì&``«fu!ŒÏ¬ ¹6„§ÞKì{ “v¯Ÿ¶{|o¯F£Y’Ø…¦6|=ɾ×Á"`—Û÷Ÿk5]xªC³vzHëP‹!8—Ø÷(‚.<_‹a8*ö½Á{Õ€cTêëB,a>×kC™.ì(÷‰1xú'Ç‘üQ=‡ÅéJÙá)ñ†¦-ÐÙèL‰””»ooo—Īq~véê–ôKem럵֡˜!s—ŸI„EË#‚¹ôZç:»§Y ç‹_'reà8¢KšÏö]^JÅ”õyÔRÖç7äWPLTæm yòÙ‡asJëW%8`4Òû‘“kûÓ¦N²Ç—SØ8›N1—Œ]å¹¢‚ŽwIþ_ŽQä{|zÀôÏaŽõËœ3<>Eäêp½'ºÿô.id>‰\éuI-e夤9C²&¯8 -"ží9-jwÒQöü˜êaÓÃÆZAc|3ØÅñª–×¢?4“Ád7ùIÈSƒ˜“aÎ/³ÉnZÛ6r/éX²›¶ª¿á ‘–yÝà 2×ô˜’Wd3È2…“Á"wlzÔúXæ£1™Õ-œäôâU©åööhí#”'¥˜âÜ·{ƒY‡Ç}{ –Ú^¶`†ÎŽ§á•"L¿}V=4{ÆŽUQÓìÒÌ“XJÊ<°£f—á<¾ý±3ð'äñõŽå¿XdA+íÔ4í$}Súð ¼=1¶hu*¥–¢©=GÏÀ>E0(Ê#˜ªóg4/¼9–£Ç òÓéØŸeˆnÄ­Ì”S€çxã“X/¤ØÑ4Qãƒ%ÚY“~©Ì[Ë+?èTR¬WÉä2fËÄ|Ý,a©?©Ç-õóå 4L¯åYÄ7Õ&ÑŸoÝÕ]2àì ßgï§dØÙÓ <£xˆcW£À< ·jK•;k†:Äqý›4êË¥¸2˜tCÒ(+MÉ;`{½9Ó‘4g[žx@úWž˜Ü+;2º=8ÊïÈí \²3¢ÅÉ¿åÓÂ;*®k)I;:ÚQ;Um~†=V6ºâÅõ®iý–O ïh§Ù)OM§ñ‘HƒIáJh³À‰Y—dùÈÐ)ê”ð‡N—ä‹ù¸Ó¡SÀh—ôO§OŠÓë’òîŸ"þ˦$ýED¦‚#2žRKØj "ÃíñIϱF}7—Dd$þ~åòˆ pèœî8! 휈ÌA¶à唆¦ˆÈhe¤ËÏ œ‘QóW ¤çKÎA)z°àŽs²±ã{¨T!7–ïDcYûܸc™¾}v[ 0ƒ~NâêîoN2 y‰ÖíÔ¡EGÎôIC;ó»T¿ 2íèÒ écGT³åÕ|höð„*Ϋ3x^O7¯N’:ª“)|<z§{I•dõJlKÝ£zµÃ»HÑ3ƒŠŽÏy×:˜ô7ùpË_œ©Óχ;ýþ±sòáÔNA×æwAžÅ ùpz'Tÿ.E­/\òáTnÕLâ:?NvŠÿý¯óá”÷Ž²qwô–€?ɇ“íX8jy^>œÒÓÚÖA™l—gÖ#÷gg"”üL¤–miäLäËÒЙÈck;¥/5²ø€ÄåÙèŽçØì„c$D -ka8Éup’Aç üq‰†’ë´b‡ç%µl4N<Û×®ƒÏöõ‘‰P,BÍhÏÛË%ËPL>’D.]†L÷Z59¦¹ [+£ËPÇGô>Í_Te´¿¹ Ã9mùhä#œ?I„Ìùi±£p´¯Ö¸MKë˜õá•ÀGoC“G¥·5:=‡1,”|¦±ÓQ‡ZÈH%¯Ï= "³ÖÅÂge¤v¯;’H f¤v¯{FBGRýþ$#õsý7©Î_d¤¢|±Ë3R”¿ÈHEpŒ]­p‰ÕÎõá¢}iêɇŒœ^nöåËðíâe¨H…S—c -‡Ïóëžèù‹T8ÕyùóT¸óã–rŠéûî'ø•¤ÂIï ÂÉpÿ‘T8•¨Â N=>fÐ?ké†RQ ½?Y/ñi¬yVÕÈðr{,ë;â=è…@ E 0í›íN´a.>usA’Þ2¸…£w;/ˆr5•'b9žÜ¬Ì«ûÔ¼G©ø訊z×/ªçQÃÇÍ.q™|g/ÝNÎ2Øç kª]h&kù”gÉ_hÞ†Z¸lxî=¿I¥KL³’ÍøúÙlƇŠ4V¼:²Íä]æ"Nò\,µ¬3ä%q9JÚygáz´&e/y²[¬ÿx/ >KÇ.[ܼÔÊ° ´Þô’Ý~M¤D¡™ÑË°³=Nî»ZH¿u½ Re.VÔ½•Dá”Én·qU¨L¨H»vè%»‘>Ry=¾Ø\+ÃŽ±XÖÌþS+ÙíC/ël®Ÿa·l65‘ÞT‡ãÒ¡~=¾ú›6ÒüÃGQ“¼Öëh!­Ë3ìð¬Â‚åF?q|5Ø.¦ÖŽ*ÈZ>«† œ5¶§:«ŒŠ!úÀ{IÉÂ~¦T¨z±cGnå¬{ÁŽE¶GT»YþMjÏñªÊ¨‰v«µ.IöÅt:uìpê±s¬÷ú—•äÔÊŽ¨Ü©b º¤WIî¤(ÜGÎðÉ#ÙøNÈÎõ+"§{®Ï8?)"§9>µºoÇŠßñZ†‰~¬Îˆâ.µ êÇ_/Å¡v!"Íã®F ÐéGzÏɦ;/sj6šÀ×âü»l:ƒ÷Ã\˜M§T®—˳éÔréÎÍ|ÔΦS‹Å«Ÿ´¿$›NFnͪÞ?vQ6¨#7„œ‘Mw¦F>1›NmŸFЕ–M§–K'õ÷ÿ&›N-—ÎàÙž²éÔbí|ö¿Ë¦S›]éýÓl:5ãFzvôo²éÔré4n›¿ ›î°Kc‹¶¥tn6šqj²ýu6Úü©œ†º0›N êhMá³²é´l˿ͦ3N±K²é ”{â”MwÅNΦÓͱú³l:õÜê¿Î¦SXþ8›Nm·Dqþ²éÔăÜ{ý‹lº#;#”Mw\¿üE61Dkü¯²éŽerýM6Z.f=¾Ë@¯èÊê‹tu“v¯Ã"•ÊÚŸÖG»Œø¥V-›óëÕti‡vyþº^¶uaŒN;·ý$:‰T’„D9™G ƒ, KPÐÈzÖꔢKFEêrò©³º„(:©ì²^—ÔRhJ:é”]Ö™H‹É=¢[²²UxD´5²:RØ\?2'TËÒ+twq™;É=WMòsÊÜiV—»3”«d°ÌV&—±D:C$ôÏ'‹…î.›«bke¤ÊŒn”ÊP™»£ED˜‹ËÜq6Œ~¡»‹Ëܱ¹oG -ÝÛ  Žž3| -€;Ñ­°˾?É|¼|+UÔ¹œ›}ƒp ÕvUƒ"9ÙÕø‹ˆ¡d²«f -ÏeÇÀ %ÖjÕ€P&Ö6‡‰µÅßÝ -ˆ€ýI!cÌcÐ[#ÂLª»4IÙT#åÑz¯zg¨]‡[º(ïðµ®'®u†z¸þIfŠpóñé–Ä!¨êþ¯*‹šö±áµÿ|R¡j­Ý7Txíbs‚…¢wªó8pK çÒjÕ,~ªÝpxÚYÕg‰ 'íð:Ý*ËðÅ@"ƒ¡üÅîøüJ­wg,C•ÃçÖ­>­Â^æãËg4®ÂÝŸTÊ;šOd¬RÞ¥ùDB¥¼Ë—¡N…;y^’‘üs*ÜéÕ{E5îN¯pgôVs”ýtybíçZ4s´¼Wɵ츙c2bè°µéÎK¬Uf>/¡üÂ{ÕtèÓî¹ÂpΛwD 8’ÏyOóÅŽÂÑÎ…U$1™Ž]3Ëå’ß®–Ä$ÝEÂs° £Ž#a ®Å×}3˜Æd$‰Éžh+=Q‰3’Æ$ä‘Ø©J˜Í4¦¨ÃP†º®Û.¬Ê¨ÃȪ4’ÄdO,”Æ÷¹~åÛIILZ'ˆPíDM{šaøÆåð^p+¿Â0T¹,ñ­ÅÖ€ø‹׬OûV1ä¿œZ‘î¤r˜”ÚöXëﮦjáÝ·?Êqmi^Muº ÓÛžTîñH¥<ÿ™9®’õ)Ã0õ|<Ǻd8ëY/Ç•‹¡‰¨†Ôññ¦Êx+%š¹)™Íø+¯9Ë°Ò0Ùr·îF3±üv3ð©XÃÙ}…·Ï€²'¯s¬âÁ¡]Iì˜û$KÂ{¸}’"•åÙl[ËK«& UÉë°E³-|8§vÞfÿ%å2Y‘†G¸´rÿ‹5ôäüÒJÂûÔD -c¹.¬hͱEËû³&R{¹çûѪÃæ‘ -™\"kAJ‚Tžš¶µ‡nÄ:‚´"ËÑé¸ý˜©!5Ù•5çdix]e¼wñšRÆb <ä¾Å¬2#®£ƒ´he´‘ë–w5¤¸î[¸$K­T"}Ò«#x÷¢4Ÿ.ÈNvZ+zï>qI˜{WÂ/Ÿ}vt–Ðl'ͯ$¾]Ñ´ˆîèr—Õ$Œ¹PÂf í‘+ϬNœXPtMQƒN¼$«bvüà¤Ý °ÊĦ£픤ãUš]Bœ¬Ý©¬‘Ô¦ã‰MÛ¿ªÌ‚ºG*³$åôViNÝAe@Ð8åš^ÖâæÉ ²ÒŽœÐd©d2ÆOŠM¯SÇ'D­QÞÝÉU5ºtpJK¹^ ý¤SZ&›^§´ãħu ¤¥ö9-®?gcâ*ÿ™tÉ7¯ó‡5SÎs%vÙÀÕ×Gb°íü_]ÞØòšÝph I7¼lt—§¿ä&Z1'ñàʸ³’ÝÔ·¬Oº×º?3²,¿Ee^z ­Ú]qšùbǼ–ûât õø˜üЈÊk·pR½m Sø3¹[PJ˜sw½Ù„;­uŒw¬Ž—¯“õLç?²Ãõø4£*õÁ‚ixsº=¢QûÉžxÓÞ<-‘ì žÅeÙô3™NʱŠœtϤKŠü—AQ/v|Ô—uIrTŸÛ­–¬ÚS§V©œÒ{®tR•4>2âÎû xòYY€]:È”îW²ý9ÕåEùŒWd»¤(Ÿd,ÿÁ¢|Q…ÿHQ¾cÙþ¦(›3¢o \^”ÏdS± -ÿ¼(ßa}äÿDQ>íúÈY”ÏPýÊKŠòI£ -¨SŒf§8K Ö®êwùÝP•¿¸Ê`]?CwC]\×O2´?¸J«®ßiç”έë§_Õכּ¡TêúéG…Ô=ñÓëú©3ŸîÝPgÔõ;ÎÉQ×Oÿdˆ¹º°®ß±L®? -èêVõ3ÙN -èjÖõÓš"vqv]?YGªúQDµ®Ÿþ€ÔN¨žS×O5QïVsã„1œ)«zôuýôoþöÄ/¬ë§«è²X‹ýA]?ý°ðI7PéÔõÓwuUOAŸQ×O-MR\z—Õãûƒœ÷“êúéCAqþ¿¨ë§¿¡b2 ç’ÄweFê¹uýTLMIU?iu₺~ŠeHÈ«úÉîì:9=…êúÍ{ý“º~úUýN¾°®ŸþkIFêEuýÄü-5^TÜsuv]?}b öêú鬵í”þ£z|.}(†ëñ)'g¸ßEuý(ªËçÔlŽƒº~:yGOÛO­ë§oÉ£þ¢®Ÿ–9ÜI±0ûû«½W -ÉÙW¤þìrxçN{f!J?iËzŸaÌŸÝ Ÿ¾S¶`8Vº¹\?×ÓÖ‡É -úýð}áÍwçÛ˜ƒÕbà;ó4}¾4î™×qsø\¿8†#ëkÚÈý^7Ÿî¦ÑYüm9¼u,ÖÐÚ¶I-˜óëíÝJ;ŠŒmôQ.;÷cËG`ù9Œrkçv&Ÿ›³ÏÝN™©Ÿõ‹;NÛSD!s—! -£~…(27O›Íwıن_Ë[K›émƒ½šiÙt'üÞW]\óio¿þÍös‰ŠÍE,lnõ¡ ‘å—ÆÞ«Hº__!‡Z(‰êIî¿I›+ªVÔˆ…‰ÃÝÝ y¡­fͱâŒFG×>¬Y^Þ›Iëbã/ÜPŸ½e60P&i…O5ï=«À:¯v¿À9‰æt¡Ù´Öáûûµ¥Üd_)– ­–•$͉ñVÉÐ@¬©Ñ!Éز{“-÷^¾ášÙ¯âÓó\§ü»x%åßb…ˆeZË¿¦è6m‘,Î^Þ>Ó%ÆÜ8/k,[>ÓAº§!”ÊØj§bUó*=_"NNß½¾vÜù—·ú®Í|(i×úõÉ`kƒ='¿s Ó+‰ýAŸÿD:pì(ZÀ× gý‚À)¯àkƒ%ŒÅZìc²>þ‡!O݇l‰pç<¶}ÁQ*—I}Üá;z甾ˆìºÂ ·ôEÕÝ7Ù„W^é«vh(¼ðK_¬²? Rò¢˜Y£ì‚—ôÙ³£‡ãÙðH_ý<œ®oH–¬)©+Yòhô‚I´œ’¥Û'ôµ.…Ýûq#ÊÖ=l“¾5öÅ@"öÊ}o‚Dü(oiNöoˈlul¿þŒÁ¢¤Ö¸QÛr‹±Z²RNoYÿM Y(çm*Æb‰¡ ï§ÌÌ÷ãJ×ú£jî®lnˆ,)l d厫Mîpf(g©Wƒœ|.Äz5!@Ìw5ë°øõþI7öÖIþ}P#ШH̽,'S_ûv*;éúIÂßjÓ<{5’¡çnC}~Â^½˜€T®žEðÕϳý+Àî}¡Úl¯$gî_9ëb‰>Ó§ "›3ðõƒØéã‰÷ó¿~'„OnCÇb'|oÞiüÂdã^å¦Ö|ºŽþéoË;W^“pZÃ5kØòžˆ6ñb•†j¾ÜŽ*; ñúNw$ƒ_>±?ôó‘õ þ´^è)|¢¤íîèY@¥7õÂ÷K+›s‡Kþþ%,µ8Už•šß ©¤Ú·»kj_н»³3þ0{ýö¤…s&›Ùš Ç9œœÞ¢W³g½zD/àkš˜=÷o%³kmÙHô5š+`Hÿ Z4~†îœˆzºØ5dO Ê’œd„%ŽŽwyQª2Aз¯ùn¡ãüÀ·£å\rà•Š¬>+¹XT(^Eå¼n,ñçÅK G»x|¦ÌÉm_‚´T÷0ƒeYku.DÁÇ)2à@§Ï}ÄÀáˆr‹"ÅÒÙvEÛÑ8ÿ4åÁOa˜OkøZöÁÞZ®w>¹È$r•ø’€&$Ö hÕµÙµÍN]1áñ÷›DBÏÍY}¬+¶}H =° „,®¢hÉ=ÀŸÐK)û=M¨ƒ-€x’À¦oŸÍ{}Îa÷ÄE74s·<=Rk-ßÂRyÚ!«®.»½sÛÖ Ï°*Ùæ7ýðÄÂÅÏÌ;ÇVQ;p}RzN l‹Üf“Xº¤F®˜÷ò·Íc€rDZ´h·²&ˆ-cÍñ ú7 2þ{ÁÌ)‘…·")ˈ"¾9²˜»ÑÉáäs2þ‰'šÄf ÿìeÍ?kmü“Ç…›¶Æãߘ»éÛ—‡;™uÆp¢K/"f±ª3ªnfïˆxà WQ{öü õp-`4 °è´äkklè™ÿtØÒ¨›‡×QpWpóÖ*ó¨^š¯±)ÜÝñÀ_QñCȬQ\P[: ê§.;×Ç–ªSé7ª ®,Å‚Èm‚±¬¸!Ä+§&ñÍ[¡ Š7@ÁníYŸ>Á¦ -•eµK߉z¿1R˜ô¢%NPL1·ÑÚරYQÒ-ܪ R¯®. ìV œïƒÀAä·œáËe½8±øš´C0/†AàÀÒY¤äö÷‰ÑsÔ¯ -ú°’p?˜Ã.lHz²6·ØN¬&¯ñ™d;Ï©/¼yšSmi;PZ=d©k_éz­e’CU,eDTˆNkI;°Æ|—~I·ü’Ùìƒâe¤_‡!é¼T é×vêV: û8$ýJ,ÂÒ}dä`ĤïÛ¡„ôëO")írõ:"ýúìˆJ¿¶}RPà>Ä¥³ô¢6¸RØàOHû]bª)é×Û§´äk¯m“v(We{mT¦E–1Eú‹F½E=ß_4ê-rvò™þ¢QoQÀr–¿hÔ[d3¹Îõz‹ˆÇÎ÷z‹\ öLѨ·hºÈ_4ê-šl—ø‹F½EÀr¿hÔ[„Uy¿hÔ[Ä7í/ʽEtoÄ0ãæ"j;Od]pbÌRvåt¯+NÌÉ|£—5âêÍç½õ ³ÿ _C,Ž°‰ï†’‰£F€[•È.Xs´ ¦¼øî/¤PÞaɽpñ±a-gPߪgm@ç|*ÉËž!A"̯"½Ü*‚ËËÊ,¼ŽAñøy‡¬àDômLg™Ùõ¢€ôìX¹rJ²êµóE‹)7âƒ{T¢§À-¼ˆNÎ),V§ðà¤S ÂŒµ—üOÒŠÐÁ«p ºò?ígÃÍãfò3Y\yL1“?]&ÉçÅ`YØ ‡ÍáírËþ~>\쮢Wþt#[.‡ƒ¹a9^á ãàwH°•=œ—Éí…K· d›ä¬È"ÅiÉò”èæFD+)ÙBÇ^›“.%P àÉdCAƒ¸Ù6$ïÌžño}-°–´0¨Ã¸õ7,0ÆeÉ 7™}Þ}_}Uˆ.ìˆg½ü:÷^¢U)E·&Ž?2ßT#t—ºõÀ×¾³43–íÐH"'…Büf3•b£ îúõƒÙÝ÷=¨‡B„X  -¡ÜìzreÉ' A¿Ö–X²˜Ø=0àO’]jlxzíÿœïÂáó³ l3÷éwˆ´eÉÉÅCìkÄä%7÷5ê@Ä(ñb­2,«¿Ë„ÈëD©»‹ðqŒS|!A2á–¼èZ³ þEÖ ó"¼¢2ïÏ·ü«²_º¢b?iþ…"ö¬¦bÂ%>“b.f=’P{[Š»Xö! åSçÓÍ.µ¯íï@ðWû üµ”»ƒOìÁ³6“\¢€DR)Œ âj„×#LmíÑD›¬­ðõƒu±“ã¯}ÐþûÆi¦[b°¡‚VÕ+ ýæ±`ŽŠåüÝøMôga.Äó_ÉN»†£„8¬6î"ÐÃEV„¨=ˆl"é(†è¬„ë‘p±²›¹ò aæVSë´<% ¶:g Ç^­n@zWÊ^½G,=œåÚ{öslß{#È^µì„O$§˜zm*)S0W½.Ú˜ä>7µÓ' Ñ‹O+À×7?÷ëéÁj‹ÜÖ£ì·Õ$כ逖¼h›éŒi¨ïûµ7æ –Yt&L‡cös”3…ÇÌ,l Kä!‰±dyeÆÿaÏó‡<ÀªóIÖKŸc–]› ‹dÊŸº$ÿi@‰í8²û ô&¸{)¸œÉXèÅ{}_ø¾·E„C$z¶bÔaás£&¾œë2#ä8ç°ŪAåù:¥0ã™ -ësw¢‘èDaãwìy 6Œ›möÒ ~jY3û{Ä·M bß«­qÄ™‹7¿S•ƒxs¢5âÍÏ8œ(°ÀçVM -"¸,(AÐåDƒHrg¤€"˜²¬”+tì”sž ¡Í´mPlÿÈ,qrO»k÷lzíÖ -Ü=QYÆbs\èPZÞàa8µ-;ÀqMÔÑk>ä)‰³:Üò 0ŒE= ì[òáÔÖ»N•ßYL¡ Ù–¢oì…¼žãa`À6\¬Påžjþ¢ƒ ;̾v?tg« -_ d3¤ÏŸ;{ů[|a\@ßë?ÞkƒÀ×n^Ð|™]Ñ­Ù }N¬jס±E`xHÈúyŠÉ@|)¸_Jt6thQö V¥¼¥8~ÝÍî£FÉn)—®ÈrD)×è ¨Š}VA³]jf„)i} .‹<?w´NrÕõ)ÞQ߇œçýõ}L¶K¼£¾ˆåïǨïƒlþó½£¾Âr¾÷cÔ÷1]äýõ}Xæ\ïǨïƒ(v¾÷cÔ÷‚zgy?F}“íïǨï#õ’N÷~Øí<Ü`>à(’h±²¸2í`¤¸x£±âu×^~7&à÷b„ ;ºmÄ‘›G謊Dµ–>vÆž2q~%ÚÛô`¡O}íãeÿämçcs&ž¨›Ú *òµ{CðÁyÑ‹gÎÙ%Ãp<¦\xƒd{VLÍ)ë^Èvmá<É®2¼À‰:±{Á®—L^˜déX|v ØÏ#»WÃNù ø¸ìcXS¼‹S|$Xé$ Ÿ)>x·ýŸ¤)#)“d'¿HÛ&› ž4†»ý -5v2ßɢÚýg¸1WäûýG_…"èÿ©`¾Ñ£jÏäÀM¯ΫêÂdëøÓ›]nÒßM–‹î柫(zôv_}.箢WlÛ´]9 3DZÃ+' -©vÈ+f¹œ¡7ÂëUþ¿VËÍîŠÿ2ÙNz³áUsy•m4Ž·—¶ƒwLäUþ½ýÆ”†ðž¬àÓ£‰ð…‚£ô1¡¦ñ‚¢(ø!H&Àÿ­k‰ñö|©À‡_xôï«ÀÕýÕÇq5@°ŸLA"ä †"äã Pd8|57‘´ð¥Š¾€±*6T|›Ž4ˆzßÝNñ§·üÕ!®~ð‹áv|õf†Ô•ÿe¸Ù¯®Þ,èU¶»Ù ·“îâÊßüg5dŸ~ÐWÔו¿1ùoî?×Ýu¹w0TxWã¿Áç'¾Ñð_“þ𩘹ògbkÌ/!_$Ä0Wa ,u }•ý"¼#þ‰\‘òAñs’¤}T$àÃ~s -û€:A¾ƒëVqÓýGÚ/_€‘Â¥Cð»`D×4¡ÂÐëPD¶îÈìW -O“l^EJi @“"Áµ0)óïƒÀ¼t$x>q„¤Cz$Ž*òÑDˆñß%M˜€¤hU¾àF&a¿ò?à)!ÀT!1)ggEªQXÁÐÈ¢hF`áC†Tél€û‚a’äWÿUdbš$|d¢Oäb? ‘„6*l||ÂE®†®Ç·¤Œo½2Šj :„«Ân‡]>ºð@äÑCjdRÏ@$‘K…6:\zÀì¬-_W)¯† *¬Â¬J> >:™õñTúŒôADÂܯ„¯"³BÐùH„:dÖC Âìð¿gYh£-_ rý!‹‹c×ãVê(·¢:€«Âx¹ì€H‘…é¦Gmž‡„_‰ì*´Ña׶?àqqü:ìê#’µ:°%&”`6ýÃ>¹zÀæÊá¼z{…OÏð/"|{sÃ0å6;…qW,¦Ãâav6Y­&‹ö1Á?ÎM¶]°ŠÇåÅ¿†`øp±éé ûIbþ‡ AÔÆͺšaml ¶S½Þ››¼bÿã„ ¶¶Y»ûÀæ¦N°¹©ÿ›[0µ ÁÔ¾z2Nå´•‰C2ƒò#h…2A_ Dw€ øh2B‹ÏDÄG2`¾gGÈbu`ñP8OhxÂ\eM4¬"‚ -Ñ`M| ÍÀ"$h_8¼ -„`/P )ÊGÒ€LxÒ7‘$å G`Tb+ÀN%KÖBD|@…Á¸'ÈüJx ,LS@G@–!™FQ P¿, &äc€’5I  ²9ýbhèi|´*é < $H: -Ãë›øG!°‘±“/€í“fûA¡é `HAÆ -”Ø& #‰P ²"¾p ð#ŒQÌU,)†Aç( h˜6B¤¦‘ª£a´ 9 U"DX¤ÿÈ@Ãhƒ!Jlƒè€©CP(Ð?T ä£Â4…0‘¡@a -†€â ê ÌSÓ5B„X© @hŠôÁ0Ãï›Ð¼C„ÔI$&|@ò€$”t~$<£…~f+ËÍ‚îÁ_„ -…ð4‘DŒî ƒJ!h^A‘RÀ‚$pð8Ëz’@Ö%’•â=ÄŸ ƒ† Bt p…x8&DO(4§ O`rŠm.¶Š Â -&žJ„A†€kàgü3èÁúàáˆ+æ`]õM™È(ÇóbÑW?›î`‚NIÑ„¯To„È/öoæÇä%€ñ¯7`|A˜]ø„ôI–÷VwIXFosî§4 ÷†AÁý‚Œîà U|þE¦Ï#&CW^X ->† -RÆ0gxÌ€ûÊ ƒ€õ¡÷SXÀoñ—'ô³du¸g¢®2u±*­ ´Ærüª¿œ¯–{P»Ûqœùùr0”ß“U t I…Õã;ä º†üßÔ5kÓþ±ÊæÇ°ž!8†B2V (áMSÀ0ùû°ÎLH€Ò -†‚âœ0ËC…ÄgdPÈiç! O|ð;á,Ú0MÀÔð°@ëPÄ'<ñÉ÷Jl%Œ†‡t8¾¬iĪ㫢 $r$ØêþÿIbl–á¸KU"k_Bá j =¨ZÊG#%Œ& 0HXÉá %>A:ä*TxFƒ" ÍÁÁá¿K( 'ןõïì$‘œ›ly·‹¡G;Ħ¹QäÝS°g•z,aØüG&yÝ,·¹ÒpX–¼ý­­Å¯ûPšym5ðž»+øäÝ´L¶Â·ã‹ÊÌR3o, lÛì¬R¿¾uúîõ{&™:ÆSî²Ã ’îÏ¢mZÜÅ -][% mS/õ[” ³zAŸBÀ/Öp! O`,ßLö%«øhÛüƒJmŠó1G!MFþ (Ñìæ|>ï†oWG;·;àëÏ×®ÀÞâC£·JÆòƒÖtŒ¨Üº©\Åmw¯g4A•^ÌéfzQ!¨~`“ ´¢VáòGÛÁ§Ÿz76l×Ë0ž š 6"ßó¿oL°–hGø¿ÿÏdSy(yj6›ËÉ\yðCb@¢ÀÉz¢×½ÝÞ%È›ô Jõüt=K¹Ñ ®|sàØ[zÏ?(_[¢Ãï›AM}ïx>5ž -NWÁBÄ“d%™õxCËÇûx!;p‡St*òJTR·ß<”GVdgc¡…òýNÅŽ¿Êi¯-^¼…¯¯ ZD!ü&ÁB¹—Cdù$Ìç¨^$/Ð9…bVõ1ÜÔ_Tjјú‹^9¯eØ{ΪÿfÚ­ª¾¸süÞ©¿ ?ÒÒ!j—Šcàì·žgr±(X+__ÀZRŸHH–ÂÍ/ºÍγDk¸ËlsýQM½öC¡;ë˜uè{&œÝ­ÉÁ÷æ‰rý¶ö@ÅU…ô8ÍodÆóJú\£g“¶Æc²ï»«‘Þù艨´ž_¨|¼_£íË䘸ÛôÝ°JŸš©¸·öƒÀÛUS¶€+6Ž–[}¼¯n⢛|”4½ i°Té¨d°T$¦ƒðLj;€­ŒÐÈv~+<›©À;4\{0”É„#8bÅ„È ¥Áà(°yáYï¸ðOÀI·0ñ¿;ÜÓktõFÎ ´ -…Id¿S`Ì0èI€ hÑAL‡`P|’5‰Ï" Ïf&ñ—ü3:2å´×rÐ÷,7Dò*g¢Q<(ˆÀcš›±WU°W%¿•ôèOP*»ˆ€.’A 5Å L`+dIFB>&Ÿ„õ„Þp?£fA!7Ô„ -ƒ»ÑÒd¹ÿ¤„„ɪwXø¥@Bz„'ˆ ^v'¡ëYfg@QÞÙAOz#É°`LYá° rÒd0Gà L%X‹Aq(“>¦]HÚˆ -}¸Yá ~Ä=F„#,%f;ZDÄ?Âò½ÚðæŽJÇ¿ù‡ÿ›®Íÿ—ΗÀ\yi"Èú9 ÿöÉÿNNŒ${Õ6*QHçn™T£NŽê¯)5'‡ú6G²Tg~¦3áå}3ù½ùÿ›“CåÍ/¹““¡\æRŒ3³N¬MÒ=M¥°Q˜m?¸^ÙÑß>ƒ(ÖRy\¿ì+ÎK3 Õ;ØÛŠyŸf”à Ñ‚'äbvÕÇçÔ:]ÙZ®æ8W*øØ“¬»dô±'Þ‹©Xsw ¶ä¦Ïìtèsg“ª£Âìë«èŠŸx¿±¸ƒD¥>„býç'„°JÆRr,,€êýCäO:ýÀ|ƒYÛ»é"Gì¡œŠ}µúj_žßR¢K?Q¿ÈÝÆ#åS ²ç¤,´!ø›ÊæidØ }äûÆJ~K F+ßD‘å,ª˜K@oKe“-¸"ÓBÇpF~7®ñÚ;÷í´ ?ïËæË»+i%0$„¸Ø¾`ß‚¹0psúöY!‰%iOÛÓ6Äœ]v5{ó1ó,WÚ5Oô¨ Çøîséá¶tá¬ÔQ/ŠšèÇîçLô£mYÅÞÒ67kV+´"JwuÝRæÐY÷Å+õ ^¯HŸx}ûâZ)hWCZº×iy<0»rT ÚÀ5,~ù¡öLžzF—ôÓó{–Ü=hèZ¹×ŽH‡ó´7ßØ9ÅÁàÀìN+'ìñ„ß/èå–DB1é¯uB('2§*¸ÕŒ‚ÃÌʘªÉÐ7xc>LG®Â/—Á±Âp/¸Vº×Sˆ!cØ‘L¸ý£Þ‘ŒRŒ¬Â€ tM7–8AˆüK\GŸp4CÏÏÐ4™Qx;U¹ëÆ¡o >¥»kšL™-á}Šqm7ž^&±ô  f€÷¨YaüD ÆH¸©†¦cZ8‡Fg‘á2Š0ÊÐto_›¾Jdë½Âl* -Σ†£q¸Cíø†pAkÝÈQHw>S¡s¨áªX6žëÁÐ#%˜‘ë§bPœª®³‹¤¬+ˆÛ”ÈfÀj˜Ð¤‰71 ¾2Îe#…èKBìèµ¹…Q¹`9§",Ì….(¼AÖU|‰ÄÀ$Ê׆ÿŽQ´H» Ê<†€}àc¦ohª’Ze€U›鸋ŞZöã,âyáuâq†¡€E|kü÷x{¬ê;8öß™‚ÿqìû÷âXqë±ù -ÇziVÌ\å$îŽ [ƒcèÑ‚…:ø‚4uÜÊŽíñßű£óýÁDJÇKÉÃhn›5ïv àÎÜíÃYÉC/ÛeZ¼7bûÃÚ =»ÚñÒˆBA6 ˜(‰oÜ÷‡Qù|±§£d¡Ïgè,ÌÓ—h;˜óçäÑ=Ûc³^øØÓdŽE-ó¼ß˜gÓa^<+:P©Š‡G{¯¾Œ³+wõ™×…AÄ胱ˆc°bÁ‘w¬r=:„=–|qlSèÆHïÖÑìjâC;øa¶W7$q6Û9§·ô,"—¶´÷tº’mÁ?9®@µI¶,mQ{Y¸ì|ÂÍ"âUÒ–Á¯à—ƒcXÙÙEúqž¿‘ÑtµÕ–0r¹OîS/Nøâ*ŸáÊAšµ£DÙRSPVû7žŸNtìg^ÜÞooc?µÕc^OÞûÖ¤ƒŠˆ$e^&qpø4鵤O+ø‹ÀX<ŸPÍî$¾ Š«E x×ΗgïýŠ,\ck§Ù¼ø9Ã*¤¬„iÄ×+ÒØs?‘õÎÒÙðŠR>/ž½PM®W9æ·*lÜ›»~Å´Øz¼}1ë¦fÁ öºRÎÞ+ç° YËîwWÃ`,ôIz¶ž7n(«vÖqóÇ3rœ¸ÐÏ’mÏŽÚBùô ¬:µ”X´z7|RÒ¶èàvï˜ÝÍà“Açe¥‹õ˜Cvìv¢}˜QKY?á)w+Ê2Äh].H;Z¬ëFÙüøO 2 ,ŽyÂ>[Áõ°=K­fcÆOÀiè^´€B: …2Llæ©U¸SEìÁ/ó=£*¦£s=À4Ši² -_!"ôüÀ •7¡/H4̾öØŠjÌMâõá¦Á·…¥V!Ó‰uåÏ¡UÇ’%ò­›¾ -eë¢ë $‰ÆF5˜`æu…ÓÖm…tçC³a}º‚ a -ĵd0ŠiÕ\0Ñ’Óš®õ€‰0AP¾½> endobj 6 0 obj <> endobj 7 0 obj <> endobj 8 0 obj <> endobj 42 0 obj [/View/Design] endobj 43 0 obj <>>> endobj 40 0 obj [/View/Design] endobj 41 0 obj <>>> endobj 38 0 obj [/View/Design] endobj 39 0 obj <>>> endobj 36 0 obj [/View/Design] endobj 37 0 obj <>>> endobj 75 0 obj [74 0 R 73 0 R 72 0 R 71 0 R] endobj 135 0 obj <> endobj xref 0 136 0000000004 65535 f -0000000016 00000 n -0000000242 00000 n -0000042777 00000 n -0000000000 00000 f -0000134069 00000 n -0000134139 00000 n -0000134209 00000 n -0000134279 00000 n -0000000000 00000 f -0000042829 00000 n -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000134702 00000 n -0000134733 00000 n -0000134586 00000 n -0000134617 00000 n -0000134470 00000 n -0000134501 00000 n -0000134354 00000 n -0000134385 00000 n -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000051735 00000 n -0000051808 00000 n -0000051881 00000 n -0000051954 00000 n -0000134818 00000 n -0000043361 00000 n -0000045264 00000 n -0000067864 00000 n -0000047535 00000 n -0000052504 00000 n -0000047422 00000 n -0000052620 00000 n -0000052733 00000 n -0000050281 00000 n -0000050424 00000 n -0000050615 00000 n -0000050807 00000 n -0000046632 00000 n -0000046900 00000 n -0000045326 00000 n -0000134034 00000 n -0000046071 00000 n -0000046119 00000 n -0000050218 00000 n -0000047359 00000 n -0000047570 00000 n -0000051390 00000 n -0000051000 00000 n -0000051509 00000 n -0000051614 00000 n -0000052386 00000 n -0000052418 00000 n -0000052268 00000 n -0000052300 00000 n -0000052150 00000 n -0000052182 00000 n -0000052032 00000 n -0000052064 00000 n -0000056072 00000 n -0000052859 00000 n -0000052925 00000 n -0000052948 00000 n -0000053249 00000 n -0000053327 00000 n -0000055354 00000 n -0000055428 00000 n -0000056036 00000 n -0000055573 00000 n -0000055718 00000 n -0000055809 00000 n -0000055915 00000 n -0000056138 00000 n -0000056161 00000 n -0000056448 00000 n -0000056526 00000 n -0000056781 00000 n -0000067740 00000 n -0000056855 00000 n -0000057304 00000 n -0000057368 00000 n -0000067939 00000 n -0000068117 00000 n -0000069113 00000 n -0000083726 00000 n -0000134864 00000 n -trailer <<779150255FD24E0494C6DDB168101D01>]>> startxref 135035 %%EOF \ No newline at end of file diff --git a/share/icons/hicolor/scalable/apps/tikzit.svg b/share/icons/hicolor/scalable/apps/tikzit.svg new file mode 100644 index 0000000..5fb38c6 --- /dev/null +++ b/share/icons/hicolor/scalable/apps/tikzit.svg @@ -0,0 +1,268 @@ + + + +image/svg+xml \ No newline at end of file -- cgit v1.2.3 From d0d81a31afd69594ed098c6afe855f05607db27e Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Wed, 10 Oct 2018 08:06:42 +0200 Subject: removed unused images --- images/AH_latex_head.png | Bin 6334 -> 0 bytes images/AH_latex_tail.png | Bin 6324 -> 0 bytes images/AH_none.png | Bin 6183 -> 0 bytes images/AH_plain_head.png | Bin 6298 -> 0 bytes images/AH_plain_tail.png | Bin 6320 -> 0 bytes images/ED_arrow.png | Bin 6357 -> 0 bytes images/ED_none.png | Bin 6190 -> 0 bytes images/ED_tick.png | Bin 6258 -> 0 bytes images/customshape.png | Bin 1281 -> 0 bytes images/document-new.png | Bin 692 -> 0 bytes images/document-open.png | Bin 919 -> 0 bytes images/draw-ellipse.png | Bin 3493 -> 0 bytes images/draw-path.png | Bin 920 -> 0 bytes images/edge-ak.svg | 36 ----------------------------------- images/emblem-important.png | Bin 717 -> 0 bytes images/emblem-unreadable-grey.png | Bin 3554 -> 0 bytes images/engine.png | Bin 1546 -> 0 bytes images/format-indent-less.png | Bin 767 -> 0 bytes images/preamble.png | Bin 851 -> 0 bytes images/select-rectangular.png | Bin 499 -> 0 bytes images/text-x-generic.png | Bin 744 -> 0 bytes images/text-x-script.png | Bin 1416 -> 0 bytes images/transform-crop-and-resize.png | Bin 1132 -> 0 bytes images/transform-move.png | Bin 638 -> 0 bytes images/updates.png | Bin 1953 -> 0 bytes tikzlexer.h | 10 +++++----- 26 files changed, 5 insertions(+), 41 deletions(-) delete mode 100644 images/AH_latex_head.png delete mode 100644 images/AH_latex_tail.png delete mode 100644 images/AH_none.png delete mode 100644 images/AH_plain_head.png delete mode 100644 images/AH_plain_tail.png delete mode 100644 images/ED_arrow.png delete mode 100644 images/ED_none.png delete mode 100644 images/ED_tick.png delete mode 100644 images/customshape.png delete mode 100644 images/document-new.png delete mode 100644 images/document-open.png delete mode 100644 images/draw-ellipse.png delete mode 100644 images/draw-path.png delete mode 100644 images/edge-ak.svg delete mode 100644 images/emblem-important.png delete mode 100644 images/emblem-unreadable-grey.png delete mode 100644 images/engine.png delete mode 100644 images/format-indent-less.png delete mode 100644 images/preamble.png delete mode 100644 images/select-rectangular.png delete mode 100644 images/text-x-generic.png delete mode 100644 images/text-x-script.png delete mode 100644 images/transform-crop-and-resize.png delete mode 100644 images/transform-move.png delete mode 100644 images/updates.png (limited to 'images') diff --git a/images/AH_latex_head.png b/images/AH_latex_head.png deleted file mode 100644 index b25cf6d..0000000 Binary files a/images/AH_latex_head.png and /dev/null differ diff --git a/images/AH_latex_tail.png b/images/AH_latex_tail.png deleted file mode 100644 index 0825cda..0000000 Binary files a/images/AH_latex_tail.png and /dev/null differ diff --git a/images/AH_none.png b/images/AH_none.png deleted file mode 100644 index 6322374..0000000 Binary files a/images/AH_none.png and /dev/null differ diff --git a/images/AH_plain_head.png b/images/AH_plain_head.png deleted file mode 100644 index 8a398fa..0000000 Binary files a/images/AH_plain_head.png and /dev/null differ diff --git a/images/AH_plain_tail.png b/images/AH_plain_tail.png deleted file mode 100644 index 45b1876..0000000 Binary files a/images/AH_plain_tail.png and /dev/null differ diff --git a/images/ED_arrow.png b/images/ED_arrow.png deleted file mode 100644 index 153d2e1..0000000 Binary files a/images/ED_arrow.png and /dev/null differ diff --git a/images/ED_none.png b/images/ED_none.png deleted file mode 100644 index f95140c..0000000 Binary files a/images/ED_none.png and /dev/null differ diff --git a/images/ED_tick.png b/images/ED_tick.png deleted file mode 100644 index a3882fe..0000000 Binary files a/images/ED_tick.png and /dev/null differ diff --git a/images/customshape.png b/images/customshape.png deleted file mode 100644 index cff8275..0000000 Binary files a/images/customshape.png and /dev/null differ diff --git a/images/document-new.png b/images/document-new.png deleted file mode 100644 index e3808a1..0000000 Binary files a/images/document-new.png and /dev/null differ diff --git a/images/document-open.png b/images/document-open.png deleted file mode 100644 index 254a6b8..0000000 Binary files a/images/document-open.png and /dev/null differ diff --git a/images/draw-ellipse.png b/images/draw-ellipse.png deleted file mode 100644 index d8e3e6f..0000000 Binary files a/images/draw-ellipse.png and /dev/null differ diff --git a/images/draw-path.png b/images/draw-path.png deleted file mode 100644 index ec5e691..0000000 Binary files a/images/draw-path.png and /dev/null differ diff --git a/images/edge-ak.svg b/images/edge-ak.svg deleted file mode 100644 index eafc423..0000000 --- a/images/edge-ak.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/images/emblem-important.png b/images/emblem-important.png deleted file mode 100644 index 81e9ed2..0000000 Binary files a/images/emblem-important.png and /dev/null differ diff --git a/images/emblem-unreadable-grey.png b/images/emblem-unreadable-grey.png deleted file mode 100644 index 09572ab..0000000 Binary files a/images/emblem-unreadable-grey.png and /dev/null differ diff --git a/images/engine.png b/images/engine.png deleted file mode 100644 index 1e45370..0000000 Binary files a/images/engine.png and /dev/null differ diff --git a/images/format-indent-less.png b/images/format-indent-less.png deleted file mode 100644 index 7ced16f..0000000 Binary files a/images/format-indent-less.png and /dev/null differ diff --git a/images/preamble.png b/images/preamble.png deleted file mode 100644 index d940d24..0000000 Binary files a/images/preamble.png and /dev/null differ diff --git a/images/select-rectangular.png b/images/select-rectangular.png deleted file mode 100644 index 866b602..0000000 Binary files a/images/select-rectangular.png and /dev/null differ diff --git a/images/text-x-generic.png b/images/text-x-generic.png deleted file mode 100644 index 928a679..0000000 Binary files a/images/text-x-generic.png and /dev/null differ diff --git a/images/text-x-script.png b/images/text-x-script.png deleted file mode 100644 index 801dcd6..0000000 Binary files a/images/text-x-script.png and /dev/null differ diff --git a/images/transform-crop-and-resize.png b/images/transform-crop-and-resize.png deleted file mode 100644 index 4dedd93..0000000 Binary files a/images/transform-crop-and-resize.png and /dev/null differ diff --git a/images/transform-move.png b/images/transform-move.png deleted file mode 100644 index ae4201b..0000000 Binary files a/images/transform-move.png and /dev/null differ diff --git a/images/updates.png b/images/updates.png deleted file mode 100644 index 469ae30..0000000 Binary files a/images/updates.png and /dev/null differ diff --git a/tikzlexer.h b/tikzlexer.h index 8169c03..438947f 100644 --- a/tikzlexer.h +++ b/tikzlexer.h @@ -2,9 +2,9 @@ #define yyHEADER_H 1 #define yyIN_HEADER 1 -#line 5 "tikzlexer.h" +#line 6 "tikzlexer.h" -#line 7 "tikzlexer.h" +#line 8 "tikzlexer.h" #define YY_INT_ALIGNED short int @@ -259,7 +259,7 @@ void yyfree ( void * , yyscan_t yyscanner ); */ #include #endif - + #define YY_EXTRA_TYPE TikzAssembler * int yylex_init (yyscan_t* scanner); @@ -518,8 +518,8 @@ extern int yylex \ #undef yyTABLES_NAME #endif -#line 195 "src\\data\\tikzlexer.l" +#line 195 "src/data/tikzlexer.l" -#line 523 "tikzlexer.h" +#line 524 "tikzlexer.h" #undef yyIN_HEADER #endif /* yyHEADER_H */ -- cgit v1.2.3 From dd59a5c4b8b0eadf223a7e4b3fa0cc8bd99375f9 Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Wed, 10 Oct 2018 08:10:35 +0200 Subject: wrong edge --- images/edge-ak.svg | 36 ++++++++++++++++++++++++++++ images/edge.svg | 64 ------------------------------------------------- src/gui/mainwindow.cpp | 2 +- src/gui/toolpalette.cpp | 1 + 4 files changed, 38 insertions(+), 65 deletions(-) create mode 100644 images/edge-ak.svg delete mode 100644 images/edge.svg (limited to 'images') diff --git a/images/edge-ak.svg b/images/edge-ak.svg new file mode 100644 index 0000000..eafc423 --- /dev/null +++ b/images/edge-ak.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/edge.svg b/images/edge.svg deleted file mode 100644 index 43280f8..0000000 --- a/images/edge.svg +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index cdf7bea..b0ffdc6 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -102,7 +102,7 @@ QSplitter *MainWindow::splitter() const { void MainWindow::closeEvent(QCloseEvent *event) { - qDebug() << "got close event"; + //qDebug() << "got close event"; QSettings settings("tikzit", "tikzit"); settings.setValue("geometry-main", saveGeometry()); diff --git a/src/gui/toolpalette.cpp b/src/gui/toolpalette.cpp index 2452bda..3d65369 100644 --- a/src/gui/toolpalette.cpp +++ b/src/gui/toolpalette.cpp @@ -32,6 +32,7 @@ ToolPalette::ToolPalette(QWidget *parent) : setOrientation(Qt::Vertical); setFocusPolicy(Qt::NoFocus); setWindowTitle("Tools"); + setObjectName("toolPalette"); //setGeometry(100,200,30,195); tools = new QActionGroup(this); -- cgit v1.2.3 From 4eb599dfd4e8c510ede62be3ef766af9d9b5121a Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Thu, 11 Oct 2018 08:19:26 +0200 Subject: removed unused icons --- images/node.svg | 39 --------------------- images/select.svg | 90 ------------------------------------------------- src/gui/stylepalette.ui | 19 ++++++++++- 3 files changed, 18 insertions(+), 130 deletions(-) delete mode 100644 images/node.svg delete mode 100644 images/select.svg (limited to 'images') diff --git a/images/node.svg b/images/node.svg deleted file mode 100644 index 0a34687..0000000 --- a/images/node.svg +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/images/select.svg b/images/select.svg deleted file mode 100644 index 80b7757..0000000 --- a/images/select.svg +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/gui/stylepalette.ui b/src/gui/stylepalette.ui index 14a4d36..eb97474 100644 --- a/src/gui/stylepalette.ui +++ b/src/gui/stylepalette.ui @@ -50,7 +50,7 @@ - [default] + [no style file] @@ -62,6 +62,23 @@ 0 + + + + + + + + :/images/document-new.svg:/images/document-new.svg + + + + 16 + 16 + + + + -- cgit v1.2.3 From 68921d37da4f2268af5006c0aed68d70ee7b6dff Mon Sep 17 00:00:00 2001 From: Aleks Kissinger Date: Thu, 11 Oct 2018 08:33:30 +0200 Subject: icons renamed for clarity --- images/edge-ak.svg | 36 ------ images/logo.ico | Bin 14347 -> 0 bytes images/logo.pdf | Bin 1991 -> 0 bytes images/logo.png | Bin 17595 -> 0 bytes images/logo.svg | 268 ------------------------------------------ images/node-ak.svg | 14 --- images/select-ak.svg | 9 -- images/tikzit-tool-edge.svg | 36 ++++++ images/tikzit-tool-node.svg | 14 +++ images/tikzit-tool-select.svg | 9 ++ images/tikzit.pdf | Bin 0 -> 1991 bytes images/tikzit.png | Bin 0 -> 17595 bytes images/tikzit.svg | 268 ++++++++++++++++++++++++++++++++++++++++++ src/gui/mainwindow.cpp | 2 +- src/gui/styleeditor.cpp | 2 +- src/gui/toolpalette.cpp | 6 +- tikzit.qrc | 8 +- 17 files changed, 336 insertions(+), 336 deletions(-) delete mode 100644 images/edge-ak.svg delete mode 100644 images/logo.ico delete mode 100644 images/logo.pdf delete mode 100644 images/logo.png delete mode 100644 images/logo.svg delete mode 100644 images/node-ak.svg delete mode 100644 images/select-ak.svg create mode 100644 images/tikzit-tool-edge.svg create mode 100644 images/tikzit-tool-node.svg create mode 100644 images/tikzit-tool-select.svg create mode 100644 images/tikzit.pdf create mode 100644 images/tikzit.png create mode 100644 images/tikzit.svg (limited to 'images') diff --git a/images/edge-ak.svg b/images/edge-ak.svg deleted file mode 100644 index eafc423..0000000 --- a/images/edge-ak.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/images/logo.ico b/images/logo.ico deleted file mode 100644 index ef92c90..0000000 Binary files a/images/logo.ico and /dev/null differ diff --git a/images/logo.pdf b/images/logo.pdf deleted file mode 100644 index 1fe8a28..0000000 Binary files a/images/logo.pdf and /dev/null differ diff --git a/images/logo.png b/images/logo.png deleted file mode 100644 index 000d172..0000000 Binary files a/images/logo.png and /dev/null differ diff --git a/images/logo.svg b/images/logo.svg deleted file mode 100644 index 5fb38c6..0000000 --- a/images/logo.svg +++ /dev/null @@ -1,268 +0,0 @@ - - - -image/svg+xml \ No newline at end of file diff --git a/images/node-ak.svg b/images/node-ak.svg deleted file mode 100644 index 3bad649..0000000 --- a/images/node-ak.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/images/select-ak.svg b/images/select-ak.svg deleted file mode 100644 index 0f95547..0000000 --- a/images/select-ak.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - diff --git a/images/tikzit-tool-edge.svg b/images/tikzit-tool-edge.svg new file mode 100644 index 0000000..eafc423 --- /dev/null +++ b/images/tikzit-tool-edge.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/tikzit-tool-node.svg b/images/tikzit-tool-node.svg new file mode 100644 index 0000000..3bad649 --- /dev/null +++ b/images/tikzit-tool-node.svg @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/images/tikzit-tool-select.svg b/images/tikzit-tool-select.svg new file mode 100644 index 0000000..0f95547 --- /dev/null +++ b/images/tikzit-tool-select.svg @@ -0,0 +1,9 @@ + + + + + + diff --git a/images/tikzit.pdf b/images/tikzit.pdf new file mode 100644 index 0000000..1fe8a28 Binary files /dev/null and b/images/tikzit.pdf differ diff --git a/images/tikzit.png b/images/tikzit.png new file mode 100644 index 0000000..000d172 Binary files /dev/null and b/images/tikzit.png differ diff --git a/images/tikzit.svg b/images/tikzit.svg new file mode 100644 index 0000000..5fb38c6 --- /dev/null +++ b/images/tikzit.svg @@ -0,0 +1,268 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index 479d8ed..806d634 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -28,7 +28,7 @@ MainWindow::MainWindow(QWidget *parent) : _numWindows++; ui->setupUi(this); - setWindowIcon(QIcon(":/images/logo.png")); + setWindowIcon(QIcon(":/images/tikzit.png")); setAttribute(Qt::WA_DeleteOnClose, true); _tikzDocument = new TikzDocument(this); diff --git a/src/gui/styleeditor.cpp b/src/gui/styleeditor.cpp index 63d347b..40706ff 100644 --- a/src/gui/styleeditor.cpp +++ b/src/gui/styleeditor.cpp @@ -18,7 +18,7 @@ StyleEditor::StyleEditor(QWidget *parent) : ui->leftArrow << ui->rightArrow << ui->properties; - setWindowIcon(QIcon(":/images/logo.png")); + setWindowIcon(QIcon(":/images/tikzit.png")); _styles = nullptr; _activeStyle = nullptr; diff --git a/src/gui/toolpalette.cpp b/src/gui/toolpalette.cpp index 3d65369..5e93963 100644 --- a/src/gui/toolpalette.cpp +++ b/src/gui/toolpalette.cpp @@ -42,9 +42,9 @@ ToolPalette::ToolPalette(QWidget *parent) : // edge = new QAction(QIcon(":/images/Inkscape_icons_draw_path.svg"), "Add Edge"); // crop = new QAction(QIcon(":/images/crop.svg"), "Bounding Box"); - select = new QAction(QIcon(":/images/select-ak.svg"), "Select"); - vertex = new QAction(QIcon(":/images/node-ak.svg"), "Add Vertex"); - edge = new QAction(QIcon(":/images/edge-ak.svg"), "Add Edge"); + select = new QAction(QIcon(":/images/tikzit-tool-select.svg"), "Select"); + vertex = new QAction(QIcon(":/images/tikzit-tool-node.svg"), "Add Vertex"); + edge = new QAction(QIcon(":/images/tikzit-tool-edge.svg"), "Add Edge"); //crop = new QAction(QIcon(":/images/crop.svg"), "Bounding Box"); diff --git a/tikzit.qrc b/tikzit.qrc index cf212fe..0484c2d 100644 --- a/tikzit.qrc +++ b/tikzit.qrc @@ -2,11 +2,11 @@ images/document-new.svg images/document-open.svg - images/edge-ak.svg - images/node-ak.svg - images/select-ak.svg + images/tikzit-tool-edge.svg + images/tikzit-tool-node.svg + images/tikzit-tool-select.svg images/refresh.svg - images/logo.png + images/tikzit.png images/text-x-generic_with_pencil.svg -- cgit v1.2.3